]> code.delx.au - gnu-emacs/commitdiff
Fix previous commit
authorDaniel Colascione <dancol@dancol.org>
Mon, 4 May 2015 22:40:55 +0000 (15:40 -0700)
committerDaniel Colascione <dancol@dancol.org>
Mon, 4 May 2015 22:41:36 +0000 (15:41 -0700)
lisp/simple.el

index 9f42f00b149c8eac0113d2fe3f398c08a2903f91..47c9cd30c177b4a44e12dfa24c74b1e9a8802d13 100644 (file)
@@ -4873,7 +4873,7 @@ store it in a Lisp variable.  Example:
 (defun save-mark-and-excursion--save ()
   (cons
    (let ((mark (mark-marker)))
-     (and mark (marker-position mark) (copy-marker mark)))
+     (and (marker-position mark) (copy-marker mark)))
    mark-active))
 
 (defun save-mark-and-excursion--restore (saved-mark-info)
@@ -4883,17 +4883,18 @@ store it in a Lisp variable.  Example:
         (saved-mark-active (cdr saved-mark-info)))
     ;; Mark marker
     (if (null saved-mark)
-        (set-marker (mark-marker nil))
+        (set-marker (mark-marker) nil)
       (setf nmark (marker-position saved-mark))
       (set-marker (mark-marker) nmark)
       (set-marker saved-mark nil))
     ;; Mark active
     (let ((cur-mark-active mark-active))
-      (setf mark-active saved-mark-active)
+      (setq mark-active saved-mark-active)
       ;; If mark is active now, and either was not active or was at a
       ;; different place, run the activate hook.
       (if saved-mark-active
-          (unless (eq omark nmark)
+          (when (or (not cur-mark-active)
+                    (not (eq omark nmark)))
             (run-hooks 'activate-mark-hook))
         ;; If mark has ceased to be active, run deactivate hook.
         (when cur-mark-active