emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/diff-hl a682de6 2/2: If there is no hunk at or above po


From: ELPA Syncer
Subject: [elpa] externals/diff-hl a682de6 2/2: If there is no hunk at or above point, search below
Date: Mon, 30 Aug 2021 21:57:15 -0400 (EDT)

branch: externals/diff-hl
commit a682de60187763128d2d0a85f1d168d89877691f
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    If there is no hunk at or above point, search below
    
    Resolves #169
---
 diff-hl-show-hunk.el |  7 +++----
 diff-hl.el           | 12 ++++++++++--
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/diff-hl-show-hunk.el b/diff-hl-show-hunk.el
index f8998b7..10473da 100644
--- a/diff-hl-show-hunk.el
+++ b/diff-hl-show-hunk.el
@@ -345,11 +345,10 @@ The backend is determined by 
`diff-hl-show-hunk-function'."
   (save-excursion
     (diff-hl-show-hunk-hide))
 
-  (cond
-   ((not (vc-backend buffer-file-name))
+  (unless (vc-backend buffer-file-name)
     (user-error "The buffer is not under version control"))
-   ((not (diff-hl-hunk-overlay-at (point)))
-    (diff-hl-previous-hunk)))
+
+  (diff-hl-find-current-hunk)
 
   (setq diff-hl-show-hunk--original-overlay nil)
 
diff --git a/diff-hl.el b/diff-hl.el
index 1c1bf51..5481caa 100644
--- a/diff-hl.el
+++ b/diff-hl.el
@@ -540,8 +540,7 @@ in the source file, or the last line of the hunk above it."
     (let ((diff-buffer (generate-new-buffer-name "*diff-hl*"))
           (buffer (current-buffer))
           (line (save-excursion
-                  (unless (diff-hl-hunk-overlay-at (point))
-                    (diff-hl-previous-hunk))
+                  (diff-hl-find-current-hunk)
                   (line-number-at-pos)))
           (fileset (vc-deduce-fileset)))
       (unwind-protect
@@ -625,6 +624,15 @@ in the source file, or the last line of the hunk above it."
   (interactive)
   (diff-hl-next-hunk t))
 
+(defun diff-hl-find-current-hunk ()
+  (let (o)
+    (cond
+     ((diff-hl-hunk-overlay-at (point)))
+     ((setq o (diff-hl-search-next-hunk t))
+      (goto-char (overlay-start o)))
+     (t
+      (diff-hl-next-hunk)))))
+
 (defun diff-hl-mark-hunk ()
   (interactive)
   (let ((hunk (diff-hl-hunk-overlay-at (point))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]