emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog abbrev.el


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/lisp ChangeLog abbrev.el
Date: Wed, 25 Nov 2009 04:59:06 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/11/25 04:59:06

Modified files:
        lisp           : ChangeLog abbrev.el 

Log message:
        (abbrev--before-point): Use word-motion functions
        if :regexp is not specified (bug#5031).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.16726&r2=1.16727
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/abbrev.el?cvsroot=emacs&r1=1.85&r2=1.86

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.16726
retrieving revision 1.16727
diff -u -b -r1.16726 -r1.16727
--- ChangeLog   25 Nov 2009 03:59:19 -0000      1.16726
+++ ChangeLog   25 Nov 2009 04:59:02 -0000      1.16727
@@ -1,5 +1,8 @@
 2009-11-25  Stefan Monnier  <address@hidden>
 
+       * abbrev.el (abbrev--before-point): Use word-motion functions
+       if :regexp is not specified (bug#5031).
+
        * subr.el (string-prefix-p): New function.
 
        * man.el (Man-completion-cache): New var.

Index: abbrev.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/abbrev.el,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -b -r1.85 -r1.86
--- abbrev.el   19 Nov 2009 03:12:52 -0000      1.85
+++ abbrev.el   25 Nov 2009 04:59:05 -0000      1.86
@@ -671,11 +671,19 @@
           (setq tables (append (abbrev-table-get table :parents) tables))
           (setq res
                 (and (or (not enable-fun) (funcall enable-fun))
-                     (looking-back (or (abbrev-table-get table :regexp)
-                                       "\\<\\(\\w+\\)\\W*")
-                                   (line-beginning-position))
+                     (let ((re (abbrev-table-get table :regexp)))
+                       (if (null re)
+                           ;; We used to default `re' to "\\<\\(\\w+\\)\\W*"
+                           ;; but when words-include-escapes is set, that
+                           ;; is not right and fixing it is boring.
+                           (let ((lim (point)))
+                             (backward-word 1)
+                             (setq start (point))
+                             (forward-word 1)
+                             (setq end (min (point) lim)))
+                         (when (looking-back re (line-beginning-position))
                      (setq start (match-beginning 1))
-                     (setq end   (match-end 1))
+                           (setq end   (match-end 1)))))
                      (setq name  (buffer-substring start end))
                      (let ((abbrev (abbrev-symbol name table)))
                        (when abbrev




reply via email to

[Prev in Thread] Current Thread [Next in Thread]