unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#12686: PATCH: ambiguous help doc strings
@ 2012-10-19 20:58 Aaron S. Hawley
  2012-10-23  8:04 ` Juri Linkov
  0 siblings, 1 reply; 16+ messages in thread
From: Aaron S. Hawley @ 2012-10-19 20:58 UTC (permalink / raw)
  To: 12686

[-- Attachment #1: Type: text/plain, Size: 42704 bytes --]

I came across a few cross references in doc strings that were for
variables or functions that when followed the *Help* buffer shows the
documentation for both.  This is acceptable for some symbols, but less
for others.  The following patch fixes about 70 or more.  I wrote some
`mapatoms' code that tried to find all such ambiguous help
cross-references to help me track these down.  The alternative is
running M-x checkdoc interactively for every single Lisp file in
Emacs.

(defun ash-ambiguous-help-xrefs ()
  "List of doc strings with imprecise cross-references."
  (interactive)
  (with-help-window (help-buffer)
    (with-current-buffer (help-buffer)
      (help-setup-xref '(ash-ambiguous-help-xrefs)
                         (called-interactively-p 'interactive))
      (let (dups bugs re)
        (mapatoms
         (lambda (s)
           (when (and ;; (and (fboundp s) (boundp s))
                  (< 1 (+ (if (fboundp s) 1 0)
                          (if (boundp s) 1 0)
                          (if (facep s) 0 0))) ;; Who cares.
                  (not ;; (aliasp s)
                   (and (fboundp s) (symbolp (symbol-function s))))
                  ;; The ambiguity is intentional for these,
                  ;; or at least it's acceptable.
                  (null (memq s '(function
                                  buffer-file-name
                                  system-name
                                  window-system
                                  custom-file
                                  user-login-name
                                  sentence-end
                                  keyboard-coding-system))))
             (setq dups (cons s dups)))))
        (setq re (concat (regexp-opt '("variable" "option" "function"
                                       "command" "face") t)
                         "?[ \t\n]*\\(?:of\\|for\\)?[ \t\n]*"
                         "`" (regexp-opt (mapcar 'symbol-name dups) t) "'"))
        (mapatoms
         (lambda (s)
           (mapcar
            (lambda (type)
              (let ((i 0) (d (if (eq type 'function-documentation)
                                 (documentation s)
                               (documentation-property s type))))
                (while (and (stringp d) (string-match re d i)
                            (not (string= (match-string 2 d)
                                          (symbol-name s)))
                            (null (match-string 1 d)))
                  (let ((xref (intern (match-string 2 d))))
                    (when (null (member (cons s xref) bugs))
                      (setq bugs (cons (cons s xref) bugs))))
                  (setq i (match-end 0)))))
            (let (types)
              (when (and (fboundp s) (functionp s))
                (setq types (cons 'function-documentation types)))
              (when (boundp s)
                (setq types (cons 'variable-documentation types)))
              (when (facep s)
                (setq types (cons 'face-documentation types)))
              types))))
        (insert (documentation 'ash-ambiguous-help-xrefs))
        (newline 2) ;; `help-make-xrefs' does `forward-paragraph'
        (dolist (b bugs)
          (insert (format "`%s' alludes to %s" (car b) (cdr b)))
          (newline))))))

In order to check all the doc strings in Emacs, all the libraries in
Emacs need to be loaded.  Unfortunately, Emacs crashes or becomes
unusable when doing this.  Some libraries need to be skipped.  This
could be because a library is loaded more than once since I use
`load-library' rather than `require'.

(defvar ash-skip-libs
  '("loadup" "eudcb-bbdb" "eudc-export" "blessmail" "characters"
    "gnus-vm" ".dir-locals" "edt-mapper" "iso-swed"))

(defun ash-load-everything ()
  "Load all libraries in the load-path and likely kill Emacs.

Loading everything with a beating pulse and most certainly nuke
the current session.  Prepare to die."
  (interactive)
  (let ((libs nil))
    (mapc
     (lambda (s)
       (when (string-match "\\.elc?\\'" s)
         (add-to-list 'libs
                      (replace-match "" t t s)
                      (not 'append) 'string-equal)))
     (locate-file-completion-table
      load-path '("\\.elc\\'" "\\.el\\'") ""
      (lambda (s) (string-match "\\.elc?\\'" s)) t))
    (dolist (skip-lib ash-skip-libs)
      (delete skip-lib libs))
    (dolist (lib libs)
      (load-library lib))))

There was a cross-reference to `top-level' which shouldn't have been.
I also suggest Help Mode use "call" as a hint for a cross-reference to
a function -- only "function" and "command" do now.

The patch is against the sources of 24.2.

Thanks for Emacs,
/a

--- lisp/ChangeLog~	2012-08-24 05:50:49.000000000 -0400
+++ lisp/ChangeLog	2012-10-19 09:40:24.886464600 -0400
@@ -1,0 +1,76 @@
+2012-10-18  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
+
+        * calc/calc.el (calc-highlight-selections-with-faces): Fix doc
+        string cross-reference(s).
+
+        * comint.el (calc-dispatch): Fix doc string cross-reference(s).
+
+        * emacs-lisp/edebug.el (comint-history-isearch-message): Fix doc
+        string cross-reference(s).
+
+        * ffap.el (edebug-eval-defun): Fix doc string cross-reference(s).
+
+        * font-lock.el (ffap-literally): Fix doc string
+        cross-reference(s).
+
+        * help-mode.el (help-xref-symbol-regexp): Add "call" a hint for a
+        cross-reference to a function.
+
+        * info.el (help-xref-symbol-regexp): Fix doc string
+        cross-reference(s).
+
+        * international/mule.el (Info-find-emacs-command-nodes): Fix doc
+        string cross-reference(s).
+
+        * isearch.el (add-to-coding-system-list): Fix doc string
+        cross-reference(s).
+
+        * misearch.el (isearch-fail-pos): Fix doc string
+        cross-reference(s).
+
+        * newcomment.el (multi-isearch-next-buffer-function): Fix doc
+        string cross-reference(s).
+
+        * printing.el (comment-box): Fix doc string cross-reference(s).
+
+        * progmodes/cc-fonts.el (pr-setting-database): Fix doc string
+        cross-reference(s).
+
+        * progmodes/compile.el (pike-font-lock-keywords): Fix doc string
+        cross-reference(s).
+
+        * progmodes/etags.el (compile): Fix doc string cross-reference(s).
+
+        * progmodes/gdb-mi.el (initialize-new-tags-table): Fix doc string
+        cross-reference(s).
+
+        * progmodes/etags.el (initialize-new-tags-table): Fix doc string
+        cross-reference(s).
+
+        * progmodes/gdb-mi.el (initialize-new-tags-table): Fix doc string
+        cross-reference(s).
+
+        * ps-print.el (gdb-restore-windows): Fix doc string
+        cross-reference(s).
+
+        * server.el (ps-n-up-filling-database): Fix doc string
+        cross-reference(s).
+
+        * simple.el (server-log): Fix doc string cross-reference(s).
+
+        * textmodes/flyspell.el (auto-fill-mode): Fix doc string
+        cross-reference(s).
+
+        * textmodes/ispell.el (ispell-accept-output): Fix doc string
+        cross-reference(s).
+
+        * textmodes/sgml-mode.el (ispell-accept-output): Fix doc string
+        cross-reference(s).
+
+        * vc/compare-w.el (html-mode): Fix doc string cross-reference(s).
+
+        * vc/diff.el (compare-windows-dehighlight): Fix doc string
+        cross-reference(s).
+
+        * whitespace.el (diff): Fix doc string cross-reference(s).
+
--- lisp/gnus/ChangeLog~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/gnus/ChangeLog	2012-10-19 09:31:04.620338700 -0400
@@ -1,0 +1,8 @@
+2012-10-18  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
+
+        * gnus-start.el (font-lock-removed-keywords-alist): Fix doc string
+        cross-reference(s).
+
+        * gnus-sum.el (gnus-check-new-newsgroups): Fix doc string
+        cross-reference(s).
+
--- src/ChangeLog~	2012-08-24 05:52:21.000000000 -0400
+++ src/ChangeLog	2012-10-19 09:31:04.291305800 -0400
@@ -1,0 +1,10 @@
+2012-10-18  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
+
+        * insdel.c (Fself_insert_command): Fix doc string
+        cross-reference(s).
+
+        * keyboard.c (syms_of_insdel): Fix doc string cross-reference(s).
+
+        * window.c (syms_of_keyboard, Fwindow_point): Fix doc string
+        cross-reference(s).
+
--- lisp/calc/calc.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/calc/calc.el	2012-10-18 09:54:23.359782600 -0400
@@ -427,9 +427,9 @@
 (defcustom calc-highlight-selections-with-faces
   nil
   "If non-nil, use a separate face to indicate selected sub-formulas.
-If `calc-show-selections' is non-nil, then selected sub-formulas are shown
+If variable `calc-show-selections' is non-nil, then selected
sub-formulas are shown
 by displaying the rest of the formula in `calc-nonselected-face'.
-If `calc-show-selections' is nil, then selected sub-formulas are shown
+If option `calc-show-selections' is nil, then selected sub-formulas are shown
 by displaying the sub-formula in `calc-selected-face'."
   :version "24.1"
   :group 'calc
@@ -1200,7 +1200,7 @@

 ;;;###autoload
 (defun calc-dispatch (&optional arg)
-  "Invoke the GNU Emacs Calculator.  See `calc-dispatch-help' for details."
+  "Invoke the GNU Emacs Calculator.  See function
`calc-dispatch-help' for details."
   (interactive "P")
 ;  (sit-for echo-keystrokes)
   (condition-case err   ; look for other keys bound to calc-dispatch
--- lisp/comint.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/comint.el	2012-10-18 09:54:23.618808500 -0400
@@ -1529,7 +1529,7 @@
 If there are no search errors, this function displays an overlay with
 the Isearch prompt which replaces the original comint prompt.
 Otherwise, it displays the standard Isearch message returned from
-`isearch-message'."
+the function `isearch-message'."
   (if (not (and isearch-success (not isearch-error)))
       ;; Use standard function `isearch-message' when not in comint prompt,
       ;; or search fails, or has an error (like incomplete regexp).
--- lisp/emacs-lisp/edebug.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/emacs-lisp/edebug.el	2012-10-18 09:54:23.772823900 -0400
@@ -471,8 +471,8 @@

 This version, from Edebug, maybe instruments the expression.  But the
 STREAM must be the current buffer to do so.  Whether it instruments is
-also dependent on the values of `edebug-all-defs' and
-`edebug-all-forms'."
+also dependent on the values of the option `edebug-all-defs' and
+the option `edebug-all-forms'."
   (or stream (setq stream standard-input))
   (if (eq stream (current-buffer))
       (edebug-read-and-maybe-wrap-form)
@@ -494,7 +494,7 @@

 With a prefix argument, instrument the code for Edebug.

-Setting `edebug-all-defs' to a non-nil value reverses the meaning of
+Setting option `edebug-all-defs' to a non-nil value reverses the meaning of
 the prefix argument.  Code is then instrumented when this function is
 invoked without a prefix argument

--- lisp/ffap.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/ffap.el	2012-10-18 09:54:23.843831000 -0400
@@ -309,7 +309,7 @@
   "Last value returned by `ffap-next-guess'.")

 (defvar ffap-string-at-point-region '(1 1)
-  "List (BEG END), last region returned by `ffap-string-at-point'.")
+  "List (BEG END), last region returned by the function
`ffap-string-at-point'.")

 (defun ffap-next-guess (&optional back lim)
   "Move point to next file or URL, and return it as a string.
@@ -334,7 +334,7 @@
 Optional argument WRAP says to try wrapping around if necessary.
 Interactively: use a single prefix to search backwards,
 double prefix to wrap forward, triple to wrap backwards.
-Actual search is done by `ffap-next-guess'."
+Actual search is done by the function `ffap-next-guess'."
   (interactive
    (cdr (assq (prefix-numeric-value current-prefix-arg)
 	      '((1) (4 t) (16 nil t) (64 t t)))))
@@ -1004,14 +1004,14 @@
   "Alist of \(MODE CHARS BEG END\), where MODE is a symbol,
 possibly a major-mode name, or one of the symbol
 `file', `url', `machine', and `nocolon'.
-`ffap-string-at-point' uses the data fields as follows:
+Function `ffap-string-at-point' uses the data fields as follows:
 1. find a maximal string of CHARS around point,
 2. strip BEG chars before point from the beginning,
 3. Strip END chars after point from the end.")

 (defvar ffap-string-at-point nil
   ;; Added at suggestion of RHOGEE (for ff-paths), 7/24/95.
-  "Last string returned by `ffap-string-at-point'.")
+  "Last string returned by the function `ffap-string-at-point'.")

 (defun ffap-string-at-point (&optional mode)
   "Return a string of characters from around point.
@@ -1019,7 +1019,7 @@
 syntax parameters in `ffap-string-at-point-mode-alist'.
 If MODE is not found, we use `file' instead of MODE.
 If the region is active, return a string from the region.
-Sets `ffap-string-at-point' and `ffap-string-at-point-region'."
+Sets variable `ffap-string-at-point' and variable
`ffap-string-at-point-region'."
   (let* ((args
 	  (cdr
 	   (or (assq (or mode major-mode) ffap-string-at-point-mode-alist)
@@ -1044,7 +1044,7 @@

 (defun ffap-string-around ()
   ;; Sometimes useful to decide how to treat a string.
-  "Return string of two chars around last `ffap-string-at-point'.
+  "Return string of two chars for last result of function
`ffap-string-at-point'.
 Assumes the buffer has not changed."
   (save-excursion
     (format "%c%c"
@@ -1058,7 +1058,7 @@

 (defun ffap-copy-string-as-kill (&optional mode)
   ;; Requested by MCOOK.  Useful?
-  "Call `ffap-string-at-point', and copy result to `kill-ring'."
+  "Call function `ffap-string-at-point', and copy result to `kill-ring'."
   (interactive)
   (let ((str (ffap-string-at-point mode)))
     (if (equal "" str)
@@ -1369,7 +1369,7 @@
   :version "22.1")

 (defvar ffap-highlight-overlay nil
-  "Overlay used by `ffap-highlight'.")
+  "Overlay used by function `ffap-highlight'.")

 (defun ffap-highlight (&optional remove)
   "If `ffap-highlight' is set, highlight the guess in this buffer.
@@ -1732,7 +1732,7 @@
     (call-interactively 'ffap)))

 (defun ffap-literally ()
-  "Like `ffap' and `find-file-literally'.
+  "Like `ffap' and command `find-file-literally'.
 Only intended for interactive use."
   (interactive)
   (let ((ffap-file-finder 'find-file-literally))
--- lisp/font-lock.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/font-lock.el	2012-10-18 09:54:23.943841000 -0400
@@ -469,7 +469,7 @@
   "Alist of additional `font-lock-keywords' elements for major modes.

 Each element has the form (MODE KEYWORDS . HOW).
-`font-lock-set-defaults' adds the elements in the list KEYWORDS to
+Function `font-lock-set-defaults' adds the elements in the list KEYWORDS to
 `font-lock-keywords' when Font Lock is turned on in major mode MODE.

 If HOW is nil, KEYWORDS are added at the beginning of
@@ -484,7 +484,7 @@
 (defvar font-lock-removed-keywords-alist nil
   "Alist of `font-lock-keywords' elements to be removed for major modes.

-Each element has the form (MODE . KEYWORDS).  `font-lock-set-defaults'
+Each element has the form (MODE . KEYWORDS).  Function `font-lock-set-defaults'
 removes the elements in the list KEYWORDS from `font-lock-keywords'
 when Font Lock is turned on in major mode MODE.

--- lisp/gnus/gnus-start.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/gnus/gnus-start.el	2012-10-18 09:54:24.043851000 -0400
@@ -110,7 +110,7 @@
 groups since the last time it checked:
   1. This variable is `ask-server'.
   2. This variable is a list of select methods (see below).
-  3. `gnus-read-active-file' is nil or `some'.
+  3. Option `gnus-read-active-file' is nil or `some'.
   4. A prefix argument is given to `gnus-find-new-newsgroups' interactively.

 Thus, if this variable is `ask-server' or a list of select methods or
--- lisp/gnus/gnus-sum.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/gnus/gnus-sum.el	2012-10-18 09:54:24.888935500 -0400
@@ -1166,7 +1166,7 @@

 (defcustom gnus-summary-newsgroup-prefix "=> "
   "*String prefixed to the Newsgroup field in the summary
-line when using `gnus-ignored-from-addresses'."
+line when using the option `gnus-ignored-from-addresses'."
   :version "22.1"
   :group 'gnus-summary
   :type 'string)
--- lisp/help-mode.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/help-mode.el	2012-10-18 09:54:25.084955100 -0400
@@ -311,7 +311,7 @@

 (defconst help-xref-symbol-regexp
   (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|"  ; Link to var
- 		    "\\(function\\|command\\)\\|"          ; Link to function
+ 		    "\\(function\\|command\\|call\\)\\|"   ; Link to function
  		    "\\(face\\)\\|"			   ; Link to face
  		    "\\(symbol\\|program\\|property\\)\\|" ; Don't link
 		    "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)"
--- lisp/info.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/info.el	2012-10-18 09:54:25.130959700 -0400
@@ -4143,7 +4143,7 @@
 The `info-file' property of COMMAND says which Info manual to search.
 If COMMAND has no property, the variable `Info-file-list-for-emacs'
 defines heuristics for which Info manual to try.
-The locations are of the format used in `Info-history', i.e.
+The locations are of the format used in the variable `Info-history', i.e.
 \(FILENAME NODENAME BUFFERPOS), where BUFFERPOS is the line number
 in the first element of the returned list (which is treated specially in
 `Info-goto-emacs-command-node'), and 0 for the rest elements of a list."
--- lisp/international/mule.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/international/mule.el	2012-10-18 09:54:25.175964200 -0400
@@ -890,7 +890,7 @@
 		 (and (vectorp eol-type-1) (vectorp eol-type-2)))))))

 (defun add-to-coding-system-list (coding-system)
-  "Add CODING-SYSTEM to `coding-system-list' while keeping it sorted."
+  "Add CODING-SYSTEM to variable `coding-system-list' while keeping it sorted."
   (if (or (null coding-system-list)
 	  (coding-system-lessp coding-system (car coding-system-list)))
       (setq coding-system-list (cons coding-system coding-system-list))
--- lisp/isearch.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/isearch.el	2012-10-18 09:54:25.255972200 -0400
@@ -168,7 +168,7 @@

 (defvar isearch-message-function nil
   "Function to call to display the search prompt.
-If nil, use `isearch-message'.")
+If nil, use function `isearch-message'.")

 (defvar isearch-wrap-function nil
   "Function to call to wrap the search when search is failed.
@@ -1066,7 +1066,7 @@

 (defun isearch-fail-pos (&optional msg)
   "Return position of first mismatch in search string, or nil if none.
-If MSG is non-nil, use `isearch-message', otherwise `isearch-string'."
+If MSG is non-nil, use variable `isearch-message', otherwise `isearch-string'."
   (let ((cmds isearch-cmds)
 	(curr-msg (if msg isearch-message isearch-string))
 	succ-msg)
--- lisp/misearch.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/misearch.el	2012-10-18 09:54:25.453992000 -0400
@@ -73,7 +73,7 @@
 The first argument of this function is the current buffer where the
 search is currently searching.  It defines the base buffer relative to
 which this function should find the next buffer.  When the isearch
-direction is backward (when `isearch-forward' is nil), this function
+direction is backward (when option `isearch-forward' is nil), this function
 should return the previous buffer to search.

 If the second argument of this function WRAP is non-nil, then it
--- lisp/newcomment.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/newcomment.el	2012-10-18 09:54:25.509997600 -0400
@@ -1180,7 +1180,7 @@
 (defun comment-box (beg end &optional arg)
   "Comment out the BEG .. END region, putting it inside a box.
 The numeric prefix ARG specifies how many characters to add to begin- and
-end- comment markers additionally to what `comment-add' already specifies."
+end- comment markers additionally to what variable `comment-add'
already specifies."
   (interactive "*r\np")
   (comment-normalize-vars)
   (let ((comment-style (if (cadr (assoc comment-style comment-styles))
--- lisp/printing.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/printing.el	2012-10-18 09:54:25.582004800 -0400
@@ -1798,7 +1798,7 @@
 Where:

 SYMBOL		It's a symbol to identify a text printer.  It's for
-		`pr-txt-name' variable setting and for menu selection.
+		setting option `pr-txt-name' and for menu selection.
 		Examples:
 			'prt_06a
 			'my_printer
@@ -1949,7 +1949,7 @@
 Where:

 SYMBOL		It's a symbol to identify a PostScript printer.  It's for
-		`pr-ps-name' variable setting and for menu selection.
+		setting option `pr-ps-name' and for menu selection.
 		Examples:
 			'prt_06a
 			'my_printer
@@ -2933,7 +2933,7 @@

 		The example above has two setting groups: no-duplex and
 		no-duplex-and-landscape.  When setting no-duplex is activated
-		through `inherits-from:' (see `pr-ps-utility', `pr-mode-alist'
+		through `inherits-from:' (see option `pr-ps-utility', `pr-mode-alist'
 		and `pr-ps-printer-alist'), the variables pr-file-duplex and
 		pr-file-tumble are both set to nil.

--- lisp/progmodes/cc-fonts.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/cc-fonts.el	2012-10-18 09:54:25.661012700 -0400
@@ -2048,7 +2048,7 @@

 (defconst c-font-lock-keywords-3 (c-lang-const c-matchers-3 c)
   "Accurate normal font locking for C mode.
-Like `c-font-lock-keywords-2' but detects declarations in a more
+Like the variable `c-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `c-font-lock-extra-types'.")

@@ -2206,7 +2206,7 @@

 (defconst c++-font-lock-keywords-3 (c-lang-const c-matchers-3 c++)
   "Accurate normal font locking for C++ mode.
-Like `c++-font-lock-keywords-2' but detects declarations in a more
+Like the variable `c++-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `c++-font-lock-extra-types'.")

@@ -2312,7 +2312,7 @@

 (defconst objc-font-lock-keywords-3 (c-lang-const c-matchers-3 objc)
   "Accurate normal font locking for Objective-C mode.
-Like `objc-font-lock-keywords-2' but detects declarations in a more
+Like the variable `objc-font-lock-keywords-2' but detects
declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `objc-font-lock-extra-types'.")

@@ -2355,7 +2355,7 @@

 (defconst java-font-lock-keywords-3 (c-lang-const c-matchers-3 java)
   "Accurate normal font locking for Java mode.
-Like `java-font-lock-keywords-2' but detects declarations in a more
+Like variable `java-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `java-font-lock-extra-types'.")

@@ -2388,7 +2388,7 @@

 (defconst idl-font-lock-keywords-3 (c-lang-const c-matchers-3 idl)
   "Accurate normal font locking for CORBA IDL mode.
-Like `idl-font-lock-keywords-2' but detects declarations in a more
+Like the variable `idl-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `idl-font-lock-extra-types'.")

@@ -2421,7 +2421,7 @@

 (defconst pike-font-lock-keywords-3 (c-lang-const c-matchers-3 pike)
   "Accurate normal font locking for Pike mode.
-Like `pike-font-lock-keywords-2' but detects declarations in a more
+Like the variable `pike-font-lock-keywords-2' but detects
declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `pike-font-lock-extra-types'.")

--- lisp/progmodes/compile.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/compile.el	2012-10-18 09:54:25.943040900 -0400
@@ -1378,7 +1378,7 @@
 If optional second arg COMINT is t the buffer will be in Comint mode with
 `compilation-shell-minor-mode'.

-Interactively, prompts for the command if `compilation-read-command' is
+Interactively, prompts for the command if the variable
`compilation-read-command' is
 non-nil; otherwise uses `compile-command'.  With prefix arg, always prompts.
 Additionally, with universal prefix arg, compilation buffer will be in
 comint mode, i.e. interactive.
--- lisp/progmodes/etags.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/etags.el	2012-10-18 09:54:26.042050800 -0400
@@ -204,7 +204,7 @@

 (defvar tags-table-files nil
   "List of file names covered by current tags table.
-nil means it has not yet been computed; use `tags-table-files' to do so.")
+nil means it has not yet been computed; use function
`tags-table-files' to do so.")

 (defvar tags-completion-table nil
   "Obarray of tag names defined in current tags table.")
@@ -229,7 +229,7 @@
 One optional argument, a boolean specifying to return complete path (nil) or
 relative path (non-nil).")
 (defvar tags-table-files-function nil
-  "Function to do the work of `tags-table-files' (which see).")
+  "Function to do the work of function `tags-table-files' (which see).")
 (defvar tags-completion-table-function nil
   "Function to build the `tags-completion-table'.")
 (defvar snarf-tag-function nil
@@ -256,7 +256,7 @@
 (defvar tags-apropos-function nil
   "Function to do the work of `tags-apropos' (which see).")
 (defvar tags-included-tables-function nil
-  "Function to do the work of `tags-included-tables' (which see).")
+  "Function to do the work of function `tags-included-tables' (which see).")
 (defvar verify-tags-table-function nil
   "Function to return t if current buffer contains valid tags file.")
 \f
--- lisp/progmodes/gdb-mi.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/gdb-mi.el	2012-10-18 09:54:26.170063600 -0400
@@ -617,12 +617,12 @@
 options should include \"-i=mi\" to use gdb's MI text interface.
 Note that the old \"--annotate\" option is no longer supported.

-If `gdb-many-windows' is nil (the default value) then gdb just
+If option `gdb-many-windows' is nil (the default value) then gdb just
 pops up the GUD buffer unless `gdb-show-main' is t.  In this case
 it starts with two windows: one displaying the GUD buffer and the
 other with the source file with the main routine of the inferior.

-If `gdb-many-windows' is t, regardless of the value of
+If option `gdb-many-windows' is t, regardless of the value of
 `gdb-show-main', the layout below will appear.  Keybindings are
 shown in some of the buffers.

@@ -4096,7 +4096,7 @@
   (set-window-dedicated-p window t))

 (defun gdb-setup-windows ()
-  "Layout the window pattern for `gdb-many-windows'."
+  "Layout the window pattern for option `gdb-many-windows'."
   (gdb-display-locals-buffer)
   (gdb-display-stack-buffer)
   (delete-other-windows)
@@ -4160,7 +4160,7 @@

 (defun gdb-restore-windows ()
   "Restore the basic arrangement of windows used by gdb.
-This arrangement depends on the value of `gdb-many-windows'."
+This arrangement depends on the value of option `gdb-many-windows'."
   (interactive)
   (switch-to-buffer gud-comint-buffer) ;Select the right window and frame.
   (delete-other-windows)
--- lisp/ps-print.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/ps-print.el	2012-10-18 09:54:26.282074800 -0400
@@ -1959,13 +1959,13 @@

 Any other value is treated as nil.

-If you set `ps-selected-pages' (see it for documentation), first the pages are
-filtered by `ps-selected-pages' and then by `ps-even-or-odd-pages'.  For
+If you set option `ps-selected-pages' (see it for documentation),
first the pages are
+filtered by option `ps-selected-pages' and then by `ps-even-or-odd-pages'.  For
 example, if we have:

    (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))

-Combining with `ps-even-or-odd-pages' and `ps-n-up-printing', we have:
+Combining with `ps-even-or-odd-pages' and option `ps-n-up-printing', we have:

 `ps-n-up-printing' = 1:
    `ps-even-or-odd-pages'	PAGES PRINTED
@@ -3566,7 +3566,7 @@
 ;;;###autoload
 (defun ps-spool-buffer-with-faces ()
   "Generate and spool a PostScript image of the buffer.
-Like `ps-spool-buffer', but includes font, color, and underline information in
+Like the command `ps-spool-buffer', but includes font, color, and
underline information in
 the generated image.  This command works only if you are using a window system,
 so it has a way to determine color values.

@@ -5369,7 +5369,7 @@
    (KIND XCOL YCOL XLIN YLIN REPEAT END XSTART YSTART)

 Where:
-KIND is a valid value of `ps-n-up-filling'.
+KIND is a valid value of the variable `ps-n-up-filling'.
 XCOL YCOL are the relative position for the next column.
 XLIN YLIN are the relative position for the beginning of next line.
 REPEAT is the number of repetitions for external loop.
--- lisp/server.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/server.el	2012-10-18 09:54:26.330079600 -0400
@@ -328,7 +328,7 @@

 (defconst server-buffer " *server*"
   "Buffer used internally by Emacs's server.
-One use is to log the I/O for debugging purposes (see `server-log'),
+One use is to log the I/O for debugging purposes (see option `server-log'),
 the other is to provide a current buffer in which the process filter can
 safely let-bind buffer-local variables like `default-directory'.")

@@ -336,7 +336,7 @@
   "If non-nil, log the server's inputs and outputs in the `server-buffer'.")

 (defun server-log (string &optional client)
-  "If `server-log' is non-nil, log STRING to `server-buffer'.
+  "If option `server-log' is non-nil, log STRING to `server-buffer'.
 If CLIENT is non-nil, add a description of it to the logged message."
   (when server-log
     (with-current-buffer (get-buffer-create server-buffer)
--- lisp/simple.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/simple.el	2012-10-18 09:54:26.389085500 -0400
@@ -404,10 +404,10 @@

 (defun newline (&optional arg)
   "Insert a newline, and move to left margin of the new line if it's blank.
-If `use-hard-newlines' is non-nil, the newline is marked with the
+If option `use-hard-newlines' is non-nil, the newline is marked with the
 text-property `hard'.
 With ARG, insert that many newlines.
-Call `auto-fill-function' if the current column number is greater
+Call function `auto-fill-function' if the current column number is greater
 than the value of `fill-column' and ARG is nil."
   (interactive "*P")
   (barf-if-buffer-read-only)
@@ -824,7 +824,7 @@
   "Delete the previous N characters (following if N is negative).
 If Transient Mark mode is enabled, the mark is active, and N is 1,
 delete the text in the region and deactivate the mark instead.
-To disable this, set `delete-active-region' to nil.
+To disable this, set option `delete-active-region' to nil.

 Optional second arg KILLFLAG, if non-nil, means to kill (save in
 kill ring) instead of delete.  Interactively, N is the prefix
@@ -860,7 +860,7 @@
   "Delete the following N characters (previous if N is negative).
 If Transient Mark mode is enabled, the mark is active, and N is 1,
 delete the text in the region and deactivate the mark instead.
-To disable this, set `delete-active-region' to nil.
+To disable this, set variable `delete-active-region' to nil.

 Optional second arg KILLFLAG non-nil means to kill (save in kill
 ring) instead of delete.  Interactively, N is the prefix arg, and
@@ -1707,7 +1707,7 @@
 If there are no search errors, this function displays an overlay with
 the isearch prompt which replaces the original minibuffer prompt.
 Otherwise, it displays the standard isearch message returned from
-`isearch-message'."
+the function `isearch-message'."
   (if (not (and (minibufferp) isearch-success (not isearch-error)))
       ;; Use standard function `isearch-message' when not in the minibuffer,
       ;; or search fails, or has an error (like incomplete regexp).
@@ -3520,7 +3520,7 @@
 kill the rest of the current line, even if there are only
 nonblanks there.

-If `kill-whole-line' is non-nil, then this command kills the whole line
+If option `kill-whole-line' is non-nil, then this command kills the whole line
 including its terminating newline, when used at the beginning of a line
 with no argument.  As a consequence, you can always kill a whole line
 by typing \\[move-beginning-of-line] \\[kill-line].
@@ -4296,13 +4296,13 @@
   "Non-nil means vertical motion starting at end of line keeps to
ends of lines.
 This means moving to the end of each line moved onto.
 The beginning of a blank line does not count as the end of a line.
-This has no effect when `line-move-visual' is non-nil."
+This has no effect when the variable `line-move-visual' is non-nil."
   :type 'boolean
   :group 'editing-basics)

 (defcustom goal-column nil
   "Semipermanent goal column for vertical motion, as set by
\\[set-goal-column], or nil.
-A non-nil setting overrides `line-move-visual', which see."
+A non-nil setting overrides the variable `line-move-visual', which see."
   :type '(choice integer
 		 (const :tag "None" nil))
   :group 'editing-basics)
@@ -4313,7 +4313,7 @@
 It is the column where point was at the start of the current run
 of vertical motion commands.

-When moving by visual lines via `line-move-visual', it is a cons
+When moving by visual lines via the function `line-move-visual', it is a cons
 cell (COL . HSCROLL), where COL is the x-position, in pixels,
 divided by the default column width, and HSCROLL is the number of
 columns by which window is scrolled from left margin.
@@ -5377,7 +5377,7 @@
 beyond `current-fill-column' automatically breaks the line at a
 previous space.

-When `auto-fill-mode' is on, the `auto-fill-function' variable is
+When `auto-fill-mode' is on, the variable `auto-fill-function' is
 non-`nil'.

 The value of `normal-auto-fill-function' specifies the function to use
--- lisp/textmodes/flyspell.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/textmodes/flyspell.el	2012-10-18 09:54:26.436090200 -0400
@@ -63,7 +63,7 @@
   "Non-nil means Flyspell reports a repeated word as an error.
 See `flyspell-mark-duplications-exceptions' to add exceptions to this rule.
 Detection of repeated words is not implemented in
-\"large\" regions; see `flyspell-large-region'."
+\"large\" regions; see variable `flyspell-large-region'."
   :group 'flyspell
   :type 'boolean)

@@ -148,7 +148,7 @@
     scroll-up
     scroll-down)
   "The standard list of deplacement commands for Flyspell.
-See `flyspell-deplacement-commands'."
+See variable `flyspell-deplacement-commands'."
   :group 'flyspell
   :version "21.1"
   :type '(repeat (symbol)))
--- lisp/textmodes/ispell.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/textmodes/ispell.el	2012-10-18 09:54:26.487095300 -0400
@@ -1540,7 +1540,7 @@

 (defun ispell-accept-output (&optional timeout-secs timeout-msecs)
   "Wait for output from ispell process, or TIMEOUT-SECS and TIMEOUT-MSECS.
-If asynchronous subprocesses are not supported, call `ispell-filter' and
+If asynchronous subprocesses are not supported, call function
`ispell-filter' and
 pass it the output of the last ispell invocation."
   (if ispell-async-processp
       (accept-process-output ispell-process timeout-secs timeout-msecs)
--- lisp/textmodes/sgml-mode.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/textmodes/sgml-mode.el	2012-10-18 09:54:26.545101100 -0400
@@ -1936,7 +1936,7 @@
     ("ul" . "Unordered list")
     ("var" . "Math variable face")
     ("wbr" . "Enable <br> within <nobr>"))
-  "*Value of `sgml-tag-help' for HTML mode.")
+  "*Value of variable `sgml-tag-help' for HTML mode.")

 \f
 ;;;###autoload
--- lisp/vc/compare-w.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/vc/compare-w.el	2012-10-18 09:54:26.584105000 -0400
@@ -53,13 +53,13 @@
   :group 'compare-windows)

 (defcustom compare-ignore-whitespace nil
-  "Non-nil means `compare-windows' ignores whitespace."
+  "Non-nil means command `compare-windows' ignores whitespace."
   :type 'boolean
   :group 'compare-windows
   :version "22.1")

 (defcustom compare-ignore-case nil
-  "Non-nil means `compare-windows' ignores case differences."
+  "Non-nil means command `compare-windows' ignores case differences."
   :type 'boolean
   :group 'compare-windows)

@@ -379,7 +379,7 @@
 	(delete-overlay compare-windows-overlay2)))))

 (defun compare-windows-dehighlight ()
-  "Remove highlighting created by `compare-windows-highlight'."
+  "Remove highlighting created by function `compare-windows-highlight'."
   (interactive)
   (remove-hook 'pre-command-hook 'compare-windows-dehighlight)
   (mapc 'delete-overlay compare-windows-overlays1)
--- lisp/vc/diff.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/vc/diff.el	2012-10-18 09:54:26.627109300 -0400
@@ -83,7 +83,7 @@

 When called interactively with a prefix argument, prompt
 interactively for diff switches.  Otherwise, the switches
-specified in `diff-switches' are passed to the diff command."
+specified in the variable `diff-switches' are passed to the diff command."
   (interactive
    (let* ((newf (if (and buffer-file-name (file-exists-p buffer-file-name))
 		    (read-file-name
--- lisp/whitespace.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/whitespace.el	2012-10-18 09:54:26.796126200 -0400
@@ -1276,19 +1276,19 @@

 (defvar whitespace-point (point)
   "Used to save locally current point value.
-Used by `whitespace-trailing-regexp' function (which see).")
+Used by function `whitespace-trailing-regexp' (which see).")

 (defvar whitespace-font-lock-refontify nil
   "Used to save locally the font-lock refontify state.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")

 (defvar whitespace-bob-marker nil
   "Used to save locally the bob marker value.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")

 (defvar whitespace-eob-marker nil
   "Used to save locally the eob marker value.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")

 (defvar whitespace-buffer-changed nil
   "Used to indicate locally if buffer changed.
--- src/cmds.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/cmds.c	2012-10-18 09:54:26.835130100 -0400
@@ -270,7 +270,7 @@
 Whichever character you type to run this command is inserted.
 Before insertion, `expand-abbrev' is executed if the inserted character does
 not have word syntax and the previous character in the buffer does.
-After insertion, the value of `auto-fill-function' is called if the
+After insertion, the value of the variable `auto-fill-function' is
called if the
 `auto-fill-chars' table has a non-nil value for the inserted character.
 At the end, it runs `post-self-insert-hook'.  */)
   (Lisp_Object n)
--- src/insdel.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/insdel.c	2012-10-18 09:54:26.914138000 -0400
@@ -2116,7 +2116,7 @@

 DEFUN ("combine-after-change-execute", Fcombine_after_change_execute,
        Scombine_after_change_execute, 0, 0, 0,
-       doc: /* This function is for use internally in
`combine-after-change-calls'.  */)
+       doc: /* This function is for use internally in the function
`combine-after-change-calls'.  */)
   (void)
 {
   int count = SPECPDL_INDEX ();
@@ -2211,7 +2211,7 @@
 	       doc: /* Non-nil means enable debugging checks for invalid
marker positions.  */);
   check_markers_debug_flag = 0;
   DEFVAR_LISP ("combine-after-change-calls", Vcombine_after_change_calls,
-	       doc: /* Used internally by the `combine-after-change-calls'
macro.  */);
+	       doc: /* Used internally by the function
`combine-after-change-calls'.  */);
   Vcombine_after_change_calls = Qnil;

   DEFVAR_BOOL ("inhibit-modification-hooks", inhibit_modification_hooks,
--- src/keyboard.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/keyboard.c	2012-10-18 09:54:26.958142400 -0400
@@ -10249,7 +10249,7 @@
        doc: /* Execute CMD as an editor command.
 CMD must be a symbol that satisfies the `commandp' predicate.
 Optional second arg RECORD-FLAG non-nil
-means unconditionally put this command in `command-history'.
+means unconditionally put this command in the variable `command-history'.
 Otherwise, that is done only if an arg is read using the minibuffer.
 The argument KEYS specifies the value to use instead of (this-command-keys)
 when reading the arguments; if it is nil, (this-command-keys) is used.
@@ -12284,8 +12284,8 @@
 	       Vsaved_region_selection,
 	       doc: /* Contents of active region prior to buffer modification.
 If `select-active-regions' is non-nil, Emacs sets this to the
-text in the region before modifying the buffer.  The next
-`deactivate-mark' call uses this to set the window selection.  */);
+text in the region before modifying the buffer.  The next call to
+the function `deactivate-mark' uses this to set the window selection.  */);
   Vsaved_region_selection = Qnil;

   DEFVAR_LISP ("selection-inhibit-update-commands",
--- src/window.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/window.c	2012-10-18 09:54:26.999146500 -0400
@@ -1248,7 +1248,7 @@

 Note that, when WINDOW is the selected window and its buffer
 is also currently selected, the value returned is the same as (point).
-It would be more strictly correct to return the `top-level' value
+It would be more strictly correct to return the top-level value
 of point, outside of any save-excursion forms.
 But that is hard to define.  */)
   (Lisp_Object window)
@@ -6628,7 +6628,7 @@

 Other values are reserved for future use.

-This variable takes no effect if `window-combination-limit' is non-nil.  */);
+This variable takes no effect if the variable
`window-combination-limit' is non-nil.  */);
   Vwindow_combination_resize = Qnil;

   DEFVAR_LISP ("window-combination-limit", Vwindow_combination_limit,

-- 
In general, we reserve the right to have a poor
memory--the computer, however, is supposed to
remember!  Poor computer.  -- Guy Lewis Steele Jr.

[-- Attachment #2: doc-xref.diff --]
[-- Type: application/octet-stream, Size: 37413 bytes --]

--- lisp/ChangeLog~	2012-08-24 05:50:49.000000000 -0400
+++ lisp/ChangeLog	2012-10-19 09:59:08.727119400 -0400
@@ -0,0 +1,83 @@
+2012-10-18  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
+
+        * calc/calc.el (calc-highlight-selections-with-faces): Fix
+        ambiguous doc string cross-reference(s).
+
+        * comint.el (calc-dispatch): Fix ambiguous doc string
+        cross-reference(s).
+
+        * emacs-lisp/edebug.el (comint-history-isearch-message): Fix
+        ambiguous doc string cross-reference(s).
+
+        * ffap.el (edebug-eval-defun): Fix ambiguous doc string
+        cross-reference(s).
+
+        * font-lock.el (ffap-literally): Fix ambiguous doc string
+        cross-reference(s).
+
+        * help-mode.el (help-xref-symbol-regexp): Add "call" a hint for a
+        cross-reference to a function.
+
+        * info.el (help-xref-symbol-regexp): Fix ambiguous doc string
+        cross-reference(s).
+
+        * international/mule.el (Info-find-emacs-command-nodes): Fix
+        ambiguous doc string cross-reference(s).
+
+        * isearch.el (add-to-coding-system-list): Fix ambiguous doc string
+        cross-reference(s).
+
+        * misearch.el (isearch-fail-pos): Fix ambiguous doc string
+        cross-reference(s).
+
+        * newcomment.el (multi-isearch-next-buffer-function): Fix
+        ambiguous doc string cross-reference(s).
+
+        * printing.el (comment-box): Fix ambiguous doc string
+        cross-reference(s).
+
+        * progmodes/cc-fonts.el (pr-setting-database): Fix ambiguous doc
+        string cross-reference(s).
+
+        * progmodes/compile.el (pike-font-lock-keywords): Fix ambiguous
+        doc string cross-reference(s).
+
+        * progmodes/etags.el (compile): Fix ambiguous doc string
+        cross-reference(s).
+
+        * progmodes/gdb-mi.el (initialize-new-tags-table): Fix ambiguous
+        doc string cross-reference(s).
+
+        * progmodes/etags.el (initialize-new-tags-table): Fix ambiguous
+        doc string cross-reference(s).
+
+        * progmodes/gdb-mi.el (initialize-new-tags-table): Fix ambiguous
+        doc string cross-reference(s).
+
+        * ps-print.el (gdb-restore-windows): Fix ambiguous doc string
+        cross-reference(s).
+
+        * server.el (ps-n-up-filling-database): Fix ambiguous doc string
+        cross-reference(s).
+
+        * simple.el (server-log): Fix ambiguous doc string
+        cross-reference(s).
+
+        * textmodes/flyspell.el (auto-fill-mode): Fix ambiguous doc string
+        cross-reference(s).
+
+        * textmodes/ispell.el (ispell-accept-output): Fix ambiguous doc
+        string cross-reference(s).
+
+        * textmodes/sgml-mode.el (ispell-accept-output): Fix ambiguous doc
+        string cross-reference(s).
+
+        * vc/compare-w.el (html-mode): Fix ambiguous doc string
+        cross-reference(s).
+
+        * vc/diff.el (compare-windows-dehighlight): Fix ambiguous doc
+        string cross-reference(s).
+
+        * whitespace.el (diff): Fix ambiguous doc string
+        cross-reference(s).
+
--- lisp/gnus/ChangeLog~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/gnus/ChangeLog	2012-10-19 09:59:08.432089900 -0400
@@ -0,0 +1,8 @@
+2012-10-18  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
+
+        * gnus-start.el (font-lock-removed-keywords-alist): Fix ambiguous doc
+        string cross-reference(s).
+
+        * gnus-sum.el (gnus-check-new-newsgroups): Fix ambiguous doc string
+        cross-reference(s).
+
--- src/ChangeLog~	2012-08-24 05:52:21.000000000 -0400
+++ src/ChangeLog	2012-10-19 09:59:08.153062000 -0400
@@ -0,0 +1,12 @@
+2012-10-18  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
+
+        * insdel.c (Fself_insert_command): Fix ambiguous doc string
+        cross-reference(s).
+
+        * keyboard.c (syms_of_insdel): Fix ambiguous doc string
+        cross-reference(s).
+
+        * window.c (syms_of_keyboard, Fwindow_point): Fix ambiguous doc
+        string cross-reference(s).  Disable cross-reference for
+        "top-level".
+
--- lisp/calc/calc.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/calc/calc.el	2012-10-18 09:54:23.359782600 -0400
@@ -427,9 +427,9 @@
 (defcustom calc-highlight-selections-with-faces
   nil
   "If non-nil, use a separate face to indicate selected sub-formulas.
-If `calc-show-selections' is non-nil, then selected sub-formulas are shown
+If variable `calc-show-selections' is non-nil, then selected sub-formulas are shown
 by displaying the rest of the formula in `calc-nonselected-face'.
-If `calc-show-selections' is nil, then selected sub-formulas are shown
+If option `calc-show-selections' is nil, then selected sub-formulas are shown
 by displaying the sub-formula in `calc-selected-face'."
   :version "24.1"
   :group 'calc
@@ -1200,7 +1200,7 @@
 
 ;;;###autoload
 (defun calc-dispatch (&optional arg)
-  "Invoke the GNU Emacs Calculator.  See `calc-dispatch-help' for details."
+  "Invoke the GNU Emacs Calculator.  See function `calc-dispatch-help' for details."
   (interactive "P")
 ;  (sit-for echo-keystrokes)
   (condition-case err   ; look for other keys bound to calc-dispatch
--- lisp/comint.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/comint.el	2012-10-18 09:54:23.618808500 -0400
@@ -1529,7 +1529,7 @@
 If there are no search errors, this function displays an overlay with
 the Isearch prompt which replaces the original comint prompt.
 Otherwise, it displays the standard Isearch message returned from
-`isearch-message'."
+the function `isearch-message'."
   (if (not (and isearch-success (not isearch-error)))
       ;; Use standard function `isearch-message' when not in comint prompt,
       ;; or search fails, or has an error (like incomplete regexp).
--- lisp/emacs-lisp/edebug.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/emacs-lisp/edebug.el	2012-10-18 09:54:23.772823900 -0400
@@ -471,8 +471,8 @@
 
 This version, from Edebug, maybe instruments the expression.  But the
 STREAM must be the current buffer to do so.  Whether it instruments is
-also dependent on the values of `edebug-all-defs' and
-`edebug-all-forms'."
+also dependent on the values of the option `edebug-all-defs' and
+the option `edebug-all-forms'."
   (or stream (setq stream standard-input))
   (if (eq stream (current-buffer))
       (edebug-read-and-maybe-wrap-form)
@@ -494,7 +494,7 @@
 
 With a prefix argument, instrument the code for Edebug.
 
-Setting `edebug-all-defs' to a non-nil value reverses the meaning of
+Setting option `edebug-all-defs' to a non-nil value reverses the meaning of
 the prefix argument.  Code is then instrumented when this function is
 invoked without a prefix argument
 
--- lisp/ffap.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/ffap.el	2012-10-18 09:54:23.843831000 -0400
@@ -309,7 +309,7 @@
   "Last value returned by `ffap-next-guess'.")
 
 (defvar ffap-string-at-point-region '(1 1)
-  "List (BEG END), last region returned by `ffap-string-at-point'.")
+  "List (BEG END), last region returned by the function `ffap-string-at-point'.")
 
 (defun ffap-next-guess (&optional back lim)
   "Move point to next file or URL, and return it as a string.
@@ -334,7 +334,7 @@
 Optional argument WRAP says to try wrapping around if necessary.
 Interactively: use a single prefix to search backwards,
 double prefix to wrap forward, triple to wrap backwards.
-Actual search is done by `ffap-next-guess'."
+Actual search is done by the function `ffap-next-guess'."
   (interactive
    (cdr (assq (prefix-numeric-value current-prefix-arg)
 	      '((1) (4 t) (16 nil t) (64 t t)))))
@@ -1004,14 +1004,14 @@
   "Alist of \(MODE CHARS BEG END\), where MODE is a symbol,
 possibly a major-mode name, or one of the symbol
 `file', `url', `machine', and `nocolon'.
-`ffap-string-at-point' uses the data fields as follows:
+Function `ffap-string-at-point' uses the data fields as follows:
 1. find a maximal string of CHARS around point,
 2. strip BEG chars before point from the beginning,
 3. Strip END chars after point from the end.")
 
 (defvar ffap-string-at-point nil
   ;; Added at suggestion of RHOGEE (for ff-paths), 7/24/95.
-  "Last string returned by `ffap-string-at-point'.")
+  "Last string returned by the function `ffap-string-at-point'.")
 
 (defun ffap-string-at-point (&optional mode)
   "Return a string of characters from around point.
@@ -1019,7 +1019,7 @@
 syntax parameters in `ffap-string-at-point-mode-alist'.
 If MODE is not found, we use `file' instead of MODE.
 If the region is active, return a string from the region.
-Sets `ffap-string-at-point' and `ffap-string-at-point-region'."
+Sets variable `ffap-string-at-point' and variable `ffap-string-at-point-region'."
   (let* ((args
 	  (cdr
 	   (or (assq (or mode major-mode) ffap-string-at-point-mode-alist)
@@ -1044,7 +1044,7 @@
 
 (defun ffap-string-around ()
   ;; Sometimes useful to decide how to treat a string.
-  "Return string of two chars around last `ffap-string-at-point'.
+  "Return string of two chars for last result of function `ffap-string-at-point'.
 Assumes the buffer has not changed."
   (save-excursion
     (format "%c%c"
@@ -1058,7 +1058,7 @@
 
 (defun ffap-copy-string-as-kill (&optional mode)
   ;; Requested by MCOOK.  Useful?
-  "Call `ffap-string-at-point', and copy result to `kill-ring'."
+  "Call function `ffap-string-at-point', and copy result to `kill-ring'."
   (interactive)
   (let ((str (ffap-string-at-point mode)))
     (if (equal "" str)
@@ -1369,7 +1369,7 @@
   :version "22.1")
 
 (defvar ffap-highlight-overlay nil
-  "Overlay used by `ffap-highlight'.")
+  "Overlay used by function `ffap-highlight'.")
 
 (defun ffap-highlight (&optional remove)
   "If `ffap-highlight' is set, highlight the guess in this buffer.
@@ -1732,7 +1732,7 @@
     (call-interactively 'ffap)))
 
 (defun ffap-literally ()
-  "Like `ffap' and `find-file-literally'.
+  "Like `ffap' and command `find-file-literally'.
 Only intended for interactive use."
   (interactive)
   (let ((ffap-file-finder 'find-file-literally))
--- lisp/font-lock.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/font-lock.el	2012-10-18 09:54:23.943841000 -0400
@@ -469,7 +469,7 @@
   "Alist of additional `font-lock-keywords' elements for major modes.
 
 Each element has the form (MODE KEYWORDS . HOW).
-`font-lock-set-defaults' adds the elements in the list KEYWORDS to
+Function `font-lock-set-defaults' adds the elements in the list KEYWORDS to
 `font-lock-keywords' when Font Lock is turned on in major mode MODE.
 
 If HOW is nil, KEYWORDS are added at the beginning of
@@ -484,7 +484,7 @@
 (defvar font-lock-removed-keywords-alist nil
   "Alist of `font-lock-keywords' elements to be removed for major modes.
 
-Each element has the form (MODE . KEYWORDS).  `font-lock-set-defaults'
+Each element has the form (MODE . KEYWORDS).  Function `font-lock-set-defaults'
 removes the elements in the list KEYWORDS from `font-lock-keywords'
 when Font Lock is turned on in major mode MODE.
 
--- lisp/gnus/gnus-start.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/gnus/gnus-start.el	2012-10-18 09:54:24.043851000 -0400
@@ -110,7 +110,7 @@
 groups since the last time it checked:
   1. This variable is `ask-server'.
   2. This variable is a list of select methods (see below).
-  3. `gnus-read-active-file' is nil or `some'.
+  3. Option `gnus-read-active-file' is nil or `some'.
   4. A prefix argument is given to `gnus-find-new-newsgroups' interactively.
 
 Thus, if this variable is `ask-server' or a list of select methods or
--- lisp/gnus/gnus-sum.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/gnus/gnus-sum.el	2012-10-18 09:54:24.888935500 -0400
@@ -1166,7 +1166,7 @@
 
 (defcustom gnus-summary-newsgroup-prefix "=> "
   "*String prefixed to the Newsgroup field in the summary
-line when using `gnus-ignored-from-addresses'."
+line when using the option `gnus-ignored-from-addresses'."
   :version "22.1"
   :group 'gnus-summary
   :type 'string)
--- lisp/help-mode.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/help-mode.el	2012-10-18 09:54:25.084955100 -0400
@@ -311,7 +311,7 @@
 
 (defconst help-xref-symbol-regexp
   (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|"  ; Link to var
- 		    "\\(function\\|command\\)\\|"          ; Link to function
+ 		    "\\(function\\|command\\|call\\)\\|"   ; Link to function
  		    "\\(face\\)\\|"			   ; Link to face
  		    "\\(symbol\\|program\\|property\\)\\|" ; Don't link
 		    "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)"
--- lisp/info.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/info.el	2012-10-18 09:54:25.130959700 -0400
@@ -4143,7 +4143,7 @@
 The `info-file' property of COMMAND says which Info manual to search.
 If COMMAND has no property, the variable `Info-file-list-for-emacs'
 defines heuristics for which Info manual to try.
-The locations are of the format used in `Info-history', i.e.
+The locations are of the format used in the variable `Info-history', i.e.
 \(FILENAME NODENAME BUFFERPOS), where BUFFERPOS is the line number
 in the first element of the returned list (which is treated specially in
 `Info-goto-emacs-command-node'), and 0 for the rest elements of a list."
--- lisp/international/mule.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/international/mule.el	2012-10-18 09:54:25.175964200 -0400
@@ -890,7 +890,7 @@
 		 (and (vectorp eol-type-1) (vectorp eol-type-2)))))))
 
 (defun add-to-coding-system-list (coding-system)
-  "Add CODING-SYSTEM to `coding-system-list' while keeping it sorted."
+  "Add CODING-SYSTEM to variable `coding-system-list' while keeping it sorted."
   (if (or (null coding-system-list)
 	  (coding-system-lessp coding-system (car coding-system-list)))
       (setq coding-system-list (cons coding-system coding-system-list))
--- lisp/isearch.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/isearch.el	2012-10-18 09:54:25.255972200 -0400
@@ -168,7 +168,7 @@
 
 (defvar isearch-message-function nil
   "Function to call to display the search prompt.
-If nil, use `isearch-message'.")
+If nil, use function `isearch-message'.")
 
 (defvar isearch-wrap-function nil
   "Function to call to wrap the search when search is failed.
@@ -1066,7 +1066,7 @@
 
 (defun isearch-fail-pos (&optional msg)
   "Return position of first mismatch in search string, or nil if none.
-If MSG is non-nil, use `isearch-message', otherwise `isearch-string'."
+If MSG is non-nil, use variable `isearch-message', otherwise `isearch-string'."
   (let ((cmds isearch-cmds)
 	(curr-msg (if msg isearch-message isearch-string))
 	succ-msg)
--- lisp/misearch.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/misearch.el	2012-10-18 09:54:25.453992000 -0400
@@ -73,7 +73,7 @@
 The first argument of this function is the current buffer where the
 search is currently searching.  It defines the base buffer relative to
 which this function should find the next buffer.  When the isearch
-direction is backward (when `isearch-forward' is nil), this function
+direction is backward (when option `isearch-forward' is nil), this function
 should return the previous buffer to search.
 
 If the second argument of this function WRAP is non-nil, then it
--- lisp/newcomment.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/newcomment.el	2012-10-18 09:54:25.509997600 -0400
@@ -1180,7 +1180,7 @@
 (defun comment-box (beg end &optional arg)
   "Comment out the BEG .. END region, putting it inside a box.
 The numeric prefix ARG specifies how many characters to add to begin- and
-end- comment markers additionally to what `comment-add' already specifies."
+end- comment markers additionally to what variable `comment-add' already specifies."
   (interactive "*r\np")
   (comment-normalize-vars)
   (let ((comment-style (if (cadr (assoc comment-style comment-styles))
--- lisp/printing.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/printing.el	2012-10-18 09:54:25.582004800 -0400
@@ -1798,7 +1798,7 @@
 Where:
 
 SYMBOL		It's a symbol to identify a text printer.  It's for
-		`pr-txt-name' variable setting and for menu selection.
+		setting option `pr-txt-name' and for menu selection.
 		Examples:
 			'prt_06a
 			'my_printer
@@ -1949,7 +1949,7 @@
 Where:
 
 SYMBOL		It's a symbol to identify a PostScript printer.  It's for
-		`pr-ps-name' variable setting and for menu selection.
+		setting option `pr-ps-name' and for menu selection.
 		Examples:
 			'prt_06a
 			'my_printer
@@ -2933,7 +2933,7 @@
 
 		The example above has two setting groups: no-duplex and
 		no-duplex-and-landscape.  When setting no-duplex is activated
-		through `inherits-from:' (see `pr-ps-utility', `pr-mode-alist'
+		through `inherits-from:' (see option `pr-ps-utility', `pr-mode-alist'
 		and `pr-ps-printer-alist'), the variables pr-file-duplex and
 		pr-file-tumble are both set to nil.
 
--- lisp/progmodes/cc-fonts.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/cc-fonts.el	2012-10-18 09:54:25.661012700 -0400
@@ -2048,7 +2048,7 @@
 
 (defconst c-font-lock-keywords-3 (c-lang-const c-matchers-3 c)
   "Accurate normal font locking for C mode.
-Like `c-font-lock-keywords-2' but detects declarations in a more
+Like the variable `c-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `c-font-lock-extra-types'.")
 
@@ -2206,7 +2206,7 @@
 
 (defconst c++-font-lock-keywords-3 (c-lang-const c-matchers-3 c++)
   "Accurate normal font locking for C++ mode.
-Like `c++-font-lock-keywords-2' but detects declarations in a more
+Like the variable `c++-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `c++-font-lock-extra-types'.")
 
@@ -2312,7 +2312,7 @@
 
 (defconst objc-font-lock-keywords-3 (c-lang-const c-matchers-3 objc)
   "Accurate normal font locking for Objective-C mode.
-Like `objc-font-lock-keywords-2' but detects declarations in a more
+Like the variable `objc-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `objc-font-lock-extra-types'.")
 
@@ -2355,7 +2355,7 @@
 
 (defconst java-font-lock-keywords-3 (c-lang-const c-matchers-3 java)
   "Accurate normal font locking for Java mode.
-Like `java-font-lock-keywords-2' but detects declarations in a more
+Like variable `java-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `java-font-lock-extra-types'.")
 
@@ -2388,7 +2388,7 @@
 
 (defconst idl-font-lock-keywords-3 (c-lang-const c-matchers-3 idl)
   "Accurate normal font locking for CORBA IDL mode.
-Like `idl-font-lock-keywords-2' but detects declarations in a more
+Like the variable `idl-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `idl-font-lock-extra-types'.")
 
@@ -2421,7 +2421,7 @@
 
 (defconst pike-font-lock-keywords-3 (c-lang-const c-matchers-3 pike)
   "Accurate normal font locking for Pike mode.
-Like `pike-font-lock-keywords-2' but detects declarations in a more
+Like the variable `pike-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `pike-font-lock-extra-types'.")
 
--- lisp/progmodes/compile.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/compile.el	2012-10-18 09:54:25.943040900 -0400
@@ -1378,7 +1378,7 @@
 If optional second arg COMINT is t the buffer will be in Comint mode with
 `compilation-shell-minor-mode'.
 
-Interactively, prompts for the command if `compilation-read-command' is
+Interactively, prompts for the command if the variable `compilation-read-command' is
 non-nil; otherwise uses `compile-command'.  With prefix arg, always prompts.
 Additionally, with universal prefix arg, compilation buffer will be in
 comint mode, i.e. interactive.
--- lisp/progmodes/etags.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/etags.el	2012-10-18 09:54:26.042050800 -0400
@@ -204,7 +204,7 @@
 
 (defvar tags-table-files nil
   "List of file names covered by current tags table.
-nil means it has not yet been computed; use `tags-table-files' to do so.")
+nil means it has not yet been computed; use function `tags-table-files' to do so.")
 
 (defvar tags-completion-table nil
   "Obarray of tag names defined in current tags table.")
@@ -229,7 +229,7 @@
 One optional argument, a boolean specifying to return complete path (nil) or
 relative path (non-nil).")
 (defvar tags-table-files-function nil
-  "Function to do the work of `tags-table-files' (which see).")
+  "Function to do the work of function `tags-table-files' (which see).")
 (defvar tags-completion-table-function nil
   "Function to build the `tags-completion-table'.")
 (defvar snarf-tag-function nil
@@ -256,7 +256,7 @@
 (defvar tags-apropos-function nil
   "Function to do the work of `tags-apropos' (which see).")
 (defvar tags-included-tables-function nil
-  "Function to do the work of `tags-included-tables' (which see).")
+  "Function to do the work of function `tags-included-tables' (which see).")
 (defvar verify-tags-table-function nil
   "Function to return t if current buffer contains valid tags file.")
 \f
--- lisp/progmodes/gdb-mi.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/progmodes/gdb-mi.el	2012-10-18 09:54:26.170063600 -0400
@@ -617,12 +617,12 @@
 options should include \"-i=mi\" to use gdb's MI text interface.
 Note that the old \"--annotate\" option is no longer supported.
 
-If `gdb-many-windows' is nil (the default value) then gdb just
+If option `gdb-many-windows' is nil (the default value) then gdb just
 pops up the GUD buffer unless `gdb-show-main' is t.  In this case
 it starts with two windows: one displaying the GUD buffer and the
 other with the source file with the main routine of the inferior.
 
-If `gdb-many-windows' is t, regardless of the value of
+If option `gdb-many-windows' is t, regardless of the value of
 `gdb-show-main', the layout below will appear.  Keybindings are
 shown in some of the buffers.
 
@@ -4096,7 +4096,7 @@
   (set-window-dedicated-p window t))
 
 (defun gdb-setup-windows ()
-  "Layout the window pattern for `gdb-many-windows'."
+  "Layout the window pattern for option `gdb-many-windows'."
   (gdb-display-locals-buffer)
   (gdb-display-stack-buffer)
   (delete-other-windows)
@@ -4160,7 +4160,7 @@
 
 (defun gdb-restore-windows ()
   "Restore the basic arrangement of windows used by gdb.
-This arrangement depends on the value of `gdb-many-windows'."
+This arrangement depends on the value of option `gdb-many-windows'."
   (interactive)
   (switch-to-buffer gud-comint-buffer) ;Select the right window and frame.
   (delete-other-windows)
--- lisp/ps-print.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/ps-print.el	2012-10-18 09:54:26.282074800 -0400
@@ -1959,13 +1959,13 @@
 
 Any other value is treated as nil.
 
-If you set `ps-selected-pages' (see it for documentation), first the pages are
-filtered by `ps-selected-pages' and then by `ps-even-or-odd-pages'.  For
+If you set option `ps-selected-pages' (see it for documentation), first the pages are
+filtered by option `ps-selected-pages' and then by `ps-even-or-odd-pages'.  For
 example, if we have:
 
    (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))
 
-Combining with `ps-even-or-odd-pages' and `ps-n-up-printing', we have:
+Combining with `ps-even-or-odd-pages' and option `ps-n-up-printing', we have:
 
 `ps-n-up-printing' = 1:
    `ps-even-or-odd-pages'	PAGES PRINTED
@@ -3566,7 +3566,7 @@
 ;;;###autoload
 (defun ps-spool-buffer-with-faces ()
   "Generate and spool a PostScript image of the buffer.
-Like `ps-spool-buffer', but includes font, color, and underline information in
+Like the command `ps-spool-buffer', but includes font, color, and underline information in
 the generated image.  This command works only if you are using a window system,
 so it has a way to determine color values.
 
@@ -5369,7 +5369,7 @@
    (KIND XCOL YCOL XLIN YLIN REPEAT END XSTART YSTART)
 
 Where:
-KIND is a valid value of `ps-n-up-filling'.
+KIND is a valid value of the variable `ps-n-up-filling'.
 XCOL YCOL are the relative position for the next column.
 XLIN YLIN are the relative position for the beginning of next line.
 REPEAT is the number of repetitions for external loop.
--- lisp/server.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/server.el	2012-10-18 09:54:26.330079600 -0400
@@ -328,7 +328,7 @@
 
 (defconst server-buffer " *server*"
   "Buffer used internally by Emacs's server.
-One use is to log the I/O for debugging purposes (see `server-log'),
+One use is to log the I/O for debugging purposes (see option `server-log'),
 the other is to provide a current buffer in which the process filter can
 safely let-bind buffer-local variables like `default-directory'.")
 
@@ -336,7 +336,7 @@
   "If non-nil, log the server's inputs and outputs in the `server-buffer'.")
 
 (defun server-log (string &optional client)
-  "If `server-log' is non-nil, log STRING to `server-buffer'.
+  "If option `server-log' is non-nil, log STRING to `server-buffer'.
 If CLIENT is non-nil, add a description of it to the logged message."
   (when server-log
     (with-current-buffer (get-buffer-create server-buffer)
--- lisp/simple.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/simple.el	2012-10-18 09:54:26.389085500 -0400
@@ -404,10 +404,10 @@
 
 (defun newline (&optional arg)
   "Insert a newline, and move to left margin of the new line if it's blank.
-If `use-hard-newlines' is non-nil, the newline is marked with the
+If option `use-hard-newlines' is non-nil, the newline is marked with the
 text-property `hard'.
 With ARG, insert that many newlines.
-Call `auto-fill-function' if the current column number is greater
+Call function `auto-fill-function' if the current column number is greater
 than the value of `fill-column' and ARG is nil."
   (interactive "*P")
   (barf-if-buffer-read-only)
@@ -824,7 +824,7 @@
   "Delete the previous N characters (following if N is negative).
 If Transient Mark mode is enabled, the mark is active, and N is 1,
 delete the text in the region and deactivate the mark instead.
-To disable this, set `delete-active-region' to nil.
+To disable this, set option `delete-active-region' to nil.
 
 Optional second arg KILLFLAG, if non-nil, means to kill (save in
 kill ring) instead of delete.  Interactively, N is the prefix
@@ -860,7 +860,7 @@
   "Delete the following N characters (previous if N is negative).
 If Transient Mark mode is enabled, the mark is active, and N is 1,
 delete the text in the region and deactivate the mark instead.
-To disable this, set `delete-active-region' to nil.
+To disable this, set variable `delete-active-region' to nil.
 
 Optional second arg KILLFLAG non-nil means to kill (save in kill
 ring) instead of delete.  Interactively, N is the prefix arg, and
@@ -1707,7 +1707,7 @@
 If there are no search errors, this function displays an overlay with
 the isearch prompt which replaces the original minibuffer prompt.
 Otherwise, it displays the standard isearch message returned from
-`isearch-message'."
+the function `isearch-message'."
   (if (not (and (minibufferp) isearch-success (not isearch-error)))
       ;; Use standard function `isearch-message' when not in the minibuffer,
       ;; or search fails, or has an error (like incomplete regexp).
@@ -3520,7 +3520,7 @@
 kill the rest of the current line, even if there are only
 nonblanks there.
 
-If `kill-whole-line' is non-nil, then this command kills the whole line
+If option `kill-whole-line' is non-nil, then this command kills the whole line
 including its terminating newline, when used at the beginning of a line
 with no argument.  As a consequence, you can always kill a whole line
 by typing \\[move-beginning-of-line] \\[kill-line].
@@ -4296,13 +4296,13 @@
   "Non-nil means vertical motion starting at end of line keeps to ends of lines.
 This means moving to the end of each line moved onto.
 The beginning of a blank line does not count as the end of a line.
-This has no effect when `line-move-visual' is non-nil."
+This has no effect when the variable `line-move-visual' is non-nil."
   :type 'boolean
   :group 'editing-basics)
 
 (defcustom goal-column nil
   "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil.
-A non-nil setting overrides `line-move-visual', which see."
+A non-nil setting overrides the variable `line-move-visual', which see."
   :type '(choice integer
 		 (const :tag "None" nil))
   :group 'editing-basics)
@@ -4313,7 +4313,7 @@
 It is the column where point was at the start of the current run
 of vertical motion commands.
 
-When moving by visual lines via `line-move-visual', it is a cons
+When moving by visual lines via the function `line-move-visual', it is a cons
 cell (COL . HSCROLL), where COL is the x-position, in pixels,
 divided by the default column width, and HSCROLL is the number of
 columns by which window is scrolled from left margin.
@@ -5377,7 +5377,7 @@
 beyond `current-fill-column' automatically breaks the line at a
 previous space.
 
-When `auto-fill-mode' is on, the `auto-fill-function' variable is
+When `auto-fill-mode' is on, the variable `auto-fill-function' is
 non-`nil'.
 
 The value of `normal-auto-fill-function' specifies the function to use
--- lisp/textmodes/flyspell.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/textmodes/flyspell.el	2012-10-18 09:54:26.436090200 -0400
@@ -63,7 +63,7 @@
   "Non-nil means Flyspell reports a repeated word as an error.
 See `flyspell-mark-duplications-exceptions' to add exceptions to this rule.
 Detection of repeated words is not implemented in
-\"large\" regions; see `flyspell-large-region'."
+\"large\" regions; see variable `flyspell-large-region'."
   :group 'flyspell
   :type 'boolean)
 
@@ -148,7 +148,7 @@
     scroll-up
     scroll-down)
   "The standard list of deplacement commands for Flyspell.
-See `flyspell-deplacement-commands'."
+See variable `flyspell-deplacement-commands'."
   :group 'flyspell
   :version "21.1"
   :type '(repeat (symbol)))
--- lisp/textmodes/ispell.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/textmodes/ispell.el	2012-10-18 09:54:26.487095300 -0400
@@ -1540,7 +1540,7 @@
 
 (defun ispell-accept-output (&optional timeout-secs timeout-msecs)
   "Wait for output from ispell process, or TIMEOUT-SECS and TIMEOUT-MSECS.
-If asynchronous subprocesses are not supported, call `ispell-filter' and
+If asynchronous subprocesses are not supported, call function `ispell-filter' and
 pass it the output of the last ispell invocation."
   (if ispell-async-processp
       (accept-process-output ispell-process timeout-secs timeout-msecs)
--- lisp/textmodes/sgml-mode.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/textmodes/sgml-mode.el	2012-10-18 09:54:26.545101100 -0400
@@ -1936,7 +1936,7 @@
     ("ul" . "Unordered list")
     ("var" . "Math variable face")
     ("wbr" . "Enable <br> within <nobr>"))
-  "*Value of `sgml-tag-help' for HTML mode.")
+  "*Value of variable `sgml-tag-help' for HTML mode.")
 
 \f
 ;;;###autoload
--- lisp/vc/compare-w.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/vc/compare-w.el	2012-10-18 09:54:26.584105000 -0400
@@ -53,13 +53,13 @@
   :group 'compare-windows)
 
 (defcustom compare-ignore-whitespace nil
-  "Non-nil means `compare-windows' ignores whitespace."
+  "Non-nil means command `compare-windows' ignores whitespace."
   :type 'boolean
   :group 'compare-windows
   :version "22.1")
 
 (defcustom compare-ignore-case nil
-  "Non-nil means `compare-windows' ignores case differences."
+  "Non-nil means command `compare-windows' ignores case differences."
   :type 'boolean
   :group 'compare-windows)
 
@@ -379,7 +379,7 @@
 	(delete-overlay compare-windows-overlay2)))))
 
 (defun compare-windows-dehighlight ()
-  "Remove highlighting created by `compare-windows-highlight'."
+  "Remove highlighting created by function `compare-windows-highlight'."
   (interactive)
   (remove-hook 'pre-command-hook 'compare-windows-dehighlight)
   (mapc 'delete-overlay compare-windows-overlays1)
--- lisp/vc/diff.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/vc/diff.el	2012-10-18 09:54:26.627109300 -0400
@@ -83,7 +83,7 @@
 
 When called interactively with a prefix argument, prompt
 interactively for diff switches.  Otherwise, the switches
-specified in `diff-switches' are passed to the diff command."
+specified in the variable `diff-switches' are passed to the diff command."
   (interactive
    (let* ((newf (if (and buffer-file-name (file-exists-p buffer-file-name))
 		    (read-file-name
--- lisp/whitespace.el~	2012-08-23 01:33:42.000000000 -0400
+++ lisp/whitespace.el	2012-10-18 09:54:26.796126200 -0400
@@ -1276,19 +1276,19 @@
 
 (defvar whitespace-point (point)
   "Used to save locally current point value.
-Used by `whitespace-trailing-regexp' function (which see).")
+Used by function `whitespace-trailing-regexp' (which see).")
 
 (defvar whitespace-font-lock-refontify nil
   "Used to save locally the font-lock refontify state.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")
 
 (defvar whitespace-bob-marker nil
   "Used to save locally the bob marker value.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")
 
 (defvar whitespace-eob-marker nil
   "Used to save locally the eob marker value.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")
 
 (defvar whitespace-buffer-changed nil
   "Used to indicate locally if buffer changed.
--- src/cmds.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/cmds.c	2012-10-18 09:54:26.835130100 -0400
@@ -270,7 +270,7 @@
 Whichever character you type to run this command is inserted.
 Before insertion, `expand-abbrev' is executed if the inserted character does
 not have word syntax and the previous character in the buffer does.
-After insertion, the value of `auto-fill-function' is called if the
+After insertion, the value of the variable `auto-fill-function' is called if the
 `auto-fill-chars' table has a non-nil value for the inserted character.
 At the end, it runs `post-self-insert-hook'.  */)
   (Lisp_Object n)
--- src/insdel.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/insdel.c	2012-10-18 09:54:26.914138000 -0400
@@ -2116,7 +2116,7 @@
 
 DEFUN ("combine-after-change-execute", Fcombine_after_change_execute,
        Scombine_after_change_execute, 0, 0, 0,
-       doc: /* This function is for use internally in `combine-after-change-calls'.  */)
+       doc: /* This function is for use internally in the function `combine-after-change-calls'.  */)
   (void)
 {
   int count = SPECPDL_INDEX ();
@@ -2211,7 +2211,7 @@
 	       doc: /* Non-nil means enable debugging checks for invalid marker positions.  */);
   check_markers_debug_flag = 0;
   DEFVAR_LISP ("combine-after-change-calls", Vcombine_after_change_calls,
-	       doc: /* Used internally by the `combine-after-change-calls' macro.  */);
+	       doc: /* Used internally by the function `combine-after-change-calls'.  */);
   Vcombine_after_change_calls = Qnil;
 
   DEFVAR_BOOL ("inhibit-modification-hooks", inhibit_modification_hooks,
--- src/keyboard.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/keyboard.c	2012-10-18 09:54:26.958142400 -0400
@@ -10249,7 +10249,7 @@
        doc: /* Execute CMD as an editor command.
 CMD must be a symbol that satisfies the `commandp' predicate.
 Optional second arg RECORD-FLAG non-nil
-means unconditionally put this command in `command-history'.
+means unconditionally put this command in the variable `command-history'.
 Otherwise, that is done only if an arg is read using the minibuffer.
 The argument KEYS specifies the value to use instead of (this-command-keys)
 when reading the arguments; if it is nil, (this-command-keys) is used.
@@ -12284,8 +12284,8 @@
 	       Vsaved_region_selection,
 	       doc: /* Contents of active region prior to buffer modification.
 If `select-active-regions' is non-nil, Emacs sets this to the
-text in the region before modifying the buffer.  The next
-`deactivate-mark' call uses this to set the window selection.  */);
+text in the region before modifying the buffer.  The next call to
+the function `deactivate-mark' uses this to set the window selection.  */);
   Vsaved_region_selection = Qnil;
 
   DEFVAR_LISP ("selection-inhibit-update-commands",
--- src/window.c~	2012-08-23 01:33:42.000000000 -0400
+++ src/window.c	2012-10-18 09:54:26.999146500 -0400
@@ -1248,7 +1248,7 @@
 
 Note that, when WINDOW is the selected window and its buffer
 is also currently selected, the value returned is the same as (point).
-It would be more strictly correct to return the `top-level' value
+It would be more strictly correct to return the top-level value
 of point, outside of any save-excursion forms.
 But that is hard to define.  */)
   (Lisp_Object window)
@@ -6628,7 +6628,7 @@
 
 Other values are reserved for future use.
 
-This variable takes no effect if `window-combination-limit' is non-nil.  */);
+This variable takes no effect if the variable `window-combination-limit' is non-nil.  */);
   Vwindow_combination_resize = Qnil;
 
   DEFVAR_LISP ("window-combination-limit", Vwindow_combination_limit,

^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-19 20:58 bug#12686: PATCH: ambiguous help doc strings Aaron S. Hawley
@ 2012-10-23  8:04 ` Juri Linkov
  2012-10-23 12:32   ` Stefan Monnier
  2012-10-23 15:24   ` Aaron S. Hawley
  0 siblings, 2 replies; 16+ messages in thread
From: Juri Linkov @ 2012-10-23  8:04 UTC (permalink / raw)
  To: Aaron S. Hawley; +Cc: 12686

> In order to check all the doc strings in Emacs, all the libraries in
> Emacs need to be loaded.  Unfortunately, Emacs crashes or becomes
> unusable when doing this.  Some libraries need to be skipped.  This
> could be because a library is loaded more than once since I use
> `load-library' rather than `require'.

To avoid crashes after loading all the libraries I suggest to try
static analysis without loading the libraries.  This is possible
to do with a function like `emacs-lisp-grep' from
http://lists.gnu.org/archive/html/emacs-devel/2005-05/msg01259.html

When the first element of an expression read from the source file
is `defun', its docstring is in the fourth element.  A variable name
is the second element of the expression whose first element is `defvar'
or `defcustom', etc.  Conditional defvars are more tricky to process
but fortunately they are rare.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-23  8:04 ` Juri Linkov
@ 2012-10-23 12:32   ` Stefan Monnier
  2012-10-23 16:15     ` Drew Adams
  2012-10-23 15:24   ` Aaron S. Hawley
  1 sibling, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2012-10-23 12:32 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 12686, Aaron S. Hawley

>> In order to check all the doc strings in Emacs, all the libraries in
>> Emacs need to be loaded.  Unfortunately, Emacs crashes or becomes
>> unusable when doing this.  Some libraries need to be skipped.  This
>> could be because a library is loaded more than once since I use
>> `load-library' rather than `require'.

BTW, a common cause of ambiguity is minor modes which use the same
symbol as a function and as a variable.  But in most such cases, I think
the fix is not to fix the ambiguity but to make
describe-function/variable aware of minor-modes and display them in
a unified way (i.e. display a single *Help* buffer that shows the var
and the fun as a single entity, e.g. giving the args but also the link
to customize).


        Stefan





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-23  8:04 ` Juri Linkov
  2012-10-23 12:32   ` Stefan Monnier
@ 2012-10-23 15:24   ` Aaron S. Hawley
  1 sibling, 0 replies; 16+ messages in thread
From: Aaron S. Hawley @ 2012-10-23 15:24 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 12686

> To avoid crashes after loading all the libraries I suggest to try
> static analysis without loading the libraries.  This is possible
> to do with a function like `emacs-lisp-grep' from
> http://lists.gnu.org/archive/html/emacs-devel/2005-05/msg01259.html

Nice.

> When the first element of an expression read from the source file
> is `defun', its docstring is in the fourth element.  A variable name
> is the second element of the expression whose first element is `defvar'
> or `defcustom', etc.  Conditional defvars are more tricky to process
> but fortunately they are rare.

For this problem, this would require two passes.  The first pass to
find the ambiguous symbol definitions (a defun and defvar or
defcustom) then a second to find the references to these symbols in
documentation in an ambiguous way.  I'd probably use something like an
obarray to keep track of symbols in the first pass, but it would be a
second-rate reimplementation to what Emacs already does.  And
`emacs-lisp-grep' wouldn't search the C sources.  So for laziness and
completeness, I went with mapatoms.

-- 
In general, we reserve the right to have a poor
memory--the computer, however, is supposed to
remember!  Poor computer.  -- Guy Lewis Steele Jr.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-23 12:32   ` Stefan Monnier
@ 2012-10-23 16:15     ` Drew Adams
  2012-10-23 17:02       ` Stefan Monnier
  0 siblings, 1 reply; 16+ messages in thread
From: Drew Adams @ 2012-10-23 16:15 UTC (permalink / raw)
  To: 'Stefan Monnier', 'Juri Linkov'
  Cc: 12686, 'Aaron S. Hawley'

> BTW, a common cause of ambiguity is minor modes which use the same
> symbol as a function and as a variable.  But in most such 
> cases, I think the fix is not to fix the ambiguity but to make
> describe-function/variable aware of minor-modes and display them in
> a unified way (i.e. display a single *Help* buffer that shows the var
> and the fun as a single entity, e.g. giving the args but also the link
> to customize).

+1, but not necessarily in the describe-function/variable code.  It should be
enough to do it once, in `help-make-xrefs'.

And this is already done, to some extent.  `help-make-xrefs' already DTRT,
**IF** the symbol name is not preceded by a keyword such as `function' or
`variable', i.e., if the match against `help-xref-symbol-regexp' does not match
`match-string' 1 through 7, and the symbol is both a var and a fn with doc.

In that case, we use button type `help-symbol', which DTRT: it shows the help
for both the function and the variable.

For example, if `icicle-mode' appears in the help text without any intro word
such as `function', `variable', or `option', then when you click it you get the
help for both the mode function `icicle-mode' and the mode variable (option)
`icicle-mode'.

`help-make-xrefs' could be tweaked to improve the accuracy in the case of a mode
fn/var (or any other symbol that is both a fn and a var): Just change the `cond'
order clauses, moving this clause before the other clauses:

((and (or (boundp sym)
          (get sym 'variable-documentation))
      (fboundp sym))
 ;; We can't intuit whether to use the
 ;; variable or function doc -- supply both.
 (help-xref-button 8 'help-symbol sym))

I.e., instead of providing such all-of-the-above behavior only as a fallback,
provide it anytime we know that a given symbol is both a fn and a var (by using
button type `help-symbol').






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-23 16:15     ` Drew Adams
@ 2012-10-23 17:02       ` Stefan Monnier
  2012-10-25 18:29         ` Drew Adams
  0 siblings, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2012-10-23 17:02 UTC (permalink / raw)
  To: Drew Adams; +Cc: 12686, 'Aaron S. Hawley'

> In that case, we use button type `help-symbol', which DTRT: it shows the help
> for both the function and the variable.

What I meant is that for minor-modes we shouldn't show the help for the
function plus the help for the variable but a single help for the
minor-mode which describes both as a single entity.


        Stefan





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-23 17:02       ` Stefan Monnier
@ 2012-10-25 18:29         ` Drew Adams
  2012-10-25 19:21           ` Stefan Monnier
  0 siblings, 1 reply; 16+ messages in thread
From: Drew Adams @ 2012-10-25 18:29 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 12686, 'Aaron S. Hawley'

> What I meant is that for minor-modes we shouldn't show the 
> help for the function plus the help for the variable but a
> single help for the minor-mode which describes both as a
> single entity.

Why?  What's the difference?  IOW, just what do you mean by "as a single
entity"?

Anyway, sounds OK to me.  But if this is not done right away, why not at least
do as I suggested in the meantime: move the var-or-fn clause first, so that if a
symbol is both it gets treated as both.

And that would seem to be appropriate anyway, even if you also do as you
suggest, to accommodate other symbols that do not correspond to a minor-mode but
which have both var and fun definitions.  IOW, minor modes are not the only case
to consider, even if they are an important case.

I would like to see all doc for a symbol, which could have definitions as a
face, a var, a function, and perhaps even a group (anything else?).  The cond
clauses should be ordered accordingly, rather than favoring some kinds of thingy
to the exclusion of others.






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-25 18:29         ` Drew Adams
@ 2012-10-25 19:21           ` Stefan Monnier
  2012-10-25 20:13             ` Drew Adams
  0 siblings, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2012-10-25 19:21 UTC (permalink / raw)
  To: Drew Adams; +Cc: 12686, 'Aaron S. Hawley'

> Anyway, sounds OK to me.  But if this is not done right away, why not
> at least do as I suggested in the meantime: move the var-or-fn clause
> first, so that if a symbol is both it gets treated as both.

If the docstring explicitly refers to the function, I see no reason why
Emacs should show both the function and the var.


        Stefan





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-25 19:21           ` Stefan Monnier
@ 2012-10-25 20:13             ` Drew Adams
  2012-10-25 20:44               ` Aaron S. Hawley
  0 siblings, 1 reply; 16+ messages in thread
From: Drew Adams @ 2012-10-25 20:13 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 12686, 'Aaron S. Hawley'

> > But if this is not done right away, why not at least do as
> > I suggested in the meantime: move the var-or-fn clause
> > first, so that if a symbol is both it gets treated as both.
> >
> > And that would seem to be appropriate anyway, even if you
> > also do as you suggest, to accommodate other symbols that do
> > not correspond to a minor-mode but which have both var and
> > fun definitions.  IOW, minor modes are not the only case
> > to consider, even if they are an important case.
> 
> If the docstring explicitly refers to the function, I see no 
> reason why Emacs should show both the function and the var.

1. What doc string ("the docstring")?  The fn has a doc string and so does the
var.

Perhaps you are talking about a (probably minority) case where one doc string
explicitly refers to the other, e.g., a fn doc string mentions the var or vice
versa, using a keyword (e.g. `variable').  If so, then yes, in that case there
is no _need_ to show both together, and it would be fine not to.

If you have an easy way of distinguishing that case, fine, it can be excluded.
If you have no easy way, do you really want to scan the string to see if it
mentions the same symbol preceded by a different keyword (e.g. `variable' or
`option', for a fun doc string)?


2. But even if you do not bother to exclude that case, and you show both doc
strings systematically, it's not a big deal.  Typically, one or the other
(usually the var) doc string is quite short.

For example, the minor-mode varible `icicle-mode' has only this (boilerplate) as
its doc (whereas the minor-mode function `icicle-mode' has a _long_ doc string):

  icicle-mode is a variable defined in `icicles-mode.el'.
  Its value is t
  Original value was nil

  Documentation:
  Non-nil if Icicle mode is enabled.
  See the command `icicle-mode' for a description of this minor mode.
  Setting this variable directly does not take effect;
  either customize it (see the info node `Easy Customization')
  or call the function `icicle-mode'.

 You can customize this variable.

And I think things are similar for most cases that are not minor modes.


3. If you really want to think about improving *Help* in a general way then I'd
suggest that the problem is not (within reason) the amount of info we provide
but inadequate organization of it.

For `C-h m' we have tried to impose at least some organization, but essentially
that amounts to only (a) a header line of links to (b) sequentially listed
"sections" that are Emacs pages.  Kind of like a 1990s FAQ web page with an
index/TOC at the top followed by all of the FAQs.

Those header links for `C-h m' are ugly (bold should be banned from Emacs
defaults, because it just doesn't work well for lots of faces), but they are
better than nothing.

Better might be a tabbed organization of the info.  For a symbol such as
`icicle-mode' there could be tabs for the command and the option, for example.
For `C-h m' there could be a major-mode tab and a tab for each minor mode.  Or
some such.

And there are other ways to organize info, besides tabs.

The point here really is that rather than getting excited about finding ways to
exclude some information we should start by including as much as might be
pertinent (fn, var, face,...) and then work on designing a better organized UI.






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-25 20:13             ` Drew Adams
@ 2012-10-25 20:44               ` Aaron S. Hawley
  2012-10-25 21:01                 ` Drew Adams
  0 siblings, 1 reply; 16+ messages in thread
From: Aaron S. Hawley @ 2012-10-25 20:44 UTC (permalink / raw)
  To: Drew Adams; +Cc: 12686

Interesting proposals, but can we apply my patch full of doc fixes,
close this issue and brainstorm about Help Mode in a new bug or on
emacs-devel?

Sorry to be a party pooper.

Thanks,
aaron





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-25 20:44               ` Aaron S. Hawley
@ 2012-10-25 21:01                 ` Drew Adams
  2012-10-25 21:11                   ` Aaron S. Hawley
  2012-10-26  1:40                   ` Stefan Monnier
  0 siblings, 2 replies; 16+ messages in thread
From: Drew Adams @ 2012-10-25 21:01 UTC (permalink / raw)
  To: 'Aaron S. Hawley'; +Cc: 12686

> Interesting proposals, but can we apply my patch full of doc fixes,
> close this issue and brainstorm about Help Mode in a new bug or on
> emacs-devel?

I agree.

But I would argue for including the simple change I suggested in your patch:
move the fn-or-var clause in `help-make-xrefs' to the top of the cond, so the
xref link takes you to doc for both when available.

> Sorry to be a party pooper.

Not a very good party anyway.






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-25 21:01                 ` Drew Adams
@ 2012-10-25 21:11                   ` Aaron S. Hawley
  2012-10-25 21:13                     ` Drew Adams
  2012-10-26  1:40                   ` Stefan Monnier
  1 sibling, 1 reply; 16+ messages in thread
From: Aaron S. Hawley @ 2012-10-25 21:11 UTC (permalink / raw)
  To: Drew Adams; +Cc: 12686

> But I would argue for including the simple change I suggested in your
> patch:
> move the fn-or-var clause in `help-make-xrefs' to the top of the cond, so
> the
> xref link takes you to doc for both when available.

Ah, ok.  I didn't notice you had suggested that.  Since that wasn't
the thrust of my bug report, perhaps, make your suggestion a patch and
submit as a new bug.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-25 21:11                   ` Aaron S. Hawley
@ 2012-10-25 21:13                     ` Drew Adams
  0 siblings, 0 replies; 16+ messages in thread
From: Drew Adams @ 2012-10-25 21:13 UTC (permalink / raw)
  To: 'Aaron S. Hawley'; +Cc: 12686

> Ah, ok.  I didn't notice you had suggested that.  Since that wasn't
> the thrust of my bug report, perhaps, make your suggestion a patch and
> submit as a new bug.

I consider it submitted. ;-)
If Stefan or you don't want to do that now, fine by me.






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-25 21:01                 ` Drew Adams
  2012-10-25 21:11                   ` Aaron S. Hawley
@ 2012-10-26  1:40                   ` Stefan Monnier
  2013-01-11 18:19                     ` Aaron S. Hawley
  1 sibling, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2012-10-26  1:40 UTC (permalink / raw)
  To: Drew Adams; +Cc: 12686, 'Aaron S. Hawley'

> But I would argue for including the simple change I suggested in your patch:
> move the fn-or-var clause in `help-make-xrefs' to the top of the cond, so the
> xref link takes you to doc for both when available.

As I explained, I think this is an incorrect change: "If the docstring
explicitly refers to the function, I see no reason why Emacs should show
both the function and the var".


        Stefan





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2012-10-26  1:40                   ` Stefan Monnier
@ 2013-01-11 18:19                     ` Aaron S. Hawley
  2013-01-11 23:09                       ` Stefan Monnier
  0 siblings, 1 reply; 16+ messages in thread
From: Aaron S. Hawley @ 2013-01-11 18:19 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 12686

[-- Attachment #1: Type: text/plain, Size: 1208 bytes --]

On Thu, Oct 25, 2012 at 9:40 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>> But I would argue for including the simple change I suggested in your patch:
>> move the fn-or-var clause in `help-make-xrefs' to the top of the cond, so the
>> xref link takes you to doc for both when available.
>
> As I explained, I think this is an incorrect change: "If the docstring
> explicitly refers to the function, I see no reason why Emacs should show
> both the function and the var".
>
>
>         Stefan

Nobody has moved on making the documentation system improvement Stefan
suggested for minor modes that was made as an addendum(?) to this bug
report.  I wish to emphasize that the doc fixes I submitted in the
patch 3 months ago didn't deal with references to symbols for minor
modes.  I purposefully avoided that problem.  The changes in the patch
are only to symbols that have both function and variable definitions
-- none are symbols for minor modes.  These fixes are needed
regardless if there is an enhancement to minor mode documentation as
Stefan suggests.

I have updated the patch against trunk and corrected some whitespace
problems that were introduced in the original.  It is attached.

Aaron

[-- Attachment #2: doc-xref.diff --]
[-- Type: application/octet-stream, Size: 38167 bytes --]

=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog	2013-01-11 15:04:24 +0000
+++ lisp/ChangeLog	2013-01-11 17:42:24 +0000
@@ -0,0 +0,92 @@
+2013-01-11  Aaron S. Hawley  <Aaron.Hawley@vtinfo.com>
+
+	* calc/calc.el (calc-highlight-selections-with-faces)
+	 (calc-dispatch): Fix ambiguous doc string cross-reference(s).
+
+	* comint.el (comint-history-isearch-message): Fix ambiguous doc
+	 string cross-reference(s).
+
+	* emacs-lisp/edebug.el (edebug-read, edebug-eval-defun): Fix
+	 ambiguous doc string cross-reference(s).
+
+	* ffap.el (ffap-string-at-point-region, ffap-next)
+	(ffap-string-at-point, ffap-string-around)
+	(ffap-copy-string-as-kill, ffap-highlight-overlay)
+	(ffap-literally): Fix ambiguous doc string cross-reference(s).
+
+	* font-lock.el (font-lock-keywords-alist)
+	(font-lock-removed-keywords-alist): Fix ambiguous doc string
+        cross-reference(s).
+
+	* help-mode.el (help-xref-symbol-regexp): Add "call" as a hint for
+	a cross-reference to a function.
+
+	* info.el (Info-find-emacs-command-nodes): Fix ambiguous doc
+	 string cross-reference(s).
+
+	* international/mule.el (add-to-coding-system-list): Fix ambiguous
+	 doc string cross-reference(s).
+
+	* isearch.el (isearch-message-function, isearch-fail-pos): Fix
+	 ambiguous doc string cross-reference(s).
+
+	* misearch.el (multi-isearch-next-buffer-function): Fix ambiguous
+	 doc string cross-reference(s).
+
+	* newcomment.el (comment-box): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* printing.el (pr-txt-printer-alist, pr-ps-printer-alist)
+	(pr-setting-database): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* progmodes/cc-fonts.el (c-font-lock-keywords-3)
+	(c++-font-lock-keywords-3, objc-font-lock-keywords-3)
+	(java-font-lock-keywords-3, idl-font-lock-keywords-3)
+	(pike-font-lock-keywords-3): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* progmodes/compile.el (compile): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* progmodes/etags.el (tags-table-files)
+	(tags-table-files-function, tags-included-tables-function): Fix
+	 ambiguous doc string cross-reference(s).
+
+	* progmodes/gdb-mi.el (gdb, gdb-setup-windows)
+	(gdb-restore-windows): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* ps-print.el (ps-even-or-odd-pages, ps-spool-buffer-with-faces)
+	(ps-n-up-filling-database): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* server.el (server-buffer, server-log): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* simple.el (newline, delete-backward-char, delete-forward-char)
+	(minibuffer-history-isearch-message, kill-line, track-eol)
+	(temporary-goal-column): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* textmodes/flyspell.el (flyspell-mark-duplications-flag)
+	(flyspell-default-deplacement-commands): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* textmodes/ispell.el (ispell-accept-output): Fix ambiguous doc
+	 string cross-reference(s).
+
+	* textmodes/sgml-mode.el (html-tag-help): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* vc/compare-w.el (compare-ignore-whitespace)
+	(compare-ignore-case, compare-windows-dehighlight): Fix ambiguous
+	 doc string cross-reference(s).
+
+	* vc/diff.el (diff): Fix ambiguous doc string cross-reference(s).
+
+	* whitespace.el (whitespace-point)
+	(whitespace-font-lock-refontify, whitespace-bob-marker)
+	(whitespace-eob-marker): Fix ambiguous doc string
+	 cross-reference(s).
+

=== modified file 'lisp/calc/calc.el'
--- lisp/calc/calc.el	2013-01-02 16:13:04 +0000
+++ lisp/calc/calc.el	2013-01-11 17:42:24 +0000
@@ -435,9 +435,9 @@
 (defcustom calc-highlight-selections-with-faces
   nil
   "If non-nil, use a separate face to indicate selected sub-formulas.
-If `calc-show-selections' is non-nil, then selected sub-formulas are shown
-by displaying the rest of the formula in `calc-nonselected-face'.
-If `calc-show-selections' is nil, then selected sub-formulas are shown
+If option `calc-show-selections' is non-nil, then selected sub-formulas are
+shown by displaying the rest of the formula in `calc-nonselected-face'.
+If option `calc-show-selections' is nil, then selected sub-formulas are shown
 by displaying the sub-formula in `calc-selected-face'."
   :version "24.1"
   :group 'calc
@@ -1183,7 +1183,7 @@
 
 ;;;###autoload
 (defun calc-dispatch (&optional arg)
-  "Invoke the GNU Emacs Calculator.  See `calc-dispatch-help' for details."
+  "Invoke the GNU Emacs Calculator.  See \\[calc-dispatch-help] for details."
   (interactive "P")
 ;  (sit-for echo-keystrokes)
   (condition-case err   ; look for other keys bound to calc-dispatch

=== modified file 'lisp/comint.el'
--- lisp/comint.el	2013-01-09 08:30:21 +0000
+++ lisp/comint.el	2013-01-11 17:42:24 +0000
@@ -1521,7 +1521,7 @@
 If there are no search errors, this function displays an overlay with
 the Isearch prompt which replaces the original comint prompt.
 Otherwise, it displays the standard Isearch message returned from
-`isearch-message'."
+the function `isearch-message'."
   (if (not (and isearch-success (not isearch-error)))
       ;; Use standard function `isearch-message' when not in comint prompt,
       ;; or search fails, or has an error (like incomplete regexp).

=== modified file 'lisp/emacs-lisp/edebug.el'
--- lisp/emacs-lisp/edebug.el	2013-01-02 16:13:04 +0000
+++ lisp/emacs-lisp/edebug.el	2013-01-11 17:42:25 +0000
@@ -461,8 +461,8 @@
 
 This version, from Edebug, maybe instruments the expression.  But the
 STREAM must be the current buffer to do so.  Whether it instruments is
-also dependent on the values of `edebug-all-defs' and
-`edebug-all-forms'."
+also dependent on the values of the option `edebug-all-defs' and
+the option `edebug-all-forms'."
   (or stream (setq stream standard-input))
   (if (eq stream (current-buffer))
       (edebug-read-and-maybe-wrap-form)
@@ -484,8 +484,8 @@
 
 With a prefix argument, instrument the code for Edebug.
 
-Setting `edebug-all-defs' to a non-nil value reverses the meaning of
-the prefix argument.  Code is then instrumented when this function is
+Setting option `edebug-all-defs' to a non-nil value reverses the meaning
+of the prefix argument.  Code is then instrumented when this function is
 invoked without a prefix argument
 
 If acting on a `defun' for FUNCTION, and the function was instrumented,

=== modified file 'lisp/ffap.el'
--- lisp/ffap.el	2013-01-02 16:13:04 +0000
+++ lisp/ffap.el	2013-01-11 17:42:25 +0000
@@ -321,7 +321,7 @@
   "Last value returned by `ffap-next-guess'.")
 
 (defvar ffap-string-at-point-region '(1 1)
-  "List (BEG END), last region returned by `ffap-string-at-point'.")
+  "List (BEG END), last region returned by the function `ffap-string-at-point'.")
 
 (defun ffap-next-guess (&optional back lim)
   "Move point to next file or URL, and return it as a string.
@@ -346,7 +346,7 @@
 Optional argument WRAP says to try wrapping around if necessary.
 Interactively: use a single prefix to search backwards,
 double prefix to wrap forward, triple to wrap backwards.
-Actual search is done by `ffap-next-guess'."
+Actual search is done by the function `ffap-next-guess'."
   (interactive
    (cdr (assq (prefix-numeric-value current-prefix-arg)
 	      '((1) (4 t) (16 nil t) (64 t t)))))
@@ -1028,14 +1028,14 @@
   "Alist of \(MODE CHARS BEG END\), where MODE is a symbol,
 possibly a major-mode name, or one of the symbol
 `file', `url', `machine', and `nocolon'.
-`ffap-string-at-point' uses the data fields as follows:
+Function `ffap-string-at-point' uses the data fields as follows:
 1. find a maximal string of CHARS around point,
 2. strip BEG chars before point from the beginning,
 3. Strip END chars after point from the end.")
 
 (defvar ffap-string-at-point nil
   ;; Added at suggestion of RHOGEE (for ff-paths), 7/24/95.
-  "Last string returned by `ffap-string-at-point'.")
+  "Last string returned by the function `ffap-string-at-point'.")
 
 (defun ffap-string-at-point (&optional mode)
   "Return a string of characters from around point.
@@ -1043,7 +1043,8 @@
 syntax parameters in `ffap-string-at-point-mode-alist'.
 If MODE is not found, we use `file' instead of MODE.
 If the region is active, return a string from the region.
-Sets `ffap-string-at-point' and `ffap-string-at-point-region'."
+Sets the variable `ffap-string-at-point' and the variable
+`ffap-string-at-point-region'."
   (let* ((args
 	  (cdr
 	   (or (assq (or mode major-mode) ffap-string-at-point-mode-alist)
@@ -1068,7 +1069,8 @@
 
 (defun ffap-string-around ()
   ;; Sometimes useful to decide how to treat a string.
-  "Return string of two chars around last `ffap-string-at-point'.
+  "Return string of two chars around last result of function
+`ffap-string-at-point'.
 Assumes the buffer has not changed."
   (save-excursion
     (format "%c%c"
@@ -1082,7 +1084,7 @@
 
 (defun ffap-copy-string-as-kill (&optional mode)
   ;; Requested by MCOOK.  Useful?
-  "Call `ffap-string-at-point', and copy result to `kill-ring'."
+  "Call function `ffap-string-at-point', and copy result to `kill-ring'."
   (interactive)
   (let ((str (ffap-string-at-point mode)))
     (if (equal "" str)
@@ -1364,7 +1366,7 @@
   :version "22.1")
 
 (defvar ffap-highlight-overlay nil
-  "Overlay used by `ffap-highlight'.")
+  "Overlay used by function `ffap-highlight'.")
 
 (defun ffap-highlight (&optional remove)
   "If `ffap-highlight' is set, highlight the guess in this buffer.
@@ -1734,7 +1736,7 @@
     (call-interactively 'ffap)))
 
 (defun ffap-literally ()
-  "Like `ffap' and `find-file-literally'.
+  "Like `ffap' and command `find-file-literally'.
 Only intended for interactive use."
   (interactive)
   (let ((ffap-file-finder 'find-file-literally))

=== modified file 'lisp/font-lock.el'
--- lisp/font-lock.el	2013-01-01 09:11:05 +0000
+++ lisp/font-lock.el	2013-01-11 17:42:25 +0000
@@ -469,7 +469,7 @@
   "Alist of additional `font-lock-keywords' elements for major modes.
 
 Each element has the form (MODE KEYWORDS . HOW).
-`font-lock-set-defaults' adds the elements in the list KEYWORDS to
+Function `font-lock-set-defaults' adds the elements in the list KEYWORDS to
 `font-lock-keywords' when Font Lock is turned on in major mode MODE.
 
 If HOW is nil, KEYWORDS are added at the beginning of
@@ -484,7 +484,7 @@
 (defvar font-lock-removed-keywords-alist nil
   "Alist of `font-lock-keywords' elements to be removed for major modes.
 
-Each element has the form (MODE . KEYWORDS).  `font-lock-set-defaults'
+Each element has the form (MODE . KEYWORDS).  Function `font-lock-set-defaults'
 removes the elements in the list KEYWORDS from `font-lock-keywords'
 when Font Lock is turned on in major mode MODE.
 

=== modified file 'lisp/gnus/ChangeLog'
--- lisp/gnus/ChangeLog	2013-01-11 10:40:54 +0000
+++ lisp/gnus/ChangeLog	2013-01-11 17:42:25 +0000
@@ -0,0 +0,8 @@
+2013-01-11  Aaron S. Hawley  <Aaron.Hawley@vtinfo.com>
+
+	* gnus-start.el (gnus-check-new-newsgroups): Fix ambiguous doc string
+	 cross-reference(s).
+
+	* gnus-sum.el (gnus-summary-newsgroup-prefix): Fix ambiguous doc string
+	 cross-reference(s).
+

=== modified file 'lisp/gnus/gnus-start.el'
--- lisp/gnus/gnus-start.el	2013-01-02 16:13:04 +0000
+++ lisp/gnus/gnus-start.el	2013-01-11 17:42:25 +0000
@@ -110,7 +110,7 @@
 groups since the last time it checked:
   1. This variable is `ask-server'.
   2. This variable is a list of select methods (see below).
-  3. `gnus-read-active-file' is nil or `some'.
+  3. Option `gnus-read-active-file' is nil or `some'.
   4. A prefix argument is given to `gnus-find-new-newsgroups' interactively.
 
 Thus, if this variable is `ask-server' or a list of select methods or

=== modified file 'lisp/gnus/gnus-sum.el'
--- lisp/gnus/gnus-sum.el	2013-01-02 16:13:04 +0000
+++ lisp/gnus/gnus-sum.el	2013-01-11 17:42:25 +0000
@@ -1167,7 +1167,7 @@
 
 (defcustom gnus-summary-newsgroup-prefix "=> "
   "*String prefixed to the Newsgroup field in the summary
-line when using `gnus-ignored-from-addresses'."
+line when using the option `gnus-ignored-from-addresses'."
   :version "22.1"
   :group 'gnus-summary
   :type 'string)

=== modified file 'lisp/help-mode.el'
--- lisp/help-mode.el	2013-01-02 16:13:04 +0000
+++ lisp/help-mode.el	2013-01-11 17:42:25 +0000
@@ -322,7 +322,7 @@
 
 (defconst help-xref-symbol-regexp
   (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|"  ; Link to var
- 		    "\\(function\\|command\\)\\|"          ; Link to function
+ 		    "\\(function\\|command\\|call\\)\\|"   ; Link to function
  		    "\\(face\\)\\|"			   ; Link to face
  		    "\\(symbol\\|program\\|property\\)\\|" ; Don't link
 		    "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)"

=== modified file 'lisp/info.el'
--- lisp/info.el	2013-01-08 00:28:55 +0000
+++ lisp/info.el	2013-01-11 17:42:26 +0000
@@ -4313,7 +4313,7 @@
 The `info-file' property of COMMAND says which Info manual to search.
 If COMMAND has no property, the variable `Info-file-list-for-emacs'
 defines heuristics for which Info manual to try.
-The locations are of the format used in `Info-history', i.e.
+The locations are of the format used in the variable `Info-history', i.e.
 \(FILENAME NODENAME BUFFERPOS), where BUFFERPOS is the line number
 in the first element of the returned list (which is treated specially in
 `Info-goto-emacs-command-node'), and 0 for the rest elements of a list."

=== modified file 'lisp/international/mule.el'
--- lisp/international/mule.el	2013-01-01 09:11:05 +0000
+++ lisp/international/mule.el	2013-01-11 17:42:26 +0000
@@ -891,7 +891,7 @@
 		 (and (vectorp eol-type-1) (vectorp eol-type-2)))))))
 
 (defun add-to-coding-system-list (coding-system)
-  "Add CODING-SYSTEM to `coding-system-list' while keeping it sorted."
+  "Add CODING-SYSTEM to variable `coding-system-list' while keeping it sorted."
   (if (or (null coding-system-list)
 	  (coding-system-lessp coding-system (car coding-system-list)))
       (setq coding-system-list (cons coding-system coding-system-list))

=== modified file 'lisp/isearch.el'
--- lisp/isearch.el	2013-01-02 16:13:04 +0000
+++ lisp/isearch.el	2013-01-11 17:42:26 +0000
@@ -176,7 +176,7 @@
 
 (defvar isearch-message-function nil
   "Function to call to display the search prompt.
-If nil, use `isearch-message'.")
+If nil, use function `isearch-message'.")
 
 (defvar isearch-wrap-function nil
   "Function to call to wrap the search when search is failed.
@@ -1101,7 +1101,7 @@
 
 (defun isearch-fail-pos (&optional msg)
   "Return position of first mismatch in search string, or nil if none.
-If MSG is non-nil, use `isearch-message', otherwise `isearch-string'."
+If MSG is non-nil, use variable `isearch-message', otherwise `isearch-string'."
   (let ((cmds isearch-cmds)
 	(curr-msg (if msg isearch-message isearch-string))
 	succ-msg)

=== modified file 'lisp/misearch.el'
--- lisp/misearch.el	2013-01-01 09:11:05 +0000
+++ lisp/misearch.el	2013-01-11 17:42:26 +0000
@@ -73,7 +73,7 @@
 The first argument of this function is the current buffer where the
 search is currently searching.  It defines the base buffer relative to
 which this function should find the next buffer.  When the isearch
-direction is backward (when `isearch-forward' is nil), this function
+direction is backward (when option `isearch-forward' is nil), this function
 should return the previous buffer to search.
 
 If the second argument of this function WRAP is non-nil, then it

=== modified file 'lisp/newcomment.el'
--- lisp/newcomment.el	2013-01-01 09:11:05 +0000
+++ lisp/newcomment.el	2013-01-11 17:42:26 +0000
@@ -1206,7 +1206,8 @@
 (defun comment-box (beg end &optional arg)
   "Comment out the BEG .. END region, putting it inside a box.
 The numeric prefix ARG specifies how many characters to add to begin- and
-end- comment markers additionally to what `comment-add' already specifies."
+end- comment markers additionally to what variable `comment-add' already
+specifies."
   (interactive "*r\np")
   (comment-normalize-vars)
   (let ((comment-style (if (cadr (assoc comment-style comment-styles))

=== modified file 'lisp/printing.el'
--- lisp/printing.el	2013-01-02 16:13:04 +0000
+++ lisp/printing.el	2013-01-11 17:42:26 +0000
@@ -1800,7 +1800,7 @@
 Where:
 
 SYMBOL		It's a symbol to identify a text printer.  It's for
-		`pr-txt-name' variable setting and for menu selection.
+		setting option `pr-txt-name' and for menu selection.
 		Examples:
 			'prt_06a
 			'my_printer
@@ -1951,7 +1951,7 @@
 Where:
 
 SYMBOL		It's a symbol to identify a PostScript printer.  It's for
-		`pr-ps-name' variable setting and for menu selection.
+		setting option `pr-ps-name' and for menu selection.
 		Examples:
 			'prt_06a
 			'my_printer
@@ -2935,9 +2935,9 @@
 
 		The example above has two setting groups: no-duplex and
 		no-duplex-and-landscape.  When setting no-duplex is activated
-		through `inherits-from:' (see `pr-ps-utility', `pr-mode-alist'
-		and `pr-ps-printer-alist'), the variables pr-file-duplex and
-		pr-file-tumble are both set to nil.
+		through `inherits-from:' (see option `pr-ps-utility',
+		`pr-mode-alist' and `pr-ps-printer-alist'), the variables
+		pr-file-duplex and pr-file-tumble are both set to nil.
 
 		Now when setting no-duplex-and-landscape is activated through
 		`inherits-from:', the variable pr-file-landscape is set to nil

=== modified file 'lisp/progmodes/cc-fonts.el'
--- lisp/progmodes/cc-fonts.el	2013-01-01 09:11:05 +0000
+++ lisp/progmodes/cc-fonts.el	2013-01-11 17:42:26 +0000
@@ -2049,7 +2049,7 @@
 
 (defconst c-font-lock-keywords-3 (c-lang-const c-matchers-3 c)
   "Accurate normal font locking for C mode.
-Like `c-font-lock-keywords-2' but detects declarations in a more
+Like the variable `c-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `c-font-lock-extra-types'.")
 
@@ -2207,7 +2207,7 @@
 
 (defconst c++-font-lock-keywords-3 (c-lang-const c-matchers-3 c++)
   "Accurate normal font locking for C++ mode.
-Like `c++-font-lock-keywords-2' but detects declarations in a more
+Like the variable `c++-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `c++-font-lock-extra-types'.")
 
@@ -2313,7 +2313,7 @@
 
 (defconst objc-font-lock-keywords-3 (c-lang-const c-matchers-3 objc)
   "Accurate normal font locking for Objective-C mode.
-Like `objc-font-lock-keywords-2' but detects declarations in a more
+Like the variable `objc-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `objc-font-lock-extra-types'.")
 
@@ -2356,7 +2356,7 @@
 
 (defconst java-font-lock-keywords-3 (c-lang-const c-matchers-3 java)
   "Accurate normal font locking for Java mode.
-Like `java-font-lock-keywords-2' but detects declarations in a more
+Like variable `java-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `java-font-lock-extra-types'.")
 
@@ -2389,7 +2389,7 @@
 
 (defconst idl-font-lock-keywords-3 (c-lang-const c-matchers-3 idl)
   "Accurate normal font locking for CORBA IDL mode.
-Like `idl-font-lock-keywords-2' but detects declarations in a more
+Like the variable `idl-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `idl-font-lock-extra-types'.")
 
@@ -2422,7 +2422,7 @@
 
 (defconst pike-font-lock-keywords-3 (c-lang-const c-matchers-3 pike)
   "Accurate normal font locking for Pike mode.
-Like `pike-font-lock-keywords-2' but detects declarations in a more
+Like the variable `pike-font-lock-keywords-2' but detects declarations in a more
 accurate way that works in most cases for arbitrary types without the
 need for `pike-font-lock-extra-types'.")
 

=== modified file 'lisp/progmodes/compile.el'
--- lisp/progmodes/compile.el	2013-01-09 08:30:21 +0000
+++ lisp/progmodes/compile.el	2013-01-11 17:42:27 +0000
@@ -1427,8 +1427,9 @@
 If optional second arg COMINT is t the buffer will be in Comint mode with
 `compilation-shell-minor-mode'.
 
-Interactively, prompts for the command if `compilation-read-command' is
-non-nil; otherwise uses `compile-command'.  With prefix arg, always prompts.
+Interactively, prompts for the command if the variable
+`compilation-read-command' is non-nil; otherwise uses`compile-command'.
+With prefix arg, always prompts.
 Additionally, with universal prefix arg, compilation buffer will be in
 comint mode, i.e. interactive.
 

=== modified file 'lisp/progmodes/etags.el'
--- lisp/progmodes/etags.el	2013-01-04 19:22:37 +0000
+++ lisp/progmodes/etags.el	2013-01-11 17:42:27 +0000
@@ -199,7 +199,8 @@
 
 (defvar tags-table-files nil
   "List of file names covered by current tags table.
-nil means it has not yet been computed; use `tags-table-files' to do so.")
+nil means it has not yet been computed;
+use function `tags-table-files' to do so.")
 
 (defvar tags-completion-table nil
   "Obarray of tag names defined in current tags table.")
@@ -224,7 +225,7 @@
 One optional argument, a boolean specifying to return complete path (nil) or
 relative path (non-nil).")
 (defvar tags-table-files-function nil
-  "Function to do the work of `tags-table-files' (which see).")
+  "Function to do the work of function `tags-table-files' (which see).")
 (defvar tags-completion-table-function nil
   "Function to build the `tags-completion-table'.")
 (defvar snarf-tag-function nil
@@ -251,7 +252,7 @@
 (defvar tags-apropos-function nil
   "Function to do the work of `tags-apropos' (which see).")
 (defvar tags-included-tables-function nil
-  "Function to do the work of `tags-included-tables' (which see).")
+  "Function to do the work of function `tags-included-tables' (which see).")
 (defvar verify-tags-table-function nil
   "Function to return t if current buffer contains valid tags file.")
 \f

=== modified file 'lisp/progmodes/gdb-mi.el'
--- lisp/progmodes/gdb-mi.el	2013-01-01 09:11:05 +0000
+++ lisp/progmodes/gdb-mi.el	2013-01-11 17:42:27 +0000
@@ -607,12 +607,12 @@
 options should include \"-i=mi\" to use gdb's MI text interface.
 Note that the old \"--annotate\" option is no longer supported.
 
-If `gdb-many-windows' is nil (the default value) then gdb just
+If option `gdb-many-windows' is nil (the default value) then gdb just
 pops up the GUD buffer unless `gdb-show-main' is t.  In this case
 it starts with two windows: one displaying the GUD buffer and the
 other with the source file with the main routine of the inferior.
 
-If `gdb-many-windows' is t, regardless of the value of
+If option `gdb-many-windows' is t, regardless of the value of
 `gdb-show-main', the layout below will appear.  Keybindings are
 shown in some of the buffers.
 
@@ -4069,7 +4069,7 @@
   (set-window-dedicated-p window t))
 
 (defun gdb-setup-windows ()
-  "Layout the window pattern for `gdb-many-windows'."
+  "Layout the window pattern for option `gdb-many-windows'."
   (gdb-get-buffer-create 'gdb-locals-buffer)
   (gdb-get-buffer-create 'gdb-stack-buffer)
   (gdb-get-buffer-create 'gdb-breakpoints-buffer)
@@ -4120,7 +4120,7 @@
 
 (defun gdb-restore-windows ()
   "Restore the basic arrangement of windows used by gdb.
-This arrangement depends on the value of `gdb-many-windows'."
+This arrangement depends on the value of option `gdb-many-windows'."
   (interactive)
   (switch-to-buffer gud-comint-buffer) ;Select the right window and frame.
   (delete-other-windows)

=== modified file 'lisp/ps-print.el'
--- lisp/ps-print.el	2013-01-01 09:11:05 +0000
+++ lisp/ps-print.el	2013-01-11 17:42:27 +0000
@@ -1959,13 +1959,13 @@
 
 Any other value is treated as nil.
 
-If you set `ps-selected-pages' (see it for documentation), first the pages are
-filtered by `ps-selected-pages' and then by `ps-even-or-odd-pages'.  For
-example, if we have:
+If you set option `ps-selected-pages', first the pages are
+filtered by option `ps-selected-pages' and then by `ps-even-or-odd-pages'.
+For example, if we have:
 
    (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))
 
-Combining with `ps-even-or-odd-pages' and `ps-n-up-printing', we have:
+Combining with `ps-even-or-odd-pages' and option `ps-n-up-printing', we have:
 
 `ps-n-up-printing' = 1:
    `ps-even-or-odd-pages'	PAGES PRINTED
@@ -3566,9 +3566,9 @@
 ;;;###autoload
 (defun ps-spool-buffer-with-faces ()
   "Generate and spool a PostScript image of the buffer.
-Like `ps-spool-buffer', but includes font, color, and underline information in
-the generated image.  This command works only if you are using a window system,
-so it has a way to determine color values.
+Like the command `ps-spool-buffer', but includes font, color, and underline
+information in the generated image.  This command works only if you are using
+a window system, so it has a way to determine color values.
 
 Use the command `ps-despool' to send the spooled images to the printer."
   (interactive)
@@ -5369,7 +5369,7 @@
    (KIND XCOL YCOL XLIN YLIN REPEAT END XSTART YSTART)
 
 Where:
-KIND is a valid value of `ps-n-up-filling'.
+KIND is a valid value of the variable `ps-n-up-filling'.
 XCOL YCOL are the relative position for the next column.
 XLIN YLIN are the relative position for the beginning of next line.
 REPEAT is the number of repetitions for external loop.

=== modified file 'lisp/server.el'
--- lisp/server.el	2013-01-02 16:13:04 +0000
+++ lisp/server.el	2013-01-11 17:42:27 +0000
@@ -361,7 +361,7 @@
 
 (defconst server-buffer " *server*"
   "Buffer used internally by Emacs's server.
-One use is to log the I/O for debugging purposes (see `server-log'),
+One use is to log the I/O for debugging purposes (see option `server-log'),
 the other is to provide a current buffer in which the process filter can
 safely let-bind buffer-local variables like `default-directory'.")
 
@@ -369,7 +369,7 @@
   "If non-nil, log the server's inputs and outputs in the `server-buffer'.")
 
 (defun server-log (string &optional client)
-  "If `server-log' is non-nil, log STRING to `server-buffer'.
+  "If option `server-log' is non-nil, log STRING to `server-buffer'.
 If CLIENT is non-nil, add a description of it to the logged message."
   (when server-log
     (with-current-buffer (get-buffer-create server-buffer)

=== modified file 'lisp/simple.el'
--- lisp/simple.el	2013-01-10 03:43:02 +0000
+++ lisp/simple.el	2013-01-11 17:42:27 +0000
@@ -401,7 +401,7 @@
 
 (defun newline (&optional arg)
   "Insert a newline, and move to left margin of the new line if it's blank.
-If `use-hard-newlines' is non-nil, the newline is marked with the
+If option `use-hard-newlines' is non-nil, the newline is marked with the
 text-property `hard'.
 With ARG, insert that many newlines.
 Call `auto-fill-function' if the current column number is greater
@@ -837,7 +837,7 @@
   "Delete the previous N characters (following if N is negative).
 If Transient Mark mode is enabled, the mark is active, and N is 1,
 delete the text in the region and deactivate the mark instead.
-To disable this, set `delete-active-region' to nil.
+To disable this, set option `delete-active-region' to nil.
 
 Optional second arg KILLFLAG, if non-nil, means to kill (save in
 kill ring) instead of delete.  Interactively, N is the prefix
@@ -873,7 +873,7 @@
   "Delete the following N characters (previous if N is negative).
 If Transient Mark mode is enabled, the mark is active, and N is 1,
 delete the text in the region and deactivate the mark instead.
-To disable this, set `delete-active-region' to nil.
+To disable this, set variable `delete-active-region' to nil.
 
 Optional second arg KILLFLAG non-nil means to kill (save in kill
 ring) instead of delete.  Interactively, N is the prefix arg, and
@@ -1778,7 +1778,7 @@
 If there are no search errors, this function displays an overlay with
 the isearch prompt which replaces the original minibuffer prompt.
 Otherwise, it displays the standard isearch message returned from
-`isearch-message'."
+the function `isearch-message'."
   (if (not (and (minibufferp) isearch-success (not isearch-error)))
       ;; Use standard function `isearch-message' when not in the minibuffer,
       ;; or search fails, or has an error (like incomplete regexp).
@@ -3805,7 +3805,7 @@
 kill the rest of the current line, even if there are only
 nonblanks there.
 
-If `kill-whole-line' is non-nil, then this command kills the whole line
+If option `kill-whole-line' is non-nil, then this command kills the whole line
 including its terminating newline, when used at the beginning of a line
 with no argument.  As a consequence, you can always kill a whole line
 by typing \\[move-beginning-of-line] \\[kill-line].
@@ -4575,13 +4575,13 @@
   "Non-nil means vertical motion starting at end of line keeps to ends of lines.
 This means moving to the end of each line moved onto.
 The beginning of a blank line does not count as the end of a line.
-This has no effect when `line-move-visual' is non-nil."
+This has no effect when the variable `line-move-visual' is non-nil."
   :type 'boolean
   :group 'editing-basics)
 
 (defcustom goal-column nil
   "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil.
-A non-nil setting overrides `line-move-visual', which see."
+A non-nil setting overrides the variable `line-move-visual', which see."
   :type '(choice integer
 		 (const :tag "None" nil))
   :group 'editing-basics)
@@ -4592,7 +4592,7 @@
 It is the column where point was at the start of the current run
 of vertical motion commands.
 
-When moving by visual lines via `line-move-visual', it is a cons
+When moving by visual lines via the function `line-move-visual', it is a cons
 cell (COL . HSCROLL), where COL is the x-position, in pixels,
 divided by the default column width, and HSCROLL is the number of
 columns by which window is scrolled from left margin.

=== modified file 'lisp/textmodes/flyspell.el'
--- lisp/textmodes/flyspell.el	2013-01-08 23:50:40 +0000
+++ lisp/textmodes/flyspell.el	2013-01-11 17:42:28 +0000
@@ -63,7 +63,7 @@
   "Non-nil means Flyspell reports a repeated word as an error.
 See `flyspell-mark-duplications-exceptions' to add exceptions to this rule.
 Detection of repeated words is not implemented in
-\"large\" regions; see `flyspell-large-region'."
+\"large\" regions; see variable `flyspell-large-region'."
   :group 'flyspell
   :type 'boolean)
 
@@ -145,9 +145,10 @@
 (defcustom flyspell-default-deplacement-commands
   '(next-line previous-line
     handle-switch-frame handle-select-window
-    scroll-up scroll-down)
+    scroll-up
+    scroll-down)
   "The standard list of deplacement commands for Flyspell.
-See `flyspell-deplacement-commands'."
+See variable `flyspell-deplacement-commands'."
   :group 'flyspell
   :version "21.1"
   :type '(repeat (symbol)))

=== modified file 'lisp/textmodes/ispell.el'
--- lisp/textmodes/ispell.el	2013-01-02 16:13:04 +0000
+++ lisp/textmodes/ispell.el	2013-01-11 17:42:28 +0000
@@ -1594,8 +1594,8 @@
 
 (defun ispell-accept-output (&optional timeout-secs timeout-msecs)
   "Wait for output from ispell process, or TIMEOUT-SECS and TIMEOUT-MSECS.
-If asynchronous subprocesses are not supported, call `ispell-filter' and
-pass it the output of the last ispell invocation."
+If asynchronous subprocesses are not supported, call function `ispell-filter'
+and pass it the output of the last ispell invocation."
   (if ispell-async-processp
       (accept-process-output ispell-process timeout-secs timeout-msecs)
     (if (null ispell-process)

=== modified file 'lisp/textmodes/sgml-mode.el'
--- lisp/textmodes/sgml-mode.el	2013-01-02 16:13:04 +0000
+++ lisp/textmodes/sgml-mode.el	2013-01-11 17:42:28 +0000
@@ -1926,7 +1926,7 @@
     ("ul" . "Unordered list")
     ("var" . "Math variable face")
     ("wbr" . "Enable <br> within <nobr>"))
-  "Value of `sgml-tag-help' for HTML mode.")
+  "Value of variable `sgml-tag-help' for HTML mode.")
 
 (defvar outline-regexp)
 (defvar outline-heading-end-regexp)

=== modified file 'lisp/vc/compare-w.el'
--- lisp/vc/compare-w.el	2013-01-01 09:11:05 +0000
+++ lisp/vc/compare-w.el	2013-01-11 17:42:28 +0000
@@ -53,13 +53,13 @@
   :group 'compare-windows)
 
 (defcustom compare-ignore-whitespace nil
-  "Non-nil means `compare-windows' ignores whitespace."
+  "Non-nil means command `compare-windows' ignores whitespace."
   :type 'boolean
   :group 'compare-windows
   :version "22.1")
 
 (defcustom compare-ignore-case nil
-  "Non-nil means `compare-windows' ignores case differences."
+  "Non-nil means command `compare-windows' ignores case differences."
   :type 'boolean
   :group 'compare-windows)
 
@@ -379,7 +379,7 @@
 	(delete-overlay compare-windows-overlay2)))))
 
 (defun compare-windows-dehighlight ()
-  "Remove highlighting created by `compare-windows-highlight'."
+  "Remove highlighting created by function `compare-windows-highlight'."
   (interactive)
   (remove-hook 'pre-command-hook 'compare-windows-dehighlight)
   (mapc 'delete-overlay compare-windows-overlays1)

=== modified file 'lisp/vc/diff.el'
--- lisp/vc/diff.el	2013-01-01 09:11:05 +0000
+++ lisp/vc/diff.el	2013-01-11 17:42:28 +0000
@@ -86,7 +86,7 @@
 
 When called interactively with a prefix argument, prompt
 interactively for diff switches.  Otherwise, the switches
-specified in `diff-switches' are passed to the diff command."
+specified in the variable `diff-switches' are passed to the diff command."
   (interactive
    (let* ((newf (if (and buffer-file-name (file-exists-p buffer-file-name))
 		    (read-file-name

=== modified file 'lisp/whitespace.el'
--- lisp/whitespace.el	2013-01-01 09:11:05 +0000
+++ lisp/whitespace.el	2013-01-11 17:42:28 +0000
@@ -1271,19 +1271,19 @@
 
 (defvar whitespace-point (point)
   "Used to save locally current point value.
-Used by `whitespace-trailing-regexp' function (which see).")
+Used by function `whitespace-trailing-regexp' (which see).")
 
 (defvar whitespace-font-lock-refontify nil
   "Used to save locally the font-lock refontify state.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")
 
 (defvar whitespace-bob-marker nil
   "Used to save locally the bob marker value.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")
 
 (defvar whitespace-eob-marker nil
   "Used to save locally the eob marker value.
-Used by `whitespace-post-command-hook' function (which see).")
+Used by function `whitespace-post-command-hook' (which see).")
 
 (defvar whitespace-buffer-changed nil
   "Used to indicate locally if buffer changed.

=== modified file 'src/ChangeLog'
--- src/ChangeLog	2013-01-11 13:25:10 +0000
+++ src/ChangeLog	2013-01-11 17:42:28 +0000
@@ -0,0 +0,11 @@
+2013-01-11  Aaron S. Hawley  <Aaron.Hawley@vtinfo.com>
+
+	* insdel.c (Fcombine_after_change_execute, syms_of_insdel): Fix
+	 ambiguous doc string cross-reference(s).
+
+	* keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
+	 doc string cross-reference(s).
+
+	* window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
+	 string cross-reference(s).
+

=== modified file 'src/insdel.c'
--- src/insdel.c	2013-01-11 13:25:10 +0000
+++ src/insdel.c	2013-01-11 17:42:28 +0000
@@ -2084,7 +2084,7 @@
 
 DEFUN ("combine-after-change-execute", Fcombine_after_change_execute,
        Scombine_after_change_execute, 0, 0, 0,
-       doc: /* This function is for use internally in `combine-after-change-calls'.  */)
+       doc: /* This function is for use internally in the function `combine-after-change-calls'.  */)
   (void)
 {
   ptrdiff_t count = SPECPDL_INDEX ();
@@ -2176,7 +2176,7 @@
   combine_after_change_buffer = Qnil;
 
   DEFVAR_LISP ("combine-after-change-calls", Vcombine_after_change_calls,
-	       doc: /* Used internally by the `combine-after-change-calls' macro.  */);
+	       doc: /* Used internally by the function `combine-after-change-calls' macro.  */);
   Vcombine_after_change_calls = Qnil;
 
   DEFVAR_BOOL ("inhibit-modification-hooks", inhibit_modification_hooks,

=== modified file 'src/keyboard.c'
--- src/keyboard.c	2013-01-08 16:51:11 +0000
+++ src/keyboard.c	2013-01-11 17:42:29 +0000
@@ -10170,7 +10170,7 @@
        doc: /* Execute CMD as an editor command.
 CMD must be a symbol that satisfies the `commandp' predicate.
 Optional second arg RECORD-FLAG non-nil
-means unconditionally put this command in `command-history'.
+means unconditionally put this command in the variable `command-history'.
 Otherwise, that is done only if an arg is read using the minibuffer.
 The argument KEYS specifies the value to use instead of (this-command-keys)
 when reading the arguments; if it is nil, (this-command-keys) is used.
@@ -12055,8 +12055,8 @@
 	       Vsaved_region_selection,
 	       doc: /* Contents of active region prior to buffer modification.
 If `select-active-regions' is non-nil, Emacs sets this to the
-text in the region before modifying the buffer.  The next
-`deactivate-mark' call uses this to set the window selection.  */);
+text in the region before modifying the buffer.  The next call to
+the function `deactivate-mark' uses this to set the window selection.  */);
   Vsaved_region_selection = Qnil;
 
   DEFVAR_LISP ("selection-inhibit-update-commands",

=== modified file 'src/window.c'
--- src/window.c	2013-01-02 16:13:04 +0000
+++ src/window.c	2013-01-11 17:42:29 +0000
@@ -1436,7 +1436,7 @@
 
 Note that, when WINDOW is selected, the value returned is the same as
 that returned by `point' for WINDOW's buffer.  It would be more strictly
-correct to return the `top-level' value of `point', outside of any
+correct to return the top-level value of `point', outside of any
 `save-excursion' forms.  But that is hard to define.  */)
   (Lisp_Object window)
 {
@@ -6793,7 +6793,8 @@
 
 Other values are reserved for future use.
 
-This variable takes no effect if `window-combination-limit' is non-nil.  */);
+This variable takes no effect if the variable `window-combination-limit' is
+non-nil.  */);
   Vwindow_combination_resize = Qnil;
 
   DEFVAR_LISP ("window-combination-limit", Vwindow_combination_limit,


^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#12686: PATCH: ambiguous help doc strings
  2013-01-11 18:19                     ` Aaron S. Hawley
@ 2013-01-11 23:09                       ` Stefan Monnier
  0 siblings, 0 replies; 16+ messages in thread
From: Stefan Monnier @ 2013-01-11 23:09 UTC (permalink / raw)
  To: Aaron S. Hawley; +Cc: 12686-done

Thank you, installed,


        Stefan





^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2013-01-11 23:09 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-19 20:58 bug#12686: PATCH: ambiguous help doc strings Aaron S. Hawley
2012-10-23  8:04 ` Juri Linkov
2012-10-23 12:32   ` Stefan Monnier
2012-10-23 16:15     ` Drew Adams
2012-10-23 17:02       ` Stefan Monnier
2012-10-25 18:29         ` Drew Adams
2012-10-25 19:21           ` Stefan Monnier
2012-10-25 20:13             ` Drew Adams
2012-10-25 20:44               ` Aaron S. Hawley
2012-10-25 21:01                 ` Drew Adams
2012-10-25 21:11                   ` Aaron S. Hawley
2012-10-25 21:13                     ` Drew Adams
2012-10-26  1:40                   ` Stefan Monnier
2013-01-11 18:19                     ` Aaron S. Hawley
2013-01-11 23:09                       ` Stefan Monnier
2012-10-23 15:24   ` Aaron S. Hawley

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).