]> code.delx.au - gnu-emacs/blobdiff - lisp/completion.el
(pr-alist-custom-set, pr-ps-utility-custom-set)
[gnu-emacs] / lisp / completion.el
index 2cd30e6513fb88b6febaa3715ae5d3d7dc7c84a2..53dfd7521a595c1687235d98c757ab3d355214d0 100644 (file)
@@ -1,7 +1,7 @@
 ;;; completion.el --- dynamic word-completion code
 
 ;; Copyright (C) 1990, 1993, 1995, 1997, 2002, 2003, 2004,
-;;   2005 Free Software Foundation, Inc.
+;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: abbrev convenience
 ;;  SAVING/LOADING COMPLETIONS
 ;;   Completions are automatically saved from one session to another
 ;; (unless save-completions-flag or enable-completion is nil).
-;; Activating this minor-mode calling completion-initialize) causes Emacs
-;; to load a completions database for a saved completions file
+;; Activating this minor-mode (calling completion-initialize) loads
+;; a completions database for a saved completions file
 ;; (default: ~/.completions).  When you exit, Emacs saves a copy of the
-;; completions that you
-;; often use.  When you next start, Emacs loads in the saved completion file.
+;; completions that you often use.  When you next start, Emacs loads in
+;; the saved completion file.
 ;;
 ;;   The number of completions saved depends loosely on
 ;; *saved-completions-decay-factor*.  Completions that have never been
@@ -302,7 +302,8 @@ See also `save-completions-retention-time'."
     (cond
      ((file-readable-p olddef) olddef)
      ((file-directory-p (convert-standard-filename "~/.emacs.d/"))
-      (convert-standard-filename (expand-file-name completions "~/.emacs.d/")))
+      (convert-standard-filename
+       (expand-file-name "completions" "~/.emacs.d/")))
      (t olddef)))
   "The filename to save completions to."
   :type 'file
@@ -1884,7 +1885,7 @@ Prefix args ::
     (save-excursion
       (goto-char (point-min))
       (catch 'finish-add-completions
-       (with-syntax-table completion-c-def-syntax-table
+        (with-syntax-table completion-c-def-syntax-table
           (while t
             ;; we loop here only when scan-sexps fails
             ;; (i.e. unbalance exps.)
@@ -1894,8 +1895,7 @@ Prefix args ::
                   (cond
                    ((= (preceding-char) ?#)
                     ;; preprocessor macro, see if it's one we handle
-                    (setq string (buffer-substring (point) (+ (point) 6)))
-                    (cond ((member string '("define" "ifdef "))
+                    (cond ((looking-at "\\(define\\|ifdef\\)\\>")
                            ;; skip forward over definition symbol
                            ;; and add it to database
                            (and (forward-word 2)
@@ -1943,9 +1943,9 @@ Prefix args ::
                (throw 'finish-add-completions t))
               (error
                ;; Check for failure in scan-sexps
-               (if (or (string-equal (nth 1 e)
-                                     "Containing expression ends prematurely")
-                       (string-equal (nth 1 e) "Unbalanced parentheses"))
+               (if (member (nth 1 e)
+                           '("Containing expression ends prematurely"
+                             "Unbalanced parentheses"))
                    ;; unbalanced paren., keep going
                    ;;(ding)
                    (forward-line 1)
@@ -2249,13 +2249,14 @@ Patched to remove the most recent completion."
 TYPE is the type of the wrapper to be added.  Can be :before or :under."
   (put function-name 'completion-function
        (cdr (assq type
-                  '((:separator 'use-completion-before-separator)
-                    (:before 'use-completion-before-point)
-                    (:backward-under 'use-completion-backward-under)
-                    (:backward 'use-completion-backward)
-                    (:under 'use-completion-under-point)
-                    (:under-or-before 'use-completion-under-or-before-point)
-                    (:minibuffer-separator 'use-completion-minibuffer-separator))))))
+                  '((:separator . use-completion-before-separator)
+                    (:before . use-completion-before-point)
+                    (:backward-under . use-completion-backward-under)
+                    (:backward . use-completion-backward)
+                    (:under . use-completion-under-point)
+                    (:under-or-before . use-completion-under-or-before-point)
+                    (:minibuffer-separator
+                    . use-completion-minibuffer-separator))))))
 
 (defun use-completion-minibuffer-separator ()
   (let ((completion-syntax-table completion-standard-syntax-table))
@@ -2353,7 +2354,7 @@ TYPE is the type of the wrapper to be added.  Can be :before or :under."
     (if dynamic-completion-mode
         (add-hook (car x) (cdr x))
       (remove-hook (car x) (cdr x))))
-  
+
   ;; "Complete" Key Keybindings.  We don't want to use a minor-mode
   ;; map because these have too high a priority.  We could/should
   ;; probably change the interpretation of minor-mode-map-alist such