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: Le Wang <l26wang <at> gmail.com>
Subject: bug#7946: closed (Re: bug#7946: Referring to a marker changes
 Emacs' behaviour.)
Date: Wed, 02 Feb 2011 15:47:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#7946: Referring to a marker changes Emacs' behaviour.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 7946 <at> debbugs.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: 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);
 


[Message part 3 (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 4 (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 5 (text/html, inline)]
[rebox2_bug.el (application/octet-stream, attachment)]

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.