]> code.delx.au - gnu-emacs/blobdiff - lisp/abbrev.el
Document `X as "`X", not as "(` X)"
[gnu-emacs] / 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))