aboutsummaryrefslogtreecommitdiffstats
path: root/src/dispextern.h
diff options
context:
space:
mode:
authorEli Zaretskii2011-07-02 13:05:14 +0300
committerEli Zaretskii2011-07-02 13:05:14 +0300
commita2eaa31ddf8dabc71436dcb120ad7970a40045a4 (patch)
treedf11fc0eb04a1bf29f045efb190956a142b4269a /src/dispextern.h
parentf3014ef5b24ac42ec714b48148b7b604b47f7468 (diff)
downloademacs-a2eaa31ddf8dabc71436dcb120ad7970a40045a4.tar.gz
emacs-a2eaa31ddf8dabc71436dcb120ad7970a40045a4.zip
Fix the use case of popping from display property.
src/dispextern.h (struct iterator_stack_entry, struct it): New member from_disp_prop_p. src/xdisp.c (push_it, pop_it): Save and restore from_disp_prop_p. (handle_single_display_spec, push_display_prop): Set the from_disp_prop_p flag. (get_overlay_strings_1): Reset the from_disp_prop_p flag. (pop_it): Call iterate_out_of_display_property only if we are popping after iteration over a string that came from a display property. Fix a typo in popping stretch info. Add an assertion for verifying that the iterator position is in sync with the bidi iterator. (handle_single_display_spec, get_overlay_strings_1) (push_display_prop): Fix initialization of paragraph direction for string when that of the parent object is not yet determined.
Diffstat (limited to 'src/dispextern.h')
-rw-r--r--src/dispextern.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dispextern.h b/src/dispextern.h
index 9586edab63b..997ef6df088 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -2139,6 +2139,10 @@ struct it
2139 Don't handle some `display' properties in these strings. */ 2139 Don't handle some `display' properties in these strings. */
2140 unsigned string_from_display_prop_p : 1; 2140 unsigned string_from_display_prop_p : 1;
2141 2141
2142 /* 1 means we are iterating an object that came from a value of a
2143 `display' property. */
2144 unsigned from_disp_prop_p : 1;
2145
2142 /* When METHOD == next_element_from_display_vector, 2146 /* When METHOD == next_element_from_display_vector,
2143 this is 1 if we're doing an ellipsis. Otherwise meaningless. */ 2147 this is 1 if we're doing an ellipsis. Otherwise meaningless. */
2144 unsigned ellipsis_p : 1; 2148 unsigned ellipsis_p : 1;
@@ -2258,6 +2262,7 @@ struct it
2258 unsigned display_ellipsis_p : 1; 2262 unsigned display_ellipsis_p : 1;
2259 unsigned avoid_cursor_p : 1; 2263 unsigned avoid_cursor_p : 1;
2260 unsigned bidi_p:1; 2264 unsigned bidi_p:1;
2265 unsigned from_disp_prop_p : 1;
2261 enum line_wrap_method line_wrap; 2266 enum line_wrap_method line_wrap;
2262 2267
2263 /* properties from display property that are reset by another display property. */ 2268 /* properties from display property that are reset by another display property. */