[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master e3f5370 37/57: Handle case where full line is not selected
From: |
Justin Burkett |
Subject: |
[elpa] master e3f5370 37/57: Handle case where full line is not selected in selective send |
Date: |
Tue, 3 Nov 2020 14:32:23 -0500 (EST) |
branch: master
commit e3f5370d7b32dabf44f5ceb2d169e75feb17043b
Author: Justin Burkett <justin@burkett.cc>
Commit: Justin Burkett <justin@burkett.cc>
Handle case where full line is not selected in selective send
---
vdiff.el | 47 ++++++++++++++++++++++++++++++++---------------
1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/vdiff.el b/vdiff.el
index 07bdc69..bb7c7bb 100644
--- a/vdiff.el
+++ b/vdiff.el
@@ -1378,18 +1378,35 @@ immediately preceding line."
(call-interactively 'vdiff-receive-changes)
(call-interactively 'vdiff-next-hunk))
+(defun vdiff--maybe-beginning-of-line (beg)
+ (when (number-or-marker-p beg)
+ (save-excursion
+ (goto-char beg)
+ (line-beginning-position))))
+
+(defun vdiff--maybe-end-of-line (end)
+ (when (number-or-marker-p end)
+ (save-excursion
+ (goto-char end)
+ (unless (= (char-before) ?\n)
+ (forward-line))
+ (point))))
+
(defun vdiff--transmit-addition (ovr &optional targets beg end)
"Send text in OVR to corresponding overlay in other buffer."
(if (not (overlayp ovr))
(message "No change found")
(let* ((target-ovrs (or targets (vdiff--target-overlays ovr)))
- (beg (if (numberp beg)
- (max beg (overlay-start ovr))
- (overlay-start ovr)))
- (end (if (numberp end)
- (min end (overlay-end ovr))
- (overlay-end ovr)))
- (text (buffer-substring-no-properties beg end)))
+ ;; Expand to full line
+ (beg (vdiff--maybe-beginning-of-line beg))
+ (end (vdiff--maybe-end-of-line end))
+ (text (buffer-substring-no-properties
+ (if beg
+ (max beg (overlay-start ovr))
+ (overlay-start ovr))
+ (if end
+ (min end (overlay-end ovr))
+ (overlay-end ovr)))))
(dolist (target target-ovrs)
(with-current-buffer (overlay-buffer target)
(save-excursion
@@ -1403,15 +1420,15 @@ immediately preceding line."
(if (not (overlayp ovr))
(message "No change found")
(let* ((target-ovrs (or targets (vdiff--target-overlays ovr)))
- (beg (and (numberp beg) beg))
- (end (and (numberp end) end))
- (this-beg (if beg
- (max beg (overlay-start ovr))
- (overlay-start ovr)))
- (this-end (if end
+ (beg (vdiff--maybe-beginning-of-line beg))
+ (end (vdiff--maybe-end-of-line end))
+ (text (buffer-substring-no-properties
+ (if beg
+ (max beg (overlay-start ovr))
+ (overlay-start ovr))
+ (if end
(min end (overlay-end ovr))
- (overlay-end ovr)))
- (text (buffer-substring-no-properties this-beg this-end))
+ (overlay-end ovr))))
(target-beg-line
(when beg
(caar (vdiff--translate-line (line-number-at-pos beg)))))
- [elpa] master 40ffc92 29/57: Warn on bad initialization of vdiff session., (continued)
- [elpa] master 40ffc92 29/57: Warn on bad initialization of vdiff session., Justin Burkett, 2020/11/03
- [elpa] master 0e10521 31/57: Merge pull request #20 from edkolev/patch-1, Justin Burkett, 2020/11/03
- [elpa] master f2a622f 34/57: Improve vdiff-toggle-fold, Justin Burkett, 2020/11/03
- [elpa] master 45f7019 19/57: Add basic send and receive tests, Justin Burkett, 2020/11/03
- [elpa] master 773e3eb 28/57: Fix compiler warnings, Justin Burkett, 2020/11/03
- [elpa] master 3bfb5de 32/57: Truncate long lines by default, Justin Burkett, 2020/11/03
- [elpa] master c806fe2 36/57: Allow selective sending in change hunks, Justin Burkett, 2020/11/03
- [elpa] master 007e44b 56/57: Version 0.2.4, Justin Burkett, 2020/11/03
- [elpa] master 69eacfe 18/57: Fix and simplify final newline detection, Justin Burkett, 2020/11/03
- [elpa] master 68d6ea3 23/57: Make name of vdiff-test consistent with prefixes, Justin Burkett, 2020/11/03
- [elpa] master e3f5370 37/57: Handle case where full line is not selected in selective send,
Justin Burkett <=
- [elpa] master 6c3731a 40/57: Fixup vdiff--transmit-change for 3way diffs, Justin Burkett, 2020/11/03
- [elpa] master ef899b8 46/57: Reset truncate-lines on cleanup, Justin Burkett, 2020/11/03
- [elpa] master c5e0cb0 47/57: Update gitignore, Justin Burkett, 2020/11/03
- [elpa] master 5b643c7 24/57: Add another send/receive test, Justin Burkett, 2020/11/03
- [elpa] master 4cc1ee5 35/57: Allow sending selective regions from additions, Justin Burkett, 2020/11/03
- [elpa] master 02309fc 38/57: Retain buffer identities in line maps, Justin Burkett, 2020/11/03
- [elpa] master 71b6f40 43/57: Bound target lines in vdiff--transmit-changes, Justin Burkett, 2020/11/03
- [elpa] master 0efde18 49/57: Improve behavior with respect to region selection, Justin Burkett, 2020/11/03
- [elpa] master 185e803 57/57: Merge commit '007e44be19d068fd6b49874b6e9b8df8b1f552bd', Justin Burkett, 2020/11/03
- [elpa] master 90f4b24 52/57: Ensure char-before doesn't cause an error, Justin Burkett, 2020/11/03