]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix 'exchange-point-and-mark' in 'transient-mark-mode'
authorEli Zaretskii <eliz@gnu.org>
Mon, 10 Jan 2022 17:10:52 +0000 (19:10 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 10 Jan 2022 17:10:52 +0000 (19:10 +0200)
* lisp/simple.el (exchange-point-and-mark): Don't deactivate mark
when 'transient-mark-mode' is ON.  (Bug#53150)

lisp/simple.el

index cbcde9fb8da037f812333609684c6fdb9e993db9..c73c94b53ad9fa85c8286ebade74720f85a75505 100644 (file)
@@ -6664,11 +6664,10 @@ mode temporarily."
         (user-error "No mark set in this buffer"))
     (set-mark (point))
     (goto-char omark)
-    (cond ((and (not arg) (not temp-highlight))
-          (setq-local transient-mark-mode (cons 'only transient-mark-mode)))
-         ((xor arg (not (region-active-p)))
-          (deactivate-mark))
-         (t (activate-mark)))
+    (or temp-highlight
+        (cond ((xor arg (not (region-active-p)))
+              (deactivate-mark))
+             (t (activate-mark))))
     nil))
 
 (defcustom shift-select-mode t