mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
Fix movement to the left in picture-mode
* lisp/textmodes/picture.el (picture-insert): Measure width by counting columns on display, not by using 'string-width', because the latter is inaccurate when TABs are involved. (Bug#74255)
This commit is contained in:
parent
dbcd9d782c
commit
7dabfe9465
@ -264,9 +264,14 @@ Use \"\\[command-apropos] picture-movement\" to see commands which control motio
|
||||
(move-to-column picture-desired-column t))
|
||||
(let ((col (+ picture-desired-column width)))
|
||||
(or (eolp)
|
||||
(let ((pos (point)))
|
||||
(move-to-column col t)
|
||||
(let ((old-width (string-width (buffer-substring pos (point)))))
|
||||
(let ((pos (point))
|
||||
(col0 (current-column))
|
||||
col1)
|
||||
(setq col1 (move-to-column col t))
|
||||
;; We count columns, not width, because move-to-column
|
||||
;; could insert TABs, which width depends on horizontal
|
||||
;; position.
|
||||
(let ((old-width (- (max col0 col1) (min col0 col1))))
|
||||
(delete-region pos (point))
|
||||
(when (> old-width width)
|
||||
(insert-char ? (- old-width width))
|
||||
|
Loading…
Reference in New Issue
Block a user