aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1993-11-20 09:42:16 +0000
committerRichard M. Stallman1993-11-20 09:42:16 +0000
commitdfabd9a094f13278b9bc491159912dbefcb452a3 (patch)
tree0cda5873eb916a21d962e11e276b07147382202f /src
parent4901eb1b09e42354e243fa6572068f63f3d65b52 (diff)
downloademacs-dfabd9a094f13278b9bc491159912dbefcb452a3.tar.gz
emacs-dfabd9a094f13278b9bc491159912dbefcb452a3.zip
(display_text_line): Pass new arg to compute_char_face
and to Fnext_single_property_change.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c46
1 files changed, 24 insertions, 22 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 7f73516266b..62542515496 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1730,7 +1730,6 @@ display_text_line (w, start, vpos, hpos, taboffset)
1730#ifdef USE_TEXT_PROPERTIES 1730#ifdef USE_TEXT_PROPERTIES
1731 /* The next location where the `invisible' property changes */ 1731 /* The next location where the `invisible' property changes */
1732 int next_invisible; 1732 int next_invisible;
1733 Lisp_Object prop, position, endpos;
1734#endif 1733#endif
1735 1734
1736 /* The face we're currently using. */ 1735 /* The face we're currently using. */
@@ -1815,28 +1814,31 @@ display_text_line (w, start, vpos, hpos, taboffset)
1815 /* if the `invisible' property is set to t, we can skip to 1814 /* if the `invisible' property is set to t, we can skip to
1816 the next property change */ 1815 the next property change */
1817 while (pos == next_invisible && pos < end) 1816 while (pos == next_invisible && pos < end)
1818 {
1819 XFASTINT (position) = pos;
1820 prop = Fget_text_property (position,
1821 Qinvisible,
1822 Fcurrent_buffer ());
1823 endpos = Fnext_single_property_change (position,
1824 Qinvisible,
1825 Fcurrent_buffer ());
1826 if (INTEGERP (endpos))
1827 next_invisible = XINT (endpos);
1828 else
1829 next_invisible = end;
1830 if (! NILP (prop))
1831 { 1817 {
1832 if (pos < point && next_invisible >= point) 1818 Lisp_Object position, limit, endpos, prop;
1833 { 1819 XFASTINT (position) = pos;
1834 cursor_vpos = vpos; 1820 prop = Fget_text_property (position, Qinvisible,
1835 cursor_hpos = p1 - startp; 1821 Fcurrent_buffer ());
1836 } 1822 /* This is just an estimate to give reasonable
1837 pos = next_invisible; 1823 performance; nothing should go wrong if it is too small. */
1824 XFASTINT (limit) = pos + 50;
1825 endpos
1826 = Fnext_single_property_change (position, Qinvisible,
1827 Fcurrent_buffer (), limit);
1828 if (INTEGERP (endpos))
1829 next_invisible = XINT (endpos);
1830 else
1831 next_invisible = end;
1832 if (! NILP (prop))
1833 {
1834 if (pos < point && next_invisible >= point)
1835 {
1836 cursor_vpos = vpos;
1837 cursor_hpos = p1 - startp;
1838 }
1839 pos = next_invisible;
1840 }
1838 } 1841 }
1839 }
1840 if (pos >= end) 1842 if (pos >= end)
1841 break; 1843 break;
1842#endif 1844#endif
@@ -1848,7 +1850,7 @@ display_text_line (w, start, vpos, hpos, taboffset)
1848 if (pos >= next_face_change && FRAME_X_P (f)) 1850 if (pos >= next_face_change && FRAME_X_P (f))
1849 current_face = compute_char_face (f, w, pos, 1851 current_face = compute_char_face (f, w, pos,
1850 region_beg, region_end, 1852 region_beg, region_end,
1851 &next_face_change); 1853 &next_face_change, pos + 50);
1852#endif 1854#endif
1853 1855
1854 pause = end; 1856 pause = end;