Mercurial > emacs
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))