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

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

[elpa] externals/agitate 14ad0342d6 4/6: Refine agitate-log-view-kill-re


From: ELPA Syncer
Subject: [elpa] externals/agitate 14ad0342d6 4/6: Refine agitate-log-view-kill-revision-expanded
Date: Thu, 29 Sep 2022 08:57:17 -0400 (EDT)

branch: externals/agitate
commit 14ad0342d60a31f7db03fb917a130806712398c7
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Refine agitate-log-view-kill-revision-expanded
---
 agitate.el | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/agitate.el b/agitate.el
index 73c93fc1a5..65994048e6 100644
--- a/agitate.el
+++ b/agitate.el
@@ -263,26 +263,28 @@ With optional BACK, find the beginning, else the end."
       (forward-line (nth 2 motion))
       (point))))
 
+(defun agitate--log-view-kill-message (pos)
+  "Do what `agitate-log-view-kill-revision-expanded' describes for POS."
+  (kill-new
+   (buffer-substring-no-properties
+    (agitate--log-view-revision-expanded-bounds :back)
+    (agitate--log-view-revision-expanded-bounds)))
+  (message "Copied message of `%s' revision"
+           (save-excursion (cadr (log-view-current-entry pos t)))))
+
 ;;;###autoload
 (defun agitate-log-view-kill-revision-expanded ()
   "Append to `kill-ring' expanded message of log-view revision at point."
   (interactive nil log-view-mode)
-  (let ((pos (point)))
-    ;; TODO 2022-09-29: Rewrite this to avoid repetition...
-    (cond
-     ((log-view-inside-comment-p pos)
-      (kill-new
-       (buffer-substring-no-properties
-        (agitate--log-view-revision-expanded-bounds :back)
-        (agitate--log-view-revision-expanded-bounds))))
-     ((agitate--log-view-on-revision-p pos)
+  (let ((pos (point))
+        opos)
+    (when (agitate--log-view-on-revision-p pos)
+      (setq opos (point))
       (forward-line 1)
-      (kill-new
-       (buffer-substring-no-properties
-        (agitate--log-view-revision-expanded-bounds :back)
-        (agitate--log-view-revision-expanded-bounds)))))
-    (message "Copied message of `%s' revision"
-             (cadr (log-view-current-entry pos t)))))
+      (setq pos (point)))
+    (if (log-view-inside-comment-p pos)
+        (agitate--log-view-kill-message pos)
+      (goto-char opos))))
 
 ;;;; Commands for vc-git (Git backend for the Version Control framework)
 



reply via email to

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