GNU bug report logs - #49999
27.2; save-mark-and-excursion does not save mark-active

Previous Next

Package: emacs;

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):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Peter Münster <pm <at> a16n.net>
Cc: 49999 <at> debbugs.gnu.org
Subject: Re: bug#49999: 27.2; save-mark-and-excursion does not save mark-active
Date: Wed, 11 Aug 2021 14:19:43 +0200
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.