# HG changeset patch # User Chong Yidong # Date 1215292565 0 # Node ID 7ac98f33f18c8a0df009dc56a4f9ceb3f60d6429 # Parent 7619ac110c630cafe656cfcbedfd71defb5fe922 (Finternal_merge_in_global_face): Don't realize default face if it didn't already exist. diff -r 7619ac110c63 -r 7ac98f33f18c src/xfaces.c --- a/src/xfaces.c Sat Jul 05 21:15:39 2008 +0000 +++ b/src/xfaces.c Sat Jul 05 21:16:05 2008 +0000 @@ -3971,22 +3971,26 @@ struct face *newface, *oldface = FACE_FROM_ID (f, DEFAULT_FACE_ID); Lisp_Object attrs[LFACE_VECTOR_SIZE]; - bcopy (oldface->lface, attrs, sizeof attrs); - merge_face_vectors (f, lvec, attrs, 0); - newface = realize_face (c, attrs, DEFAULT_FACE_ID); - - if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX]) - || ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX]) - || ! UNSPECIFIEDP (gvec[LFACE_HEIGHT_INDEX]) - || ! UNSPECIFIEDP (gvec[LFACE_WEIGHT_INDEX]) - || ! UNSPECIFIEDP (gvec[LFACE_SLANT_INDEX]) - || ! UNSPECIFIEDP (gvec[LFACE_SWIDTH_INDEX]) - || ! UNSPECIFIEDP (gvec[LFACE_FONT_INDEX])) - && newface->font) + /* This can be NULL (e.g., in batch mode). */ + if (oldface) { - Lisp_Object name = newface->font->props[FONT_NAME_INDEX]; - Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name), - Qnil)); + bcopy (oldface->lface, attrs, sizeof attrs); + merge_face_vectors (f, lvec, attrs, 0); + newface = realize_face (c, attrs, DEFAULT_FACE_ID); + + if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX]) + || ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX]) + || ! UNSPECIFIEDP (gvec[LFACE_HEIGHT_INDEX]) + || ! UNSPECIFIEDP (gvec[LFACE_WEIGHT_INDEX]) + || ! UNSPECIFIEDP (gvec[LFACE_SLANT_INDEX]) + || ! UNSPECIFIEDP (gvec[LFACE_SWIDTH_INDEX]) + || ! UNSPECIFIEDP (gvec[LFACE_FONT_INDEX])) + && newface->font) + { + Lisp_Object name = newface->font->props[FONT_NAME_INDEX]; + Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name), + Qnil)); + } } }