chunk of text that is automatically composed. If such a chunk is
found closer to POS than the position that has `composition'
property, the value is a list of FROM, TO, and a glyph-string
-that specifies how the chunk is to be composed. See the function
-`composition-get-gstring' for the format of the glyph-string."
+that specifies how the chunk is to be composed; DETAIL-P is
+inored this case. See the function `composition-get-gstring'
+for the format of the glyph-string."
(let ((result (find-composition-internal pos limit string detail-p)))
(if (and detail-p (> (length result) 3) (nth 2 result) (not (nth 3 result)))
;; This is a valid rule-base composition.
int c;
Lisp_Object font_object = Qnil;
- if (NILP (string))
+ if (!face)
{
- if (! face)
+ struct frame *f = XFRAME (w->frame);
+ int face_id;
+
+ if (NILP (string))
+ face_id = face_at_buffer_position (w, pos, &ignore, *limit,
+ false, -1);
+ else
{
- int face_id;
+ face_id =
+ NILP (Vface_remapping_alist)
+ ? DEFAULT_FACE_ID
+ : lookup_basic_face (f, DEFAULT_FACE_ID);
- face_id = face_at_buffer_position (w, pos, &ignore,
- *limit, false, -1);
- face = FACE_FROM_ID (XFRAME (w->frame), face_id);
+ face_id = face_at_string_position (w, string, pos, 0, &ignore,
+ face_id, false);
}
+ face = FACE_FROM_ID (f, face_id);
}
- else
- eassert (face);
while (pos < *limit)
{