GNU bug report logs -
#49999
27.2; save-mark-and-excursion does not save mark-active
Previous Next
Reported by: Peter Münster <pm <at> a16n.net>
Date: Wed, 11 Aug 2021 10:01:02 UTC
Severity: normal
Tags: confirmed
Found in version 27.2
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 49999 <at> debbugs.gnu.org (full text, mbox):
Peter Münster <pm <at> a16n.net> writes:
> It seems, that save-mark-and-excursion does not restore the mark state.
>
> Here is a test function:
>
> (defun my-test-func ()
> "Test if save-mark-and-excursion is working."
> (interactive)
> (with-current-buffer "test-buf"
> (save-mark-and-excursion
> (goto-char (point-min))
> (add-face-text-property
> (point) (1+ (point)) (list :background "orange")))))
>
> Test case:
> - "emacs -Q"
> - evaluate my-test-func
> - open a new buffer "test-buf"
> - type some characters
> - mark a region somewhere
> - M-x my-test-func
>
> Result: point is restored, but mark-active is nil.
I can reproduce this, but I'm not quite sure what's going on. I tweaked
your function:
(defun my-test-func ()
"Test if save-mark-and-excursion is working."
(interactive)
(save-mark-and-excursion
(goto-char (point-min))
(add-face-text-property
(point) (1+ (point)) (list :background "orange")))
(message "%s" mark-active))
This messages t -- but evaling mark-active afterwards shows that it's
nil. So something is deactivating the mark after the command has run,
apparently? Hm... this sounds vaguely familiar to me... Anybody know
what could be going on here?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 3 years and 285 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.