From ad8fb8aec74d7361695f84e89d6ffce47f480bf1 Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Tue, 1 Mar 1994 06:19:22 +0000 Subject: [PATCH] (picture-forward-column, picture-backward-column): Allow backward motion across multi-column characters. --- lisp/textmodes/picture.el | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el index 878161da481..72c7125593d 100644 --- a/lisp/textmodes/picture.el +++ b/lisp/textmodes/picture.el @@ -76,13 +76,19 @@ If scan reaches end of buffer, stop there without error." "Move cursor right, making whitespace if necessary. With argument, move that many columns." (interactive "p") - (move-to-column-force (+ (current-column) arg))) + (let ((target-column (+ (current-column) arg))) + (move-to-column-force target-column) + ;; Picture mode isn't really suited to multi-column characters, + ;; but we might as well let the user move across them. + (and (< arg 0) + (> (current-column) target-column) + (forward-char -1)))) (defun picture-backward-column (arg) "Move cursor left, making whitespace if necessary. With argument, move that many columns." (interactive "p") - (move-to-column-force (- (current-column) arg))) + (picture-forward-column (- arg))) (defun picture-move-down (arg) "Move vertically down, making whitespace if necessary. -- 2.39.5