changeset 11036:769706e1babb

(line-move): Handle conses in buffer-invisibility-spec. Handle skipping invisible overlays.
author Richard M. Stallman <rms@gnu.org>
date Thu, 16 Mar 1995 18:47:47 +0000
parents 97da4cb32d03
children 802a774b44b7
files lisp/simple.el
diffstat 1 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Thu Mar 16 04:37:48 1995 +0000
+++ b/lisp/simple.el	Thu Mar 16 18:47:47 1995 +0000
@@ -1611,8 +1611,11 @@
 			 (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 @@
 	   (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)