GNU bug report logs - #4803
Undo fails to restore marker position correctly

Previous Next

Package: emacs;

Reported by: Toby Cubitt <toby-dated-1256861956.bb6a54 <at> dr-qubit.org>

Date: Sun, 25 Oct 2009 00:20:04 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 (Emacs bug Tracking System)
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Subject: bug#4803: marked as done (Undo fails to restore marker position
 correctly)
Date: Tue, 24 Nov 2009 21:40:04 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 24 Nov 2009 16:33:39 -0500
with message-id <jwvfx83ipjv.fsf-monnier+gnus-read-ephemeral-bug <at> gnu.org>
and subject line Re: Undo fails to restore marker position correctly
has caused the Emacs bug report #4803,
regarding Undo fails to restore marker position correctly
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact help-debbugs <at> gnu.org
immediately.)


-- 
4803: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=4803
Emacs Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Toby Cubitt <tsc25 <at> cantab.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Undo fails to restore marker position correctly
Date: Sat, 24 Oct 2009 17:18:48 -0700
In GNU Emacs 23.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.16.6)
  of 2009-10-17


Steps to reproduce:
-------------------
(switch-to-buffer "*scratch*")  ; any buffer containing some text will do
(setq mrk (make-marker))
(move-marker mrk 5)             ; any position within text will do
(set-marker-insertion-type mrk t)
(delete-region 1 10)
(undo)

Marker mrk is now at position 15 in *scratch* instead of 5.


Toby
--
Dr T. S. Cubitt
Quantum Information Theory group
Department of Mathematics
University of Bristol
United Kingdom

email: tsc25 <at> cantab.net
web: www.dr-qubit.org


[Message part 3 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Toby Cubitt <toby-dated-1256861956.bb6a54 <at> dr-qubit.org>
Subject: Re: Undo fails to restore marker position correctly
Date: Tue, 24 Nov 2009 16:33:39 -0500
> (switch-to-buffer "*scratch*")  ; any buffer containing some text will do
> (setq mrk (make-marker))
> (move-marker mrk 5)             ; any position within text will do
> (set-marker-insertion-type mrk t)
> (delete-region 1 10)
> (undo)

> Marker mrk is now at position 15 in *scratch* instead of 5.

I've just installed the patch below should should fix it.
Thanks for catching it!


        Stefan


=== modified file 'src/insdel.c'
--- src/insdel.c	2009-11-24 15:30:54 +0000
+++ src/insdel.c	2009-11-24 21:28:22 +0000
@@ -377,7 +377,7 @@
 	       upon re-inserting the deleted text, so we have to arrange
 	       for them to move backward to the correct position.  */
 	      XSETMISC (marker, m);
-	    record_marker_adjustment (marker, charpos - to);
+	      record_marker_adjustment (marker, to - charpos);
 	    }
 	  m->charpos = from;
 	  m->bytepos = from_byte;


This bug report was last modified 15 years and 177 days ago.

Previous Next


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