386 |
(goto-char (point-min)) |
(goto-char (point-min)) |
387 |
;; Find a header and the column at which the command |
;; Find a header and the column at which the command |
388 |
;; name will be found. |
;; name will be found. |
389 |
|
|
390 |
|
;; If the keymap substitution isn't the last thing in |
391 |
|
;; the doc string, and if there is anything on the |
392 |
|
;; same line after it, this code won't recognize the end of it. |
393 |
(while (re-search-forward "^key +binding\n\\(-+ +\\)-+\n\n" |
(while (re-search-forward "^key +binding\n\\(-+ +\\)-+\n\n" |
394 |
nil t) |
nil t) |
395 |
(let ((col (- (match-end 1) (match-beginning 1)))) |
(let ((col (- (match-end 1) (match-beginning 1)))) |
396 |
(while |
(while |
397 |
;; Ignore single blank lines in table, but not |
(and (not (eobp)) |
398 |
;; double ones, which should terminate it. |
;; Stop at a pair of blank lines. |
399 |
(and (not (looking-at "\n\\s-*\n")) |
(not (looking-at "\n\\s-*\n"))) |
400 |
(progn |
;; Skip a single blank line. |
401 |
(and (eolp) (forward-line)) |
(and (eolp) (forward-line)) |
402 |
(end-of-line) |
(end-of-line) |
403 |
(skip-chars-backward "^\t\n") |
(skip-chars-backward "^\t\n") |
404 |
(if (and (>= (current-column) col) |
(if (and (>= (current-column) col) |
405 |
(looking-at "\\(\\sw\\|-\\)+$")) |
(looking-at "\\(\\sw\\|-\\)+$")) |
406 |
(let ((sym (intern-soft (match-string 0)))) |
(let ((sym (intern-soft (match-string 0)))) |
407 |
(if (fboundp sym) |
(if (fboundp sym) |
408 |
(help-xref-button 0 'help-function sym)))) |
(help-xref-button 0 'help-function sym)))) |
409 |
(zerop (forward-line))))))))) |
(forward-line))))))) |
410 |
(set-syntax-table stab)) |
(set-syntax-table stab)) |
411 |
;; Delete extraneous newlines at the end of the docstring |
;; Delete extraneous newlines at the end of the docstring |
412 |
(goto-char (point-max)) |
(goto-char (point-max)) |