]> git.eshelyaron.com Git - emacs.git/commitdiff
* abbrev.el (define-abbrev-table): Refine last change.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 10 Apr 2015 06:47:44 +0000 (02:47 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 10 Apr 2015 06:47:44 +0000 (02:47 -0400)
lisp/abbrev.el

index 424d9c4f30bf19ae8c6613ce53aed8951bd5e1c5..f9f078b577732fa6c7453cae981cd4f3e6487f06 100644 (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))