* xdisp.c (push_display_prop): Don't set avoid_cursor_p. Return 0
if push failed. (handle_line_prefix): Set avoid_cursor_p here. Check return value of push_display_prop (Bug#5000).
This commit is contained in:
parent
9a594ee6ea
commit
426ac9499e
2 changed files with 14 additions and 9 deletions
|
@ -1,5 +1,10 @@
|
|||
2009-12-05 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* xdisp.c (push_display_prop): Don't set avoid_cursor_p. Return 0
|
||||
if push failed.
|
||||
(handle_line_prefix): Set avoid_cursor_p here. Check return value
|
||||
of push_display_prop (Bug#5000).
|
||||
|
||||
* xfaces.c (Fx_family_fonts): Handle 2009-07-14 change to return
|
||||
value of font_list_entities (Bug#5085).
|
||||
|
||||
|
|
18
src/xdisp.c
18
src/xdisp.c
|
@ -16384,22 +16384,20 @@ cursor_row_p (w, row)
|
|||
|
||||
|
||||
/* Push the display property PROP so that it will be rendered at the
|
||||
current position in IT. */
|
||||
current position in IT. Return 1 if PROP was successfully pushed,
|
||||
0 otherwise. */
|
||||
|
||||
static void
|
||||
static int
|
||||
push_display_prop (struct it *it, Lisp_Object prop)
|
||||
{
|
||||
push_it (it);
|
||||
|
||||
/* Never display a cursor on the prefix. */
|
||||
it->avoid_cursor_p = 1;
|
||||
|
||||
if (STRINGP (prop))
|
||||
{
|
||||
if (SCHARS (prop) == 0)
|
||||
{
|
||||
pop_it (it);
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
it->string = prop;
|
||||
|
@ -16426,8 +16424,10 @@ push_display_prop (struct it *it, Lisp_Object prop)
|
|||
else
|
||||
{
|
||||
pop_it (it); /* bogus display property, give up */
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Return the character-property PROP at the current position in IT. */
|
||||
|
@ -16467,13 +16467,13 @@ handle_line_prefix (struct it *it)
|
|||
if (NILP (prefix))
|
||||
prefix = Vline_prefix;
|
||||
}
|
||||
if (! NILP (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;
|
||||
it->avoid_cursor_p = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue