From 258e3295297a7255fe98e020ea10a4a9367a236f Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 30 Jul 1998 01:34:38 +0000 Subject: [PATCH] (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. --- lisp/mouse.el | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lisp/mouse.el b/lisp/mouse.el index 1902db0a32d..be760126499 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -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))) -- 2.39.2