aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1994-03-01 06:19:22 +0000
committerKarl Heuer1994-03-01 06:19:22 +0000
commitad8fb8aec74d7361695f84e89d6ffce47f480bf1 (patch)
tree8b7c78b4e6ca6d44984885b3ad44ff9e38d5110a
parent54a003f758c6d514051aebc67249fe7a224620cd (diff)
downloademacs-ad8fb8aec74d7361695f84e89d6ffce47f480bf1.tar.gz
emacs-ad8fb8aec74d7361695f84e89d6ffce47f480bf1.zip
(picture-forward-column, picture-backward-column): Allow backward motion
across multi-column characters.
-rw-r--r--lisp/textmodes/picture.el10
1 files 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."
76 "Move cursor right, making whitespace if necessary. 76 "Move cursor right, making whitespace if necessary.
77With argument, move that many columns." 77With argument, move that many columns."
78 (interactive "p") 78 (interactive "p")
79 (move-to-column-force (+ (current-column) arg))) 79 (let ((target-column (+ (current-column) arg)))
80 (move-to-column-force target-column)
81 ;; Picture mode isn't really suited to multi-column characters,
82 ;; but we might as well let the user move across them.
83 (and (< arg 0)
84 (> (current-column) target-column)
85 (forward-char -1))))
80 86
81(defun picture-backward-column (arg) 87(defun picture-backward-column (arg)
82 "Move cursor left, making whitespace if necessary. 88 "Move cursor left, making whitespace if necessary.
83With argument, move that many columns." 89With argument, move that many columns."
84 (interactive "p") 90 (interactive "p")
85 (move-to-column-force (- (current-column) arg))) 91 (picture-forward-column (- arg)))
86 92
87(defun picture-move-down (arg) 93(defun picture-move-down (arg)
88 "Move vertically down, making whitespace if necessary. 94 "Move vertically down, making whitespace if necessary.