Subject: bug#7946: closed (Re: bug#7946: Referring to a marker changes Emacs' behaviour.)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 02 Feb 2011 15:47:02 +0000

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 [email-masked].

-- 
7946: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7946
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#7946: Referring to a marker changes Emacs' behaviour.
From: Stefan Monnier <[email-masked]>
To: Le Wang <[email-masked]>
Cc: [email-masked]
Date: Wed, 02 Feb 2011 10:54:56 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

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

Subject: Referring to a marker changes Emacs' behaviour.
From: Le Wang <[email-masked]>
To: [email-masked]
Date: Mon, 31 Jan 2011 14:45:43 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

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