(gnus-group-set-mode-line): Allow user defined specs in the group
[bpt/emacs.git] / lisp / completion.el
index 1d0fa0b..55c65a9 100644 (file)
@@ -1,10 +1,10 @@
 ;;; completion.el --- dynamic word-completion code
-;; Copyright (C) 1990, 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1993, 1995 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: abbrev
-;; Author: Jim Salem <salem@think.com> and Brewster Kahle <brewster@think.com>
-;;   of Thinking Machines Inc.
+;; Author: Jim Salem <alem@bbnplanet.com> of Thinking Machines Inc.
+;;  (ideas suggested by Brewster Kahle)
 
 ;; This file is part of GNU Emacs.
 
@@ -387,6 +387,8 @@ Indicates that the old completion file has been read in.")
 Used to decide whether to save completions.")
 
 (defvar cmpl-preceding-syntax)
+
+(defvar completion-string)
 \f
 ;;;---------------------------------------------------------------------------
 ;;; Low level tools
@@ -524,7 +526,7 @@ Used to decide whether to save completions.")
 ;;;-----------------------------------------------
 
 (defun cmpl-make-standard-completion-syntax-table ()
-  (let ((table (make-vector 256 0)) ;; default syntax is whitespace
+  (let ((table (make-syntax-table)) ;; default syntax is whitespace
        i)
     ;; alpha chars
     (setq i 0)
@@ -2039,7 +2041,7 @@ Prefix args ::
 ;;; Everything else has word syntax
 
 (defun cmpl-make-c-def-completion-syntax-table ()
-  (let ((table (make-vector 256 0))
+  (let ((table (make-syntax-table))
        (whitespace-chars '(?  ?\n ?\t ?\f  ?\v ?\r))
        ;; unfortunately the ?( causes the parens to appear unbalanced
        (separator-chars '(?, ?* ?= ?\( ?\;
@@ -2622,10 +2624,15 @@ TYPE is the type of the wrapper to be added.  Can be :before or :under."
 (define-key lisp-mode-map "^" 'self-insert-command)
 
 ;;; C mode diffs.
-(def-completion-wrapper electric-c-semi :separator)
-(define-key c-mode-map "+" 'completion-separator-self-insert-command)
-(define-key c-mode-map "*" 'completion-separator-self-insert-command)
-(define-key c-mode-map "/" 'completion-separator-self-insert-command)
+(defun completion-c-mode-hook ()
+  (def-completion-wrapper electric-c-semi :separator)
+  (define-key c-mode-map "+" 'completion-separator-self-insert-command)
+  (define-key c-mode-map "*" 'completion-separator-self-insert-command)
+  (define-key c-mode-map "/" 'completion-separator-self-insert-command))
+;; Do this either now or whenever C mode is loaded.
+(if (featurep 'cc-mode)
+    (completion-c-mode-hook)
+  (add-hook 'c-mode-hook 'completion-c-mode-hook))
 
 ;;; FORTRAN mode diffs. (these are defined when fortran is called)
 (defun completion-setup-fortran-mode ()