changeset 50684:21af30889a41

(help-make-xrefs): Clean up the loop that scans over a keymap inserted by \\{...}; it now stops at end of buffer.
author Richard M. Stallman <rms@gnu.org>
date Thu, 24 Apr 2003 01:56:55 +0000
parents 11093cda819e
children ee0efd6ecb89
files lisp/help-mode.el
diffstat 1 files changed, 17 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help-mode.el	Thu Apr 24 01:55:38 2003 +0000
+++ b/lisp/help-mode.el	Thu Apr 24 01:56:55 2003 +0000
@@ -386,23 +386,27 @@
 		(goto-char (point-min))
                 ;; Find a header and the column at which the command
                 ;; name will be found.
+
+		;; If the keymap substitution isn't the last thing in
+		;; the doc string, and if there is anything on the
+		;; same line after it, this code won't recognize the end of it.
                 (while (re-search-forward "^key +binding\n\\(-+ +\\)-+\n\n"
                                           nil t)
                   (let ((col (- (match-end 1) (match-beginning 1))))
                     (while
-                        ;; Ignore single blank lines in table, but not
-                        ;; double ones, which should terminate it.
-                        (and (not (looking-at "\n\\s-*\n"))
-                             (progn
-			       (and (eolp) (forward-line))
-			       (end-of-line)
-			       (skip-chars-backward "^\t\n")
-                               (if (and (>= (current-column) col)
-					(looking-at "\\(\\sw\\|-\\)+$"))
-                                   (let ((sym (intern-soft (match-string 0))))
-                                     (if (fboundp sym)
-                                         (help-xref-button 0 'help-function sym))))
-			       (zerop (forward-line)))))))))
+                        (and (not (eobp))
+			     ;; Stop at a pair of blank lines.
+			     (not (looking-at "\n\\s-*\n")))
+		      ;; Skip a single blank line.
+		      (and (eolp) (forward-line))
+		      (end-of-line)
+		      (skip-chars-backward "^\t\n")
+		      (if (and (>= (current-column) col)
+			       (looking-at "\\(\\sw\\|-\\)+$"))
+			  (let ((sym (intern-soft (match-string 0))))
+			    (if (fboundp sym)
+				(help-xref-button 0 'help-function sym))))
+		      (forward-line)))))))
           (set-syntax-table stab))
 	;; Delete extraneous newlines at the end of the docstring
 	(goto-char (point-max))