GNU bug report logs -
#12077
Abort in replace-regexp with an after-change-functions hook
Previous Next
Reported by: Rob Browning <rlb <at> defaultvalue.org>
Date: Sat, 28 Jul 2012 18:01:02 UTC
Severity: normal
Fixed in version 24.4
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#12077: Abort in replace-regexp with an after-change-functions hook
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 12077 <at> debbugs.gnu.org.
--
12077: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12077
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Version: 24.4
Rob Browning wrote:
>> When this expression is evaluated, Emacs will abort.
>>
>> (with-temp-buffer
>> (insert "#\n*\n")
>> (goto-char (point-min))
>> (add-hook 'after-change-functions
>> (lambda (a b c) (re-search-forward "\n" nil t)))
>> (replace-regexp "^\\*" " *"))
By experiment, this issue is present in at least 22.3 through 24.2.93,
but is fixed in the current trunk.
[Message part 3 (message/rfc822, inline)]
(If possible, please preserve the 682995-forwarded address in any replies.)
The following bug report was recently filed, and I've tried the example,
and saw the same abort.
You can find additional information here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682995
Christopher Wellons <mosquitopsu <at> gmail.com> writes:
> Package: emacs24
> Version: 24.1+1-4
> Severity: normal
>
> When this expression is evaluated, Emacs will abort.
>
> (with-temp-buffer
> (insert "#\n*\n")
> (goto-char (point-min))
> (add-hook 'after-change-functions
> (lambda (a b c) (re-search-forward "\n" nil t)))
> (replace-regexp "^\\*" " *"))
>
> It is also provided in an attached file, example.el, in order to make
> this easier to demonstrate.
>
> emacs -q -l example.el
>
> The abort() occurs in the check at the beginning of
> buf_charpos_to_bytepos() in marker.c, because the point has left the
> buffer bounds. I ran into this bug while trying to perform this
> replace-regexp while in a third-party markdown-mode, and narrowed it
> down to this combination of events.
>
> This bug also appears in emacs23 in both squeeze and sid as well as
> upstream and non-Debian builds of Emacs.
Thanks
--
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4
This bug report was last modified 12 years and 154 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.