image-dired.el: use with-current-buffer
[bpt/emacs.git] / lisp / image-dired.el
index b196bf7..f26ad5d 100644 (file)
@@ -1039,16 +1039,14 @@ With prefix argument ARG, remove tag from file at point."
 See documentation for `image-dired-toggle-movement-tracking'.
 Interactive use only useful if `image-dired-track-movement' is nil."
   (interactive)
-  (let* ((old-buf (current-buffer))
-        (dired-buf (image-dired-associated-dired-buffer))
+  (let* ((dired-buf (image-dired-associated-dired-buffer))
          (file-name (image-dired-original-file-name))
          (window (image-dired-get-buffer-window dired-buf)))
-    (when (and (buffer-live-p dired-buf) file-name)
-      (set-buffer dired-buf)
-      (if (not (dired-goto-file file-name))
-          (message "Could not track file")
-        (if window (set-window-point window (point))))
-      (set-buffer old-buf))))
+    (and (buffer-live-p dired-buf) file-name
+         (with-current-buffer dired-buf
+           (if (not (dired-goto-file file-name))
+               (message "Could not track file")
+             (if window (set-window-point window (point))))))))
 
 (defun image-dired-toggle-movement-tracking ()
   "Turn on and off `image-dired-track-movement'.
@@ -1065,24 +1063,22 @@ position in the other buffer."
 This is almost the same as what `image-dired-track-original-file' does,
 but the other way around."
   (let ((file (dired-get-filename))
-        (old-buf (current-buffer))
-        prop-val found)
+        prop-val found window)
     (when (get-buffer image-dired-thumbnail-buffer)
-      (set-buffer image-dired-thumbnail-buffer)
-      (goto-char (point-min))
-      (while (and (not (eobp))
-                  (not found))
-        (if (and (setq prop-val
-                       (get-text-property (point) 'original-file-name))
-                 (string= prop-val file))
-            (setq found t))
-        (if (not found)
-            (forward-char 1)))
-      (when found
-        (set-window-point
-         (image-dired-thumbnail-window) (point))
-        (image-dired-display-thumb-properties))
-      (set-buffer old-buf))))
+      (with-current-buffer image-dired-thumbnail-buffer
+        (goto-char (point-min))
+        (while (and (not (eobp))
+                    (not found))
+          (if (and (setq prop-val
+                         (get-text-property (point) 'original-file-name))
+                   (string= prop-val file))
+              (setq found t))
+          (if (not found)
+              (forward-char 1)))
+        (when found
+          (if (setq window (image-dired-thumbnail-window))
+              (set-window-point window (point)))
+          (image-dired-display-thumb-properties))))))
 
 (defun image-dired-dired-next-line (&optional arg)
   "Call `dired-next-line', then track thumbnail.