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

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

[nongnu] elpa/evil f64cdca60a: evil-change only open newline if delete-f


From: ELPA Syncer
Subject: [nongnu] elpa/evil f64cdca60a: evil-change only open newline if delete-func deleted line
Date: Tue, 5 Jul 2022 10:58:27 -0400 (EDT)

branch: elpa/evil
commit f64cdca60ad55b0a5f77c0fc38f82d42822f88b3
Author: Tom Dalziel <tom_dl@hotmail.com>
Commit: Tom Dalziel <33435574+tomdl89@users.noreply.github.com>

    evil-change only open newline if delete-func deleted line
    
    fixes #1636
---
 evil-commands.el | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/evil-commands.el b/evil-commands.el
index 44675aa1aa..94a43f5b61 100644
--- a/evil-commands.el
+++ b/evil-commands.el
@@ -1698,18 +1698,22 @@ of the block."
   (interactive "<R><x><y>")
   (let ((delete-func (or delete-func #'evil-delete))
         (nlines (1+ (evil-count-lines beg end)))
-        (opoint (save-excursion
-                  (goto-char beg)
-                  (line-beginning-position))))
+        opoint leftmost-point)
+    (save-excursion
+      (goto-char beg)
+      (setq opoint (line-beginning-position))
+      (setq leftmost-point
+            (let ((inhibit-field-text-motion t)) (line-beginning-position))))
     (unless (eq evil-want-fine-undo t)
       (evil-start-undo-step))
     (funcall delete-func beg end type register yank-handler)
     (cond
      ((eq type 'line)
       (setq this-command 'evil-change-whole-line) ; for 
evil-maybe-remove-spaces
-      (if (= opoint (point))
-          (evil-open-above 1)
-        (evil-open-below 1)))
+      (cond
+       ((/= opoint leftmost-point) (evil-insert 1)) ; deletion didn't delete 
line
+       ((= opoint (point)) (evil-open-above 1))
+       (t (evil-open-below 1))))
      ((eq type 'block)
       (evil-insert 1 nlines))
      (t



reply via email to

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