# HG changeset patch # User Kim F. Storm # Date 1101165949 0 # Node ID b1e7465ce5fc0fd6a209e8fb438b5d178be4f53b # Parent ae63c87be5eb112e478238cae675c1b883d93695 (lookup_named_face): Add signal_p arg. Return -1 if signal_p is zero and face name is unknown. (Fx_list_fonts): Don't signal error in lookup_named_face. (Fface_font): Signal error in lookup_named_face. (ascii_face_of_lisp_face): Likewise. diff -r ae63c87be5eb -r b1e7465ce5fc src/xfaces.c --- a/src/xfaces.c Mon Nov 22 23:25:11 2004 +0000 +++ b/src/xfaces.c Mon Nov 22 23:25:49 2004 +0000 @@ -3009,7 +3009,7 @@ { /* This is of limited utility since it works with character widths. Keep it for compatibility. --gerd. */ - int face_id = lookup_named_face (f, face, 0); + int face_id = lookup_named_face (f, face, 0, 0); struct face *face = (face_id < 0 ? NULL : FACE_FROM_ID (f, face_id)); @@ -4923,7 +4923,7 @@ else { struct frame *f = frame_or_selected_frame (frame, 1); - int face_id = lookup_named_face (f, face, 0); + int face_id = lookup_named_face (f, face, 0, 1); struct face *face = FACE_FROM_ID (f, face_id); return face ? build_string (face->font_name) : Qnil; } @@ -5615,10 +5615,11 @@ isn't realized and cannot be realized. */ int -lookup_named_face (f, symbol, c) +lookup_named_face (f, symbol, c, signal_p) struct frame *f; Lisp_Object symbol; int c; + int signal_p; { Lisp_Object attrs[LFACE_VECTOR_SIZE]; Lisp_Object symbol_attrs[LFACE_VECTOR_SIZE]; @@ -5631,7 +5632,9 @@ default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID); } - get_lface_attributes (f, symbol, symbol_attrs, 1); + if (!get_lface_attributes (f, symbol, symbol_attrs, signal_p)) + return -1; + bcopy (default_face->lface, attrs, sizeof attrs); merge_face_vectors (f, symbol_attrs, attrs, 0); @@ -5652,7 +5655,7 @@ if (lface_id >= 0 && lface_id < lface_id_to_name_size) { Lisp_Object face_name = lface_id_to_name[lface_id]; - face_id = lookup_named_face (f, face_name, 0); + face_id = lookup_named_face (f, face_name, 0, 1); } else face_id = -1;