***********************************************************************/
static enum prop_handled
-handle_face_prop_general (struct it *it,
+handle_face_prop_general (struct it *it, int *face_id_ptr,
enum lface_attribute_index attr_filter)
{
- int new_face_id, *face_id_ptr;
+ int new_face_id;
ptrdiff_t next_stop;
- if (attr_filter == LFACE_EXTEND_INDEX)
- face_id_ptr = &(it->extend_face_id);
- else
- face_id_ptr = &(it->face_id);
-
if (!STRINGP (it->string))
{
new_face_id
static enum prop_handled
handle_face_prop (struct it *it)
{
- return handle_face_prop_general (it, 0);
+ return handle_face_prop_general (it, &(it->face_id), 0);
}
|| WINDOW_RIGHT_MARGIN_WIDTH (it->w) > 0))
return;
- handle_face_prop_general (it, LFACE_EXTEND_INDEX);
+ handle_face_prop_general (it, &(it->extend_face_id), LFACE_EXTEND_INDEX);
/* Face extension extends the background and box of IT->extend_face_id
to the end of the line. If the background equals the background
}
/* Begin with attributes from the default face. */
- memcpy (attrs, default_face->lface, sizeof attrs);
+ memcpy (attrs, default_face->lface, sizeof(attrs));
/* Merge in attributes specified via text properties. */
if (!NILP (prop))
- merge_face_ref (w, f, prop, attrs, true, NULL, 0);
+ merge_face_ref (w, f, prop, attrs, true, NULL, attr_filter);
/* Now merge the overlay data. */
noverlays = sort_overlays (overlay_vec, noverlays, w);