# HG changeset patch # User Richard M. Stallman # Date 1051149415 0 # Node ID 21af30889a418fd2bf511acb4f4cbcff2626ec91 # Parent 11093cda819ed55e83734e4584d2524301cddb0b (help-make-xrefs): Clean up the loop that scans over a keymap inserted by \\{...}; it now stops at end of buffer. diff -r 11093cda819e -r 21af30889a41 lisp/help-mode.el --- 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))