summaryrefslogtreecommitdiff
path: root/lisp/ibuffer.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/ibuffer.el')
-rw-r--r--lisp/ibuffer.el11
1 files changed, 5 insertions, 6 deletions
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 8c641797858..faadb67408a 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1558,18 +1558,17 @@ If point is on a group name, this function operates on that group."
,(if from-end-p
`(concat ,ellipsis
(substring ,strvar
- (length ibuffer-eliding-string)))
- `(concat
- (substring ,strvar 0 (- strlen ,(length ellipsis)))
+ (string-width ibuffer-eliding-string)))
+ `(truncate-string-to-width
+ ,strvar strlen nil nil
,ellipsis))
,strvar)
strvar)))
(defun ibuffer-compile-make-substring-form (strvar maxvar from-end-p)
(if from-end-p
- `(substring str
- (- strlen ,maxvar))
- `(substring ,strvar 0 ,maxvar)))
+ `(truncate-string-to-width str (string-width str) (- strlen ,maxvar))
+ `(truncate-string-to-width ,strvar ,maxvar)))
(defun ibuffer-compile-make-format-form (strvar widthform alignment)
(let* ((left `(make-string tmp2 ?\s))