1. 10 May, 1993 13 commits
    • Jim Blandy's avatar
      * xfns.c (x_make_gc): After building the GC's for the frame, call · 9c7bb45f
      Jim Blandy authored
      	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.
      9c7bb45f
    • 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
    • Jim Blandy's avatar
      Arrange to tell redisplay about changes in overlays. · 31b24551
      Jim Blandy authored
      	* xdisp.c (redisplay_region): New function.
      	* buffer.c (Fmove_overlay): Call redisplay_region on the areas the
      	overlay has enclosed or left.
      	(Fdelete_overlay): Call redisplay_region on the area the overlay
      	used to occupy.
      	(Foverlay_put): Call redisplay_region on the area the overlay now
      	occupies; we may have put a face property on it.
      
      	* xdisp.c (redisplay): If we're doing a thorough redisplay (all
      	windows on all frames involved), go ahead and flush the GC cache -
      	call clear_face_vector.
      
      	* xdisp.c (display_text_line): Apply faces to characters
      	according to overlays and text properties; use
      	compute_char_face and compute_glyph_face to figure out what
      	face to use, and where a new face starts.
      	* xterm.c (dumpglyphs): Use the upper bits of the glyphs to decide
      	which frame face to use.  Call GLYPH_FOLLOW_ALIASES to make sure
      	we're implementing the glyph table properly.  If we're not using
      	the default or mode line face, call intern_face to find a display
      	face for the frame face selected by the glyph code.  Implement
      	underlining.  Remove the `font' argument; we have to derive this
      	from the frame and face anyway.  Change all callers.
      	* disptab.h (GLYPH_FOLLOW_ALIASES): New macro.
      31b24551
    • Jim Blandy's avatar
      * config.h.in: Remove mention of GLYPH datatype; that shouldn't be · 703f2808
      Jim Blandy authored
      	a user option.
      	* lisp.h (GLYPH, MAKE_GLYPH, GLYPH_CHAR, GLYPH_FACE): New macros.
      703f2808
    • Jim Blandy's avatar
      * keymap.c (Fwhere_is_internal): If FIRSTONLY is non-nil, avoid · 2fc66973
      Jim Blandy authored
      	returning a non-ascii key sequence unless FIRSTONLY is the symbol
      	`non-ascii'.
      2fc66973
    • Jim Blandy's avatar
      * blockinput.h (UNBLOCK_INPUT): We cannot assume that SIGIO is · ad163903
      Jim Blandy authored
      	defined everywhere this file is #included; merge the two
      	definitions for defined (SIGIO) and ! defined (SIGIO) into one,
      	which calls reinvoke_input_signal if interrupt_input_pending is
      	set.
      	* keyboard.c (reinvoke_input_signal): New function.
      
      	* keyboard.c (syms_of_keyboard): Doc fix for
      	extra-keyboard-modifiers.
      ad163903
    • Jim Blandy's avatar
      * xdisp.c (display_text_line): Apply faces to characters according · be269961
      Jim Blandy authored
      	to overlays and text properties; use compute_char_face to figure out
      	what face to use, and where a new face starts.
      	* xterm.c (dumpglyphs): Use the upper bits of the glyphs to decide
      	which frame face to use.  Call GLYPH_FOLLOW_ALIASES to make sure
      	we're implementing the glyph table properly.  If we're not using
      	the default or mode line face, call intern_face to find a display
      	face for the frame face selected by the glyph code.  Implement
      	underlining.  Remove the `font' argument; we have to derive this
      	from the frame and face anyway.  Change all callers.
      	* disptab.h (GLYPH_FOLLOW_ALIASES): New macro.
      be269961
    • Jim Blandy's avatar
      * dispextern.h (struct face): Add cached_index member. · 88fd275e
      Jim Blandy authored
      	* xfaces.c (get_cached_face): Use it to avoid unnecessary
      	searches of face_vector.
      88fd275e
    • Jim Blandy's avatar
      * config.h.in: Adjust this for use by autoconf's AC_CONFIG_HEADER, · 783f85c7
      Jim Blandy authored
      	instead of AC_OUTPUT.
      
      	* config.h.in: Remove mention of GLYPH datatype; that shouldn't be
      	a user option.
      	* lisp.h (GLYPH, MAKE_GLYPH, GLYPH_CHAR, GLYPH_FACE): New macros.
      783f85c7
    • Jim Blandy's avatar
      Arrange to tell redisplay about changes in overlays. · b61982dd
      Jim Blandy authored
      	* xdisp.c (redisplay_region): New function.
      	* buffer.c (Fmove_overlay): Call redisplay_region on the areas the
      	overlay has enclosed or left.
      	(Fdelete_overlay): Call redisplay_region on the area the overlay
      	used to occupy.
      	(Foverlay_put): Call redisplay_region on the area the overlay now
      	occupies; we may have put a face property on it.
      
      	* buffer.c (Fmove_overlay): Doc fix.
      b61982dd
    • Jim Blandy's avatar
      * blockinput.h (UNBLOCK_INPUT): We cannot assume that SIGIO is · 40a4095a
      Jim Blandy authored
      	defined everywhere this file is #included; merge the two
      	definitions for defined (SIGIO) and ! defined (SIGIO) into one,
      	which calls reinvoke_input_signal if interrupt_input_pending is
      	set.
      	* keyboard.c (reinvoke_input_signal): New function.
      40a4095a
    • Jim Blandy's avatar
      * Makefile.in (DEFS): Remove this; we have configure build a · d70fd7d6
      Jim Blandy authored
      	config.h file directly, instead of having lots of -D flags.
      
      	* Makefile.in (CFLAGS): Don't make this carry DEFS from the
      	configure script; the coding standards say that CFLAGS should be
      	left for the user to tweak.
      
      	* Makefile.in (LN_S): New variable, edited by top Makefile.
      	(SUBMAKEFILE): New variable, containing all flags to pass to
      	recursive makes.
      d70fd7d6
    • Jim Blandy's avatar
      * keyboard.c (read_char): Exit kbd macro if Vexecuting_macro is t. · 663258f2
      Jim Blandy authored
      	* keyboard.c (do_mouse_tracking): Now static.
      
      	* keyboard.c (read_char_menu_prompt): Expect Fx_popup_menu
      	to return a list of events.  Don't lose any of them.
      663258f2
  2. 09 May, 1993 1 commit
  3. 08 May, 1993 3 commits
  4. 07 May, 1993 1 commit
  5. 06 May, 1993 4 commits
  6. 04 May, 1993 18 commits
    • Richard M. Stallman's avatar
      6648f23a
    • Jim Blandy's avatar
      * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL, · d03f79ef
      Jim Blandy authored
      	CHAR_META): Shift these all up one bit, back to where they were.
      d03f79ef
    • Jim Blandy's avatar
      Implement extra_keyboard_modifiers properly. · dfeccd2d
      Jim Blandy authored
      	* keyboard.c (syms_of_keyboard): Doc fix for
      	extra-keyboard-modifiers; use the same modifier bits as we do for
      	characters.
      	(read_char): Apply all the modifiers in extra_keyboard_modifiers
      	to the input characters, so you can get hyper, super, and the rest
      	of the gang.
      	* xterm.c (x_emacs_to_x_modifiers): New function.
      	(x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for
      	consistency.  Callers changed.
      	(XTread_socket): Apply x_emacs_to_x_modifiers to
      	extra_keyboard_modifiers before setting the state member of the
      	event; this will get all the modifiers on ASCII characters.
      
      	* xterm.c (x_text_icon): Don't call XSetIconName; it should be
      	unnecessary, and perhaps it's killing the icon pixmap.
      dfeccd2d
    • Jim Blandy's avatar
      Changes for Emacs 19 from Thorsten Ohl <ohl@chico.harvard.edu>: · f80dc888
      Jim Blandy authored
      	* s/mach2.h: copied from the Emacs 18.59 distribution.
      	Don't define NO_REMAP, define START_FILES as
      	`pre-crt0.o' instead.  Define LIB_MATH as `-lm', to override the
      	default `-lm -lc' (there is no libc on the NeXT).
      	* ymakefile (STARTFILES): Allow config.h to set this value even if
      	ORDINARY_LINK is defined.
      	* unexnext.c: Fix subdirectories for the machine dependent include
      	files for NeXTStep 3.0; #include <mach/mach.h> and
      	<mach-o/loader.h> instead of <mach.h> and <sys/loader.h>.
      	(getsectbyname): Remove prototype for this; the system #include
      	files take care of that.
      	(malloc_cookie): New variable.
      	(unexec_doit): Set malloc_cookie to the result returned by
      	malloc_freezedry.
      	* emacs.c (main): Declare malloc_cookie to be extern, so that we can
      	get the value set when we dumped and pass it to malloc_jumpstart.
      	* systime.h: The NeXT has a timezone function.
      f80dc888
    • Jim Blandy's avatar
      * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in · d82222e1
      Jim Blandy authored
      	case we need them.
      	* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
      	shift_modifier, ctrl_modifier, meta_modifier): Define these in
      	terms of the CHAR_mumble macros, to avoid having the same thing
      	defined in two places.
      
      	Make the modifier manipulation functions more robust.  The old way
      	caused a bug once, and probably would again.
      	* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
      	shift_modifier, ctrl_modifier, meta_modifier): Shift these all
      	down one bit in value, to avoid sign extension problems.
      	* lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
      	* keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
      	what our table of modifier names can handle.
      	(apply_modifiers): Don't abort if you see extra modifier bits,
      	just remove them.
      d82222e1
    • Jim Blandy's avatar
      * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into · c2e4f49a
      Jim Blandy authored
      	functions in sysdep.c.
      	* sysdep.c (emacs_get_tty, emacs_set_tty): Here they are.
      c2e4f49a
    • Jim Blandy's avatar
      * systime.h: Doc fix. · 7f86bdac
      Jim Blandy authored
      	(EMACS_SET_USECS): Remember that a `usec' is a microsecond, not a
      	millisecond.  What's three orders of magnitude between friends?
      	* dispnew.c (Fsit_for, Fsleep_for): Remember to multiply the
      	`milliseconds' argument by 1000 to get microseconds.
      
      	Changes for Emacs 19 from Thorsten Ohl <ohl@chico.harvard.edu>:
      	* s/mach2.h: copied from the Emacs 18.59 distribution.
      	Don't define NO_REMAP, define START_FILES as
      	`pre-crt0.o' instead.  Define LIB_MATH as `-lm', to override the
      	default `-lm -lc' (there is no libc on the NeXT).
      	* ymakefile (STARTFILES): Allow config.h to set this value even if
      	ORDINARY_LINK is defined.
      	* unexnext.c: Fix subdirectories for the machine dependent include
      	files for NeXTStep 3.0; #include <mach/mach.h> and
      	<mach-o/loader.h> instead of <mach.h> and <sys/loader.h>.
      	(getsectbyname): Remove prototype for this; the system #include
      	files take care of that.
      	(malloc_cookie): New variable.
      	(unexec_doit): Set malloc_cookie to the result returned by
      	malloc_freezedry.
      	* emacs.c (main): Declare malloc_cookie to be extern, so that we can
      	get the value set when we dumped and pass it to malloc_jumpstart.
      	* systime.h: The NeXT has a timezone function.
      7f86bdac
    • Jim Blandy's avatar
      * systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into · 68936329
      Jim Blandy authored
      	functions in sysdep.c.
      	* sysdep.c (emacs_get_tty, emacs_set_tty): Here they are.
      
      	* sysdep.c (emacs_set_tty): Call tcsetattr over and over again
      	until it does all of what we ask it to, or returns an error.
      68936329
    • Jim Blandy's avatar
      * search.c (Freplace_match): Arrange for markers sitting at the · 9a76659d
      Jim Blandy authored
      	beginning or end of the original text to float to the
      	corresponding position in the replacement text.
      9a76659d
    • Jim Blandy's avatar
      Arrange for Fy_or_n_p to put off switch-frame events. · f42be754
      Jim Blandy authored
      	* lread.c (read_filtered_char): New function, which contains the
      	code which used to be in Fread_char, Fread_event, and
      	Fread_char_exclusive; there was a lot of common code.
      	(Fread_char, Fread_event, Fread_char_exclusive): Rewrite in terms
      	of read_filtered_char.
      	* lisp.h (read_filtered_char): Declare this extern here.
      	* fns.c (Fy_or_n_p): Call read_filtered_char, arranging to delay
      	switch-frame events.
      f42be754
    • Jim Blandy's avatar
      * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in · 59b4254d
      Jim Blandy authored
      	case we need them.
      	* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
      	shift_modifier, ctrl_modifier, meta_modifier): Define these in
      	terms of the CHAR_mumble macros, to avoid having the same thing
      	defined in two places.
      
      	Arrange for Fy_or_n_p to put off switch-frame events.
      	* lread.c (read_filtered_char): New function, which contains the
      	code which used to be in Fread_char, Fread_event, and
      	Fread_char_exclusive; there was a lot of common code.
      	(Fread_char, Fread_event, Fread_char_exclusive): Rewrite in terms
      	of read_filtered_char.
      	* lisp.h (read_filtered_char): Declare this extern here.
      	* fns.c (Fy_or_n_p): Call read_filtered_char, arranging to delay
      	switch-frame events.
      
      	Make the modifier manipulation functions more robust.  The old way
      	caused a bug once, and probably would again.
      	* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
      	shift_modifier, ctrl_modifier, meta_modifier): Shift these all
      	down one bit in value, to avoid sign extension problems.
      	* lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
      	* keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
      	what our table of modifier names can handle.
      	(apply_modifiers): Don't abort if you see extra modifier bits,
      	just remove them.
      
      	* lisp.h (Qrange_error, Qdomain_error, Qsingularity_error,
      	Qoverflow_error, Qunderflow_error): Add extern to these declarations.
      59b4254d
    • Jim Blandy's avatar
      * keymap.c (Fdefine_prefix_command): Doc fix. · cd8520b9
      Jim Blandy authored
      cd8520b9
    • Jim Blandy's avatar
      Implement extra_keyboard_modifiers properly. · 80645119
      Jim Blandy authored
      	* keyboard.c (syms_of_keyboard): Doc fix for
      	extra-keyboard-modifiers; use the same modifier bits as we do for
      	characters.
      	(read_char): Apply all the modifiers in extra_keyboard_modifiers
      	to the input characters, so you can get hyper, super, and the rest
      	of the gang.
      	* xterm.c (x_emacs_to_x_modifiers): New function.
      	(x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for
      	consistency.  Callers changed.
      	(XTread_socket): Apply x_emacs_to_x_modifiers to
      	extra_keyboard_modifiers before setting the state member of the
      	event; this will get all the modifiers on ASCII characters.
      
      	* keyboard.c (kbd_buffer_get_event): Don't generate switch-frame
      	events if they'd only switch to the frame already selected.  This
      	avoids lots of extra switch-frame events when using a separate
      	minibuffer.
      
      	* keyboard.c (Fcurrent_input_mode): New function.
      
      	* keyboard.c (read_key_sequence): Let the `modifiers' variable in
      	the code which deals with KEY being unbound be an int, not a
      	Lisp_Object.
      
      	Make the modifier manipulation functions more robust.  The old way
      	caused a bug once, and probably would again.
      	* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
      	shift_modifier, ctrl_modifier, meta_modifier): Shift these all
      	down one bit in value, to avoid sign extension problems.
      	* lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
      	* keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
      	what our table of modifier names can handle.
      	(apply_modifiers): Don't abort if you see extra modifier bits,
      	just remove them.
      80645119
    • Jim Blandy's avatar
      * fileio.c (Fmake_symbolic_link): If a file already exists under · 9083124b
      Jim Blandy authored
      	the link's filename, delete the file which the link
      	would replace, not the file the link would point at.
      9083124b
    • Jim Blandy's avatar
      * emacs.c (SEPCHAR): Instead of defining this to be ',' on VMS and · 4b163808
      Jim Blandy authored
      	':' elsewhere, just have it default to ':' if not #defined, and
      	#define it to be ',' in s/vms.h; OS/2 will need it to be ';'.
      	* s/vms.h (SEPCHAR): #define this to be ','.
      	* s/template.h (SEPCHAR): Mention this.
      
      	Changes for Emacs 19 from Thorsten Ohl <ohl@chico.harvard.edu>:
      	* s/mach2.h: copied from the Emacs 18.59 distribution.
      	Don't define NO_REMAP, define START_FILES as
      	`pre-crt0.o' instead.  Define LIB_MATH as `-lm', to override the
      	default `-lm -lc' (there is no libc on the NeXT).
      	* ymakefile (STARTFILES): Allow config.h to set this value even if
      	ORDINARY_LINK is defined.
      	* unexnext.c: Fix subdirectories for the machine dependent include
      	files for NeXTStep 3.0; #include <mach/mach.h> and
      	<mach-o/loader.h> instead of <mach.h> and <sys/loader.h>.
      	(getsectbyname): Remove prototype for this; the system #include
      	files take care of that.
      	(malloc_cookie): New variable.
      	(unexec_doit): Set malloc_cookie to the result returned by
      	malloc_freezedry.
      	* emacs.c (main): Declare malloc_cookie to be extern, so that we can
      	get the value set when we dumped and pass it to malloc_jumpstart.
      	* systime.h: The NeXT has a timezone function.
      4b163808
    • Jim Blandy's avatar
      * systime.h: Doc fix. · b07646f5
      Jim Blandy authored
      	(EMACS_SET_USECS): Remember that a `usec' is a microsecond, not a
      	millisecond.  What's three orders of magnitude between friends?
      	* dispnew.c (Fsit_for, Fsleep_for): Remember to multiply the
      	`milliseconds' argument by 1000 to get microseconds.
      
      	* dispnew.c (Fsleep_for, Fsit_for): Allow SECONDS to be a
      	floating point value.
      
      	* dispnew.c (getenv): Extern declaration deleted; this is done in
      	config.h.
      b07646f5
    • Jim Blandy's avatar
    • Jim Blandy's avatar
      * config.h.in (getenv): Don't test THIS_IS_YMAKEFILE to see if we · 8b0c35d9
      Jim Blandy authored
      	should exclude the getenv declaration; instead, test NOT_C_CODE.
      	Per suggestion from Francesco Potorti`.
      	* ymakefile (NOT_C_CODE): Define this; it's true, and useful.
      
      	* config.h.in (volatile): Don't define this to be the empty string
      	if some file has #defined HAVE_VOLATILE.
      8b0c35d9