summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/generator.el3
-rw-r--r--lisp/emacs-lisp/tabulated-list.el15
2 files changed, 15 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/generator.el b/lisp/emacs-lisp/generator.el
index 410e4edcc92..ef6cfba420c 100644
--- a/lisp/emacs-lisp/generator.el
+++ b/lisp/emacs-lisp/generator.el
@@ -718,7 +718,8 @@ is blocked."
"Loop over values from an iterator.
Evaluate BODY with VAR bound to each value from ITERATOR.
Return the value with which ITERATOR finished iteration."
- (declare (indent 1))
+ (declare (indent 1)
+ (debug ((symbolp form) body)))
(let ((done-symbol (cps--gensym "iter-do-iterator-done"))
(condition-symbol (cps--gensym "iter-do-condition"))
(it-symbol (cps--gensym "iter-do-iterator"))
diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el
index 73ddadfb805..3889ba8e587 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -603,7 +603,16 @@ With a numeric prefix argument N, sort the Nth column."
(let ((lnum-width (tabulated-list-line-number-width)))
(when (not (= tabulated-list--current-lnum-width lnum-width))
(setq-local tabulated-list--current-lnum-width lnum-width)
- (tabulated-list-revert)))))
+ (tabulated-list-init-header)))))
+
+(defun tabulated-list-window-scroll-function (window _start)
+ (if display-line-numbers
+ (let ((lnum-width
+ (with-selected-window window
+ (line-number-display-width 'columns))))
+ (when (not (= tabulated-list--current-lnum-width lnum-width))
+ (setq-local tabulated-list--current-lnum-width lnum-width)
+ (tabulated-list-init-header)))))
;;; The mode definition:
@@ -654,7 +663,9 @@ as the ewoc pretty-printer."
;; the line-number width needs to change due to scrolling.
(setq-local tabulated-list--current-lnum-width 0)
(add-hook 'pre-redisplay-functions
- #'tabulated-list-watch-line-number-width nil t))
+ #'tabulated-list-watch-line-number-width nil t)
+ (add-hook 'window-scroll-functions
+ #'tabulated-list-window-scroll-function nil t))
(put 'tabulated-list-mode 'mode-class 'special)