• Jim Blandy's avatar
    * xfaces.c (Fmake_face_internal): Do nothing for non-X frames. · cb637678
    Jim Blandy authored
    	* dispextern.h (struct face): Add cached_index member.
    	* xfaces.c (get_cached_face): Use it to avoid unnecessary
    	searches of face_vector.
    
    	* xfaces.c (intern_face): Renamed from get_display_face.
    
    	* xfns.c (x_make_gc): After building the GC's for the frame, call
    	init_frame_faces to set up the first two faces.
    	* xfaces.c (init_frame_faces): Don't just try to copy the default
    	and mode line faces from some other random frame; instead, consult
    	the normal_gc and reverse_gc members of the frame, and build the
    	faces based on their parameters.
    
    	Adjust the face computation functions to return frame face ID's,
    	not pointers to display faces; since we call these functions
    	during display construction, we don't want the display faces yet.
    	* xfaces.c (intern_frame_face): New function.
    	(compute_char_face, compute_glyph_face): Apply intern_frame_face
    	to the computed face, and return the frame face's ID, instead of
    	calling intern_face and returning a pointer to a display frame.
    
    	* xfaces.c: Describe the facial data structures.  It took me a
    	while to figure them out; perhaps this will save someone else the
    	trouble.
    
    	* xfaces.c (get_display_face): Use face_eql instead of writing it out.
    cb637678
xfaces.c 24.5 KB