1. 10 Apr, 1994 1 commit
  2. 09 Apr, 1994 1 commit
  3. 31 Mar, 1994 1 commit
  4. 09 Feb, 1994 1 commit
  5. 06 Feb, 1994 1 commit
  6. 20 Nov, 1993 1 commit
  7. 10 Sep, 1993 1 commit
  8. 24 Jul, 1993 1 commit
  9. 05 Jul, 1993 1 commit
  10. 22 Jun, 1993 1 commit
    • Jim Blandy's avatar
      Separate parameter faces (those created and modified by the user) · 7b00de84
      Jim Blandy authored
      	from the computed faces (the combinations created by
      	compute_char_face), so that we don't waste global face id's.
      	* xterm.h (struct x_display): Replace the fields faces and n_faces
      	with fields param_faces, n_param_faces, computed_faces,
      	n_computed_faces, and size_computed_faces.
      	(FRAME_FACES, FRAME_N_FACES): Replaced by...
      	(FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_PARAM_FACES,
      	FRAME_N_PARAM_FACES): New macros.
      	* xfaces.c: Doc fixes.
      	(init_frame_faces): Call new_computed_face to create entries for
      	the default and mode line faces.  Use the FRAME...PARAM_FACES
      	macros.
      	(free_frame_faces): Use the FRAME...PARAM_FACES and
      	FRAME...COMPUTED_FACES macros.  Don't use the copy flag; all
      	parameter faces have real X resources, and all computed faces just
      	have copies.  Free both the parameter and computed face arrays.
      	(new_computed_face): New function.
      	(intern_computed_face): Renamed from intern_frame_face; callers
      	changed.  Call new_computed_face.
      	(ensure_face_ready, compute_char_face, compute_glyph_face): Use the
      	FRAME...PARAM_FACES macros.
      	(recompute_basic_faces): Use the FRAME...PARAM_FACES and
      	FRAME...COMPUTED_FACES macros.  Produce the computed faces by
      	starting with the base faces and merging in the parameter faces.
      	(Fset_face_attribute_internal): Use the FRAME...PARAM_FACES
      	macros.  Just call recompute_basic_faces if the default or mode
      	line faces have changed.
      	* xfns.c (Fx_list_fonts): Use the FRAME...PARAM_FACES macros.
      	* xterm.c (dumpglyphs): Use the FRAME...COMPUTED_FACES macros.
      	* dispextern.h (struct face): Remove the copy member.  This is no
      	longer necessary; all computed faces are copies, and no parameter
      	faces are.
      
      	* xfaces.c (face_vector, nfaces, nfaces_allocated): Make these
      	static.
      7b00de84
  11. 19 Jun, 1993 2 commits
  12. 17 Jun, 1993 1 commit
  13. 09 Jun, 1993 1 commit
  14. 06 Jun, 1993 1 commit
  15. 02 Jun, 1993 1 commit
  16. 01 Jun, 1993 1 commit
  17. 30 May, 1993 3 commits
  18. 29 May, 1993 1 commit
  19. 25 May, 1993 2 commits
    • Jim Blandy's avatar
      * xterm.h: New section for declarations for xfaces.c. · 660ed669
      Jim Blandy authored
      	(init_frame_faces, free_frame_faces, intern_face,
      	face_name_id_number, same_size_fonts, recompute_basic_faces,
      	compute_char_face, compute_glyph_face): Declare these here.
      	* xfaces.c (same_size_fonts): We can now remove this extern
      	declaration.
      	* xfns.c (face_name_id_number): Likewise.
      	* xterm.c (intern_face): Likewise.
      
      	* xfaces.c (build_face, unload_font, free_frame_faces): Don't
      	forget to block input while making X calls.
      
      	Treat faces as structures specifying modifications to the frame's
      	parameters, rather than things which need to specify a complete
      	set of parameters by themselves.
      	* xfaces.c (init_frame_faces): Don't set up the two frame display
      	faces by querying the GC - just leave all their fields blank, and
      	call recompute_basic_faces, letting build_face do the work of
      	consulting the frame when necessary.
      	(recompute_basic_faces): New function.
      	(compute_base_faces): New function for obtaining the "identity"
      	for compute_char_face and compute_glyph_face.
      	(compute_char_face, compute_glyph_face): Call it, instead of copying
      	FRAME_DEFAULT_FACE.
      	* xfns.c (x_make_gc): No need to call init_frame_faces here.
      
      	* xfaces.c (intern_frame_face): This can be static.
      
      	* dispextern.h (struct face): New field - `copy', to help us with
      	resource allocation.
      	* xfaces.c (free_frame_faces): Do free the first two faces; don't
      	free anything from a face that's a copy.
      	(intern_frame_face): Mark every face we intern as a copy; its
      	resources are actually a combination of the real faces.
      	(Fset_face_attribute_internal): No need to check if we're trying
      	to free one of the frame's GC's; they never enter into the
      	picture.
      
      	* xfns.c (Fx_list_fonts): New function.
      	(face_name_id_number): Add extern declaration for this.
      	* xfaces.c (face_name_id_number): Make this externally visible,
      	and make the FRAME argument a FRAME_PTR, not a Lisp_Object.
      	(compute_char_face): Call face_name_id_number properly.
      660ed669
    • Jim Blandy's avatar
      * xfns.c (Fx_list_fonts): New function. · 1d9fd7fe
      Jim Blandy authored
      	(same_size_fonts): Function moved here from xfaces.c.
      	(face_name_id_number): Add extern declaration for this.
      	* xfaces.c (same_size_fonts): Moved to xfns.c.  Left an extern
      	declaration behind.
      	(face_name_id_number): Make this externally visible, and make the
      	FRAME argument a FRAME_PTR, not a Lisp_Object.
      	(compute_char_face): Call face_name_id_number properly.
      
      	* xfaces.c (unload_color): Don't free the pixel for now.
      
      	* xfaces.c (merge_faces): You can't tell if a font is a
      	character-cell font or not by testing whether or not it has a
      	per_char table.  They all do.
      1d9fd7fe
  20. 24 May, 1993 1 commit
  21. 23 May, 1993 1 commit
  22. 22 May, 1993 1 commit
  23. 20 May, 1993 1 commit
  24. 19 May, 1993 1 commit
    • Jim Blandy's avatar
      Make sure that all the display faces use fonts of the · 68a97335
      Jim Blandy authored
      	same dimensions as the default face, so as not to confuse the rest
      	of the redisplay code.
      	* xfaces.c (same_size_fonts): New function.
      	(merge_faces): Only merge in a new font from the FROM face if it
      	is the same size as the font in the TO face.
      68a97335
  25. 18 May, 1993 1 commit
  26. 16 May, 1993 3 commits
  27. 15 May, 1993 1 commit
  28. 14 May, 1993 1 commit
    • Jim Blandy's avatar
      * xfaces.c (compute_char_face): When merging the overlays, · f6b98e0b
      Jim Blandy authored
      	traverse sortvec, not overlay_vec; the latter isn't the one we
      	sorted.
      
      	* xfaces.c (intern_face): If the face has a GC, but it's not the
      	default or modeline face, abort.  Nothing but those two faces
      	should have a GC *and* be passed to intern_face.
      	(compute_char_face, compute_glyph_face): After copying
      	the frame's default face into face, to use as a base case for
      	calculation, set the `gc' member to zero; that way we don't have
      	things lying around that look like display faces but aren't.
      
      	* xfaces.c (intern_frame_face): When copying the new face into the
      	frame's face array, remember that the number of bytes to copy is
      	sizeof (*new_face), not sizeof (new_face).
      
      	* xfaces.c (compute_char_face): Assume that W is displaying the
      	current buffer.  Abort if it isn't.
      f6b98e0b
  29. 13 May, 1993 1 commit
    • Jim Blandy's avatar
      * xfaces.c (intern_frame_face): Exchange order of arguments, to · b6d40e46
      Jim Blandy authored
      	make callers correct.
      
      	* xfaces.c (compute_char_face): Notice the next property change
      	location correctly.
      
      	* xfaces.c (face_name_id_number): Return 0 (the default face) if
      	the name is undefined.
      
      	* xfaces.c (Fset_face_attribute_internal): Do nothing unless FRAME
      	is an X frame.
      b6d40e46
  30. 11 May, 1993 1 commit
  31. 10 May, 1993 1 commit
    • 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
  32. 15 Apr, 1993 1 commit
  33. 10 Apr, 1993 1 commit
  34. 31 Mar, 1993 1 commit
    • Jim Blandy's avatar
      * xfaces.c: Doc fixes. · 357f32fc
      Jim Blandy authored
      	Put interrupt input blocking in a separate file from xterm.h.
      	This isn't specific to X, and it allows us to avoid #including
      	xterm.h in files that don't really have anything to do with X.
      	* blockinput.h: New file.
      	* xterm.h (BLOCK_INPUT, UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT,
      	UNBLOCK_INPUT_RESIGNAL): These are now in blockinput.h.
      	(x_input_blocked, x_pending_input): Deleted; there are analogs
      	in blockinput.h called interrupt_input_blocked and
      	interrupt_input_pending.
      	* keyboard.c (interrupt_input_blocked, interrupt_input_pending):
      	New variables, used by the macros in blockinput.h.
      	* xterm.c: #include blockinput.h.
      	(x_input_blocked, x_pending_input): Deleted.
      	(XTread_socket): Test and set interrupt_input_blocked and
      	interrupt_input_pending instead of the old variables.
      	* alloc.c, xfaces.c, xfns.c, xmenu.c, xselect.c, keymap.c:
      	#include blockinput.h.
      	* eval.c: #include blockinput.h instead of xterm.h.
      	* keyboard.c: #include blockinput.h.
      	(input_poll_signal): Just test
      	interrupt_input_blocked, instead of testing HAVE_X_WINDOWS and
      	x_input_blocked.
      
      	Block the processing of interrupt input while we're manipulating the
      	malloc heap.
      	* alloc.c: (xfree): New function, to make it easy to free things
      	safely.
      	(xmalloc, xrealloc): Block X input while doing the deed.
      	(VALIDATE_LISP_STORAGE, gc_sweep, compact_strings): Use xfree
      	instead of free.
      	(uninterrupt_malloc): New function, to install input-blocking
      	hooks into the GNU malloc routines.
      	* emacs.c [not SYSTEM_MALLOC] (main): Call uninterrupt_malloc
      	on startup.
      	* alloc.c: (make_interval, make_float, Fcons, Fmake_vector,
      	Fmake_symbol, Fmake_marker, make_uninit_string, Fgarbage_collect):
      	Use xmalloc instead of malloc; don't bother to check if out of
      	memory here.
      	(Fgarbage_collect): Call xrealloc instead of realloc.
      	* buffer.c: Use xmalloc and xfree instead of malloc and free;
      	don't bother to check if out of memory here.
      	(Fget_buffer_create): Put BLOCK_INPUT/UNBLOCK_INPUT pair around
      	calls to ralloc routines.
      	* insdel.c: Same.
      	* lisp.h (xfree): New extern declaration.
      	* xfaces.c (xfree): Don't #define this to be free; use the
      	definition in alloc.c.
      	* dispnew.c, doc.c, doprnt.c, fileio.c, lread.c, term.c, xfns.c,
      	xmenu.c, xterm.c: Use xfree instead of free.
      	* hftctl.c: Use xfree and xmalloc instead of free and malloc.
      	* keymap.c (current_minor_maps): BLOCK_INPUT while calling realloc
      	and malloc.
      	* search.c: Since the regexp routines can malloc, BLOCK_INPUT
      	while runing them.  #include blockinput.h.
      	* sysdep.c: #include blockinput.h.  Call xfree and xmalloc instead
      	of free and malloc.  BLOCK_INPUT around routines which we know
      	will call malloc.
      
      	ymakefile (keyboard.o, keymap.o, search.o, sysdep.o, xfaces.o,
      	xfns.o, xmenu.o, xterm.o, xselect.o, alloc.o, eval.o): Note that
      	these depend on blockinput.h.
      357f32fc