diff options
| author | Richard M. Stallman | 1993-11-20 09:42:16 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1993-11-20 09:42:16 +0000 |
| commit | dfabd9a094f13278b9bc491159912dbefcb452a3 (patch) | |
| tree | 0cda5873eb916a21d962e11e276b07147382202f /src | |
| parent | 4901eb1b09e42354e243fa6572068f63f3d65b52 (diff) | |
| download | emacs-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.c | 46 |
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; |