diff options
author | Richard M. Stallman <[email protected]> | 1995-03-16 18:47:47 +0000 |
---|---|---|
committer | Richard M. Stallman <[email protected]> | 1995-03-16 18:47:47 +0000 |
commit | 937054f3bd6dd1af3fb14a5552c92d99d5d6949e (patch) | |
tree | 5823649951305fc3121281f4ddcb80992f926666 /lisp/simple.el | |
parent | c0d7987107ab2fa9183aadf36d38e3be2542873a (diff) |
(line-move): Handle conses in buffer-invisibility-spec.
Handle skipping invisible overlays.
Diffstat (limited to 'lisp/simple.el')
-rw-r--r-- | lisp/simple.el | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lisp/simple.el b/lisp/simple.el index b8442fd9b6..418cba339b 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -1611,8 +1611,11 @@ Outline mode sets this.") (get-char-property (point) 'invisible))) (if (eq buffer-invisibility-spec t) prop - (memq prop buffer-invisibility-spec)))) - (goto-char (next-single-property-change (point) 'invisible))) + (or (memq prop buffer-invisibility-spec) + (assq prop buffer-invisibility-spec))))) + (if (get-text-property (point) 'invisible) + (goto-char (next-single-property-change (point) 'invisible)) + (goto-char (next-overlay-change (point))))) (setq arg (1- arg))) (while (< arg 0) (beginning-of-line) @@ -1620,11 +1623,14 @@ Outline mode sets this.") (signal 'beginning-of-buffer nil)) (while (and (not (bobp)) (let ((prop - (get-char-property (point) 'invisible))) + (get-char-property (1- (point)) 'invisible))) (if (eq buffer-invisibility-spec t) prop - (memq prop buffer-invisibility-spec)))) - (goto-char (previous-single-property-change (point) 'invisible))) + (or (memq prop buffer-invisibility-spec) + (assq prop buffer-invisibility-spec))))) + (if (get-text-property (1- (point)) 'invisible) + (goto-char (previous-single-property-change (point) 'invisible)) + (goto-char (previous-overlay-change (point))))) (setq arg (1+ arg)))) (move-to-column (or goal-column temporary-goal-column)) nil) |