* abbrev.el (define-abbrev-table): Refine last change.

This commit is contained in:
Stefan Monnier 2015-04-10 02:47:44 -04:00
parent 26f8a38497
commit 3638632f0b

View file

@ -953,7 +953,6 @@ Abbrevs marked as \"system abbrevs\" are omitted."
(insert " ))\n\n")))
nil)))
(put 'define-abbrev-table 'doc-string-elt 3)
(defun define-abbrev-table (tablename definitions
&optional docstring &rest props)
"Define TABLENAME (a symbol) as an abbrev table name.
@ -973,11 +972,15 @@ Properties with special meaning:
- `:enable-function' can be set to a function of no argument which returns
non-nil if and only if the abbrevs in this table should be used for this
instance of `expand-abbrev'."
(declare (doc-string 3))
;; We used to manually add the docstring, but we also want to record this
;; location as the definition of the variable (in load-history), so we may
;; as well just use `defvar'.
(eval `(defvar ,tablename nil ,@(if (stringp docstring) (list docstring)
(when props (push docstring props) nil))))
(if (and docstring props (symbolp docstring))
;; There is really no docstring, instead the docstring arg
;; is a property name.
(push docstring props) (setq docstring nil))
(eval `(defvar ,tablename nil ,@(if docstring (list docstring))))
(let ((table (if (boundp tablename) (symbol-value tablename))))
(unless table
(setq table (make-abbrev-table))