diff options
| author | Joakim Verona | 2013-08-15 19:32:02 +0200 |
|---|---|---|
| committer | Joakim Verona | 2013-08-15 19:32:02 +0200 |
| commit | 0139d01ea2cca819089cb0264c0391a72180f556 (patch) | |
| tree | 3082795783a32ef6a031c30bdbcc6571ea9da457 | |
| parent | dd2ec20a745d3c3436b5ca842e2c0b5bf8c7e26f (diff) | |
| parent | 6f94cbbcb5cefde19de8fff03834f3c8cb5f6e6d (diff) | |
| download | emacs-0139d01ea2cca819089cb0264c0391a72180f556.tar.gz emacs-0139d01ea2cca819089cb0264c0391a72180f556.zip | |
merge from trunk
| -rw-r--r-- | lisp/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/emacs-lisp/debug.el | 81 | ||||
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/image.c | 12 |
4 files changed, 65 insertions, 44 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index bcab8de10a4..9119b34d52c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2013-08-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * emacs-lisp/debug.el (debugger-setup-buffer): Put point on the | ||
| 4 | previous line (bug#15101). | ||
| 5 | (debugger-eval-expression, debugger-record-expression): | ||
| 6 | Use read--expression (bug#15102). | ||
| 7 | |||
| 1 | 2013-08-15 Michael Albinus <michael.albinus@gmx.de> | 8 | 2013-08-15 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 9 | ||
| 3 | Remove byte compiler warnings, visible when compiling with | 10 | Remove byte compiler warnings, visible when compiling with |
| @@ -20,8 +27,8 @@ | |||
| 20 | (tramp-flush-connection-property, tramp-list-connections) | 27 | (tramp-flush-connection-property, tramp-list-connections) |
| 21 | (tramp-parse-connection-properties): Prefix unused arguments with "_". | 28 | (tramp-parse-connection-properties): Prefix unused arguments with "_". |
| 22 | 29 | ||
| 23 | * net/tramp-compat.el (tramp-compat-make-temp-file): Rename | 30 | * net/tramp-compat.el (tramp-compat-make-temp-file): |
| 24 | FILENAME to F. | 31 | Rename FILENAME to F. |
| 25 | 32 | ||
| 26 | * net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch) | 33 | * net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch) |
| 27 | (tramp-gvfs-handle-write-region, tramp-bluez-parse-device-names) | 34 | (tramp-gvfs-handle-write-region, tramp-bluez-parse-device-names) |
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index aee48eef668..709a094e73b 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el | |||
| @@ -288,33 +288,41 @@ That buffer should be current already." | |||
| 288 | (insert "Debugger entered") | 288 | (insert "Debugger entered") |
| 289 | ;; lambda is for debug-on-call when a function call is next. | 289 | ;; lambda is for debug-on-call when a function call is next. |
| 290 | ;; debug is for debug-on-entry function called. | 290 | ;; debug is for debug-on-entry function called. |
| 291 | (pcase (car args) | 291 | (let ((pos (point))) |
| 292 | ((or `lambda `debug) | 292 | (pcase (car args) |
| 293 | (insert "--entering a function:\n")) | 293 | ((or `lambda `debug) |
| 294 | ;; Exiting a function. | 294 | (insert "--entering a function:\n") |
| 295 | (`exit | 295 | (setq pos (1- (point)))) |
| 296 | (insert "--returning value: ") | 296 | ;; Exiting a function. |
| 297 | (setq debugger-value (nth 1 args)) | 297 | (`exit |
| 298 | (prin1 debugger-value (current-buffer)) | 298 | (insert "--returning value: ") |
| 299 | (insert ?\n) | 299 | (setq pos (point)) |
| 300 | (delete-char 1) | 300 | (setq debugger-value (nth 1 args)) |
| 301 | (insert ? ) | 301 | (prin1 debugger-value (current-buffer)) |
| 302 | (beginning-of-line)) | 302 | (insert ?\n) |
| 303 | ;; Debugger entered for an error. | 303 | (delete-char 1) |
| 304 | (`error | 304 | (insert ? ) |
| 305 | (insert "--Lisp error: ") | 305 | (beginning-of-line)) |
| 306 | (prin1 (nth 1 args) (current-buffer)) | 306 | ;; Debugger entered for an error. |
| 307 | (insert ?\n)) | 307 | (`error |
| 308 | ;; debug-on-call, when the next thing is an eval. | 308 | (insert "--Lisp error: ") |
| 309 | (`t | 309 | (setq pos (point)) |
| 310 | (insert "--beginning evaluation of function call form:\n")) | 310 | (prin1 (nth 1 args) (current-buffer)) |
| 311 | ;; User calls debug directly. | 311 | (insert ?\n)) |
| 312 | (_ | 312 | ;; debug-on-call, when the next thing is an eval. |
| 313 | (insert ": ") | 313 | (`t |
| 314 | (prin1 (if (eq (car args) 'nil) | 314 | (insert "--beginning evaluation of function call form:\n") |
| 315 | (cdr args) args) | 315 | (setq pos (1- (point)))) |
| 316 | (current-buffer)) | 316 | ;; User calls debug directly. |
| 317 | (insert ?\n))) | 317 | (_ |
| 318 | (insert ": ") | ||
| 319 | (setq pos (point)) | ||
| 320 | (prin1 (if (eq (car args) 'nil) | ||
| 321 | (cdr args) args) | ||
| 322 | (current-buffer)) | ||
| 323 | (insert ?\n))) | ||
| 324 | ;; Place point on "stack frame 0" (bug#15101). | ||
| 325 | (goto-char pos)) | ||
| 318 | ;; After any frame that uses eval-buffer, | 326 | ;; After any frame that uses eval-buffer, |
| 319 | ;; insert a line that states the buffer position it's reading at. | 327 | ;; insert a line that states the buffer position it's reading at. |
| 320 | (save-excursion | 328 | (save-excursion |
| @@ -533,16 +541,15 @@ Applies to the frame whose line point is on in the backtrace." | |||
| 533 | (progn ,@body) | 541 | (progn ,@body) |
| 534 | (setq debugger-outer-match-data (match-data))))) | 542 | (setq debugger-outer-match-data (match-data))))) |
| 535 | 543 | ||
| 536 | (defun debugger-eval-expression (exp) | 544 | (defun debugger-eval-expression (exp &optional nframe) |
| 537 | "Eval an expression, in an environment like that outside the debugger. | 545 | "Eval an expression, in an environment like that outside the debugger. |
| 538 | The environment used is the one when entering the activation frame at point." | 546 | The environment used is the one when entering the activation frame at point." |
| 539 | (interactive | 547 | (interactive |
| 540 | (list (read-from-minibuffer "Eval: " | 548 | (list (read--expression "Eval in stack frame: "))) |
| 541 | nil read-expression-map t | 549 | (let ((nframe (or nframe |
| 542 | 'read-expression-history))) | 550 | (condition-case nil (1+ (debugger-frame-number 'skip-base)) |
| 543 | (let ((nframe (condition-case nil (1+ (debugger-frame-number 'skip-base)) | 551 | (error 0)))) ;; If on first line. |
| 544 | (error 0))) ;; If on first line. | 552 | (base (if (eq 'debug--implement-debug-on-entry |
| 545 | (base (if (eq 'debug--implement-debug-on-entry | ||
| 546 | (cadr (backtrace-frame 1 'debug))) | 553 | (cadr (backtrace-frame 1 'debug))) |
| 547 | 'debug--implement-debug-on-entry 'debug))) | 554 | 'debug--implement-debug-on-entry 'debug))) |
| 548 | (debugger-env-macro | 555 | (debugger-env-macro |
| @@ -651,11 +658,7 @@ Complete list of commands: | |||
| 651 | (defun debugger-record-expression (exp) | 658 | (defun debugger-record-expression (exp) |
| 652 | "Display a variable's value and record it in `*Backtrace-record*' buffer." | 659 | "Display a variable's value and record it in `*Backtrace-record*' buffer." |
| 653 | (interactive | 660 | (interactive |
| 654 | (list (read-from-minibuffer | 661 | (list (read--expression "Record Eval: "))) |
| 655 | "Record Eval: " | ||
| 656 | nil | ||
| 657 | read-expression-map t | ||
| 658 | 'read-expression-history))) | ||
| 659 | (let* ((buffer (get-buffer-create debugger-record-buffer)) | 662 | (let* ((buffer (get-buffer-create debugger-record-buffer)) |
| 660 | (standard-output buffer)) | 663 | (standard-output buffer)) |
| 661 | (princ (format "Debugger Eval (%s): " exp)) | 664 | (princ (format "Debugger Eval (%s): " exp)) |
diff --git a/src/ChangeLog b/src/ChangeLog index c12b32ebc71..028c33848a4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * image.c (imagemagick_compute_animated_image): Respect the GIF | ||
| 4 | disposal methods. | ||
| 5 | |||
| 1 | 2013-08-15 Ken Brown <kbrown@cornell.edu> | 6 | 2013-08-15 Ken Brown <kbrown@cornell.edu> |
| 2 | 7 | ||
| 3 | * emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC. | 8 | * emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC. |
diff --git a/src/image.c b/src/image.c index 3cab72edf74..bc9f9ab123a 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -7887,17 +7887,20 @@ imagemagick_compute_animated_image (MagickWand *super_wand, int ino) | |||
| 7887 | else | 7887 | else |
| 7888 | composite_wand = animation_cache; | 7888 | composite_wand = animation_cache; |
| 7889 | 7889 | ||
| 7890 | for (i = max (1, animation_index); i <= ino; i++) | 7890 | for (i = max (1, animation_index + 1); i <= ino; i++) |
| 7891 | { | 7891 | { |
| 7892 | MagickWand *sub_wand; | 7892 | MagickWand *sub_wand; |
| 7893 | PixelIterator *source_iterator, *dest_iterator; | 7893 | PixelIterator *source_iterator, *dest_iterator; |
| 7894 | PixelWand **source, **dest; | 7894 | PixelWand **source, **dest; |
| 7895 | size_t source_width, dest_width; | 7895 | size_t source_width, dest_width; |
| 7896 | MagickPixelPacket pixel; | 7896 | MagickPixelPacket pixel; |
| 7897 | DisposeType dispose; | ||
| 7897 | 7898 | ||
| 7898 | MagickSetIteratorIndex (super_wand, i); | 7899 | MagickSetIteratorIndex (super_wand, i); |
| 7899 | sub_wand = MagickGetImage (super_wand); | 7900 | sub_wand = MagickGetImage (super_wand); |
| 7900 | 7901 | ||
| 7902 | dispose = MagickGetImageDispose (sub_wand); | ||
| 7903 | |||
| 7901 | source_iterator = NewPixelIterator (sub_wand); | 7904 | source_iterator = NewPixelIterator (sub_wand); |
| 7902 | if (! source_iterator) | 7905 | if (! source_iterator) |
| 7903 | { | 7906 | { |
| @@ -7926,8 +7929,11 @@ imagemagick_compute_animated_image (MagickWand *super_wand, int ino) | |||
| 7926 | dest = PixelGetNextIteratorRow (dest_iterator, &dest_width); | 7929 | dest = PixelGetNextIteratorRow (dest_iterator, &dest_width); |
| 7927 | for (x = 0; x < source_width; x++) | 7930 | for (x = 0; x < source_width; x++) |
| 7928 | { | 7931 | { |
| 7929 | /* Copy over non-transparent pixels. */ | 7932 | /* Normally we only copy over non-transparent pixels, |
| 7930 | if (PixelGetAlpha (source[x])) | 7933 | but if the disposal method is "Background", then we |
| 7934 | copy over all pixels. */ | ||
| 7935 | if (dispose == BackgroundDispose || | ||
| 7936 | PixelGetAlpha (source[x])) | ||
| 7931 | { | 7937 | { |
| 7932 | PixelGetMagickColor (source[x], &pixel); | 7938 | PixelGetMagickColor (source[x], &pixel); |
| 7933 | PixelSetMagickColor (dest[x], &pixel); | 7939 | PixelSetMagickColor (dest[x], &pixel); |