Lisp_Object face_name;
{
Lisp_Object aliased;
+ int alias_loop_max = 10;
if (STRINGP (face_name))
face_name = intern (SDATA (face_name));
aliased = Fget (face_name, Qface_alias);
if (NILP (aliased))
break;
- else
- face_name = aliased;
+ if (--alias_loop_max == 0)
+ break;
+ face_name = aliased;
}
return face_name;
{
#ifdef USE_MOTIF
const char *suffix = "List";
+ Bool motif = True;
#else
const char *suffix = "";
+ Bool motif = False;
#endif
-#if defined HAVE_X_I18N && defined USE_MOTIF
+#if defined HAVE_X_I18N
extern char *xic_create_fontsetname
P_ ((char *base_fontname, Bool motif));
- char *fontsetname = xic_create_fontsetname (face->font_name, True);
+ char *fontsetname = xic_create_fontsetname (face->font_name, motif);
#else
char *fontsetname = face->font_name;
#endif
myname, popup_path, suffix, fontsetname);
XrmPutLineResource (&rdb, line);
changed_p = 1;
+ if (fontsetname != face->font_name)
+ xfree (fontsetname);
}
if (changed_p && f->output_data.x->menubar_widget)
is assumed to be already realized. */
int
-lookup_derived_face (f, symbol, c, face_id)
+lookup_derived_face (f, symbol, c, face_id, signal_p)
struct frame *f;
Lisp_Object symbol;
int c;
if (!default_face)
abort ();
- get_lface_attributes (f, symbol, symbol_attrs, 1);
+ get_lface_attributes (f, symbol, symbol_attrs, signal_p);
bcopy (default_face->lface, attrs, sizeof attrs);
merge_face_vectors (f, symbol_attrs, attrs, 0);
return lookup_face (f, attrs, c, default_face);
int c;
struct face *base_face;
{
+ struct face *face = NULL;
#ifdef HAVE_WINDOW_SYSTEM
- struct face *face, *default_face;
+ struct face *default_face;
struct frame *f;
Lisp_Object stipple, overline, strike_through, box;
face->stipple = load_pixmap (f, stipple, &face->pixmap_w, &face->pixmap_h);
xassert (FACE_SUITABLE_FOR_CHAR_P (face, c));
- return face;
#endif /* HAVE_WINDOW_SYSTEM */
+ return face;
}
if (face_id < 0 || face_id >= lface_id_to_name_size)
return base_face_id;
face_name = lface_id_to_name[face_id];
- face_id = lookup_derived_face (f, face_name, 0, base_face_id);
+ face_id = lookup_derived_face (f, face_name, 0, base_face_id, 1);
if (face_id >= 0)
return face_id;
return base_face_id;