branch: elpa/magit
commit 3ec4a182a602ac890844588ab39829912f0e168d
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    magit--{bolp,eolp,bol-position,eol-position}: New utility functions
    
    It would have been better to define them in "magit-base.el",
    but then we couldn't use them in "magit-section.el".
---
 lisp/git-rebase.el    |  6 ++----
 lisp/magit-blame.el   |  4 +---
 lisp/magit-diff.el    |  6 ++----
 lisp/magit-section.el | 32 +++++++++++++++++++++++---------
 4 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/lisp/git-rebase.el b/lisp/git-rebase.el
index f552e4ae0d6..e408408edf5 100644
--- a/lisp/git-rebase.el
+++ b/lisp/git-rebase.el
@@ -375,10 +375,8 @@ non-nil, return the beginning and end of the current 
rebase line,
 if any."
   (cond
    ((use-region-p)
-    (let ((beg (save-excursion (goto-char (region-beginning))
-                               (line-beginning-position)))
-          (end (save-excursion (goto-char (region-end))
-                               (line-end-position))))
+    (let ((beg (magit--bol-position (region-beginning)))
+          (end (magit--eol-position (region-end))))
       (and (git-rebase-line-p beg)
            (git-rebase-line-p end)
            (list beg (1+ end)))))
diff --git a/lisp/magit-blame.el b/lisp/magit-blame.el
index fb27be3ef67..1e8f0ba52ba 100644
--- a/lisp/magit-blame.el
+++ b/lisp/magit-blame.el
@@ -599,9 +599,7 @@ modes is toggled, then this mode also gets toggled 
automatically.
     (magit-blame--update-heading-overlay ov)))
 
 (defun magit-blame--make-highlight-overlay (chunk beg)
-  (let ((ov (make-overlay beg (save-excursion
-                                (goto-char beg)
-                                (1+ (line-end-position))))))
+  (let ((ov (make-overlay beg (1+ (magit--eol-position beg)))))
     (overlay-put ov 'magit-blame-chunk chunk)
     (overlay-put ov 'magit-blame-highlight t)
     (magit-blame--update-highlight-overlay ov)))
diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index 644d3ea5b74..6eabd5345a3 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -3464,12 +3464,10 @@ are highlighted."
 ;;; Hunk Region
 
 (defun magit-diff-hunk-region-beginning ()
-  (save-excursion (goto-char (region-beginning))
-                  (line-beginning-position)))
+  (magit--bol-position (region-beginning)))
 
 (defun magit-diff-hunk-region-end ()
-  (save-excursion (goto-char (region-end))
-                  (line-end-position)))
+  (magit--eol-position (region-end)))
 
 (defun magit-diff-update-hunk-region (section)
   "Highlight the hunk-internal region if any."
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index 89d3c598712..49d4a4603b3 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -1620,9 +1620,7 @@ is explicitly expanded."
         (setq map (symbol-value map)))
       (put-text-property
        start
-       (save-excursion
-         (goto-char start)
-         (line-end-position))
+       (magit--eol-position start)
        'keymap (if map
                    (make-composed-keymap
                     (list map magit-section-heading-map))
@@ -1913,9 +1911,7 @@ When `magit-section-preserve-visibility' is nil, do 
nothing."
   (when (and magit-section-visibility-indicator
              (magit-section-content-p section))
     (let* ((beg (oref section start))
-           (eoh (save-excursion
-                  (goto-char beg)
-                  (line-end-position))))
+           (eoh (magit--eol-position beg)))
       (cond
        ((symbolp (car-safe magit-section-visibility-indicator))
         (let ((ov (magit--overlay-at beg 'magit-vis-indicator 'fringe)))
@@ -1983,9 +1979,7 @@ When `magit-section-preserve-visibility' is nil, do 
nothing."
              (= (oref section content)
                 (oref section end)))
     (dolist (o (overlays-in (oref section start)
-                            (save-excursion
-                              (goto-char (oref section start))
-                              (1+ (line-end-position)))))
+                            (1+ (magit--eol-position (oref section start)))))
       (when (overlay-get o 'magit-vis-indicator)
         (delete-overlay o)))))
 
@@ -2287,6 +2281,26 @@ Configuration'."
   (put-text-property beg end 'face face string)
   (put-text-property beg end 'font-lock-face face string))
 
+(defun magit--bolp (pos)
+  "Return t if POS is at the beginning of a line.
+This is like moving to POS and then calling `bolp'."
+  (save-excursion (goto-char pos) (bolp)))
+
+(defun magit--eolp (pos)
+  "Return t if POS is at the end of a line.
+This is like moving to POS and then calling `eolp'."
+  (save-excursion (goto-char pos) (bolp)))
+
+(defun magit--bol-position (pos)
+  "Return the position at the beginning of the line containing POS.
+This is like moving to POS and then calling `pos-bol'."
+  (save-excursion (goto-char pos) (pos-bol)))
+
+(defun magit--eol-position (pos)
+  "Return the position at the end of the line containing POS.
+This is like moving to POS and then calling `pos-eol'."
+  (save-excursion (goto-char pos) (pos-eol)))
+
 ;;; Imenu Support
 
 (defvar-local magit--imenu-group-types nil)

Reply via email to