branch: elpa/popon
commit 61b54bea8c59be176fb4259edf58d50b4dcaf97a
Author: Akib Azmain Turja <[email protected]>
Commit: Akib Azmain Turja <[email protected]>
Fix popon breaking when long lines aren't truncated
---
popon.el | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/popon.el b/popon.el
index fce57b0fde..ba9163fa11 100644
--- a/popon.el
+++ b/popon.el
@@ -290,16 +290,23 @@ when LINE-BEGINNINGS was calculated.")
(defun popon--make-overlays (framebuffer)
"Make overlays to display FRAMEBUFFER on window."
(let ((line-map nil))
- (let ((i 0))
- (dolist (line framebuffer)
- (when (nth 1 line)
- (let* ((key (cons (nth 4 line) (nth 5 line)))
- (pair (assoc key line-map)))
- (unless pair
- (setq pair (list key nil nil))
- (push pair line-map))
- (setf (cadr pair) (or (cadr pair) (nth 2 line)))
- (push (cons (- i (nth 3 line)) (car line)) (caddr pair))))
+ (let ((i 0)
+ (lines-left framebuffer))
+ (while lines-left
+ (let ((line (pop lines-left)))
+ (when (nth 1 line)
+ (when (and (/= (char-before (nth 4 line)) ?\n))
+ (let ((ov (make-overlay (nth 4 line) (nth 4 line))))
+ (push ov (window-parameter nil 'popon-overlays))
+ (overlay-put ov 'window (selected-window))
+ (overlay-put ov 'after-string "\n")))
+ (let* ((key (cons (nth 4 line) (nth 5 line)))
+ (pair (assoc key line-map)))
+ (unless pair
+ (setq pair (list key nil nil))
+ (push pair line-map))
+ (setf (cadr pair) (or (cadr pair) (nth 2 line)))
+ (push (cons (- i (nth 3 line)) (car line)) (caddr pair)))))
(setq i (1+ i))))
(dolist (block line-map)
(let ((ov (make-overlay (caar block) (cdar block))))