branch: externals/coterm
commit 07a257077458e5121817ccdb1ee4eb61317dd662
Author: m <>
Commit: m <>
Work around a line wrapping issue with "less"
---
coterm.el | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/coterm.el b/coterm.el
index 2a5c4d1..2ce48e5 100644
--- a/coterm.el
+++ b/coterm.el
@@ -778,7 +778,7 @@ buffer and the scrolling region must cover the whole
screen."
(set-marker coterm--t-home-marker (point))
(setq coterm--t-home-offset 0)
(setq coterm--t-row (1- coterm--t-height))))
- (setq coterm--t-col (min column (1- coterm--t-width)))))
+ (setq coterm--t-col column)))
(defun coterm--t-adjust-from-pmark (pos)
"Point `coterm--t-row' and `coterm--t-col' POS."
@@ -888,6 +888,20 @@ buffer and the scrolling region must cover the whole
screen."
(+ coterm--t-col 8 (- (mod coterm--t-col 8)))))
(dirty))
(?\b (ins) ;; (terminfo: cub1)
+
+ (when (and (= coterm--t-col (1+ coterm--t-width))
+ (not (coterm--t-scroll-by-deletion-p))
+ (coterm--t-goto coterm--t-row coterm--t-col)
+ (eq (char-before) ?\s))
+ ;; Awkward hack to make line-wrapping work in "less".
+ ;; Very specific for the way "less" performs wrapping.
+ ;; For all other cases, coterm does not support any
+ ;; wrapping at all.
+ (delete-char -1)
+ (coterm--t-down-line proc-filt process)
+ (setq coterm--t-col 0)
+ (coterm--t-insert proc-filt process " " 0))
+
(setq coterm--t-col (max (1- coterm--t-col) 0))
(dirty))
(?\C-g (ins) ;; (terminfo: bel)