From: Lars Ingebrigtsen Date: Sat, 8 Oct 2022 13:26:01 +0000 (+0200) Subject: Fix vtable-insert-object line insertion X-Git-Tag: emacs-29.0.90~1616^2~695 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5017f2573f7f878a05f82f69d96e50a6f4d78ec0;p=emacs.git Fix vtable-insert-object line insertion * lisp/emacs-lisp/vtable.el (vtable-insert-object): Pass in the correct ellipsis values (bug#58370). (vtable--insert-line): Don't bug out on missing optional arguments. --- diff --git a/lisp/emacs-lisp/vtable.el b/lisp/emacs-lisp/vtable.el index 9bdf90bf1d6..de8503a1cb1 100644 --- a/lisp/emacs-lisp/vtable.el +++ b/lisp/emacs-lisp/vtable.el @@ -353,6 +353,11 @@ This also updates the displayed table." (let* ((cache (vtable--cache table)) (inhibit-read-only t) (keymap (get-text-property (point) 'keymap)) + (ellipsis (if (vtable-ellipsis table) + (propertize (truncate-string-ellipsis) + 'face (vtable-face table)) + "")) + (ellipsis-width (string-pixel-width ellipsis)) (elem (and after-object (assq after-object (car cache)))) (line (cons object (vtable--compute-cached-line table object)))) @@ -370,7 +375,8 @@ This also updates the displayed table." ;; FIXME: We have to adjust colors in lines below this if we ;; have :row-colors. (vtable--insert-line table line 0 - (nth 1 cache) (vtable--spacer table)) + (nth 1 cache) (vtable--spacer table) + ellipsis ellipsis-width) (add-text-properties start (point) (list 'keymap keymap 'vtable table))) ;; We may have inserted a non-numerical value into a previously @@ -516,7 +522,8 @@ This also updates the displayed table." (if (> (nth 1 elem) (elt widths index)) (concat (vtable--limit-string - pre-computed (- (elt widths index) ellipsis-width)) + pre-computed (- (elt widths index) + (or ellipsis-width 0))) ellipsis) pre-computed)) ;; Recompute widths. @@ -524,7 +531,8 @@ This also updates the displayed table." (if (> (string-pixel-width value) (elt widths index)) (concat (vtable--limit-string - value (- (elt widths index) ellipsis-width)) + value (- (elt widths index) + (or ellipsis-width 0))) ellipsis) value)))) (start (point))