]> git.eshelyaron.com Git - emacs.git/commitdiff
(forward_to_next_line_start): Switch iterator's handling
authorGerd Moellmann <gerd@gnu.org>
Tue, 17 Oct 2000 14:08:06 +0000 (14:08 +0000)
committerGerd Moellmann <gerd@gnu.org>
Tue, 17 Oct 2000 14:08:06 +0000 (14:08 +0000)
of selective display off while searching for the next line start.

src/ChangeLog
src/xdisp.c

index 2a3f16d986dabe7a0090b02ae038bc2bcaac9ccc..a4a943fe747eee4621bdd8f3f16caf863ea2d6ae 100644 (file)
@@ -1,3 +1,8 @@
+2000-10-17  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (forward_to_next_line_start): Switch iterator's handling
+       of selective display off while searching for the next line start.
+
 2000-10-17  Kenichi Handa  <handa@etl.go.jp>
 
        * Makefile.in (term.o): Depend on dispextern.h.
index 9b6d380644484f6a620956df48c507457403b6fa..e9723f5272c76a1bbb61f2cbd8a0eb8338fec0c4 100644 (file)
@@ -3267,9 +3267,15 @@ forward_to_next_line_start (it, skipped_p)
      struct it *it;
      int *skipped_p;
 {
-  int newline_found_p, n;
+  int old_selective, newline_found_p, n;
   const int MAX_NEWLINE_DISTANCE = 500;
 
+  /* Don't handle selective display in the following.  It's (a)
+     unnecessary and (b) leads to an infinite recursion because
+     next_element_from_ellipsis indirectly calls this function.  */
+  old_selective = it->selective;
+  it->selective = 0;
+
   /* Scan for a newline within MAX_NEWLINE_DISTANCE display elements
      from buffer text.  */
   n = newline_found_p = 0;
@@ -3318,6 +3324,7 @@ forward_to_next_line_start (it, skipped_p)
        }
     }
 
+  it->selective = old_selective;
   return newline_found_p;
 }
 
@@ -4147,7 +4154,10 @@ next_element_from_ellipsis (it)
        }
     }
   else
-    reseat_at_next_visible_line_start (it, 1);
+    {
+      it->method = next_element_from_buffer;
+      reseat_at_next_visible_line_start (it, 1);
+    }
   
   return get_next_display_element (it);
 }