(mouse-skip-word): If point is at word constituent

characters, pay attention to word-separating-categories by using
forward-word instead of skip-syntax-forward/backward.
This commit is contained in:
Kenichi Handa 1998-07-30 01:34:38 +00:00
parent 8a8a9abe0c
commit 258e329529

View file

@ -639,7 +639,18 @@ remains active. Otherwise, it remains until the next input event."
If DIR is positive skip forward; if negative, skip backward."
(let* ((char (following-char))
(syntax (char-to-string (char-syntax char))))
(cond ((or (string= syntax "w") (string= syntax " "))
(cond ((string= syntax "w")
;; Here, we can't use skip-syntax-forward/backward because
;; they don't pay attention to word-separating-categories,
;; and thus they will skip over a true word boundary. So,
;; we simularte the original behaviour by using
;; forward-word.
(if (< dir 0)
(if (not (looking-at "\\<"))
(forward-word -1))
(if (or (looking-at "\\<") (not (looking-at "\\>")))
(forward-word 1))))
((string= syntax " ")
(if (< dir 0)
(skip-syntax-backward syntax)
(skip-syntax-forward syntax)))