&& !NILP (from[LFACE_INHERIT_INDEX]))
merge_face_ref (f, from[LFACE_INHERIT_INDEX], to, 0, named_merge_points);
+#ifdef HAVE_WINDOW_SYSTEM
i = LFACE_FONT_INDEX;
if (!UNSPECIFIEDP (from[i]))
{
to[i] = Fcopy_font_spec (from[i]);
ASET (to[i], FONT_SIZE_INDEX, Qnil);
}
+#endif
for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
if (!UNSPECIFIEDP (from[i]))
if (i == LFACE_HEIGHT_INDEX && !INTEGERP (from[i]))
{
to[i] = merge_face_heights (from[i], to[i], to[i]);
+#ifdef HAVE_WINDOW_SYSTEM
font_clear_prop (to, FONT_SIZE_INDEX);
+#endif
}
+#ifdef HAVE_WINDOW_SYSTEM
else if (i != LFACE_FONT_INDEX)
{
to[i] = from[i];
: i == LFACE_WEIGHT_INDEX ? FONT_WEIGHT_INDEX
: FONT_SLANT_INDEX));
}
+#endif
}
/* If `font' attribute is specified, reflect the font properties in
if (STRINGP (value))
{
to[LFACE_FAMILY_INDEX] = value;
+#ifdef HAVE_WINDOW_SYSTEM
font_clear_prop (to, FONT_FAMILY_INDEX);
+#endif
}
else
err = 1;
if (! NILP (new_height))
{
to[LFACE_HEIGHT_INDEX] = new_height;
+#ifdef HAVE_WINDOW_SYSTEM
font_clear_prop (to, FONT_SIZE_INDEX);
+#endif
}
else
err = 1;
if (SYMBOLP (value) && FONT_WEIGHT_NAME_NUMERIC (value) >= 0)
{
to[LFACE_WEIGHT_INDEX] = value;
+#ifdef HAVE_WINDOW_SYSTEM
font_clear_prop (to, FONT_WEIGHT_INDEX);
+#endif
}
else
err = 1;
if (SYMBOLP (value) && FONT_SLANT_NAME_NUMERIC (value) >= 0)
{
to[LFACE_SLANT_INDEX] = value;
+#ifdef HAVE_WINDOW_SYSTEM
font_clear_prop (to, FONT_SLANT_INDEX);
+#endif
}
else
err = 1;
if (SYMBOLP (value) && FONT_WIDTH_NAME_NUMERIC (value) >= 0)
{
to[LFACE_SWIDTH_INDEX] = value;
+#ifdef HAVE_WINDOW_SYSTEM
font_clear_prop (to, FONT_WIDTH_INDEX);
+#endif
}
else
err = 1;
{
Lisp_Object lface;
Lisp_Object old_value = Qnil;
+#ifdef HAVE_WINDOW_SYSTEM
/* Set one of enum font_property_index (> 0) if ATTR is one of
font-related attributes other than QCfont and QCfontset. */
enum font_property_index prop_index = 0;
+#endif
CHECK_SYMBOL (face);
CHECK_SYMBOL (attr);
}
old_value = LFACE_FAMILY (lface);
LFACE_FAMILY (lface) = value;
+#ifdef HAVE_WINDOW_SYSTEM
prop_index = FONT_FAMILY_INDEX;
+#endif
}
else if (EQ (attr, QCheight))
{
old_value = LFACE_HEIGHT (lface);
LFACE_HEIGHT (lface) = value;
+#ifdef HAVE_WINDOW_SYSTEM
prop_index = FONT_SIZE_INDEX;
+#endif
}
else if (EQ (attr, QCweight))
{
}
old_value = LFACE_WEIGHT (lface);
LFACE_WEIGHT (lface) = value;
+#ifdef HAVE_WINDOW_SYSTEM
prop_index = FONT_WEIGHT_INDEX;
+#endif
}
else if (EQ (attr, QCslant))
{
}
old_value = LFACE_SLANT (lface);
LFACE_SLANT (lface) = value;
+#ifdef HAVE_WINDOW_SYSTEM
prop_index = FONT_SLANT_INDEX;
+#endif
}
else if (EQ (attr, QCunderline))
{
}
old_value = LFACE_SWIDTH (lface);
LFACE_SWIDTH (lface) = value;
+#ifdef HAVE_WINDOW_SYSTEM
prop_index = FONT_WIDTH_INDEX;
+#endif
}
else if (EQ (attr, QCfont))
{
{
old_value = LFACE_WEIGHT (lface);
LFACE_WEIGHT (lface) = NILP (value) ? Qnormal : Qbold;
+#ifdef HAVE_WINDOW_SYSTEM
prop_index = FONT_WEIGHT_INDEX;
+#endif
}
else if (EQ (attr, QCitalic))
{
attr = QCslant;
old_value = LFACE_SLANT (lface);
LFACE_SLANT (lface) = NILP (value) ? Qnormal : Qitalic;
+#ifdef HAVE_WINDOW_SYSTEM
prop_index = FONT_SLANT_INDEX;
+#endif
}
else
signal_error ("Invalid face attribute name", attr);
+#ifdef HAVE_WINDOW_SYSTEM
if (prop_index)
/* If a font-related attribute other than QCfont and QCfontset is
specified, and if the original QCfont attribute has a font
the font to nil so that the font selector doesn't think that
the attribute is mandatory. */
font_clear_prop (XVECTOR (lface)->contents, prop_index);
+#endif
/* Changing a named face means that all realized faces depending on
that face are invalid. Since we cannot tell which realized faces
face_id = FACE_FOR_CHAR (f, face, XINT (character), -1, Qnil);
face = FACE_FROM_ID (f, face_id);
}
-#endif
return (face->font
? face->font->props[FONT_NAME_INDEX]
: Qnil);
+#else /* !HAVE_WINDOW_SYSTEM */
+ return build_string (FRAME_MSDOS_P (f)
+ ? "ms-dos"
+ : FRAME_W32_P (f) ? "w32term"
+ :"tty");
+#endif
}
}