changeset 102041:942083429e2c

(push_it, pop_it): Save and restore line_wrap. (handle_line_prefix): Suppress wrapping of wrap prefixes.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 14 Feb 2009 17:28:08 +0000
parents 88d728c6edaa
children f0864f8938a3
files src/xdisp.c
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Sat Feb 14 17:27:16 2009 +0000
+++ b/src/xdisp.c	Sat Feb 14 17:28:08 2009 +0000
@@ -5136,6 +5136,7 @@
   p->voffset = it->voffset;
   p->string_from_display_prop_p = it->string_from_display_prop_p;
   p->display_ellipsis_p = 0;
+  p->line_wrap = it->line_wrap;
   ++it->sp;
 }
 
@@ -5191,6 +5192,7 @@
   it->font_height = p->font_height;
   it->voffset = p->voffset;
   it->string_from_display_prop_p = p->string_from_display_prop_p;
+  it->line_wrap = p->line_wrap;
 }
 
 
@@ -16506,7 +16508,13 @@
 	prefix = Vline_prefix;
     }
   if (! NILP (prefix))
-    push_display_prop (it, prefix);
+    {
+      push_display_prop (it, prefix);
+      /* If the prefix is wider than the window, and we try to wrap
+	 it, it would acquire its own wrap prefix, and so on till the
+	 iterator stack overflows.  So, don't wrap the prefix.  */
+      it->line_wrap = TRUNCATE;
+    }
 }