]> code.delx.au - gnu-emacs/blobdiff - lisp/help-fns.el
(choose-completion-string): Use `minibufferp';
[gnu-emacs] / lisp / help-fns.el
index cda2e7d19f25d5d06b2e7ca6b086108eb96eb6c4..71a5044002d3170f420348b2d02fbb65c7d1c52c 100644 (file)
@@ -1,6 +1,6 @@
 ;;; help-fns.el --- Complex help functions
 
-;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002
+;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003
 ;;   Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -175,15 +175,19 @@ DEF is the function whose usage we're looking for in DOC."
 (defun help-add-fundoc-usage (doc arglist)
   "Add the usage info to the docstring DOC.
 If DOC already has a usage info, then just return DOC unchanged.
-The usage info is built from ARGLIST.  DOC can be nil."
+The usage info is built from ARGLIST.  DOC can be nil.
+ARGLIST can also be t or a string of the form \"(fun ARG1 ARG2 ...)\"."
   (unless (stringp doc) (setq doc "Not documented"))
-  (if (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" doc)
+  (if (or (string-match "\n\n(fn\\(\\( .*\\)?)\\)\\'" doc) (eq arglist t))
       doc
     (format "%s%s%s" doc
            (if (string-match "\n?\n\\'" doc)
-               (if (< (- (match-end 0) (match-beginning 0)) 2) "\n")
+               (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "")
              "\n\n")
-           (help-make-usage 'fn arglist))))
+           (if (and (stringp arglist)
+                    (string-match "\\`([^ ]+\\(.*\\))\\'" arglist))
+               (concat "(fn" (match-string 1 arglist) ")")
+             (help-make-usage 'fn arglist)))))
 
 (defun help-function-arglist (def)
   ;; Handle symbols aliased to other symbols.
@@ -291,9 +295,9 @@ The usage info is built from ARGLIST.  DOC can be nil."
     (princ ".")
     (terpri)
     (when (commandp function)
-      (let* ((remapped (remap-command function))
+      (let* ((remapped (command-remapping function))
             (keys (where-is-internal
-                  (or remapped function) overriding-local-map nil nil)))
+                   (or remapped function) overriding-local-map nil nil)))
        (when remapped
          (princ "It is remapped to `")
          (princ (symbol-name remapped))
@@ -406,7 +410,10 @@ it is displayed along with the global value."
                      (delete-region (1- from) from)))))
            (terpri)
            (when (local-variable-p variable)
-             (princ (format "Local in buffer %s; " (buffer-name)))
+             (princ (format "%socal in buffer %s; "
+                            (if (get variable 'permanent-local)
+                                "Permanently l" "L")
+                            (buffer-name)))
              (if (not (default-boundp variable))
                  (princ "globally void")
                (let ((val (default-value variable)))