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

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

[elpa] externals/coterm e268359 59/80: Account for home marker repositio


From: ELPA Syncer
Subject: [elpa] externals/coterm e268359 59/80: Account for home marker reposition when clearing screen
Date: Wed, 13 Oct 2021 18:57:36 -0400 (EDT)

branch: externals/coterm
commit e268359ffc70d7fcbce6e55b00d15d857850ee6f
Author: m <>
Commit: m <>

    Account for home marker reposition when clearing screen
---
 coterm.el | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/coterm.el b/coterm.el
index abb3c83..4e0b424 100644
--- a/coterm.el
+++ b/coterm.el
@@ -519,12 +519,22 @@ region."
                  (if row2
                      (progn (coterm--t-goto row2 col2) (point))
                    (point-max)))
-  (when (eolp)
-    (let ((opoint (point)))
-      (skip-chars-backward " ") (delete-region (point) opoint)))
-  (when (eobp)
-    (let ((opoint (point)))
-      (skip-chars-backward "\n") (delete-region (point) opoint)))
+  ;; Delete resulting trailing whitespace.  This may move the home marker under
+  ;; some circumstances ((coterm--t-delete-region 0 0), for example), so adjust
+  ;; it afterwards.
+  (let* ((home coterm--t-home-marker)
+         (old-home (marker-position home)))
+    (when (eolp)
+      (let ((opoint (point)))
+        (skip-chars-backward " ") (delete-region (point) opoint)))
+    (when (eobp)
+      (let ((opoint (point)))
+        (skip-chars-backward "\n") (delete-region (point) opoint)))
+    (unless (= old-home home)
+      (cl-incf coterm--t-home-offset (- old-home home))
+      (goto-char home)
+      (forward-line 0)
+      (set-marker home (point))))
   (setq coterm--t-pmark-in-sync nil))
 
 (defun coterm--t-open-space (proc-filt process newlines spaces)



reply via email to

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