diff options
| author | Richard M. Stallman <rms@gnu.org> | 1995-07-19 03:19:03 +0000 |
|---|---|---|
| committer | Richard M. Stallman <rms@gnu.org> | 1995-07-19 03:19:03 +0000 |
| commit | b297554a2813268c7b86d009c0c987c5f41c371b (patch) | |
| tree | 61d85215d56c9fd0c0c2c030f01bb7ec5b348f01 /lisp | |
| parent | fb893977d600f0cb7b61efffef956474f7fea05f (diff) | |
| download | emacs-b297554a2813268c7b86d009c0c987c5f41c371b.tar.gz | |
(outline-next-visible-heading): Rewritten to handle
backwards motion and handle beg/end of buffer properly.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/textmodes/outline.el | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lisp/textmodes/outline.el b/lisp/textmodes/outline.el index b169396ef20..84d95ef36e7 100644 --- a/lisp/textmodes/outline.el +++ b/lisp/textmodes/outline.el @@ -331,16 +331,18 @@ A heading line is one that starts with a `*' (or that (if (< arg 0) (beginning-of-line) (end-of-line)) - (let (found) - (or (while (and found (> arg 0)) - (setq found nil) - (while (not found) - (setq found - (and (re-search-backward (concat "^\\(" outline-regexp "\\)") - nil t) - (outline-visible)))) - (setq arg (1- arg))) - (error ""))) + (while (and (not (bobp)) (< arg 0)) + (while (and (not (bobp)) + (re-search-backward (concat "^\\(" outline-regexp "\\)") + nil 'move) + (not (outline-visible)))) + (setq arg (1+ arg))) + (while (and (not (eobp)) (> arg 0)) + (while (and (not (eobp)) + (re-search-forward (concat "^\\(" outline-regexp "\\)") + nil 'move) + (not (outline-visible)))) + (setq arg (1- arg))) (beginning-of-line)) (defun outline-previous-visible-heading (arg) |
