GNU bug report logs - #4368
23.1; diff-hunk-kill -vs- final hunk in a file

Previous Next

Package: emacs;

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.

View this report as an mbox folder, status mbox, maintainer mbox


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

From: Tom Tromey <tromey <at> redhat.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.1; diff-hunk-kill -vs- final hunk in a file
Date: Mon, 07 Sep 2009 22:13:27 -0600
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):

From: Andreas Schwab <schwab <at> linux-m68k.org>
To: Tom Tromey <tromey <at> redhat.com>
Cc: 4368 <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
Subject: Re: bug#4368: 23.1; diff-hunk-kill -vs- final hunk in a file
Date: Tue, 08 Sep 2009 11:14:25 +0200
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):

From: Tom Tromey <tromey <at> redhat.com>
To: Andreas Schwab <schwab <at> linux-m68k.org>
Cc: 4368 <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
Subject: Re: bug#4368: 23.1; diff-hunk-kill -vs- final hunk in a file
Date: Tue, 08 Sep 2009 09:43:30 -0600
>>>>> "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):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Tom Tromey <tromey <at> redhat.com>
Cc: 4368 <at> debbugs.gnu.org
Subject: Re: bug#4368: 23.1; diff-hunk-kill -vs- final hunk in a file
Date: Tue, 08 Sep 2009 17:47:57 -0400
> 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):

From: Tom Tromey <tromey <at> redhat.com>
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: 4368 <at> debbugs.gnu.org
Subject: Re: bug#4368: 23.1; diff-hunk-kill -vs- final hunk in a file
Date: Tue, 08 Sep 2009 20:27:41 -0600
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):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Tom Tromey <tromey <at> redhat.com>
Subject: Re: bug#4368: 23.1; diff-hunk-kill -vs- final hunk in a file
Date: Wed, 09 Sep 2009 10:49:29 -0400
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.