Fix bug #14575 with window-specific overlays with line-prefix or wrap-prefix.
authorEli Zaretskii <eliz@gnu.org>
Sun, 9 Jun 2013 16:37:22 +0000 (19:37 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 9 Jun 2013 16:37:22 +0000 (19:37 +0300)
 src/xdisp.c (get_it_property): If it->object is a buffer, pass to
 get-char-property the window that is being rendered, instead of
 the buffer, to support window-specific overlays.

src/ChangeLog
src/xdisp.c

index cf5a8c0..06b738e 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-09  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (get_it_property): If it->object is a buffer, pass to
+       get-char-property the window that is being rendered, instead of
+       the buffer, to support window-specific overlays.  (Bug#14575)
+
 2013-06-08  Eli Zaretskii  <eliz@gnu.org>
 
        * bidi.c (bidi_fetch_char): Accept additional argument, the window
index 5ec7240..2097929 100644 (file)
@@ -18971,16 +18971,19 @@ push_prefix_prop (struct it *it, Lisp_Object prop)
 static Lisp_Object
 get_it_property (struct it *it, Lisp_Object prop)
 {
-  Lisp_Object position;
+  Lisp_Object position, object = it->object;
 
-  if (STRINGP (it->object))
+  if (STRINGP (object))
     position = make_number (IT_STRING_CHARPOS (*it));
-  else if (BUFFERP (it->object))
-    position = make_number (IT_CHARPOS (*it));
+  else if (BUFFERP (object))
+    {
+      position = make_number (IT_CHARPOS (*it));
+      XSETWINDOW (object, it->w);
+    }
   else
     return Qnil;
 
-  return Fget_char_property (position, prop, it->object);
+  return Fget_char_property (position, prop, object);
 }
 
 /* See if there's a line- or wrap-prefix, and if so, push it on IT.  */