X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/a237d879b98cc655382e2dbd83c1a05208c19db8..HEAD:/src/xfaces.c diff --git a/src/xfaces.c b/src/xfaces.c index 4e599d0bd0..e32a1f56ec 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -1248,9 +1248,6 @@ load_color2 (struct frame *f, struct face *face, Lisp_Object name, record that fact in flags of the face so that we don't try to free these colors. */ -#ifndef MSDOS -static -#endif unsigned long load_color (struct frame *f, struct face *face, Lisp_Object name, enum lface_attribute_index target_index) @@ -3886,29 +3883,7 @@ return the font name used for CHARACTER. */) static bool face_attr_equal_p (Lisp_Object v1, Lisp_Object v2) { - /* Type can differ, e.g. when one attribute is unspecified, i.e. nil, - and the other is specified. */ - if (XTYPE (v1) != XTYPE (v2)) - return 0; - - if (EQ (v1, v2)) - return 1; - - switch (XTYPE (v1)) - { - case Lisp_String: - if (SBYTES (v1) != SBYTES (v2)) - return 0; - - return memcmp (SDATA (v1), SDATA (v2), SBYTES (v1)) == 0; - - case_Lisp_Int: - case Lisp_Symbol: - return 0; - - default: - return !NILP (Fequal (v1, v2)); - } + return !NILP (Fequal (v1, v2)); } @@ -4101,15 +4076,15 @@ free_realized_face (struct frame *f, struct face *face) } } +#ifdef HAVE_WINDOW_SYSTEM -/* Prepare face FACE for subsequent display on frame F. This - allocated GCs if they haven't been allocated yet or have been freed - by clearing the face cache. */ +/* Prepare face FACE for subsequent display on frame F. This must be called + before using X resources of FACE to allocate GCs if they haven't been + allocated yet or have been freed by clearing the face cache. */ void prepare_face_for_display (struct frame *f, struct face *face) { -#ifdef HAVE_WINDOW_SYSTEM eassert (FRAME_WINDOW_P (f)); if (face->gc == 0) @@ -4137,10 +4112,10 @@ prepare_face_for_display (struct frame *f, struct face *face) font_prepare_for_face (f, face); unblock_input (); } -#endif /* HAVE_WINDOW_SYSTEM */ } - +#endif /* HAVE_WINDOW_SYSTEM */ + /* Returns the `distance' between the colors X and Y. */ static int @@ -5226,7 +5201,7 @@ static bool realize_basic_faces (struct frame *f) { bool success_p = 0; - ptrdiff_t count = SPECPDL_INDEX (); + dynwind_begin (); /* Block input here so that we won't be surprised by an X expose event, for instance, without having the faces set up. */ @@ -5265,7 +5240,7 @@ realize_basic_faces (struct frame *f) success_p = 1; } - unbind_to (count, Qnil); + dynwind_end (); unblock_input (); return success_p; } @@ -5486,7 +5461,6 @@ realize_non_ascii_face (struct frame *f, Lisp_Object font_object, face = xmalloc (sizeof *face); *face = *base_face; face->gc = 0; - face->extra = NULL; face->overstrike = (! NILP (font_object) && FONT_WEIGHT_NAME_NUMERIC (face->lface[LFACE_WEIGHT_INDEX]) > 100 @@ -6390,6 +6364,8 @@ DEFUN ("show-face-resources", Fshow_face_resources, Sshow_face_resources, void syms_of_xfaces (void) { +#include "xfaces.x" + DEFSYM (Qface, "face"); DEFSYM (Qface_no_inherit, "face-no-inherit"); DEFSYM (Qbitmap_spec_p, "bitmap-spec-p"); @@ -6469,44 +6445,6 @@ syms_of_xfaces (void) Vface_alternative_font_registry_alist = Qnil; staticpro (&Vface_alternative_font_registry_alist); - defsubr (&Sinternal_make_lisp_face); - defsubr (&Sinternal_lisp_face_p); - defsubr (&Sinternal_set_lisp_face_attribute); -#ifdef HAVE_WINDOW_SYSTEM - defsubr (&Sinternal_set_lisp_face_attribute_from_resource); -#endif - defsubr (&Scolor_gray_p); - defsubr (&Scolor_supported_p); -#ifndef HAVE_X_WINDOWS - defsubr (&Sx_load_color_file); -#endif - defsubr (&Sface_attribute_relative_p); - defsubr (&Smerge_face_attribute); - defsubr (&Sinternal_get_lisp_face_attribute); - defsubr (&Sinternal_lisp_face_attribute_values); - defsubr (&Sinternal_lisp_face_equal_p); - defsubr (&Sinternal_lisp_face_empty_p); - defsubr (&Sinternal_copy_lisp_face); - defsubr (&Sinternal_merge_in_global_face); - defsubr (&Sface_font); - defsubr (&Sframe_face_alist); - defsubr (&Sdisplay_supports_face_attributes_p); - defsubr (&Scolor_distance); - defsubr (&Sinternal_set_font_selection_order); - defsubr (&Sinternal_set_alternative_font_family_alist); - defsubr (&Sinternal_set_alternative_font_registry_alist); - defsubr (&Sface_attributes_as_vector); -#ifdef GLYPH_DEBUG - defsubr (&Sdump_face); - defsubr (&Sshow_face_resources); -#endif /* GLYPH_DEBUG */ - defsubr (&Sclear_face_cache); - defsubr (&Stty_suppress_bold_inverse_default_colors); - -#if defined DEBUG_X_COLORS && defined HAVE_X_WINDOWS - defsubr (&Sdump_colors); -#endif - DEFVAR_LISP ("face-new-frame-defaults", Vface_new_frame_defaults, doc: /* List of global face definitions (for internal use only.) */); Vface_new_frame_defaults = Qnil; @@ -6590,11 +6528,4 @@ RESCALE-RATIO is a floating point number to specify how much larger \(or smaller) font we should use. For instance, if a face requests a font of 10 point, we actually use a font of 10 * RESCALE-RATIO point. */); Vface_font_rescale_alist = Qnil; - -#ifdef HAVE_WINDOW_SYSTEM - defsubr (&Sbitmap_spec_p); - defsubr (&Sx_list_fonts); - defsubr (&Sinternal_face_x_get_resource); - defsubr (&Sx_family_fonts); -#endif }