8878 |
|
|
8879 |
if (FRAME_WINDOW_P (f) || f == sf) |
if (FRAME_WINDOW_P (f) || f == sf) |
8880 |
{ |
{ |
8881 |
|
#ifdef HAVE_WINDOW_SYSTEM |
8882 |
if (clear_face_cache_count % 50 == 0 |
if (clear_face_cache_count % 50 == 0 |
8883 |
&& FRAME_WINDOW_P (f)) |
&& FRAME_WINDOW_P (f)) |
8884 |
clear_image_cache (f, 0); |
clear_image_cache (f, 0); |
8885 |
|
#endif /* HAVE_WINDOW_SYSTEM */ |
8886 |
|
|
8887 |
/* Mark all the scroll bars to be removed; we'll redeem |
/* Mark all the scroll bars to be removed; we'll redeem |
8888 |
the ones we want when we redisplay their windows. */ |
the ones we want when we redisplay their windows. */ |
13600 |
{ |
{ |
13601 |
/* A string: output it and check for %-constructs within it. */ |
/* A string: output it and check for %-constructs within it. */ |
13602 |
unsigned char c; |
unsigned char c; |
13603 |
unsigned char *this = XSTRING (elt)->data; |
unsigned char *this, *lisp_string; |
|
unsigned char *lisp_string = this; |
|
13604 |
|
|
13605 |
if (!NILP (props)) |
if (!NILP (props)) |
13606 |
{ |
{ |
13608 |
oprops = Ftext_properties_at (make_number (0), elt); |
oprops = Ftext_properties_at (make_number (0), elt); |
13609 |
if (NILP (Fequal (props, oprops))) |
if (NILP (Fequal (props, oprops))) |
13610 |
{ |
{ |
13611 |
|
/* If the starting string has properties, |
13612 |
|
merge the specified ones onto the existing ones. */ |
13613 |
|
if (! NILP (oprops)) |
13614 |
|
{ |
13615 |
|
Lisp_Object tem; |
13616 |
|
|
13617 |
|
oprops = Fcopy_sequence (oprops); |
13618 |
|
tem = props; |
13619 |
|
while (CONSP (tem)) |
13620 |
|
{ |
13621 |
|
oprops = Fplist_put (oprops, XCAR (tem), |
13622 |
|
XCAR (XCDR (tem))); |
13623 |
|
tem = XCDR (XCDR (tem)); |
13624 |
|
} |
13625 |
|
props = oprops; |
13626 |
|
} |
13627 |
|
|
13628 |
aelt = Fassoc (elt, mode_line_proptrans_alist); |
aelt = Fassoc (elt, mode_line_proptrans_alist); |
13629 |
if (! NILP (aelt) && !NILP (Fequal (props, XCDR (aelt)))) |
if (! NILP (aelt) && !NILP (Fequal (props, XCDR (aelt)))) |
13630 |
elt = XCAR (aelt); |
elt = XCAR (aelt); |
13639 |
} |
} |
13640 |
} |
} |
13641 |
|
|
13642 |
|
this = XSTRING (elt)->data; |
13643 |
|
lisp_string = this; |
13644 |
|
|
13645 |
if (literal) |
if (literal) |
13646 |
{ |
{ |
13647 |
prec = precision - n; |
prec = precision - n; |
13710 |
else if (c != 0) |
else if (c != 0) |
13711 |
{ |
{ |
13712 |
int multibyte; |
int multibyte; |
13713 |
unsigned char *spec |
int bytepos, charpos; |
13714 |
|
unsigned char *spec; |
13715 |
|
|
13716 |
|
bytepos = percent_position - lisp_string; |
13717 |
|
charpos = (STRING_MULTIBYTE (elt) |
13718 |
|
? string_byte_to_char (elt, bytepos) |
13719 |
|
: bytepos); |
13720 |
|
|
13721 |
|
spec |
13722 |
= decode_mode_spec (it->w, c, field, prec, &multibyte); |
= decode_mode_spec (it->w, c, field, prec, &multibyte); |
13723 |
|
|
13724 |
if (frame_title_ptr) |
if (frame_title_ptr) |
13725 |
n += store_frame_title (spec, field, prec); |
n += store_frame_title (spec, field, prec); |
13726 |
else |
else |
13727 |
{ |
{ |
13728 |
int nglyphs_before, bytepos, charpos, nwritten; |
int nglyphs_before, nwritten; |
13729 |
|
|
13730 |
nglyphs_before = it->glyph_row->used[TEXT_AREA]; |
nglyphs_before = it->glyph_row->used[TEXT_AREA]; |
|
bytepos = percent_position - XSTRING (elt)->data; |
|
|
charpos = (STRING_MULTIBYTE (elt) |
|
|
? string_byte_to_char (elt, bytepos) |
|
|
: bytepos); |
|
13731 |
nwritten = display_string (spec, Qnil, elt, |
nwritten = display_string (spec, Qnil, elt, |
13732 |
charpos, 0, it, |
charpos, 0, it, |
13733 |
field, prec, 0, |
field, prec, 0, |