Subject: bug#25570: closed (Re: bug#25570: 24.5; diff-hunk-kill: Show more clear error messages)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 02 Feb 2017 13:34:03 +0000

Your bug report

#25570: 24.5; diff-hunk-kill: Show more clear error messages

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].

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

Subject: Re: bug#25570: 24.5; diff-hunk-kill: Show more clear error messages
From: Tino Calancha <[email-masked]>
To: [email-masked]
Date: Thu, 02 Feb 2017 22:33:16 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Tino Calancha <[email-masked]> writes:

> emacs -Q:
> ; Put following content in a buffer in diff-mode:
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; START
> diff --git a/a b/a
> index 184cbf6..d2d9a24 100644
> --- a/a
> +++ b/a
> @@ -1,2 +1,2 @@
> -I have a foo in my bar.
> +I have a qux in my bar.
>  Me too.
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; END
> < ; Go to beginning of buffer
> M-k ; Signal error: Can't find the beginning of the file.
> M-K ; Same.
> M-n M-k ; Delete hunk OK, but it shows previous error in echo area.
Pushed fix to master branch as commit 01d87bf846b478dea0bfe824678e76089f5af2c7

Subject: 24.5; diff-hunk-kill: Show more clear error messages
From: Tino Calancha <[email-masked]>
To: [email-masked]
Date: Sun, 29 Jan 2017 20:36:41 +0900 (JST)
List-Id: <debbugs-submit.debbugs.gnu.org>

emacs -Q:
; Put following content in a buffer in diff-mode:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; START
diff --git a/a b/a
index 184cbf6..d2d9a24 100644
--- a/a
+++ b/a
@@ -1,2 +1,2 @@
-I have a foo in my bar.
+I have a qux in my bar.
  Me too.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; END
< ; Go to beginning of buffer
M-k ; Signal error: Can't find the beginning of the file.
M-K ; Same.
M-n M-k ; Delete hunk OK, but it shows previous error in echo area.

I propose the following patch:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>From 10af5a6466328acff37485364f8332a8043872e8 Mon Sep 17 00:00:00 2001
From: Tino Calancha <[email-masked]>
Date: Sun, 29 Jan 2017 20:17:09 +0900
Subject: [PATCH] Ignore error after kill last file or hunk

* lisp/vc/diff-mode.el (diff-hunk-kill): Ignore error after kill last hunk.
(diff-file-kill): Idem.
Go to beginning of hunk before kill (Bug#25570).
---
  lisp/vc/diff-mode.el | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index e609ca9f94..3f3ade799b 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -668,7 +668,7 @@ diff-hunk-kill
  	 (inhibit-read-only t))
      (apply 'kill-region bounds)
      (goto-char (car bounds))
-    (diff-beginning-of-hunk t)))
+    (ignore-errors (diff-beginning-of-hunk t))))

  (defun diff-beginning-of-file-and-junk ()
    "Go to the beginning of file-related diff-info.
@@ -720,9 +720,10 @@ diff-beginning-of-file-and-junk
  (defun diff-file-kill ()
    "Kill current file's hunks."
    (interactive)
+  (diff-beginning-of-hunk t)
    (let ((inhibit-read-only t))
      (apply 'kill-region (diff-bounds-of-file)))
-  (diff-beginning-of-hunk t))
+  (ignore-errors (diff-beginning-of-hunk t)))

  (defun diff-kill-junk ()
    "Kill spurious empty diffs."
-- 
2.11.0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
In GNU Emacs 26.0.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.6)
  of 2017-01-29
Repository revision: 0073223c23749ffd6bd3f882bc30a82cc37efd2a