aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/simple.el
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1995-03-16 18:47:47 +0000
committerRichard M. Stallman <[email protected]>1995-03-16 18:47:47 +0000
commit937054f3bd6dd1af3fb14a5552c92d99d5d6949e (patch)
tree5823649951305fc3121281f4ddcb80992f926666 /lisp/simple.el
parentc0d7987107ab2fa9183aadf36d38e3be2542873a (diff)
(line-move): Handle conses in buffer-invisibility-spec.
Handle skipping invisible overlays.
Diffstat (limited to 'lisp/simple.el')
-rw-r--r--lisp/simple.el16
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)