GNU bug report logs -
#4368
23.1; diff-hunk-kill -vs- final hunk in a file
Previous Next
Reported by: Tom Tromey <tromey <at> redhat.com>
Date: Tue, 8 Sep 2009 04:20:05 UTC
Severity: normal
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 4368 in the body.
You can then email your comments to 4368 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4368
; Package
emacs
.
(Tue, 08 Sep 2009 04:20:05 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Tom Tromey <tromey <at> redhat.com>
:
New bug report received and forwarded. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 08 Sep 2009 04:20:06 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.
Your bug report will be posted to the bug-gnu-emacs <at> gnu.org mailing list,
and to the gnu.emacs.bug news group.
Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:
I'm using diff-mode to edit a patch.
The patch was generated by "git diff".
I typed M-k to remove the last hunk in a file.
However, it left the "header" around:
diff --git a/src/data.c b/src/data.c
index 7b59673..9063cef 100644
--- a/src/data.c
+++ b/src/data.c
diff --git a/src/eval.c b/src/eval.c
index 4b7aa32..dbaa385 100644
--- a/src/eval.c
[...]
This yielded an invalid patch.
If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
`bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/share/emacs/23.1/etc/DEBUG for instructions.
In GNU Emacs 23.1.1 (i386-redhat-linux-gnu, GTK+ Version 2.16.5)
of 2009-08-24 on x86-2.fedora.phx.redhat.com
Windowing system distributor `The X.Org Foundation', version 11.0.10601901
configured using `configure '--build=i386-redhat-linux-gnu' '--host=i386-redhat-linux-gnu' '--target=i586-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-dbus' '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xft' '--with-xpm' '--with-x-toolkit=gtk' 'build_alias=i386-redhat-linux-gnu' 'host_alias=i386-redhat-linux-gnu' 'target_alias=i586-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Diff
Minor modes in effect:
shell-dirtrack-mode: t
diff-auto-refine-mode: t
erc-list-mode: t
erc-menu-mode: t
erc-autojoin-mode: t
erc-ring-mode: t
erc-pcomplete-mode: t
erc-track-mode: t
erc-track-minor-mode: t
erc-match-mode: t
erc-button-mode: t
erc-fill-mode: t
erc-stamp-mode: t
erc-netsplit-mode: t
erc-spelling-mode: t
erc-truncate-mode: t
erc-status-mode: t
erc-services-mode: t
erc-networks-mode: t
erc-irccontrols-mode: t
erc-noncommands-mode: t
erc-move-to-prompt-mode: t
erc-readonly-mode: t
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
global-auto-composition-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
g i t - r e v e r t RET C-x o C-x 1 C-v C-v C-l ESC
v C-x b * s h TAB RET f r o m RET C-x b RET C-l ESC
v C-h u g i t - r e s e t RET C-x o C-x 1 C-v C-v C-v
C-v C-v k C-x b * s h TAB RET C-r 8 a 9 C-w C-r C-r
C-r C-r C-x C-f / t m p / L RET C-s C-s C-a ESC v ESC
v ESC v ESC v C-x b RET ESC p ESC p ESC DEL Q ESC b
ESC b ESC b ESC b ESC t C-_ ESC f ESC t RET C-x C-f
/ t m p / Q RET C-v C-v C-x k RET g i t C-a C-k . RET
g i t SPC a p p l y SPC / t m p / Q RET g i t SPC s
t a t u s RET C-c C-o g i t SPC c o m m i t SPC - a
SPC - m ' r e v e r t SPC a SPC f e w SPC p a t c h
e s SPC b y SPC h n d DEL DEL a n d ' RET g i t SPC
a p p l y SPC t / DEL DEL / t m p / P RET C-x C-f /
t m p / P RET C-c g 1 4 6 RET ESC x r e p o r t - e
m TAB b TAB RET d i f f - C-g C-h k ESC k ESC x r e
p o r t - e m TAB b TAB RET
Recent messages:
Please wait: formatting the git-reset man page...
git-reset man page formatted
Mark saved where search started [2 times]
call-interactively: Beginning of buffer [4 times]
History item: 1
History item: 2
Undo!
Mark set
Quit
Type C-x 1 to delete the help window.
Tom
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4368
; Package
emacs
.
(Tue, 08 Sep 2009 09:20:04 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Andreas Schwab <schwab <at> linux-m68k.org>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 08 Sep 2009 09:20:04 GMT)
Full text and
rfc822 format available.
Message #10 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
Tom Tromey <tromey <at> redhat.com> writes:
> I'm using diff-mode to edit a patch.
> The patch was generated by "git diff".
> I typed M-k to remove the last hunk in a file.
> However, it left the "header" around:
Use M-K instead, this will also remove the header.
Andreas.
--
Andreas Schwab, schwab <at> linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4368
; Package
emacs
.
(Tue, 08 Sep 2009 09:20:06 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Andreas Schwab <schwab <at> linux-m68k.org>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 08 Sep 2009 09:20:06 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4368
; Package
emacs
.
(Tue, 08 Sep 2009 15:50:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Tom Tromey <tromey <at> redhat.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 08 Sep 2009 15:50:03 GMT)
Full text and
rfc822 format available.
Message #20 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
>>>>> "Andreas" == Andreas Schwab <schwab <at> linux-m68k.org> writes:
>> I'm using diff-mode to edit a patch.
>> The patch was generated by "git diff".
>> I typed M-k to remove the last hunk in a file.
>> However, it left the "header" around:
Andreas> Use M-K instead, this will also remove the header.
Yeah, I knew about M-K. I was editing the patch, deleting hunks
one-by-one, and I didn't notice that I was about to delete the last hunk
from a file. It would be nicer if diff-mode handled this for me, so
that I didn't accidentally create a bogus patch.
Tom
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4368
; Package
emacs
.
(Tue, 08 Sep 2009 15:50:05 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Tom Tromey <tromey <at> redhat.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 08 Sep 2009 15:50:05 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4368
; Package
emacs
.
(Tue, 08 Sep 2009 21:55:05 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Stefan Monnier <monnier <at> IRO.UMontreal.CA>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Tue, 08 Sep 2009 21:55:06 GMT)
Full text and
rfc822 format available.
Message #30 received at 4368 <at> emacsbugs.donarmstrong.com (full text, mbox):
> I'm using diff-mode to edit a patch.
> The patch was generated by "git diff".
> I typed M-k to remove the last hunk in a file.
> However, it left the "header" around:
> diff --git a/src/data.c b/src/data.c
> index 7b59673..9063cef 100644
> --- a/src/data.c
> +++ b/src/data.c
> diff --git a/src/eval.c b/src/eval.c
> index 4b7aa32..dbaa385 100644
> --- a/src/eval.c
> [...]
Can you show the content before the last M-k ?
Stefan
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#4368
; Package
emacs
.
(Wed, 09 Sep 2009 02:35:05 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Tom Tromey <tromey <at> redhat.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Wed, 09 Sep 2009 02:35:05 GMT)
Full text and
rfc822 format available.
Message #35 received at 4368 <at> emacsbugs.donarmstrong.com (full text, mbox):
Stefan> Can you show the content before the last M-k ?
The appended is a sample diff. I just grabbed a couple random hunks
from the actual diff I was editing. It was originally made by git.
Put it in a file, then M-x diff-mode.
M-n to go to the first @@.
M-k.
You will see that all the header info from lisp.h remains in the buffer.
I don't think you even need the second file diff in there to see this, a
single file will do.
Tom
diff --git a/src/lisp.h b/src/lisp.h
index 4807794..c619bcf 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1545,6 +1519,7 @@ typedef struct {
#define SUB_CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_SUB_CHAR_TABLE)
#define BOOL_VECTOR_P(x) PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)
#define FRAMEP(x) PSEUDOVECTORP (x, PVEC_FRAME)
+#define THREADP(x) PSEUDOVECTORP (x, PVEC_THREAD)
/* Test for image (image . spec) */
#define IMAGEP(x) (CONSP (x) && EQ (XCAR (x), Qimage))
diff --git a/src/window.c b/src/window.c
index 1b2305d..283dcff 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5898,7 +5898,7 @@ struct save_window_data
struct Lisp_Vector *next_from_Lisp_Vector_struct;
Lisp_Object selected_frame;
Lisp_Object current_window;
- Lisp_Object current_buffer;
+ Lisp_Object m_current_buffer;
Lisp_Object minibuf_scroll_window;
Lisp_Object minibuf_selected_window;
Lisp_Object root_window;
Reply sent
to
Stefan Monnier <monnier <at> iro.umontreal.ca>
:
You have taken responsibility.
(Wed, 09 Sep 2009 14:55:05 GMT)
Full text and
rfc822 format available.
Notification sent
to
Tom Tromey <tromey <at> redhat.com>
:
bug acknowledged by developer.
(Wed, 09 Sep 2009 14:55:05 GMT)
Full text and
rfc822 format available.
Message #40 received at 4368-done <at> emacsbugs.donarmstrong.com (full text, mbox):
Stefan> Can you show the content before the last M-k ?
> The appended is a sample diff. I just grabbed a couple random hunks
> from the actual diff I was editing. It was originally made by git.
> Put it in a file, then M-x diff-mode.
> M-n to go to the first @@.
> M-k.
> You will see that all the header info from lisp.h remains in the buffer.
> I don't think you even need the second file diff in there to see this, a
> single file will do.
Hmm... indeed it fails all the time. Yet, I'm sure it used to work.
Anyway, the patch below seems to fix it.
Thanks,
Stefan
Index: lisp/diff-mode.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/diff-mode.el,v
retrieving revision 1.161
diff -u -r1.161 diff-mode.el
--- lisp/diff-mode.el 1 Sep 2009 07:24:18 -0000 1.161
+++ lisp/diff-mode.el 9 Sep 2009 14:47:45 -0000
@@ -546,7 +546,8 @@
(interactive)
(diff-beginning-of-hunk)
(let* ((start (point))
- (nexthunk (when (re-search-forward diff-hunk-header-re nil t)
+ ;; Search the second match, since we're looking at the first.
+ (nexthunk (when (re-search-forward diff-hunk-header-re nil t 2)
(match-beginning 0)))
(firsthunk (ignore-errors
(goto-char start)
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> emacsbugs.donarmstrong.com
.
(Thu, 08 Oct 2009 14:24:11 GMT)
Full text and
rfc822 format available.
This bug report was last modified 15 years and 341 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.