GNU bug report logs - #7946
Referring to a marker changes Emacs' behaviour.

Previous Next

Package: emacs;

Reported by: Le Wang <l26wang <at> gmail.com>

Date: Mon, 31 Jan 2011 07:20:03 UTC

Severity: normal

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#7946: closed (Referring to a marker changes Emacs' behaviour.)
Date: Wed, 02 Feb 2011 15:47:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Wed, 02 Feb 2011 10:54:56 -0500
with message-id <jwv1v3q1lvt.fsf-monnier+emacs <at> gnu.org>
and subject line Re: bug#7946: Referring to a marker changes Emacs' behaviour.
has caused the GNU bug report #7946,
regarding Referring to a marker changes Emacs' behaviour.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
7946: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7946
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Le Wang <l26wang <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Referring to a marker changes Emacs' behaviour.
Date: Mon, 31 Jan 2011 14:45:43 +0800
[Message part 3 (text/plain, inline)]
Hi,

I found an issue where evaluating this line or not causes Emacs behaviour
change:

(format "%s" marked-point)


"marked-point" is a marker.  The bug was found on NTEmacs 23.2.1, reproed on
CVS NTEmacs 20110111, and Stephen Berman confirmed it on GNU Emacs 24.0.50.1
(i686-pc-linux-gnu, GTK+ Version 2.20.1) of 2011-01-13 on escher

"rebox2_bug.el" is attached to this message.

Repro-steps:

   1. emacs -Q rebox2_bug.el
   2. M-x eval-current-buffer
   3. C-x b<enter> ;; switch to "*scratch*"
   4. M-x rebox-mode
   5. M-<
   6. SPC,SPC ;; space twice
   7. C-aC-aC-aC-a ;; notice that the point is stuck at 6
   8. C-xb<enter> ;; switch to "rebox2_bug.el
   9. M-g g 1714
   10. C-d ;; uncomment the hack workaround the bug
   11. C-M-x ;; reevaluated the function
   12. C-x b<enter> ;; switch to "*scratch*"
   13. C-aC-aC-aC-a ;; notice that the cursor switches between 1 and 6



-- 
Le
[Message part 4 (text/html, inline)]
[rebox2_bug.el (application/octet-stream, attachment)]
[Message part 6 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Le Wang <l26wang <at> gmail.com>
Cc: 7946-done <at> debbugs.gnu.org
Subject: Re: bug#7946: Referring to a marker changes Emacs' behaviour.
Date: Wed, 02 Feb 2011 10:54:56 -0500
> I found an issue where evaluating this line or not causes Emacs behaviour
> change:

> (format "%s" marked-point)

The patch below appears to fix the problem for me.  I've installed it in
the emacs-23 branch.

The problem was that current-column uses a cache to try and speed up
some cases, and the cache was not flushed when exiting
a save-restriction.  The workaround you used works because `set-buffer'
flushes the cache and `format' uses set-buffer internally.


        Stefan


=== modified file 'src/editfns.c'
--- src/editfns.c	2011-01-02 23:50:46 +0000
+++ src/editfns.c	2011-02-02 15:45:27 +0000
@@ -3347,6 +3347,9 @@
 	}
     }
 
+  /* Changing the buffer bounds invalidates any recorded current column.  */
+  invalidate_current_column ();
+
   if (cur)
     set_buffer_internal (cur);
 



This bug report was last modified 14 years and 112 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.