diff src/ChangeLog.3 @ 25830:8f14d08e19f7

#
author Dave Love <fx@gnu.org>
date Wed, 29 Sep 1999 16:37:29 +0000
parents
children 0b84ec0dc628
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ChangeLog.3	Wed Sep 29 16:37:29 1999 +0000
@@ -0,0 +1,16533 @@
+1993-05-30  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Version 19.10 released.
+
+1993-05-29  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): If we changed buffers during
+	read_char, go to replay_sequence.
+
+	* frame.c (Ficonify_frame, Fmake_frame_invisible): 
+	Select some other frame.  Move minibuffer off this frame.
+
+	* frame.c (Fhandle_switch_frame): Don't call Ffocus_frame.
+	(Fredirect_frame_focus): Call Ffocus_frame here.
+
+	* xterm.c (x_bitmap_icon): Don't free icon_bitmap;
+	create it if it hasn't been created before.
+
+	* xterm.c (XTread_socket): For UnmapNotify, if frame was visible,
+	mark it now as iconified.
+	(x_make_frame_invisible): If async_iconic, work does need to be done.
+	Don't let this frame stay highlighted.
+	(x_iconify_frame): Don't let this frame stay highlighted.
+
+	* s/usg5-4-2.h (sigsetmask): #undef this.
+
+	* sysdep.c (sys_signal): Use 0, not NULL, to set sa_flags.
+
+1993-05-29  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* linux.h (C_OPTIMIZE_SWITCH): Set this to the empty string;
+	configure guesses just fine.
+
+	* tekXD88.h: New file, from Kaveh Ghazi.
+
+	* systty.h (CDISABLE): #undef it before re-#defining it.
+
+	* sysdep.c (sys_siglist): Comment out #endif trailer.
+	* xmenu.c (TRUE, FALSE): Same.
+	* xterm.c (dumprectangle): Same.
+
+	* emacs.c: Don't include termios.h directly--let systty.h do it.
+
+1993-05-29  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfaces.c [HPUX]: Include time.h and define __TIMEVAL__.
+
+	* emacs.c (shut_down_emacs): Maybe close X connection.  New arg NO_X.
+	(Fkill_emacs): Don't close it here.  Pass new arg.
+	(fatal_error_signal): Pass new arg.
+	* xterm.c (x_connection_closed): Pass new arg.
+
+	* xdisp.c (syms_of_xdisp): Make highlight-nonselected-windows Lisp var.
+	(display_text_line): Obey it.
+	(display_text_line): Really check for just the selected window.
+
+	* s/usg5-4-2.h: New file.
+
+	* keyboard.c (menu_bar_items): Save Vinhibit_quit by hand
+	instead of using specbind.
+	(menu_bar_items): Call Fnreverse before restoring Vinhibit_quit.
+
+	* s/hpux8.h (OLDXMENU_OPTIONS): Add quotations.
+
+	* m/ibmrt.h (C_SWITCH_MACHINE): Define only if not __GNUC__.
+	(HAVE_FTIME): Defined.
+	(EMACS_BITMAP_FILES): Defined.
+
+	* xfns.c (Fx_close_current_connection): Clear x_current_display.
+	* xterm.c (XTring_bell): Do nothing if x_current_connection is 0.
+
+	* buffer.c (reset_buffer): Clear mark_active field here.
+	(reset_buffer_local_variables): Not here.
+	(Fswitch_to_buffer, Fpop_to_buffer): Return the buffer.
+	(Fmove_overlay): Fix data types in last change.
+
+	* sysdep.c (gettimeofday): Don't store in *tzp if tzp is 0.
+
+	* process.c (MAXDESC): Get it from FD_SETSIZE if that exists.
+
+	* s/sco4.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): 
+	Redefined.
+	(SIGNALS_VIA_CHARACTERS): Defined.
+	[HAVE_SOCKETS] (HAVE_GETTIMEOFDAY): Defined.
+	(MAIL_PROGRAM_NAME): Defined (two alternate definitions).
+
+	* xfns.c (Fx_list_fonts): Use CHECK_LIVE_FRAME on the frame arg.
+
+1993-05-28  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/hpux8.h (LIBX11_SYSTEM): Defined.
+
+	* ymakefile: Replace config.h as dep with $(config_h).
+	(really-oldXMenu): Use two make vars to pass values
+	of C_SWITCH_... within doublequotes.
+
+	* xfns.c (x_figure_window_size): Never set PPosition or PSize.
+
+	* keymap.c (syms_of_keymap): Create global_map 256 slots long.
+	* cmds.c (keys_of_cmds): Predefined 0240-0376 as self-insert.
+
+	* xterm.c (XTread_socket, case KeyPress) [HPUX]:
+	Recognize the extended function keys.
+
+	* buffer.c (Fgenerate_new_buffer_name): New arg IGNORE.
+	(Frename_buffer): Pass new arg.
+
+1993-05-28  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* keyboard.c (menu_bar_items): Bind Qinhibit_quit to Qt while we
+	call the keymap accessors; this gets called during redisplay.
+
+	* ymakefile (alloca.o): Call $(CC), not cc.
+
+	* s/linux.h (SIGNALS_VIA_CHARACTERS): Try this out for a bit.
+
+	* buffer.c (Fmove_overlay): If the overlay is changing buffers,
+	do a thorough redisplay.
+
+	* xfns.c (x_set_frame_parameters): Use the first
+	position/size parameter we find, not the last.
+
+	* s/hpux8.h: Don't define HAVE_RANDOM.
+
+	* config.h.in (UNEXEC_SRC): New macro, set by the configure
+	script.
+	* ymakefile (UNEXEC_SRC): Give it a default value here, and make
+	UNEXEC depend on it.
+
+	* ymakefile (lispdir): Set this in terms of ${srcdir}.
+
+1993-05-27  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dispnew.c (Fsleep_for): Don't return without waiting when SEC is 0.
+
+	* emacs.c (syms_of_emacs) [CANNOT_DUMP]: Don't defsubr Sdump_emacs*.
+
+	* alloc.c (mark_object): Add debugging code to check for ptr clobbered.
+
+1993-05-27  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* Version 19.9 released.
+
+1993-05-27  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_char): Correct previous change.
+
+1993-05-27  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* systty.h: Always terminate comments, to avoid confusion.
+
+	* xfns.c: Make resource manager work correctly even when
+	Vinvocation_name has periods and asterisks in it.
+	(Vxrdb_name): New variable.
+	(Fx_get_resource): Use it instead of Vinvocation_name.
+	(Fx_open_connection): Initialize it to a copy of Vinvocation_name,
+	with the dots and stars replaced by hyphens.
+	(syms_of_xfns): staticpro it here.
+
+	* xfns.c (Fx_get_resource): Use the proper format string when the
+	attribute has been specified.
+
+1993-05-27  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfns.c (x_get_resource_string): New function.
+
+	* ymakefile (ALL_CFLAGS): Put CFLAGS last.
+
+1993-05-26  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* s/sol2.h: (SOLARIS_BROKEN_ACCESS): Don't define this.
+
+	* s/aix3-2.h (C_SWITCH_SYSTEM): Don't define this to be "-ma" if
+	we're using GCC - that's an XLC switch.
+
+	* s/aix3-2.h (LIBS_SYSTEM): Put -LIM -Liconv here.
+
+	* systty.h (HAVE_LTCHARS, HAVE_TCHARS): New macros; define them if
+	we have those structures, but *don't* define them if we have
+	TERMIOS, whose functions take care of those parameters; that
+	screws up AIX.
+	(struct emacs_tty): Test those symbols, instead of the ioctl
+	commands.
+	* sysdep.c (emacs_get_tty, emacs_set_tty, new_ltchars, new_tchars,
+	init_sys_modes): Same.
+
+	* config.h.in (HAVE_RENAME): Include an #undef for this, so
+	configure will have something to edit.
+
+1993-05-26  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* window.c (window_loop, case GET_LRU_WINDOW):
+	Get frame's width properly.
+
+	* xselect.c (x_get_local_selection): If no conversion function
+	exists for the requested type, just return nil.
+
+	* s/linux.h (HAVE_TCATTR): Defined.
+
+	* sysdep.c [HAVE_SOCKETS]: Include socket.h, netdb.h.
+	(get_system_name) [HAVE_SOCKETS]: Use gethostbyname.
+
+1993-05-26  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* s/hpux8.h (LIB_X11_LIB, C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM,
+	LD_SWITCH_SYSTEM, OLDXMENU_OPTIONS): Add X11R5 directories to the
+	search paths in these lists; they shouldn't do any harm if they
+	don't have X11R5.
+
+	* s/aix3-2.h (C_SWITCH_SYSTEM): Don't #define this if we're using
+	GCC.
+
+1993-05-26  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xrdb.c (magic_searchpath_decoder): Fix typos.
+
+	* xdisp.c (display_text_line): Don't call compute_char_face
+	for a non-X frame.
+
+	* xfns.c (Fx_rebind_key, Fx_rebind_keys): X10 definitions deleted.
+	(syms_of_xfns): Install them only if X11.
+
+	* ralloc.c (r_alloc_sbrk): Declare already_available as long, not SIZE.
+
+	* xfns.c (x_set_cursor_type): If arg not recognized, use box cursor.
+
+	* s/hpux8.h (LD_SWITCH_SYSTEM) [__GNUC__]: Pass -a archive to ld.
+	(HAVE_RANDOM): Defined.
+
+	* s/hpux.h (rand, srand): Definitions deleted.
+
+	* keyboard.c (Fcurrent_input_mode): Fix the call to Flist.
+	(make_lispy_event): Fix off-by-1 error with hpos in menu bar.
+
+	* s/sunos4-1-3.h: New file.
+
+	* ymakefile (XOBJ) [!HAVE_X_MENU]: Add xfaces.o.
+
+	* s/irix4-0.h (SIGNALS_VIA_CHARACTERS): Defined.
+
+	* xterm.c (x_wm_set_size_hint): Don't set hints for max size.
+
+1993-05-25  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m/ibmrs6000.h (LIBS_MACHINE): Add -lIM and -liconv.
+	(HAVE_GETTIMEOFDAY): Deleted.
+
+	* sysdep.c (wait_for_termination): Don't use the BSD alternative
+	for LINUX.  Use the UNIPLUS alternative.
+
+	* keyboard.c (read_char): If kbd_buffer_get_event returns nil,
+	redisplay and retry.
+	(kbd_buffer_get_event): If event is handled here, return nil.
+	(swallow_events): New function.
+	* process.c (wait_reading_process_input): Call that.
+
+	* ralloc.c (POINTER): Always use char *.
+
+	* s/sol2.h (C_SWITCH_X_SYSTEM): Deleted.
+	(LD_SWITCH_SYSTEM): Delete the -L option, leave just -R.
+
+	* m/symmetry.h (PTY_TTY_NAME_SPRINTF, PTY_NAME_SPRINTF):
+	Use pty_name, not ptyname.
+
+	* syntax.c (Fforward_comment): Arg is a Lisp_Object.
+	Convert it to an int.
+
+	* ymakefile (alloca.o): Get alloca.c and alloca.s from ${srcdir}.
+
+	* floatfns.c (logb): Don't declare if hpux.
+
+	* syntax.c (Fforward_comment): Always set point.
+
+	* s/dgux.h, s/hpux.h, s/esix.h (HAVE_GETTIMEOFDAY): Deleted.
+
+	* s/irix4-0.h (C_ALLOCA, alloca): Definitions deleted.
+	[!NOT_C_CODE]: Include alloca.h.
+	(NEED_SIOCTL): #undef this.
+
+	* xterm.h (PIXEL_TO_CHAR_COL, PIXEL_TO_CHAR_ROW):
+	Fix mismatch in arg names.
+
+	* xfns.c (Fx_open_connection): Set xrm_option correctly.
+
+1993-05-25  David J. MacKenzie  (djm@wiki.eng.umd.edu)
+
+	* xfns.c (x_figure_window_size): Make the default frame coords (0,0).
+
+1993-05-25  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* Version 19.8 released.
+
+1993-05-25  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xfns.c: Clear out the old face stuff.
+	(x_face_table, n_faces, x_set_face, x_set_glyph, Fx_set_face_font,
+	Fx_set_face, Fx_get_face): Removed.
+	(syms_of_xfns): Remove defsubr for Fx_set_face.
+
+	Arrange for font names to get fully resolved - no wildcards.
+	* xfns.c (x_set_frame_parameters): Store the value in the frame
+	parameter alist before we call the setter function, so the setter
+	function can touch up the value if it chooses.
+	(x_set_foreground_color, x_set_background_color): Call
+	recompute_basic_faces, so their GC's will reflect the changes.
+	(x_new_font): Add extern declaration - this returns a Lisp_Object
+	now, the fully resolved font name.
+	(x_set_font): Accept the fully resolved name from x_new_font, and
+	put it in the frame's parameter alist.  Call recompute_basic_faces.
+	* xterm.c (x_new_font): Return the fully resolved font name, Qnil
+	(if no match), or Qt (match, but unacceptable metrics).
+	* xterm.c (x_new_font): Don't call init_frame_faces.
+
+	* xterm.h: New section for declarations for xfaces.c.
+	(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.
+
+	* xterm.c (dumpglyphs): Remember that the default faces can have
+	null fonts, too.
+
+	* xfns.c (Fx_list_fonts): Remember that FACE may not have a font
+	specified.  Don't specify 30000 as the maximum limit on the number
+	of fontns returned  - 2000 is more reasonable. 
+
+	* 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.
+
+	* casetab.c: Fix formatting, so as not to confuse etags.
+
+	* 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.
+
+	* 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.
+	* xterm.c (x_new_font): Same deal.
+	* xfns.c (Fx_list_fonts): Same deal.
+
+	* m/iris4d.h: Dyke out the section which specifies how to get the
+	load average.
+
+	* paths.h (PATH_INFO): New path, to edited by the configuration
+	process.
+	* callproc.c (Vconfigure_info_directory): New variable, used
+	internally by build process.
+	(syms_of_callproc): DEFVAR it and initialize it.
+
+	* keyboard.c (Fcurrent_input_mode): Use XFASTINT to build the last
+	element of the return value, not XSETINT.
+
+1993-05-24  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	Changes for OSF/1:
+	* mem-limits.h [__osf__ && (__mips || mips)]: #include
+	<sys/time.h> and <sys/resource.h>.
+	(get_lim_data): OSF wants a definition like BSD4_2's.
+	* s/osf1.h: #include "bsd4-3.h", not "s-bsd4-3.h".
+
+	* ymakefile (LIBX): Put LD_SWITCH_X_SITE before the libraries, so
+	it actually has an effect.
+
+	Some makes can't handle form feed characters in their makefiles.
+	* s/usg5-3.h: Remove form feed.
+	* s/template.h, m/template.h: Remove form feeds.
+
+	* xfns.c (select_visual): Include the screen number in the
+	template of things XGetVisualInfo must match.
+
+1993-05-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/dgux.h (NO_GET_LOAD_AVG): Test _M88KBCS_TARGET, not __GNUC__.
+
+	* xterm.c (XTread_socket, ConfigureNotify case):
+	Convert from parent window, not Emacs window.
+	(XTread_socket): Handle ReparentNotify events.
+
+	* m/i860.h: New file.
+
+	* keyboard.c (lispy_function_keys): Add kp-numlock.  Fix kp-backspace.
+
+1993-05-24  Thorsten Ohl  (ohl@chico.harvard.edu)
+
+	* m/next.h (C_SWITCH_MACHINE): Definition deleted.
+
+	* lread.c: Don't #undef NULL.
+
+1993-05-24  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* buffer.c (Fmake_overlay): Put beg and end in the
+	right order.
+	(Fmove_overlay): If beg and end are markers, make sure they're in
+	the right buffer.
+
+1993-05-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (modify_event_symbol): If a name_table elt is null,
+	generate a name to use.  Don't crash.
+
+	* fileio.c (Fread_file_name): If input is empty, do return the default
+	even if !insert_default_directory.
+
+	* xterm.c (XTread_socket): For ConfigureNotify event,
+	translate coordinates if send_event field is false
+	provided the x-coord value is not large.
+
+1993-05-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/irix4-0.h (NO_MATHERR): Defined.
+	* floatfns.c [NO_MATHERR]: Undef HAVE_MATHERR.
+
+1993-05-24  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* fileio.c (Ffile_writable_p): Pass XSTRING (foo)->data to
+	ro_fsys, not XSTRING (foo).
+
+	* xterm.c (x_new_font): Reject fonts with varying spacing.  We
+	don't support them yet.
+	* xfns.c (x_set_font): Report the error message properly.
+
+	* xfns.c (Fx_parse_geometry): No need to call check_x here; it
+	doesn't interact with the server at all, and we need it in order
+	to create our first frame.
+
+1993-05-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/linux.h (HAVE_SETSID): Defined.
+	(HAVE_SOCKETS): Defined.
+
+	* process.c (create_process): Ignore retval from TIOCSTTY.
+	(sys_siglist) [LINUX]: Don't even declare it.
+
+1993-05-24  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* syssignal.h (sys_signal): Declare the second argument to have
+	type signal_handler_t.  We're told this is necessary for Linux.
+
+1993-05-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/dgux.h (NO_GET_LOAD_AVG): Define, if __GNUC__.
+
+1993-05-23  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* s/hpux8.h (NO_SIOCTL_H): Defined.
+
+1993-05-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/linux.h (HAVE_DUP2, HAVE_ALLOCA_H): Deleted.
+
+1993-05-23  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* syssignal.h: Don't #include <signal.h>
+	* alloc.c: #include <signal.h>, but before "config.h".
+
+1993-05-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfaces.c (Fset_face_attribute_internal): Don't call unload_font
+	for the frame's own font.
+
+	* xfns.c (check_x): New function.
+	Call it in almost every Lisp function in this file.
+	(x_set_menu_bar_lines_1): Pass both args in recursive call.
+
+1993-05-23  Paul Eggert  (eggert@twinsun.com)
+
+	* editfns.c (Fcurrent_time_zone): Make `am' an int, not long.
+
+1993-05-23  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	Changes for SGI from Matthew J Brown <mjb@doc.ic.ac.uk>.
+	* m/iris4d.h, m/iris5d.h: Don't use the --cckr CC switch if we're
+	using GCC.
+	* m/iris4d.h (NEED_SIOCTL): Move this to...
+	* s/irix3-3.h (NEED_SIOCTL): ... here; apparently it's not
+	necessary in irix4-0.h.
+	* s/irix4-0.h: Remove declaration of getpty; apparently Irix 4.0
+	already declares this elsewhere.
+	(PTY_TTY_NAME_SPRINTF): #undef this before re-#defining it.
+	* m/ibmps2-aix.h, m/pfa50.h, s/hpux.h, s/isc2-2.h, s/linux.h,
+	s/sco4.h, s/usg5-4.h: Remove HAVE_RENAME; configure guesses that now.
+
+	* config.h.in (LD_SWITCH_X_SITE, C_SWITCH_X_SITE): Change the
+	#defines to #undef's, so ../configure knows it should tweak them.
+
+	* xterm.c (x_scroll_bar_report_motion): Set *TIME whether or not
+	the mouse is over a scroll bar.
+
+	* xfaces.c (Fset_face_attribute_internal): Don't free the frame's
+	normal_gc or reverse_gc.
+
+        * keyboard.c (make_lispy_movement): Deal properly with mouse
+	motion outside of all windows.
+
+	* lisp.h (GLYPH_FACE): Remember that the face portion of a glyph
+	can be 24 bits, not just eight.
+
+1993-05-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xterm.c: Move signal.h and stdio.h before config.h.
+
+	* editfns.c (Fcurrent_time_zone): Assign gmt, instead of init.
+
+1993-05-22  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+        * Version 19.7 released.
+
+	* Makefile.in (SUBMAKEFLAGS): Add CFLAGS to the list.
+
+	* puresize.h [not HAVE_X_WINDOWS] (PURESIZE): Make this 185k,
+	not 196k.  We're actually using ~180k.
+
+	* editfns.c: #include <sys/types.h>, to get time_t for Eggert's
+	changes.
+
+1993-05-22  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (FRAME_SUPPORT): Add mouse.elc, select.elc, scroll-bar.elc.
+
+	* xdisp.c (display_text_line): Highlight in any frame's sel window.
+
+	* keyboard.c (modifier_names): Update to match *_modifier in termhooks.
+
+1993-05-22  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* xterm.c (x_scroll_bar_handle_click): Never grab the scroll bar;
+	that feature requires more support to work correctly.
+
+	* keyboard.c (make_ctrl_char): New function.
+	(read_char): Call it.
+	(kbd_buffer_store_event): Call it to see if the new character is
+	the quit or stop character.
+	(make_lispy_event): Call it.
+
+1993-05-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfns.c (x_window_to_frame): Use XGCTYPE.
+
+1993-05-21  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* process.c (Fopen_network_stream): Deal with older systems, which
+	only have the h_addr field in their struct hostent.
+
+	* systty.h [SYSV_PTYS]: #include <sys/types.h>.  Francesco
+	Potorti` <pot@fly.CNUCE.CNR.IT> says it's necessary on his
+	machine, and it should be harmless.
+
+1993-05-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* sysdep.c (wait_for_termination): Copy code from 18.59
+	(but sans BSD4_1 alternatives).
+
+1993-05-21  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* ymakefile (alloca.o): #define malloc and free to be xmalloc and
+	xfree on the command line of this compilation.
+
+	* s/sco4.h: (TIME_WITH_SYS_TIME): This is no longer needed.
+
+	* s/linux.h: Remove copyright notices by Michael K. Johnson and
+	Rik Faith.  They have both sent in papers now which make their
+	changes public domain.
+
+	* sysdep.c (sys_suspend): Set synch_process_alive, so that
+	wait_for_termination has something to wait for.
+
+1993-05-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xdisp.c (display_text_line): Highlight only in selected window.
+
+	* xfns.c (syms_of_xfns): Don't make Lisp vars
+	x-mode-pointer-shape and x-nontext-pointer-shape.
+
+1993-05-20  Ian Lance Taylor  (ian@cygnus.com)
+
+	* s/sco4.h (SCO): Don't define (no longer needed).
+	(HAVE_SYS_TIME_H): Don't define (set by configure).
+	(TIME_WITH_SYS_TIME): Define.
+
+1993-05-20  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* dispnew.c (preserve_other_columns): Remember to multiply the
+	size argument to bcopy by the size of a glyph.
+
+1993-05-20  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): Reexamine this_command
+	after pre-command-hook runs.
+
+	* xterm.c (x_find_modifier_meanings): If some keys are meta and alt,
+	make them just meta, not alt.
+
+1993-05-19  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	Some time-handling patches from Paul Eggert:
+	* editfns.c (Fcurrent_time_zone): Take an optional argument specifying
+	what (absolute) time should be used to determine the current time zone.
+	Yield just offset and name of time zone, including DST correction.
+	Yield time zone offset in seconds, not minutes.
+	(lisp_time_argument, difftm): New functions.
+	(Fcurrent_time_string): Use lisp_time_argument.
+	* systime.h (EMACS_CURRENT_TIME_ZONE, EMACS_GET_TZ_OFFSET,
+	EMACS_GET_TZ_NAMES): Remove.
+	* config.h.in: Add HAVE_TM_ZONE.
+
+	Some more changes from Michael K. Johnson for Linux.
+	* s/template.h: Mention that you should #define HAVE_TERMIO or
+	HAVE_TERMIOS, but not both, and that HAVE_TERMIOS is preferred.
+	* systty.h (EMACS_SET_TTY_PGRP): Don't assign the return value of
+	tcsetpgrp to *pgid; it's just a status value.
+	* config.h.in (HAVE_RANDOM): This shouldn't be defined on Linux
+	systems using XFree386, and perhaps is inappropriate in general.
+	* m/intel386.h: #undefine the integer size macros, since the Linux
+	<values.h> file #defines them itself.
+	* mem-limits.h (get_lim_data): Linux has the ulimit call; if it
+	fails, fall back on ULIMIT_BREAK_VALUE.
+	* process.c: Linux needs the WAITTYPE, etc. definitions.
+	* unexec.c (hdr, ohdr): Linux has the ordinary `struct exec' type;
+	no need to use SYSV names.
+	* s/linux.h: New file.
+
+	Some changes from Michael K. Johnson for Linux.
+	* sysdep.c (sys_siglist): Don't define this if HAVE_SYS_SIGLIST is
+	#defined.  That lets the system provide it, if it has it.
+	* syssignal.h (sigmask): Only define this if <signal.h> hasn't
+	given us a definition already.
+	* syssignal.h (sys_sigpause): Fix argument in prototype.
+	* sysdep.c (init_signals): The masks are called empty_mask and
+	full_mask, not signal_empty_mask and signal_full_mask.
+	(signal_handler_t): Moved ....
+	* syssignal.h: ... to here.
+	* systty.h (EMACS_SET_TTY_PGRP): Call tcsetpgrp with the correct
+	arguments.
+	* emacs.c (main): Don't try to establish signal handlers for
+	SIGBUS and SIGSYS unless they're actually #defined.
+
+	* systty.h [HAVE_TERMIO, __DGUX]: #include <sys/ioctl.h>.
+
+	* xdisp.c (redisplay_window): Compute the scrollbar start and end
+	properly.
+
+1993-05-19  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (Fcurrent_input_mode): Return META as 3-way flag.
+
+1993-05-19  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* fileio.c (Ffind_file_name_handler): Check that FILENAME is a
+	string.
+
+	* process.c (wait_reading_process_input): Undo change of April
+	29th, since that re-introduces the race condition the comments are
+	warning about.  Call clear_waiting_for_input before calling
+	status_notify, though.
+
+	* process.c (wait_reading_process_input): Don't forget to call
+	clear_waiting_for_input when we exit the loop because process
+	input has arrived.
+
+        Changes for Silicon Graphics Iris 5D.
+	* unexelfsgi.c: New file; like unexelf.c, but tolerates program
+	segments above BSS. 
+	* m/iris5d.h: New file.
+	* s/irix5-0.h: New file.
+	* process.c [__sgi] (allocate_pty): Give up immediately if pty is
+	inaccessible.
+
+1993-05-19  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (follow_key): Check char in range before UPPERCASEP.
+
+1993-05-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfns.c (x_set_menu_bar_lines): Fix typo in last change.
+
+	* keyboard.c (make_lispy_event): Controlify lower case letters too.
+
+1993-05-18  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xdisp.c (display_text_line): If the newline (or C-m, in
+	selective-display) has a non-default face, apply that face to the
+	remainder of the line, so that the fill occupies the entire line.
+
+	* xterm.c (x_new_font): Tell the frame display faces about the
+	newly chosen font.
+
+	Make sure that all the display faces use fonts of the
+	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.
+
+	* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
+	menu bars.
+
+	* keyboard.c (read_key_sequence): Don't lay down an unwind_protect
+	to restore the original buffer until we actually get a mouse click.
+
+	* window.c (window-dedicated-p): Doc fix.
+
+1993-05-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xterm.c (XTread_socket): Turn off ControlMask for XLookupString.
+	* keyboard.c (make_lispy_event): Controlify here.
+
+1993-05-17  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xdisp.c (redisplay_window): Make the scrollbar reflect the
+	extent of the visible region, not the whole buffer.
+
+	* xfaces.c (free_frame_faces): Don't free the resources from the
+	first two faces.
+
+	* lisp.h (malloc, realloc): Declare these to return void *, to
+	avoid conflicts with ANSI header files.
+
+	* sysdep.c (reset_sys_modes): Test the return value of
+	EMACS_SET_TTY properly.
+	* systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Document the return
+	values.
+
+1993-05-16  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* config.h.in (STDC_HEADERS, TIME_WITH_SYS_TIME,
+	CRAY_STACKSEG_END, STACK_DIRECTION): Add #undef clauses for these,
+	since otherwise the autoconf tests in configure.in won't do us
+	much good.
+
+1993-05-16  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* buffer.c (overlays_at): New arg EXTEND.
+	(Foverlays_at, Fnext_overlay_change): Pass 1.
+	* xfaces.c (compute_char_face): Pass 0.
+	Try first with small overlay_vec, then use a big enough one.
+
+	* lread.c (syms_of_lread): Make Vcurrent_load_list ordinary Lisp var.
+	Set up Qcurrent_load_list.
+	(readevalloop): Specbind Qcurrent_load_list instead of ad-hoc saving.
+	(build_load_history): Do nothing when loading pure files.
+
+	* xterm.c (dumpglyphs): Create a temporary merged gc
+	when cursor falls on char with non-default face.
+
+	* xterm.h (x_display): New field cursor_foreground_pixel.
+	* xfns.c (x_set_cursor_color): Set cursor_foreground_pixel.
+
+	* casefiddle.c (casify_region): Remove mistaken arg to record_change.
+
+1993-05-15  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* xfaces.c (Fset_face_attribute_internal): Jolt redisplay, so it
+	knows something has changed.
+
+	* xfaces.c (unload_color): Don't try to unload the standard black
+	or white pixel.
+
+	More changes from David Mackenzie.
+	* ymakefile (emacs): No need to edit srcdir into a lisp file and
+	then load it; we can just take advantage of the PATH_DUMPLOADSEARCH.
+	(crt0.o): Remember that crt0.c is in ${srcdir}.
+
+        Install David Mackenzie's patches to make ${srcdir} work.
+	* Makefile.in (srcdir, VPATH): Get this value from the top-level
+	Makefile.
+	(xmakefile): Use ${srcdir} to find the files from which we produce
+	xmakefile.  Edit the values for srcdir and VPATH into xmakefile.
+	* ymakefile (srcdir, VPATH): New definitions for the Makefile
+	to edit.
+	(ALL_CFLAGS): Remove `-Is' and `-Im'; add `-I${srcdir}', and
+	`-I.'.
+	(emacs): Adjust dumping commands to deal with a separate source
+	directory.
+	(${etc}DOC): Pass `-d ${srcdir}' to make-docfile, to tell it where
+	to find the source files.
+	(prefix-args): Find the source code in ${srcdir}.
+
+	* process.c (wait_reading_process_input): If we're running
+	Solaris, it's not necessary to check if we should redeliver SIGIO,
+	according to David Mackenzie.
+	* s/sol2.h: #include "usg5-4.h", and #define const.
+
+	* systime.h: Borrow CPP sequence from getdate.y to include the
+	proper combination of <time.h> and <sys/time.h>.
+
+1993-05-15  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* window.h (struct window): New slot region_showing.
+	* xdisp.c (mark_window_display_accurate): Set region_showing fields.
+	(redisplay_window): Update region_showing field.
+	(display_text_line): Set region_showing to t if will show one.
+
+	* xselect.c (Fx_selection_exists_p): Handle nil, t as SELECTION arg.
+	Don't die if SELECTION is not recognized.
+
+	* dispnew.c (direct_output_forward_char): Just give up
+	if region is being highlighted.
+
+	* xdisp.c (redisplay, redisplay_window): Don't use the cursor-motion
+	special-case code if the region is or was highlighted.
+	
+	* xfaces.c (compute_char_face): New args REGION_BEG, REGION_END.
+	Don't sort if noverlays is 0 or 1.
+
+	* dispnew.c (direct_output_for_insert): Pass those args.
+	* xdisp.c (display_text_line): Pass those args,
+	describing the region if the mark is transient and active.
+
+1993-05-14  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* buffer.c (Fmove_overlay): If the overlay is in no buffer and the
+	BUFFER argument has been omitted, put it in the current buffer,
+	for symmetry with move-marker.
+
+	* buffer.c (Fdelete_overlay): Make the overlay's markers point
+	nowhere, not at 1.  Do this after calling redisplay_region, so
+	that code knows what section has changed.
+
+1993-05-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xdisp.c (display_menu_bar): Update FRAME_MENU_BAR_ITEMS here.
+	* keyboard.c (command_loop_1): Don't do it here.
+
+	* keymap.c (access_keymap): Handle any length vector.
+	(store_in_keymap): Likewise.
+	(Fcopy_keymap): Likewise.
+
+1993-05-14  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* buffer.c (Foverlay_start, Foverlay_end, Foverlay_buffer,
+	Foverlay_properties): Functions moved here from subr.el.
+
+1993-05-13  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xfaces.c (compute_char_face): When merging the overlays,
+	traverse sortvec, not overlay_vec; the latter isn't the one we
+	sorted.
+
+	* xterm.c (dumpglyphs): Give the cursor higher priority than the
+	face specified by the glyph under it.
+
+	* xterm.c (dumpglyphs): Move the underline up a row.  I dislike
+	the way X addresses pixels.  Quickdraw is much nicer.
+
+	* 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.
+
+	* lisp.h (Lisp_Overlay): New tag.
+	(OVERLAYP): New predicate.
+	(CHECK_OVERLAY): New type-checker.
+	(Qoverlayp): New extern declaration.
+	* buffer.c (Foverlayp): New function.
+	(Qoverlayp): New atom.
+	(overlays_at, recenter_overlay_lists): Abort if we encounter an
+	invalid overlay.
+	(syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp.
+	(Fdelete_overlay): Set the overlay's markers to point nowhere.
+	Use CHECK_OVERLAY instead of signalling a special error.
+	(Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of
+	signalling a special error.
+	(Foverlay_get): Use CHECK_OVERLAY.
+	* fns.c (internal_equal): Define this for overlays.
+	* buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP.
+	* print.c (print): Give overlays their own print syntax.
+	* alloc.c (mark_object): Treat overlays like conses.
+
+	* lisp.h (FLOATP): Define this appropriately when LISP_FLOAT_TYPE
+	is not defined.
+
+	* buffer.c (Foverlay_get): Return Qnil if the requested property
+	is missing from the property list.
+
+        The text property routines can now modify buffers other
+	than the current one.
+	* insdel.c (modify_region): New argument BUFFER.  Select that
+	buffer while we prepare for the modification, and switch back when
+	we're done.
+	* textprop.c (add_properties, remove_properties): Pass
+	the buffer being modified as the first argument to modify_region.
+	* editfns.c (Fsubst_char_in_region, Ftranslate_region): Pass the
+	current_buffer as the first argument to modify_region.
+	* casefiddle.c (casify_region): Same.
+
+	* dispnew.c (direct_output_for_insert): Compute the face of the
+	character we're inserting properly.
+
+	* xterm.c (dumpglyphs): Pass the proper arguments to intern_face.
+
+	* xterm.c (dumpglyphs): Don't increment left twice.
+
+	* intervals.c (set_point): Check for point out of bounds before
+	checking for an empty interval tree. 
+
+	* cmds.c (Fforward_char): Check proposed new position, and then
+	set point, instead of setting point to a potentially invalid
+	position.
+
+	* lread.c, data.c: If STDC_HEADERS is #defined, include <stdlib.h>
+	to get the extern declarations for atof.  That's where it is in
+	POSIX.
+
+1993-05-12  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+        * ymakefile (xfaces.o): Add window.h to the dependencies.
+
+	* xfaces.c (intern_frame_face): Exchange order of arguments, to
+	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.
+
+	* xdisp.c (copy_rope, copy_part_of_rope): Add face argument.
+	(display_text_line): Initialize current_face to zero.   Apply it
+	to characters as we write them to the display matrix.
+	(display_string): Pass the new argument to copy_rope.
+
+	* xdisp.c (display_text_line): Handle the locations of face
+	changes properly.
+
+	* textprop.c (Fnext_single_property_change,
+	Fprevious_single_property_change): Pass arguments to textget in
+	the right order.
+
+	* ymakefile (xfns.o): Remove duplication of buffer.h in dependencies.
+
+	* ymakefile ($(OLDXMENU)): Remove extraneous call to `rm'.
+
+1993-05-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keymap.c (Faccessible_keymaps): Use whatever size the vector has.
+	(Fwhere_is_internal): Likewise.
+	(describe_vector): Likewise.
+	(current_minor_maps): Call Findirect_function, so symbols
+	can be used in place of actual maps.
+
+	* xdisp.c (display_text_line): Use break; to exit loop at eol.
+	Duplicate the short MAKE_GLYPH loop after the main loop.
+	If no display table, do obey selective_display_ellipses.
+	(copy_part_of_rope): Arg FROM is now Lisp_Object *.
+
+	* xfaces.c: Do include window.h.
+	(compute_char_face): Supply third arg of Fget_text_property.
+
+	* keyboard.c (make_lispy_event): Don't set shift modifier for C-^.
+
+	* callproc.c (child_setup): Omit duplicates from new env array.
+
+1993-05-10  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+        * fileio.c (ro_fsys) [SOLARIS_BROKEN_ACCESS]: Check for the
+        filesystem being ro, since Solaris 2.1 doesn't.
+        (file-writable-p): Call ro_fsys.
+	* s/sol2.h (SOLARIS_BROKEN_ACCESS): Define this.
+
+	* systime.h: Use the strategy from getdate.y to include the proper
+	combination of <time.h> and <sys/time.h>.
+
+	* xfns.c (Fx_create_frame): Use an XLFD name for the default font,
+	instead of "9x15" or whatever it was.
+
+	* xdisp.c (display_text_line): Make face-handling code conditional
+	on HAVE_X_WINDOWS macro.  Perhaps this isn't the best approach,
+	but it'll do for now.
+
+	* xdisp.c (display_text_line): We can't use the FRAME_DEFAULT_FACE
+	macro here; that's x-specific.  Just don't pass the second
+	argument.
+	* xfaces.c (compute_glyph_face): Remove the BASIC_FACE argument;
+	use F's default face.
+
+1993-05-09  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xfaces.c (Fmake_face_internal): Do nothing for non-X frames.
+
+	* 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.
+
+	Arrange to tell redisplay about changes in overlays.
+	* 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.
+
+	* 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.
+
+	* xterm.c (x_destroy_window): Call free_frame_faces.
+
+	The GNU coding standards specify that CFLAGS should be left for
+	users to set.
+	* ymakefile (ALL_CFLAGS): Set this to the long string of
+	compilation switches, not CFLAGS.  Changed all uses.
+	(CFLAGS): Make this default to just -g.
+	(.c.o): Define new default rule, to make sure that the right flags
+	get to the compilations.
+
+1993-05-09  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_char): Exit kbd macro if Vexecuting_macro is t.
+
+	* pwd.h: File deleted.
+
+1993-05-08  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* s/sunos4shr.h: Apply changes from David J. Mackenzie; this isn't
+	used by any configuration right now, but he's trying to make it
+	work.
+	#include "sunos4-1.h" instead of "bsd4-2.h".
+	(O_NDELAY): Don't define this.
+	(SYSTEM_MALLOC): Don't define this, either.
+	(LD_SWITCH_SYSTEM): Remove the definition for this.
+
+	* Makefile.in (DEFS): Remove this; we have configure build a
+	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.
+
+1993-05-08  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (do_mouse_tracking): Now static.
+
+	* xmenu.c (Fx_popup_menu): Add a vector of prefix keys for the panes.
+	(keymap_panes): Allocate that vector.
+	(single_keymap_panes): Fill in that vector.
+	(xmenu_show): Return a list of events, not just one event.
+
+	* keyboard.c (read_char_menu_prompt): Expect Fx_popup_menu
+	to return a list of events.  Don't lose any of them.
+
+	* xfns.c (Fx_get_mouse_event, Fx_mouse_events): Code deleted.
+	* window.c (Vmouse_event): Var deleted.
+	(syms_of_window): Don't make it a Lisp var.
+
+        * keyboard.c (read_avail_input, Fset_input_mode): Make
+        meta_key a three-value variable to support 8-bit input.
+
+1993-05-07  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* ymakefile [__GNUC__ && __GNUC__ > 1] (LIB_GCC): Set this even if
+	LINKER is #defined.
+
+	* ymakefile ($(OLDXMENU)): Remove the link before we re-create it;
+	not all versions of ln have the `-f' flag.  Use the LN_S variable,
+	inherited from src/Makefile.
+
+	* Makefile.in (LN_S): New variable, edited by top Makefile.
+	(SUBMAKEFILE): New variable, containing all flags to pass to
+	recursive makes.
+
+	* config.h.in: Adjust this for use by autoconf's AC_CONFIG_HEADER,
+	instead of AC_OUTPUT.
+
+	* xfaces.c (get_display_face): Use face_eql instead of writing it out.
+
+1993-05-06  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keymap.c (Fwhere_is_internal): If FIRSTONLY is non-nil, avoid
+	returning a non-ascii key sequence unless FIRSTONLY is the symbol
+	`non-ascii'.
+
+	* 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.
+
+1993-05-06  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfns.c (x_get_arg): Call Fintern, not intern.
+
+	* systime.h [SCO]: Include time.h.
+	* s/sco4.h: New file.
+
+	* ymakefile (LIBXMENU): Delete -loldX.
+
+	* emacs.c (main): Handle -display like -d.
+
+1993-05-05  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* s/template.h: Explain the relative significance of the SIGIO and
+	INTERRUPT_INPUT macros.
+
+	* ymakefile (buffer.o, insdel.o): Note that these files also
+	depend on blockinput.h.
+
+	* blockinput.h (UNBLOCK_INPUT): We cannot assume that SIGIO is
+	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.
+
+1993-05-04  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* window.c (Fdisplay_buffer): Add space to prompt.
+
+1993-05-04  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* keyboard.c (syms_of_keyboard): Doc fix for
+	extra-keyboard-modifiers.
+
+	* lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
+	CHAR_META): Shift these all up one bit, back to where they were.
+
+1993-05-02  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keymap.c (Fdefine_prefix_command): Doc fix.
+
+	* ymakefile (C_DEBUG_SWITCH): Undo April 10 change.
+
+1993-05-01  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (Fsuspend_emacs): Doc fix.
+
+1993-04-30  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* data.c (Ffset): Refuse to set the function value of t or nil.
+
+1993-04-29  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+        Implement extra_keyboard_modifiers properly.
+	* 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.
+
+	* lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
+	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.
+
+	* 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.
+
+1993-04-29  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (Fthis_command_keys): Doc fix.
+
+	* process.c (wait_reading_process_input): Move the status_notify
+	call before the set_waiting_for_input call.
+
+	* fileio.c (Fexpand_file_name): Undo last change--too risky for now.
+
+	* data.c (Fdefine_function): New function (same code as Fdefalias).
+
+1993-04-28  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* eval.c (do_autoload): Fixed the bug in the autoload-saving code.
+
+1993-04-28  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keyboard.c (Fcurrent_input_mode): New function.
+
+1993-04-27  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* eval.c (un_autoload): Don't try to save old autoload forms when
+	we load something in.  Something about the code now conditioned
+	out by UNLOAD was screwing up ordinary autoloads, notably of
+	picture.el.  When I figure out what, I'll fix and re-enable this
+	code.
+
+1993-04-27  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* buffer.c (syms_of_buffer): Doc fix for buffer-display-table.
+
+	* systime.h: Doc fix.
+	(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.
+
+1993-04-26  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* fileio.c (Fexpand_file_name):
+	Don't remove trailing / from NEWDIR if just "/".
+
+1993-04-26  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/mips.h,
+	m/sps7.h, s/hpux.h, s/usg5-4.h (HAVE_DUP2): Removed; derived by
+	configure script.
+	* s/hpux.h, s/irix3-3.h, s/aix3-1.h (HAVE_GETHOSTNAME): Removed;
+	derived by configure script.
+
+	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.
+
+	* 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.
+
+	* config.h.in (getenv): Don't test THIS_IS_YMAKEFILE to see if we
+	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.
+
+	* dispnew.c (Fsleep_for, Fsit_for): Allow SECONDS to be a
+	floating point value.
+
+1993-04-26  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* sysdep.c (read_pending_input):
+	Fix the garbaged-modifiers bug under System Vs previous
+	to r4.
+
+1993-04-25  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* systty.h (EMACS_GET_TTY, EMACS_SET_TTY): Move these into
+	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.
+
+	* search.c (Freplace_match): Arrange for markers sitting at the
+	beginning or end of the original text to float to the
+	corresponding position in the replacement text.
+
+1993-04-25  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* window.c (Fset-window-buffer):
+	Set horizontal-scrolling on a window to zero when
+	we connect it to a new buffer.
+
+	* buffer.c: Doc fix.
+
+1993-04-24  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	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.
+
+1993-04-23  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* data.c (Fdefine_function):
+	Changed name back to Fdefalias, so we get things
+	in a known-good state.
+
+	* buffer.h (BUF_NARROWED, NARROWED):
+	New macros to test whether a region
+	restriction has narrowed the buffer.
+
+1993-04-17  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* systime.h: Comment fixes.
+
+	* data.c (Fdefine_function): New function.
+
+	* lisp.h (LOADHIST_ATTACH): New macro.
+	(Vcurrent_load_list, Vload_history): Vars declared.
+
+	* eval.c: (defun, defmacro, defvar, defconst):
+	Attach symbol argument to the list of globals for the input source.
+	(do_autoload): Save the old autoloads, in case we ever unload.
+
+	* fns.c (provide, require): Put appropriately-marked
+	conses in the current-globals list.
+
+	* lread.c (readevalloop):
+	New argument is the source file name (or nil if none).
+	All calls changed.  Do the two-step
+	necessary to call build_load_history with the correct current-globals
+	list for the current recursion.
+	(build_load_history): New function.
+	(eval_region, eval_buffer): Call readevalloop with new arg.
+	(load_history): New variable.
+
+1993-04-16  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* lread.c (readevalloop): New argument is the source file name (or
+	nil if none).  All calls changed.  Do the two-step
+	necessary to call build_load_history with the correct current-globals
+	list for the current recursion.
+	(build_load_history): New function.
+	(Feval_region, Feval_buffer): Call readevalloop with new arg.
+	(Vload_history): New variable.
+
+	* fns.c (Fprovide, Frequire): Put appropriately-marked
+	conses in the current-globals list.
+
+	* eval.c (Fdefun, Fdefmacro, Fdefvar, Fdefconst):
+	Attach symbol argument to the list of globals for the input source.
+	(do_autoload): Save the old autoloads, in case we ever unload.
+
+	* data.c (Fdefine_function): New function.
+
+1993-04-16  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* fileio.c (Fmake_symbolic_link): If a file already exists under
+	the link's filename, delete the file which the link
+	would replace, not the file the link would point at.
+
+	* config.h.in (volatile): Don't define this to be the empty string
+	if some file has #defined HAVE_VOLATILE.
+
+	* emacs.c (SEPCHAR): Instead of defining this to be ',' on VMS and
+	':' 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.
+
+1993-04-13  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* s/vms.h (xfree): #define this to emacs_xfree, to avoid case
+	conflict with XFree; on VMS, external symbols are case-insensitive.
+
+	* s/usg5-4.h (HAVE_GETTIMEOFDAY): Deleted; ../configure figures
+	that out now.
+
+	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.
+
+1993-04-12  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* ymakefile ($(OLDXMENU)): Remove $(OLDXMENU) before trying to
+	link in a new version.
+
+	* lisp.h (Qrange_error, Qdomain_error, Qsingularity_error,
+	Qoverflow_error, Qunderflow_error): Add extern to these declarations.
+
+1993-04-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfaces.c: Don't include Xmu/Drawing.h.
+
+1993-04-10  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* Makefile.in (xmakefile): Recognize the -O option with a numeric
+	optimization level.
+
+	* ymakefile (C_DEBUG_SWITCH): If we're using version 2 of GCC or
+	higher, use -O99 instead of plain -O.
+
+1993-04-09  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keyboard.c (command_loop_1): Rebuild menu bar if
+	update_mode_lines is set.
+
+        long_to_cons and cons_to_long are generally useful things; they're
+	needed whether or not X is defined.
+	* xselect.c (long_to_cons, cons_to_long): Moved from here...
+	* data.c    (long_to_cons, cons_to_long): ... to here.
+	* lisp.h    (long_to_cons, cons_to_long): Add extern declaration.
+
+	* xmenu.c (Qmenu_enable): Definition moved...
+	(syms_of_xmenu): ... along with initialization ...
+	* keyboard.c (Qmenu_enable): ... to here ...
+	(syms_of_keyboard): ... and here.
+
+	* keyboard.c (kbd_buffer_get_event): If we get a selection clear
+	or selection request event, but we were compiled without the
+	window-system-specific code to handle it, abort.  Don't try to
+	call a function which doesn't exist.
+
+	* keyboard.c (make_lispy_event): In the code which processes mouse
+	clicks, declare f to be a FRAME_PTR, not a struct frame *; this
+	works when MULTI_FRAME is not #defined.
+
+	* xfaces.c (sort_overlays): Define this to be static, as declared.
+
+	* callproc.c (relocate_fd): Make messages string literals, not
+	initialized arrays.
+
+	* alloc.c (__malloc_hook, __realloc_hook, __free_hook): Declare
+	these extern, not static.  (!)
+
+	* alloc.c (__malloc_hook, old_malloc_hook, __realloc_hook,
+	old_realloc_hook): Declare that the functions these point to return
+	void *, not void.
+
+        Adjust for autoconf merger.
+	* config.h.in: Add extra line to top, in case autoconf gets fixed
+	and decides not to add Makefile-style comments to the top of the
+	files it generates which we are forced to lop off.
+	Indicate that the boolean macros here get their definitions via
+	the DEFS Makefile variable.
+	Adjust the operating system and machine #includes to use
+	autoload's @cookies@.
+	(RETSIGTYPE): Give this a default value.
+	(SIGTYPE): Set this from RETSIGTYPE.
+	(LD_SWITCH_X_SITE, C_SWITCH_X_SITE): Get values via @cookies@.
+	* Makefile.in (DEFS): Renamed from CONFIG_CFLAGS.
+	(xmakefile): Pass CFLAGS to ${CPP}.
+
+	* buffer.c (Fmake_overlay, Fmove_overlay): New optional BUFFER
+	arguments.
+	(recenter_overlay_lists): New argument BUF, to use instead of the
+	current buffer.
+	(Foverlay_recenter): Pass the appropriate arguments to
+	recenter_overlay_lists.
+
+	* buffer.c (Fdelete_overlay): Don't assume that overlay is in the
+	current buffer.  Don't forget to declare the argument a Lisp_Object.
+
+	* dispnew.c (getenv): Extern declaration deleted; this is done in
+	config.h.
+
+	* Makefile.in (tagsfiles): Remove external-lisp from this list of
+	files; we're not distributing it, so the normal build process
+	shouldn't depend on it.
+
+	* dispnew.c (init_display): Compare the return value of getenv to
+	zero before setting display_arg, instead of just using the pointer
+	as a truth value.
+
+1993-04-08  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xdisp.c (message, message1): If noninteractive and
+	cursor_in_echo_area, don't print a newline at end of message.
+
+	* fns.c (Fy_or_n_p): Echo the answer just once, at exit.
+
+	* keyboard.c (echo_dash): Do nothing if echoptr is 0.
+
+	* buffer.c (Fkill_all_local_variables): Store each var's current value
+	in the buffer's alist entry, before reverting to the default value.
+
+1993-04-07  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* keyboard.c (apply_modifiers): Fix typo in sanity check.
+
+	* keyboard.c (interrupt_input_blocked, interrupt_input_pending):
+	Remove `extern' keywords - these are the definitions.
+
+1993-04-07  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* blockinput.h (UNBLOCK_INPUT): Fix typo.
+	(interrupt_input_blocked): Make this signed int.
+
+	* search.c (search_buffer): Fix typo in previous change.
+
+	* insdel.c, buffer.c: Include blockinput.h.
+
+	* xterm.c: Fix typo in comment delimiter.
+
+1993-04-07  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* m/imbrs6000.h: If we're using GCC, define ORDINARY_LINK instead
+	of defining LINKER to use cc.
+	* s/aix3-1.h (LINKER): Don't use cc for linking command if we're
+	using GCC.
+	* s/aix3-2.h (SYSTEM_MALLOC): Undefine this.
+
+	* xterm.c (updating_frame): Declare this extern instead of static,
+	so it's the same variable as the updating_frame in term.c.
+	(XTupdate_begin, XTupdate_end): Don't bother to set
+	updating_frame; the term.c functions take care of that for us.
+
+1993-04-05  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* s/vms.h (EXEC_SUFFIXES): Add definition for this.
+
+1993-03-31  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* xfaces.c: Doc fixes.
+
+	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.
+
+	* keyboard.c (parse_modifiers, apply_modifiers): Make sure we're
+	not trying to create modifier masks using integers which are
+	unrepresentable as lisp values.
+
+1993-03-30  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	New macros NULL_DEVICE and EXEC_SUFFIXES, to give the name of the
+	equivalent of /dev/null, and the suffixes used by executable
+	files.  This is simple, and helps people porting Emacs to other
+	operating systems.
+	* process.h (NULL_DEVICE): Give this a default value.
+	* process.c (Fstart_process): Pass EXEC_SUFFIXES to openp.
+	(Fprocess_send_eof): Use NULL_DEVICE instead of "/dev/null".
+	* callproc.c (Fcall_process): Pass EXEC_SUFFIXES to openp.
+	Use NULL_DEVICE instead of "/dev/null".
+	* s/vms.h (NULL_DEVICE): #define this.
+
+	Rename int-to-string to number-to-string, since it can handle
+	floating-point as well as integer arguments.  subr.el defines the
+	former as an alias for the latter.
+	* data.c (Fnumber_to_string): Renamed from Fint_to_string.
+	(wrong_type_argument): Adjust caller.
+	(syms_of_data): Adjust defsubr.
+	* fns.c (concat): Adjust caller.
+	* lisp.h (Fnumber_to_string): Adjust extern declaration.
+	* mocklisp.c (Finsert_string): Adjust caller.
+	* process.c (status_message): Adjust caller.
+
+1993-03-28  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* systty.h [NO_PTY_H]: Don't include pty.h.
+
+	* m/delta88k.h [USG5_4]: Alternate defining of LIBS_SYSTEM,
+	LIBX11_SYSTEM, HAVE_RANDOM, BSTRING.
+	(NO_PTY_H): Defined.
+
+	* fileio.c (Fwrite_region): Don't fail to set visit_file.
+
+	* keyboard.c (command_loop_1): Clear force_start of selected_window
+	after reading each key sequence.
+	(read_char): Clear Vquit_flag when we return C-g for it.
+
+	* fileio.c (Fexpand_file_name): Default DEFALT at beginning,
+	before expanding it.  But avoid unneeded or infinite recursive expand.
+
+1993-03-26  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* editfns.c (Fchar_equal): Don't ignore high bits of character.
+
+	* fileio.c (Fwrite_region): Set visit_file after expanding file arg.
+	Also expand VISIT arg if specified.
+
+	* frame.c (make_frame): Init face_alist field.
+
+1993-03-25  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* xselect.c (SELECTION_QUANTUM): Don't use XMaxRequestSize on R3;
+	access the display structure directly.
+
+1993-03-25  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* ymakefile (xfns.o): Depend on buffer.h.
+
+	* buffer.h (struct buffer): Field `fieldlist' deleted.
+
+	* search.c (Freplace_match): Clean up criterion about converting case.
+	If old text has any capitalized words, capitalize new text.
+
+	* xfaces.c: New file.
+
+	* ymakefile (XOBJ): Add xfaces.o.
+	(xfaces.o): New target.
+	* emacs.c (main): Call syms_of_xfaces.
+
+	* buffer.h (OVERLAY_START, OVERLAY_END, OVERLAY_VALID): New macros.
+	(OVERLAY_POSITION): Likewise.
+	(searchbuf): Decl deleted--doesn't belong here.
+	Delete include of regex.h for VMS.
+	* dired.c (searchbuf): Declare here.
+
+	* frame.h (struct frame): New field face_alist.
+	* alloc.c (mark_object): Mark face_alist of a frame.
+
+	* ymakefile (xselect.o): Depend on dispextern.h.
+
+	* xterm.h (FRAME_FACES, FRAME_N_FACES, FRAME_DEFAULT_FACE)
+	(FRAME_MODE_LINE_FACE): New macros.
+	(struct x_display): New fields faces, n_faces.
+
+	* dispextern.h (struct face): New fields pixmap_h, pixmap_w.
+	Field `font' is now a pointer.
+
+	* fns.c (Fy_or_n_p): Ensure cursor_in_echo_area = 0 when quit.
+
+1993-03-24  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* dispnew.c (getenv): Add extern declaration.
+
+	* ymakefile (really-oldXMenu): Pass C_SWITCH_SITE and
+	C_SWITCH_SYSTEM to the inferior make as separate flags, instead of
+	passing just C_SWITCH_SITE as CFLAGS.
+
+	* keymap.c (Fkeymapp): Doc fix.
+
+	* xterm.h (x_focus_frame): Add extern keyword to declaration.
+
+	* xterm.c [VMS]: Don't #include <sys/termio.h> and <string.h>.
+	* xfns.c [VMS]: Get the gray_bits from [.bitmaps]gray.xbm.
+	* process.c [VMS] (DCL_PROMPT): Remove hack.
+	(WIFSTOPPED, WIFSIGNALED, WIFEXITED, XRETCODE, WSTOPSIG,
+	WCOREDUMP, WTERMSIG): New dummy definitions.
+	(deactivate_process): Add missing semicolon.
+	* dispnew.c (init_display): Get display name from environment
+	properly on VMS as well as Unix.
+
+1993-03-24  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* buffer.c (init_buffer_once, reset_buffer):
+	Delete last vestige of fieldlist slot.
+	(Fregion_fields): Finally deleted.
+
+	* keymap.c (push_key_description): Ignore bits above meta_modifier.
+
+1993-03-23  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* buffer.c (overlays_at, recenter_overlay_lists): New functions.
+	(Fmake_overlay, Fdelete_overlay, Foverlay_get, Foverlay_put): Likewise.
+	(Fmove_overlay, Foverlays_at, Fnext_overlay_change): Likewise.
+	(Foverlay_lists, Foverlay_recenter): Likewise.
+
+	* buffer.h (struct buffer): New fields overlay_center,
+	overlays_before, overlays_after.
+
+1993-03-23  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* config.h.in (HAVE_XFREE386): New flag, set by configure script.
+	If it's set, #define LIBX11_SYSTEM and HAVE_RANDOM as appropriate
+	for XFree386.
+	* sysdep.c (random, srandom): Don't define these if HAVE_RANDOM is
+	#defined.
+
+	* config.h.in (C_SWITCH_X_SITE, LD_SWITCH_X_SITE): New flags.
+	* ymakefile (C_SWITCH_X_SITE, LD_SWITCH_X_SITE): Provide default
+	values.  Include C_SWITCH_X_SITE in CFLAGS, include
+	LD_SWITCH_X_SITE in LIBX, and pass C_SWITCH_X_SITE to the make
+	which builds the X Menu library.
+
+1993-03-22  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
+	(Fx_color_defined_p): Renamed from Fx_defined_color.
+	(syms_of_xfns): Adjusted.
+
+1993-03-22  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* indent.c (current_column, Findent_to, position_indentation): 
+	(Fmove_to_column, compute_motion): Allow tab_width up to 1000.
+
+	* xdisp.c (display_string, display_text_line):
+	Allow tab_width up to 1000.
+
+	* keyboard.c (Fsuspend_emacs):
+	Change suspend-hooks back to suspend-hook and make it a normal hook.
+
+	* s/dgux.h: Decide automatically whether to use COFF or ELF.
+
+1993-03-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fns.c (Fy_or_n_p): Handle `recenter' response type.
+
+	* s/dgux.h (HAVE_TERMIO, SIGNALS_VIA_CHARACTERS): Defined.
+
+1993-03-21  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* frame.c (Fhandle_switch_frame): Renamed from Fselect_frame.
+	Doc changed in anticipation of new purpose.
+	(Fselect_frame): Just call Fhandle_switch_frame for now.
+
+1993-03-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xdisp.c (decode_mode_spec): Handle `%l'.
+	(display_count_lines): New function.
+	(redisplay_window): Update base_line_number and base_line_pos fields.
+	Always update mode line if it's an integer.
+	* window.h (struct window):
+	New fields base_line_number and base_line_pos.
+
+	* window.c (Fselect_window): Use Fhandle_switch_frame.
+	(Fset_window_configuration): Likewise.
+
+1993-03-20  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	Use the `visiblity' parameter to determine the initial state of
+	the frame, instead of the `iconic-startup' and
+	`suppress-initial-map' parameters.
+	* xfns.c (x_icon): Test the Qvisibility parameter against Qicon,
+	instead of the Qiconic_startup against Qt.
+	(x_create_frame): Test Qvisibility against Qnil and
+	Qicon, instead of testing Qsuppress_initial_map and Qvisibility.
+	(Qicon): New symbol.
+	(Qiconic_startup, Qsuppress_initial_map): Removed.
+	(syms_of_xfns): Adjusted appropriately.
+
+	* xfns.c (x_set_visibility): Instead of interpreting only Qt as
+	`make the frame visible' and everything else as `iconify the
+	frame', interpret Qicon as `iconify the frame' and everything else
+	as `make the frame visible.'
+
+	* xfns.c (x_get_arg): When the type of the resource is `symbol',
+	return `true' and `on' as Qt, and `false' and `off' as Qnil.
+
+1993-03-20  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emacs.c (init_cmdargs): Fix simple bug in previous change.
+
+1993-03-20  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* dispnew.c (Fsleep_for): Make this take two arguments SECONDS and
+	MILLISECONDS, which add, rather than a second argument which says
+	"treat the first argument as milliseconds."
+	(Fsit_for): Same thing.
+	(Fsleep_for_milliseconds): Deleted; this can be done with Fsleep_for.
+
+	* process.c (wait_reading_process_input): Doc fix.
+
+	* systime.h (EMACS_HAS_USECS): #define this if HAVE_TIMEVAL is
+	#defined.
+
+	* dispnew.c (sit_for): Doc fix.
+
+	* sysdep.c (reset_sys_modes): Fix usage of EMACS_SET_TTY.
+
+	* callproc.c (child_setup): Make sure that in, out, and err are
+	not less than three.
+	(relocate_fd): New function.
+
+	* xterm.c (x_term_init): If the X connection is already in file
+	descriptor zero, don't dup it and close the old one.
+
+	* s/hpux8.h, s/sunos4-1.h (OLDXMENU_OPTIONS): Define this, as in
+	Emacs 18.
+
+	* xfns.c (Fx_open_connection): If we have X11R5, use
+	XrmSetDatabase to set the display's database.  In older versions,
+	just store the value into x_current_display->db.
+	* xterm.h (HAVE_X11R5): Define this where appropriate.
+
+	* frame.c (Fraise_frame, Flower_frame): Renamed from
+	Fframe_to_front and Fframe_to_back.
+	(syms_of_frame): Adjusted appropriately.
+
+	* fileio.c (HAVE_FSYNC): Define, if appropriate.
+	(Fwrite_region): Use HAVE_FSYNC.
+	* s-aix3-2.h (HAVE_FSYNC): Define.
+
+	* emacs.c (Finvocation_name): New function.
+	(Vinvocation_name): New variable.
+	(init_cmdargs): Set it.
+	(syms_of_emacs): defsubr Finvocation_name, staticpro and
+	initialize Vinvocation_name.
+	* lisp.h (Vinvocation_name): New extern declaration.
+	* xterm.c (invocation_name): Variable deleted; use
+	Vinvocation_name now.
+	(x_text_icon, x_term_init): Use Vinvocation_name now instead of
+	invocation_name.
+	(x_term_init): Don't initialize invocation_name.
+	(syms_of_xterm): Don't initialize or staticpro invocation_name.
+	* xfns.c (invocation_name): Remove extern declaration for this.
+	[HAVE_X11] (Fx_get_resource): Use Vinvocation_name now instead of
+	invocation_name.
+	[not HAVE_X11] (Fx_get_default): Same.
+
+1993-03-20  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* xfns.c (Fx_display_color_p): Renamed from Fx_color_display_p.
+	(syms_of_xfns): Use new name in defsubr.
+
+1993-03-19  Eric S. Raymond  (eric@geech.gnu.ai.mit.edu)
+
+	* Makefile.in (unlock, relock): New productions to assist with
+	version control.
+
+1993-03-19  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* fileio.c (Fvisited_file_modtime): New function.
+	(Fset_visited_file_modtime): Accept an argument specifying time value.
+	If arg is nil, really use the filename handler.
+
+	* xselect.c (cons_to_long, long_to_cons): No longer static.
+
+1993-03-18  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* frame.h (FOR_EACH_FRAME): Change the definition so that
+	FRAME_VAR is a lisp object. 
+	* dispnew.c (WINDOW_CHANGE_SIGNAL, do_pending_window_change):
+	Adjusted appropriately.
+	* xdisp.c (redisplay): Adjusted appropriately.
+
+	* dispnew.c (Fredraw_frame): Give this appropriate definitions for
+	MULTI_FRAME and non-MULTI_FRAME configurations.
+	(Fredraw_display): Give this a non-MULTI_FRAME-dependent definition.
+
+1993-03-18  Richard Stallman  (rms@geech.gnu.ai.mit.edu)
+
+	* lisp.h (CHECK_LIVE_WINDOW): Use Qlive_window_p.
+
+	* xfns.c (x_screen): Make this var file scope.
+	(Fx_server_version): Use Fcons, not list3.
+
+1993-03-17  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* xterm.c (term_get_fkeys): Less klugey version of the last fix.
+
+	* Makefile.in (versionclean): New production nukes binaries and
+	DOC files, forcing a re-load, re-dump and re-makedoc.
+
+1993-03-17  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c: Doc fix.
+
+1993-03-17  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xterm.c (x_display_box_cursor, x_display_bar_cursor): Don't
+	display the cursor on garbaged frames.
+
+1993-03-17  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* term.c (term_get_fkeys) Supply second args for all tgetstr calls.
+
+1993-03-17  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* process.c (Fprocess_send_eof): Make sure proc is running.
+
+	* s/irix4-0.h (_getpty): Declare this, not _get_pty.
+
+1993-03-16  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfns.c (Fx_server_vendor, Fx_server_version, Fx_display_pixel_width)
+	(Fx_display_pixel_height, Fx_display_mm_width, Fx_display_mm_height)
+	(Fx_display_screens, Fx_display_planes, Fx_display_color_cells)
+	(Fx_display_visual_class, Fx_display_backing_store)
+	(Fx_display_save_under): New functions.
+	(x_screen_count, Vx_vendor, x_release, x_screen_height_mm)
+	(x_screen_width_mm, Vx_backing_store, x_save_under, Vx_screen_visual)
+	(x_visual_strings): Vars deleted.
+	(Fx_open_connection): Don't init those vars.
+	(syms_of_xfns): Set up new functions.
+	Don't set up those vars as Lisp vars.
+	Nor x-screen-width and x-screen-height.
+
+1993-03-16  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+        * cmds.c (overwrite_binary_mode): Deleted; this implements the
+	wrong feature.
+	(Qoverwrite_mode_binary): New variable.
+	(internal_self_insert): If current_buffer->overwrite_mode is
+	`overwrite-mode-binary', do as overwrite_binary_mode used to.
+	(syms_of_cmds): Remove defvar of overwrite_binary_mode; initialize
+	Qoverwrite_mode_binary.
+	* buffer.c (syms_of_buffer): Doc fix for overwrite_mode.
+	* buffer.h (struct buffer): Doc fix.
+
+	Rename `live-window-p' to `window-live-p', for consistency with
+	`frame-live-p'.
+	* window.c (Fwindow_live_p): Renamed from Flive_window_p.
+	* lisp.h (CHECK_LIVE_WINDOW): Change to use Qwindow_live_p.
+	(Qwindow_live_p): Extern declaration renamed fom Qlive_window_p.
+
+1993-03-16  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xmenu.c (xmenu_show): Do BLOCK_INPUT; unblock just before returning.
+
+	* xterm.h [SIGIO] (UNBLOCK_INPUT): Resignal if x_pending_input.
+
+1993-03-15  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* frame.c (Fframe_height, Fframe_width): Fix doc strings to match
+	those of the multi-frame versions in frame.el.  Accept an optional
+	argument FRAME, also for consistency.
+
+	* floatfns.c (logb): Add extern declaration for this.
+
+	* floatfns.c (Flogb): Under SYSV, implement this using frexp.
+
+1993-03-15  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (dispnew.o): Depend on termhooks.h.
+
+	* xmenu.c (list_of_items): Allow strings among the alist items;
+	they make nonselectable lines.
+
+1993-03-14  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* dired.c (Fdirectory_files): Recompile MATCH (if specified) after
+	expanding the file name and all; those might compile regexp of
+	their own, and change searchbuf.
+
+	* keyboard.h (internal_last_event_frame): This should be extern,
+	dummy.
+
+	* fns.c (Fy_or_n_p): Display the answer.
+
+	Some VMS changes from Richard Levitte <levitte@e.kth.se>:
+	* [VMS] systime.h: Include vmstime.h.  VMS has the timezone
+	variable and the tzname array.
+	* s/vms.h: VMS does have select.
+	mth$dmod is the same as Unix's drem.
+	Use the time functions in vmstime.c.
+	No need to rename the malloc routines if we're using GNU malloc.
+	PURESIZE needs to be 330000.
+	* vmstime.c, vmstime.h: New files.
+	* systty.h: Don't try to initialize extern declarations under VAX C.
+	* vmspaths.h (PATH_LOADSEARCH): Include EMACS_LIBRARY:[LOCAL-LISP]
+	in PATH_LOADSEARCH.
+	(PATH_EXEC): Use EMACS_LIBRARY:[LIB-SRC] instead of [ETC].
+	* sysdep.c [VMS] (init_sys_modes): Don't allocate process_ef.
+	[VMS] (queue_kbd_input): Build events structure correctly.
+	[VMS] (gethostname): New function.
+	[VMS] (getwd): Don't get the PATH environment variable; that's
+	dumb.  Call getcwd.
+
+1993-03-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xdisp.c (display_menu_bar): Assume FRAME_MENU_BAR_ITEMS already set.
+	Fill out line with spaces.
+	Put explicit spaces between items.
+	* keyboard.c (command_loop_1): Set FRAME_MENU_BAR_ITEMS here.
+
+	* window.c (Fdelete_other_windows): Handle FRAME_MENU_BAR_LINES.
+
+	* keyboard.c (menu_bar_items): Reverse the list when done.
+
+	* xmenu.c (single_keymap_panes): When storing in ENABLES,
+	check def before enabled.
+
+	* ymakefile (really-oldXMenu): Renamed from ${oldXMenudir}$(OLDXMENU).
+	Add @true.
+	($(OLDXMENU)): Depend on really-oldXMenu.
+	The idea is to make sure libXMenu11.a is always updated if nec.
+
+	* keyboard.c (command_loop_1): Typo calling Qrecompute_lucid_menubar.
+	(read_key_sequence): Likewise.  Also fix call to Vrun_hooks.
+
+1993-03-13  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* ymakefile (YMF_PASS_LDFLAGS): Doc fix.
+
+1993-03-13  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* print.c (PRINTPREPARE): Handle marker that points nowhere.
+
+	* apollo.h (NO_X_DESTROY_DATABASE): Defined.
+
+	* undo.c (record_property_change, record_delete, record_insert):
+	Don't make boundary or touch last_undo_buffer if cur buf has no undo.
+
+	* ymakefile [__GNUC__ > 1]: Delete the conditional for GCC 2.4.
+	[__GNUC__ > 1] (LIB_GCC): Use -print-libgcc-file-name to find libgcc.a.
+	(YMF_FIND_LIBGCC_A): Definitions and uses deleted.
+
+1993-03-13  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* s/usg5-4.h: Remove extraneous text after #undef LIB_X11_LIB.
+
+1993-03-13  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xterm.c (Xatom_wm_change_state): Define here.
+	* xfns.c (Xatom_wm_change_state): Just declare.
+	(Xatom_emacs_selection, Xatom_clipboard, Xatom_clipboard_selection):
+	(Xatom_wm_change_state, Xatom_incremental, Xatom_multiple):
+	(Xatom_targets, Xatom_timestamp, Xatom_delete, Xatom_insert_selection):
+	(Xatom_pair, Xatom_insert_property, Xatom_text): Decls deleted.
+	(x_begin_selection_own): Decls deleted.
+	(Fx_open_connection): Set up only the wm atoms here.
+	Call Xatoms_of_xselect.
+
+	* dispnew.c: Include termhooks.h.
+
+	* frame.h (FRAMEP): Macro deleted.
+
+	* xselect.c: Total rewrite, derived from Lucid's version.
+
+	* keyboard.c (kbd_buffer_get_event): Handle selection_clear_event
+	and selection_request_event events.
+
+	* xterm.c (XTread_socket): Handle NEW_SELECTIONS alternative:
+	queue events for SelectionRequest and SelectionClear;
+	call functions for SelectionNotify and PropertyNotify.
+
+	* termhooks.h (selection_request_event, selection_clear_event):
+	New event kinds.
+
+	* xterm.h (SELECTION_EVENT_DISPLAY): New macro.
+	(SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION)
+	(SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY)
+	(SELECTION_EVENT_TIME): New macros.
+	(struct selection_input_event): New structure.
+
+	* process.c (wait_reading_process_input): New option to wait
+	till a given cons cell has a non-nil car.
+	Delete vipc conditionals.
+
+1993-03-12  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* ymakefile (YMF_FIND_LIBGCC_A): New macro, to help GCC find
+	libgcc.a even when -nostdlib is in effect.  Define it to be the
+	empty string if nobody else establishes a value for it.
+	(temacs): Include it in the list of flags passed to the linker.
+
+	* ymakefile (LINKER): If we have GCC 2.4 or later, use the
+	-nostartfiles option instead of -nostdlib.
+	(LIBGCC): Under GCC 2.4 or later, define this to be the empty string.
+
+1993-03-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xmenu.c (xmenu_show): New arg enable_list.
+	(keymap_panes): New arg enables
+	(single_keymap_panes): New arg enables.  Fill in its contents.
+	(list_of_panes, list_of_items): New arg enables.  Fill in contents.
+	(Fx_popup_menu): Pass enable and enable_list args.
+	(single_keymap_panes): Set enable flag to -1 if cmd definition is nil.
+
+	* lisp.h (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
+	(COMPILEDP, BUFFERP, SUBRP, PROCESSP, FRAMEP, WINDOWP): New macros.
+	(WINDOW_CONFIGURATIONP, FLOATP): New macros.
+
+1993-03-12  Paul Eggert  (eggert@twinsun.com)
+
+	* cmd.c (internal_self_insert): Check that tab_width does not
+	exceed 20, to be consistent with indent.c and xdisp.c.
+
+1993-03-12  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* term.c (CONDITIONAL_REASSIGN): fixed reference to tigetstr.
+	This should have been tgetstr, but I typoed and tigetstr happens
+	to link and even do the right thing if you're on a System V box.
+
+1993-03-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): Support Vcurrent_menubar
+	and Qactivate_menubar_hook.  Call Qrecompute_lucid_menubar.
+	(syms_of_keyboard): Set up Vcurrent_menubar, Vprevious_lucid_menubar,
+	Qactivate_menubar_hook, and Qrecompute_lucid_menubar.
+
+	* xmenu.c (Fx_popup_menu): Allow a frame instead of a window, in arg.
+	Use Fcar, Fcdr when extracting from event, to check data types.
+
+1993-03-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* frame.h (FRAME_MENU_BAR_ITEMS): New macro (two versions).
+	(struct frame): New field menu_bar_items.
+	* alloc.c (mark_object): Mark the menu_bar_items field.
+
+	* xdisp.c (display_menu_bar): New function.
+	(redisplay_window): Call display_menu_bar.
+
+	* term.c (tigetstr): Add dummy definition to make Emacs link again.
+
+	* keyboard.c (syms_of_keyboard): Set up Qmenu_bar.
+	(menu_bar_items): New function.
+	(menu_bar_one_keymap, menu_bar_item): New functions.
+	(make_lispy_event): Handle menu bar events.
+	(read_key_sequence): Make dummy prefix `menu-bar' for menu bar events.
+
+1993-03-11  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
+
+	* term.c (fkey_table): Added many more keycap cookies to the
+	fkey_table; it now supports the full intersection of the set of X
+	keysyms and terminfo capabilities.  See my lisp directory
+	ChangeLog entry for this date, and lisp/term/README, for details.
+
+1993-03-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* floatfns.c (Flogb): Fix use of IN_FLOAT.
+	Fix arg names.  Don't confuse Lisp_Object with integer.
+
+1993-03-11  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* process.c (process_send_signal): In the TERMIOS code for sending
+	control characters to processes, don't try to return Qnil; just
+	return.
+
+1993-03-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dispnew.c (change_frame_size): Handle FRAME_MENU_BAR_LINES.
+
+	* frame.c (Fframe_parameters): Report menu-bar-lines parm.
+	(syms_of_frame): Set up Qmenu_bar_lines.
+
+	* frame.h (FRAME_MENU_BAR_LINES): New macro.
+	(struct frame): New field menu_bar_lines.
+
+	* xfns.c (x_frame_parms): Add elts for visibility and menu-bar-lines.
+	(enum x_frame_parm): Likewise.
+	(x_set_menu_bar_lines, x_set_menu_bar_lines_1): New functions.
+	(x_set_visibility): New function.
+	(Fx_create_frame): Handle menu-bar-lines parm.
+	(x_report_frame_params): Report Qvisibility.
+	(syms_of_xfns): Set up Qvisibility.
+
+	* keyboard.c (command_loop_1): Typo in last change.
+
+	* xmenu.c (syms_of_xmenu): Set up Qmenu_enable.
+	(single_keymap_panes): Test menu-enable property of symbol
+	to decide whether to include it in the menu.
+
+1993-03-10  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (command_loop_1): Adjust to the fact that display
+	tables are now vectors of vectors, not vectors of strings.
+
+1993-03-10  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* floatfns.c (Flogb): Undo the change of Feb 22.
+
+	* ymakefile (OLDXMENU): Don't assume that we have symbolic links
+	available; use `ln -f' instead of `ln -s'.
+
+	* xterm.c (x_find_modifier_meanings): XDisplayKeycodes only
+	appeared in X11R4; for earlier versions, just access the members
+	of the Display directly.
+
+	* xrdb.c (get_user_db): Since xrdb.c doesn't #include xterm.h,
+	we can't test HAVE_X11R4 to see how we should get the resource
+	manager string; cheat.
+
+	* unexec.c (copy_text_and_data): Error message tweaked.
+
+	* systime.h (timezone): Add an explicit declaration for this
+	variable under USG 5-4.
+
+	* sysdep.c (read_input_waiting): Set e.frame_or_window, not
+	e.frame; the latter doesn't exist anymore.
+
+	* sysdep.c (start_of_data): If ORDINARY_LINK is #defined, we don't
+	have the data_start symbol defined, so we'll just use the address
+	of environ.
+
+	* s/usg5-4.h: Changes from Eric Raymond:
+	If we're doing ordinary linking, define LIB_STANDARD appropriately.
+	Give LIBS_DEBUG a null definition; usg5-4 has no -lg.
+	#define LIBS_STANDARD as "-lc"; usg5-4 has no -lPW.
+	#define NSIG, if it's not already defined.
+	#define HAVE_TERMIOS instead of HAVE_TCATTR.
+	Provide our own definition of LIB_X11_LIB.
+
+	* s/usg5-3.h (LIBX11_SYSTEM): Eric Raymond says the libraries here
+	were slightly wrong.
+
+	* m/intel386.h (LIB_STANDARD): If USG5_4 is #defined, there's no
+	need to include `-lPW'; that has been merged with `-lc'.
+
+	* emacs.c (__do_global_ctors, __do_global_ctors_aux,
+	__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__, __main): Don't
+	define these if ORDINARY_LINK is #defined; in that case, the
+	standard linking procedure will find definitions for these.
+
+	* syssignal.h (sigunblock): Add definition which works under SYSVr4.
+	* emacs.c (fatal_error_signal): Unblock the signal which we're
+	handling using sigunblock.
+
+1993-03-09  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xfns.c (x_make_gc): Don't forget to block X input around the
+	X calls in this function.
+
+	* xfns.c [not HAVE_X11R4] (select_visual): It's v->visualid, not
+	x->visualid.  x isn't defined.
+
+	* m/template.h, s/template.h: Mention that `etc/MACHINES' and
+	`configure' should be updated whenever support for a configuration
+	is added or improved.
+
+	* process.c [! subprocesses] (wait_reading_process_input):
+	Remember to re-enable polling for input.
+
+	* keyboard.c [POLL_FOR_INPUT] (quit_throw_to_read_char): If
+	we're polling for input, abort; input polling should always be
+	suppressed while we're waiting for input.
+
+	* keyboard.c (interrupt_signal): Remove extern declaration of
+	Vwindow_system; this is no longer used.
+
+1993-03-09  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* editfns.c (Fcurrent_time_string): Optional arg specifies time.
+
+	* keymap.c (Fdefine_key): Use proper meta-bit to clear.
+
+	* intervals.c (set_point): Check invisibility of following character,
+	not previous character.
+
+	* floatfns.c (FLOAT_CHECK_ERRNO): Define unless NO_FLOAT_CHECK_ERRNO.
+
+	* floatfns.c: Changes from Lucid.
+	(HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CATCH_SIGILL): New parm macros.
+	(FLOAT_CHECK_DOMAIN, HAVE_RINT): New parm macros.
+	(HAVE_INVERSE_HYPERBOLIC, HAVE_CBRT): New parm macros.
+	[!HAVE_RINT]: Define rint as macro.
+	(IN_FLOAT): Major rewrite; several alternate versions.
+	(IN_FLOAT2): New macro.
+	(arith_error, range_error, domain_error, domain_error2): New macros.
+	(Facos, Fasin, Fatan, Fcos, Fsin, Ftan, Fexp, Fexpt, Flog): Changed.
+	(Flog10, Fsqrt, Fabs, Ffloat, Flogb): Changed.
+	(Ffloor, Fceiling, Fround, Ftruncate): Changed.
+	(Fcube_root): Renamed from Fcbrt.
+	(matherr): New function.
+	(float_error): Only if FLOAT_CATCH_SIGILL.
+
+	* fns.c (Fy_or_n_p): Use query-replace-map.
+
+	* keymap.c (access_keymap): Handle ints beyond the ASCII range.
+	(store_in_keymap): Likewise.
+	(Faccessible_keymaps): Use meta_modifier.
+	Use vectors for the key sequences.
+	(Fwhere_is_internal): Use meta_modifier.
+	(append_key): Always return a vector.
+
+	* lisp.h (Qrange_error, Qdomain_error, Qsingularity_error):
+	(Qoverflow_error, Qunderflow_error): New vars.
+
+	* data.c (syms_of_data) [LISP_FLOAT_TYPE]: Define new error conditions:
+	Qarith_error, Qrange_error, Qdomain_error,
+	Qsingularity_error, Qoverflow_error, Qunderflow_error.
+
+1993-03-08  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* systty.h: Define HAVE_TCATTR based on HAVE_TERMIOS earlier.
+	(struct emacs_tty): Separate the struct decl
+	from the EMACS_..._TTY... macro definitions.
+	Use HAVE_TCATTR to decide whether to use `struct termios'.
+
+	* xfns.c (Fx_pixel_width, Fx_pixel_height): Fns deleted.
+	(syms_of_xfns): Don't install them.
+	(x_user_set_name): Function deleted.
+	(x_char_height, x_char_width): New functions.
+
+	* frame.c (Fframe_char_height, Fframe_char_width):
+	(Fframe_pixel_height, Fframe_pixel_width):
+	New functions, two versions of each.
+	[MULTI_FRAME] (syms_of_frame): Make them Lisp functions.
+	[!MULTI_FRAME] (syms_of_frame): Likewise.  Also Fselected_frame.
+
+	* xterm.c (XTread_socket):
+	Don't reverse the chars that XLookupString returns.  Use all of them.
+	Save last 100 chars and keysyms in temp_buffer.
+
+1993-03-07  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* buffer.c (syms_of_buffer): Make erase-buffer a disabled command.
+
+1993-03-07  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (keyboard.o): Depend on intervals.h.
+	(keymap.o): Depend on termhooks.h.
+
+	* keyboard.c: Include intervals.h.
+	(read_key_sequence): Use get_local_map.
+
+	* textprop.c (Fget_text_property): Use textget.
+	(Fnext_single_property_change): Likewise.
+	(Fprevious_single_property_change): Likewise.
+
+	* intervals.c (textget): Handle categories.
+	(get_local_map): New function.
+	(verify_interval_modification): Call textget correctly.
+
+	* textprop.c (syms_of_textprop): Set up Qcategory, Qlocal_map.
+	* intervals.h: Declare those vars.  Declare textget, get_local_map.
+
+	* keymap.c: Include termhooks.h.
+	(push_key_description): Handle all modifiers.
+	Handle large character codes.
+	(Fkey_description): Move the meta bit, if arg is string.
+	(Fsingle_key_description): Don't alter integer value.
+	Make tem long enough.
+
+	* keyboard.c (read_key_sequence):
+	Use meta_modifier for meta keys when handling function_key_map.
+
+	* lread.c (syms_of_lread): Set up Qascii_character.
+	(Fread_char, Fread_char_exclusive): Use that property
+	to convert symbols like tab, return, M-return,... to ASCII.
+
+	* keyboard.c (follow_key): Downcase shift_modifier as well as ASCII.
+	(command_loop_1): Run pre-command-hook and post-command-hook.
+	Set this_command before running pre-command-hook.
+	(syms_of_keyboard): Set up vars for those hooks.
+
+	* buffer.c (reset_buffer_local_variables): Reset mark_active.
+	(syms_of_buffer): New buffer-local var `mark-active'.
+	(init_buffer_once): Initialize mechanism for it.
+
+1993-03-06  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* dispnew.c (init_display): Initialize Vwindow_system.
+
+	* ymakefile (SHELL): No need to set this twice; remove one.
+
+	* emacs.c (main): SIGIOT isn't defined on all systems; don't set
+	its signal handler unless it is.
+
+	* sysdep.c (init_baud_rate): Use input_fd, instead of fd; the
+	latter is undefined.
+
+	* dired.c (NAMLEN): Never use d_nameln to get the length of the
+	directory entry's name; it is used inconsistently.  Always call
+	strlen instead.
+
+1993-03-06  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (syms_of_keyboard): Handle gaps in modifier_names.
+	(modifier_names): Reorder to match termhooks.h.
+
+	* keyboard.c (parse_modifiers_uncached): Detect `s-', not `super-'.
+	(apply_modifiers_uncached): Make `s-', not `super-'.
+
+	* lread.c: Include termhooks.h.
+	(read_escape): Handle \H, \A, \s.  Use ..._modifier.
+	* ymakefile (lread.o): Depend on termhooks.h.
+
+	* termhooks.h (alt_modifier, super_modifier, hyper_modifier):
+	(shift_modifier, ctrl_modifier, meta_modifier):
+	Renumber the bits.
+	* keyboard.c (make_lispy_event): For ASCII event, the ..._modifier
+	bits are the right bits to return.
+
+	* keyboard.c (lispy_function_keys): Add codes starting at 0xff00
+	and running through 0xffff.
+
+	* xterm.c (x_alt_mod_mask, x_super_mod_mask, x_hyper_mod_mask):
+	New variables.
+	(x_find_modifier_meanings): Set them.
+	(x_convert_modifiers): Check for them.
+	(XTread_socket): Handle BackSpace, etc, function keys.
+
+	* keyboard.c (read_char): Move metabit when fetching from string macro.
+
+	* callint.c (check_mark): Error if mark is not active.
+
+	* editfns.c (save_excursion_save): Save mark_active of buffer.
+	(save_excursion_restore): Restore mark_active of buffer.
+	Run activate-mark-hook if it's on, or deactivate-mark-hook
+	if it turns off.
+	(region_limit): Error if mark inactive, if transient-mark-mode.
+
+	* insdel.c (prepare_to_modify_buffer): Set Vdeactivate_mark.
+
+	* keyboard.c (command_loop_1): Clear Vdeactivate_mark before cmd.
+	Clear mark_active if command set Vdeactivate_mark.
+	Run deactivate-mark-hook at that time, or activate-mark-hook.
+	(syms_of_keyboard): Define variable deactivate-mark.
+
+	* buffer.c (syms_of_buffer): New buffer-local var `mark-active'.
+	(init_buffer_once): Initialize mechanism for it.
+
+	* buffer.h (struct buffer): New field mark_active.
+
+	* intervals.c (verify_interval_modification): Handle insertions
+	specially.  For non-insertions, check only the chars being changed.
+	`modification-hooks' property is now a list of functions.
+	(set_point): Ignore chars outside current restriction.
+
+	* textprop.c (Qmodification_hooks): Renamed from Qmodification.
+	(syms_of_textprop): Changed accordingly.
+
+	* keyboard.c (syms_of_keyboard): New lisp var unread-command-char.
+	(Finput_pending_p): Test unread_command_char.
+	(Fdiscard_input, quit_throw_to_read_char, init_keyboard): Set it.
+	(read_char): Fetch from it.
+
+1993-03-05  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* textprop.c (Fadd_text_properties): Initialize the modified flag.
+	Use a "for (;;)" loop at the end of the function, to indicate that
+	all exiting is taken care of inside the loop.
+	(Fremove_text_properties): Same.
+
+1993-03-05  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (LIB_MATH): Delete -lc, since duplicates LIB_STANDARD.
+
+	* buffer.c (check_protected_fields): Variable deleted.
+	(syms_of_buffer): Delete vars buffer-field-list
+	and check-protected-fields.
+	* insdel.c (check_protected_fields): Delete decl.
+
+	* disptab.h (DISP_INVIS_VECTOR): Renamed from DISP_INVIS_ROPE.
+	(DISP_CHAR_VECTOR): Renamed from DISP_CHAR_ROPE.
+	All callers changed. 
+
+	* xdisp.c (copy_rope): Expect FROM to be a vector.
+	(copy_part_of_rope): New function.
+	(display_string): Expect display table elts to be vectors.
+	* indent.c (current_column, Fmove_to_column, compute_motion):
+	Expect display table elts to be vectors.
+
+	* alloc.c: (Fmake_rope, Frope_elt): Fns deleted.
+
+	* lisp.h (CHAR_META, CHAR_SHIFT, CHAR_CTL): New macros.
+
+	* lread.c (read_escape): Handle M-, C- and S- for new convention.
+	(read1): Move the meta bit to the right place for a string.
+
+	* keyboard.c (Fthis_command_keys, Fread_key_sequence):
+	Fix calls to make_event_array.
+
+	* macros.c (Fend_kbd_macro): Fix call to make_event_array.
+
+	* alloc.c (make_event_array): Renamed from make_array.
+	Chars that fit in a string are 0...127 and their meta variants.
+
+	* keyboard.c (make_lispy_event): Put meta and shift modifiers
+	into an integer.
+	(read_avail_input): Set the modifiers field in the events read.
+	(kbd_buffer_get_event): Pass thru integer event untruncated.
+	(read_char): Likewise.
+	(read_key_sequence, read_char): Only -1 means EOF.
+	(kbd_buffer_store_event): Don't ignore 0200 bit in quit char.
+	(follow_key): Use new meta bit flag.
+
+	* xterm.c (XTread_socket): Set bufp->modifiers for all kinds of keys.
+
+	* keymap.c (Flookup_key): Use 0x800000 as meta-bit if from vector.
+	(Fdefine_key): Likewise.
+
+1993-03-04  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dgux.h (ELF): Handle this parameter.
+	[! COFF] (UNEXEC, USG_SHARED_LIBRARIES): New definitions.
+	(_BSD_TTY_FLAVOR): Don't define if already defined.
+	(C_COMPILER, LINKER, MAKE_COMMAND): New definitions.
+
+1993-03-04  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keyboard.c (Fsuspend_emacs): Remember that `suspend-hooks' isn't
+	necessarily bound.
+
+1993-03-04  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in (xmakefile): Add missing quote.
+
+1992-03-03  Wilson H. Tien  (wtien at urbana.mcd.mot.com)
+
+	* unexelf.c (unexec): Move data2 section header up so all section
+	headers will be in ascending order.  This will prevent the unexeced
+	emacs that being processed by other applications (such as strip) 
+	to fail.
+
+1993-03-02  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/isc2-2.h (S_IFLNK): Add #undef.
+	(C_SWITCH_SYSTEM): Add conditional definition.
+	(NO_ASM, USE_UTIME, NO_X_DESTROY_DATABASE): Defined.
+	(LIB_STANDARD): Alternate definition if __GNUC__.
+	(SIGTSTP): #undef deleted.
+	(LIBS_SYSTEM): Define only if HAVE_X_WINDOWS.
+	* s/isc3-0.h: New file.
+
+	* unexelf.c: Handle rounding of section boundaries.
+	(round_up): New function.
+
+1993-03-02  Karl Berry  (karl@cs.umb.edu)
+
+        * s/isc2-2.h (USG_SHARED_LIBRARIES, CLASH_DETECTION, NO_FCHMOD):
+        Define.
+        (HAVE_TIMEVAL): Do not define.
+        (NO_ASM): Only define once.
+
+1993-03-02  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* print.c (float_to_string): Define buf to be an unsigned char, to
+	match the data field of strings.
+
+	* keyboard.c (kbd_buffer_get_event): Protect assignment to
+	Vlast_event_frame in a "#ifdef MULTI_FRAME" clause.
+
+	* syntax.c (describe_syntax_1): Delete excess arg to describe_vector.
+	(check_syntax_table): Delete excess arg to wrong_type_argument.
+
+1993-03-01  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* buffer.c (buffer-undo-list): Doc fix.
+
+	* xdisp.c (redisplay): Protect calls to request_sigio and
+	unrequest_sigio in "#ifdef SIGIO" clauses; these are not defined 
+
+	* cmds.c (Fnewline): Doc fix.
+
+1993-03-01  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* insdel.c (del_range): Update point before offset_intervals.
+
+	* intervals.h: Don't include dispextern.h more than once.
+	(INTERVAL_VISIBLE_P): NILP test was backwards.
+
+	* intervals.c (intervals_equal): Handle one arg null and other not.
+	(set_point): Considerable rewrite.  Handle intervals both
+	before and after the old and new point values.
+	Redo handling of invisible intervals, and of motion hooks.
+	(textget): New function.
+
+	* textprop.c (Fadd_text_properties, Fremove_text_properties):
+	Add len>0 as condition for main loop.
+	Abort if reach a null interval.
+	(Fset_text_properties): Abort if reach a null interval.
+	(Ftext_properties_at, Fget_text_property):
+	Return nil if POS is end of OBJECT.
+	(add_properties): Use NILP to test result of Fequal.
+	No longer inline.
+	(remove_properties): No longer inline.
+	(set_properties): Total rewrite as function.
+	(validate_interval_range): Don't alter *begin at end of buffer.
+	But do search for a position just before the end.
+	Return null for an empty string.
+
+1993-02-28  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile.in (emacs, temacs): Add @true to prevent Make confusion.
+
+	* lread.c (read1--strings with properties case):
+	Detect end of list, and invalid syntax, using recursive read1 calls.
+
+	* intervals.c (graft_intervals_into_buffer):
+	create_root_interval needs Lisp object arg.
+	Set tree to new root interval.
+	Don't test TREE_LENGTH if buffer has no intervals.
+	Rearrange code to copy properties so that it really
+	does merge the inserted ones into the inherited ones.
+	(traverse_intervals): Pass `arg' on recursive calls.
+	(split_interval_left): Use new_length as basis for length of new.
+
+	* print.c (print--string case):
+	Any non-null interval means print intervals.
+	Get rid of var obj1; just use obj.
+
+	* textprop.c (validate_interval_range): Allow 0 as position in string.
+	Add 1 to specified string positions.
+	(Fprevious_single_property_change): Subtract 1 if object is string.
+	(Fnext_single_property_change): Likewise.
+	(Fprevious_property_change, Fnext_property_change): Likewise.
+
+	* xterm.c (x_do_pending_expose, XTframe_rehighlight):
+	(x_window_to_scrollbar): Use XGCTYPE.
+
+1993-02-28  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	Use the term `scroll bar', instead of `scrollbar'.
+	* alloc.c, frame.c, frame.h, indent.c, keyboard.c, keyboard.h,
+	lisp.h, term.c, termhooks.h, window.c, window.h, xdisp.c, xfns.c,
+	xterm.c, xterm.h: Terminology changed.
+
+        Don't generate switch-frame events by checking Vlast_event_frame;
+	use a separate variable for that bookkeeping.  In order to
+	generate them properly, we may need to fiddle with it.
+	* keyboard.c (internal_last_event_frame): New variable.
+	(command_loop_1): Check internal_last_event_frame, not
+	Vlast_event_frame.
+	(read_char, kbd_buffer_store_event): Set both Vlast_event_frame and
+	internal_last_event_frame.
+	(kbd_buffer_get_event): Check internal_last_event_frame to decide
+	whether to generate a switch-frame event.  Set Vlast_event_frame
+	after each event.
+	(init_keyboard): Initialize both Vlast_event_frame and
+	internal_last_event_frame.
+	* keyboard.h (internal_last_event_frame): Add extern declaration
+	for this.
+	* frame.c (Vlast_event_frame): Remove external declaration for
+	this.
+	(Fselect_frame): Set internal_last_event_frame to Qnil to force a
+	switch-frame event, not Vlast_event_frame; the latter is supposed
+	to convey information to the user.
+
+	* keyboard.c (syms_of_keyboard): Doc fix for unread_command_events.
+
+1993-02-26  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (syms_of_keyboard): Doc fix.
+
+1993-02-26  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* ymakefile (LIBES): Exchange the order of LIB_MATH and
+	LIB_STANDARD, to avoid duplicated symbols under SunOS.
+
+	* buffer.c (syms_of_buffer): Add the extra argument to the
+	commented-out DEFVAR_PER_BUFFER for `mode-line-format', so
+	make-docfile will find the docstring properly.
+
+1993-02-25  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (intervals.o): Dep on intervals.c, not textprop.c.
+
+	* textprop.c (remove_properties): Call modify_buffer.
+	(add_properties): Likewise.
+
+	* undo.c (record_property_change): Typo in last change.
+
+	* cmds.c (syms_of_cmds): Typo in last change.
+
+	* print.c (print): Never declare OBJ arg as `register'.
+	Special handling for strings with intervals.
+	(print_intervals): New function.
+	* lread.c (read1): Handle reading strings with properties.
+
+	* intervals.c (traverse_intervals): New arg ARG.
+	* alloc.c (mark_interval): Add ignored arg.
+	(mark_interval_tree): Pass new arg to traverse_intervals.
+
+1993-02-24  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xterm.c (x_window_to_scrollbar, x_scrollbar_expose,
+	x_scrollbar_handle_click, x_scrollbar_note_movement): Remember
+	that these can be called during GC; we have to ignore mark bits.
+	* lisp.h (GC_NILP, GC_EQ): New macros to help with that.
+
+	* print.c (float_to_string): Define buf to be an unsigned char, to
+	match the data field of strings.
+
+	* lisp.h (RETURN_UNGCPRO): Remove "do ... while (0)" wrapper
+	around macro.
+
+	* data.c (Fstring_to_number): Declare p to be an unsigned char, to
+	match the data field of strings.
+
+	* data.c (Fstring_to_number): Just skip tabs and spaces; don't use
+	the <ctype.h> macros.  The <ctype.h> stuff apparently varies from
+	locale to locale more than we'd like.  Don't include <ctype.h>.
+
+1993-02-24  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* buffer.c (Ferase_buffer): Added interactive spec.
+
+1993-02-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* undo.c (Fprimitive_undo): Handle property-change undo entry.
+	(record_property_change): New function.
+
+	* textprop.c (Fadd_text_properties): Pass new arg to add_properties.
+	(Fremove_text_properties): Likewise.
+	(add_properties, remove_properties): New arg OBJECT.  Record undo info.
+	(Fput_text_property): New function.
+
+	* buffer.c (syms_of_buffer): Doc fix.
+
+	* cmds.c (syms_of_cmds): New var `overwrite-binary-mode'.
+	(internal_self_insert): Handle that var.
+
+1993-02-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_avail_input): Args to `kill' were backwards.
+
+1993-02-23  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* alloc.c (make_pure_float): Assure that PUREBEG + pureptr is
+	aligned, not pureptr itself.
+
+	* emacs.c (fatal_error_signal): Unblock the signal before we try
+	to deliver it to ourselves. #include "syssignal.h" to get the
+	right definitions.
+
+	* abbrev.c (Fexpand_abbrev): Only copy the text we're going to
+	expand - from wordstart to wordend, not from wordstart to point -
+	into the buffer.  There might be non-word text between wordend and
+	point.
+
+1993-02-23  Richard Stallman  (rms@geech.gnu.ai.mit.edu)
+
+	* unexec.c (adjust_lnnoptrs): Handle symentry.n_type == 0x2400.
+	(make_hdr) [USG_SHARED_LIBRARIES]: Set bias using bss_start.
+
+1993-02-22  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* process.c: Make sure we don't miss processes exiting, by having
+	the sigchld handler clear *input_available_clear_time.
+	(wait_reading_process_input): Check for process activity after
+	setting the timeout and calling set_waiting_for_input.
+	(sigchld_handler): If the process which has exited is one we care
+	about, clear *input_available_clear_time.
+
+	* frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
+	switching frames, to make sure we'll get a switch-frame event.
+	(Vlast_event_frame): Add external declaration for this here.
+
+	* alloc.c (make_pure_float): Align pureptr according to __alignof,
+	if it's available, or sizeof (struct Lisp_Float) if it's not.
+
+	* .gdbinit (xprocess): New command.
+
+	* floatfns.c (Flogb): Always implement this by calling Flog, even
+	on non-USG systems, which supposedly have a logb function.
+	(Fround): Always implement this by calling floor, even on systems
+	that have rint.
+
+	* process.c (process_send_signal): Use TERMIOS functions in
+	preference to BSD ioctls.  Some systems attempt to provide the BSD
+	functions for backward compatibility, and get it wrong.
+
+	* data.c (Fstring_to_number): Skip initial spaces, to make Emacs
+	lisp parse consistently on different operating systems.
+	#include <ctype.h> to help with this.
+
+	* data.c (Fstring_to_int): Rename this to Fstring_to_number, since
+	it parses floats as well as integers.  Fix docstring.
+	(syms_of_data): Fix defsubr.
+	(wrong_type_argument): Change use.
+	(Fint_to_string): Doc fix.
+	* lisp.h (Fstring_to_int): Change extern declaration.
+
+1993-02-22  Charles Hannum  (mycroft@hal.gnu.ai.mit.edu)
+
+	* ibmrs6000.h (C_ALLOCA, STACK_DIRECTION): Only define if HAVE_ALLOCA
+	is not defined.
+	(X_DEFAULT_FONT): Change to `fixed', as `Rom14.500' only works on the
+	console.
+
+	* aix3-1.h: Changes from 18.58.
+	(HAVE_TERMIOS): Changed from HAVE_TERMIO.
+	(unix): Define.
+
+	* sysdep.c (child_setup_tty): Recognize HAVE_TERMIOS as well as
+	HAVE_TERMIO.
+
+	* xrdb.c (getuid): Remove declaration.
+
+	* systty.h [HAVE_TERMIOS]: Include fcntl.h.
+
+	* systime.h [_AIX]: Move test outside of previous #if.
+	(EMACS_GET_TZ_OFFSET) [USG]: Don't declare twice.  Prefer tzset.
+
+	* keyboard.c (init_keyboard): Recognize HAVE_TERMIOS as well as
+	HAVE_TERMIO.
+
+	* aix3-2.h: New file.  Specifies difference between AIX 3.1 and 3.2.
+
+1993-02-20  Richard Stallman  (rms@wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (Fsuspend_emacs): Make tem not register.
+
+	* syntax.c (Fforward_comment): New function.
+
+	* search.c (Fskip_syntax_backward): New function.
+	(Fskip_syntax_forward): Likewise.
+	(skip_chars): New argument syntaxp.
+
+	* alloc.c (Fmemory_limit): Doc fix.
+
+1993-02-19  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (Fsuspend_emacs): Rename suspend-hook to suspend-hooks
+	and run it manually.
+
+	* keymap.c (describe_map): Call Fkey_description before build_string.
+
+1993-02-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (Fopen_dribble_file): Doc fix.
+
+	* lread.c (syms_of_lread): Doc fix.
+
+1993-02-18  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* textprop.c (Fget_text_property): Fix typo in function's declaration.
+
+	* floatfns.c (IN_FLOAT): Make this work properly when SIGTYPE is void.
+
+	* alloc.c: Add description lines to the top of each page.
+
+	* alloc.c (mark_interval_tree): Remove spurious & in front of
+	function name.
+
+	* alloc.c (UNMARK_BALANCE_INTERVALS): Fix to accomodate compilers
+	other than GCC, which do not allow casts on the LHS of an
+	assignment.
+
+	* config.h.in: #define USE_TEXT_PROPERTIES by default.
+
+	* alloc.c (mark_object, mark_buffer): Remove some unused
+	variables.
+
+	* buffer.c (Fswitch_to_buffer): Pass the correct number of
+	arguments to Fnext_window.
+
+	* buffer.c (Fbury_buffer): Pass the correct number of arguments to
+	Fother_buffer.
+
+	* bytecode.c (Fbyte_code): Pass the correct number of arguments to
+	temp_output_buffer_show.
+
+	* callint.c (Fcall_interactively): Pass the correct number of
+	arguments to wrong_type_argument.
+	* casefiddle.c (caseify_object): Same.
+	* casetab.c (check_case_table): Same.
+	* search.c (Fstore_match_data): Same.
+	* syntax.c (check_syntax_table): Same.
+
+	* callproc.c (delete_temp_file): Declare this to return
+	Lisp_Object, to smooth type-checking.
+
+	* data.c (wrong_type_argument): Pass the correct number of
+	arguments to Fstring_to_int.
+
+	* data.c (arithcompare): Add a default case which aborts, just to
+	make me happy.
+
+	* dispnew.c (sit_for): Pass the correct number of arguments to
+	gobble_input.
+
+	* editfns.c (Fmessage): Don't forget to return a value when
+	args[0] == Qnil.
+
+	* fns.c (Fequal): Call internal_equal to recurse on elements of
+	lists and vectors, not Fequal.
+
+	* frame.c (Fdelete_frame): If FRAME is a dead frame, return Qnil,
+	not nothing.
+
+	* keyboard.c (echo_char): Apply XINT to c before passing it to
+	push_key_description.
+
+	* keyboard.c (recursive_edit_1, command_loop_1): Pass the proper
+	number of arguments to unbind_to.
+	* lread.c (Feval_buffer): Same.
+	* window.c (Fscroll_other_window): Same.
+
+	* keyboard.c (command_loop_1): Apply XINT to c before passing it
+	to internal_self_insert and direct_output_for_insert.
+
+	* keyboard.c (make_lispy_movement): Rename the variable `part'
+	declared in the block handling scrollbar movement to `part_sym',
+	to avoid potential conflicts with the argument named `part'.
+	Apparently the semantics of expressions like this are unclear.
+
+	* keyboard.c (Fread_key_sequence): Backslash the newlines in this
+	docstring.
+	* textprop.c (Fget_text_property): Same.
+
+	* keymap.c (Fdescribe_vector): Pass the proper number of arguments
+	to describe_vector.
+	* syntax.c (describe_syntax_1): Same.
+
+	* minibuf.c (Fdisplay_completion_list): Pass the proper number of
+	arguments to Flength.
+	* xmenu.c (list_of_items): Same.
+
+	* window.c (Fset_window_configuration): Pass the proper number of
+	arguments to Fselect_frame.
+
+	* xfns.c (x_set_icon_type): Pass the proper number of arguments to
+	x_bitmap_icon.
+
+	* xterm.c (XTread_socket): Pass the proper number of arguments to
+	construct_mouse_click.
+
+	* config.h.in (HAVE_CONST): New macro.  If it's not #defined, #define
+	const to be the empty string.
+
+	* config.h.in: If we're not __STDC__, define volatile to be the
+	empty string.
+
+	* buffer.h: Remove code which #includes "undo.h" if lint is
+	defined.  undo.h no longer exists.
+
+	* buffer.c (buffer_slot_type_mismatch): Make symbol_name an
+	unsigned char *, to match the type of a string's data.
+
+1993-02-17  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)
+
+	* process.c (Fstart_process): Jimb's change of December 11
+	had a misplaced paren.  This only became apparent because of
+	jimb's change on February 8 to Fexpand_file_name.
+	* callproc.c (Fcall_process): Ditto.
+
+1993-02-17  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* callproc.c (init_callproc): Move the initialization of
+	Vprocess_environment to its own function.
+	(set_process_environment): This is that.
+	* emacs.c (main): Call set_process_environment earlier than
+	init_callproc.
+
+1993-02-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* buffer.c (Frename_buffer): Make prefix arg set UNIQUE.
+
+1993-02-14  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xterm.c (x_set_window_size): Call change_frame_size instead of
+	just setting the `rows' and `cols' members of the frame, and
+	leaving the window tree in complete disarray.
+
+	* dispnew.c (remake_frame_glyphs): When re-allocating the frame's
+	message buffer when echo_area_glyphs is pointing at it, relocate
+	echo_area_glyphs too.  Same for previous_echo_glyphs.
+	* window.h (previous_echo_glyphs): Add extern declaration for this.
+
+	* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
+	minibufferless frames as nil, not `none'.
+	(Qnone): Remove declaration and initialization for this.  It's not
+	needed anymore.
+	* xfns.c (Qnone): Add them here; we still accept "none" as a valid
+	value for the `minibuffer' parameter.
+
+	* xfns.c (x_frame_params): Remember that the parameters are called
+	"auto-raise" and "auto-lower", not "autoraise" and "autolower".
+
+	* xdisp.c (message): Set echo_frame to the frame whose message buf
+	we want to use, not to the message buf itself.
+
+1993-02-13  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* textprop.c (Fadd_text_properties): Put OBJECT arg last.
+	Make it optional.
+	(Fset_text_properties, Fremove_text_properties): Likewise.
+	(Fnext_single_property_change, Fprevious_single_property_change): 
+	(Fnext_property_change, Fprevious_property_change): Likewise.
+	(Ferase_text_properties): #if 0.
+	(Fget_text_property): New function.
+
+	* s/irix4-0.h (C_SWITCH_MACHINE): Don't define if GCC.
+
+1993-02-13  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* s/usg5-4.h: #include "usg5-3.h", not "s-usg5-3.h".
+
+1993-02-11  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xterm.c (x_io_error_quitter): New function.
+	(x_error_quitter): Note that this is only used for protocol
+	errors now, not I/O errors.
+	(x_term_init): Set the I/O error handler to x_io_error_quitter.
+
+1993-02-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* editfns.c (Finsert_buffer_substring): Proper error for non-ex buffer.
+	(Fcompare_buffer_substrings): Likewise.
+
+1993-02-10  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* fileio.c (Fdo_auto_save): If NO_MESSAGE is non-nil, don't tell
+	users that buffers have shrunk a lot.  This is called when Emacs
+	is crashing, so we don't want to run any code that isn't
+	absolutely necessary.  Also, autosave buffers which don't have
+	specially handled autosave file names first.
+
+1993-02-10  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* editfns.c (Fcompare_buffer_substrings): Ignore case
+	if case-fold-search is non-nil.
+
+1993-02-08  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keymap.c (Flookup_key, Fkey_binding, Flocal_key_binding,
+	Fglobal_key_binding, Fminor_mode_key_binding): Add a new optional
+	argument ACCEPT_DEFAULT, to control whether this function sees
+	bindings for t.
+	(Fwhere_is_internal, describe_map_tree, describe_map_2,
+	describe_vector): Pass the proper arguments to Flookup_key.
+
+	* fileio.c (Fexpand_file_name): Pass DEFALT through
+	Fexpand_file_name before using it.
+
+	* fileio.c (Fexpand_file_name): Doc fix.
+
+1993-02-07  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xdisp.c (message): Use the message buffer of the frame we're
+	going to display the message on to format the message, not that of
+	the selected frame.
+
+1993-02-07  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* Makefile (emacs, temacs): Add no-op commands to these rules.
+
+	* dispnew.c (char_ins_del_cost): Use FRAME_WIDTH, not FRAME_HEIGHT.
+
+	* editfns.c (Fcompare_buffer_substrings): New function.
+
+1993-02-06  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (extra_keyboard_modifiers): New Lisp var.
+	(read_char): Support ctl and meta bits in extra_keyboard_modifiers.
+	* xterm.c (XTread_socket): Support extra_keyboard_modifiers.
+
+1993-01-29  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* window.c (Fscroll_left, Fscroll_right): Don't forget to apply
+	XWINDOW to selected_window before passing it to window_internal_width.
+
+	* xmenu.c (Fx_popup_menu): Don't forget to turn the frame-relative
+	coordinates for the menu position into root-window-relative
+	coordinates.
+
+	* lread.c (read1): Although digits followed by a '.' are an
+	integer, a single . by itself (like, say, \.) should be a symbol.
+
+1993-01-25  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* fns.c (internal_equal): Protect the clause for comparing numbers
+	of different types with a "#ifdef LISP_FLOAT_TYPE".
+
+1993-01-25  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/hpux8.h [__GNUC__] (LD_SWITCH_SYSTEM): Remove -a.
+	[__GNUC__] (ORDINARY_LINK): Defined.
+
+	* m/sparc.h [TERMINFO]: Don't define LIBS_TERMCAP.
+
+1993-01-25  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+        `live-frame-p' has become `frame-live-p'.
+	* frame.c (Qlive_frame_p): Renamed to Qframe_live_p.
+	(Flive_frame_p): Renamed to Fframe_live_p.
+	(syms_of_frame): Defsubrs and initializations adjusted.
+	* frame.h (CHECK_LIVE_FRAME): Use Qframe_live_p, not Qlive_frame_p.
+	(Qlive_frame_p): Changed extern declaration to Qframe_live_p.
+
+	* lread.c (read1): Treat a string of digits ending in a period as
+	an integer.
+
+	Turn `first-change-function' into `first-change-hook'.
+	* buffer.c (Vfirst_change_function): Renamed to Vfirst_change_hook.
+	(Qfirst_change_hook): New symbol, for passing to Vrun_hooks.
+	(syms_of_buffer): Change DEFVAR; initialize Qfirst_change_hook.
+	* buffer.h (Vfirst_change_function): Renamed to Vfirst_change_hook.
+	(Qfirst_change_hook): Added declaration.
+	* insdel.c (signal_before_change): Change references to
+	Vfirst_change_function, and apply Vrun_hooks to
+	Qfirst_change_hook, instead of just calling Vfirst_change_function
+	directly.
+
+	x-selection-value has been renamed to x-selection.
+	x-own-selection has been renamed to x-set-selection, and the order
+	of its arguments has been reversed, for consistency with other
+	lisp functions like put and aset.
+	* xselect.c (Fx_own_selection): Rename to Fx_set_selection, 
+	reverse the order of the args, and therefore make the type
+	non-optional.  Doc fix.
+	(Fx_selection_value): Rename to Fx_selection; make the type
+	argument non-optional, for symmetry with Fx_set_selection.  Doc
+	fix.
+	(syms_of_xselect): Adjusted.
+
+	* xselect.c (Fx_own_selection, Fx_selection_value): Remove "#if
+	0"'ed code which made cut buffers look like a special selection
+	type.
+
+	* xfns.c (Vx_selection_value): Removed extern declaration for
+	this; it's never used.
+
+	* data.c (Fcompiled_function_p): Renamed to Fbyte_code_function_p.
+	(syms_of_data): Adjusted.
+
+	* data.c (Fnumberp, Fnumber_or_marker_p): Use the NUMBERP macro,
+	instead of writing it out.
+
+	* fns.c (internal_equal): If the operands are both numbers,
+	compare them numerically, so that (equal 1.0 1) => t.
+	Compare Lisp_Compiled objects like vectors.
+
+	Add lisp functions to raise and lower frames.
+	* termhooks.h (frame_raise_lower_hook): New hook.
+	* term.c (frame_raise_lower_hook): Define it.
+	* frame.c (Fframe_to_front, Fframe_to_back): New functions.
+	(syms_of_frame): defsubr them.
+	* xterm.c (XTframe_raise_lower): New function.
+	(x_term_init): Set frame_raise_lower_hook to XTframe_raise_lower.
+
+	* frame.c: Doc fixes.
+
+1993-01-24  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	Make the cursor style a frame parameter.
+	* xterm.h (struct x_display): Rename the `text_cursor_kind' member
+	to `current_cursor'; add new member `desired_cursor'.
+	(FRAME_DESIRED_CURSOR): New accessor for new member.
+	* xterm.c (x_display_bar_cursor): Rewritten so as not to damage
+	the characters the cursor is displayed over, and to handle
+	transitions between box and bar styles.
+	(x_display_bar_cursor, x_display_box_cursor): Use current_cursor
+	instead of text_cursor_kind.
+	(Vbar_cursor): Delete external declaration.
+	(x_display_cursor): Use the FRAME_DESIRED_CURSOR accessor instead
+	of Vbar_cursor to decide how to draw the cursor.
+	* xfns.c (Vbar_cursor): Remove definition.
+	(Qbar, Qbox, Qcursor_type): New symbols. 
+	(syms_of_xfns): Init and staticpro them; remove DEFVAR for
+	Vbar_cursor.
+	(x_set_cursor_type): New setter.
+	(x_frame_parms): Add it to the list.
+	(Fx_create_frame): Get default values for the cursor type.
+
+	* frame.c (Fmouse_position): Pass the appropriate arguments to
+	*mouse_position_hook; the protocol was changed, but this caller
+	wasn't fixed.
+
+	* xterm.c (XTclear_frame): Call x_scrollbar_clear.
+	(x_scrollbar_clear): New function.
+
+	* xterm.c (XTflash): Totally rewritten.  Only defined if
+	HAVE_TIMEVAL and HAVE_SELECT are defined, since we use select for
+	our timing.
+	(timeval_subtract): New function, to help XTflash.
+	(x_invert_frame): Removed.  This didn't work anyway.
+	(XTring_bell): Remove "#if 0" around call to XTflash, and remove
+	calls to x_invert_frame.  If both HAVE_TIMEVAL and HAVE_SELECT
+	aren't defined, then just do the ordinary beep.
+
+	* window.c (Fscroll_other_window): Prefer windows on the selected
+	frame, then look for windows on other visible frames.
+
+	* keyboard.c (Fmouse_click_p): Removed; with the 'e' spec, this
+	isn't necessary anymore.
+	(syms_of_keyboard): Remove defsubr for it.
+	* keyboard.h (Fmouse_click_p): Remove extern declaration for it.
+
+	* xfns.c (gray_bits): Remove this declaration; the same data is in
+	<X11/bitmaps/gray>.  #include that instead.
+	[not HAVE_X11] (x_set_border_pixel): Use gray_width and
+	gray_height, instead of assuming that the bitmap is 16x16.
+	(x_make_gc): Instead of creating a pixmap and then calling
+	XPutImage to make it into a grey stipple, just call
+	XCreatePixmapFromBitmapData to do it all at once.
+
+	* xterm.c (x_text_icon): Move the request for font information
+	into the "not HAVE_X11" part of the function; the X11 code doesn't
+	need this.
+
+	* xterm.c (x_wm_set_icon_pixmap): Instead of setting the
+	icon_pixmap to None, just remove IconPixmapHint from the flags of
+	the XWMHints structure.
+
+	* window.c (Fprevious_frame): Use prev_frame when we get to the
+	end of the current frame, not next_frame.  Doc fix.
+	* frame.c (prev_frame): Remove "#if 0" from this function.  It
+	turns out we do need it, to make prev_frame work right.
+
+	* frame.c (next_frame): Check that FRAME is a live frame.
+
+	* frame.c (Fselect_frame): Remove "#ifdef MULTI_FRAME" clause
+	around the code which calls Ffocus_frame; this code is already
+	inside an "#ifdef MULTI_FRAME" clause.
+	(next_frame, prev_frame, Fnext_frame): For the same reasons,
+	remove the "#ifdef MULTI_FRAME" clause around these functions.
+
+	unread-command-event has been replaced by unread-command-events.
+	* commands.h (unread_command_event): Change extern declaration.
+	* keyboard.c (unread_command_event): Change the definition.
+	(syms_of_keyboard): Change DEFVAR, and adjust the docstring.
+	(command_loop_1, read_char, Finput_pending, Fdiscard_input,
+	quit_throw_to_read_char, init_keyboard): Change to use
+	unread_command_events, with the new semantics.
+	* lread.c (read_char): Same.
+	* minibuf.c (temp_echo_area_glyphs): Same.
+	* xterm.c (unread_command_event): Remove external declaration for
+	this; it is only used by obsolete code.
+
+	* Makefile.in: Some makes can't handle comments in the middle of
+	commands; move them to before the whole rule.
+
+1993-01-21  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keyboard.c (make_lispy_event): When handling a mouse click event
+	on a window, change x and y from screen coordinates to window
+	coordinates even when the click isn't in the text area.
+
+	* xterm.c (x_scrollbar_create): Remove code which asks for
+	EastGravity for windows; Emacs can't correctly deal with them
+	moving around unexpectedly.
+
+	* xterm.c (XTread_socket): Minor reformatting.
+
+	* xterm.c (x_set_window_size): Always mark the frame garbaged.
+
+        * window.c (Vmouse_window): Variable removed; it can't be handled
+	properly without race conditions, and the events give you all the
+	information you need anyway.
+	(syms_of_window): Remove DEFVAR.
+	* callint.c (Fcall_interactively): Change the `@' spec to select
+	the window of the first parameterized event in the key sequence
+	which invoked the command, instead of using Vmouse_window, which
+	isn't even updated anymore.  Adjust the documentation
+	accordingly.
+
+1993-01-20  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xterm.c (x_scrollbar_create): Set the scrollbars to use
+	EastGravity.
+
+	* keyboard.c (make_lispy_event): Deal with button releases with no
+	stored down-going position.  Make sure we always store a Qnil in
+	the right button_down_location element after using it.
+
+1993-01-19  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* frame.c (Fdelete_frame): Clear the frame's display after calling
+	the window-system-dependent frame destruction routine.  We
+	no longer need to pass the display as a separate argument to
+	x_destroy_window.
+	* xterm.c (x_destroy_window): Put the code which clears out f's
+	display here, right after we free the storage it points to.  Put
+	everything, including the code which clears x_focus_frame and
+	x_highlight_frame, inside the BLOCK/UNBLOCK_INPUT pair.
+
+	* dispnew.c (Fredraw_display): Undo change of Jan 12; redraw only
+	frames whose garbaged flag is set.  The change to
+	FRAME_SAMPLE_VISIBILITY on Jan 14 should address the problem better.
+
+	keyboard.c (read_char_menu_prompt): Test HAVE_X_WINDOWS, not
+	HAVE_X_WINDOW.
+
+	The CPP symbol indicating whether or not we have mouse menu
+	support under X Windows is HAVE_X_MENU, not not NO_X_MENU.
+	* emacs.c (main): Test HAVE_X_MENU, instead of NO_X_MENU.
+	* keyboard.c (read_char_menu_prompt): Same.
+	* ymakefile: Same.
+
+	* keyboard.c (read_char, read_char_menu_prompt): Use the
+	EVENT_HAS_PARAMETERS macro from keyboard.h, instead of writing it
+	out.
+
+	* keyboard.c (read_char_menu_prompt): Doc fix.
+
+	* keyboard.c (read_char_menu_prompt): Fix test for no menus;
+	comparing name to Qnil doesn't work if we are called with no maps.
+
+	* keymap.c (Fdefine_key): Call Fkey_description to make the string
+	to use in the error message.
+
+1993-01-18  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* window.c (Fdisplay_buffer): Doc fix.
+
+1993-01-16  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xterm.c (x_window_to_scrollbar): Search frames'
+	condemned_scrollbars list as well; input might arrive during
+	redisplay.
+	(x_scrollbar_report_motion): Don't forget to BLOCK_INPUT.
+	(XTjudge_scrollbars): Clear the condemned scrollbar list before
+	traversing it, so we don't try to process an event on a scrollbar
+	we've killed.
+
+1993-01-15  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (Frecent_keys): Doc fix.
+
+1993-01-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* window.c (Fwindow_at): Doc fix.
+
+1993-01-14  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xterm.c (x_scrollbar_create): Include PointerMotionHintMask in
+	the event mask for scrollbars.
+
+	* dispnew.c (Fredraw_display): DEFUN was missing a closing paren.
+
+	* term.c (set_vertical_scrollbar_hook, condemn_scrollbars_hook,
+	redeem_scrollbar_hook, judge_scrollbars_hook): Removed dumbo
+	"externs" from these.  They're supposed to be real definitions.
+
+	* .gdbinit: Add "-geometry +0+0" to default args.
+	(xscrollbar): New command.
+
+	Make scrollbar structures into lisp objects, so that they can be
+	GC'd; this allows windows and scrollbars can refer to each other
+	without worrying about dangling pointers.
+	* xterm.h (struct x_display): vertical_scrollbars and
+	judge_timestamp members deleted.
+	(struct scrollbar): Redesigned to be a template for a Lisp_Vector.
+	(SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
+	SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
+	VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
+	VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
+	New macros, to help deal with the lispy structures, and deal with
+	the graphics.
+	* frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
+	(struct frame): New fields `scrollbars' and
+	`condemned_scrollbars', for use by the scrollbar implementation.
+	[MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
+	FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
+	* window.h (struct window): Doc fix for vertical_scrollbar field.
+	* frame.c (make_frame): Initialize the `scrollbars' and
+	`condemned_scrollbars' fields of the new frame.
+	* alloc.c (mark_object): Mark the `scrollbars' and
+	`condemned_scrollbars' slots of frames.
+	* xterm.c (x_window_to_scrollbar): Scrollbars are chained on
+	frames' scrollbar field, not their x.display->vertical_scrollbars
+	field.
+	(x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
+	x_scrollbar_remove, XTset_vertical_scrollbar,
+	XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
+	x_scrollbar_expose, x_scrollbar_handle_click,
+	x_scrollbar_handle_motion): Substantially rewritten to correct
+	typos and brainos, and to accomodate the lispy structures.
+
+	* xterm.c (x_scrollbar_background_expose): Function deleted; we
+	don't want anything in the background there after all.
+	(XTread_socket): Don't call x_scrollbar_background_expose.  We
+	don't care.
+
+	* frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as
+	garbaged whenever it goes from invisible to visible.
+	* dispextern.h (frame_garbaged): Move extern declaration from here...
+	* frame.h (frame_garbaged): ... to here.  The FRAME_SAMPLE_VISIBILITY
+	macro uses it now, and this seems to be just as modular.  Make a
+	new page, just for this and message_buf_print.
+	(struct frame): Doc fix for the `visible' field.
+	* process.c: #include "frame.h" instead of "dispextern.h"; the
+	only thing we care about from it is the frame_garbaged
+	declaration.
+	* ymakefile: Note dependency change.
+
+	* xfns.c (Fx_create_frame): After mapping the frame, call
+	SET_FRAME_GARBAGED, not just plain FRAME_GARBAGED.
+
+	* window.c (window_internal_width): New function, which accounts
+	for scrollbars if present.
+	* lisp.h (window_internal_height, window_internal_width): Add
+	extern declarations for these.
+	* dispnew.c (direct_output_for_insert, direct_output_forward_char,
+	buffer_posn_from_coords): Use window_internal_width instead of
+	writing out its definition.
+	* indent.c (compute_motion): Doc fix; mention scrollbars and
+	window_internal_width.
+	(pos_tab_offset, Fvertical_motion): Use window_internal_width
+	instead of writing it out.
+	* window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
+	Fscroll_right): Same.
+	* xdisp.c (redisplay, try_window, try_window_id,
+	display_text_line): Same.
+
+	* xdisp.c (display_string): Add new variable `f', to be W's
+	frame.  Use it to set desired_glyphs, and to get the frame's width
+	to decide whether or not to draw vertical bars.
+
+	* xdisp.c (display_text_line): If we're using vertical scrollbars,
+	don't draw the vertical bars separating side-by-side windows.
+	(display_string): Same thing.  Draw spaces to fill in the part of
+	the mode line that is under the scrollbar in partial-width
+	windows.
+
+	* xfns.c (Qvertical_scrollbars): New symbol.  Use it as the name
+	of the parameter which decides whether or not the frame has
+	scrollbars, instead of Qvertical_scrollbar.
+	(Fx_create_frame): Adjusted accordingly.
+	(syms_of_xfns): Initialize and staticpro Qvertical_scrollbars.
+	(x_set_vertical_scrollbar): Renamed to x_set_vertical_scrollbars.
+	(x_frame_parms): Adjusted accordingly.
+
+	* xterm.h (CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT,
+	PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Rewritten, using:
+	(CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, PIXEL_TO_CHAR_ROW,
+	PIXEL_TO_CHAR_COL): New macros.
+	* xfns.c [not HAVE_X11] (Fx_create_frame): Use the
+	PIXEL_TO_CHAR_{HEIGHT,WIDTH} macros to figure the frame's
+	character size, and the CHAR_TO_PIXEL* macros for vice versa.
+	* xterm.c (XTwrite_glyphs, XTclear_end_of_line, stufflines,
+	scraplines, dumprectangle, pixel_to_glyph_coords, x_draw_box,
+	clear_cursor, x_display_bar_cursor, x_draw_single_glyph,
+	x_set_mouse_position): Use the CHAR_TO_PIXEL_* macros.
+
+	* xterm.c (x_wm_set_size_hint): The max_width and max_height
+	members of the size_hints are expressed in pixels, not columns.
+
+	* xterm.c (x_set_window_size): Remove ibw var; it's not used.
+	Set FRAME_WIDTH (f) to cols instead of rows.  Duh.
+
+	* xterm.c (pixel_to_glyph_coords): Properly set *bounds to the
+	character cell bounding the position, even when the position is
+	off the frame.
+
+	* xfns.c (x_set_name): To request that the modelines be redrawn,
+	execute the statement "update_mode_lines = 1;" instead of the
+	silly statement "update_mode_lines;".
+
+	* xfns.c (x_set_vertical_scrollbars): Don't try to set the
+	X window's size if the frame's X window hasn't been created yet.
+
+	* xfns.c (x_figure_window_size): Set the frame's
+	vertical_scrollbar_extra field before trying to calculate its
+	pixel dimensions.
+
+	* xfns.c (x_window): When calling x_implicitly_set_name for the
+	sake of drawing the name for the first time, remember to clear and
+	set the frame's explicit_name member as well as its name member.
+	(Fx_create_frame): Set the frame's explicit_name member if the
+	user specified the name explicitly.
+
+	* xdisp.c (display_text_line): Use the usable internal width of
+	the window, as calculated above, as the limit on the length of the
+	overlay arrow's image, rather than using the window's width field,
+	less one.
+
+	* xdisp.c (redisplay): Call condemn_scrollbars_hook and
+	judge_scrollbars_hook whenever they are set, not just when the
+	frame has vertical scrollbars.
+
+	* termhooks.h (mouse_position_hook): Doc fix.
+	(set_vertical_scrollbar_hook): This doesn't return anything any
+	more, and doesn't take a struct scrollbar * argument any more.
+	(condemn_scrollbars_hook, redeem_scrollbar_hook,
+	judge_scrollbars_hook): Doc fixes.
+	* term.c (mouse_position_hook): Doc fix.
+	(set_vertical_scrollbar_hook): This doesn't return
+	anything any more.  Doc fixes.
+	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
+	window from *mouse_position_hook and pass it to
+	make_lispy_movement, instead of working with a pointer to a struct
+	scrollbar.
+	(make_lispy_event): We don't need a window_from_scrollbar function
+	anymore; we are given the window directly in *EVENT.
+	Unify the code which generates
+	text-area mouse clicks and scrollbar clicks; use the same code to
+	distinguish clicks from drags on the scrollbar as in the text area.
+	Distinguish clicks from drags by storing a copy of the lispy
+	position list returned as part of the event.
+	(button_down_location): Make this a lisp vector, rather than an
+	array of random structures.
+	(struct mouse_position): Remove this; it's been replaced by a lisp
+	list.
+	(make_lispy_movement): Accept the scrollbar's window as a
+	parameter, rather than the scrollbar itself.
+	If FRAME is zero, assume that the other arguments are garbage.
+	(syms_of_keyboard): No need to staticpro each window of
+	button_down_location now; just initialize and staticpro it.
+	* window.c (window_from_scrollbar): Function deleted; no longer
+	needed.
+	* xdisp.c (redisplay_window): Just pass the window to
+	set_vertical_scrollbar hook; don't pass the scrollbar object too.
+	* xterm.c (XTmouse_position): Don't return a pointer to the
+	scrollbar for scrollbar motion; instead, return the scrollbar's
+	window.
+
+	* xterm.c (XTmouse_position): Entirely rewritten, using
+	XTranslateCoordinates.  Call x_scrollbar_report_motion to handle
+	scrollbar movement events.
+	(x_scrollbar_report_motion): New function, to help out
+	XTmouse_position.
+
+	* keyboard.c (apply_modifiers): Don't assume that the Qevent_kind
+	property of BASE is set when we first create the new modified
+	symbol.  Check that the Qevent_kind property is properly set each
+	time we return any symbol.
+
+	* termhooks.h (struct input_event): Replace the frame member with
+	a Lisp_Object member by the name of frame_or_window.  Doc fixes.
+	Remove the scrollbar member; instead, use frame_or_window to hold the
+	window whose scrollbar was clicked.
+	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event,
+	make_lispy_event): Adjust references to frame member of struct
+	input_event to use frame_or_window now.
+	* xterm.c (construct_mouse_click, XTread_socket): Same.
+
+	* xterm.c (last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
+	last_mouse_scroll_range_start, last_mouse_scroll_range_end):
+	Replaced with...
+	(last_mouse_scrollbar): New variable.
+	(note_mouse_movement): Clear last_mouse_scrollbar when we have
+	receieved a new motion.
+	(syms_of_xterm): Staticpro last_mouse_scrollbar.
+
+	* xterm.c (note_mouse_position): Renamed to note_mouse_movement,
+	because that's what it really does.
+	(x_scrollbar_handle_motion): Renamed to x_scrollbar_note_movement,
+	for consistency.
+	(XTread_socket): Adjusted.
+
+	* xterm.c (XTset_scrollbar): Renamed to XTset_vertical_scrollbar.
+	(x_term_init): Adjusted.
+
+	* keyboard.c (kbd_buffer_frames): Renamed to
+	kbd_buffer_frame_or_window, and made to exist even when
+	MULTI_FRAME isn't defined; single-frame systems might have
+	scrollbars.  Use it to GCPRO the frame_or_window field in the
+	event queue.
+	(kbd_buffer_store_event, kbd_buffer_get_event,
+	stuff_buffered_input): Set and clear the
+	appropriate element of kbd_buffer_frame_or_window, whether or not
+	MULTI_FRAME is #defined.
+	(read_avail_input): When reading characters directly from stdin,
+	set the frame_or_window field of the event appropriately,
+	depending on whether or not MULTI_FRAME is #defined.
+	(Fdiscard_input, init_keyboard): Zap kbd_buffer_frame_or_window,
+	not kbd_buffer_frames.
+	(syms_of_keyboard): Initialize and staticpro
+	kbd_buffer_frame_or_window, whether or not MULTI_FRAME is
+	#defined.
+
+	* keyboard.c (head_table): Make Qscrollbar_movement have a
+	Qevent_kind property of Qmouse_movement, not Qscrollbar_movement.
+
+	* keyboard.c (read_key_sequence): If we decide to throw away a
+	mouse event which has prefix symbols (`mode-line',
+	`vertical-scrollbar', etcetera), remember that we may have to
+	unwind two characters, not just one.
+
+	* keyboard.c (read_key_sequence): Doc fixes.
+
+	* keyboard.c (kbd_buffer_store_event): Fix reversed sense of test
+	for focus redirection.
+
+	* keyboard.c (read_char): Don't echo mouse movements.
+
+	* emacs.c (shut_down_emacs): New function.
+	(fatal_error_signal, Fkill_emacs): Call it, instead of writing it out.
+	* xterm.c (x_connection_closed): Call shut_down_emacs instead of
+	Fkill_emacs; the latter will try to perform operations on the X
+	server and die a horrible death.
+	* lisp.h (shut_down_emacs): Add extern declaration for it.
+
+	* xterm.c (x_error_quitter): Move the abort call to after we print
+	the error message.  No harm in that.
+
+	* xdisp.c (echo_area_display): Move the assignment of f and the
+	check for visibility out of the "#ifdef MULTI_FRAME" clause; they
+	should work under any circumstances.
+
+	* xdisp.c (redisplay_window): If we're not going to redisplay this
+	window because it's a minibuffer whose contents have already been
+	updated, go ahead and jump to the scrollbar refreshing code
+	anyway; they still need to be updated.  Initialize opoint, so it's
+	known to be valid when we jump.  Calculate the scrollbar settings
+	properly for minibuffers, no matter what they are displaying at
+	the time.
+
+	* xdisp.c (redisplay_windows): Don't restore the current buffer
+	and its point before refreshing the scrollbars; we need the buffer
+	accurate.
+
+1993-01-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* print.c (float_to_string): Add final 0 if text ends with decimal pt.
+
+	* dispnew.c (Fredraw_display): Redraw all visible frames.
+	Make the non-multi-frame version interactive.
+
+1993-01-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c (Fset_default_file_modes, Fdefault_file_modes):
+	Renamed from Fset_umask and Fumask; sense of arg is reversed.
+	(Fwrite_region): Doc fix.
+
+1993-01-10  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* print.c (float_to_string): Add `.0' at end if needed.
+
+	* lread.c (Fload): If warn that .elc file is older, inhibit
+	the ordinary message that would follow.
+
+1993-01-09  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* fileio.c (Fdo_auto_save): Add CURRENT_ONLY argument, as
+	described in doc string.
+
+1993-01-08  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fns.c (Frandom): Change arg name.
+
+	* editfns.c: Doc fixes.
+
+1993-01-07  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* unexhp9k800.c (unexec): Don't call exit, just return.
+
+1993-01-07  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+        * config.h.in: protect against multiple #inclusions.
+
+	* config.h.in: Add a declaration for getenv.
+
+	* xfns.c (Fx_get_resource): Add CLASS argument, to give class of
+	ATTRIBUTE.
+	[not HAVE_X11]: Change definition of Fx_get_resource macro
+	accordingly.
+	(x_get_arg): Add CLASS argument, to give the class of ATTRIBUTE.
+	Pass it along to Fx_get_resource.
+	(x_figure_window_size, x_icon): Pass new argument to x_get_arg.
+	(x_default_parameter): Add XCLASS argument, to give the class of
+	XPROP.  Pass it along to x_get_arg.
+	(Fx_create_frame): Pass new args to x_get_arg and
+	x_default_parameter.
+
+	* xfns.c (Fx_create_frame): Use the same resource names and
+	classes as xterm and Emacs 18.
+
+1993-01-03  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfns.c (Fx_get_resource): Use EMACS_CLASS to make class_key
+	even if SUBCLASS is specified.  I don't know whether that is
+	right, but that's what the doc says.
+	Cosmetic changes in arg names and doc string.
+
+1992-12-29  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* ralloc.c: [! emacs] [HAVE_CONFIG_H]: #include "config.h"
+
+1992-12-21  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* Makefile.in (tagsfiles): New variable.
+	(TAGS): Depend on $(tagsfiles); use that in cmds.
+	(tags): Separate phony rule; depends on TAGS.
+
+1992-12-21  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+        * keyboard.c: Protect all references to kbd_buffer_frames with
+	#ifdef MULTI_FRAME.
+
+	* frame.h (struct frame): New fields `can_have_scrollbars' and
+	`has_vertical_scrollbars'.
+	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
+	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
+	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
+	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
+	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
+	* window.h (struct window): New field `vertical_scrollbar'.
+	* xterm.h (struct x_display): vertical_scrollbars,
+	judge_timestamp, vertical_scrollbar_extra: New fields.
+	(struct scrollbar): New struct.
+	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
+	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
+	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
+	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
+	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
+	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
+	`has_vertical_scrollbars' fields of the frame.
+	* term.c (term_init): Note that TERMCAP terminals don't support
+	scrollbars.
+	(mouse_position_hook): Document new args.
+	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
+	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
+	* termhooks.h: Declare and document them.
+	(enum scrollbar_part): New type.
+	(struct input_event): Describe the new form of the scrollbar_click
+	event type.  Change `part' from a Lisp_Object to an enum
+	scrollbar_part.  Add a new field `scrollbar'.
+	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
+	parameters to *mouse_position_hook, and make_lispy_movement.
+	* xfns.c (x_set_vertical_scrollbar): New function.
+	(x_figure_window_size): Use new macros to calculate frame size.
+	(Fx_create_frame): Note that X Windows frames do support scroll
+	bars.  Default to "yes".
+	* xterm.c: #include <X11/cursorfont.h> and "window.h".
+	(x_vertical_scrollbar_cursor): New variable.
+	(x_term_init): Initialize it.
+	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
+	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
+	variables.
+	(XTmouse_position): Use them to return scrollbar movement events.
+	Take new arguments, for that purpose.
+	(x_window_to_scrollbar, x_scrollbar_create,
+	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
+	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
+	XTjudge_scrollbars, x_scrollbar_expose,
+	x_scrollbar_background_expose, x_scrollbar_handle_click,
+	x_scrollbar_handle_motion): New functions to implement scrollbars.
+	(x_term_init): Set the termhooks.h hooks to point to them.
+	(x_set_window_size): Use new macros to calculate frame size.  Set
+	vertical_scrollbar_extra field.
+	(x_make_frame_visible): Use the frame accessor
+	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
+	frame's subwindows as well.
+	(XTread_socket): Use new size-calculation macros from xterm.h when
+	processing ConfigureNotify events.
+	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
+	PIXEL_TO_CHAR_HEIGHT macros.
+	* ymakefile (xdisp.o): This now depends on termhooks.h.
+	(xterm.o): This now depends on window.h.
+
+	* xdisp.c: #include "termhooks.h".
+	(redisplay, redisplay_window): Use set_vertical_scrollbar_hook,
+	condemn_scrollbars_hook, redeem_scrollbar_hook, and
+	judge_scrollbars_hook to make scrollbars redisplay properly.
+
+	* keyboard.c (Qscrollbar_movement, Qvertical_scrollbar,
+	Qabove_handle, Qhandle, Qbelow_handle): New symbols.
+	(make_lispy_event): New code to build scrollbar clicks.
+	(make_lispy_movement): New code to handle scrollbar movement.
+	(head_table): Include Qscrollbar_movement in the event heads.
+	(syms_of_keyboard): Init and staticpro Qvertical_scrollbar,
+	Qabove_handle, Qhandle, and Qbelow_handle.
+	* keyboard.h (Qscrollbar_movement): Declare this along with the
+	other event types.
+	* lisp.h (Qvertical_scrollbar): Declare this.
+	* window.c (window_from_scrollbar): New function.
+
+	* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
+	v_thumbdown, v_slider, h_scrollbar, h_thumbup,
+	h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
+	fields.
+	* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
+	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
+	Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
+	interface.
+	(head_table): Removed from here as well.
+	(syms_of_keyboard): And here.
+	* keyboard.h: And here.
+	(POSN_SCROLLBAR_BUTTON): Removed.
+	* xscrollbar.h: File removed - no longer necessary.
+	* xfns.c: Don't #include it any more.
+	(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
+	(syms_of_xfns): Don't initialize or staticpro them.
+	(gray_bits): Salvaged from xscrollbar.h.
+	(x_window_to_scrollbar): Deleted.
+	(x_set_horizontal_scrollbar): Deleted.
+	(enum x_frame_parm, x_frame_parms): Remove references to
+	x_set_horizontal_scrollbar.
+	(x_set_foreground_color, x_set_background_color,
+	x_set_border_pixel): Remove special code to support scrollbars.
+	(Fx_create_frame): Remove old scrollbar setup code.
+	(install_vertical_scrollbar, install_horizontal_scrollbar,
+	adjust_scrollbars, x_resize_scrollbars): Deleted.
+	* xterm.c (construct_mouse_click): This doesn't need to take care of
+	scrollbar clicks anymore.
+	(XTread_socket): Remove old code to support scrollbars.  Call new
+	functions instead for events which occur in scrollbar windows.
+	(XTupdate_end): Remove call to adjust_scrollbars; the main
+	redisplay code takes care of that now.
+	(enum window_type): Deleted.
+	* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.
+
+	* xterm.c (x_set_mouse_position): Clip mouse position to be within
+	frame.
+
+	* xterm.c: Adjust the first line of each page to have a reasonable
+	description.  This makes pages-directory more useful.
+
+	* xterm.c (x_do_pending_expose): Declare this routine only if
+	HAVE_X11 is not #defined; X11 doesn't need it.
+	(XTread_socket): Protect call to x_do_pending_expose with `#ifdef
+	HAVE_X11'. 
+
+	* xfns.c (syms_of_xfns): Delete defvars for x_mouse_x and
+	x_mouse_y.  That interface hasn't been live for years.
+	(x_mouse_x, x_mouse_y): Delete these variables.
+
+	* xterm.c (notice_mouse_movement): Deleted; obsolete and unused.
+
+	* keyboard.c (Fread_key_sequence): Doc fix.
+
+	* keyboard.c (make_lispy_event): Buttons are numbered starting
+	with zero now.
+
+	* keyboard.c (make_lispy_event): Use the proper accessors when
+	manipulating the `x' and `y' fields of struct input_event.
+
+	* keyboard.c (parse_modifiers_uncached): Remember that strncmp
+	returns zero if the two substrings are equal.
+
+	* keyboard.c (do_mouse_tracking, Ftrack_mouse): Doc fix.
+
+	* keyboard.c (read_char): Don't put mouse movements in
+	this_command_keys.
+
+	* xfns.c (Fx_create_frame): Don't initialize the wm_hints field here.
+	(x_window): Do it here, along with all the similar stuff.
+
+1992-12-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* callint.c (Fcall_interactively): For `s', use Fread_string.
+
+1992-12-20  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	Properly handle focus shift events, so the cursor is filled and
+	hollow at the appropriate times, even in titleless windows.
+	* xterm.c (x_focus_event_frame): New variable.
+	(XTread_socket): When we receive a FocusIn event that's not
+	NotifyPointer, record the frame in x_focus_event_frame.  When we
+	receive a FocusOut event that's not NotifyPointer, clear it.  When
+	we get a LeaveNotify event, don't take it seriously if we still
+	have focus.
+
+	* xterm.c (XTread_socket): Remove special code in EnterNotify case
+	to handle scrollbars and fake mouse motion events.
+
+1992-12-19  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* floatfns.c (Flog): Fix unescaped newline in string.
+	* frame.c (Fnext_frame): Same.
+	* textprop.c (Fprevious_single_property_change): Same.
+	(syms_of_textprop): Same, for DEFVAR for
+	`interval_balance_threshold'.
+
+	Change the meaning of focus redirection to make switching windows
+	work properly.  Fredirect_frame_focus has the details.
+	* frame.h (focus_frame): Doc fix.
+	[not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which
+	indicates no focus redirection, instead of zero, which is
+	selected_frame.
+	* frame.c (make_frame): Initialize f->focus_frame to Qnil, rather
+	than making it point to frame itself.
+	(Fselect_frame): If changing the selected frame from FOO to BAR,
+	make all redirections to FOO shift to BAR as well.  Doc fix.
+	(Fredirect_frame_focus): Doc fix.  Accept nil as a valid
+	redirection, not just as a default for FRAME.
+	(Fframe_focus): Doc fix.
+	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal
+	with focus redirections being nil.
+	* xterm.c (XTframe_rehighlight): Doc fix.  Deal with focus
+	redirections being nil.
+
+	* window.c (Fset_window_configuration): Don't restore the frame's
+	focus redirection if the target frame is now dead.
+
+	* ymakefile (ralloc.o): This no longer depends on xterm.h.
+
+	* ymakefile (all, xemacs): We build an executable called `emacs' now,
+	not `xemacs'.
+	* Makefile.in (distclean, xemacs, doxemacs): Same.
+
+	* xterm.h (PIXEL_WIDTH, PIXEL_HEIGHT): Change name of parameter
+	from `s' to `f'; it's a frame pointer.
+
+1992-12-18  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keyboard.c (kbd_buffer_frames): New vector, to GCPRO frames in
+	kbd_buffer.
+	(kbd_buffer_store_event): When we add an event to kbd_buffer, make
+	sure to store its frame in kbd_buffer_frames.
+	(kbd_buffer_get_event): When we remove an event from kbd_buffer,
+	make sure to set the corresponding element of kbd_buffer_frames to
+	Qnil, to allow the frame to get GC'd.
+	(Fdiscard_input, init_keyboard): Clear all elements of
+	kbd_buffer_frames to nil.
+	(syms_of_keyboard): Create and staticpro kbd_buffer_frames.
+
+	* xterm.c (x_error_quitter): Just abort, so we can look at the
+	core to see what happened.
+
+1992-12-17  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* buffer.c (Frename_buffer): Set update_mode_lines.
+
+1992-12-14  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* scroll.c (do_scrolling): When bcopying the max_ascent field from
+	current_frame to temp_frame, remember that max_ascent is an array
+	of shorts, not ints.
+
+	It's a pain to remember that you can't assign to FRAME->visible.
+	Let's change all references to the `visible' member of struct
+	frame to use the accessor macros, and then write a setter for the
+	`visible' field that does the right thing.
+	* frame.h (FRAME_VISIBLE_P): Make this not an l-value.
+	(FRAME_SET_VISIBLE): New macro.
+	* frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
+	(Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
+	FRAME_ICONIFIED_P.
+	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
+	FRAME_GARBAGED_P accessors.
+	* xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
+	* xfns.c (x_set_foreground_color, x_set_background_color,
+	x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
+	FRAME_VISIBLE_P accessor.
+	(Fx_create_frame): Use FRAME_SET_VISIBILITY.
+	* xterm.c (clear_cursor, x_display_bar_cursor,
+	x_display_box_cursor): Use FRAME_SET_VISIBILITY.
+
+1992-12-12  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* ymakefile (CFLAGS): #define HAVE_CONFIG_H too.
+
+	* Makefile.in (distclean): Don't delete machine.h or system.h;
+	they don't exist anymore.
+
+	* Makefile.in (distclean): Don't delete autosave or backup files.
+	(extraclean): New target; like distclean, but delete autosave
+	and backup files too.
+
+1992-12-11  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* search.c (Fskip_chars_forward, Fskip_chars_backward): Return the
+	distance traveled.
+	(skip_chars): Return the distance traveled, as a Lisp_Object.
+
+	* macros.c (Fend_kbd_macro): Don't use XFASTINT to check if arg is
+	negative; XFASTINT only works on values known to be positive.
+	(Fexecute_kbd_macro): Check QUIT in the repetition loop.  If the
+	macro is null, no characters are actually being read, so this
+	matters.
+
+	* Makefile.in (srcdir): New variable, not fully implemented.
+	(xmakefile): Turn -g and -O in CFLAGS into C_DEBUG_SWITCH and
+	C_OPTIMIZE_SWITCH in C_SWITCH_SITE's definition.  Delete junk.cpp
+	when done.
+	* ymakefile (archlib): Variable definition deleted.  Run programs
+	from ../lib-src directly, or use ${archlibdir}.
+	(${etc}DOC): Run make-docfile from ${libsrc}, not ${archlib}.
+	(${archlib}make-docfile, ${archlib}emacstool): Use ${libsrc}, not
+	${archlib}.
+
+	* ymakefile (lisp): Don't include version.el in this list.
+
+	Give subprocess creation a way to find a valid current directory
+	for subprocesses when the buffer's default-directory is a handled
+	name.
+	* fileio.c (Funhandled_file_name_directory): New function.
+	(Qunhandled_file_name_directory): New file-name-handler operation.
+	(syms_of_fileio): Defsubr Sunhandled_file_name_directory, and
+	initialize and staticpro Qunhandled_file_name_directory.
+	* callproc.c (Fcall_process): Call Funhandled_file_name_directory
+	on the buffer's default directory.  Do it earlier in the function
+	so there's less to GCPRO.
+	* process.c (create_process): Don't check the validity of the 
+	buffer's default directory here...
+	(Fstart_process): Instead, do it here; if we call
+	Funhandled_file_name_directory here, there's less GCPROing to do.
+
+	* callproc.c (Fcall_process_region): Return the value returned by
+	Fcall_process.
+
+	* fileio.c (find_file_handler): Rename this to
+	Ffind_file_name_handler, and make it visible to lisp.  Add a QUIT
+	to the loop which scans file-name-handler-alist.  All uses
+	changed.
+	(syms_of_fileio): Mention this new function in the docstring for
+	Vfile_name_handler_alist.  defsubr Sfind_file_name_handler.
+	* lisp.h (Ffind_file_name_handler): Added extern declaration.
+	* dired.c: All uses of find_file_handler changed here too.
+
+	* fileio.c (syms_of_fileio): Add staticpros for Qexpand_file_name,
+	Qdirectory_file_name, Qfile_name_directory,
+	Qfile_name_nondirectory, Qfile_name_as_directory.
+
+1992-12-07  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* window.c (Fset_window_configuration): If we're restoring the
+	configuration of a dead frame, don't bother rebuilding its window
+	tree, restoring its focus redirection, or temporarily resizing it
+	to fit the saved window configuration.  If the frame which was
+	selected when the configuration was captured is now dead, don't
+	try to select it.
+
+	* frame.c (Fdelete_frame): Delete all the windows in the frame's
+	window tree, using delete_all_subwindows.
+	* window.c (delete_all_subwindows): Don't make this static
+	anymore.
+
+1992-12-03  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+        Make sure that frames' visible flag only changes at acceptable
+	times.  See FRAME_SAMPLE_VISIBILITY's comments for details.
+	* frame.h (struct frame): New fields called async_visible and
+	async_iconified.
+	(FRAME_SAMPLE_VISIBILITY): New macro, with MULTI_FRAME and
+	non-MULTI_FRAME definitions.
+	* xdisp.c (redisplay): Call FRAME_SAMPLE_VISIBILITY to set the
+	visible and iconified flags appropriately for each frame.
+	(message1): Call FRAME_SAMPLE_VISIBILITY to set the visible and
+	iconified flags for the minibuffer frame.
+	* frame.c (make_frame): Initialize async_visible and
+	async_iconified properly.
+	* xfns.c (Fx_create_frame): Initialize f->async_visible too.
+	* xterm.c (XTread_socket): When we get MapNotify, UnmapNotify,
+	Expose, ExposeWindow, or UnmapWindow, set f->async_visible, not
+	f->visible.
+	(x_do_pending_expose, x_raise_frame, x_lower_frame,
+	x_make_frame_invisible, x_make_frame_visible, x_iconify_frame):
+	Test and set f->async_visible and f->async_iconified, not
+	f->visible or f->async_iconified.
+
+	* keyboard.c (kbd_store_ptr): Declare this to be volatile, if
+	__STDC__ is #defined.
+	(Fdiscard_input): Use cast to keep GCC from complaining about the
+	assignment of kbd_store_ptr to kbd_fetch_ptr.
+
+	* xdisp.c (redisplay): Use FOR_EACH_FRAME to apply
+	redisplay_windows to the root window of each frame.  This makes a
+	#ifdef MULTI_FRAME unneeded, but it also means we recompute
+	buffer_shared from scratch even on non-MULTI_FRAME configurations.
+	Don't skip elements of Vframe_list that aren't frames; go ahead
+	and crash here.
+
+	* xdisp.c (redisplay): Remove #ifdef MULTI_FRAME around the code
+	which updates separate minibuffer frames specially; there's
+	nothing there that won't work on a single-frame configuration.
+
+	* dispextern.h (struct frame_glyphs): Doc fix.
+
+1992-12-02  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* dispnew.c: Remove dyked-out copy of safe_bcopy.
+
+	* environ.c: File removed; Changes on 1/13/1992 made it
+	unnecessary.
+
+1992-12-01  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* process.c (wait_reading_process_input): Doc fix.
+
+1992-11-26  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* next.h: Copy changes from 18.59:
+	(NeXT): Defined.
+	(BIG_ENDIAN): Define only if __BIG_ENDIAN__.
+	(m68000, COMPILER_REGISTER_BUG): Defs deleted.
+	(SIGN_EXTEND_CHAR, LIB_X11_LIB, NO_T_CHARS_DEFINES, UNEXEC): Defined.
+	(LIBS_DEBUG, LIB_GCC, C_SWITCH_MACHINE, ORDINARY_LINK): Defined.
+	(TEXT_START, TEXT_END, DATA_END, LD_SWITCH_MACHINE): Defined.
+	(KERNEL_FILE): #undef it.
+	(environ): Define as _environ.
+
+1992-11-25  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* doc.c (store_function_docstring): New function, made from part
+	of Fsnarf_documentation, which handles docstrings for macros
+	properly.
+	(Fsnarf_documentation): Call store_function_docstring.
+
+	* data.c (indirect_function): Delete unused argument ERROR.
+
+1992-11-23  Jim Blandy  (jimb@apple-gunkies.gnu.ai.mit.edu)
+
+	* Makefile.in (clean): Remove prefix-args.
+
+1992-11-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/sol2.h (LD_SWITCH_SYSTEM): Make alternate version for GCC.
+
+1992-11-19  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* m/sparc.h: Don't include <sys/param.h> here; that screws up the
+	xmakefile.  Instead, include it in getloadavg.c, which is the only
+	place that uses LOAD_AVE_CVT, which is the only reason
+	<sys/param.h> was here in the first place.
+
+1992-11-15  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* dispnew.c [not MULTI_FRAME] (Fredraw_display): Pass the correct
+	number of arguments to mark_window_display_accurate.
+
+	* undo.c (Fprimitive_undo): Remove whitespace in front of #ifdef
+	and #endif.
+
+	* systty.h: Doc fix.
+	
+	* systty.h, process.c, buffer.h, callproc.c, sysdep.c, dired.c:
+	Added VMS changes from Roland Roberts.
+	* vmspaths.h: New version from Roland Roberts.
+
+	* xdisp.c (display_string): Use w's buffer's value of
+	tab-width to display the string, instead of the current buffer's,
+	which could be anything.
+
+	* s/sol2.h (LD_SWITCH_SYSTEM): Add -R option.
+
+	* process.c (read_process_output): Save, widen, insert the process
+	output, and then restore the restriction if inserting text outside
+	the visible region.
+
+1992-11-14  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* buffer.c (Ferase_buffer): Doc fix.
+
+	* dispnew.c (safe_bcopy): Use the right terminating condition in
+	the loop which uses multiple bcopy calls to transfer a block to an
+	overlapping higher block.
+
+1992-11-13  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* process.c (Fstart_process): Establish an unwind-protect to
+	remove PROC from the process list if an error occurs while
+	starting it.
+	(start_process_unwind): New function to help with that.
+	(create_process): There's no need to explicitly call
+	remove_process if the fork fails; the record_unwind_protect in
+	Fstart_process will take care of it.
+
+	* commands.h (unread_command_event): Doc fix.
+
+	Don't ever throw away switch-frame events.
+	* lread.c: #include "keyboard.h".
+	(Fread_char, Fread_char_exclusive): Don't signal an
+	error for or throw away switch-frame events; instead, put them off
+	until after we've found a character we can respond to.
+	* commands.h (unread_switch_frame): Declare this extern.
+	* keyboard.c (unread_switch_frame): Don't declare this static.
+	* ymakefile (lread.o): Note that this depends on keyboard.h.
+
+	* keyboard.c (Vlast_event_frame): Doc fix.
+
+	* process.c (wait_reading_process_input): Test the C preprocessor
+	symbol "ultrix", not "__ultrix__" to see if we should ignore
+	ENOMEM errors from select.
+
+	* fileio.c (Fexpand_file_name): Don't fiddle with "/." if it's the
+	entire string.
+
+	* buffer.c (Fbury_buffer): Make this behave as in 18.59, although
+	that behavior is very odd - only remove the buffer from the
+	selected window if BUFFER was nil or omitted.
+
+	* keyboard.c (read_char): Write composite events to the dribble
+	file properly.
+
+	* keyboard.c (init_keyboard): Initialize Vlast_event_frame to
+	Qnil, rather than the selected frame.
+
+	* mem-limits.h [DATA_SEG_BITS] (EXCEEDS_LISP_PTR): Remember to
+	remove DATA_SEG_BITS from the pointer before testing if the
+	pointer fits in VALBITS.
+
+	* Makefile.in (doxemacs, dotemacs): Explicitly pass along the CC
+	variable in these rules, just as in the `doall' rule.
+
+	* ralloc.c (relocate_some_blocs): Handle BLOC == NIL_BLOC.
+	(free_bloc): This can now be simplified.
+
+	* ralloc.c (r_alloc_sbrk): When we allocate new space for the
+	malloc heap, zero it out even if we don't have any blocs in the
+	free list.
+
+1992-11-12  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* process.c (process_send_signal): On systems which have both
+	the TIOCGETC and TCGETA ioctls, just use the former.
+
+	* xselect.c (Fx_get_cut_buffer): Correct check for buf_num in
+	range.
+
+	* xselect.c (Fx_get_cut_buffer, Fx_set_cut_buffer): Fix error
+	message format; use NUM_CUT_BUFFERS instead of literal 7.
+
+	* keyboard.c (lispy_modifier_list): Added sanity check before
+	indexing into modifier_symbols.
+
+	* keyboard.c (add_command_key): When copying the contents of the
+	old this_command_keys to new_keys, remember to multiply size by
+	sizeof (Lisp_Object) to get the amount we really need to copy.
+
+	Rename unread_command_char to unread_command_event; it has
+	subtly different semantics now, and we should use
+	`make-obsolete-variable' to warn people.
+	* command.h (unread_command_char): Change name in extern declaration.
+	* keyboard.c (unread_command_char): Rename.
+	(command_loop_1, read_char, Finput_pending, Fdiscard_input,
+	quit_throw_to_read_char, init_keyboard, syms_of_keyboard): Change
+	references.
+	* lread.c (Fread_char): Change reference.
+	* minibuf.c (temp_echo_area_glyphs): Change reference to
+	unread_command_char to unread_command_event.
+	* xfns.c (unread_command_char): Change name in extern declaration
+	to unread_command_event.
+
+1992-11-11  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* m/pmax.h: Don't define SYSTEM_MALLOC; this was only necessary
+	for Ultrix version 4.1, and the current version is 4.3.
+
+	* s/bsd4-2.h, s/bsd4-3.h: #define SIGNALS_VIA_CHARACTERS.
+	* process.c (process_send_signal): Put all the code for sending
+	signals via characters in a #ifdef SIGNALS_VIA_CHARACTERS.  Decide
+	whether to use the Berkeley-style or SYSV-style ioctls by seeing
+	which ioctl commands are #defined.
+
+	* minibuf.c (read_minibuf): If get_minibuffer gives the
+	new minibuffer a nil default directory, find another buffer with a
+	better default directory and use that one's instead.
+
+1992-11-10  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* process.c (process_send_signal): Doc fix.
+
+	* keyboard.c (read_key_sequence): Don't use
+	save_excursion_{save,restore} to protect the caller against buffer
+	switches; use Fset_buffer and Fcurrent_buffer; redisplay might
+	change point, and we don't want to undo that.
+
+	* keyboard.c (kbd_buffer_get_event): When checking a mouse
+	movement for a frame switch, don't assume Vlast_event_frame
+	contains a Lisp_Frame object.
+
+1992-11-06  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/dgux.h (SYSTEM_TYPE): Use berkeley-unix.
+
+1992-11-04  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* alloc.c: #include "frame.h" unconditionally.  frame.h does the
+	right thing when MULTI_FRAME isn't defined.
+
+	* Makefile.in: Rearrange dependencies to make sure that xmakefile
+	is built before we try to use it, even using a parallel make.
+
+	Changes for SYSV from Eric Raymond:
+	* process.c [SYSV]: Don't include <termios.h>, <termio.h>, or
+	<fcntl.h>.
+	(process_send_signal): Don't try to send SIGTSTP
+	unless SIGTSTP is defined.
+	* sysdep.c (init_baud_rate) [HAVE_TERMIO, not HAVE_TCATTR]: Use
+	TCGETA, not TIOCGETP.
+	* systime.h [USG] (EMACS_GET_TZ_OFFSET): Assign to *(offset), not
+	(offset).  Don't forget the while corresponding to the do.
+	Include USG in the list of systems that have a tzname array.
+
+	* keyboard.c (read_key_sequence): Removed the
+	replay_sequence_new_buffer label; replay_sequence should be here
+	instead.
+
+	Arrange to get compile-time errors for uses of Lisp_Frame in a
+	non-MULTI_FRAME configuration.
+	* lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag.
+	* minibuf.c (read_minibuf): Protect call to Fredirect_frame_focus
+	with a #ifdef MULTI_FRAME.
+	* window.c (Fset_window_configuration): Protect call to
+	Fselect_frame with a #ifdef MULTI_FRAME.
+	[not MULTI_FRAME] (Fcurrent_window_configuration): Don't bother
+	setting the window configuration's selected_frame member.
+	* keyboard.c (Vlast_event_frame): Arrange for this to exist iff
+	MULTI_FRAME is defined.
+	[not MULTI_FRAME] (syms_of_keyboard): Don't DEFVAR Vlast_event_frame.
+	[not MULTI_FRAME] (read_char): Don't try to set Vlast_event_frame.
+	[not MULTI_FRAME] (kbd_buffer_store_event): Don't try to set
+	Vlast_event_frame for quit characters.
+	[not MULTI_FRAME] (kbd_buffer_get_event): Don't try to generate
+	switch-frame events.
+
+	* buffer.c (init_buffer): If PWD is accurate, use it instead of
+	calling getwd.
+	#include <sys/types.h> and <sys/stat.h>, for the call to stat.
+
+        Indicate whether an autoload form stands for a keymap or not.
+	* eval.c (Fautoload): Renamed fifth argument TYPE.  Document the
+	fact that (eq TYPE 'keymap) means FUNCTION will become a keymap
+	when loaded.
+	(Fmacroexpand): Instead of assuming that every autoload
+	form with a fifth element is a macro, actually check the fifth
+	element against t and `macro', which are the only values which
+	denote macroness.
+	* keymap.c (get_keymap_1): Don't try to autoload OBJECT's function
+	unless the autoload form indicates that it's a keymap.
+
+1992-11-03  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* .gdbinit (mips): New command.
+
+1992-10-31  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c (Fmake_directory_internal): Renamed from Fmake_directory.
+	Pass nil as third arg to handler.
+	Lisp function `make-directory' is now in files.el.
+
+1992-10-30  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	Clean up errors due to treating Lisp_Objects like integers.
+	* abbrev.c (Funexpand_abbrev): Just assign the last abbrev's value
+	to val; don't use XSET.  Make sure that the value of the
+	abbrev-symbol is a string.
+	* alloc.c (Frope_elt): Declare arguments to be Lisp_Objects.
+	* buffer.c (reset_buffer): Don't assign to b->save_length as if it
+	were an int; use XFASTINT.
+	* buffer.h (Fbuffer_name, Fget_file_buffer): Added external
+	declarations.
+	* bytecode.c (Fbyte_code): Use EQ to compare string_saved with
+	bytestr.
+	* casefiddle.c (operate_on_word): Declare end to be an int, not a
+	Lisp_Object.
+	* casetab.c (set_case_table): Declare this to be static, and
+	return a Lisp_Object. Add static declaration for this
+	before Fset_case_table and Fset_standard_case_table.
+	(Fset_case_table, Fset_standard_case_table): Return the return
+	value of set_case_table, instead of returning garbage.
+	* commands.h (unread_command_char): Declare this to be a
+	Lisp_Object, not an int.
+	* data.c (Fset): See if current_alist_element points to itself
+	using EQ, not ==.
+	(float_arith_driver): Declare this extern above arith_driver.
+	* dired.c (find_file_handler): Declare this extern.
+	(Ffile_attributes): Use NILP, not == Qnil.
+	* dispextern.h (sit_for): Declare this extern.
+	* doc.c: #include keyboard.h.
+	* floatfns.c (Flog): Don't forget to declare the BASE argument a
+	Lisp_Object.
+	* fns.c: #include keyboard.h.
+	(Fdelete): Check if Fequal returns Qnil, not zero.
+	* frame.c: #include buffer.h.
+	* keyboard.c: #include dispextern.h.
+	(recursive_edit_unwind, command_loop, Fthis_command_keys): Declare
+	these to return Lisp_Objects at the very top of the file, to avoid
+	having them implicitly declared as ints.
+	(echo_char): Use EQ to compare C to help_char.
+	(read_char): Remember to apply XFASTINT to the return value of
+	Flength before using it.  Apply XINT to c when clearing its high
+	bits and meta bits, and when writing it to the dribble file.
+	(read_char_menu_prompt): Use EQ to compare obj with
+	menu_prompt_more_char and its control-character analog.
+	(read_key_sequence): Declare PROMPT to be char *, not a
+	Lisp_Object.  Use the appropriate accessors on keybuf when looking
+	for ASCII function key sequences.
+	* keyboard.h (get_keymap_1, Fkeymapp, reorder_modifiers,
+	Fmouse_click_p, read_char): Add external declarations for these.
+	* keymap.c (Fdefine_key, Flookup_key, describe_map): Don't assume
+	that Flength returns an integer.
+	* lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
+	Fmake_byte_code, Fverify_visited_file_modtime, Ffile_exists_p,
+	Fdirectory_file_name, Ffile_name_directory,
+	expand_and_dir_to_file, Ffile_accessible_directory_p, Fbyte_code,
+	Fundo_boundary, truncate_undo_list): Add extern declarations for
+	these.
+	* lread.c (read_char): Add an extern declaration for this,
+	indicating that it returns a Lisp_Object.
+	* minibuf.c (read_minibuf): Use EQ to compare, not ==.
+	(temp_echo_area_glyphs): Use XFASTINT to assign to
+	unread_command_char.
+	* print.c (print): Cast the frame's address to an integer before
+	passing it to sprintf to form the frame's printed form.
+	* process.c: (status_convert): Declare this to return a
+	Lisp_Object at the top of the file.
+	(decode_status): Don't untag XCONS (tem)->cdr before storing it in
+	tem; tem is a Lisp_Object, too.
+	(process_send_signal): Declare this to be static void.  Don't
+	return Qnil; nobody cares.
+	(sigchld_handler): Use XFASTINT to manipulate p->infd.
+	* search.c (Fstore_match_data): Don't assume Flength returns a
+	C integer.
+	* undo.c (record_insert): Use accessors on BEG and LENGTH.
+	(truncate_undo_list): Use NILP, not == Qnil.
+	* window.c (Fwindow_width, Fset_window_hscroll): Use accessors on
+	w->width, w->left, w->hscroll, and arguments.
+	(replace_window): Use EQ, not ==.
+	(Fdelete_window): p->top and p->left are not C integers.
+	(Fnext_window, Fprevious_window): Use EQ, not ==.
+	* window.h (make_window, window_from_coordinates,
+	Fwindow_dedicated_p): Add extern declarations for these.
+	* xdisp.c (redisplay): Use ! EQ to compare the old and new arrow
+	positions, not !=.
+	(mark_window_display_accurate): Barf if WINDOW isn't a window.
+	(display_string): Test buffer_defaults.ctl_arrow using NILP,
+	instead of comparing it with zero.
+	* xfns.c (x_decode_color, Fx_color_display_p): x_screen_planes is
+	an int, not a Lisp_Object.
+	(x_set_mouse_color): Give separate error messages for the
+	different cursors we try to set.
+	(Fx_geometry): Declare STRING to be a Lisp_Object.
+	(Fx_create_frame): No need to use XSET to assign NAME to f->name;
+	they're both Lisp_Objects.
+	(adjust_scrollbars): Use XINT to access w->hscroll.
+	(Fx_open_connection): x_screen_count, x_release, x_screen_height,
+	x_screen_height_mm, x_screen_width, x_screen_width_mm,
+	x_save_under, and x_screen_planes are integers, not Lisp_Objects.
+	(syms_of_xfns): x_mouse_x, x_mouse_y, and mouse_buffer_offset are
+	integers, not Lisp_Objects.
+	* xselect.c (own_selection): selection_type is an X Atom value,
+	not a Lisp_Object.
+	(x_selection_arrival): Declare this static, and add a forward
+	declaration at the top of the page.
+	* xterm.c (x_convert_modifiers): Declare this to return an
+	unsigned int, not a Lisp_Object.  Remember that the quiescent
+	value for part is Qnil, not zero, that x_mouse_x and x_mouse_y
+	are ints, not Lisp_Objects, and that RESULT->x and RESULT->y are
+	Lisp_Objects, not ints.
+	(XTread_socket): Declare this to return int, not Lisp_Object.
+	When calling construct_mouse_click on a non-scrollbar click, pass
+	PART as Qnil, not zero.
+	(x_calc_absolute_position): Remember that x_screen_width and
+	x_screen_height are ints, not Lisp_Objects.
+	* xterm.h (x_screen_count, x_release, x_screen_height,
+	x_screen_height_mm, x_screen_width, x_screen_width_mm,
+	x_save_under, x_screen_planes): Declare this as ints, to match
+	their definitions in xterm.c.
+	* ymakefile: Note the new dependencies caused by the new
+	#inclusions above.
+
+	* xdisp.c (last_arrow_position, last_arrow_string): Make these
+	static.
+
+	* process.c (pty_process): Variable deleted; it's no longer used.
+	(syms_of_process): Don't initialize it.
+
+	* buffer.h (struct buffer_local_types): This declaration needed an
+	extern qualifier.
+
+	* floatfns.c (Fexpt): Don't return the value of the XSET function
+	call; that's not guaranteed to be the value assigned.
+
+	* dired.c (Ffile_attributes): Doc fix.
+
+	* lisp.h (DEFVARLISP, DEFVARBOOL, DEFVARINT, DEFVARPERBUFFER):
+	Removed these definitions; we should be using the versions whose
+	names use underscores.
+
+	* keyboard.c (echobuf): Make this 300 characters, not 100.  This
+	isn't a real fix, but it's quick.
+
+1992-10-30  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* callint.c (preserved_fns): New var.
+	(Fcall_interactively): Preserve all fns listed in preserved_fns.
+	(syms_of_callint): Set preserved_fns and staticpro it.
+	Don't set up Qregion_beginning or Qregion_end.
+
+1992-10-29  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dispnew.c (count_blanks): Leave argument r constant, and increment p.
+
+1992-10-28  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xdisp.c (message): Re-write this in terms of message1.
+	(message1): Move code to clear out echo_area_glyphs and
+	previous_echo_glyphs from message to here.
+
+	* keyboard.c (read_char): When returning an unread switch-frame
+	event, jump to reread_first to return it, rather than reread; this
+	makes sure the event gets echoed (if appropriate) and goes into
+	this_command_keys.
+
+	* keyboard.c (read_key_sequence): If the key sequence starts with
+	a mouse click, read the key sequence using the keymaps of the
+	buffer clicked on, not the current buffer.
+
+	* keyboard.c (unread_switch_frame): Make this static, to indicate
+	that nobody outside of this file uses it.
+
+	* keymap.c: Deal with autoloaded keymaps properly.
+        (get_keymap_1): Renamed to inner_get_keymap; made
+	static.  New argument AUTOLOAD says to pursue autoloads if
+	non-zero.
+	(Fkeymapp, get_keymap, get_keyelt, Flookup_key): Ask get_keymap_1
+	not to perform autoloads.
+	(Fdefine_key): Ask get_keymap_1 to perform autoloads.  Since
+	autoloading may GC, remember that we have to GCPRO our local
+	variables now.
+	(Fminor_mode_key_binding): Call get_keymap instead of calling
+	get_keymap_1 with equivalent arguments.
+	* keyboard.c (follow_key): Ask get_keymap_1 to perform autoloads.
+	(read_key_sequence): When pursuing potential bindings in the
+	function key map, ask get_keymap_1 to perform autoloading.  This
+	is hardly important, but it's consistent.
+	* doc.c (Fsubstitute_command_keys): Ask get_keymap_1 to
+	perform autoloads.  Autoloading might GC; we need to GCPRO our
+	local variables now.
+	(Fdocumentation, Fdocumentation_property): Autoloading in
+	Fsubstitute_command_keys might GC; we need to GCPRO our
+	local variables now.
+
+1992-10-28  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/irix3-3.h (HAVE_SETSID, IRIX): Defined.
+
+	* s/irix4-0.h: New file.
+
+1992-10-27  Noah Friedman  (friedman@nutrimat.gnu.ai.mit.edu)
+
+        * sysdep.c (get_system_name): Use gethostname for USG systems if
+        HAVE_GETHOSTNAME is defined.
+        * s/hpux7.h, s/irix3-3.h (HAVE_GETHOSTNAME): Define it.
+
+1992-10-27  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* callproc.c: Arrange for synchronous processes to get SIGINT the
+	first time the user quits, or SIGKILL if the user quits again.
+	#include "syssignal.h".
+	(call_process_kill): New function.
+	(call_process_cleanup): Send SIGINT to the subprocess, and then
+	arrange to call call_process_kill if the user quits while we wait
+	for it to terminate.
+	(Fcall_process, Fcall_process_region): Doc fix.
+
+1992-10-27  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* unexmips.c [sony, IRIS_4D]: Include getpagesize.h and fcntl.h.
+	(unexec): #if 0 the error check of hdr.fhdr.f_nscns.
+	Clear text_section->s_scnptr.
+
+	* callint.c (Fcall_interactively): Preserve (region-beginning)
+	and (region-end) into the command history when they appear
+	in an interactive spec which is a call to `list'.
+
+	* batcomp.com: New file.  Waiting for papers from richard@ttt.kth.se.
+
+1992-10-23  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* emacs.c (main): Correct spelling of HAVE_X_WINDOW to
+	HAVE_X_WINDOWS in conditionals around the call to syms_of_xmenu.
+
+1992-10-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ralloc.c (relinquish):
+	Adjust page_break_value by amount of memory actually given back.
+	(r_alloc_sbrk): Provide hysteresis in relocating the blocs.
+
+1992-10-22  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ralloc.c (relinquish): Sign of arg to *real_morecore was backwards.
+
+1992-10-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ralloc.c (relinquish): Never free less than extra_bytes;
+	keep extra_bytes of empty space.
+	(obtain): Always get extra_bytes additional space.
+	(r_alloc_init): Set extra_bytes and page_size.
+	(ALIGNED, ROUNDUP, ROUND_TO_PAGE): Use page_size.
+
+1992-10-20  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (syms_of_keyboard): Properly staticpro this_command_keys.
+
+	* mem-limits.h (get_lim_data): Make it static.
+
+	* ymakefile (mallocobj): Use vm-limit.o along with ralloc.o.
+
+	* ralloc.c [emacs]: Define POINTER and SIZE.
+	[!emacs]: Delete definition of EXCEEDS_LISP_PTR.
+
+	* eval.c (grow_specpdl): Increase max_specpdl_size before Fsignal.
+
+1992-10-19  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xfns.c (x_set_face): Dyked out this function; it has no callers,
+	and refers to an obsolete version of struct face.
+
+	* xterm.c (compose_status): New variable.
+	(XTread_socket): Pass it by reference to XLookupString.
+
+1992-10-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/esix5r4.h (BROKEN_FIONREAD): Defined.
+
+1992-10-16  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/vms5-5.h: New file.
+
+1992-10-16  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* xdisp.c (message): If M is zero, clear echo_area_glyphs and
+	previous_echo_glyphs, so that the minibuffer shows through.
+*       * editfns.c (Fmessage): With no arguments, clear any active
+	message; let the minibuffer contents show through.
+	* minibuf.c (temp_echo_area_glyphs): Don't clear echo_area_glyphs
+	and previous_echo_glyphs; let message do that work.
+
+	* keyboard.c (this_command_keys): Make this a vector, instead of
+	an array of Lisp_Objects.
+	(this_command_keys_size): Deleted.
+	(echo, add_command_key, Fthis_command_keys): Adjusted
+	appropriately.
+	(init_keyboard): Don't allocate it here.
+	(syms_of_keyboard): Allocate it here, and staticpro it.
+	* keyboard.h (this_command_keys): Extern declaration changed.  Doc fix.
+        * callint.c (Fcall_interactively): Change handling of 'e' spec;
+	this_command_keys is now a vector.
+
+	* keyboard.c (read_char): Call ourselves with the appropriate
+	number of arguments.
+	(read_char_menu_prompt): If USED_MOUSE_MENU is zero, don't try to
+	store things in it.
+
+	* window.c: Try to deal coherently with deleted windows:
+*	(Flive_window_p): New function.
+	(Qlive_window_p): New variable, to name it in type errors.
+	(syms_of_window): Defsubr Slive_window_p, init and staticpro
+	Qlive_window_p.
+	* lisp.h (CHECK_LIVE_WINDOW): New predicate.
+	(Qlive_window_p): Extern declaration for this.
+	* window.c (decode_window): Use CHECK_LIVE_WINDOW instead of
+	CHECK_WINDOW; the only thing a user should be able to do to a dead
+	window is check its type.
+	(Fcoordinates_in_window_p, Fnext_window, Fprevious_window,
+	Fdelete_other_windows, Fselect_window, Fsplit_window,
+	Fscroll_other_window): Use CHECK_LIVE_WINDOW instead of
+	CHECK_WINDOW.
+	* frame.c (make_frame_without_minibuffer, Fwindow_frame): Same.
+	* sunfns.c (Fsun_menu_internal): Same.
+	* xmenu.c (Fx_popup_menu): Same.
+	* window.c (Fdelete_window): If WINDOW is a deleted window, do nothing;
+	there's no harm in allowing people to delete deleted windows.
+	Delete all of WINDOW's subwindows, too.
+	(delete_all_subwindows): Set the buffer, vchild, and hchild of the
+	windows we delete all to nil.
+	* window.h (struct window): Doc fix.
+
+	* window.c (Fwindow_minibuffer_p): Make the WINDOW argument
+	optional, like all the other window-querying functions.
+
+	* window.c (Fpos_visible_in_window_p): Use decode_window to handle
+	the WINDOW argument, instead of writing out that function's code.
+
+	* window.c (check_frame_size): Don't define this extern; that
+	doesn't mean anything.
+
+	* xterm.c: Clean up some of the caps lock handling:
+	(x_shift_lock_mask): New variable.
+	(x_find_modifier_mappings): Set it, based on the modifier mappings.
+	(x_convert_modifiers): Use x_shift_lock_mask, instead of assuming
+	that the lock bit always means to shift the character.
+	(XTread_socket): When handling KeyPress events, don't pass an
+	XComposeStatus structure along to XLookupString.  When handling
+	MappingNotify events, call XRefreshKeyboardMapping for both
+	MappingModifier and MappingKeyboard events, not just the latter.
+
+1992-10-15  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* window.c (Fdelete_window): Choose an alternative when we delete
+	any frame's selected window, not just when we delete the selected
+	frame's selected window.
+
+1992-10-15  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* vm-limit.c (check_memory_limits): Declare __morecore.
+	Remove unused variable `result'.
+
+1992-10-15  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* vm-limit.c (morecore_with_warning): Removed.
+	(check_memory_limits): New fn; most code from
+	morecore_with_warning, but only checks limits, doesn't do any work.
+	(memory_warnings): Set __after_morecore_hook to check_memory_limits;
+	don't set __morecore.
+
+1992-10-14  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* intervals.c (traverse_intervals): New parameter `depth'.
+	Increment this when passing recursively.
+
+	* alloc.c (mark_interval_tree): Pass 0 as initial depth argument
+	to traverse_intervals.
+
+	* xterm.h: Declaration of struct face removed.
+
+	* dispextern.h: New element of frame structure `max_ascent'.
+	Removed elements `nruns' and `face_list'.
+	LINE_HEIGHT and LINE_WIDTH macros removed.
+	New struct face with associated typedef FACE declared, along with
+	accessing macros.
+
+	* scroll.c (do_scrolling): Don't bcopy non-existant `nruns' or
+	`face_list' elements.  Do copy new `max_ascent' frame element.
+
+	* dispnew.c (scroll_frame_lines): All references to frame elements
+	`nruns' and 'face_list' removed.  Handle new element `max_ascent'.
+	(free_frame_glyphs): Don't free nonexistent elements `nruns' and
+	`face_list';  do free `max_ascent' element.
+	(make_frame_glyphs): Don't allocate nonexistent elements `nruns'
+	and `face_list';  do allocate `max_ascent' element.
+	(update_frame): Replaced use of macro LINE_HEIGHT with element
+	frame element `pix_height'.
+
+1992-10-14  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keyboard.c (modify_event_symbol): Arrange to set the
+	click_modifier bit on otherwise unmodified mouse clicks.
+
+	* keymap.c (store_in_keymap): Don't forget to QUIT in the
+	keymap-scanning loop.  Don't treat vectors as binding tables if
+	they're the wrong length.
+
+1992-10-12  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (kbd_buffer_get_event): Remember that
+	*mouse_position_hook may set *FRAME to 0; don't generate
+	switch-frame events in this case.  Fix fencepost bug in fetching
+	events from keyboard buffer.
+
+1992-10-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (ralloc.o): Delete dep mem_limits.h
+	(vm-limit.o): Rename dep to mem-limits.h.
+
+1992-10-12  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* ralloc.c: Removed #include "mem-limits.h".
+	[emacs]: Moved #undef NULL and #include "getpagesize.h" here.
+	[! emacs]: #include <unistd.h>, <malloc.h>, <string.h>.
+	(r_alloc_init): Use NIL, not NULL.
+
+1992-10-12  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* ralloc.c (sbrk): Removed decl.
+	(real_morecore): New static variable.
+	(warnlevel, warn_function, check_memory_limits): Removed.
+	(obtain): Don't call check_memory_limits.
+	(obtain, relinquish, r_alloc_sbrk): Use (*real_morecore) in place
+	of sbrk; it returns 0 for errors, not -1.
+	(r_alloc_init): Set real_morecore to old value of __morecore.
+	Don't initialize lim_data or warnlevel, and don't call get_lim_data.
+	(memory_warnings): Function removed.
+
+1992-10-12  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* vm-limit.c (warnfunction): Renamed to warn_function (was used
+	inconsistently).
+	(morecore_with_warning, memory_warnings): Change callers (were
+	inconsistent).
+
+1992-10-12  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* mem-limits.h (start_of_data): Removed extra defn.
+	(get_lim_data): Define to return void.
+
+1992-10-12  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* mem_limits.h: File renamed to mem-limits.h.
+	* vm-limit.c, ralloc.c: Changed #includes.
+
+1992-10-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* syntax.c (find_defun_start): scan_buffer returns start of line;
+	no need to advance over newline.
+
+	* vm-limit.c (morecore_with_warning):
+	Reduce warnlevel when usage drops far enough.
+	* ralloc.c (check_memory_limits): Likewise.
+
+	* vm-limit.c (memory_warnings): Renamed from malloc_init.
+	Don't set lim_data or warnlevel.  Use start_of_data if start is 0.
+	* ralloc.c (memory_warnings): New function; just set warning data.
+	Use start_of_data if start is 0.
+	* emacs.c (Fdump_emacs, main): Use memory_warnings.
+
+	* mem_limits.h [!emacs]: Don't define POINTER, SIZE or NULL.
+	(start_of_data): Define as macro, if !emacs.
+	* ralloc.c [!emacs]: Don't include config.h or lisp.h;
+	instead, use stddef.h.  Define POINTER, SIZE, EXCEEDS_LISP_PTR.
+	* vm-limit.c [!emacs]: Don't include config.h or lisp.h;
+	instead, use stddef.h.  Define POINTER, SIZE, EXCEEDS_LISP_PTR.
+
+	* ralloc.c [!emacs] (safe_bcopy): Define as macro using memmove.
+	(r_alloc_free): Clear *ptr.
+	(r_alloc_init): Renamed from malloc_init.  Take no args.
+	Make it static; declare at top of file.
+	(r_alloc): Call r_alloc_init, if not initialized yet.
+	(r_alloc_initialized): Renamed from malloc_initialized; moved to top.
+	(ROUNDUP): Subtract 1, in case arg is already aligned.
+
+	* mem_limits.h (EXCEEDS_LISP_PTR): Renamed from EXCEEDS_ELISP_PTR.
+	* vm-limit.c (morecore_with_warning): Use EXCEEDS_LISP_PTR.
+	* ralloc.c (check_memory_limits): Use EXCEEDS_LISP_PTR.
+
+1992-10-10  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* keyboard.c (Vlast_event_frame): Make this variable exist even
+	when MULTI_FRAME isn't #defined.  People might find it
+	necessary for writing correct programs, even when the programs
+	don't explicitly use multiple frames.
+	(read_char, kbd_buffer_store_event, kbd_buffer_get_event): No need
+	to test MULTI_FRAME before setting Vlast_event_frame.
+	(syms_of_keyboard): DEFVAR Vlast_event_frame whether or not
+	MULTI_FRAME is defined.
+
+        * keyboard.c: Add switch-frame events.
+	(Qswitch_frame): New event header symbol.
+	(head_table): Include Qswitch_frame in the table of event heads.
+	(kbd_buffer_get_event): Detect when a frame switch has occurred,
+	and return a frame switch event before the enqueued event.
+	(make_lispy_switch_frame): New function.
+	(unread_switch_frame): New variable.
+	(read_key_sequence): Don't throw away the key sequence if the user
+	switches frames in the middle of the sequence.  Instead, when we
+	receive a switch-frame event in the middle of a key sequence, save
+	it, and stuff it into unread_switch_frame when the sequence
+	is complete.
+	(read_char): If unread_switch_frame is set, return that value.
+	(command_loop_1): No need to check Vlast_event_frame and select
+	new frames here; that's taken care of by switch-frame events now.
+	(syms_of_keyboard): Initialize and staticpro unread_switch_frame.
+	* keyboard.h (Qswitch_frame): Declare this extern.
+
+	* frame.c: #include "commands.h" and "keyboard.h".
+	(Fselect_frame): Make this interactive, and accept
+	switch-frame events as arguments, so we can bind this function to
+	switch-frame events.
+	(keys_of_frame): New function; bind switch-frame to Fselect_frame.
+	* emacs.c (main): Call keys_of_frame.
+	* keymap.c (initial_define_lispy_key): New function, for defining
+	non-ascii keys.
+	* ymakefile: Note that frame.o depends on commands.h and keyboard.h.
+
+	* callint.c (Fcall_interactively): Allow multiple 'e' specs.
+	(Finteractive): Doc fix.
+	* keyboard.h (this_command_keys, this_command_key_count): Added
+	external declarations.
+
+	* keymap.c (access_keymap): Treat bindings for Qt as default
+	bindings, when new argument T_OK is non-zero.
+	(get_keyelt, Fdefine_key, Flookup_key): Call access_keymap with
+	T_OK false.
+	* keyboard.c (follow_key, read_key_sequence): Call access_keymap
+	with T_OK true.
+
+	* keyboard.c (apply_modifiers): Copy the value of BASE's
+	Qevent_kind property to the new symbol.
+
+	* keyboard.c (syms_of_keyboard): Qevent_kind should be initialized
+	to intern ("event-kind"), not intern ("event-type").
+
+1992-10-10  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c (Fwrite_region): If VISIT is a file name,
+	use that as file name to visit, and print it in the message.
+	Use it for file locking too.
+
+	* m-ibmps2-aix.h [__GNUC__ >= 2] (LIB_STANDARD): Don't define.
+
+1992-10-09  Jim Blandy  (jimb@totoro.cs.oberlin.edu)
+
+	* ymakefile (FLOATSUP): Renamed to FLOAT_SUPPORT.
+	(FRAME_SUPPORT, VMS_SUPPORT): New macros.
+	(lisp): Rebuild this from loadup.el, using the _SUPPORT macros.
+
+	* ymakefile [HAVE_X_WINDOWS, not NO_X_MENU, HAVE_X11] (LIBXMENU):
+	Link against -loldX, to get the association table functions.
+
+	* xterm.c, xrdb.c: #include <stdio.h> before "xterm.h", to avoid
+	warnings about redefining NULL under GCC 2.2.2.
+
+1992-10-09  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m/pyrmips.h: New file.
+
+	* s/aix3-1.h (PTY_ITERATION, etc.): Defined.
+	(FIRST_PTY_LETTER): Deleted.
+
+1992-10-07  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* m/sparc.h: Include <sys/param.h>, to define the FSCALE constant.
+
+	* ymakefile (YMF_PASS_LDFLAGS): Refer to the prefix-args program
+	using "./prefix-args", not just "prefix-args"; some people don't
+	have . in their paths.
+
+1992-10-06  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* link.com: Use gcclib if compiling with GCC.
+
+	* fileio.c (directory_file_name): Don't clobber the envvar
+	when handling top-level rooted dir.
+
+	* ymakefile (LIB_STANDARD): If ORDINARY_LINK, default this to empty.
+
+	* m/ibmps2-aix.h [USG_SHARED_LIBRARIES]: Define ORDINARY_LINK.
+	Undef LIB_STANDARD.  Modify LD_SWITCH_MACHINE.
+
+	* unexnext.c: New file.
+	* emacs.c (main) [NeXT]: Call malloc_jumpstart.
+
+1992-10-05  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* window.c (window_loop): Pass 2nd arg to Fother_buffer.
+	* frame.c (make_frame): Likewise.
+	* callint.c (Fcall_interactively): Likewise.
+	* buffer.c (Fkill_buffer): Likewise.
+	(Fswitch_to_buffer, Fpop_to_buffer, Fbury_buffer): Likewise.
+
+1992-10-03  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): Treat mouse clicks on non-text
+	areas as if they were prefixed with the symbol denoting the
+	area clicked on - `mode-line', etcetera.
+	When we throw away an unbound `down-' event, reset mock_input as
+	well.
+
+	* keyboard.c (Qevent_symbol_element_mask, Qmodifier_cache): Two
+	new symbols, used to implement caches on event heads.  These take
+	the place of some of the caching that modify_event_symbol used to do.
+	(parse_modifiers_uncached, apply_modifiers_uncached,
+	lispy_modifier_list, parse_modifiers, apply_modifiers): New
+	functions, which replace format_modifiers and reorder_modifiers;
+	they can be useful elsewhere too.
+	(reorder_modifiers, modify_event_symbol): Re-implement these in
+	terms of parse_modifiers and apply_modifiers.  modify_event_symbol
+	now uses a much simpler cache, and takes advantage of the caches
+	maintained by parse_ and apply_modifiers.
+	(follow_key): Don't modify NEXT if KEY has no bindings.
+	(read_key_sequence): Drop unbound `down-' events, and turn unbound
+	`drag-' events into clicks if that would make them bound.  This
+	benefits from the rewriting of the modifier key handling code.
+	(syms_of_keyboard): Initialize and intern
+	Qevent_symbol_element_mask and Qmodifier_cache.
+
+	* keyboard.c (echo_prompt): Terminate the echo buffer properly
+	even when the string is too long to display in the minibuffer.
+	(echo_truncate): Just return echoptr - echobuf, rather than
+	calling strlen on echobuf.
+
+	* alloc.c (Fmemory_limit): New function.
+	(syms_of_alloc): Defsubr it.
+
+	* window.c (SAVE_WINDOW_DATA_SIZE): Define this using sizeof,
+	instead of just saying it's 7; that way, we won't get screwed if 
+	we add members to struct save_window_data.
+
+	* window.c (struct save_window_data): Save the currently selected
+	frame, too.
+	(Fset_window_configuration): Restore the frame's selected window
+	using Fselect_window, and then restore the selected frame using
+	Fselect_frame.
+	(Fcurrent_window_configuration): Record the currently selected
+	frame.  Update docstring to describe the information now recorded.
+
+1992-10-02  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): Ultrix select seems to
+	return ENOMEM when interrupted.  So, under Ultrix, treat ENOMEM
+	like EINTR.
+
+	* keyboard.c (modifier_names): The modifier is named "control",
+	not "ctrl".
+
+	* keyboard.c (modify_event_symbol): Make sure that the unmodified
+	event header gets the proper properties set on it, by recursing
+	and letting the same code build the properties for all event symbols.
+
+	* keyboard.c (Qmouse_click): Fix typo which assigned `mouse-click'
+	symbol to Qmouse_movement.
+
+1992-10-02  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* undo.c (Fprimitive_undo):
+	When undoing an insert, move point and then delete.
+
+1992-10-02  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* intervals.c: `copy_intervals' no longer static.
+
+	* intervals.h: Declare `copy_intervals'.
+
+	* buffer.c: #include intervals.h.
+
+	* ymakefile: New macro "INTERVALS", controlled by "USE_INTERVALS",
+	which defines the interval include file "intervals.h".
+	New entries for "intervals.c" and "textprop.c".
+
+	* lisp.h: Declare Qbuffer_or_string_p.
+
+1992-10-02  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xterm.c (x_find_modifier_meanings): If there are no
+	modifiers containing a Meta_ keysym, use the Alt keysyms to
+	denote meta.
+	(construct_mouse_click): Set the down_modifier bit on mouse
+	button press events.
+	(XTread_socket): When processing keypress events, use
+	x_meta_mod_mask when processing ordinary ASCII characters, not
+	just when processing function keys and other non-ASCII events.
+	(XTread_socket): If we receive a MappingNotify event with the
+	`request' member set to `MappingModifier', then call
+	x_find_modifier_meanings to refresh x_meta_mod_mask.
+
+	* window.c (Fset_window_configuration): Clean up the way we save
+	and restore the frame's size.
+
+	* termhooks.h (struct input_event): Doc fix.
+	(NUM_MOUSE_BUTTONS): New constant.
+	(click_modifier): New modifier.
+	(NUM_MODIFIER_COMBOS): Removed.
+
+	* keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
+	are not 5 elements long.
+	(EVENT_HEAD): Work correctly on all sorts of events, not just
+	events with parameters.
+	(EVENT_WINDOW, EVENT_BUFFER_POSN, EVENT_SCROLLBAR_BUTTON,
+	EVENT_WINDOW_POSN, EVENT_TIMESTAMP): These aren't useful
+	anymore; this information may appear twice in an event.  These
+	are replaced by the POSN_ accessors, which are meant to be
+	composed with the EVENT_START and EVENT_END accessors.
+	(EVENT_START, EVENT_END): Two new accessors, to get at the
+	starting and ending position of an event.
+	(POSN_WINDOW, POSN_BUFFER_POSN, PONS_SCROLLBAR_BUTTON,
+	POSN_WINDOW_POSN, POSN_TIMESTAMP): New macros, to futher
+	diasassemble the values returned by EVENT_START and EVENT_END.
+	* keyboard.c (echo_char, read_char): Apply EVENT_HEAD without first 
+	testing for EVENT_HAS_PARAMETERS; EVENT_HEAD works properly on
+	all sorts of events now.
+	(read_key_sequence): Use the new accessors to decide in which window
+	an event occurred.
+	* keymap.c (access_keymap, store_in_keymap,
+	Fsingle_key_description): No need to check for
+	EVENT_HAS_PARAMETERS before using EVENT_HEAD; the latter now
+	works properly on all sorts of events.
+
+	* keyboard.c (Qevent_unmodified): Replaced by...
+	(Qevent_symbol_elements): New property.
+	(syms_of_keyboard): initialize and staticpro the latter, not the
+	former.
+	* keyboard.h (Qevent_unmodified): Extern declaration replaced by...
+	(Qevent_symbol_elements): This.
+	(EVENT_HEAD_UNMODIFIED): Use the Qevent_symbol_elements
+	property, rather than the Qevent_unmodified property.
+
+	* keyboard.c (readable_events): This doesn't need to scan and
+	discard mouse release events anymore; it just uses
+	EVENT_QUEUES_EMPTY.
+	(kbd_buffer_get_event): No need to skip past mouse release events.
+
+	* keyboard.c (button_down_location): New variable, which
+	stores the location at which each button was pressed, so we
+	can build a complete drag event when the button is released.
+	(make_lispy_event): When a button is pressed, record its
+	location in button_down_location, and turn it into a `down'
+	event.  When a button is released, compare its release
+	location with its press location, and decide whether to call
+	it a `click' or `drag' event.
+	Change mouse movement events to be arranged like click events.
+	(format_modifiers): Note that the click modifier has no
+	written representation.
+	(modifier_names, modifer_symbols): New variables, used to
+	create the Qevent_symbol_elements property.
+	(modify_event_symbol): Change the format of the modified
+	symbol cache; there are too many modifier bits now to use a
+	vector indexed by a modifier mask.  Use an assoc-list instead.
+	Document the format of the cache.
+	Put the Qevent_symbol_elements property on each new symbol,
+	instead of a Qevent_unmodified property.
+	(symbols_of_keyboard): Put Qevent_symbol_elements properties on
+	the symbols specified in head_table, not Qevent_unmodifed properties.
+	Initialize and staticpro modifier_symbols, and staticpro the
+	window elements of button_down_location.
+
+	* xmenu.c: #include "keyboard.h".
+	(Fx_popup_menu): Use the event accessors defined in keyboard.h,
+	instead of writing out cars and cdrs.
+	* ymakefile: Note that xmenu.o depends on keyboard.h.
+
+1992-10-02  Joseph Arceneaux  (jla@wookumz.gnu.ai.mit.edu)
+
+	* textprop.c: Conditionalize all functions on
+	"USE_TEXT_PROPERTIES".
+	* intervals.c: Conditionalize all functions on
+	"USE_TEXT_PROPERTIES".
+	Removed #include of "screen.h".
+
+	* alloc.c: #include "intervals.h".
+	(init_intervals, make_interval,
+	mark_interval, mark_interval_tree): New functions conditionally
+	defined.
+	(make_uninit_string): Call INITIALIZE_INTERVAL.
+	(INIT_INTERVALS, UNMARK_BALANCE_INTERVALS, MARK_INTERVAL_TREE):
+	New macros, conditionally defined.
+	(mark_object): Call MARK_INTERVAL_TREE in case Lisp_String.
+	(gc_sweep): If text properties are in use, place all unmarked
+	intervals on the free list.  Call UNMARK_BALANCE_INTERVALS on
+	`buffer->intervals' when unmarking `buffer'.
+	(compact_strings): Include INTERVAL_PTR_SIZE in calculation for
+	target of bcopy when relocating strings.
+	(init_alloc_once): Call INIT_INTERVALS.
+	(make_pure_string): Include INTERVAL_PTR_SIZE in calculation of
+	`size'.
+	Moved static declaration of `mark_object' and other functions up
+	in the file.
+
+	* fileio.c (Finsert_file_contents): Call offset_intervals if
+	text was actually inserted.
+	#include "intervals.h".
+
+1992-09-30  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* data.c: Qbuffer_or_string_p added.
+
+	* syntax.c (describe_syntax): Use insert_char to insert `match'.
+
+	* buffer.c (reset_buffer): Do INITIALIZE_INTERVAL on the buffer's
+	interval component.
+	(Fkill_buffer): Likewise.
+
+	* editfns.c (make_buffer_string): Call copy_intervals_to_string.
+	(Finsert_buffer_substring): Call graft_intervals_into_buffer.
+	#include "intervals.h".
+
+	* insdel.c: #include "intervals.h"
+	(prepare_to_modify_buffer): Call verify_interval_modification.
+	(insert_from_string): Call offset_intervals and
+	graft_intervals_into_buffer.
+	(del_range): Call offset_intervals.
+	(insert): Call offset_intervals.
+
+	* emacs.c: #include "intervals.h".
+	(main): Call syms_of_textprop.  This is only really present if
+	Emacs is compiled with USE_TEXT_PROPERTIES defined.
+
+	* buffer.h: New macro TEMP_SET_PT.  If intervals are used, SET_PT
+	and TEMP_SET_PT are function calls.
+	Similarly for BUF_SET_PT and BUF_TEMP_SET_PT.
+	Added DECLARE_INTERVALS to buffer structure to conditionally
+	compile an interval tree into it.
+
+	* intervals.h: Declare temp_set_point.
+
+1992-09-30  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* ymakefile (config.h): Doc fix.
+
+1992-09-30  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* config.h.in: Added a slot for definition of USE_TEXT_PROPERTIES,
+	controlling compilation of interval code.
+	If using GNUC, support inline functions.
+
+	* lisp.h: Conditionally define interval structure and macros.
+	Add DECLARE_INTERVALS to struct Lisp_String.
+
+1992-09-30  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* buffer.c (Fother_buffer): Add back the VISIBLE_OK argument.  It
+	got removed with no comment or ChangeLog entry, and
+	append-to-buffer uses it.
+
+        * window.c (struct save_window_data): Add a member called
+	focus_frame, to save and restore the screen's focus frame.
+	(Fset_window_configuration): Redirect the frame's focus as
+	indicated in the window configuration.
+	(Fcurrent_window_configuration): Record the frame's current focus.
+	* minibuf.c (read_minibuf): Don't bother to save the current
+	frame's focus, and have read_minibuf_unwind restore it; saving and
+	restoring the window configurations will take care of that.
+	(read_minibuf_unwind): Don't worry about restoring the frame's focus.
+
+	* window.c (Fset_window_configuration): Don't select the frame
+	just because we restored its configuration.
+
+	* window.c (Fset_window_configuration): Don't forget to set the
+	frame's selected window when we can't call Fselect_window.
+
+	* xterm.c (x_meta_mod_mask): New variable, indicating which X
+	modifier bits denote meta keys.
+	(x_find_modifier_meanings): New function, to set x_meta_mod_mask.
+	(x_convert_modifiers): Use that.
+	(x_term_init): Call x_find_modifier_meanings.
+
+	* data.c (Fmake_local_variable): If SYM forwards to a C variable,
+	swap in the value for the current buffer immediately.
+
+	* lisp.h: Doc elaboration for Lisp_Buffer_Local_Value.
+
+1992-09-29  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* textprop.c (Ferase_text_properties): Merge intervals when
+	possible.
+
+1992-09-29  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xselect.c (Qcut_buffer0): Symbol removed; we're using a new
+	interface to the cut buffer now.
+	(NUM_CUT_BUFFERS, cut_buffer_atom, cut_buffer_value,
+	cut_buffer_cached, cut_buffer_just_set): New variables.
+	(Fx_own_selection, Fx_selection_value): Dike out the code to
+	handle CUT_BUFFER0 requests.
+	(Fx_get_cut_buffer, Fx_set_cut_buffer, x_watch_cut_buffer_cache,
+	x_invalidate_cut_buffer_cache): New functions.
+	(syms_of_xselect): Don't bother to initialize Qcut_buffer0.
+	Initialize and staticpro cut_buffer_value, and defsubr
+	Sx_get_cut_buffer and Sx_set_cut_buffer.
+	* xterm.c (XTread_socket): Pass PropertyNotify events from the
+	root window to x_invalidate_cut_buffer_cache.
+	(x_term_init): Call x_watch_cut_buffer_cache here.
+
+	* keymap.c (access_keymap): Don't forget to QUIT while scanning
+	the keymap.
+
+	* keyboard.c (recent_keys): This needs to be staticpro'ed.  Change
+	it from a C array, which is a pain in the neck to staticpro, into
+	a lisp vector, which is easier.
+	(read_char, Frecent_keys): Access recent_keys as a lisp vector,
+	not a C array.
+	(syms_of_keyboard): Set recent_keys to be a vector, and staticpro it.
+
+	* ymakefile (xfns.o): This doesn't depend on xselect.c.
+
+	* xterm.h (ROOT_WINDOW): Use the DefaultScreen macro, not the
+	XDefaultScreen function.
+
+	* frame.c (Fdelete_frame): Call Fselect_frame with the appropriate
+	number of arguments.
+
+	* data.c (Frem): Use the `fmod' function under SunOS, Ultrix, and
+	HP/UX, not just under USG systems.
+
+	* buffer.c (Fbury_buffer): This used to undisplay the buffer being
+	buried only if the BUFFER argument was nil.  Instead, undisplay the
+	buffer whenever it's displayed in the selected window, no matter
+	how it was specified by BUFFER.  This is how it behaves in 18.58,
+	and I can't find any ChangeLog entry in 18.58 or 19.0 saying why
+	they differ.  Fix the doc string accordingly.
+
+1992-09-28  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* frame.c (Fselect_frame, Fframe_root_window,
+	Fframe_selected_window, Fnext_frame, Fmake_frame_visible,
+	Fmake_frame_invisible, Ficonify_frame): Doc fixes.
+
+	* ralloc.c: Since the users of the relocating allocation code
+	handle memory exhaustion, it's better to return an error code to
+	them than to call abort. 
+	(obtain): If we cannot allocate more memory, don't call
+	abort.  Instead, return non-zero iff the allocation is successful.
+	(get_more_space): If obtain fails, return zero.
+	(get_bloc): Return zero if we can't allocate the new bloc.
+	(r_alloc_sbrk): Return zero if we can't allocate more memory.
+	(r_alloc): If we can't allocate more memory, set *PTR to zero and
+	return zero.
+	(r_re_alloc): If we can't allocate more memory, leave *PTR
+	unchanged, and return zero.
+
+	* ralloc.c (warnfunction): Renamed to warn_function; users changed.
+
+1992-09-28  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* insdel.c (del_range): Call record_delete before updating point.
+
+	* fileio.c (Finsert_file_contents): Do record_insert, then inc MODIFF.
+
+	* undo.c (record_delete): Record pos before the deletion.
+	(Fprimitive_undo): Go back to recorded position.
+
+1992-09-28  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* window.c (delete_all_subwindows): Save the window's buffer in
+	its `height' field; we may need to know the window's old buffer
+	once we have restored it from a window configuration.
+	(Fset_window_configuration): When we restore a window, if its
+	`height' field is a buffer, restore its `buffer' field from that.
+	This allows us to leave the window's buffer unchanged if the
+	buffer recorded in the configuration is dead.
+
+	* window.c (delete_all_subwindows): Removed unused variable named
+	"count".
+
+1992-09-27  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (read_char): If we're returning an event from a
+	macro, set Vlast_event_frame to Qmacro, instead of leaving it set
+	to the frame of the previous real event.
+	(read_key_sequence): If Vlast_event_frame isn't a frame, don't
+	bother switching buffers.
+	(syms_of_keyboard): Doc fix for Vlast_event_frame.
+	(Vlast_event_frame): Doc fix.
+
+	* termhooks.h (alt_modifier, hyper_modifier, super_modifier,
+	down_modifier, drag_modifier): New modifiers, to support the new
+	input system.  Re-arranged modifiers so that their bits are in
+	canonical order; this makes reorder_modifiers slightly simpler.
+	* keyboard.c (format_modifiers, reorder_modifiers): Handle the new
+	modifier bits.
+
+	* keymap.c (access_keymap): Remove code to notice bindings for
+	Qt.
+
+1992-09-25  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xmenu.c (single_keymap_panes): Handle vectors properly.
+
+1992-09-25  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* keymap.c (Fwhere_is_internal): Don't forget to advance map to
+	the next element when we find something that is neither a vector
+	nor a cons.  Don't forget to QUIT in the appropriate places,
+	either.
+
+1992-09-23  Joseph Arceneaux  (jla@geech.gnu.ai.mit.edu)
+
+	* textprop.c (Fset_text_properties): Merge adjacent intervals with
+	the same properties.
+	(Fnext_single_property_change, Fprevious_single_property_change):
+	New subrs.
+
+	* intervals.c (merge_interval_left, merge_interval_right): Abort
+	if caller tries to merge first (or last, respectively) interval.
+	Delete the interval node after merging.
+	(copy_intervals): Use `split_interval_right' rather than creating
+	new intervals with make_new_interval and attaching them
+	explicitly.
+	(verify_interval_modification): Changed error message.  GCPRO
+	hooks before calling Fnreverse, and correctly Fcdr down the list.
+	Also, don't cons multiple copies of the same consecutive
+	modification hook.
+	(temp_set_point): New function.
+	(set_point): Call point-left and point-entered hooks if moving
+	between text with different properties.  Use the old and new
+	positions as arguments to these calls.
+
+	* intervals.c, intervals.h: (map_intervals, make_buffer_interval,
+	 make_string_interval,run_hooks): Deleted.
+
+1992-09-23  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* keymap.c (DENSE_TABLE_SIZE): Doc fix.
+	(keymap_table): Function removed; this function exists only to
+	support an incorrect understanding of the format of keymaps.
+	(access_keymap, store_in_keymap, Fcopy_keymap,
+	Faccessible_keymaps): Correctly handle vectors at any point in the
+	keymap; don't assume it must be at the front.
+	(describe_map): Instead of calling describe_vector on the vector
+	in the cadr of the keymap (if present) and then calling
+	describe_alist to do the rest, just call describe_map_2.
+	(describe_alist): Renamed to describe_map_2; call describe_vector
+	when we encounter a vector in the list.
+	* xmenu.c (single_keymap_panes): Comment out the code which
+	tries to handle a dense keymap's table; it uses keymap_table, and
+	the rest of the code never uses the table contents anyway.
+
+	* keymap.c (access_keymap, store_in_keymap): Clarify error message
+	for non-ASCII characters.
+
+	* process.c [SIGCHLD && !BSD && !UNIPLUS && !HPUX]
+	(create_process): #if 0 out the code which sets the child's
+	handler for SIGCHLD to sigchld; the code which gives sigchld its
+	value has been diked out under these CPP symbols, so this should
+	be diked out too.
+
+	* indent.c (Fmove_to_column): Pass the right number of arguments
+	to Findent_to.
+
+1992-09-22  Jim Blandy  (jimb@kropotkin.gnu.ai.mit.edu)
+
+	* emacs.c (emacs_priority): Doc fix.
+	(main): Use nice, not setpriority; we just need a
+	simple, portable call to nice here.
+	* callproc.c (child_setup): Use nice, not setpriority.
+	* sysdep.c (sys_suspend): Don't try to use "nice (- nice (0))" to
+	set the subshell's priority to normal; nice doesn't return a
+	defined value on all systems.  Instead, since emacs_priority gives
+	the priority that Emacs was nastied to, we can use it to reset the
+	priority in a straightforward way.
+	[BSD4_1], [USG], [VMS] (setpriority): Remove dummy and
+	compatibility definitions of setpriority.
+
+	* keymap.c (access_keymap): Return the binding of Qt as the
+	binding for all unbound characters.
+
+	* fileio.c (syms_of_fileio): Don't try to defsubr Sunix_sync
+	unless it's actually been defined - that is, if unix is #defined.
+
+	* xrdb.c (x_get_resource): Cast the value being assigned to
+	ret_value->addr, rather than ret_value->addr itself; only GCC
+	allows you to cast lvalues.
+
+	* eval.c (unbind_catch): Do the long-jump here.  Take a VALUE
+	argument, which specifies the value to return to the catch, or the
+	data to give to the condition handler.  Renamed to
+	unwind_to_catch, to reflect new role.
+	(Fsignal, Fthrow): Removed code to set catch tag value and do the
+	long-jump; this is taken care of by unwind_to_catch.
+
+1992-09-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* alloc.c (mark_object): Avoid car recursion on cons with nil in cdr.
+	Avoid recursion on constants-vector of a compiled function.
+
+	* oldXMenu: Symlink deleted; anything that uses it needs fixing
+	in any case to work properly on systems without symlinks.
+
+1992-09-20  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s/sol2.h: New file.
+
+	* fileio.c: Don't include sys/dir.h.
+
+	* s/usg5-4.h (LIBS_SYSTEM): Move non-default libraries here.
+	(LIB_STANDARD, START_FILES): Deleted.
+	(ORDINARY_LINK): Defined.
+
+	* ymakefile [ORDINARY_LINK]: Default LD to $(CC)
+	and make START_FILES and LIB_STANDARD empty.
+	(C_SWITCH_X_MACHINE, C_SWITCH_X_SYSTEM): New macros, default empty.
+	(CFLAGS): Use them.
+
+1992-09-19  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (${etc}DOC): Use OBJECTS_SYSTEM and OBJECTS_MACHINE.
+
+	* dired.c [VMS]: Include string.h, rms.h, rmsdef.h.
+	[VMS] (Ffile_version_limit): New function.
+
+	* sysdep.c (sys_suspend): Read EMACS_PARENT_PID envvar for parent. 
+
+	* syntax.c (scan_lists): When searching back for comment:
+	if comment-end is 2 chars, assume it does end a comment.
+	Otherwise, scan back to previous comment-end to see if there's
+	a comment starter between.  Also record whether the string quotes
+	between the start and the end are paired and uniform.
+	If so, skip to comment starter.  If not, scan from start of
+	defun to find comment starter if any.
+	(find_defun_start): New function.
+
+	* alloc.c (mark_object): Save last 500 values of objptr.
+	Check for clobberage of ptr, when marking a vector.
+
+1992-09-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keymap.c (get_keyelt): Skip menu help string after menu item name.
+
+1992-09-18  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* buffer.c (Fget_buffer_create): Doc fix.
+
+	* lisp.h (struct handler): Remove the poll_suppress_count member
+	of this structure; it is always equal to the poll_suppress_count
+	of its catchtag structure.  The non-local exit code in eval.c is
+	difficult enough to understand as it is; needless duplication
+	doesn't help.
+	* eval.c (Fcondition_case): Rearranged for clarity.  Don't worry
+	about setting h.poll_suppress_count; it's guaranteed to be the
+	same as c.poll_suppress_count.
+	(internal_condition_case): Don't worry about
+	h.poll_suppress_count.
+	(Fsignal): Use h->tag->poll_suppress_count instead of
+	h->poll_suppress_count.
+
+	* eval.c (Fsignal): It's okay for the debugger to return to the
+	caller if the caller was signalling a quit.
+
+	* eval.c (unbind_catch): Restore the polling suppression count
+	here, instead of in Fsignal and Fthrow.
+	(Fthrow, Fsignal): Don't restore the polling suppression count here.
+	
+	* lisp.h (struct specbinding, struct handler): More documentation.
+	* eval.c (struct catchtag): More documentation.
+
+1992-09-17  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (LIBX): Don't use -loldX.
+
+1992-09-17  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* minibuf.c (get_minibuffer): Enable undo in minibuffers.
+
+1992-09-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* ymakefile (LIBXMENU): Check NO_X_MENU, not HAVE_X_MENU
+	* emacs.c (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
+	* keyboard.c (read_char_menu_prompt): Likewise.
+
+	* config.h.in: Delete everything about config.h.
+
+	* emacs.c: Eliminate HIGHPRI as compilation option.
+	(emacs_priority): New C variable, also Lisp variable.
+	(main): Set the priority iff emacs_priority is nonzero.
+
+1992-09-14  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* eval.c (entering_debugger): Variable renamed
+	when_entered_debugger, and is now a timestamp based on
+	num_nonmacro_input_chars.
+	(init_eval): Initialize when_entered_debugger, not
+	entering_debugger.
+	(call_debugger): Set when_entered_debugger to the current value of
+	num_nonmacro_input_chars.
+	(find_handler_clause): Don't call debugger unless
+	num_nonmacro_input_chars is greater than when_entered_debugger;
+	that way, we won't call the debugger unless the user has had a
+	chance to take control.
+	(Fbacktrace): Don't clear entering_debugger here.
+	* keyboard.h (num_nonmacro_input_chars): Added extern declaration
+	for this.
+
+	* fns.c (Fy_or_n_p): After testing for a QUIT, clear Vquit_flag.
+	Otherwise, if Fy_or_n_p is called while Vinhibit_quit is true and
+	the user presses C-g, this function goes into an infinite loop.
+
+	* dispnew.c (get_display_line): Don't abort if the frame is
+	invisible; since unmap events are handled at the interrupt level,
+	a screen may become invisible at any time.
+
+1992-09-13  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c (Fverify_visited_file_modtime):
+	Pass buffer itself to handler, if have handler.
+	(Fwrite_region): GCPRO around Fexpand_file_name, Ffile_name_directory.
+	(Fread_file_name_internal): GCPRO around file name manip.
+	(Ffile_writable_p, Ffile_readable_p): Use abspath, not filename,
+	(Ffile_executable_p, Ffile_exists_p): to run the handler.
+	(Fset_file_modes, Ffile_directory_p, Ffile_modes): Likewise.
+	(Ffile_newer_than_file_p): GCPRO around expand_and_dir_to_file.
+
+1992-09-13  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* s/bsd4-3.h: Give the BSD4_3 and BSD symbols the same numeric
+	definitions they'll get in <sys/param.h>, to avoid warnings.
+
+	* m/hp9000s300.h: Don't include <sys/wait.h>.  This really
+	shouldn't be necessary.
+	(BIG_ENDIAN): Define this as "4321", to agree with
+	<machines/endian.h>, and avoid warnings.
+
+	* systime.h: Re-arrange inclusion of <sys/time.h> and <time.h> so
+	that they don't both get included under BSD, and do both get
+	included under AIX.
+
+	* xdisp.c (display_mode_line): If the only other frames are
+	minibuffer frames, don't name the frame after the in the selected
+	window.  We can use Fnext_frame to do this test easily.
+
+1992-09-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* process.c (Faccept_process_output): Initialize useconds.
+
+	* keyboard.c (num_nonmacro_input_chars): New variable.
+	(read_char): Use num_nonmacro_input_chars to decide on auto-save & gc.
+	Increment it when appropriate.
+	(record_auto_save): Use num_nonmacro_input_chars.
+
+	* fileio.c (Ffile_name_directory, Ffile_name_nondirectory): 
+	(Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name): 
+	Call find_file_handler.
+	(syms_of_fileio): Set up Qfile_name_directory, etc.
+	(Fcopy_file): Call find_file_handler for newname as well as for filename.
+	(syms_of_fileio): Initialize Vfile_name_handler_alist.
+
+1992-09-11  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* callint.c (Fcall_interactively): Remove the 'K' interactive
+	code, in favor of 'e'; that's a better name.
+
+1992-09-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+        * s/esix5r4.h: New file.
+
+        * sysdep.c (init_sys_modes): Handle VDSUSP like V_DSUSP.
+        Use CDISABLE, not CDEL.
+        Turn off IEXTEN if it exists.
+        * systty.h (CDISABLE): New macro; may be defined from CDEL.
+
+	* keyboard.c (command_loop_1): Bind inhibit-quit to t when in Fsit_for.
+
+1992-09-10  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* Makefile.in: Add comments starting with "# DIST: " explaining
+	that this gets munged by the configure script.
+
+1992-09-10  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* s-aix3-1.h (HAVE_GETHOSTNAME): Defined.
+
+1992-09-09  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* frame.c (choose_minibuf_frame): abort if the selected frame has
+	nil in its minibuffer_window slot; this shouldn't happen any more.
+	* window.c (minibuffer_window): Accept an optional FRAME argument;
+	if specified, return the minibuffer used by that frame.
+
+	* keymap.c (describe_buffer_bindings): Adjust key_heading to match
+	the format used by describe_map_tree.  Also, don't reprint the
+	"key    binding" header above the global bindings if we've already
+	printed it for the local bindings; it's clear enough that the
+	columns mean the same thing as above.
+
+1992-09-08  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+        * ralloc.c (r_re_alloc): Instead of allocating a new bloc at the
+	end of the heap, copying the data to it, and then freeing the
+	original bloc, just expand the original block.  This saves a copy
+	and a call to sbrk, and also removes the large spike in memory
+	allocation that would occur when resizing large buffers.  And it's
+	less code.
+
+	* keyboard.h (Vkeyboard_translate_table): Declare this extern
+	here, so describe_buffer_bindings can use it.
+	* keymap.c (describe_buffer_bindings): Declare buf and bufend...
+
+1992-09-05  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* systime.h: Always #include <time.h>, not just when NEED_TIME_H
+	is defined.  It gets us struct tm.  #include <sys/time.h> whenever
+	HAVE_TIMEVAL is defined and NEED_TIME_H isn't.
+
+	* systime.h: Note that the tz_dsttime field of the struct timezone
+	returned by gettimeofday doesn't say whether daylight savings is
+	_currently- active; rather it specifies whether it is *ever*
+	active.
+	(EMACS_GET_TZ_OFFSET_AND_SAVINGS): Removed `savings_flag'
+	argument, and renamed to EMACS_GET_TZ_OFFSET.  Don't try to
+	extract savings information.  EMACS_CURRENT_TIME_ZONE should call
+	localtime to figure out whether DST is active.
+
+	* m/hp9000s300.h: #include <sys/wait.h> before doing anything
+	else, to avoid conflicts between the system's and Emacs's
+	definitions of BIG_ENDIAN.
+
+	* keymap.c (describe_buffer_bindings): Set the current buffer to
+	descbuf before calling current_minor_maps; that function's value
+	depends on the values of buffer-local variables.  Don't set the
+	current buffer to Vstandard_output until afterwards.
+
+	* keymap.c (describe_buffer_bindings): If
+	Vkeyboard_translate_table is in effect, describe its effects.
+
+	* frame.c (Fnext_frame): Doc fix.
+
+	* frame.c (prev_frame): #if 0'd out; nobody uses this.
+
+	* frame.c (next_frame): The logic which determines whether a frame
+	is acceptable to return was misarranged; rewrote it.
+	(prev_frame): Same thing.
+
+1992-09-05  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* syntax.c (scan_lists): Improve smarts for backwards scan of comments.
+	Don't modify comstyle inside that loop.
+	If string quotes don't match up, don't take value from OFROM;
+	instead, parse forward using scan_sexps_forward.
+	(scan_sexps_forward): Return value via a pointer passed in.
+	New element in state contains char addr of last comment-starter seen.
+	(Fparse_partial_sexp): Change call to scan_sexps_forward.
+
+1992-09-04  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xmenu.c (xmenu_show): If no panes, just return.
+
+	* keyboard.c (last_nonmenu_event): New var.
+	(syms_of_keyboard): New Lisp var.
+	(read_key_sequence): Use that instead of prev_event.
+	* commands.h (last_nonmenu_event): Declared.
+	* callint.c (Fcall_interactively): For `K', use last_nonmenu_event.
+	Make `e' alias for `K'.
+
+1992-09-03  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+        * editfns.c (Fcurrent_time_string): Change docstring to
+        indicate that we will probably add the timezone to the end,
+        now that we have it available on many systems.
+
+	* xrdb.c: Don't include <X11/Xos.h>.  Under R4, it stupidly
+	insists on defining SIGCHLD, even if it already has a definition.
+	(file_p): Use the constant 4 instead of R_OK; empirically, the
+	number is more portable than the symbol if you count the #include
+	hair you have to go through to get R_OK defined.  Ffile_readable_p
+	does this too.
+
+	* xterm.c (x_wm_set_size_hint): Set the base_width and base_height
+	members of size_hints, if they're available (X11R4 and after);
+	otherwise, approximate the right thing, by using min_width and
+	min_height as the base size.
+
+1992-09-02  Barry A. Warsaw   (warsaw@anthem.nlm.nih.gov)
+
+	* Extended syntax.c in the following ways to support up to 2
+	orthogonal comment styles per mode.  This is needed for C++.
+	Bit 6 of syntax table entry for a character indicates
+	it is part of the `b' comment style.  Otherwise it is
+	part of the `a' style.
+	* syntax.h (SYNTAX_COMMENT_STYLE): New macro.
+	* syntax.c (Fmodify_syntax_entry): Set that flag for `b'.
+	(describe_syntax): Print the `b' flag.
+	(scan_lists, scan_sexps_forward): Handle the new flag.
+	(Fparse_partial_sexp): Return new element in value.
+
+1992-09-02  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* fileio.c (syms_of_fileio): Doc fix for Vfile_name_handler_alist.
+
+1992-09-02  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* keyboard.c (kbd_buffer_get_event): When performing the
+	FRAME_FOCUS_FRAME redirection, don't modify the frame field of
+	the event; that fatally corrupts mouse click events.  Instead,
+	just perform the redirection on the value assigned to
+	Vlast_event_frame.
+
+	* callint.c (Fcall_interactively): Don't try to get the
+	`enable-recursive-minibuffers' property from FUNCTION unless
+	FUNCTION is actually a symbol; there are some cases where a key
+	sequence is bound directly to a lambda form, and there's no reason
+	to break these.
+
+	* window.c (Fset_window_configuration): Don't signal an error
+	if the frame size saved in the window configuration doesn't
+	match the frame's current size; instead, temporarily resize
+	the frame while installing the window configuration.  This is
+	important because using the minibuffer saves and restores the
+	current window configuration, and you don't want to signal an
+	error just because the user resized the frame while using the
+	minibuffer.
+
+	* doc.c (Fsnarf_documentation): Signal an error if this is
+	called in a dumped Emacs.
+
+	* alloc.c (mark_object): mark a symbol's name after marking its
+	value, function, and property list rather than before; this way,
+	symbols' names are readable, giving us a chance to detect some
+	kinds of heap corruption.
+
+1992-09-02  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* emacs.c (__main, __do_global_dtors): New dummy functions.
+	(__do_global_ctors_aux, __do_global_ctors): Fix typo in fn names.
+
+1992-09-01  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* prefix-args.c: New file.  See comment at top of file.
+	* ymakefile (YMF_PASS_LDFLAGS): Use the prefix-args program to
+	affix the -Xlinker prefix to the linker arguments.
+	(prefix-args): New target.
+	(temacs): Depend on prefix-args.
+
+	* xterm.c (x_catch_errors): Don't forget to initialize
+	x_caught_error_message to the null string, so x_check_errors can
+	tell when an error has occurred.
+
+	* unexmips.c (mark_x): Declare this as static void at the top of
+	the file and at the function definition.
+
+	* keyboard.c (input_available_signal): Declare this to return
+	SIGTYPE.
+
+	* xrdb.c (getuid): Declare this to return short.
+
+	* s/bsd4-3.h: Remove definition of SIGTYPE macro; Mt. Xinu says
+	it's int, but Ultrix says it's void.  Since the SIGTYPE guessing
+	code in the `configure' script gives the correct answer for both
+	of these cases, there's no point in listing it here.
+
+	* systime.h (EMACS_CURRENT_TIMEZONE): Change documentation to
+	indicate that *OFFSET should be set to the number of minutes EAST
+	of Greenwich, which is what Ed Reingold says real time gurus want.
+	Changed the definition of the EMACS_GET_TZ_OFFSET_AND_SAVINGS
+	macro to reflect this.  Buggily, the Fcurrent_time_zone function
+	was already expecting minutes east of GMT.
+
+	* Makefile.in (distclean): Remove backups from the `m' and `s'
+	directories, too.
+
+	* m/mips.h: Merge changes from Emacs 18.58:
+	[NEWSOS5]: Changes so this file can be used with s/newsos5.h.
+	(SIGN_EXTEND_CHAR): Define this using a cast to signed char.  I
+	guess the MIPS compiler and its derivatives all have this type.
+	(HAVE_ALLOCA, C_ALLOCA): Define the former if we're compiling with
+	GCC, and the latter otherwise.
+	(C_SWITCH_MACHINE): Defined, instead of C_SWITCH_SYSTEM.
+	(LINKER): Defined, if BSD.
+	(XUINT, XSET, XUNMARK): Add parentheses to eliminate warnings from
+	GCC.  Reindent to fit in 80 columns.
+	INHIBIT_BSD_TIME prevents including bsd/sys/time.h.
+	* s/newsos5.h: New file for Sony NEWS-OS release 5, courtesy of
+	Chris Hanson <cph@klia.ai.mit.edu>.
+
+	* m/mips.h: Don't undefine LOAD_AVE_TYPE; the comment says that
+	Emacs 19 has the crocks to handle it properly.
+
+	* m/pmax.h: Merge changes from Emacs 18.58:
+	(LIB_STANDARD, COFF, TERMINFO): Cancel out definitions from
+	m/mips.h which are only appropriate for USG.
+	(MAIL_USE_FLOCK, HAVE_UNION_WAIT): Do define these.
+	(BROKEN_O_NONBLOCK): Defined.
+	(LINKER): Don't define this.
+	[OSF1]: Undef C_ALLOCA, define HAVE_ALLOCA.
+	
+	* s/osf1.h: New file.
+
+	* s/bsd4-3.h: Merge changes from Emacs 18.58:
+	(BSD, BSD4_3): Just define these, don't fret about numerical
+	values or version numbers.
+
+	* m/hp9000s300.h: Merge changes from Emacs 18.58, and hp300bsd.h:
+	Change configuration note to say it's okay to use this file for BSD.
+	Add comment saying that NOMULTIPLEJOBS must be defined for
+	versions of HP/UX before 6.5.
+	Don't define BIG_ENDIAN if it seems that <endian.h> has already
+	done so.
+        [BSD4_3] Define m68000, instead of hp9000s300; crt0.c uses these
+	to decide what sort of startup code to use.
+	[not BSD4_3] Under HP/UX, always define the BSD memory functions
+	(bcopy, bzero, and bcmp) in terms of the SYSV string functions
+	(memcpy, memset, and memcmp), not just under HP/UX 5; version 6's
+	BSD compatibility library has reported bugs in `signal'.
+	(NEED_BSDTTY): Move this symbol's definition inside the "not
+	BSD4_3" conditional, since it's only relevant to HP/UX.
+	* m/hp300bsd.h: File deleted, since m/hp9000s300.h now
+	works with both HP/UX and BSD; it includes m/hp300bsd.h's
+	specifications.
+
+	* m/hp9000s300.h: Remove definition for SIGN_EXTEND_CHAR; this is
+	only used by the regexp code, which has its own portable
+	definition these days.
+
+1992-08-31  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keymap.c (Fmake_sparse_keymap): New optional arg.  Callers changed.
+	(Fmake_keymap): Likewise.
+
+	* emacs.c (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
+	(__CTOR_LIST__, __DTOR_LIST__): New dummy variables.
+
+	* fileio.c (Fdo_auto_save): Always call record_auto_save.
+
+	* keyboard.c (read_char): Call read_char_menu_prompt here.
+	Accept 4 new args to pass to it.  Include them in recursive call.
+	Don't delay before starting echo if prev_event was a mouse event.
+	Test for eof in batch mode now understands C is a Lisp_Object.
+	(read_key_sequence): Don't call it here; always call read_char.
+	Don't change last_event_buffer after a mouse menu input.
+	(read_char_menu_prompt): Arg PROMPT deleted.
+	Return nil if nothing to do.
+
+	* xmenu.c (Fx_popup_menu): Treat coords relative to spec'd window.
+	(single_keymap_panes): New function; contains guts of keymap_panes.
+	If a command binding for submenu has a prompt string starting with @,
+	make a separate pane for it at this level.
+
+	* xfns.c (Fx_track_pointer): Pass new args to read_char.
+	(Fx_select_region, Fx_horizontal_line): Likewise.
+	* lread.c (Fread_char): Pass new args to read_char.
+	(Fread_event, Fread_char_exclusive): Likewise.
+	* fns.c (Fy_or_n_p): Pass new args to read_char.
+
+1992-08-30  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): Keep track of prev_event.
+	Pass new proper args to read_char_menu_prompt.
+	(read_char_menu_prompt): New arg prev_event.  Use Fx_popup_menu.
+	Handle any number of keymaps, not just LOCAL and GLOBAL.
+	Invert meaning of arg PROMPT.  Test of menu_prompting was backwards.
+
+	* keymap.c (keymap_table): No longer static.
+
+	* xmenu.c (keymap_panes): New function.
+	(Fx_popup_menu): Accept keymap or list of keymaps as MENU argument.
+	Accept mouse button event as POSITION argument.
+
+1992-08-29  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* cmds.c (internal_self_insert): Assume Fexpand_abbrev expanded
+	something if it incremented MODIFF.
+
+1992-08-28  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* unexmips.c (unexec): Allow sections in any order.
+	Adjust addresses of rdata section as well as data section.
+
+	* buffer.c (syms_of_buffer): Made buffer-display-table,
+	buffer-field-list and buffer-undo-list allow any type of value.
+
+1992-08-27  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fns.c (Fappend): Doc fix.
+
+1992-08-24  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* s/usg5-4.h: Incorporate changes from 18.58:
+	(LIBX10_SYSTEM): Undefine this.
+	(GNULIB): Definition deleted -- done in ymakefile.
+	(LIB_STANDARD): Don't use GNULIB.
+	(HAVE_TCATTR): Defined.
+
+	* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
+	hasn't specified the icon position.  Let the window manager put
+	the icon where it likes.
+
+        * xterm.c (x_make_frame_invisible): Don't forget to check the
+	return value of XWithdrawWindow; it could indicate that the window
+	wasn't successfully redrawn.
+
+	* sysdep.c (init_baud_rate): Re-arranged order of conditionals -
+	test TERMIOS before TERMIO; when two options might both be
+	defined, test the most recent first, so that the most recent
+	functions get used.
+
+	* sysdep.c [HAVE_TERMIO] (init_baud_rate): Don't use tcgetattr
+	unless HAVE_TCATTR is defined.  Only very rarely do termio systems
+	have the tc{get,set}attr macros.
+
+	* window.c (coordinates_in_window): Do not assume that all
+	one-line windows are the minibuffer, or that all minibuffers are
+	one line high.  Use MINI_WINDOW_P.
+
+        * systerm.h: Renamed to systty.h, to be more consistent with
+	everything else in Unix.
+	* dispnew.c, emacs.c, keyboard.c, process.c, sysdep.c: #include
+	directive changed.
+	* ymakefile: References to systerm.h changed.
+
+	* s/usg5-3.h: Merged changes from 18.58:
+	(HAVE_SYSV_SIGPAUSE): Defined.
+	(BROKEN_TIOCGETC): Defined.
+
+1992-08-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* process.c (WCOREDUMP): Define only if not defined.
+	(create_process) [HAVE_SETSID]: Use TIOCSCTTY if exists.
+	
+1992-08-20  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+        * fileio.c (Fdo_auto_save): Call Fsleep_for with the appropriate
+	number of arguments.
+	* fns.c (Fyes_or_no_p): Same.
+
+	* dispnew.c (update_frame): Change the way we handle
+	cursor_in_echo_area.  Firstly, ignore this if the frame we're
+	updating doesn't have a minibuffer.  Secondly, don't handle the
+	selected frame specially.  Thirdly, don't assume that the
+	minibuffer is only one line high.  If cursor_in_echo_area < 0, put
+	the cursor in the upper-left corner; if cursor_in_echo_area > 0,
+	put it on the lowest non-empty line in the minibuffer window, or
+	on the top line.
+
+	* dispnew.c (direct_output_for_insert): Fail if
+	cursor_in_echo_area is set; we don't want to do the typing there.
+	(direct_output_for_insert): Same.
+
+1992-08-19  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+        * xterm.c (x_make_frame_invisible): Use XWithdrawWindow when
+	available [HAVE_X11R4]; send the UnmapNotify event when
+	appropriate [HAVE_X11]; just unmap the window if that's all that's
+	needed [not HAVE_X11].
+
+	* xterm.c (x_set_text_property): Removed; it's only called from
+	one place.  Who wants *another* layer of indirection?
+	* xfns.c (x_set_name): Use XSetWM{Name,IconName} when available
+	[HAVE_X11R4], or XSetIconName and XStoreName otherwise.
+
+	* xterm.h (FRAME_X_WINDOW): New macro, for readability.
+	* xterm.c, xfns.c, xselect.c: Use it.
+
+	* emacs.c (Fkill_emacs): Doc fix.
+	(syms_of_emacs): Doc fix for Vkill_emacs_hook.
+
+	* xterm.c (x_death_handler): Renamed to x_connection_closed.
+	(x_term_init): Use x_connection_closed as the SIGPIPE handler.
+
+	* xterm.c (acceptable_x_error_p, x_handler_error_gracefully,
+	x_error_handler): Removed; you can't catch X errors this way,
+	since you can't perform X operations from within an X error
+	handler, and even though we call error, we're still within an X
+	error handler.
+	(x_error_quitter, x_error_catcher): New functions, for panicking
+	on and catching X protocol errors.
+	(x_caught_error_message): Buffer for caught X errors.
+	(x_catch_errors, x_check_errors, x_uncatch_errors): New functions
+	for catching errors.
+	(x_term_init): Set the error handler to x_error_quitter, rather
+	than x_error_handler.
+	* xfns.c (x_set_mouse_color): Use x_catch_errors, x_check_errors,
+	and x_uncatch errors to avoid crashing if the user selects an
+	odd cursor.
+
+	* xterm.c (x_proto_requests): Removed; it's not important.
+	
+	* xterm.c (events): Array removed; it's not used.
+
+	* xfns.c (select_visual): Use XVisualIDFromVisual when available
+	[HAVE_X11R4].
+	
+	* xrdb.c (get_user_db): Use XResourceManagerString when available
+	[HAVE_X11R4].
+
+	* window.c (change_window_height): If the size of the window will
+	shrink below the minimum, this code would only try to delete it if
+	it had a parent.  Well, even if the window doesn't have a parent,
+	you want Fdelete_window to signal an error, since you're trying to
+	resize one of the undeleteable windows into nothingness.  So call
+	Fdelete_window even if the window doesn't have a parent.
+
+	* window.c (MINSIZE): Add kludge so that the minibuffer is always
+	allowed to shrink to one line in height.
+	(MINSIZE, CURBEG, CURSIZE): Change these so that their argument
+	are always Lisp_Objects, not struct window *'s.
+	(change_window_height): Changed accordingly.
+
+1992-08-18  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+        * frame.h (struct frame): New member - explicit_name.
+	* frame.c (make_frame): Clear it.
+	* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
+	OLDVAL.
+	(x_explicitly_set_name, x_implicitly_set_name): New functions.
+	(x_frame_parms): Use x_explicitly_set_name here.
+	(x_window): Use x_implicitly_set_name here.
+	* xdisp.c (display_mode_line): Use x_implicitly_set_name here.
+
+	* xterm.c (x_wm_hints): Variable deleted.  This has to be
+	per-screen.  Duh.
+	* xterm.h (struct x_display): New member: wm_hints.
+	* xterm.c (x_wm_set_window_state, x_wm_set_icon_pixmap,
+	x_wm_set_icon_position): Use F->wm_hints, rather than x_wm_hints.
+	(x_term_init): Don't initialize x_wm_hints here.
+	* xfns.c (Fx_create_frame): Instead, initialize f->x_wm_hints
+	here.
+
+	* xterm.c (x_set_text_property): Properly balance the BLOCK_INPUTs
+	and UNBLOCK_INPUTs.  And remember that VALUE is the string we want
+	to set the name to, not PROPERTY.
+
+1992-08-17  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* frame.c (make_minibuffer_frame): Don't set this to auto-raise by
+	default.  It's annoying.
+
+	* frame.c (make_minibuffer_frame): Set the prev field of the
+	minibuffer window on a minibuffer-only frame to Qnil, rather than
+	having it point to itself.  This confuses code (Fprevious_window
+	and change_window_height, for example), and is only an attempt to
+	support a convention that can't really be used in Emacs 19 anymore.
+	* window.h: Document the fact that we can no longer assume that
+	the minibuffer's previous window is the root window, since a
+	minibuffer window in a minibuffer-only frame has a prev field of
+	nil.
+	* frame.h [not MULTI_FRAME] (FRAME_ROOT_WINDOW): Define this by
+	reference to the_only_frame.root_window, rather than by assuming
+	that minibuf_window->prev is the root window.  While this is true
+	in the non-multi-frame case, we want to discourage this assumption
+	in code.
+	* dispnew.c [not MULTI_FRAME] (Fredraw_display): Use
+	FRAME_ROOT_WINDOW instead of minibuf_window->prev.
+	* xdisp.c (redisplay, init_xdisp): Same.
+	* window.c (Fset_window_configuration): Removed #if 0'd code which
+	assumes that minibuf_window is on the same frame as the window
+	configuration.  Removed special case for windows whose prevs
+	point to themselves.
+
+	* window.c (Fset_window_configuration): Rename the argument from
+	ARG to CONFIGURATION, so it matches the docstring.  The
+	make-docfile program cares.
+
+	* window.c [MULTI_FRAME] (syms_of_window): Don't staticpro
+	minibuf_window; the frame list will take care of it.
+
+	* xterm.h (HAVE_X11R4): Since we can autodetect this, and can
+	write code more likely to be future-compatible, define this when
+	appropriate.
+	* xterm.c (x_set_text_property): Define this appropriately for
+	X11R3 and X11R4.
+
+	* xterm.c (x_set_text_property): Make this take a Lisp_Object
+	string as an argument, rather than a pointer and a length.
+	* xfns.c (x_set_name): Caller changed.
+
+	* xfns.c (x_get_arg): Accept a new type - symbol.  If we've
+	retrieved a string from the xrdb database and the user wants a
+	symbol, intern it.
+	(Fx_create_frame): Use the symbol type here.
+
+	* xfns.c (x_figure_window_size, x_icon, Fx_create_frame): Use
+	values from enum resource_types for the last arg to x_get_arg,
+	instead of passing numbers.
+
+	* xfns.c (Fx_create_frame): When setting up the scroll bars, use
+	the type parameter to x_default_parameter, rather than prefixing
+	the resource name with a question mark.
+
+	* xfns.c [not HAVE_X11] (Fx_create_frame): The resource which
+	determines whether or not to use a bitmapped icon is called
+	"IconType", not "BitmapIcon".  Update this.
+
+1992-08-15  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xterm.c: Doc fixes.
+
+        More SYSV portability changes from Eric Raymond:
+
+	* xterm.c [USG5]: Don't include <sys/types.h>.
+
+	* xterm.c (x_make_frame_invisible): Instead of calling XWithdraw
+	window, which isn't widely available, write out what it does,
+	since that's not much.
+	(x_iconify_frame): Explicitly perform both the X11R3 and X11R4
+	methods for iconification; don't use XIconifyWindow, since that's
+	not present in R3.
+	
+	* xterm.c (x_wm_set_size_hint): Don't bother setting the
+	base_width and base_height members; their function is performed
+	just as well by the min_width and min_height members, and if we
+	use XSetNormalHints instead of XSetWMNormalHints, we can be
+	compatible with R3.
+
+	* xterm.c (x_error_handler): There is no way to invoke the default
+	error handler which works on all versions of X11, so don't bother;
+	call XGetErrorText and print the message ourselves.
+
+	* xterm.c (x_term_init): Don't use MAXHOSTNAMELEN; this isn't
+	defined on all systems.  Since we only use that as an initial
+	guess anyway, it's not very important.
+
+1992-08-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* abbrev.c (Fexpand_abbrev): If pre-expand hook changes the buffer,
+	assume that means we "did an expansion".
+
+	* cmds.c (internal_self_insert): Ignore value of Fexpand_abbrev;
+	instead, check whether buf is modified when it returns.
+
+1992-08-14  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+        Applied SYSV portability changes from Eric Raymond:
+
+	* xrdb.c [USG5]: Define SYSV, and then include <unistd.h>.
+	Apparently, Xlib.h include string.h if SYSV is defined, and
+	strings.h if not.
+	Don't include <sys/types.h>; just declare getuid to return an
+    	int.  Big deal.
+	(MAXPATHLEN): If this is not defined by the system's include
+    	files, give it a value of 256.
+	(get_user_db): Fetch the defaults directly from the display
+    	structure, rather than using XResourceManagerString; that
+    	function doesn't exist in the older versions of X.
+
+	* xterm.c (x_set_text_property): New function.
+	* xfns.c (x_set_name): Use it instead of XSetWMName and
+    	XSetWMIconName.
+
+	* xfns.c (select_visual): Fetch the visual id directly from v;
+    	don't call XVisualIDFromVisual, since that function is not
+    	available in earlier versions of X.
+
+	* term.c (term_get_fkeys): Some systems define `static' to be the
+    	empty string, which means that you can't have constant
+    	initialized arrays inside a function.  So move the `keys' array
+    	outside of the function.
+	* xdisp.c (decode_mode_spec): Same deal, with lots_of_dashes.
+	* xfns.c (x_make_gc): Same deal, regarding cursor_bits.
+
+	* term.c (keys): Include definitions for "K2" (the center key on
+    	an IBM keypad), "F1" (F11), and "F2" (F12).  Handle "k0" and "k;"
+    	specially; see the code for details.
+
+	* term.c (clear_end_of_line): Remember that on some systems,
+    	"static" gets defined to be the null string, so we can't declare
+    	an array to be static and then initialize it.  Since the array in
+    	question (buf) is only one element long, just make it a scalar
+    	rather than an array; it can then be initialized, even if it's
+    	not static.
+
+	* systime.h [not HAVE_TIMEVAL] (EMACS_USECS, EMACS_SET_USECS):
+    	Don't forget to define dummy versions of these.
+
+	* systime.h [USE_UTIME]: time_t is a typedef, not a struct.
+    	Don't prefix it with `struct'.
+
+	* systerm.h (EMACS_SET_TTY_PGRP): When there doesn't seem to be
+    	any way to do this, don't forget to give it a dummy definition.
+
+	* sysdep.c (select): There's no need to cast the return value of
+    	signal anymore, since we have the SIGTYPE macro defined.
+
+	* sysdep.c (read_input_waiting): When scanning for quit
+    	characters, use the value of quit_char, rather than assuming that
+    	C-g is the quit character.  And don't forget to declare i.
+
+	* sysdep.c [USG5]: Don't include fcntl.h.
+
+	* s/usg5-3.h: Eric Raymond writes:
+	Define HAVE_SELECT and BSTRINGS only if HAVE_X_WINDOWS is on,
+	because that means we'll be linking in the shared libraries
+	containing the BSD emulations.  Teach the file about the shared
+	libraries necessary to link X programs, because AT&T doesn't
+	supply static libraries for X.  Also, fix the incorrect assertion
+	that -lg cannot be used with SVr3.  Finally, force USE_UTIMES and
+	BROKEN_TIOCGWINSZ.  (Note for the future; there may be a
+	utimes(2)) emulation lurking in the X shared libraries.)
+
+	* s/usg5-4.h (USE_UTIME): Remove this definition; the C library
+    	still doesn't have utimes.
+
+	* ralloc.c (get_bloc): When initializing new_bloc->variable, cast
+	NIL to (POINTER *).
+	(malloc_init): Give warning if sbrk returns zero.  Wonder what
+	that's supposed to mean.
+
+	* process.c (process_send_signal): Don't send SIGTSTP if the
+	system doesn't have that facility.
+
+	* process.c: [USG5] Don't include <fcntl.h>.
+	[USG] Don't bother including <termios.h>, <termio.h>, or
+	<fcntl.h>; systerm.h takes care of all that.
+	Remove the "mis;tak-+;;" line from the code; apparently this
+	section of code does get used.
+
+	* minibuf.c (Fread_from_minibuffer): Put this function's doc
+	string into a comment; it's too long for the PCC preprocessor.
+	Rah.
+	(Fcompleting_read): Same deal.
+
+	* keyboard.c (init_keyboard): Changed "#endif SIGIO" to
+	"#endif /* SIGIO */"
+	* mocklisp.c (Fml_substr): Same sort of thing.
+	* process.c (wait_reading_process_input): Same.
+
+	* floatfns.c (Fexpm1, Flog1p): Function removed; it's not widely
+	available, and hardly vital.
+	(syms_of_floatfns): Adjusted appropriately.
+
+	* floatfns.c (Flog): Accept optional second arg, being the base
+	for the logarithm.
+	[USG] (Flogb): Define this in terms of Flog.
+
+	* data.c [USG] (Frem): Call fmod, rather than drem.  Rah.
+
+	* emacs.c [USG5]: Don't #include <fcntl.h> for these systems.
+
+	* alloc.c (Fmake_marker): Removed the test for being called from a
+	signal handler.  The original bug is probably gone, the test
+	wasn't written portably, and it should probably go somewhere else
+	anyway - say, funcall or eval.
+
+        End of changes from Eric Raymond.
+
+	* xfns.c (Fx_create_frame): Make the default for the icon-type
+    	parameter nil, not t.  It seems to cause problems with some X
+    	servers.
+
+	* lisp.h (DEFVAR_PER_BUFFER): Add new argument, TYPE, to help
+	check the types of buffer-local variable slots.
+	* buffer.c (syms_of_buffer): Call DEFVAR_PER_BUFFER with the new
+	TYPE argument.
+	* abbrev.c (syms_of_abbrev): Same.
+	* buffer.c (buffer_local_types): New variable.
+	(buffer_slot_type_mismatch): New function.
+	* buffer.h (buffer_local_types): New extern declaration.
+	* data.c (store_symval_forwarding): When storing through a
+	Lisp_Buffer_Objfwd, check if the slot requires a particular type,
+	and report an error if the types clash.
+	* lread.c (defvar_per_buffer): Support new TYPE argument, by
+	setting the appropriate slot in buffer_local_types.
+
+1992-08-13  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* window.c (window_loop): This used to keep track of the first
+	window processed and wait until we came back around to it.  Sadly,
+	this doesn't work if that window gets deleted.  So instead, use
+	Fprevious_window to find the last window to process, and loop
+	until we've done that one.
+
+	* window.c [not MULTI_FRAME] (init_window_once): Don't forget to
+	set the `mini_p' flag on the new minibuffer window to t.
+
+	* window.c (Fwindow_at): Don't check the type of the frame
+	argument.
+
+	* window.c [not MULTI_FRAME] (window_loop): Set frame to zero,
+	instead of trying to decode it.
+
+	* frame.h [not MULTI_FRAME] (the_only_frame): Put a comment above
+	this indicating that it's not GCPRO'd.  Put parens around some of
+	the FRAME_* macros' definitions.
+	[not MULTI_SCREEN] (Fselected_frame): New function.
+
+	* frame.h [not MULTI_FRAME] (FRAME_ROOT_WINDOW): Define this in
+	terms of minibuf_window, rather than by reference to
+	the_only_frame.
+	* window.c (init_window_once): Initialize minibuf_window before
+	FRAME_ROOT_WINDOW, so the latter actually points to something.
+
+	* keyboard.c (Fexecute_mouse_event): dyked-out function deleted.
+	We're not going to use this mouse interface.
+	(Vmouse_window, Vmouse_event, Vmouse_event_function,
+	Vmouse_left_hook, Vmap_frame_hook, Vunmap_frame_hook,
+	Vmouse_motion_handler): Variables deleted; they were to be used by
+	Fexecute_mouse_event.
+	(syms_of_keyboard): Same.
+	(command_loop_1): Remove dyked-out code to support
+	Fexecute_mouse_event.
+	(read_char): Same.
+
+	* keyboard.c (Vlast_event_frame): Don't define this window if
+	MULTI_FRAME is not #defined.
+	(syms_of_keyboard): Same.
+	(kbd_buffer_store_event): Don't try to work with Vlast_event_frame
+	if MULTI_FRAME is not #defined.
+	(kbd_buffer_get_event): Same.
+
+	* keyboard.c (Fdiscard_input): Removed dyked-out code from when
+	unread_command_char's quiescent value was -1, not nil.
+
+	* frame.c (make_frame): Stop passing zero to make_window; it's not
+	expecting any arguments.
+
+1992-08-12  Jim Blandy  (jimb@albert.gnu.ai.mit.edu)
+
+        * unexsunos4.c: Deleted "$Log" header in comments at top of file;
+	this was beginning to grow RCS hair, which we don't want.
+	* xmenu.c: Same deal.
+
+1992-08-11  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+        * fileio.c (Fread_filename): Don't add one here.
+	* minibuf.c (Fcompleting_read): Instead, stop subtracting one
+	here, so this function lives up to its doc string, which I think
+	specifies an okay way to work.
+
+	* doc.c (Vdata_directory): Removed; this is declared in callproc.c.
+	(syms_of_doc): Initialization removed.
+
+	* xfns.c (x_get_arg): Return Qunbound for an unspecified
+	resource, not nil.  That way, we can tell the difference between a
+	false resource and an unspecified resource.
+	(x_default_error): Use DEFLT if x_get_arg returns Qunbound, not Qnil.
+	(x_figure_window_size, x_icon, Fx_create_frame): Deal with
+	Qunbound and Qnil properly.
+
+	* xfns.c (Fx_create_frame): Pass the correct number of arguments
+	to x_set_font.
+
+	* xfns.c [not HAVE_X11] (Fx_create_frame): Delete section that's
+	only included if we *do* have X11.  Blind patching.
+
+        * xfns.c (x_icon): Rewritten to call x_wm_set_icon_position and
+	x_wm_set_window_state instead of calling XSetWMHints directly.
+	* xterm.c (x_wm_hints): New variable.
+	(x_wm_set_window_state, x_wm_set_icon_pixmap,
+	x_wm_set_icon_position): Use x_wm_hints.
+	(x_term_init): Set the `input' field of x_wm_hints, and its flag.
+
+	* xterm.c (x_text_icon): Call x_wm_set_icon_pixmap with a pixmap
+	of zero, to clear the pixmap.
+	(x_wm_set_icon_pixmap): Accept this protocol; if pixmap is zero,
+	specify no pixmap for the icon.
+
+	* xfns.c (x_default_parameter): Don't call store_frame_param here;
+	it's already taken care of by x_set_frame_parameters.
+
+	* xfns.c (Fx_create_frame): Check for the `icon-type',
+	`auto-raise', and `auto-lower' parameters. Have `icon-type'
+	default to t, indicating that we want the nifty gnu in our icons.
+	(Qauto_lower): New symbol.
+
+	* xfns.c (x_set_icon_type): UNBLOCK_INPUT before reporting the
+	error, not after.  error doesn't return, sklitch-brain.
+
+	* xterm.c (x_set_window_size): Call check_frame_size to make sure
+	that the requested dimensions are within acceptable limits.
+	Store the new size information in the frame structure.
+
+	* xfns.c (x_set_frame_parameters): Properly recognize changes to
+	the height of the frame.  Recognize changes of the frame's
+	position.
+
+	* xfns.c (x_set_frame_parameters): Iterate over ALIST while the
+	current element is cons, not while it's non-nil.
+	(syms_of_xfns): Call init_x_parm_symbols after interning all the
+	other atoms; init_x_parm_symbols expects Qx_frame_parameter to be
+	initialized.
+
+1992-08-10  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xfns.c (Qbackground_color, Qborder_color,  Qborder_width,
+	Qcursor_color,  Qfont,  Qforeground_color,  Qgeometry,
+	Qhorizontal_scroll_bar,  Qicon_left,  Qicon_top,  Qiconic_startup,
+	Qinternal_border_width,  Qleft,  Qmouse_color,  Qparent_id,
+	Qsuppress_icon,  Qsuppress_initial_map,  Qtop,  Qundefined_color,
+	Qvertical_scroll_bar,  Qwindow_id,  Qx_frame_parameter): New
+	symbols, with lisp code to rebuild syms_of_xfns.
+	(syms_of_xfns): Initialize and staticpro them.
+	(Qheight, Qminibuffer, Qname, Qnone, Qonly, Qwidth,
+	Qunsplittable): Add extern declaration for these.
+	(x_init_parm_symbols): Don't initialize Qx_frame_parameter here;
+	it's done in syms_of_xfns.
+	(x_default_parameter): Change the argument char *PROPNAME into a
+	Lisp_Object PROP; let the caller take care of interning the atom.
+	(Fx_geometry, x_figure_window_size, x_icon, Fx_create_frame): Use
+	the new Q... variables, instead of interning things.
+
+	* frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
+	Qunsplittable, Qwidth, Qx): New symbol, with lisp code to rebuild
+	syms_of_frame.
+	(syms_of_xfns): Initialize and staticpro them.
+	(Fframep, Fframe_visible_p, Fframe_parameters):  Use
+	the new Q... variables, instead of interning things.
+	(store_in_alist): Change the argument char *PROPNAME into a
+	Lisp_Object PROP; let the caller take care of interning the atom.
+
+	* frame.c (Fframe_visible_p): Doc fix.
+
+	* frame.c (Fframe_parameters): When figuring the `minibuffer'
+	parameter, if FRAME doesn't have a minibuffer, return `none', not
+	nil.  If it does have a minibuffer with other windows, return the
+	window.
+
+	* frame.c (Fmodify_frame_parameters): Don't write out the loop for
+	processing X frame parameters here; do it in the x specific code.
+	Call the function which deals with this stuff
+	x_set_frame_parameters, not x_set_frame_parameter.
+	* xfns.c (x_set_frame_param): Replaced by x_set_frame_parameters.
+	(x_set_frame_parameters): Process the alist of parameters here.
+        Notice `width', `height', `top', and `left' parameters.
+        Hold off changing the frame size and position until the end, so we
+	can do both parameters at once when they are both specified.
+	(x_default_parameter): Call x_set_frame_parameters, not
+	x_set_frame_param.
+
+	* frame.c (Fmake_frame_visible, Fmake_frame_invisible,
+	Ficonify_frame, Fframe_parameters, Fmodify_frame_parameters,
+	Fset_frame_height, Fset_frame_width, Fset_frame_size,
+	Fset_frame_position): Place clauses controlled by FRAME_X_P inside
+	`#ifdef HAVE_X_WINDOWS ... #endif' clauses.
+
+	* frame.c (Fset_frame_position): Doc fix.
+
+	* dispnew.c (Fredraw_frame): Call clear_frame_records before
+	calling update_end, so that x_display_box_cursor can rely on the
+	contents of f->current_glyphs.
+
+	* xfns.c (x_figure_window_size): Indicate that this function
+	returns an int, rather than just leaving it unstated.
+
+	* xterm.c (x_wm_set_size_hint): Don't try to set the base_height
+	and base_width elements of size_hints if PBaseSize is not
+	#defined.  Set the minimum frame size according to the information
+	returned by check_frame_size.
+
+	* window.h (MIN_SAFE_WINDOW_HEIGHT, MIN_SAFE_WINDOW_WIDTH): Macros
+	removed.
+	(check_frame_size): New extern declaration.
+	* window.c (MIN_SAFE_WINDOW_HEIGHT, MIN_SAFE_WINDOW_WIDTH): Macros
+	defined here now.
+	(check_frame_size): New function.
+	* dispnew.c (change_frame_size): Call check_frame_size here,
+	rather than writing out its code.  Don't declare newheight and
+	newwidth to be register variables, since we take their address.
+
+	* bytecode.c (Fbyte_code): When metering the Bcall opcodes, make
+	sure the count on the symbol's `byte-code-meter' property does not
+	overflow.
+
+	* bytecode.c (syms_of_bytecode): Add a docstring for
+	byte-metering-on.
+
+1992-08-08  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* dispnew.c (in_display): Variable deleted; it's only ever used as
+	an unofficial parameter to change_frame_size.
+	(change_frame_size): New argument, DELAY, which when non-zero
+	indicates to delay the size change until later.  This should be
+	passed as one from signal handlers.
+	(window_change_signal): Call change_frame_size with a DELAY of 1.
+	(do_pending_window_change): Call change_frame_size with DELAY of 0.
+	* frame.c [MULTI_SCREEN] (Fset_frame_height, Fset_frame_width,
+	Fset_frame_size): Same.
+	[not MULTI_SCREEN] (Fset_frame_height, Fset_frame_width,
+	Fset_frame_size, Fset_screen_height, Fset_screen_width): Same.
+	* keyboard.c (Fsuspend_emacs): Call change_frame_size with the
+	proper arguments - the height and width are the second and third
+	arguments, not the first and second.  Pass 0 for DELAY.
+	* xfns.c (Fx_create_frame): Call change_frame_size with a DELAY of 0.
+	* xterm.c (XTread_socket, x_do_pending_expose): Call
+	change_frame_size with a DELAY of 1.
+	
+	* xterm.c (in_display): Deleted this; it's never used in xterm.c,
+	and there is another variable by the same name in dispnew.c.
+
+	* frame.c [not MULTI_SCREEN] (Fset_frame_height, Fset_frame_width,
+	Fset_frame_size, Fframe_height, Fframe_width): New functions, for
+	use when Emacs is not compiled with multiple screens.
+	[not MULTI_SCREEN] (Fset_screen_height, Fset_screen_width):
+	Functions added for backward compatibility with Emacs 18.  These
+	would be just aliases, except that the version 18 functions don't
+	take a FRAME argument.
+	[not MULTI_SCREEN] (syms_of_frame): New function, to defsubr the
+	above and add screen-height and screen-width as aliases for
+	Fframe_height and Fframe_width.
+	* emacs.c (main): Call syms_of_frame unconditionally.  When
+	MULTI_FRAME is not defined, it still provides the Fframe_width,
+	Fframe_height, Fset_frame_width, and Fset_frame_height functions.
+
+	* frame.c (Fset_frame_width): Change the size of FRAME, not of
+	selected_frame.
+
+	* frame.c (Fset_frame_width, Fset_frame_height): Declare the
+	`frame' argument to be a Lisp_Object.  It used to be undeclared.
+
+1992-08-07  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* dispnew.c, frame.c, frame.h, keyboard.c, scroll.c, term.c,
+	window.c, xdisp.c, xfns.c xterm.c (FRAME_IS_TERMCAP, FRAME_IS_X,
+	FRAME_HAS_MINIBUF): Renamed these to FRAME_TERMCAP_P, FRAME_X_P,
+	and FRAME_HAS_MINIBUF_P, for consistency with the rest of the
+	frame macros.
+
+	* window.h (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): New
+	macros.
+	* window.c (check_min_window_sizes): New function.
+	(set_window_height): Call it.
+	(Fsplit_window, change_window_height): Call it, instead of writing
+	out its code.
+	* dispnew.c (change_frame_size): If newlength or newwidth are too
+	small (according to the value of MIN_SAFE_WINDOW_{WIDTH,HEIGHT}),
+	force them larger.  This isn't really right, but it's better than
+	crashing.
+
+	* editfns.c (Fcurrent_time_zone): Doc fix.
+
+1992-08-06  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* editfns.c (Fcurrent_time_zone): Don't forget to include code to
+	signal an error when EMACS_CURRENT_TIME_ZONE is not defined.
+
+1992-08-06  Joseph Arceneaux (jla@gnu.ai.mit.edu)
+
+        * doc.c (Vdata_directory): Declared.
+	(syms_of_doc): Initialized.
+
+	* fileio.c (Fread_filename): Add 1 to the offset position for the
+	cursor when reading file names.
+
+1992-08-05  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* systime.h (EMACS_CURRENT_TIME_ZONE): New macro.
+	* editfns.c (Fcurrent_time_zone): New function.
+	(syms_of_editfns): defsubr it.
+
+	* keyboard.c (read_key_sequence): Clear the eighth bit of the
+	character from the key sequence, NOT the index of the character IN
+	the key sequence.  How many tries will it take to get it right?
+
+1992-08-04  Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+	* eval.c (syms_of_eval): Doc fix for debug-on-quit.
+
+1992-08-03  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* callproc.c (Fcall_process): Doc fix.  Used to claim that
+	Fcall_process doesn't wait when BUFFER was nil.  It does.
+
+1992-07-30  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* keyboard.c (read_key_sequence): Scan for function keys when t >=
+	mock_input, not when t > mock_input.  We do want to scan for
+	function keys when t == mock_input.
+
+	* keyboard.c (read_key_sequence): Don't increment fkey_end when
+	testing to see if keybuf[fkey_end] is a meta-character.
+
+1992-07-27  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* Makefile.in (TAGS): Generate tags for files in ../external-lisp
+	too.
+
+1992-07-26  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* eval.c (find_handler_clause): For quit, don't check Vdebug_on_error.
+	(wants_debugger): Rewrite so it cannot get an error.
+
+	* callint.c (Fcall_interactively): Handle enable-recursive-minibuffers
+	property on the command, by enabling recursive minibuffers.
+	(syms_of_callint): Set Qenable_recursive_minibuffers.
+
+1992-07-24  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* frame.c (Fmake_frame_visible, Fmake_frame_invisible,
+	Ficonify_frame): Make the first argument optional, defaulting to
+	selected_frame.
+	(Ficonify_frame, Fmake_frame_invisible): Add interactive specs, so
+	we can bind these directly to C-z.
+
+1992-07-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c (Fread_file_name): Use new calling convention for
+	Fcompleting_read, with history as Qfile_name_history.
+	(syms_of_fileio): Set Qfile_name_history; set the var to nil.
+	Do staticpro for the recently created Q* vars.	
+
+	* minibuf.c (read_minibuf): Two additional args histvar and histpos.
+	All calls changed.
+	(Fcompleting_read): Last arg is now HIST--(HISTVAR . HISTPOS).
+	Arg INIT can now be (INITIAL-STRING . INITIAL-POSITION).
+	Pass BACKUP_N arg to read_minibuf properly as Lisp object.	
+	(Fread_from_minibuffer): Likewise.
+	(syms_of_minibuf): Set Qminibuffer_history and staticpro it.
+
+	* eval.c (Ffuncall, Feval): Support subrs with 7 args.
+
+	* fns.c (Fyes_or_no_p): Use Fread_string, not read_minibuf.
+	* callint.c (Fcall_interactively): For 'S', use Fread_no_blanks_input
+	rather than read_minibuf.	
+
+1992-07-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+	
+	* minibuf.c (Vminibuffer_history_variable): New variable.
+	(syms_of_minibuf): Define variable minibuffer-history-variable.	
+	(read_minibuf): Push the string on specified history list.
+	
+1992-07-23  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* Makefile.in (doall, doxemacs, dotemacs): Put quotes around CC=${CC}.
+	Don't include $(MAKEOVERRIDES); that is always implicit.
+
+1992-07-22  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): If we have read a
+	meta-character, prefix it with meta_prefix_char before looking it
+	up in the function key keymap.
+
+	* lread.c (Fread_char_exclusive): Code this with a do-while loop,
+	not a while loop with its body repeated.
+
+	* lread.c (Fread_event): Don't make this function's definition
+	conditional on X-windows.  It ought to be there no matter how
+	Emacs was built.
+	(syms_of_lread): Don't make its defsubr conditional either.
+
+	* lread.c (Fread_char): Doc fix.
+
+	* fileio.c (find_file_handler): It's called
+	Vfile_name_handler_alist, not Vfile_handler_alist.
+	(Fwrite_region): Declare the variable named `handler'.
+	(Fverify_visited_file_modtime): Use `b->filename', not `filename'.
+	(Fset_visited_file_modtime): Declare the variable named `handler'.
+	* dired.c (Fdirectory_files, Ffile_name_completion): Use
+	`dirname', not `filename'.
+	(Qfile_attributes): New variable.
+	(syms_of_dired): Initialize it.
+
+	* xselect.c (Fx_own_selection): If we're trying to set
+	cut-buffer0, and the value is too large for the X server (as
+	indicated by the max_request_size member of the X Display), just
+	set the buffer to the empty string, and return nil.
+
+1992-07-21  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* search.c (fast_string_match): New function.
+	* fileio.c (find_file_handler): New function.
+	(Fcopy_file, Fmake_directory, Fdelete_directory, Fdelete_file):
+	(Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
+	(Ffile_exists_p, Ffile_executable_p, Ffile_readable_p, Ffile_symlink_p)
+	(Ffile_writable_p, Ffile_directory_p, Ffile_accessible_directory_p):
+	(Ffile_modes, Fset_file_modes, Ffile_newer_than_file_p):
+	(Fwrite_region, Fverify_visited_file_modtime):
+	Use find_file_handler; call the handler and return.
+	(Finsert_file_contents): Use find_file_handler;
+	cannot just return after the handler, but must handle VISIT.
+	(syms_of_fileio): Set up Qcopy_file, etc.	
+	* dired.c (Fdirectory_files, Ffile_name_completion):
+	(Ffile_name_all_completions, Ffile_attributes):
+	Use find_file_handler; call the handler.
+	(syms_of_dired): Set Qfile_attributes, etc.
+
+1992-07-21  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xselect.c (Fx_own_selection): Initialize val to nil, so that if
+	we don't get the selection, we don't return garbage.  When setting
+	cut-buffer0, set val to the string pasted.
+
+	* xfns.c (x_set_name): If ARG is nil, set the frame's name to the
+	current x_id_name.
+	* xdisp.c (display_mode_line): If we should set the frame's name,
+	but there is only one frame currently active, call x_set_name with
+	nil as the name; this will display samething generically
+	appropriate.
+
+1992-07-20  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+	
+	* lread.c (isfloat_string): Recognize floats without a leading
+	integer part, noting that "e5" is a symbol, not a floating point
+	number.
+	
+	* xdisp.c (message, message1): When displaying a message, don't
+	make the minibuf frame visible unless the selected frame is also
+	visible.  This means that frames won't pop up unless the user is
+	actually interacting with Emacs.
+
+	* xdisp.c (display_mode_line): If Emacs is currently supporting
+	only one screen, don't change the title of the screen to the name
+	of the current buffer; this is only annoying in this case.  We
+	should probably think more carefully about how screens should be
+	named.
+
+1992-07-19  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+	
+	* process.c (allocate_pty): Handle PTY_OPEN.	
+	Delete system-specific alternatives to PTY_NAME_SPRINTF
+	and PTY_TTY_NAME_SPRINTF.	
+	
+1992-07-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+	
+	* callint.c (Fprefix_numeric_value): Fix typo: test raw, not val.
+	
+1992-07-17  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xfns.c (x_window): x_set_name normally ignores requests to set
+	the name if the requested name is the same as the current name.
+	This is the one place where that assumption isn't correct; f->name
+	is set, but the X server hasn't been told.  So fake it out.
+
+	* emacs.c [sun] (main): On suns, localtime caches the value of the
+	time zone rather than looking it up every time.  This means that
+	the dumped Emacs doesn't check the value of the TZ environment
+	variable.  Call tzset before entering the editing loop to check
+	the new TZ value.
+
+1992-07-16  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* dired.c (Fdirectory_files): Don't forget to pass the REGP
+	argument to compile_pattern.
+	* search.c (compile_pattern): If REGP is zero, don't call
+	re_set_registers; nobody cares.
+
+	* fileio.c (auto_save_error): Pass the correct number of arguments
+	to Fsleep_for.
+
+	* lread.c: Include <ctype.h> at the top of the file, instead of
+	just before isfloat_string; read0 wants to use it too.
+
+	* process.c (Fdelete_process, Fprocess_status, Fprocess_send_region,
+	Fprocess_send_string, Fprocess_send_eof, Finterrupt_process): Doc
+	fixes.
+	
+	* process.c (Fprocess_status): Use get_process to find the process
+	denoted by the PROC argument, not Fget_process.
+
+1992-07-15  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xdisp.c: Doc fix.
+
+1992-07-14  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* window.c (syms_of_window): Doc fix for pop-up-frames.
+
+	* frame.c (Fframe_parameters): Note that if FRAME is omitted, it
+	defaults to the selected frame.
+
+	* frame.c (Fframe_height, Fframe_width): Blocked out these
+	functions; they have no C callers, and can be written nicely in
+	lisp.
+	
+	* frame.c (Fframe_pixel_size): Function removed; there aren't
+	enough other functions available to make this useful.  We need
+	functions describing the size of the characters of a font.
+
+	* xterm.h, xterm.c, xselect.c, xmenu.c, xfns.c, xdisp.c, window.h,
+	window.c, termopts.h, termhooks.h, termchar.h, term.c sysdep.c,
+	scroll.c, screen.c, screen.h, process.c, print.c, minibuf.c,
+	lisp.h keyboard.c, indent.c, fns.c, emacs.c, dispnew.c,
+	dispextern.h, cm.h, alloc.c, config.h.in: Screens are now called
+	frames, to avoid even more confusion with X terminology than
+	Emacs's "windows" already cause.  All macros, functions, and
+	variables renamed; all uses changed.
+	* screen.c, screen.h: Renamed to frame.c and frame.h.  All
+	#includers changed.
+	* ymakefile: Adjusted appropriately.
+	* buffer.c: Doc fixes.
+
+	* xfns.c (Fx_store_cut_buffer): Reversed sense of test for non-X
+	screen.
+
+	* window.c (Frecenter): Doc fix; this function places point in the
+	middle of the current window, not the current screen.
+
+	* window.c (temp_output_buffer_show): Use WINDOW_SCREEN macro
+	instead of accessing the member directly.
+
+1992-07-13  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* print.c (print): Changed code which prints screen objects to use
+	the SCREEN_LIVE_P macro instead of testing the screen structure
+	directly.
+
+	* alloc.c (undo_threshold, undo_high_threshold): Variables renamed
+	to undo_limit and undo_strong_limit.
+	(Fgarbage_collect): Uses changed.
+	(syms_of_alloc): DEFVARs and docstrings changed.
+	* undo.c (truncate_undo_list): Comment adjusted.
+
+	* lread.c (read0): Allow floating-point numbers to begin with a
+	period.  `(0 .5)' denotes a list of two numbers, not a dotted pair.
+
+1992-07-11  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fns.c, callproc.c: Doc fix.
+
+1992-07-10  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* bytecode.c (Bsymbol_function, Bfset): Removed comments saying
+	that these are no longer generated.  Jamie Zawinski's byte
+	compiler does generate them, and he's actually collected
+	statistics on how often these functions are called.
+
+1992-07-09  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* screen.c (store_screen_param): Clarify error message.
+
+	* xterm.c (x_make_screen_visible): Undo the change made on June
+	30; that is not the right solution.  Apparently there are three
+	states a window may be in: normal, iconified, and invisible.
+
+1992-07-08  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* eval.c (Fmacroexpand): Code cleaned up; there's no need to
+	handle forms like ((macro lambda ...) ...) specially.
+
+	* fileio.c (Finsert_file_contents): Signal an error if we're asked
+	to read from a named pipe.
+
+1992-07-07  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* m/*.h (SIGN_EXTEND_CHAR): Removed these definitions.  The only
+	place they were used is in regex.c, and nowadays that has its own
+	definition, which works for any machine.  The definitions in the
+	machine description files usually didn't work if given an unsigned
+	character as an argument, anyway.
+
+1992-07-04  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* buffer.c: Doc fix.
+
+1992-07-02  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* minibuf.c (Fdisplay_completion_list): Declared new variables
+	used in rms' previous change.
+
+1992-07-02  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* minibuf.c (Fdisplay_completion_list): Handle non-buffer stream.
+
+1992-07-01  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* window.c (Fdisplay_buffer): Add interactive spec.
+
+1992-06-30  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* mem_limits.h: EXCEEDS_ELISP_PTR declared here.
+	* ralloc.c: No longer declared here.
+	* vm-limit.c: Nor here.  Also, include "lisp.h" before
+	"mem_limits.h" and additionally include "config.h".
+
+1992-06-30  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xterm.c (x_make_screen_visible): Don't de-iconify the window;
+	iconification is orthogonal to visibility.
+
+	* emacs.c (syms_of_emacs): Change docstring for `kill-emacs-hook'
+	to describe it as a hook, not as a single function.
+
+1992-06-29  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* minibuf.c (Fread_no_blanks_input): Corrected maximum number of
+	arguments from one to two.
+
+	* emacs.c (Vkill_emacs_hook): Declare this here; it should have a
+	docstring, so we might as well DEFVAR it.
+	(syms_of_emacs): initialize it, and DEFVAR_LISP it with an
+	appropriate docstring.
+
+1992-06-28  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* lread.c (Feval_buffer): Make the DEFUN match the C argument
+	list; this takes two optional arguments, not just one.
+
+	* lisp.h (Lisp_Buffer_Local_Value): Comments neatened.
+
+	* data.c (Fset): Fixed conditional which tests whether the cache
+	is invalid.  It used to be pretty munged, and would always declare
+	the cache invalid for Lisp_Buffer_Local_Value variables.  Now it
+	declares the cache invalid if the buffer is wrong (obviously), of 
+
+1992-06-27  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* data.c (Fset): Comments reformatted for readability.
+
+	* xterm.c (last_mouse_movement_time): New variable.
+	(note_mouse_position): Set it.
+	(XTmouse_position): Return its current value as the position's
+	timestamp.
+
+	* keyboard.c (Qvertical_split): Renamed to `vertical-line',
+	since the window arrangement is actually referred to as a
+	`horizontal split.'
+	(make_lispy_event, make_lispy_movement, syms_of_keyboard): Uses
+	renamed here.
+	keyboard.h (Qvertical_split): Extern declaration changed here.
+	window.c (Fcoordinates_in_window_p): Changed this to return
+	`vertical-line' at the appropriate times, rather than
+	`vertical-split'.
+
+	* window.c (Fcoordinates_in_window_p): Put symbol names in
+	opposing single quotes - `vertical-split', for example.
+
+	* fileio.c (Fexpand_file_name): Don't signal an error if USERNAME
+	in a "~USERNAME/..." filename isn't a real user; just leave the
+	"~USERNAME" unchanged.
+
+	* fileio.c (Fmake_symbolic_link): Rename argument `NEWNAME' to
+	`LINKNAME', to conform with the docstring.
+
+	* Makefile.in (CPP): Pass `-Is -Im' to CPP, to make sure that
+	machine- and system-dependend files can include each other
+	properly.
+	* ymakefile (CFLAGS): Add those directories to the #include path
+	here too.
+
+	* Makefile.in (xmakefile): Build this via a temporary file, so
+	that if preprocessing fails we don't nuke the xmakefile.
+
+	* fileio.c: There are two versions of Fexpand_file_name defined
+	here; the latter is inside a `#if 0' clause.  Change its DEFUN to
+	a DEAFUN, so that its docstring doesn't make it into the DOC file
+	and supercede the real docstring.
+
+	* callint.c (Fcall_interactively): For the 'K' interactive spec,
+	set varies[i] to -1, indicating that the mouse click should be
+	quoted if the function makes it into the command history, and that
+	this argument by itself does not qualify the command to be
+	recorded in the history.
+
+1992-06-26  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* data.c (Frem): The drem function will sometimes return a
+	negative number.  If it does, add the divisor to it, to make it
+	positive.
+
+	* screen.c: Put '#ifdef MULTI_SCREEN' after the inclusion of
+	config.h.
+
+	* window.c (Fpos_visible_in_window_p): Remember to apply XSCREEN
+	to w->screen before applying SCREEN_WIDTH.
+
+	* screen.h [not MULTI_SCREEN] (last_nonminibuf_screen): Removed
+	#definition of this; it's confusing when debugging.
+	* screen.c (last_nonminibuf_screen): Variable moved from here...
+	* dispnew.c (last_nonminibuf_screen): to here, beside
+	selected_screen.  They should both exist, even if the multi-screen
+	support is not present.
+
+	* dispnew.c [not MULTI_SCREEN] (the_only_screen): New variable.
+	Instead of having the non-multi-screen version of Emacs refer to
+	lots of different variables scattered hither and yon, we'll just
+	declare this new variable, of type `struct screen', and define the
+	single-screen versions of the `SCREEN_foo' macros to reference its
+	elements.  This avoids conflicts between names of local variables
+	and names of global variables describing the screen, and simplifies
+	some of the differences between the multi-screen and single-screen
+	cases.
+	* screen.h (enum output_method, struct screen): Removed these from
+	the `#ifdef MULTI_SCREEN' conditional.
+	* screen.h [not MULTI_SCREEN] (the_only_screen): extern
+	declaration for it here.
+	[not MULTI_SCREEN] (SCREEN_CURRENT_GLYPHS, SCREEN_DESIRED_GLYPHS,
+	SCREEN_TEMP_GLYPHS, SCREEN_HEIGHT, SCREEN_WIDTH,
+	SCREEN_NEW_HEIGHT, SCREEN_NEW_WIDTH, SCREEN_CURSOR_X,
+	SCREEN_CURSOR_Y, SCREEN_ROOT_WINDOW, SCREEN_INSERT_COST,
+	SCREEN_DELETE_COST, SCREEN_INSERTN_COST, SCREEN_DELETEN_COST,
+	SCREEN_MESSAGE_BUF, SCREEN_SCROLL_BOTTOM_VPOS): Macros changed to
+	refer to the_only_screen.
+	* dispnew.c [not MULTI_SCREEN] (one_screen_cursX,
+	one_screen_cursY, one_screen_current_glyphs,
+	one_screen_desired_glyphs, one_screen_temp_glyphs,
+	delayed_screen_width, delayed_screen_height): Variables
+	deleted; they're all now kept in the_only_screen.
+	* xdisp.c [not MULTI_SCREEN] (message_buf): Variable deleted; same
+	fate.
+	* term.c [not MULTI_SCREEN] (one_screen_width, one_screen_height):
+	Variables deleted; same fate.
+	* screen.h [not MULTI_SCREEN]: extern declarations for the above
+	variables removed.
+	* window.c [not MULTI_SCREEN] (root_window): Variable deleted.
+	[not MULTI_SCREEN] (init_window_once): Use SCREEN_ROOT_WINDOW to
+	refer to the root window, instead of referring to it directly.
+	* window.h [not MULTI_SCREEN] (root_window): extern declaration
+	removed.
+	* scroll.c [not MULTI_SCREEN] (insert_line_cost, delete_line_cost,
+	insert_n_lines_cost, delete_n_lines_cost): Variables deleted; same
+	fate.
+
+	* dispnew.c [not MULTI_SCREEN] (cursX, cursY): Renamed to
+	`one_screen_cursX' and `one_screen_cursY'.
+	* screen.h [not MULTI_SCREEN] (cursX, cursY, SCREEN_CURSOR_X,
+	SCREEN_CURSOR_Y): extern declarations and macros changed
+	accordingly.
+
+	* term.c [not MULTI_SCREEN] (screen_width, screen_height): Renamed
+	to `one_screen_width' and `one_screen_height', so as not to
+	conflict with local variables when referenced by the `SCREEN_foo'
+	macros.
+	* screen.h [not MULTI_SCREEN] (screen_width, screen_height):
+	extern declarations changed accordingly.
+	* termchar.h (screen_width, screen_height): extern declarations
+	deleted.  Everyone should go through the `SCREEN_foo' macros.
+	(SCREEN_WIDTH, SCREEN_HEIGHT): Changed accordingly.
+
+1992-06-25  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* callint.c (Fcall_interactively): When making a copy of the spec
+	string, cast the return value of `alloca' to `unsigned char *',
+	not `char *', to match the type of `string'.
+
+	* xselect.c (Fx_own_selection): Cast XSTRING (string)->data to a
+	char *, so it can be comfortably passed to XStoreBytes.
+
+	* filelock.c (strcpy): Declare this to return char *.
+
+1992-06-24  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* dispnew.c (current_glyphs, desired_glyphs, temp_glyphs): Renamed
+	to have the prefix `one_screen_', so that the screen macros can
+	refer to them without conflicting with local variables.
+	* screen.h [not MULTI_SCREEN] (SCREEN_CURRENT_GLYPHS,
+	SCREEN_DESIRED_GLYPHS, SCREEN_TEMP_GLYPHS): Changed accordingly.
+
+	* keyboard.c (read_key_sequence): Put the code which restarts the
+	key sequence in a `#ifdef MULTI_SCREEN' conditional.
+
+	* screen.h [not MULTI_SCREEN]: Added definitions for
+	CHECK_LIVE_SCREEN and SCREEN_FOCUS_SCREEN for the non-multi-screen
+	case.
+
+	* screen.h [not MULTI_SCREEN]: The name is
+	`SCREEN_MINIBUF_ONLY_P', not `SCREEN_IS_MINIBUF_ONLY'.
+
+	* xdisp [not MULTI_SCREEN] (Fredraw_display): Removed definition
+	here; the non-multi-screen version is already defined in
+	dispnew.c, alongside the multi-screen version.
+	(syms_of_xdisp): Don't try to defsubr Sredraw_display; it doesn't
+	exist.
+
+	* lread.c (Fread_char_exclusive): Remove this from the `#ifdef
+	HAVE_X_WINDOWS' conditional; it is appropriate in any context.
+
+	* eval.c (Fsignal): Put call to TOTALLY_UNBLOCK_INPUT under the
+	protection of a `#ifdef HAVE_X_WINDOWS' conditional.
+
+        * keyboard.c (kbd_buffer_get_event): Expect *mouse_position_hook
+	to return the timestamp as an unsigned long, not a lisp_Object.
+	This matches the change made to `struct input_event'.
+	(make_lispy_movement): Change argument TIME to an unsigned long.
+	* xterm.c (XTmouse_position): Change TIME argument to a pointer to
+	an unsigned long.
+	* termhooks.h (mouse_position_hook): Doc fix.
+	* term.c (mouse_position_hook): Doc fix.
+
+	* termhooks.h (struct input_event): If MULTI_SCREEN is defined,
+	declare the .screen element to be `struct screen *'; otherwise,
+	declare it to be `int'.  See the comment in the file for why I've
+	done this obviously wrong thing.
+
+	* print.c (printbufidx): Doc fix.
+	* xdisp.c (message_buf_print): Doc fix.
+
+	* dispextern.h (message_buf_size): Variable deleted; it's no
+	longer used, since the message buffer is always the width of the
+	screen.
+
+	* screen.h [not MULTI_SCREEN] (message_buf): Add extern
+	declaration for it here.
+	(message_buf_print): Added extern declarations here for both the
+	MULTI_SCREEN and non-MULTI_SCREEN cases.
+	* dispextern.h (message_buf, message_buf_print): Deleted extern
+	declaration for these here.  It should never be used directly; it
+	should always be used through the SCREEN_MESSAGE_BUF macro.
+
+	* dispnew.c (temp_glyphs): Added back this variable declaration;
+	screen.h and various other places referred to this; where did it
+	go?
+	* screen.h [not MULTI_SCREEN] (temp_glyphs, desired_glyphs,
+	current_glyphs): Add extern declarations for these.
+
+	* dispnew.c (cancel_my_columns): Use SCREEN_DESIRED_GLYPHS macro,
+	instead of assuming that a SCREEN_PTR is actually a pointer to
+	something; it isn't if we're not using any of the screen support.
+	Remove the variable `screen', and find the value for
+	`desired_glyphs' directly.
+	* xdisp.c (echo_area_display): Use the SCREEN_DESIRED_GLYPHS macro
+	to find screen's desired cursor position, instead of assuming that
+	a SCREEN_PTR is a pointer to something.
+	(display_mode_line): Same.
+	* window.c (Fpos_visible_in_window_p): Use the SCREEN_WIDTH macro.
+	(replace_window): Use the SCREEN_ROOT_WINDOW macro.
+	(window_loop): Use the SCREEN_WIDTH macro.
+
+	* dispnew.c (update_screen): Enclose the statement which
+	increments `downto' in a `#ifdef HAVE_X_WINDOWS' conditional.
+
+	* screen.h [MULTI_SCREEN and not MULTI_SCREEN] (FOR_EACH_SCREEN):
+	New macro.
+	* dispnew.c (window_change_signal, do_pending_window_change): Use
+	FOR_EACH_SCREEN instead of assuming that Vscreen_list exists.
+	* window.h (root_window): Added extern declaration for this.
+
+	* screen.c: Enclose the entire file in a #ifdef MULTI_SCREEN
+	conditional.
+
+
+1992-06-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* window.c (Fset_window_dedicated_p):
+	Replaces Fset_window_buffer_dedicated.  Second arg just t or nil.
+
+1992-06-22  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* syntax.h (SYNTAX, SYNTAX_MATCH, SYNTAX_COMSTART_FIRST, etc.)
+	Cast character to unsigned char before indexing.
+
+1992-06-19  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xterm.c (x_wm_set_size_hint): Set size_hints.flags to indicate
+	that we are providing the base_width and base_height data.
+
+	* xfns.c (Fx_create_screen): Default the internal border width to
+	2; this matches XTerm.
+
+	* syntax.c (Fparse_partial_sexp): Doc fix.
+
+	* syntax.c (Fparse_partial_sexp): Added phony argument list to
+	comment containing the docstring for this function, so that
+	make-docfile.c will get the right arguments.
+
+	* xfns.c (x_set_name): Don't go through the X11 brouhaha to set
+	the name unless we're actually setting it to something different
+	from the current name.
+
+1992-06-18  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* eval.c (syms_of_eval): Don't forget to escape the ends of the
+	lines in the docstring for `debug-on-quit'.
+
+	* keyboard.c (Fread_key_sequence): Reversed sense of CONTINUE_ECHO
+	argument - set this_command_key_count to zero iff CONTINUE_ECHO is
+	Qnil, not iff it's non-Qnil.
+
+1992-06-17  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+	
+	* search.c: Changed to remember the object in which the last
+	search was done, so that markers from match data are placed in
+	that buffer, instead of the current buffer.
+	(search_regs_from_string): Replaced with...
+	(last_thing_searched): This is either Qnil, meaning no searching
+	has been done, Qt, meaning that the last search was done in a
+	string, or a buffer object, meaning that the last search was done
+	in that buffer.
+	(syms_of_search): Initialize and staticpro last_thing_searched.
+	(Flooking_at, search_buffer): Set last_thing_searched to the
+	current buffer.
+	(Fstring_match): Set last_thing_searched to Qt.
+	(Fmatch_data): Test last_thing_searched to see if any searching
+	has been done, and construct integers or markers in the right
+	buffer.  Abort if it's not Qt, Qnil, or a buffer.
+	(Fstore_match_data): Set last_thing_searched according to the
+	things we find in LIST.
+	
+1992-06-16  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* fns.c (Fload_average): Document the fact that this sometimes
+	returns a list of fewer than three elements, on systems which
+	don't provide 5- and 15-minute load averages.
+
+1992-06-15  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+	
+	* xterm.c (XTread_socket): If an event arrives to a screen S,
+	don't attribute them to SCREEN_FOCUS_SCREEN (S) here.  Do that
+	synchronously, when the events are dequeued.  This keeps events
+	from being accidentally routed to the wrong screen, if we
+	temporarily redirect a screen's focus.
+	* keyboard.c (kbd_buffer_store_event): If the character being
+	stuffed is a quit character, do the SCREEN_FOCUS_SCREEN
+	redirection to it here.
+	(kbd_buffer_get_event): And do it here, before returning the
+	event.
+	
+	* eval.c (Finteractive_p): This assumed that if the function in
+	the top frame of the lisp backtrace was not a Lisp_Compiled
+	object, then Finteractive_p must have an explicit frame on the top
+	of the stack, which we could skip.  It didn't bother to follow the
+	symbol function chaining, and it would break if any C code called
+	from a non-compiled function tried to call Finteractive_p anyway.
+	Changed this to actually check if the top frame's effective
+	function is the Lisp_Subr for Finteractive_p.  This also used to
+	skip any number of frames for special forms and/or Fbytecode
+	calls.  Changed this to skip an Fbytecode frame (if present),
+	followed by any number of special form frames.
+
+1992-06-14  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* eval.c (struct backtrace): Doc fix.
+
+1992-06-12  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* m/hp300bsd.h (LOAD_AVE_TYPE): This is long, not double.
+	(LOAD_AVE_CVT): Adjusted as appropriate.
+
+	* fns.c: Moved lots of system-dependent preprocessor cruft
+	dealing with getting the load average to `getloadavg.c'.
+	(Fload_average): Guts moved to `getloadavg.c'.
+	* getloadavg.c: New file, containing the necessary mess to get the
+	load average on many different systems.  This file is supposed to
+	be Emacs-independent.
+	* ymakefile (obj): Add getloadavg.o to the list.
+	(getloadavg.o): Note that this depends on its source, and config.h.
+
+	* screen.c (Fdelete_screen): Typo in loop looking for new
+	last_nonminibuf_screen - change	`screen = XCONS (screens)->cdr`
+                                     to	`screens = XCONS (screens)->cdr`
+
+	* xdisp.c (echo_area_display): Don't neglect to draw all the lines
+	of the minibuffer window (or echo area) when a message is being
+	displayed.  If the minibuffer is more than one line high, they
+	should all be blanked.
+
+1992-06-10  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* sysdep.c [POSIX_SIGNALS] (sys_signal): Fix typo - rather than
+	calling new_action as if it were a function, call sigaction.
+
+1992-06-09  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* lisp.h (Qnumberp, Qnumber_or_marker_p): Declared.
+
+	* eval.c (wants_debugger): Changed NULL to NILP.
+	Who installed these calls to NULL?
+
+1992-06-09  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* dispnew.c (Fsit_for): Don't forget to actually set sec from ARG.
+
+	* termhooks.h (struct input_event): Doc fix - for mouse clicks, .x
+	and .y give the position in characters, not in pixels.
+
+	* keyboard.c (format_modifiers): Order the modifier letters
+	alphabetically - control, meta, shift, and up.
+
+1992-06-08  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* xfns.c: Move some extern decls out of #if 0, to top of file.
+
+1992-06-08  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* window.c (Fcoordinates_in_window_p): Docstring fix.
+
+	* buffer.c (Fother_buffer): Put a comma between arguments BUFFER
+	and VISIBLE_OK in the argument list.  Duh.
+
+	* screen.c (Fdelete_screen): Remember that s is a SCREEN_PTR *,
+	not a Lisp_Object.
+
+	* search.c (search_regs): Doc fix.
+	(compile_pattern): Take a new argument - the search register
+	structure - so we can reassure the regex routines that the
+	registers have been allocated.
+	(Flooking_at, Fstring_match, search_buffer): Changed to pass
+	&search_regs to compile_pattern.
+	(search_buffer): When we've searched for a literal string and
+	found it, make sure that the search registers are allocated before
+	stuffing the location of the search into them.
+	(Fstore_match_data): If we need to allocate more registers,
+	allocate them using re_set_registers, instead of just storing the
+	new registers and hoping that regex doesn't free them.
+
+	* search.c (Freplace_match): Doc fix.
+
+1992-06-07  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* screen.c (Fdeiconify_screen): Function deleted.
+	It was the same as make-screen-visible.
+
+1992-06-06  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* keyboard.c: Doc fix.
+
+	* floatfns.c (Fcbrt): Renamed from Fcube_root, and #if 0'd.
+
+	* lisp.h (CHECK_NUMBER_OR_FLOAT*): Use Qnumberp or Qnumber_or_marker_p.
+	* data.c (syms_of_data): Staticpro those.
+	(Qinteger_or_float_p, Qinteger_or_float_or_marker_p): Deleted.
+	(Fnumberp, Fnumber_or_marker_p): Define these always,
+	but make them work even if not LISP_FLOAT_TYPE.
+
+1992-06-05  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* config.h.in: Undefine REL_ALLOC if a system specific file
+	defines SYSTEM_MALLOC.
+
+	* sysdep.c (save_signal_handlers): Cast result of signal  to
+	avoid compiler warning.
+	* process.c (send_process): Likewise.
+
+1992-06-05  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+	
+	* keyboard.c (Fread_key_sequence): New 2nd arg CONTINUE_ECHO
+	added for the sake of universal-argument.
+	
+1992-06-04  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* editfns.c (Fset_default_file_mode): Function deleted.
+	(Funix_sync): Moved.
+	* fileio.c (Funix_sync): Moved to here.
+
+	* xfns.c (Fx_erase_rectangle, Fx_draw_rectangle, Fx_contour_region):
+	(Fx_uncontour_region): #if 0 these.
+	(x_rectangle, outline_region): Likewise.
+	(syms_of_xfns): #if 0 the defsubrs.
+
+	* dispnew.c (Fsleep_for, Fsit_for): Clean up error messages.
+
+	* eval.c, print.c, keyboard.c: Doc fix.
+
+	* xfns.c (Fx_horizontal_line): Disabled, since not documented.
+
+	* fileio.c (Fdelete_directory): Renamed from Fremove_directory.
+
+	* unexencap.c: Deinstalled (renamed to =unexencap.c)
+	since awaited papers never arrived.
+
+	* xfns.c: Doc fix.
+
+1992-06-04  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* eval.c (stack_trace_on_error, debug_on_error): Made Lisp_Objects V*.
+	(syms_of_eval): Changed DEFVAR_BOOLs to DEFVAR_LISPs.
+	(wants_debugger): New fn.
+	(find_handler_clause): Use it to look in debug-on-error and
+	stack-trace-on-error lists.
+
+1992-06-04  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* floatfns.c (Fbessel_*, Ferf, Ferfc, Flog_gamma): Turned off;
+	not clearly worth including.
+	(Fasinh, Facosh, Fatanh, Fsinh, Fcosh, Ftanh): Likewise.
+
+1992-06-03  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* minibuf.c, keyboard.c: Doc fix.
+
+	* window.c (Fwindow_at): Fix number of args--minimum 2, max 3.
+
+	* screen.c: Doc fix.
+
+1992-06-02  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* lread.c (Feval_buffer): Don't read any arguments, if interactive.
+
+1992-06-02  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* screen.c (make_screen_without_minibuffer): Apply XSCREEN to
+	Vdefault_minibuffer_screen before calling SCREEN_LIVE_P.  The
+	argument to SCREEN_LIVE_P must be a SCREEN_PTR, not a Lisp_Object.
+
+	* dispnew.c (Fsit_for): This used to compare arg with 0 and return
+	Qt immediately.  It should actually call sit_for anyway, because
+	sit_for needs to test for input and do the redisplay.
+	(sit_for): Compare sec and usec with zero here, after we've
+	looked for input and done a redisplay.
+
+	* lread.c (Feval_buffer): Use NILP, not NIL_P.
+
+1992-06-01  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* buffer.h: New macro, BUF_SET_PT.
+
+	* lread.c: New subr `eval-buffer', replaces `eval-current-buffer',
+	which is now defined in simple.el.
+
+1992-05-30  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* screen.c (Fdelete_screen): If we're deleting the default
+	minibuffer screen, try to find another minibuffer screen.
+
+1992-05-29  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* buffer.c (Fother_buffer): New optional argument VISIBLE_OK,
+	indicating that buffers currently visible in windows should not be
+	discriminated against.
+
+1992-05-28  Ken Raeburn  (raeburn@cygnus.com)
+	
+	* screen.c (Fdelete_screen): Fix bugs in walking screen list.
+	(make_screen_without_minibuffer): Signal an error if the default
+	minibuffer screen is dead.
+	
+	* xfns.c (x_set_name): Use ICCCM-conforming scheme for changing
+	window name in X11.
+	(Fx_create_screen): Likewise.
+
+1992-05-27  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xselect.c: Support getting and setting the obsolete X cut
+	buffers.
+	(Qcut_buffer0): New atom, denoting the X cut buffer 0.
+	(syms_of_xselect): Initialize and staticpro it.
+	(Fx_own_selection): If TYPE is Qcut_buffer0, interpret this to
+	mean that we should set cut buffer 0 to STRING.
+	(Fx_selection_value): If TYPE is Qcut_buffer0, interpret this to
+	mean that we should retrieve the value of cut buffer 0.
+
+1992-05-21  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xterm.c (construct_mouse_click): Removed extra assignment of
+	result->timestamp.
+
+	* keyboard.c (last_event_timestamp): Doc fix.
+	* xselect.c (last_event_timestamp): Declare it extern here.
+	(mouse_timestamp): Variable deleted.  last_event_timestamp is a
+	more accurate thing to use here.
+	(own_selection, get_selection_value): Use last_event_timestamp
+	instead of mouse_timestamp.
+	* keyboard.c (make_lispy_event): Pass the event's timestamp
+	through the make_number function, to assure that it is properly
+	tagged before incorporating it into the lispy event.
+	* xterm.c (construct_mouse_click): The timestamp element of a
+	struct input_event is no longer a Lisp_Object; it is now an
+	unsigned long.  So don't use XSET to assign to it.
+	(XTread_socket): Same here, in processing KeyPress events.
+
+	* keyboard.c (Fexecute_extended_command): Properly initialize
+	this_command_keys to the concatenation of the sequence that
+	invoked Fexecute_extended_command, the characters making up the
+	name of the command we're running, and a return character.
+	Previously, this code would set it to the last key typed while
+	reading the function name from the minibuffer, followed by the
+	name of the function being run.
+
+1992-05-20  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xterm.c (x_display_box_cursor): Draw the cursor at curs_{x,y},
+	rather than at s->cursor_{x,y}.  If cursor_in_echo_area is set,
+	then s->cursor_{x,y} does not accurately describe the position of
+	the cursor.  However, if we're not updating, then curs_{x,y} are
+	garbage; set them from s->cursor_{x,y}.
+
+	* dispnew.c (update_screen): Check current_screen->enable and
+	current_screen_used to see if there is any text on the last line,
+	not desired_screen->{enable,used}.  When the line isn't enabled,
+	move to line SCREEN_HEIGHT (s) - 1, not SCREEN_HEIGHT (s).
+	Rearranged conditionals.
+
+	* dispnew.c (cursor_in_echo_area): Document the interpretations of
+	positive and negative values of this variable.
+
+1992-05-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* dispnew.c (Fding): If have arg, don't end a keyboard macro.
+
+1992-05-18  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* dispnew.c (sit_for): New function, which is a slight
+	generalization of Fsit_for; you can tell it that it's waiting for
+	input, so C-g gets handled properly.
+	(Fsit_for): Call it, instead of replicating all its guts.
+	* keyboard.c (read_char): Call sit_for instead of Fsit_for, and
+	indicate that we're awaiting keyboard input.
+
+	* dispnew.c (Fsit_for): Rename arguments to match docstring.  Use
+	NILP instead of EQ (foo, Qnil).	 If nodisp is non-nil, call
+	wait_reading_process_input with do_display 0, instead of 1; this
+	will inhibit spurious redisplays when process input arrives during
+	a sit-for.
+
+        * process.c (Faccept_process_output): Pass zero as read_kbd
+	argument to wait_reading_process_input when PROC is nil, not when
+	PROC is non-nil.
+
+	* process.c (wait_reading_process_input): Declare read_kbd to be a
+	Lisp_Object, and use the tagging to tell the difference between a
+	process object and an integer.
+	* dispnew.c (Fsleep_for, Fsit_for, Fsleep_for_millisecs): Pass
+	read_kbd argument to wait_reading_process_input as a Lisp_Object.
+	* keyboard.c (kbd_buffer_get_event): Same.
+	* process.c (Faccept_process_output, send_process): Same.
+
+	* keyboard.c (read_char): Use save_getcjmp and restore_getcjmp
+	instead of doing the bcopy explicitly.
+
+	* xterm.c (XTread_socket): When handling an EnterWindow event,
+	don't bother to check waiting_for_input.  It's not necessary.
+
+	* keyboard.c (read_char): Don't clear waiting_for_input and
+	input_available_clear_time here.
+	(quit_throw_to_read_char): It's already done here.
+
+	* keyboard.c (quit_throw_to_read_char): Use
+	clear_waiting_for_input instead of clearing waiting_for_input
+	explicitly.
+
+1992-05-18  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* keyboard.c (read_char): Call clear_waiting_for_input instead of
+	clearing waiting_for_input and input_available_clear_time
+	explicitly.
+
+1992-05-15  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* ymakefile [defined (__GNUC__) and __GNUC__ > 1]: define
+	YMF_PASS_LDFLAGS so that it can deal with an empty flags argument.
+
+	* callproc.c (Fcall_process): Under VMS, a nil INFILE argument
+	means to read from "NLA0:", not "/dev/null".
+
+	* callproc.c (Fcall_process): Use nil as the value for display
+	(the fourth argument) when nargs >= 4, not when nargs >= 3.
+
+1992-05-14  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+	
+	* termhooks.h: Change timestamp from a Lisp_Object to an unsigned
+        long.
+	* keyboard.c (kbd_buffer_store_event): We don't have to apply the
+        XINT macro to the timestamp member of the event anymore.
+
+	* process.c (wait_reading_process_output): Don't turn off polling.
+
+	* sysdep.c (setpgrp_of_tty): Pass the address of pid, not pid
+	itself.
+
+	* process.c: Deleted cpp tangle for dealing with system-dependent
+	tty handling; #included "systerm.h".
+	* systerm.h: Add some of the things that were done in process.c:
+	If titan is #defined, then we should include <sys/ttyhw.h> and
+	<sys/stream.h> along with the other SYSV pty stuff.
+	If HPUX is #defined, then EMACS_HAVE_TTY_PGRP isn't true.
+	If XENIX is #defined, then we shouldn't try to use TIOCGETC.
+	* ymakefile: Note that process.o depends on systerm.h now.
+
+1992-05-13  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+        * callint.c (Fprefix_numeric_value): Value 1 for symbol other than `-'.
+
+1992-05-13  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* cmds.c (Fforward_line): If the buffer is empty, don't try to see
+	if it contains a newline, and moving nowhere at eob after
+	non-newline should return 1, not 0.
+
+	* search.c (scan_buffer): Doc fix.
+
+	* buffer.c (Fbuffer_disable_undo): Accept a buffer name as an
+	argument.
+
+1992-05-12  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c: Include config.h first thing.	
+	
+	* keyboard.c (clear_input_pending): New subroutine.
+	* process.c (wait_reading_process_input): Make C-g really quit in
+	sit-for case.
+
+        * ymakefile (LD_SWITCH_SYSTEM): Don't use -X with GCC.
+
+1992-05-12  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* eval.c (Fapply): Use indirect_function, instead of doing a dumb
+	loop.
+	* keymap.c (get_keymap_1): Same.
+	* macros.c (Fexecute_kbd_macro): Same.
+
+	* buffer.c (init_buffer_once): Don't disable undos for *scratch*
+	here.  Do it in loadup.el.
+
+	* buffer.c (init_buffer_once): Doc fix.
+
+	* doc.c (Fdocumentation): After extracting the doc string from a
+	lambda or autoload expression, don't fall through to the default
+	case and signal an invalid function error; instead, do a `break'.
+
+	* doc.c (Fdocumentation): Use EQ (x, y) instead of XSYMBOL (x) ==
+	XSYMBOL (y).
+
+	* doc.c (Fdocumentation): When decyphering a function made from
+	conses, use 'else if' for the chain of alternatives instead of
+	just 'if'.  It used to be that each alternative returned, but
+	that's not true anymore.
+
+	* alloc.c (Fgarbage_collect): Don't call truncate_undo_list on
+	buffers whose undo list is 't.
+
+	* doc.c (Fdocumentation): Renamed argument `fun1' to `function',
+	so make-docstring will list argument consistently with the
+	docstring.
+
+1992-05-11  Joseph Arceneaux  (jla@churchy.gnu.ai.mit.edu)
+
+	* xterm.h: Removed definition of `RES_CLASS'.
+
+	* xfns.c (x_get_arg): Eliminated `screen_name' parameter.  No
+	longer uses screen name as X resource search component.
+	All calls to x_get_arg changed accordingly.
+	Global variable `screen_class' and #define `SCREEN_CLASS' removed.
+
+	* xterm.c (XTread_socket): Added basic structure for handling
+	various ClientMessage events, using new global variables
+	`Xatom_wm_take_focus', `Xatom_wm_save_yourself',
+	`Xatom_wm_delete_window', `Xatom_wm_configure_denied',
+	`Xatom_wm_moved'.
+	* xfns.c: Declare these variables extern.
+	(syms_of_xfns): Initialize these variables.
+
+	* xselect.c (Fx_own_selection, Fx_selection_value): New optional
+	parameter `type', to specify the selection type.
+	(syms_of_xselect): New symbols Qprimary, Qsecondary, Qclipboard
+	initialized.
+
+1992-05-11  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* data.c (Qcyclic_function_indirection): New error condition.
+	(indirect_function, Findirect_function): New functions.
+	(syms_of_data): Initialize Qcyclic_function_indirection, put the
+	error properties on it, and staticpro it.  Defsubr
+	Findirect_function.
+	* lisp.h (indirect_function, Findirect_function): Declare them here.
+	* callint.c (Fcall_interactively): Get symbol's function by
+	calling indirect_function, instead of just looping.
+	* doc.c (Fdocumentation): Same.
+	* eval.c (Finteractive_p, Fcommandp, do_autoload, Feval,
+	Ffuncall): Same.
+	* keyboard.c (Fcommand_execute): Same.
+
+	* data.c (Fsymbol_function): Name the argument `symbol' instead of
+	`sym', so make-docstring will list argument consistently with the
+	docstring.
+
+	* process.c (wait_reading_process_input): Make sure the screen
+	isn't garbaged (and therefore not displayed) before we enter the
+	select and start waiting for input.
+
+	* keyboard.c: #include <systime.h>.
+	* ymakefile (keyboard.o): This depends on systime.h.
+	* keyboard.c (input_available_clear_word): Replaced with
+	input_available_clear_time, which is a pointer to an EMACSTIME;
+	sometimes the time information is larger than a single word.
+	(read_char): Changed ..._word to ..._time.
+	(input_available_signal): Use the EMACS_SET_SECS_USECS macro to
+	clear *input_available_clear_time, instead of zapping a zero into
+	*input_available_clear_word.
+	(set_waiting_for_input, clear_waiting_for_input): Adjusted
+	appropriately.
+
+1992-05-10  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* editfns.c (make_buffer_string): New function.
+	* lisp.h (make_buffer_string): Declare it here.
+	* editfns.c (Fbuffer_substring): Call make_buffer_string instead
+	of writing it out.
+	(Fbuffer_string): Call make_buffer_string instead of make_string,
+	so we can deal with buffer relocations.
+	* minibuf.c (read_minibuf): Same here.
+
+1992-05-09  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* syssignal.h (sigunblock): New macro, taken from 18.58's
+	emacssignal.h file.
+	* sysdep.c (request_sigio): Use the sigunblock macro to enable
+	reciept of SIGWINCH, instead of the dysfunctional sigblockx.
+
+1992-05-08  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* search.c: Doc fix.
+
+1992-05-06  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* emacs.c (decode_env_path): If EVARNAME is zero, don't try to
+	call getenv on it.
+	* lread.c (init_lread): When we don't have an environment variable
+	to check, pass 0 instead of the empty string.
+
+	* alloc.c (Fmake_marker): Use `SIGMASKTYPE' instead of `int'.
+	Instead of calling sigsetmask twice - once to get the mask, and
+	again to restore it - call sigblock, specifying no additional
+	signals.
+
+1992-05-05  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* alloc.c: #include <syssignal.h>, for the sake of the
+	bug-catching code in Fmake_marker.
+	ymakefile: Add dependency.
+
+	* syssignal.h [not POSIX_SIGNALS] (SIGFULLMASK): New definition,
+	for symmetry with the "defined (POSIX_SIGNALS)" case.
+
+	* callproc.c (child_setup): Since we always get the environment
+	from Vprocess_environment, don't bother to take the environment
+	the subprocess should inherit as an argument anymore.
+	* process.c (create_process): Don't pass environment as a
+	variable.  Just preserve it across call to fork.
+
+1992-05-04  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* floatfns.c: #include <syssignal.h>.
+	(float_error): Use SIGEMPTYMASK instead of zero.
+	
+	* syssignal.h [POSIX_SIGNALS] (sigmask): Defined to expand to a
+	statement expression under GCC, or a function call otherwise.
+	(sigpause, sigblock, sigunblock, sigsetmask): These are now
+	K&R-compatible macros.
+	* systerm.h [POSIX_SIGNALS] (sys_sigmask): Here is the function
+	the POSIX version of sigmask calls when we're not compiling with
+	GCC.
+	* alloc.c (Fmake_marker): Undo changes of Apr 29.
+	* callproc.c (Fcall_process): Same.
+	* data.c (arith_error): Same.
+	* floatfns.c (float_error): Same.
+	* keyboard.c (gobble_input): Same.
+
+	* sysdep.c (request_sigio, unrequest_sigio)
+
+1992-04-29  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* x11term.h (CLASS): Change this from "emacs" to "Emacs"; class
+	names should always start with an upper-case letter.
+
+	* syssignal.h: Arranged cpp conditionals so that the specific
+	cases come first, generic cases last.
+
+	* syssignal.h (sigpause, sigblock, sigunblock, sigsetmask): Macros
+	removed; they require GCC, and Emacs 19 should compile without GCC.
+	(EMACS_SIGPAUSE, EMACS_SIGBLOCK, EMACS_SIGUNBLOCK,
+	EMACS_SIGSETMASK, EMACS_SIGFREE, EMACS_SIGHOLDX, EMACS_SIGBLOCKX,
+	EMACS_SIGUNBLOCKX, EMACS_SIGPAUSEX): These are new macros that
+	don't require GCC, but expand to statements.
+	* callproc.c (Fcall_process): Use new EMACS_SIG* macros from
+	syssignal.h.
+	* keyboard.c (gobble_input): Same.
+	* sysdep.c (request_sigio, unrequest_sigio): Same.
+	* x11term.h (BLOCK_INPUT, UNBLOCK_INPUT): Same.
+	* alloc.c (Fmake_marker): Same.
+	* data.c (arith_error): Same.
+	* floatfns.c (float_error): Same.
+
+1992-04-28  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* ymakefile: If we're using GCC version 2.0 or later, use "$(CC)
+	-nostdlib" as the linker.  This will allow us to find libgcc.a
+	even when GCC puts it in a really weird place.
+	(YMF_PASS_LDFLAGS): New macro.
+	(temacs): Use it.
+
+	* s/hpux.h: Doc fix.
+
+	* filelock.c (egetenv): Declare this.
+	(lock_path, SUPERLOCK_NAME, superlock_path): New variables and
+	macros.
+	(MAKE_LOCK_PATH, lock_file, unlock_file, lock_superlock): Use the
+	variables lock_path and superlock_path instead of the PATH_LOCK
+	and PATH_SUPERLOCK macros.
+	(init_filelock): New function.
+	* emacs.c (main): Call the init_filelock function.
+	* paths.h.in (PATH_SUPERLOCK): Removed.  This is now calculated
+	from PATH_LOCK or from the EMACSLOCKDIR environment variable.
+
+	* filelock.c (MAKE_LOCK_PATH): New macro.
+	(lock_file, unlock_file, Ffile_locked_p): Use it.
+
+	* syntax.c (Fmodify_syntax_entry): Note that '-' is a synonym for
+	' ' (both denote whitespace), that '\\' denotes the escape class,
+	and that '/' denotes the character-quote class.  The description
+	used to claim that '\\' denoted the character-quote class, and
+	neglected to mention '-' and '/'.
+
+	* filelock.c (lock_file): Doc fix.
+
+1992-04-27  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* callproc.c (init_callproc): Get the default Vexec_path from the
+	environment variable "EMACSPATH"; get Vdata_directory from
+	"EMACSDATA".
+
+	* ymakefile: Fix #endif and #else comments.
+
+1992-04-27  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* ymakefile (xemacs): Link xemacs to temacs if HAVE_SHM.
+
+	* ymakefile (paths.h, config.h): Never copy, always fail.
+
+	* process.c (wait_reading_process_input): Redisplay if screen_garbaged.
+	Call do_pending_window_change first.
+	Include dispextern.h.
+	* ymakefile (process.o): Added dependency.
+
+	* ymakefile (OLDXMENU_OPTIONS): New macro, used compiling oldxmenu.
+
+1992-04-25  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* ymakefile: Changed all references to LD_CMD to LINKER, for
+	compatibility with the 18.58 configuration files.
+	* s/aix3-1.h, s/sunos4shr.h: Same here.
+
+	* ymakefile: Doc fixes.
+
+	* ymakefile (CC, MAKE): Set these variables from optional macros.
+	Change all uses of `make' to ${MAKE}.
+
+	* ymakefile: use HAVE_X11 as alias for X11.
+
+	* ymakefile (LIB_GCC, GNULIB_VAR): Handle GCC 2.
+
+	* process.c (allocate_pty): Re-arranged conditionals to put the
+	system-specific-case first, and the generic case in the #else
+	section, for consistency with the rest of Emacs.
+
+	* process.c (allocate_pty): Wait until we fail to open three ptys
+	in a row before concluding that we've reached the end of the ptys.
+
+1992-04-22  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* ralloc.c: #include "getpagesize.h".
+
+	* search.c (Flooking_at): Use search_regs.num_regs instead of
+	RE_NREGS.  As of regex version 0.4, the compiler allocates the
+	registers, and may allocate more than RE_NREGS.
+	(search_buffer): Same.
+	(Freplace_match): Use search_regs.num_regs to tell how many
+	registers are valid.  Also note that if none are valid, no search
+	has been performed.
+	(match_limit): Same.
+	(Fmatch_data): Same.
+	(Fstore_match_data): If we're trying to store more registers than
+	search_regs has allocated, re-allocate them to make room.
+
+1992-04-21  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+
+	* callproc.c (egetenv): Declare the type of VAR.
+
+	* lisp.h: Don't undefine NULL.  There is no longer any conflict.
+
+	* lisp.h (NUMBERP): New macro.
+	* editfns.c (Fformat): Protect the sections that deal with
+	Lisp_Float objects with a "#ifdef LISP_FLOAT_TYPE".
+	* bytecode.c (Fbyte_code): Use the NUMBERP macro instead of
+	explicitly checking for the Lisp_Float tag.
+	* callint.c (Fcall_interactively): Same here.
+
+	* xrdb.c (magic_searchpath_decoder): Re-allocate string as needed,
+	rather than making it a fixed-size array.
+
+	* xfns.c (Fx_rebind_key): Don't declare modifier_list to be a
+	register variable.  It's too big, and we need the address of its
+	first element when we pass it to XRebindKeysym anyway.
+
+	* fileio.c (Fdo_auto_save): Doc fix.
+
+1992-04-20  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* search.c (search_buffer): Cast RE_EXACTN_VALUE to char, because
+	the regex-0.4 distribution says so.
+
+	* ymakefile (dired.o): This depends on regex.h.
+
+	* process.c (wait_reading_process_input): There is code here which
+	sends SIGIO to Emacs if we thought we had input available but
+	didn't get SIGIO.  If the system doesn't have SIGIO, then
+	#ifdef it out.
+
+	* print.c (Fexternal_debugging_output): Arguments were declared
+	ANSI-style - rewritten in K&R 1 fashion.
+
+	* floatfns.c (IN_FLOAT): Cast the zero in the `else' clause of the
+	conditional expression to SIGTYPE, to match the type of the
+	float_error call in the `then' clause.
+
+	* s/hpux8: #define HPUX8; this is supposed to be customary
+	procedure, and fileio.c was expecting it, but somehow it didn't
+	get defined.
+
+	* sysdep.h: Move inclusions of [AIX] <sys/hft.h>,
+	<sys/devinfo.h>, <sys/pty.h>, <unistd.h> [NEED_BSDTTY]
+	<sys/bsdtty.h>, [HPUX and HAVE_PTYS] <sys/ptyio.h>, [SYSV_PTYS]
+	<sys/tty.h>, <sys/pty.h>, and [pfa] <sys/file.h> to systerm.h;
+	also move undefinition of LLITOUT under BSD4_1 to systerm.h.
+	* systerm.h: They're here.
+
+	* xterm.c (XTcursor_to, XTclear_end_of_line): Declare to return
+	int in the function definitions as well as their declarations.
+
+1992-04-19  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* fileio.c (directory_file_name): When checking if the string ends
+	with '/', check that slen is a valid length *before* examining
+	dst[slen-1], not after.
+
+1992-04-18  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* xterm.c (x_death_handler): New function.
+	(x_error_handler): Call x_death_handler to shut down Emacs.
+	(x_term_init): Use x_death_handler to handle SIGPIPE, instead of
+	x_error_handler, which expects to be passed a display and an
+	event.
+	* process.c (send_process): This used to set a handler to
+	catch SIGPIPEs when writing to a subprocess, and then set the
+	handler to SIGDFL after writing, but this would stomp on the
+	SIGPIPE handler for for the X connection.  So restore the prevous
+	handler instead of changing to SIGDFL.
+
+1992-04-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* indent.c (compute_motion): Fix skipping invis lines and
+	truncation at right margin.
+
+1992-04-17  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* s/hpux.h (PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Use pty_name,
+	not ptyname. 
+	* s/rtu.h: Same.
+
+	* process.c (pty_process): Add 'int' to the declaration 'static
+	pty_processes;'.  This makes it a happy declaration even when
+	static has been #defined as the empty string.
+	* xterm.c (XTcursor_to, XTclear_end_of_line): Same.
+
+	* unexec.c (sbrk): Declare this to return void * if __STDC__ is
+	defined, or char * otherwise.
+
+	* lread.c init_lread): Re-cleaned logic.  To determine whether the
+	load path was changed before dumping, cons up a dump path and
+	compare it.  This method is more localized and accurate.
+	(initial_path): Variable removed.
+	(syms_of_lread): Don't staticpro.
+
+	* floatfns.c (float_error): Declare and define this to return
+	SIGTYPE.
+
+	* systime.h [HAVE_TIMEVAL] (EMACS_GET_TIME): Declare dummy to be a
+	real struct timezone, instead of an EMACS_TIME.  Since
+	HAVE_TIMEVAL is defined, struct timezone ought to be declared, so
+	there's no harm in passing the genuine article.
+
+	* sysdep.c [USG] (rename): Place under the protection of a new
+	preprocessor symbol, HAVE_RENAME.
+	* s/hpux.h (HAVE_RENAME): Defined.
+
+	* sysdep.c [USG] (setpriority): Declare to return int, not void.
+
+	* s/template.h: Add template section for HAVE_TERMIOS.
+
+	* term.c (cursor_to, raw_cursor_to, fatal): Do declare the types
+	of the arguments.
+
+1992-04-15  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* callint.c (Fcall_interactively): When the interactive spec is
+	a string, it may be relocated while reading the arguments.  To
+	avoid this, make a copy of the spec to refer to, instead of
+	using a pointer to the data of the spec string.
+
+	* callint.c (Fcall_interactively): When following the function
+	chain of a symbol, check for quits.
+
+1992-04-13  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* lread.c (init_lread): Make the load path default to
+	PATH_LOADSEARCH when we're not dumping (null purify-flag), and
+	PATH_DUMPLOADSEARCH when we are (not (null (purify-flag))).
+	Change from April 7th incorrectly always used PATH_DUMPLOADSEARCH.
+
+	* lread.c (init_lread): Cleaned up logic; to determine whether the
+	load path was changed before dumping, remember the initial value
+	and compare against it.
+	(initial_path): New variable to support this.
+	(syms_of_lread): staticpro initial_path.
+
+	* ymakefile: Renamed filenames like "*-dist" to "*.in".
+
+	* config.h.in: Doc fixes.
+
+1992-04-11  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* config.h-dist: Renamed to config.h.in, for consistency with
+	the installation conventions of other GNU programs.
+	* paths.h-dist: Renamed to paths.h.in.
+
+1992-04-11  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
+
+	* termcap.c: Declare getenv.
+
+1992-04-08  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* Makefile: Renamed to Makefile.in; the configure script will edit
+	this to produce Makefile.
+
+1992-04-07  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* paths.h-dist (PATH_DUMPLOADSEARCH): New macro.
+	* lread.c (init_lread): If we're building an Emacs to be dumped,
+	use PATH_DUMPLOADSEARCH as the default load path, so we can
+	correctly find our lisp files.
+
+	* config.h-dist, paths.h-dist: Added "-*- C -*-" to top lines, so
+	Emacs will know that these are really C source.
+
+1992-04-03  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* search.c (syms_of_search): When allocating memory
+	searchbuf.buffer, cast the return value of malloc to unsigned char
+	*, not char *; this changed in the most recent version of the
+	regex code.
+
+1992-03-31  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* doc.c (Fdocumentation): Don't forget to end each line of the
+	docstring with "\n\".
+
+	* process.c (Fprocess_connection): Change "#ifdef 0" around this
+	function to "#if 0".
+
+	* eval.c (Flet, FletX): Signal an error if one of the let's binding
+	clauses has more than one value form, as in (let ((a 1 2)) a).
+
+	* eval.c (Ffuncall): Re-install change of March 10; I don't know
+	why it went away.
+
+	* search.c (compile_pattern): Declare the variable which holds the
+	return value of re_compile_pattern to be const, if this is ANSI C.
+
+	* alloc.c (xrealloc): Change "ese" to "else".
+
+	* crt0.c (start1) [sun_soft]: Change 'jst' to 'jsr'.  The Sun
+	assembly language manual doesn't list any 'jst' instruction, I
+	don't know of one personally, and all the analogous code
+	around it uses 'jsr'.
+
+	* crt0.c [m68k]: Merged with GNU C Library's version: added
+	conditionals for sun_68881, sun_fpa, sun_soft.
+
+	* config.h-dist: Adjusted for renaming of share-lib to etc.
+	* lread.c (read1): Same.
+	* doc.c (Fdocumentation_property, Fsnarf_documentation): Same.
+	* ymakefile: Same.
+
+1992-03-30  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* crt0.c: Merged changes from 18.58:
+	[hp9000s300]: Set flag_fpa.  Define float_loc.
+	[new hp assembler]: Double flag_fpa and flag_68881 if %d2!=0.
+	(start1): Declare to be static at the top of the file.
+	(_start): Removed static declaration in this function; since
+	everyone wants it, we'll just put it here.
+
+1992-03-20  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c (Finsert_file_contents): Allow quitting from I/O.
+	(Fcopy_file): Likewise.
+
+1992-03-20  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* m-intel386.h (HAVE_ALLOCA): Inhibit if C_ALLOCA.
+	(LIB_STANDARD): Alternate USG value if __GNUC__ or C_ALLOCA
+
+	* alloc.c (xrealloc): If handed a NULL pointer for the block to
+	resize, malloc a new block and return that.  Not all reallocs do
+	this.
+
+	* m/elxsi.h: Doc fix.
+
+1992-03-18  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* dispnew.c (Fsleep_for): Call wait_reading_process_input, whether
+	or not we have process support; let the emulator do the work.
+	* emacs.c (fatal_error_signal, Fkill_emacs): Call
+	kill_buffer_processes even when subprocesses is not #defined; we
+	have a stub.
+
+	* process.c [not defined (subprocesses)] (Fget_buffer_process,
+	init_process, syms_of_process): New stub versions of these functions.
+	* emacs.c (main): Call init_process and syms_of_process whether or
+	not subprocesses is #defined.
+	* xdisp.c (decode_mode_spec): Call Fget_buffer_process whether or
+	not subprocesses is #defined.
+
+1992-03-17  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* keyboard.c (kbd_buffer_get_event): Call
+	wait_reading_process_input, even when subprocesses is not
+	#defined, instead of doing a whole lot of hairy SIGIO-pausing
+	stuff.
+	* dispnew.c (Fsit_for): Call wait_reading_process_input, whether
+	or not subprocesses is #defined.
+
+	* process.c (wait_reading_process_input): Since we're no longer
+	checking for exceptional conditions in the call to select, all of
+	the different ways to call select for different systems have
+	become the same; remove the #if conditionals around this.
+
+	* keyboard.c (read_char): When returning quit_char because we got
+	an interrupt signal, claim that the character came from the
+	currently selected screen.
+
+1992-03-16  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* callproc.c (Fcall_process): Doc fix.
+
+	* process.c [not defined (subprocesses)] (kill_buffer_processes):
+	New dummy version of this function.
+	* buffer.c (Fkill_buffer): Removed '#ifdef subprocesses'
+	protection from the call to kill_buffer_processes; this is safe
+	whether or not we actually have subprocesses.
+
+1992-03-14  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* m/pfa50.h: New file.
+	* process.c (create_process, process_send_signal): Added changes
+	for m/pfa50.h.
+	* sysdep.c: same.
+	* unexec.c: same.
+
+1992-03-14  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* callproc.c (child_setup): Always put the child in its own
+	process group.
+
+1992-03-13  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* mem_limits.h (POINTER): Doc fix.
+
+	* ralloc.c: Don't #include lisp.h and xterm.h; we no longer need
+	to block input in critical sections.
+	(r_alloc, r_alloc_free, r_re_alloc): Don't use BLOCK_INPUT and
+	UNBLOCK_INPUT; these are no longer needed.
+	(struct bp): Doc fix.
+
+1992-03-11  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* ralloc.c (obtain): When deciding how many pages to request, take
+	into account the amount of spare bytes at the end of the current
+	page; let get be ROUNDUP (size - already_available), instead of
+	ROUNDUP (size).
+	(relinquish): Re-organized for clarity.
+
+	* editfns.c (Fcurrent_time): Updated to return the current time's
+	seconds split into two 16-bit integers (similar to the system used
+	by file-attributes), and the milliseconds.
+
+1992-03-10  Jim Blandy  (jimb@pogo.cs.oberlin.edu)
+
+	* process.c (Faccept_process_output): Add new optional argument
+	TIMEOUT-MSECS, and return non-nil iff we actually got some input
+	from the process(es).
+	(wait_reading_process_input): Make return value indicate whether
+	we got some input from the specified process, when read_kbd is a
+	process, or from any process when read_kbd isn't particular.
+
+	* indent.c (Fmove_to_column): Pass the correct number of arguments
+	to Findent_to.
+
+	* eval.c (Ffuncall): If a subr is asking for too many arguments,
+	abort instead of printing an error message; this is an internal
+	flaw in Emacs, and the subr cannot be called.
+
+1992-03-06  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* doc.c (Fdocumentation, Fdocumentation_property): Take optional
+	new arg to not pass results thru substitute-command-keys.
+
+1992-03-05  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* unexmips.c (unexec): When setting up the data_section header,
+	calculate the size of the section as "brk - data_start," not "brk
+	- DATA_START".
+
+1992-02-23  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* fileio.c: #include "systime.h".
+	(Fcopy_file): Use the systime.h macros to copy the time to the new
+	file.
+	* ymakefile: Note that fileio.o depends on systime.h.
+
+	* ymakefile (dispnew.o): Note that this depends on systerm.h and
+	systime.h.
+	(editfns.o, xterm.o, sysdep.o): Note that this depends on
+	systime.h.
+	(emacs.o, keyboard.o, process.o, sysdep.o): Note that these depend
+	on systerm.h.
+
+	* systerm.h: Expanded to handle getting and setting terminal
+	parameters:
+	(struct emacs_tty): New structure, which consolidates all of the
+	old tty parameter structures.
+	(EMACS_GET_TTY, EMACS_SET_TTY, EMACS_TTY_TABS_OK): New macros.
+	* sysdep.c (TABS_OK): Definitions of this macro removed;
+	EMACS_TTY_TABS_OK replaces it.
+	(TERMINAL): Definitions removed; now we use struct emacs_tty.
+	[VMS] (input_chan): Renamed to...
+	(input_fd): and defined even when VMS isn't; in that case, we
+	leave it initialized to zero, which is the input tty.  This allows
+	us to use the EMACS_GET_TTY and EMACS_SET_TTY for both VMS and
+	Unix.
+	(discard_tty_input): Use struct emacs_tty and its macros instead
+	of TERMINAL.  Replace some of conditional with a call to
+	EMACS_GET_TTY.
+	(child_setup_tty): Use struct emacs_tty and its macros instead of
+	TERMINAL and conditionals.
+	(old_gtty, old_ltchars, old_tchars, old_lmode): Replaced by...
+	(old_tty): New variable.
+	(lmode): Made conditional on BSD4_1, since it's only used by the
+	BSD4_1 support code now.
+	(init_sys_modes): Define tty to be a struct emacs_tty, not a
+	TERMINAL.  Use macros to get and set parameters for VMS and
+	Unices. Set lmode, tchars, and ltchars along with the rest of the
+	tty state.
+	(tabs_safe_p): Use EMACS_GET_TTY and EMACS_TTY_TABS_OK instead of
+	conditionals.
+	(reset_sys_modes): Use EMACS_SET_TTY to restore the settings from
+	old_tty, instead of using hairy conditionals.
+
+	* sysdep.c (get_screen_size): Neatened; now each system of
+	reporting the screen size is separated from the rest.
+	
+	* systerm.h (EMACS_HAVE_TTY_PGRP, EMACS_GET_TTY_PGRP,
+	EMACS_GET_TTY_PGRP): New macros to handle setting a tty's current
+	process group.
+	* sysdep.c (setpgrp_of_tty): Use the above, instead of
+	conditionals.
+
+	* sysdep.c: #include "systerm.h".
+	#ifs that choose #include files moved from here...
+	* systerm.h: to here.
+
+	* sysdep.c [APOLLO]: We now undefine TIOCSTART not here but...
+	* systerm.h: here.
+
+	* sysdep.c [BROKEN_TIOCGETC]: We now undefine TIOCGETC not here but...
+	* systerm.h: here.
+
+	* sysdep.c [BROKEN_FIONREAD]: We now undefine FIONREAD and FASYNC
+	not here but...
+	* systerm.h: here.
+
+	* process.c (process_send_signal): Steal 18.58's version of this,
+	but incorporate the support for VMS signals.
+	    
+	* syssignal.h (EMACS_KILLPG): New macro.
+	* process.c (process_send_signal): Use it.
+	* sysdep.c (sys_suspend): Use it.
+
+	* syssignal.h (SIGCHLD): If we have SIGCLD and not SIGCHLD, define
+	SIGCHLD as an alias for SIGCLD.
+	* sysdep.c: Remove code for above.
+
+	* sysdep.c (init_baud_rate): Rather than trying to maintain the
+	illusion of an abstraction with the OSPEED and SETOSPEED macros,
+	just use conditionalized code for each terminal kind.  This is the
+	only place we ever need this functionality.
+	(OSPEED, SETOSPEED): Definitions removed.
+
+1992-02-22  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* sysdep.c: Moved definition of sigunblock macro to ...
+	* syssignal.h: Here.
+
+	* hftctl.c: #include <sys/uio.h> before #including <sys/tty.h>.
+	(hfqry, hfskbd): Declare these functions as static before all uses.
+	* unexaix.c (make_hdr, mark_x, copy_text_and_data, copy_sym):
+	Declare as static before all uses.
+	Remove extraneous semicolons from #ifdefs of COFF and XCOFF
+	(unrelocate_symbols): cast the initializers of t_start and d_start
+	to ulong.
+
+	* s/template.h: Include a clause for the HAVE_TERMIO flag.
+
+1992-02-21  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* keyboard.c (read_char): Don't clear Vquit_flag when we catch an
+	interrupt and return a quit_char; this change (Mar 21 1991) is too
+	large a change in functionality for the cleanliness it gains.
+
+	* pwd.h: Renamed to vms-pwd.h, so that we don't get it by accident
+	when we #include <pwd.h> with the `-I.' flag given to the
+	compiler.
+	* editfns.c [VMS]: Changed to include vms-pwd.h instead of pwd.h.
+	* fileio.c [VMS]: Same.
+	* filelock.c [VMS]: Same.
+	* sysdep.c [VMS]: Same.
+
+	* xrdb.c: Changed to #include "vms-pwd.h" if VMS is defined,
+	instead of including <pwd.h> unconditionally.
+
+	* window.c (Fset_window_display_table): Rearranged to make etags
+	happy.
+
+	* xterm.c (XTread_socket): Clear the meta flag from the keypress
+	event before handing it to XLookupString.
+
+1992-02-20  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* sysdep.c: No need to test #ifdef TIOCGETP before #undefing it.
+
+1992-02-19  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* systime.h: New file.
+	* dispnew.c: #include "systime.h" to get <time.h> or <sys/time.h>,
+	whichever is appropriate, instead of using a conditional.
+	(Fsleep_for, Fsit_for, Fsleep_for_millisecs): Use the systime.h
+	macros instead of HAVE_TIMEVAL conditionals.
+	* editfns.c: #include "systime.h" to get <time.h> or <sys/time.h>,
+	whichever is appropriate, instead of using a conditional.
+	* fileio.c: Same.
+	* process.c: Same.
+	* xterm.c: Same.
+	(wait_reading_process_input): Use the systime.h macros.
+	* sysdep.c: #include "systime.h" to get <time.h> or <sys/time.h>,
+	whichever is appropriate, instead of using a conditional.
+
+	* m/template.h: Add description of NO_SOCK_SIGIO.
+
+	* sysdep.c (reset_sys_modes): Doc fix.
+
+	* keyboard.c (sigfree, sigholdx, sigblockx, sigunblockx,
+	sigpausex): Definitions moved to syssignal.h.
+
+	* dispnew.c: Doc fix.
+
+	* systerm.h: New file, to consolidate the system-dependent
+	terminal-handling trash.
+	* emacs.c: #include systerm.h.
+	(main): Use systerm.h macros instead of conditionals.
+	* dispnew.c: #include systerm.h.
+	(update_screen): Use EMACS_OUTQSIZE instead of the direct ioctl.
+	* keyboard.c: #include systerm.h to get the proper FIONREAD header
+	files, instead of using conditional.
+
+	* syssignal.h: Added copyright notice.
+
+	* emacssignal.h: Renamed to syssignal.h, to be like sysdep.c.
+	* data.c, keyboard.c, process.c, sysdep.c, ymakefile: Changed
+	#include directives.
+
+1992-02-15  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* m/intel386.h: Don't bother casting the argument to the signal
+	function; the SIGTYPE code in config.emacs ought to take care of
+	this.
+
+	* buffer.c (record_buffer): Doc fix.
+
+1992-02-13  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* s/iris3-6.h: #define HAVE_GETWD.
+
+1992-02-11  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* window.c (Fwindow_at): Accept position as two arguments, not a
+	cons of numbers.
+
+	* window.c (scroll_command): Undo the Jan 31 change; do set the
+	current buffer to the selected window's buffer.  A simple
+	set-buffer will make these two different.
+
+1992-02-10  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* callproc.c (Fcall_process): Clear synch_process_death and
+	synch_process_retcode to zero before forking the process.
+
+	* process.c (synch_process_death, synch_process_retcode): Don't
+	declare them extern here.
+	* process.h (synch_process_death, synch_process_retcode): Declare
+	them extern here, along with synch_process_alive.
+
+	* s/hpux.h: Define CLASH_DETECTION.
+
+	* window.c (init_window_once): Don't pass any arguments to
+	make_window.
+
+	* keyboard.c (command_loop_1): Move the label directly_done out of
+	the else block to just after the else block.  This shouldn't
+	change the semantics of the code, but appears to avoid a compiler
+	bug on SCO Unix V.3.2v2.
+
+	* fileio.c (Fset_umask, Fumask): New functions.
+	(syms_of_fileio): defsubr them.
+
+	* undo.c (Fprimitive_undo): When undoing a deletion with the point
+	before the deleted text, use Finsert_before_markers so that the
+	mark will end up on the other side of the text, if it's in the
+	area at all.
+
+	* xdisp.c (redisplay): Properly compute TAB_OFFSET for compute_motion.
+
+	* keyboard.c (command_loop_1): Don't check whether cursor is at
+	edge of screen here.
+	* dispnew.c (direct_output_forward_char): Check here, and return
+	zero if it can't be done.  And compare the cursor position to the
+	window boundaries, not the screen boundaries.
+
+1992-02-05  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* screen.c (Fscreen_parameters): If the screen has a minibuffer
+	window on another screen, return the window, instead of nil.
+	(store_screen_param): If the value of the minibuffer parameter is
+	a window, try to make it the surrogate minibuffer window.
+	(Qminibuffer): New variable, to support above change.
+	(syms_of_screen): initialize and staticpro it.
+
+	* m/tad68k.h: New file.
+
+	* fileio.c (Ffile_accessible_directory_p): New function.
+	(syms_of_fileio): defsubr it.
+	* callproc.c: #include <errno.h>.
+	(child_setup):  Accept yet another argument, current_dir.
+	Don't try to report an error here if current_dir is inaccessible;
+	this function is called in a vforking process.  Just have the
+	process exit with an error code.
+	(Fcall_process): Make sure that the current directory is okay
+	here, before we fork.  Pass the current_dir argument.
+	* process.c (create_process): Same here.
+
+	* callproc.c (Fcall_process): Don't assign into args[1] when nargs
+	< 2.  Instead, use a new variable called infile.  Re-arranged
+	logic which processes the BUFFER argument.
+
+1992-02-03  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* fileio.c (Fexpand_file_name): Doc fix.
+
+	* scroll.c (line_ins_del): Since we're calculating the array from
+	end to beginning, make the indices go that way, and thus clearly
+	get the right boundary.  This used to ignore the [0] element, and
+	write in the [screen_height] element, which doesn't exist.
+
+1992-02-03  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* xdisp.c (redisplay, try_window_id): Special case for change
+	at beginning of line, if using selective display.
+
+1992-01-31  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* m/delta88k.h: Added USUAL-OPSYS information, for the
+	config.emacs script to use.
+
+	* window.c (scroll_command): Don't bother setting the current
+	buffer to the selected window's buffer; this should always already
+	be the case.  Add check just in case.
+
+	* indent.c (compute_motion): Don't pack vpos and hpos into one int;
+	use separate variables hpos/vpos and prev_hpos/prev_vpos.
+	(vmotion): Use largest int as tovpos arg to compute_motion.
+
+1992-01-30  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* window.c: #include "keyboard.h" to get the Qmode_line and
+	Qvertical_split declarations.
+	* ymakefile (window.o): Note that this depends on keyboard.h.
+
+	* callproc.c (getenv_internal): Cast the pointer to the variable's
+	value to a char *; elisp strings are unsigned char *'s.  And
+	valuelen is an int *, not an int **.
+
+	* scroll.c (do_scrolling): Document meaning of enable flag in
+	temp_screen.
+
+1992-01-30  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+        * m-orion105.h (C_DEBUG_SWITCH, LIBS_DEBUG): Defs deleted.
+
+1992-01-29  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m-iris4d.h (C_SWITCH_MACHINE): New definition.
+
+1992-01-28  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* term.c: #include "keyboard.h", for Vfunction_key_map.
+	* keyboard.h: Declare Vfunction_key_map.
+
+	* keyboard.h: New file, for external declarations used in
+	processing keyboard input and events.
+	* lisp.h (Qmode_line, Qvertical_split, num_input_chars,
+	poll_suppress_count): Extern declarations moved to keyboard.h.
+	* keyboard.c: #include "keyboard.h".
+	(Qvscrollbar_par, Qvslider_part, Qvthumbup_part,
+	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part,
+	Qhthumbleft_part, Qhthumbright_part): Moved declarations here from
+	xfns.c, so they're with the other event heading symbols.
+	* eval.c: #include "keyboard.h".
+	* ymakefile (callint.o, keyboard.o, keymap.o, xfns.o, eval.o):
+	Note that these depend on keyboard.h.
+
+	* xfns.c: The above symbols aren't here any more.  #include
+	"keyboard.h" to get them.
+	(syms_of_xfns): Don't initialize or staticpro them.
+	* keyboard.h: Added extern declarations for the above.
+	* callint.c: #include "keyboard.h".
+
+	* xfns.c (Vmouse_screen_part): Variable removed, no longer used.
+	(syms_of_xfns): Changed accordingly.
+
+	* xterm.c (Qmouse_moved): Variable removed, no longer used.
+	(Qmouse_click, Qscrollbar_click): Removed.  These are now event
+	types, in keyboard.c and keyboard.h; they're no longer used in
+	this way.
+	(Vmouse_window, Vmouse_screen_part): Extern declarations removed.
+	(XTread_socket): Don't assign to Vmouse_window or
+	Vmouse_screen_part.
+	(syms_of_xterm): Changed accordingly.
+
+	* keyboard.h (EVENT_HAS_PARAMETERS, EVENT_HEAD, EVENT_WINDOW,
+	EVENT_BUFFER_POSN, EVENT_SCROLLBAR_BUTTON, EVENT_WINDOW_POSN,
+	EVENT_TIMESTAMP, EVENT_HEAD_UNMODIFIED, EVENT_HEAD_KIND): New
+	macros to recognize and access events that have parameters, like
+	mouse events.
+	* keyboard.c (read_char, echo_char, Fmouse_click_p,
+	read_key_sequence): Use them.
+	* keymap.c: #include "keyboard.h".
+	(access_keymap, store_in_keymap, Fsingle_key_description): Use the
+	macros from keyboard.h.
+
+	* keyboard.c (Qevent_kind): New symbol, naming the property of an event
+	header where we put the event's type.
+	(Qfunction_key, Qmouse_click, Qscrollbar_click): New symbols, used
+	to tag different kinds of events.
+	(Qevent_unmodified): New symbol, naming the property
+	of an event header where we put an unmodified version of the event
+	header.
+	(modify_event_symbol): Take a new argument, SYMBOL_KIND, whose
+	value should be put on the Qevent_kind property of each symbol we
+	make.  Set the Qevent_unmodified property of each symbol we make.
+	(make_lispy_event): Pass the appropriate SYMBOL_KIND argument to
+	modify_event_symbol.
+	(struct event_head, head_table): New tables, to simplify the
+	initialization of some of the event heads.
+	(syms_of_keyboard): Initialize and staticpro the symbols given in
+	head_table, and put the Qevent_kind and Qevent_unmodified
+	properties on them.  Initialize all of the new symbols listed
+	above.
+
+	* keyboard.c (lispy_function_keys, lispy_mouse_names): Renamed
+	these from function_key_names and mouse_names, and moved them
+	outside of make_lispy_event, since static doesn't work on all
+	systems, and these can't be automatic.
+
+1992-01-28  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* fileio.c (Fwrite_region): Remove Alliant conditional.
+	* crt0.c: Conditionals for ALLIANT_2800.
+	* m/alliant-2800.h: New file.
+	* unexfx2800.c: New file.
+
+	* m-mips4.h (C_DEBUG_SWITCH): Alternate defn for GCC.
+
+	* sysdep.c [VMS] (sys_write): Special case for fixed-length
+	with carriage-control characters.
+
+	* s/isc2-2.h (NOMULTIPLEJOBS): Undef this.
+	(LIB_STANDARD): Add -lPW.
+	(LIBS_SYSTEM): Defined.
+	* m/intel386.h (signal): Optionally don't define it.
+
+1992-01-27  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* s/template.h: Document the SIGTYPE macro.
+	* s/bsd4-3.h: Define the SIGTYPE macro.
+
+	* data.c (Fsymbol_value): Extract all the innards of this function
+	into find_symbol_value, except the code which signals an error.
+	(find_symbol_value): New function.
+	* lisp.h (find_symbol_value): Declare it.
+	* keymap.c (current_minor_maps): Use it, instead of a call to
+	Fboundp and Fsymbol_value per every minor map, for every key
+	sequence read.
+
+	* xterm.c (x_make_screen_visible): Don't raise the window.  This
+	causes the window to pop to the front every time a message
+	appears, which isn't desirable.
+
+	* screen.c (Fselect_screen, Fdelete_screen, Fset_mouse_position,
+	Fmake_screen_visible, Fmake_screen_invisible, Ficonify_screen,
+	Fdeiconify_screen, Fscreen_parameters, Fmodify_screen_parameters,
+	Fset_screen_height, Fset_screen_width, Fset_screen_size,
+	Fset_screen_position): Use SCREEN_IS_X macro instead of testing
+	for output_x_window.
+	* xfns.c (adjust_scrollbars, Fx_store_cut_buffer): Same.
+
+1992-01-25  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* term.c (term_get_fkeys): New function.
+	(term_init): Call term_get_fkeys.
+
+1992-01-21  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* editfns.c (Ffollchar, Fprevchar): Renamed to Ffollowing_char and
+	Fprevious_char, for consistency.  Renamed Sfollchar and Sprevchar
+	too.
+	(syms_of_editfns): Fixed defsubrs.
+	* lisp.h (Ffollchar, Fprevchar): Renamed extern declarations as above.
+	
+	* editfns.c (Ffollowing_char): Return 0 at the end of the buffer,
+	as advertised.  Doc fix.
+	(Fprevious_char): Doc fix.
+
+	* config.h-dist: Rearranged to define user parameters before
+	including the machine and opsystem files, so the files can have
+	conditionals on the parameters.
+
+1992-01-15  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* keyboard.c (read_key_sequence): When expanding a function key
+	recognized with Vfunction_key_map, don't scan the expansion for
+	further function key sequences.
+
+	* keyboard.c (Vfunction_key_map): Real declaration moved to
+	keymap.c; this declaration made extern.
+	(syms_of_keyboard): DEFVAR and initialization of Vfunction_key_map
+	moved to keymap.c, since it should be initialized to a keymap, but
+	we don't want to rely on Qkeymap being initialized now.
+	* keymap.c (Vfunction_key_map): Variable moved here.
+	(syms_of_keymap): DEFVAR and init here.
+
+	* keymap.c (Fglobal_key_binding): Doc fix.
+
+1992-01-16  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* m-delta88.h: New file.
+
+	* window.c (window_scroll): New arg `noerror'.
+	(scroll_command, Fscroll_other_window): Pass that arg.
+
+1992-01-15  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* process.c (sigchld_handler):
+	Set synch_process_death and synch_process_retcode.
+
+1992-01-14  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* config.h-dist (SIGTYPE): New macro to help give signal handlers
+	the correct type.
+	* s/usg5-3.h (SIGTYPE): Define this to be void.
+	* dispnew.c (window_change_signal): Declare this to return
+	SIGTYPE.
+	* emacs.c (fatal_error_signal): Same.
+	* data.c (arith_error): Same.
+	* process.c (create_process_1, send_process_trap,
+	create_process_sigchld, sigchld_handler): Same.
+	(create_process): Declare sigchld according to SIGTYPE.  This
+	means we don't have to cast the return value of signal.
+	* keyboard.c (input_poll_signal, interrupt_signal): Declare these
+	to return SIGTYPE.
+	(kbd_buffer_store_event): Include a forward declaration for
+	interrupt_signal here.
+	* sysdep.c (struct save_signal): Say the handler returns SIGTYPE
+	instead of int.
+	(save_signal_handlers): So we don't have to cast the return value
+	from signal here.
+	(sys_suspend): Declare oldsig according to SIGTYPE.
+	(select): Declare old_trap using SIGTYPE.
+	(select_alarm, wait_for_termination_signal): Declare these to
+	return SIGTYPE.
+
+	* emacs.c: #include <termios.h>, if we have it.
+	(fatal_error_signal): If we have termios, use tcgetpgrp to get the
+	terminal's process group.
+	* process.c: If we have termios, #include <termios.h> instead of
+	<termio.h>.
+	(process_send_signal): If we have termios, use tcgetpgrp to get
+	the terminal's process group.  Have gid default to the child's
+	pid, to simplify the logic below.
+	* sysdep.c (flush_pending_output): If we are using termios, make
+	this function a no-op; since we're not in the tty's pgroup, we
+	would get a SIGTTIN.
+
+1992-01-13  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* config.h-dist: Removed MAINTAIN_ENVIRONMENT clause.
+	* callproc.c: Removed support for MAINTAIN_ENVIRONMENT.
+	(init_callproc): Use getenv instead of egetenv to initialize
+	Vshell_file_name.
+	* emacs.c (decode_env_path): Use getenv instead of egetenv 
+	* lisp.h: Removed support for MAINTAIN_ENVIRONMENT.
+	* process.c: Same.
+	* ymakefile: Same.
+	* dispnew.c (init_display): Call getenv instead of egetenv.
+
+	* editfns.c (Fgetenv): Function moved...
+	* callproc.c (Fgetenv): To here, and made to scan
+	Vprocess_environment instead of using the usual C getenv function.
+	(getenv_internal): New function.
+	(egetenv): New function.
+	* lisp.h: Added extern declaration for egetenv.
+	* editfns.c (syms_of_editfns): Adjusted.
+	* callproc.c (syms_of_callproc): Adjusted.
+
+	* window.h (minibuf_prompt_width): Declare this extern here, after
+	minibuf_prompt.
+	minibuf.c: Don't extern declare it here.
+	indent.c: As above.
+
+	* dispnew.c (buffer_posn_from_coords): If there is a prompt in the
+	minibuffer, account for its width when computing the buffer
+	position.
+
+	* Makefile (doall): Explicitly export CC to the xmakefile.
+
+	* ymakefile: Use /* */ around comments; # confuses cpp.
+
+	* ymakefile: Note that ralloc.o depends on mem_limits.h, xterm.h,
+	and config.h.
+	Note that vm-limit.o depends on mem_limits.h.
+
+	* lread.c (read_escape): Return \a as '\007', not '\a'; the latter
+	isn't portable, and this routine would have to be revised anyway
+	to deal with anything other than ASCII.
+
+	* keymap.c (current_minor_maps): Rewritten not to use
+	function-local static variables, to accomodate DGUX.
+
+	* xterm.h (UNBLOCK_INPUT): Replace "abort ()" with "(abort (),
+	0)", to avoid type conflicts on odd systems like Ultrix.
+
+	* xrdb.c: Include <sys/types.h>, and declare getuid to return uid_t.
+
+	* xdisp.c (redisplay_window): Use SET_PT macro instead of
+	assigning to point.
+	insdel.c (insert_from_string): Same.
+
+	* xterm.c (XTcursor_to): Declare it static at the function
+	definition, as well as at the top of the file.
+	(dumpglyphs): Removed declarations for buf and cp; these variables
+	are never used.
+
+	* lisp.h (NULL): Renamed to NILP, so as not to conflict with
+	<stdio.h>, and <stddef.h>.  All callers changed; all
+	#undefinitions of NULL removed.
+
+1992-01-12  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* xdisp.c (message): #ifdef NO_ARG_ARRAY, make a local block to
+	declare the explicit argument array.
+
+	* config.h-dist: Instead of reaching the machine- and
+	system-dependent files through symlinks, replace the strings 
+
+1992-01-09  Jim Blandy  (jimb at pogo.cs.oberlin.edu)
+
+	* keyboard.c (stuff_buffered_input): Don't forget to increment
+	kbd_fetch_ptr while looping through kbd_buffer.
+
+1992-01-08  Jim Blandy  (jimb at occs.cs.oberlin.edu)
+
+	* keyboard.c (read_avail_input): Don't forget to fill in the
+	screen field in events read from the terminal.
+	* sysdep.c (kbd_input_ast, read_input_waiting): Call
+	kbd_buffer_store_event with a `struct input_event *', not a
+	character or a Lisp_Object.
+
+1991-12-21  Jim Blandy (jimb at occs.cs.oberlin.edu)
+
+	* bytecode.c (docall): Don't remove protection from the arguments
+	to Ffuncall.
+
+1991-12-20  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (Vfunction_key_map): New variable.
+	(read_key_sequence): Changed to recognize and substitute bindings
+	in Vfunction_key_map at any point in the sequence, unless they
+	conflict with ordinary bindings.
+	(syms_of_keyboard): DEFVAR, document, and initialize
+	Vfunction_key_map.
+
+1991-12-19  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keymap.c (Vminor_mode_map_alist): New variable, to support
+	keymaps for minor modes.
+	(current_minor_maps, Fminor_mode_key_binding,
+	Fcurrent_minor_mode_maps): New functions.
+	(Fkey_binding): Rewritten to scan for minor mode bindings too.
+	(syms_of_keymap): DEFVAR, document, and initialize
+	Vminor_mode_map_alist, and defsubr the new Ffunctions.
+	(describe_buffer_bindings): Describe the bindings established by
+	minor modes too.
+	* keyboard.c (follow_key): New function, to support...
+	(read_key_sequence): Completely rewritten to handle scanning an
+	arbitrary number of keymaps at a time.
+
+	* keyboard.c (Fread_key_sequence): GCPRO keybuf, since it can hold
+	lisp expressions while waiting for input.  Don't pass too many
+	arguments to read_key_sequence.
+	(command_loop_1): Don't pass too many arguments to read_key_sequence.
+
+	* keyboard.c (add_command_key): New function; there are several
+	places that add keys to this_command_keys, so we make one function
+	to do the work.
+	(read_char, Fexecute_extended_command): Call add_command_key
+	instead of writing out its code again.
+	(init_keyboard): Allocate this_command_keys according to
+	this_command_keys_size.
+
+	* lread.c (read1): Change comment to use `share-lib' instead of `etc'.
+	* doc.c (Fdocumentation_property, Fsnarf_documentation): Update
+	docstring similarly.
+	(Fsnarf_documentation): Use "../share-lib/" instead of "../etc/"
+	to find doc file while dumping.
+	* unexaix.c: Similar doc fix.
+
+	* ymakefile (etcdir): Variable removed.
+	(libsrc, archlib, sharelib): New variables, to take the place of
+	etcdir.
+
+1991-12-18  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* ymakefile (CFLAGS): Don't automatically include C_DEBUG_SWITCH
+	in the value for CFLAGS; the configuration script will take care
+	of choosing the debugging and optimization switches.
+
+	* config.h-dist: Copy the GLYPH definitions from config.h to here.
+
+1991-12-16  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* abbrev.c (Fexpand_abbrev): Run pre-abbrev-expand-hook.
+	(syms_of_abbrev): Define that variable.
+
+1991-12-13  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* m/m-*.h: Since the m- is now redundant, renamed all files to
+	remove it, and changed references within files.
+	* s/s-*.h: Same business.
+
+1991-12-11  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* config.h-dist (MULTI_SCREEN): Define this automatically when
+	we're using a window system.
+
+1991-12-09  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* m/m-*.h (i.e. all machine config files): Added USUAL-OPSYS
+	comments to tell the configuration script what sort of operating
+	system this machine typically runs.
+
+	* config.h-dist (MScreenWidth, MScreenLength): Deleted; no longer
+	used.
+
+1991-12-08  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* editfns.c (Fcurrent_time): New function, to return the current
+	time as a number, like the Unix time(3) function.  This might be
+	fun to port.
+	(syms_of_editfns): defsubr it.
+
+1991-12-05  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keymap.c (Vminor_mode_map_alist): New variable.
+	(current_minor_maps): New function.
+	(Fcurrent_minor_mode_maps): New function.
+	(syms_of_keymap): DEFVAR, document, and initialize
+	Vminor_mode_map_alist, and defsubr Fcurrent_minor_mode_maps.
+
+	* callproc.c (Vdata_directory): New lisp variable, for the
+	directory containing architecture-independent data files.
+	(init_callproc): Initialize Vdata_directory from PATH_DATA, and
+	make sure it exists.  Renamed execdir to tempdir, because we use
+	it for both Vexec_directory and Vdata_directory.
+	(syms_of_callproc): Doc fix for Vexec_directory, new DEFVAR_LISP
+	for Vdata_directory.
+	* paths.h-dist (PATH_DATA): New path macro, to initialize
+	Vdata_directory.
+	* doc.c (get_doc_string): Use Vdata_directory to find the
+	docstrings, not Vexec_directory.
+	* lisp.h (Vdata_directory): New extern declaration, for above
+	users.
+	* config.h-dist: Changed references to ../etc to ../share-lib.
+
+	* callint.c (Fcall_interactively): For the 'k' interactive code,
+	cast the type of the symbol name before passing it to error.
+
+1991-12-02  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (make_lispy_movement): Move call to
+	mouse_position_hook from here...
+	(kbd_buffer_get_event): To here, for symmetry with non-movement
+	events.
+
+	* keyboard.c (kbd_buffer_get_event): Set Vlast_event_screen for
+	mouse movements, too. 
+
+1991-11-27  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)
+
+	* alloca.c (alloca): Add parens to make precedence clearer.
+
+1991-11-26  Michael I Bushnell  (mib at geech.gnu.ai.mit.edu)
+
+	* search.c: need to include sys/types.h because of recent mod to
+	regex.h.
+
+1991-11-25  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* bytecode.c: BYTE_CODE_METER and BYTE_CODE_SAFE undefined by default.
+	(METER_CODE): Define same name whether metering or not.
+	(BinsertN): New byte code.
+	(Fbyte_code): Improve overflow/underflow error messages.
+	(docall): Put back previously lost code to remove protection
+	from funcall args.
+
+1991-11-25  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* lisp.h (make_array): New extern declaration.
+
+	* alloc.c (make_sequence): Renamed to make_array; more accurate.
+	* keyboard.c (Fread_key_sequence, Fthis_command_keys): Callers fixed.
+	* macros.c (Fend_kbd_macro): Callers fixed.
+
+1991-11-15  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (cmd_error): If an error occurs before somebody has
+	provided a screen to print it on, print it to stderr and exit
+	Emacs.  Handle batch-mode errors with the same code.
+	* lisp.h (Qexternal_debugging_ouput): New extern declaration, for
+	use in cmd_error.
+
+	* screen.c (Fscreen_pixel_size, Fset_screen_position): Doc fix.
+
+	* window.c (Fwindow_at): Typecheck COORDINATES more thoroughly.
+
+	* screen.c (read_mouse_position): Function deleted.
+	(Fread_mouse_position): Renamed to Fmouse_position, and changed to
+	use mouse_position_hook.
+	(syms_of_screen): Adjusted accordingly.
+	* xfns.c (x_read_mouse_position): Function deleted.
+
+	* screen.h (SCREENP): The non-MULTI_SCREEN case used to say this
+	was false for all objects, but it should be true for the terminal
+	screen, so make its definition the same as in the MULTI_SCREEN
+	case.
+
+	* screen.h (SCREEN_LIVE_P): New predicate.
+	(CHECK_LIVE_SCREEN): New type-checking macro.
+	(Qlive_screen_p): New error-reporting symbol.
+	* screen.c (Qlive_screen_p): Declare the new symbol.
+	(Flive_screen_p): New lisp predicate.
+	(syms_of_screen): Initialize, staticpro, and defsubr the lot.
+	* dispnew.c (Fredraw_screen): Use CHECK_LIVE_SCREEN.
+	* screen.c (Fscreen_root_window, Fscreen_selected_window,
+	Fnext_screen, Fset_mouse_position, Frestore_screen_configuration,
+	Fmake_screen_visible, Fmake_screen_invisible, Ficonify_screen,
+	Fdeiconify_screen, Fscreen_visible_p, Fredirect_screen_focus,
+	Fscreen_focus, Fmodify_screen_parameters, Fset_screen_height,
+	Fset_screen_width, Fset_screen_size, Fset_screen_position,
+	Fselect_screen): Use CHECK_LIVE_SCREEN.
+	* window.c (Fwindow_at, Fcurrent_window_configuration): Use
+	CHECK_LIVE_SCREEN.
+	* xfns.c (Ffocus_screen, Fx_pixel_width, Fx_pixel_height): Use
+	CHECK_LIVE_SCREEN.
+
+	* screen.c (Fdelete_screen): Do nothing if SCREEN is already
+	deleted.
+	
+	* screen.c (Qscreenp): Staticpro this symbol.
+
+	* xfns.c (Fx_create_screen): Doc fix.
+
+	* xfns.c (Fx_create_screen): Give the screen a minibuffer if the
+	'minibuffer parameter is t or nil; nil is the default value for
+	omitted parameters, and t is intuitive.
+
+1991-11-14  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* eval.c (specbind): Check that the thing being bound is a symbol.
+	(funcall_lambda): Signal an invalid-function error if the
+	arguments are not all symbols.
+
+1991-11-08  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* screen.c (Fselect_screen): Don't select dead screens.
+	* print.c (print): Print dead screen objects starting with
+	"#<dead screen".
+
+	* keyboard.c (read_key_sequence): Make sure that the compound
+	events actually have valid window fields.
+
+	* window.c (next_screen_window): Function deleted; Fnext_window
+	can now do its job properly.
+	(window_from_coordinates, window_loop): Call Fnext_window instead
+	of next_screen_window.
+
+	* xdisp.c (redisplay): Don't clear out minibuffer windows in the
+	midst of the screen loop here.  That's confusing.
+	(redisplay_window): Since this needs special code to detect
+	minibuffers anyway, put it here.  And clear all the lines of a
+	multi-line minibuffer, not just the first one.
+
+1991-11-07  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* screen.c (Fdelete_screen): When searching Vscreen_list for a new
+	value for last_nonminibuf_screen, remember that the screens live
+	in the cars of the list, not the cdrs.
+
+	* xterm.c (x_make_screen_visible): Rearranged for clarity.
+
+	* xdisp.c (echo_area_display): Rearranged for clarity.
+
+1991-11-06  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* screen.c (next_screen, prev_screen): New meaning for MINI_SCREEN
+	argument helps implement the behavior of Fnext_window.
+	(Fnext_screen): Document the new behavior.
+
+	* screen.c (make_minibuffer_screen): Do set has_minibuffer for
+	minibuffer-only screens.
+	(Fscreen_parameters): Correctly generate value of minibuffer
+	parameter using SCREEN_HAS_MINIBUF and SCREEN_MINIBUF_ONLY_P.
+	* screen.h (SCREEN_HAS_MINIBUF): New predicate.
+	* dispnew.c (change_screen_size): Use it.
+	* screen.c (Fdelete_screen): Use it.
+
+	* screen.c (Vglobal_minibuffer_screen): Renamed
+	Vdefault_minibuffer_screen to better describe its significance.
+	(make_screen_without_minibuffer, syms_of_screen): Adjusted.
+	* xfns.c (Fx_create_screen): Doc string adjusted.
+
+	* xdisp.c (display_mode_line): Make the code which names the
+	screen after the current buffer not depend on
+	Vglobal_minibuffer_screen.
+	* xterm.c (Vglobal_minibuffer_screen): Don't declare this extern
+	here; it's never used.
+
+1991-11-05  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* screen.c (Fdelete_screen): Document the fact that surrogate
+	minibuffer screens may not be deleted.
+
+	* screen.h (SCREEN_MINIBUF_ONLY_P): New predicate, true iff the
+	screen's only window is a minibuffer, aka a "minibuffer screen" or
+	a "minibuffer-only" screen.
+	* dispnew.c (change_screen_size): Use it.
+	* screen.c (Fselect_screen, next_screen, prev_screen,
+	Fdelete_screen): Use it.
+	* window.c (Fdisplay_buffer): Use it.
+
+	* screen.c (next_screen, prev_screen): Make MINIBUF a lisp
+	boolean, not a C boolean.
+	(Fnext_screen, Fdelete_screen): Changed to fit.
+	* window.c (Fnext_window, Fprevious_window): Changed to fit.
+
+	* screen.c (make_screen_without_minibuffer): Error string improvement.
+
+	* screen.c (syms_of_screen): Doc grammar fix for Vemacs_iconified.
+
+	* screen.c (next_screen): Added some sanity checks, rewrote comments.
+
+	* screen.h (Vglobal_minibuffer_screen): Don't declare this.  It
+	shouldn't be used for anything but screen creation.
+	* window.c (Fminibuffer_window): Vglobal_minibuffer_screen is not
+	necessarily the screen containing the current minibuffer window.
+	Also, call choose_minibuf_window; it does much of the work here.
+	(Fnext_window): Used to insist on looping through all screens if
+	Vglobal_minibuffer_screen was non-nil.  Now includes screen's
+	minibuffer window according to MINIBUF, no matter what screen it's
+	on, and ignores Vglobal_minibuffer_screen.  Loop termination logic
+	cleaned up.  Clarified doc string.
+	(Fprev_window): Same problems as Fnext_window, above.
+	* screen.c (Vglobal_minibuffer_screen): Documentation rewritten to
+	emphasize that it is only a parameter of the creation of
+	minibufferless screens, and not an indication of where the
+	minibuffer is.
+	(prev_screen): Used to assume that Vglobal_minibuffer_screen was
+	the only minibuffer-only screen, and would enter an infinite loop
+	if Vglobal_minibuffer_screen was the only screen in the list.
+	Rewritten to fix these problems.
+	* minibuf.c (Vglobal_minibuffer_screen): Don't declare it extern
+	here; it's not used.
+
+	* editfns.c (Fmessage): Don't call Fmake_screen_visible here.
+	* xdisp.c (message, message1): Call it here, so that Emacs C
+	functions like Fy_or_n_p make the screen visible too.
+
+1991-11-04  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (readable_events): If EVENT_QUEUES_EMPTY, we can
+	short-circuit and say no.  Otherwise, if do_mouse_tracking, we can
+	short-circuit and say yes.  These things let us scan the event
+	queue less often.
+
+	* termhooks.h (mouse_tracking_enable_hook): Replaced by...
+	(mouse_moved, mouse_position_hook): It turns out that it is
+	possible and no less efficient simply to tell Emacs if the mouse
+	has moved since last noticed, and let it ask for the current mouse
+	position; X's pointer motion hints are a cool thing.
+	* term.c (mouse_tracking_enable_hook): Replaced by...
+	(mouse_position_hook): New, simpler interface.
+	* keyboard.c (struct movement, movement_buf, movement_ptr):
+	Replaced by...
+	(mouse_moved): This flag, to be used in conjuction with
+	mouse_position_hook.
+	(EVENT_QUEUES_EMPTY): Adjusted to use mouse_moved instead of
+	movement_buf and movement_ptr.
+	(tracking_off, Ftrack_mouse): Don't call mouse_tracking_enable
+	hook.
+	(note_mouse_position): Moved to xterm.c.
+	(get_mouse_position): Replaced by mouse_position_hook.
+	(make_lispy_event): Movement event generation code moved out to a
+	separate function...
+	(make_lispy_movement): Create a mouse movement event for the
+	current mouse position.  Use mouse_position_hook instead of
+	get_mouse_position.  Added static declaration for this above...
+	(kbd_buffer_get_event): Use mouse_moved instead of movement_buf
+	and movement_ptr.  Call make_lispy_movement instead of
+	make_lispy_event.
+	(init_keyboard): Initialize do_mouse_tracking.  Don't init
+	movement_ptr and movement_buf.
+	* xterm.h (STANDARD_EVENT_SET): Add PointerMotionMask and
+	PointerMotionHintMask to the set.
+	* xterm.c (pixel_to_glyph_translation): Renamed to
+	pixel_to_glyph_coords, made static, simplified to take advantage
+	of constant-size characters, and extended to return the bounding
+	rectangle of the glyph returned.
+	(construct_mouse_click): The 'button' field of a button event is
+	the button number, not a mask; convert it to a mask before
+	frobbing x_mouse_grabbed.  Call pixel_to_glyph_coords properly.
+	(last_mouse_screen, last_mouse_glyph): New variables, to keep
+	track of when the pointer has moved to a different glyph.
+	(note_mouse_position): Moved here from keyboard.c and made static.
+	Check if the new mouse position is over a new glyph.  If it is,
+	set mouse_moved flag; otherwise, call XQueryPointer to get the
+	next motion event.
+	(XTmouse_tracking_enable): No longer needed, since pointer motion
+	hints let us implement the simpler mouse position hook.
+	(XTmouse_position): New hook.  Call XQueryPointer to get the
+	current mouse position and request notification about the next
+	mouse movement.  Clear the mouse_moved flag.
+	(pixel_to_glyph_coords, construct_mouse_click,
+	note_mouse_position, XTmouse_position): Put these all on the same
+	page.
+	(XTread_socket): case MotionNotify, call note_mouse_position with
+	the right args; don't call pixel_to_glyph_translation.
+	(x_term_init): Set mouse_position_hook instead of
+	mouse_tracking_enable_hook.
+
+1991-10-31  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xdisp.c (redisplay_window): When trying to avoid starting
+	display at the end of the buffer: check that startp < ZV, not
+	startp <= ZV.
+
+1991-10-29  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xterm.c (x_do_pending_expose, XTmouse_tracking_enable): Use
+	SCREEN_IS_X instead of testing output_method directly.
+
+1991-10-26  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xdisp.c (redisplay): In the single-screen optimization, always
+	update the minibuffer's screen as well as the selected screen, no
+	matter what the echo_area_glyphs are.  This makes sure that
+	messages get cleared after a keystroke.
+
+1991-10-25  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* callint.c (Finteractive): Doc fix.
+
+	* xterm.c (XTmouse_tracking_enable): Block input while changing
+	the screens' input selection masks.
+
+	* window.c (change_window_height): If the window being resized is
+	the only window of the screen, no size change is possible; make
+	the delta be zero.  Exit without "changing" the sizes of any
+	windows if the delta is zero.
+
+	* alloc.c: Don't bother to include xterm.h.
+	(Fgarbage_collect): Don't bother to BLOCK_INPUT here,
+	since we don't cons in the input handler.
+
+1991-10-21  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* window.c (init_window_once): Set last_nonminibuf_screen to the
+	initial terminal screen, so that poor Fdisplay_buffer doesn't try
+	to create a new screen on a terminal.
+
+1991-10-19  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* m-intel386.h (signal): Optionally don't define it.
+	* s-isc2-2.h (DONT_DEFINE_SIGNAL): Define this.
+
+1991-10-18  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* scroll.c (line_ins_del): Don't calculate costs off the end of mf
+	and ov; use < in loop condition, not <=.
+
+	* scroll.c (scroll_cost): Logic rearranged.
+
+	* dispnew.c (change_screen_size): Change "SCREEN_IS_TERMCAP
+	(screen) == output_termap" to "SCREEN_IS_TERMCAP (screen)"
+	(window_change_signal): Use SCREEN_IS_TERMCAP predicate instead of
+	testing output_method_directly.
+
+1991-10-15  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xterm.h (STANDARD_EVENT_SET): Include ButtonReleaseMask in
+	STANDARD_EVENT_SET.
+	* xterm.c (XTmouse_tracking_enable): Don't bother or'ing
+	ButtonReleaseMask with the STANDARD_EVENT_SET.
+
+	* dispnew.c (buffer_posn_from_coords): If the coordinates are off
+	past the end of a line, return them as being *before* the newline,
+	not after.
+
+	* keyboard.c (kbd_buffer_get_event): Set input_pending after
+	reading the event, no matter what sort of event it is - i.e., move
+	the assignment to input_pending outside of the event lispifying
+	conditional.
+
+	* keyboard.c (note_mouse_position): Don't record a "new" mouse
+	position unless it really differs from the last one returned.
+
+	* keyboard.c (kbd_buffer_read_char): Renamed to
+	kbd_buffer_get_event, for consistency with kbd_buffer_store_event.
+
+	* window.c (Fwindow_at): modified to take the coordinates as a
+	pair, not a two-element list, for ease of use and compatibility
+	with events.  Make SCREEN argument second and optional.
+	(Fcoordinates_in_window_p): Modified to take and return the
+	coordinates as above, and to distinguish the right border as well
+	as the mode line.
+	(window_from_coordinates): Modified to distinguish the right
+	border as well as the mode line.
+	* lisp.h (Qmode_line, Qvertical_split): Declare this extern, from
+	keyboard.c.
+	* keyboard.c (make_lispy_event): Distinguish a window's right
+	border from its text area.
+
+	* window.c (coordinates_in_window): Make it static.
+
+	* window.c (Flocate_window_from_coordinates): Renamed to
+        Fwindow_at.
+	(syms_of_window): Adjusted.
+	* lisp.h: Adjusted to say so.
+
+	* screen.c (Fcoordinates_in_window_p, window_from_coordinates,
+	Flocate_window_from_coordinates): Functions moved to window.c.
+	(syms_of_screen): Adjusted.
+	* window.c (Fcoordinates_in_window_p, window_from_coordinates,
+	Flocate_window_from_coordinates): Here they are.
+	(syms_of_window): Adjusted.
+	* lisp.h: Adjusted to say so.
+
+1991-10-14  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xterm.c (XTclear_end_of_line): This used to try to get the
+	cursor out of the way by comparing the line being cleared with
+	s->cursor_y, which is meaningless; it should have compared it with
+	s->phys_cursor_y.  Changed to just mark the cursor as cleared if
+	it's in the area we're clearing.
+
+1991-10-13  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* m-intel386.h: Fix typo in #endif.
+
+1991-10-12  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* callint.c (Fcall_interactively): Added new interactive spec 'K',
+	for mouse clicks.  Added explanation to doc string.  Removed 'e'
+	spec, which didn't work with the new input model anyway.
+	* keyboard.c (Fmouse_click_p): New function.
+	(syms_of_keyboard): defsubr it.
+
+	* keyboard.c (EVENT_QUEUES_EMPTY): Clarified comment.
+	(tracking_off): Change "if (!readable_events)" to
+	"if (!readable_events ())".
+	(Ftrack_mouse): Doc fix.
+	(kbd_buffer_read_char): Fix brainos in tossing of unwanted events.
+	Don't use EVENT_QUEUES_EMPTY to set input_pending; call
+	readable_events.
+
+1991-10-11  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (Qmode_line): New quoted symbol.
+	(syms_of_keyboard): Initialize and staticpro it.
+	(make_lispy_event): Use it to indicate when a mouse position is in
+	a window's mode line.
+
+	* xterm.c (XTread_socket): Consider the window to be resized if
+	either the character or pixel dimensions have changed; this will
+	catch font size changes.
+
+1991-10-08  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): Removed all the
+	exceptional condition stuff.  Emacs lacks any way to respond to
+	such a state, and selecting for it without responding to it can make
+	Emacs loop indefinitely.
+
+	* xterm.c (XTread_socket, construct_mouse_click): Make sure that
+	all enqueued events have their timestamp field set.
+	* termhooks.h (struct input_event): Doc fix.
+	* keyboard.c (last_event_timestamp): New variable.
+	(get_mouse_position, kbd_buffer_store_event,
+	kbd_buffer_read_char): Make sure to fill in Vlast_event_screen and
+	last_event_timestamp.
+	* xselect.c (mouse_timestamp): Don't use this anymore.
+	(last_event_timestamp): Use this instead.
+	(Fx_own_selection, Fx_own_clipboard, Fx_get_selection,
+	Fx_get_clipboard): Use last_event_timestamp instead of
+	mouse_timestamp.
+
+	* xdisp.c (redisplay): Don't pass extra arguments to
+	update_screen.
+
+	* keyboard.c (echo_truncate): Don't call echo here; this results
+	in extraneous echoing of characters.
+	(read_key_sequence): After calling echo_truncate, call echo_char
+	to put the character we just read into the minibuffer, if
+	appropriate.
+
+	* keyboard.c (read_key_sequence): Removed unused argument
+	no_redisplay.
+
+1991-10-01  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xfns.c (x_create_screen): Initialize phys_cursor_x to -1, to
+	indicate that the screen has no displayed cursor.
+
+	* xfns.c (x_create_screen): Let InternalBorderWidth default to 1.
+
+	* xterm.c (x_display_bar_cursor): Declare this to be static void.
+
+	* xterm.c (XTupdate_begin): Don't turn off the cursor.  This makes
+	ugly flickering.  Instead, make it okay for XTins_del_lines to do
+	so:
+	* screen.h (struct screen): New field phys_cursor_glyph, keeping
+	track of the glyph under the currently displayed cursor.  Since
+	current_glyphs is sometimes inaccurate when we want to undraw the
+	cursor (as when XTins_del_lines is called from do_scrolling), we
+	can't always get the GLYPH from there.
+	* xterm.c (x_draw_single_glyph): Take the glyph to draw as an
+	argument, instead of taking it from the screen matrix.
+	(x_display_box_cursor): Set and use s->phys_cursor_glyph.
+
+	* ymakefile: Note that scroll.o and xmenu.o depend on screen.h.
+
+1991-09-29  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (make_lispy_event): When building mouse movement
+	event, use `m', not `event', dummy.
+
+1991-09-26  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* screen.c (Fscreen_parameters): Return the proper value for the
+	'minibuffer parameter for minibuffer-only screens.
+
+	* xdisp.c (redisplay_window): When the start position is forced,
+	constrain it to be within the visible region anyway.
+
+	* xterm.c (XTwrite_glyphs): Instead of turning off the cursor
+	before we write, just notice if we wrote over it.
+
+	* xfns.c (x_decode_color): If a screen has two planes, then it is
+	considered a color screen, and we should look up the color value.
+
+	* ymakefile: Include xselect.o and xrdb.o in XOBJ even when
+	HAVE_X_MENU is not defined.
+
+	* fns.c (Fdelete): This used to be named Fdelq; Roland forgot to
+	change the function name in his August 17 change.
+	(syms_of_fns): defsubr Fdelete.
+
+1991-09-24  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* alloca.c: Do nothing if alloca is defined as a macro.
+
+1991-09-08  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* m-pfa50.h: New file.
+
+1991-09-06  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* unexec.c: Add conditionals for COFF_ENCAPSULATE.
+
+1991-08-17  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+
+	* fns.c (Fdelete): New fn.  We have member now; we should have
+	delete too.
+
+1991-08-16  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xfns.c (x_get_arg): Clean bad characters out of the screen name
+	before using it as a resource key.
+
+	* abbrev.c (Fexpand_abbrev): Don't let capitalization go past point.
+
+	* sysdep.c (sys_suspend): Don't use & before array name.
+
+	* sysdep.c [BROKEN_FIONREAD]: Undefine FASYNC.
+
+	* m-tandem-s2.h (START_FILES, LIB_STANDARD): Added.
+
+	* s/s-aix3-1.h: Define HAVE_TCATTR.
+
+	* xfns.c (Fx_grab_cursor, Fx_ungrab_cursor): Functions removed.
+
+1991-08-15  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* bytecode.c (Qbyte_code_meter): New.
+	(Bend_of_line, Bset_marker, Bmatch_beginning, Bmatch_end, Bupcase,
+	Bdowncase, BRgoto, BRgotoifnil, BRgotoifnonnil,
+	BRgotoifnilelsepop, BRgotoifnonnilelsepop, BlistN, BconcatN): New
+	byte codes.
+	(Fbyte_code): Implemented new codes listed above.  Added code to
+	count how many times a function is called.
+	(syms_of_bytecode): Initialize and staticpro Qbyte_code_meter.
+ 
+	* xfns.c (x_window): When setting the class hints, use the
+	screen's name as the res_name.
+
+	* xfns.c (x_make_screen_name): New function.
+	(Fx_create_screen): Use x_get_arg to find screen name; if none has
+	been specified, use x_make_screen_name; don't set the name again
+	at the bottom.
+	(x_get_arg): If SCREEN_NAME is nil, don't pass any class to
+	Fx_get_resource.
+
+	* xfns.c (x_get_arg, x_default_parameter): Take an extra argument
+	TYPE, instead of encoding the type in the first letter of the
+	property name.
+
+1991-08-15  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
+
+	* buffer.c (Fkill_all_local_variables): Don't pass
+	Fmake_local_variable too many args.  Use Fset instead.
+
+1991-08-14  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
+
+	* xfns.c (emacs_class): Variable removed.
+	(EMACS_CLASS): New macro, specifying Emacs class for xrdb use.
+	Use a class of "Emacs", to be compatible with previous versions.
+	(Fx_get_resource, x_window, Fx_open_connection): Use macro here.
+
+	* buffer.c (Fgenerate_new_buffer): Function moved to
+	lisp/files.el.
+	(Fgenerate_new_buffer_name): New function which does only the
+	name-choosing work Fgenerate_new_buffer used to do.
+	(Frename_buffer): Added second optional argument DISTINGUISH,
+	which lets rename_buffer use generate-new-buffer-name if non-nil.
+	Return the name the buffer was given.
+	Do nothing if new name is already buffer's name.
+
+	* xfns.c (Fx_get_resource): Take third argument CLASS, and require
+	it to be specified whenever NAME is.
+	All callers changed.
+	[not HAVE_X11] (Fx_get_default): Only take the one arg.
+	[not HAVE_X11] (Fx_get_resource): Toss the second two args.
+
+1991-08-13  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xfns.c (Fx_close_current_connection): Add \n to error message.
+
+	* keyboard.c (make_lispy_event): Added HP keys into the
+	function_key_names array.
+	* xterm.c (XTread_socket): For KeyPressed events, strip the
+	keysym's vendor-specific bit, and take a shot at fitting it into
+	the Emacs key numbering.
+
+	* screen.c (Vdefault_screen_alist): Definition moved from
+	screen.el to here.
+	(syms_of_screen): DEFVAR_LISP and initialize it here.
+	* screen.h: Declare it here.
+	* xfns.c (x_get_arg): Use it here.
+
+	* screen.c (make_screen): When choosing a buffer for the screen's
+	root window, shy away from buffers whose names start with a space.
+
+1991-08-11  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* process.c (exec_sentinel, exec_sentinel_unwind): Move these
+	above status_notify.
+
+	* eval.c (Qinhibit_quit): New variable, to support Aug 5 changes
+	to process.c.
+	(syms_of_eval): Initialize and staticpro above.
+	* lisp.h: added extern declaration for above.
+
+1991-08-10  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* regex.c (re_search_2): When searching with the fastmap, test for
+	a translate table outside of the loop, not inside the loop.
+
+1991-08-10  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* fns.c (Fequal): Don't crash on circular structure.
+	(internal_equal): New subroutine does the recursion.
+
+	* print.c (print): Recognize circular car pointers.
+
+1991-08-10  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): Ignore exceptional
+	conditions on the keyboard input.
+
+1991-08-06  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* lisp.h: Fiddled with formatting.
+
+	* process.c (exec_sentinel_unwind): New function.
+	(exec_sentinel): Restore the process's sentinel, using an
+	unwind_protect.
+
+1991-08-05  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* keyboard.c: Doc fix.
+
+1991-08-05  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* dired.h: Don't include search.h; it doesn't exist.
+
+	* process.c (read_process_output, exec_sentinel): Bind
+	Qinhibit_quit to true and call the filter directly instead of
+	through a condition-case.
+	(run_filter): Removed.
+	(this_filter, filter_process, filter_string): Variables now
+	unnecessary.
+
+    	* xfns.c (Fx_get_resource): Take the screen name as an optional
+	argument and look up resources using the name of the screen as
+	part of the key.
+	[not HAVE_X11] (Fx_get_default): Take optional 2nd arg NAME and
+	ignore it.
+	(x_get_arg): Take the screen name as an arg, and call
+	Fx_get_resource with that argument.
+	(x_default_parameter, x_figure_window_size, x_icon): Pass the
+	screen's name to x_get_arg.
+	(Fx_create_screen): Make sure the screen name is either nil or a
+	string, and pass it to x_get_arg.
+
+	* xfns.c (Vx_screen_defaults): Variable removed; such settings
+	belong in the .Xdefaults file.
+	(syms_of_xfns): Don't defvar it here.
+	(Fx_create_screen): Don't use it here.
+
+	* keyboard.c (classify_object): #if 0'd function finally removed.
+	* xterm.c (Qmapped_screen, Qunmapped_screen, Qexited_scrollbar,
+	Qexited_window, Qredraw_screen): Unused, so removed.
+	(syms_of_xterm): Don't bother to initialize above.
+	
+	* xterm.c (init_input_symbols): Renamed to syms_of_xterm, for
+	consistency.
+	(x_term_init): Don't call it here.
+	* xfns.c (syms_of_xfns): Don't call syms_of_xselect here.
+	* emacs.c (main): Call them here.
+
+	* xterm.c (invocation_name): Made this a Lisp_Object, so that its
+	string value could be relocated properly.
+	(x_term_init, x_text_icon): Adjusted code appropriately.
+	(syms_of_xterm): staticpro invocation_name.
+	* xfns.c (invocation_name): Changed extern declaration, deleted
+	extra declaration.
+	(Fx_get_resource): Adjusted code appropriately.
+
+1991-08-04  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* lread.c (read1): Accept #[...] for bytecode object.
+	* print.c (print): Print them that way.
+
+1991-08-01  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* fileio.c (Fexpand_file_name): Avoid doing strlen (0).
+
+	* editfns.c, filelock.c [VMS]: Use pwd.h from Emacs, not from system.
+	* fileio.c [VMS]: Likewise.  Also include stddef.h, string.h.
+	Include perror.h only once.
+	[VMS] (file_name_as_directory, directory_file_name): Remove
+	assignments from if conditions.
+	(Fexpand_file_name): Remove excess slash from end of user's home dir.
+
+1991-08-01  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* emacs.c (main): Add SIGIO conditional within AIX conditional.
+
+	* xdisp.c (try_window_id): Compute proper position for screen bottom
+	when all changes are below the screen.
+	When first computing bp, don't go more than HEIGHT + 1 lines.
+
+1991-07-31  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xterm.c (x_destroy_window): If we're destroying the currently
+	highlighted screen, clear x_highlight_screen.
+
+	* xdisp.c (display_text_line, display_string):
+	Don't go past endp for multi-column chars.
+
+1991-07-28  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* lread.c (init_lread): If Vload_path was set specially before
+	dumping, preserve it by default.
+
+	* process.c (process_send_signal): Notice and deal if the
+	TIOCGPGRP ioctl says that the subprocess has no pgrp.
+
+	* xdisp.c (try_window_id): Always update window_end_* if successful.
+
+	* process.h (subtty): New slot.
+	* process.c (create_process): Set it.
+	(process_send_signal): Use it.
+
+	* alloc.c (Fmake_rope): Doc fix.
+	* screen.c (Fselect_screen): Doc fix.
+	* vms-pp.c: Fix comment.
+
+	* keymap.c (Fkeymapp, Fdefine_prefix_command): Doc fixes.
+
+	* window.c (window_select_count): No longer static.
+	(init_window_once): Increment window_select_count, to give each
+	window a unique use_time.
+	* window.h (window_select_count): extern this here.
+	* screen.c (make_screen): Stamp a new screen's selected window
+	with the proper selection time.
+
+	* ymakefile: xselect.o depends on screen.h, xterm.h, and config.h.
+	xrdb.o depends on config.h.
+	xterm.o depends on gnu.h.
+	* xfns.h: File removed - it only declared Vx_send_movement_events.
+	All includers changed.
+
+1991-07-27  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* keymap.c (Fcopy_keymap): Don't recursively copy maps inside symbols.
+
+1991-07-27  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xdisp.c (redisplay): If echo_area_display puts text in a
+	surrogate minibuffer screen, don't neglect to update it.
+
+	* keyboard.c (kbd_buffer_store_event): Make sure
+	Vlast_event_screen is set properly for quit characters.
+
+1991-07-26  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (command_loop_1): pass both arguments to
+	Fselect_screen.
+
+	* screen.c (make_screen): Divide the size by sizeof (Lisp_Object)
+	before passing it to Fmake_vector.
+    
+	* screen.h [not MULTI_SCREEN] (SCREEN_SCROLL_BOTTOM_VPOS): fixed
+	definition.
+
+	* screen.c: #include termhooks.h and therefore stdio.h.
+	(make_screen): Initialize focus_screen member.
+	(Fdelete_screen): Refuse to delete SCREEN if it is a
+	surrogate minibuffer for some other screen, not just if it's the
+	global minibuffer screen.
+	(Fredirect_screen_focus, Fscreen_focus): New function.
+	(syms_of_screen): defsubr Sredirect_screen_focus.
+	* window.c: Don't include termhooks.h or stdio.h.
+	(Fselect_window): Removed grunge to support minibuffer hack.
+	* screen.h (struct screen): Added focus_screen member, and
+	accessor for it.
+	* alloc.c (mark_object): mark focus_screen member of Lisp_Screens.
+	* xterm.c (XTscreen_rehighlight): Use the focus_screen member to
+	decide which screen to highlight.
+	(XTread_socket): Use focus_screen when enqueuing keystrokes.
+	* minibuf.c (read_minibuf, read_minibuf_unwind): Shift the
+	selected screen's focus around appropriately.
+	* termhooks.h (screen_rehighlight_hook): Doc fix.
+
+	* lisp.h (CHECK_IMPURE): Moved definition...
+	* puresize.h (CHECK_IMPURE): To here.
+
+1991-07-25  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
+
+	* dispnew.c (buffer_posn_from_coords): Bufp is broken; don't use it.
+
+	* xterm.c (XTscreen_rehighlight): Neatened sloppy logic.
+	
+	* keyboard.c (read_key_sequence): When truncating a key sequence,
+	don't forget to put the new keystroke back in this_command_keys.
+	Do this before calling echo_truncate, and don't call echo_char.
+
+1991-07-24  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
+
+	* xterm.c (x_term_init): Initialize x_focus_screen and
+	x_highlight_screen.
+
+	* xterm.c (XTscreen_rehighlight): Handle things correctly when
+	x_focus_screen is 0.
+	(XTread_socket): Process EnterNotify and LeaveNotify events with
+	.focus == 0 properly.  For FocusOut events, pass the right
+	arguments to x_new_focus_screen.
+
+	* fileio.c (Finsert_file_contents): Use RETURN_UNGCPRO macro.
+
+	* buffer.c (Fbuffer_name): Fix typo in doc string.
+	(syms_of_buffer): Fix typo in before_change_function name.
+
+1991-07-23  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
+
+	* screen.h (CHECK_SCREEN): Define a dummy version of this when
+	MULTI_SCREEN is not defined.
+
+	* sysdep.c (init_signals, sys_signal, sys_sigpause): New functions.
+	(sys_sigblock, sys_sigunblock, sys_sigsetmask): New functions.
+
+	* sysdep.c (_sobuf): Unsigned chars if DGUX.
+
+	* sysdep.c [DGUX]: Include file.h.
+	[DGUX] (sys_siglist): New variable.
+
+	* x11term.c (x_init_1) [SYSV_STREAMS]: Don't close the old
+	descriptor.
+
+	* keyboard.c (read_key_sequence): Treat function keys like ascii
+	characters.
+
+	* lread.c (init_lread, syms_of_lread): New names for init_read and
+	syms_of_read, for consistency.
+
+	* emacssignal.h: New file.
+	* data.c, keyboard.c, process.c, sysdep.c: Include it.
+	* data.c (arith_error): Use SIGEMPTYMASK.
+	* keyboard.c (sigfree, sigunblockx): Use SIGEMPTYMASK.
+	(sigholdx, sigblockx): Use sigmask.
+	(gobble_input): Use sigblockx instead of sigholdx, so that any
+	other blocked signals stay blocked during and after the call to
+	read_avail_input.
+	* process.c (create_process): Use sigmask.
+	[FASYNC] (request_sigio): Use sigunblock.
+	* xterm.c (sigmask): Removed #definition here.
+	* ymakefile (keyboard.o, process.o, sysdep.o, data.o): Make these
+	depend on emacssignal.h.
+
+	* window.c (Fselect_window): Modify surrogate minibuffer hack to
+	make the minibuffer the selected window of the selected screen,
+	AND select the minibuffer window's screen.
+	* minibuf.c (read_minibuf): If the minibuffer window is on a
+	different screen, save that screen's configuration too.
+
+	* window.c (Fset_window_configuration): Use SCREEN_ accessor to
+	get at a screen's root window.  Removed unused variable
+	screen_to_select.
+	(Fcurrent_window_configuration): Take an optional argument SCREEN.
+	All callers changed.
+
+	* window.c (auto_new_screen, Vauto_new_screen_function): Renamed
+	to pop_up_screens and pop_up_screen_function, to be parallel with
+	pop_up_windows.
+	(display_buffer, syms_of_window): Changed appropriately.
+
+	* fns.c (Fload_average) [DGUX]: Add code to support DGUX.
+
+	* s-dgux.h, m-aviion.h: New files.
+
+	* emacs.c (main) [POSIX_SIGNALS]: Call init_signals.
+
+	* screen.c (Fdelete_screen): Update last_nonminibuf_screen if
+	the screen it's currently pointing to gets deleted.
+
+1991-07-22  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
+
+	* screen.c (last_nonminibuf_screen): New variable.
+	(Fselect_screen): Set last_nonminibuf_screen if appropriate.
+
+1991-07-21  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
+
+	* screen.h (last_nonminibuf_screen): Added declarations for new
+	variable. 
+	* minibuf.c (active_screen): Variable removed.
+	(read_minibuf): Removed code to set and clear active_screen.
+	* window.c (Fdisplay_buffer): Rewritten to use
+	last_nonminibuf_screen.
+
+	* screen.c (next_screen): Use SCREEN_ accessors instead of ->. 
+
+	* window.c (Fdisplay_buffer): Removed reference to
+	Fx_create_screen; we should rely on the auto-new-screen-function
+	being set to something appropriate.
+
+1991-07-21  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): Restore the state of
+	this_command_key_count along with the echoing state.
+
+1991-07-20  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* xfns.c (Fx_synchronize): New function.
+	(syms_of_xfns): defsubr it.
+
+	* xdisp.c (redisplay): Don't turn on all_windows whenever we're
+	using a separate minibuffer screen.  Even if there is some tweak
+	necessary, this wasn't it.
+
+	* process.c (status_notify): Do not forget to UNGCPRO.
+
+	* screen.c (next_screen): Re-work logic to skip minibuffer-only
+	screens so that it doesn't loop indefinitely, even when the only
+	screen is a minibuffer-only screen.  Skip all screens that are
+	only minibuffers, not just when they are the global minibuffer
+	screen.
+
+	* xdisp.c (message, message1): If the screen's message buffer
+	is 0, toss the message; don't check the window system against
+	the screen output_method.
+
+1991-07-19  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): When we truncate the echo
+	buffer because the user has switched screens, re-echo the
+	character that caused the truncation.
+
+	* lread.c (Fload): Change "source newer than ..." message not to
+	refer to "libraries."  What is a "library," anyway?
+
+	* window.c: #include "termhooks.h", and therefore <stdio.h> too.
+	[MULTI_SCREEN] (Fselect_window): If the window being selected is
+	the selected screen's minibuffer, but it lives on another screen,
+	don't select that other screen - call the screen_rehighlight_hook
+	instead.
+	* termhooks.h (screen_rehighlight_hook): New hook, so that Emacs
+	can shift the screen highlighting when needed.
+	* term.c (screen_rehighlight_hook): Define it.
+	* xterm.c (x_highlight_screen): New variable.
+	(x_new_focus_screen): Move the rehighlighting code to...
+	(XTscreen_rehighlight): New function.
+	(x_display_bar_cursor, x_display_box_cursor): Use
+	x_highlighted_screen instead of x_focus_screen.
+	(x_term_init): Initialize screen_rehighlight_hook.
+	* ymakefile: Make window.o depend on termhooks.h.
+
+	* xfns.c (Fx_create_screen): Add mention of
+	global-minibuffer-screen to docstring.
+	* screen.c (make_screen_without_minibuffer): Improve error message
+	displayed when Vglobal_minibuffer_screen is not a proper screen.
+
+1991-07-18  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* config.h (PURESIZE): Definition moved to...
+	* puresize.h: New file.
+	(PURESIZE): Define this here.  This will allow people to change
+	their pure storage allocation without having to recompile most of
+	Emacs.
+	* data.c: #include puresize.h, since CHECK_IMPURE needs PURESIZE.
+	* alloc.c: #include puresize.h.
+	[HAVE_SHM] (pure_size): New variable, so that XPNTR doesn't depend
+	on PURESIZE.
+	[HAVE_SHM] (init_alloc_once): Initialize pure_size here.
+	* lisp.h [HAVE_SHM] (XPNTR): Defined in terms of pure_size,
+	instead of PURESIZE.
+	(pure_size): extern declaration added here.	
+	* ymakefile: Added puresize.h to dependencies for alloc.c and
+	data.c's .o files.
+
+	* emacs.c (main): Doc fix for kludge to scan for -d.
+
+1991-07-17  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* termhooks.h (struct input_event): #if 0'd out the definition for
+	the screen_selected event type, and added the stipulation that the
+	{non_,}ascii_keystroke events specify the screen they happen in.
+	* xterm.c (x_new_focus_screen): Don't enqueue a screen_selected
+	event.
+	(XTread_socket): Calls to x_new_focus_screen in the EnterNotify,
+	FocusIn, LeaveNotify, and FocusOut event code don't worry about
+	enqueued events any more.
+	* keyboard.c (new_selected_screen): Removed - see below.
+	(Vlast_event_screen): New variable, visible to lisp code.
+	(echo_length, echo_truncate): New functions.
+	(readable_events): Removed screen_selected events from the set of
+	things to skip.
+	(kbd_buffer_store_event): Don't bother collapsing consecutive
+	screen_selected events.
+	(kbd_buffer_read_char): Don't process screen_selected events.
+	(make_lispy_event): Re-arrange scrollbar events to put the window
+	whose scrollbar was diddled right after the identifying symbol,
+	for consistency.
+	(read_key_sequence): Let the selected screen and the location of
+	the event affect the keymap used to find its binding.
+	(Fread_key_sequence): Update docstring.
+	(syms_of_keyboard): Added DEFVAR_LISP for Vlast_event_screen.
+
+1991-07-15  Jim Blandy  (jimb@pogo.gnu.ai.mit.edu)
+
+	* screen.c (next_screen): If !mini_screen, only exclude the global
+	minibuffer screen when the minibuffer is its only window.
+	(Fnext_screen): Make the docstring clearer about what MINISCREEN
+	means.
+
+	* window.c (Fother_window): Indicate that it takes both a required
+	and optional argument, instead of just one required.
+
+1991-07-15  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+
+	* buffer.c (Fkill_buffer): Rehacked kill-buffer-hooks to use
+	standard name kill-buffer-hook, and to use set_buffer_internal
+	instead of Fset_buffer.  Use static variable containing symbol
+	instead of intern.
+	(syms_of_buffer, init_buffer_once): Qkill_buffer_hook =
+	'kill-buffer-hook.
+
+1991-07-15  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keymap.c (Fsingle_key_description): When describing a listy
+	object, take the car to find the symbol that heads it, not the cdr.
+
+	* dispnew.c (buffer_posn_from_coords): Pass col and line to
+	compute_motion in the correct order.
+
+	* keyboard.c (make_lispy_event): When calculating rows and columns
+	for mouse clicks and movement events, don't forget to subtract the
+	position of the window's top left corner before passing them to
+	buffer_posn_from_coords.
+
+	* screen.c (coordinates_in_window): Removed useless test for *y ==
+	screen_height, and screen_height variable; this would be out of
+	range of all the windows anyway.
+
+	* xdisp.c (message1): Removed code to ignore messages before X has
+	started up; this issue has hopefully been addressed by the
+	condition-case in startup.el.
+
+	* editfns.c (init_editfns): Make user_name char * instead of
+	unsigned char *, since that's what most of the usages seem to
+	want.  And when expanding ampersands in AMPERSAND_FULL_NAME mode,
+	don't try to use user_name as a string; use Vuser_name.
+
+	* minibuf.c (assoc_for_completion): New function.
+	(do_completion): Use that to check for exact match.
+
+	* minibuf.c (Ftry_completion):  Fix handling of matches aside from
+	case.  If ignoring case, and all else equal, try to preserve the
+	case of the characters in the input.
+
+	* process.c (status_notify): GCPRO tail.
+
+	* sysdep.c (creat_copy_attrs, rename_sans_version):  Always set
+	protection to O:REWD when creating file.  Added new function
+	rename_sans_version, which strips the version number from the target
+	filename, renames the temporary file to this filename,  and then
+	sets the file protection of this new file to be the same as the file
+	being edited.
+
+	* sysdep.c [VMS]: Include pwd.h from Emacs.  Use sys/file.h if GCC.
+	(F_SETFL) [VMS]: Undefine this, to control conditionals.
+	(getpwnam): Make `full' unsigned.
+	(creat_copy_attrs): Add some casts.
+	(sys_access): Change prvmask and CHECKPRIV to use bitfields.
+	Add some casts, and make dummy an unsigned short int.
+	Don't use & on constants.
+	(vmserrstr): Add a cast.
+	(sys_creat): Define va_count before this function.
+
+1991-07-14  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* sysdep.c (sys_sleep, input_wait_timeout): Don't use & on constant.
+	[VMS]: Include pwd.h from Emacs.  Use sys/file.h if GCC.
+	(bzero, bcopy) [VMS]: Don't take address of `length'.
+
+	* sysdep.c (sys_suspend): Cast value of `signal' to insulate from
+	changed value type in sysV.3.
+
+	* sysdep.c (child_setup_tty): Turn off erase & kill chars for BSD.
+
+	* sysdep.c (discard_tty_input): Use TIOCFLUSH on Apollo.
+	(init_sys_modes): Avoid TIOCSTART on Apollo.
+
+	* sysdep.c: If HAVE_TERMIOS is not defined, define tcgetattr in
+	terms of the TIOCGETP ioctl.
+	(init_sys_modes): Handle VSUSP, V_DSUSP if HAVE_TCATTR.
+	(discard_tty_input, init_baud_rate, child_setup_tty,
+	init_sys_modes, tabs_safe_p, reset_sys_modes):
+	Use tcgetattr, and if HAVE_TCATTR, use tcsetattr.
+
+1991-07-13  Jim Blandy  (jimb at churchy.gnu.ai.mit.edu)
+
+	* s-hpux8.h: New file.
+	* fileio.c [HPUX8]: Don't include errnet.h.
+
+	* unexhp9k800.c (unexec): Local variable i to avoid compiler bug?
+
+	* sysdep.c (insque) [WRONG_NAME_INSQUE]: New function.
+	* s-386ix.h (WRONG_NAME_INSQUE): Define it.
+
+	* xdisp.c (message_buf_print): New variable.
+	(message): Clear it here.
+	* dispextern.h: Declare it here.
+	* print.c (printchar, strout): Set it and test it here.
+
+	* keyboard.c (command_loop_1): Don't clear last_command when start
+	macro.
+
+	* keyboard.c (read_command_char): Exit at eof if noninteractive.
+
+	* indent.c (invalidate_current_column): New function.
+	* editfns.c (Fwiden, Fnarrow_to_region): Call it.
+
+	* process.c (create_process): Use O_NOCTTY whenever defined,
+	unless USG.
+
+	* process.c (Fprocess_send_eof): If using a pipe, close it.
+	(close_process_descs): Check IN and OUT for nonzeroness. 
+
+	* process.c (process_send_signal): Use interrupt chars
+	to send certain signals to the process group.
+	(TIOCGETC): Undefine this if it is not really usable.
+
+	* sysdep.c (discard_tty_input): Do nothing if read_socket_hook.
+
+	* xfns.c (x_set_mouse_color): Change the default pointer shapes to
+	be closer to xterm and emacs 18.
+
+	* xterm.c (x_focus_on_screen, x_unfocus_screen): These no longer
+	call XSetInputFocus, because I think that the X-windows ICCCM
+	says that only the window manager can do this sort of thing.
+
+	* keyboard.c (read_char): When there is an unread command
+	character, goto reread_first when this_command_key_count is zero,
+	not when it is >= 0.
+	(command_loop_1): Reset this_command_key_count only if there is no
+	prefix argument.  This makes echoing of keystrokes work correctly.
+
+1991-07-11  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
+
+	* eval.c (Finteractive_p): Changed "! XTYPE (foo) == Lisp_Bar" to
+	"XTYPE (foo) != bar".
+
+1991-07-11  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* eval.c (apply1): Don't forget to UNGCPRO before returning.
+
+	* xterm.c (XTupdate_begin): Undisplay the cursor here; do_scrolling
+	will call XTins_del_lines when the screen matrix is inaccurate, so
+	we cannot undisplay the cursor then, but do_scrolling is always
+	called within an update.
+
+1991-07-10  David J. MacKenzie  (djm at nutrimat)
+
+	* termcap.c, tparam.c [!emacs, USG || STDC_HEADERS]: Define bcopy
+	in terms of memcpy.
+
+1991-07-09  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* scroll.c (do_scrolling): Use correct termination condition for
+	loop that uses the glyph pointers for the deleted lines to fill in
+	the inserted lines.
+
+1991-07-08  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* editfns.c: Doc fix.
+
+1991-07-03  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* dispnew.c (line_hash_code): Test m->highlight[vpos], not
+	m->highlight.  All lines were getting hash codes of -1, because
+	the highlight vector was never NULL.  Golly.
+
+	* process.c (list_processes_1): Handle status of network streams.
+
+1991-07-02  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* doc.c (Fdocumentation_property):
+	Pass only strings to Fsubstitute_command_keys.
+
+1991-07-02  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* editfns.c (init_editfns): If neither of the environment
+	variables are set, DON'T set Vuser_name to Vuser_real_name; it's
+	supposed to reflect the EFFECTIVE uid.
+	Get the full name according to Vuser_name if it differs from
+	Vuser_real_name, not if they are equal.
+	And pass Vuser_name to getpwnam in that case instead of user_name,
+	which might be 0.
+
+	* lisp.h (RETURN_UNGCPRO): New macro.
+    
+	* bytecode.c (Fbyte_code): Do not remove GC protection from the
+	stack when making a function call, because the caller is
+	responsible for protecting the arguments to a MANY-arg'ed
+	function.
+	* eval.c (Fapply): If we use funcall_args, GCPRO it.
+	And when we call Ffuncall with funcall_args, tell it the correct
+	length of funcall_args, no matter which branch allocated it.
+	(Ffuncall): Don't gcpro the arguments before calling
+	Fgarbage_collect.
+	(Feval): If we're calling a subr that takes MANY args, don't
+	UNGCPRO until after we call the subr.
+	(apply1, call0, call1, call2, call3): GCPRO the arg arrays passed
+	to Ffuncall and Fapply.
+	* callproc.c (Fcall_process, Fcall_process_region): Don't GCPRO
+	the argument array.
+	* editfns.c (Finsert, Finsert_before_markers): Don't GCPRO the
+	argument array.  Added comment about when GCPROing is not needed.
+	* mocklisp.c (Finsert_string): Don't GCPRO the argument array.
+
+	* keyboard.c (init_keyboard): Handle SIGQUIT with interrupt_signal
+	on any system that has HAVE_TERMIO, not just on USG systems.
+
+1991-07-01  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* editfns.c (init_editfns): Test that user_name isn't 0.
+
+1991-06-29  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* search.c: Doc fixes.
+
+1991-06-28  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* keyboard.c (make_lispy_event): Let the posns of mouse clicks and
+	mouse movements be nil when window_from_coordinates returns a
+	NON-window, not when it returns a window.  Since posn is a lisp
+	object, don't call make_number when consing up the event.
+	Don't call make_number on the code member of the event.
+
+	* keyboard.c (struct movement): Make the x, y, and time members
+	Lisp_Objects, since it's easier to convert from a Lisp_Object than
+	to.
+	(note_mouse_position): Adjusted for the above.
+	(make_lispy_event): Removed code to make Lisp_Objects for those
+	members.
+
+	* xterm.c (XTread_socket): When handling LeaveNotify events,
+	remember that the focus member of the event is true when the
+	receiving window now has the focus, not when it is losing it.
+	* xfns.c (Ffocus_screen): Don't signal an error if SCREEN is
+	already the focus screen.
+
+1991-06-26  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* alloc.c (Fmake_rope): Use sizeof (GLYPH) instead of 2 to
+	determine how large the string should be, and changed doc string
+	to describe ropes as strings of glyphs, not just as strings of
+	character pairs.
+	(Frope_elt): Use sizeof (GLYPH) as the element size, instead of
+	assuming that the elements are two bytes.
+	* lisp.h (typedef GLYPH): Moved the definition from here...
+	* config.h (typedef GLYPH): to here, so people can elect to get
+	better performance if they don't want to use huge fonts.
+	* xterm.c (dumpglyphs): Use XDrawImageString or
+	XDrawImageString16, Depending on sizeof (GLYPH).
+	
+	* data.c (Fsetq_default): Call Fset_default to do the assignments,
+	not plain Fset.
+
+	The following changes were contributed by Jamie Zawinski
+	<jwz@lucid.com>:
+
+	* bytecode.c (Fbyte_code): BYTE_CODE_SAFE and BYTE_CODE_METER
+	options added.
+	Added Bmark, Bscan_buffer, Bset_mark to support error-checking for
+	these obsolete bytecodes.
+	Added Bunbind_all to support tail-call optimization (not yet
+	implemented).
+	Did NOT add the relative branch opcodes that were in the version
+	of bytecode.c that Jamie sent.
+	The branching bytecodes now only QUIT if they take the branch.
+	Btemp_output_buffer_show, Bforward_char, Bforward_word,
+	Bskip_chars_forward, Bskip_chars_backward, and Bforward_line
+	passed the wrong number of arguments to their subrs. 
+	Brem, Bbuffer_substring, Bdelete_region, Bnarrow_to_region,
+	Bstringeqlsign, Bstringlss, Bequal, Bnthcdr, Bmember, Bassq,
+	Bsetcar, and Bsetcdr passed arguments to the subr in the wrong
+	order.
+
+1991-06-25  Jim Blandy  (jimb at churchy.gnu.ai.mit.edu)
+
+	* doc.c (Fdocumentation): Added a QUIT test to the loop that finds
+	the symbol's function value.
+
+1991-06-24  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* xterm.c (dumprectangle): Removed call to XFlushQueue here.
+
+	* keyboard.c (command_loop_1): Call Fselect_screen to establish
+	the new selected screen after the key sequence has been read, not
+	at the top of the loop.  This way, a key sequence will happen in
+	the screen it was typed at, or (to be more precise) the screen its
+	last character was typed at.
+
+	* keyboard.c (fast_read_one_key): Function deleted, since it had
+	been #if 0'd out a long time ago.
+	(command_loop_1): Support for fast_read_one_key removed.
+
+	* eval.c (Ffuncall): Do GCPRO the arguments, contrary to the May
+	16 change.  The convention appears to be that the MANY-arged
+	callee must protect its own arguments.
+	(Fapply): Don't protect funcall_args; they are the caller's
+	responsibility.
+	* bytecode.c (Fbyte_code): GCPRO the section of the stack *above*
+	the args to Ffuncall, since it will be protected again once
+	Ffuncall returns and therefore should stay valid.  If it is not
+	protected, string relocation may make it invalid.
+	* mocklisp.c (Finsert_string): GCPRO the arguments, since insert
+	may cause a garbage collection.
+	* editfns.c (Finsert, Finsert_before_markers): GCPRO the
+	arguments, since insert may cause a garbage collection.
+	* callproc.c (Fcall_process, Fcall_process_region): GCPRO the
+	arguments, since insert may cause a garbage collection.
+
+1991-06-20  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* buffer.h (struct buffer_text, struct buffer): small change to
+	comments.
+
+	* search.c (Fmatch_beginning, Fmatch_end): Fixed doc strings to
+	indicate that non-regexp searches set these too.
+
+	* window.c (Fset_window_start): If window is not the selected
+	window, set windows_or_buffers_changed, so that redisplay will
+	know that it should redisplay the window.
+
+	* callint.c (Finteractive): Changed doc string to indicate that
+	the interactive prompts are passed through format.
+
+1991-06-20  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
+
+	* buffer.c (syms_of_buffer): buffer-undo-list doc fix.
+
+1991-06-11  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
+
+	* data.c (Fsetq_default): Take multiple SYM, VAL args; syntax now
+	parallel to setq.
+
+1991-05-25  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (kbd_buffer_read_char): Fix wait-for-input loop so
+	that we always process/toss events we don't want to return.
+
+        * screen.c (Fselect_screen): Call Ffocus_screen instead of
+	x_new_selected_screen, which doesn't exist anymore.
+
+	* xfns.c (Ffocus_screen): Declare the type of the SCREEN argument.
+
+	* xfns.c (Fx_track_pointer): Function #if 0'd out - I don't think
+	that this is a feature that we want.
+	(syms_of_xfns): Elide the defsubr for the above.
+
+	* xterm.c (x_mouse_screen, x_input_screen): Variable deleted,
+	since all we really need is x_focus_screen; all other issues are
+	the realm and responsibility of the window manager.
+	(x_new_selected_screen): Renamed to x_new_focus_screen, and
+	modified not to do thiogs inappropriate for signal handlers.
+	(XTread_socket): Change the handling of EnterNotify, LeaveNotify,
+	FocusOut and FocusIn events to use x_new_selected_screen, and
+	ditched code that deals with x_mouse_screen and x_input_screen,
+	since they don't exist anymore.
+	(x_display_bar_cursor, x_display_box_cursor): Compare s with
+	x_focus_screen to see what form the cursor should take.
+	(x_destroy_window): Don't bother with x_input_screen.
+	* xfns.c (x_mouse_screen): Removed extern declaration for this.
+	(Fx_grab_pointer): Confine the pointer to x_focus_screen, not
+	x_mouse_screen.  This is wrong, but will make emacs compile until
+	this gets fixed.
+
+1991-05-23  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (get_input_pending): Don't use trim_events; use
+	readable_events instead.
+
+	* keyboard.c (make_lispy_event): Remove case for window_sys_event,
+	since that type of event doesn't exist anymore.
+
+	* minibuf.c (Fcompleting_read): Document the backup-n argument.
+
+	* dispnew.c (init_display): Don't declare alternate_display extern
+	here.  I can't figure out what this feature is, and it's broken.
+	* emacs.c (main): Don't test alternate_display and put its value
+	in the environment.
+
+1991-05-22  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (struct movement): Made .used an int instead of a
+	char, since that's more likely to be stored atomically on SPARCS
+	and similar machines. 
+
+	* termhooks.h (struct input_event): Removed the window_sys_event,
+	since it's not used anywhere.  Added screen_selected event type.
+	The event handling code used to change the current buffer,
+	selected window, and selected screen out from under running lisp
+	code.  Now we wait for a more convenient time by enqueuing an
+	event.
+	* xterm.c (XTread_socket): When handling FocusIn events and
+	EnterNotify events with the focus member set, enqueue a
+	selected_screen event instead of calling x_new_selected_screen.
+	* keyboard.c (trim_events): Function deleted; it is a bad idea to
+	delete events based on the current tracking state, since tracking
+	might be re-enabled later.
+	(readable_events): New function which searches the input queue for
+	readable events.
+	(tracking_off): Call readable_events to see if we should
+	redisplay.
+	(kbd_buffer_read_char):	Toss events that we are not interested in.
+	This is a better place to do it than trim_events, since we know
+	that do_mouse_tracking will not change.  Also, handle
+	screen_selected events.
+	(new_selected_screen): New variable, holding the screen which
+	should become selected the next time through command_loop_1.
+	(syms_of_keyboard): Initialize and staticpro new_selected_screen.
+	(command_loop_1): If there is a new screen to be selected, do so.
+
+1991-05-21  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
+
+	* xdisp.c (message): Removed the if at the top that did not
+	display messages if the current screen was a termcap screen and a
+	window system will be used.  The change to startup.el on May 18,
+	1991 replaces this.
+
+	* ralloc.c (check_memory_limits): If the address returned by the
+	allocator is not representable in a Lisp_Object, call memory_full
+	instead of printing a very silly "warning" message.
+
+1991-05-19  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* xterm.c (XTread_socket): Don't overwrite the end of the buffer
+	with function keys.
+
+	* keyboard.c (tracking_off): Update input_pending after reading
+	all the input.
+	* process.c: #include "screen.h".
+	(wait_reading_process_input): Check if any screens have been newly
+	mapped and need updating.
+	* xterm.c (XTread_socket): Don't SET_SCREEN_GARBAGED when the
+	screen is unmapped; do this when is mapped.
+	(dumprectangle): Don't dump any data for garbaged screens.
+
+1991-05-18  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* sysdep.c (init_sys_modes): Moved the clauses that set up
+	interrupt-driven input out of the "if running on a terminal"
+	clause, since these may need to be set up even when running on a
+	window system.
+
+1991-05-17  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* process.c (Fprocess_status): For network connections, return
+	Qopen and Qclosed instead of Qrun and Qexit, as documented.
+
+	* lread.c (read1): Removed code that treated numbers starting with
+	a zero as octal.
+
+1991-05-16  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* eval.c (Ffuncall): Don't gcpro the arguments; the caller
+	protects them.
+	(Fapply): Gcpro funcall_args, if we use them.
+
+	* xterm.c (notice_mouse_movement): #if 0'd this function out.
+	(XTread_socket): #if 0 the code that fakes motion events for
+	moving in and out of windows.  Also, rearrange the MotionNotify
+	case to give character rows and columns to note_mouse_position,
+	not pixel x and y positions.  Don't deal with scrollbars here.
+	* termhooks.h (struct input_event): Removed the mouse_movement
+	event kind.
+	* keyboard.c (movement_buf): A new buffer for mouse-movement events.
+	This is hairier than you might think; see the comments for this
+	and the comments for note_mouse_position and get_mouse_position
+	for an explanation of why this is hairy.
+	(movement_ptr): Where the event handler should store new mouse
+	locations.
+	(EVENT_QUEUES_EMPTY): New macro, to be used in the places that
+	used to compare kbd_fetch_ptr to kbd_store_ptr to see if there
+	were any events available; this macro tests the mouse movement
+	buffer too.
+	(Qmouse_movement): New symbol to head mouse movement events with.
+	(trim_events): Mouse movement events are no longer in kbd_buffer,
+	so don't try to trim them.
+	(tracking_off, kbd_buffer_read_char, get_input_pending): Use
+	EVENT_QUEUES_EMPTY.
+	(get_mouse_position): New function to retrieve a mouse position
+	from the buffer properly, no matter when the event-handling signal
+	occurs.
+	(kbd_buffer_read_char): If there is something in kbd_buffer, make
+	an event for that; if there is a mouse movement, make an event for
+	that; otherwise, the while loop lied.
+	(make_lispy_event): Added code to produce mouse movement events.
+	(init_keyboard): Clear the mouse movement buffer.
+	(Qmouse_moved, Qredraw_screen, Qmapped_screen, Qunmapped_screen,
+	Qexited_window, Qexited_scrollbar): Removed extern declarations
+	for these, since they're no longer generated.
+	(syms_of_keyboard): Initialize and staticpro Qmouse_movement,
+	remove DEFVAR_LISP for Vignore_mouse_events.
+
+1991-05-14  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* lread.c (read1): Correctly parenthesize the shift when parsing
+	octal numbers, and signal an error if we see a non-octal digit.
+
+1991-05-13  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (trim_events): New function, to remove uninteresting
+	events from the input queue.
+	(get_input_pending): Call trim_events before checking the queue,
+	so as not to advertise input we don't care about.
+	(Ftrack_mouse): A new function to enable mouse tracking for a
+	block of code.
+	(tracking_off): A function for unwind_protection; restore the
+	mouse tracking state to what it was outside of the track-mouse
+	(syms_of_keyboard): defsubr track-mouse.
+	(make_lispy_event): Find the window io which the click occurred
+	when processing mouse_click events, instead of trusting the window
+	tree in the signal-handling code.  Include the buffer position in
+	the click event.
+
+	* xterm.c (construct_mouse_click): Return the click's screen, not
+	its window, and don't bother updating Vmouse_window.  Calculate
+	the row and column of text-area clicks using
+	pixel_to_glyph_translation, since we know that those data
+	structures are alive in signal handlers.
+
+	* screen.c (window_from_coordinates,
+	Flocate_window_from_coordinates): Moved these to window.c, since I
+	need to be able to call them even if we don't have multi-screen
+	support.
+	(syms_of_screen): Removed defsubr for
+	Flocate_window_from_coordinates.
+	* window.c (window_from_coordinates, Flocate_window_from_coordinates):
+	Here they are.
+	(syms_of_window): Here is the defsubr.
+
+	* keyboard.c (note_mouse_position): New function to enqueue
+	mouse movement events properly.
+	(current_movement_event): New variable, to support the above.  See
+	its comment for more explanation.
+
+	* termhooks.h (struct input_event): Change the .window member to
+	.screen, make it a struct screen *, and indicate that those events
+	which used to return	windows now return screens.  It is unsafe
+	for the event reader to traverse the window structure, because it
+	can be called by a signal handler.
+
+1991-05-10  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* keyboard.c (Vignore_mouse_events): Variable deleted.
+	(make_lispy_event): For mouse and scrollbar clicks, return the
+	position as a pair of numbers, not a list of two numbers.
+
+1991-05-09  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* keyboard.c (do_mouse_tracking): Define this variable, which
+	controls whether kbd_buffer_read_char will ignore button up and
+	mouse movement events.
+        * termhooks.h: Declare do_mouse_tracking here.
+
+        * xterm.h (STANDARD_EVENT_SET): New constant, giving the event
+	mask all the windows use.
+
+	* xfns.c (Vx_send_mouse_movement_events): Removed this variable;
+	XTmouse_tracking_enable and do_mouse_tracking do its job better.
+	(syms_of_xfns): Remove the DEFVAR_LISP for the above.
+	(x_window): Don't ask for any pointer motion events or button
+	release events by default; use the unmodified STANDARD_EVENT_MASK.
+	The user will ask for them explicitly if he or she wants them.
+	And don't ask for backing store.
+
+	* xterm.c (XTmouse_tracking_enable): New function to
+	request/unrequest detailed mouse tracking information of the
+	server, and set the flag used by XTread_socket.
+	(x_term_init): Set mouse_tracking_enable_hook to
+	XTmouse_tracking_enable here.
+	(XTread_socket): Handle mouse movement events by calling
+	note_mouse_position.
+
+	* xterm.c (XTread_socket): For MapNotify events, go ahead and set
+	the screen's visible flag, so Expose events will work.  Clear the
+	iconified flag.
+
+	* editfns.c (Finsert_char): Return immediately if n <= 0, not just
+	if n < 0, so that the `while' below does not become an infinite
+	loop.
+
+	* term.c (mouse_tracking_enable_hook): Added this variable to
+	allow emacs to request that the window system start or stop
+	detailed mouse tracking.
+	* termhooks.h (mouse_tracking_enable_hook): Declare it here.
+
+	* xfns.c: Declare the functions before initializing
+	x_screen_parm_table to point to them.
+
+	* xterm.c (XTread_socket): Don't send Qmapped_screen,
+	Qunmapped_screen, Qexited_scrollbar, Qexited_window,
+	Qredraw_screen - these are not features that we want to support.
+
+1991-05-07  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* editfns.c (Finsert_char): Let strlen be the minimum of n and
+	256, not the maximum, so we use an n-byte buffer when n < 256, and
+	a 256-byte buffer many times when n > 256.
+
+1991-05-05  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* keymap.c (Fkeymapp): Fixed docstring to give the right
+	definition of a keymap.
+
+1991-05-03  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* data.c (Fcompiled_function_p): New function.
+
+1991-05-03  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* xfns.c (struct x_screen_parm_table): New type for recording
+	information about screen parameters.
+	(x_screen_parms): New table describing the existing parameters.
+	(init_x_parm_symbols, x_set_screen_param): Use x_screen_parms
+	instead of a large switch statement.
+	(x_figure_window_size): Make the default case of the switch call
+	abort instead of signalling an error, since window_prompting's
+	value is internally generated.
+
+1991-05-01  Jim Blandy  (jimb at churchy.gnu.ai.mit.edu)
+
+	* keymap.c (describe_map_tree): GCPRO the maps variable;
+	Fkey_description calls Fmapconcat, which eventually calls
+	Ffuncall, which can garbage-collect.
+
+1991-04-28  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* dispnew.c (buffer_posn_from_coords): Use the information in bufp
+	to reduce the distance compute_motion must scan, when possible.
+
+1991-04-27  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (syms_of_keyboard): Qtop_level is initialized and
+	staticpro'd in syms_of_data too.  Don't staticpro (or initialize)
+	it again here.
+
+	* macros.c (syms_of_macros): Since executing-macro and
+	executing-kbd-macro are actually the same variable, use
+	DEFVAR_LISP_NOPRO for the second one so it doesn't get staticpro'd
+	twice.
+
+	* process.c (syms_of_process): Don't staticpro or initialize Qexit
+	here, since syms_of_eval already does this and it's bad to
+	staticpro something twice.
+	(Qexit): Remove declaration here, so there will be a compilation
+	error if someone rearranges eval.c without fixing the Qexit stuff.
+	* eval.c (syms_of_eval): Add comment here to say that
+	syms_of_process cares about Qexit too.
+
+	* lread.c (init_obarray): Don't staticpro Vobarray, since the
+	DEFVAR_LISP in syms_of_read takes care of that.
+
+1991-04-22  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* window.c (save_window_save): Always get the selected window's
+	value of point from its buffer, not just when it's also the
+	current buffer.
+
+	* lisp.h (Qdisabled): Declare this here so that the keys_of_*
+	files can disable the commands they define.
+	* casefiddle.c (keys_of_casefiddle): Make upcase-region and
+	downcase-region disabled, by default.
+
+1991-04-16  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* bytecode.c (PUSH):  Alliant can't be bothered to implement the
+	preincrement operator right, so use a comma.
+
+ 	* print.c (syms_of_print): staticpro Qexternal_debugging_output.
+
+	* editfns.c (clip_to_bounds): No longer static - used in window.c.
+	* window.c (unshow_buffer): Use clip_to_bounds to make sure we
+	change point to something legal.
+
+1991-04-14  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* sysdep.c: Changes in formatting and comments.
+
+1991-04-12  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* editfns.c (Fbuffer_substring): Don't call make_string, because
+	it may cause a compaction and move the buffer, and then copy the
+	wrong data.
+
+	* keyboard.c (read_char): Only GC if we've actually done enough
+	consing since the last gc to make it worthwhile.
+
+1991-04-11  Jim Blandy  (jimb at geech.gnu.ai.mit.edu)
+
+	* keymap.c (access_keymap): Canonicalize the order of the
+	modifiers when you look up a symbol in a keymap, too.
+	(where-is-internal): If the keymap in which we found the
+	definition was reached by meta-prefix-char, replace it with the
+	metized character.
+
+	* eval.c (Fcondition_case): Initialize the `handler_list' member
+	of the catchtag.
+
+	* keyboard.c (read_char): reset recent_keys_index when it is
+	greater than OR EQUAL to the number of elements in recent_keys,
+	stupid.
+
+	* keymap.c (access_keymap): When fetching the car of listy events,
+	no need to call Fcar_safe - extract the car directly.
+	* keyboard.c (read_key_sequence): Don't extract the car from listy
+	events here since 1) it strips information that we need from the
+	events, and 2) access_keymap will take care of that for us.
+
+	* macros.c (Qexecute_kbd_macro): New variable, used by
+	Fexecute_command.
+	(syms_of_macros): Initialize and staticpro Qexecute_kbd_macro.
+	* lisp.h: Add extern declaration for Qexecute_kbd_macro.
+	* keyboard.c (Fcommand_execute): Add an entry to the command
+	history for keyboard macros too.
+
+	* xterm.c (XTread_socket): If we get a MappingNotify event whose
+	request == MappingKeyboard, someone has changed the keyboard
+	mapping, and we should get the new mapping with
+	XRefreshKeyboardMapping.
+
+1991-04-10  Jim Blandy  (jimb at wookumz.gnu.ai.mit.edu)
+
+	* commands.h: Declare last_command_char to be a Lisp_Object, not
+	an integer (ack).
+
+	* cmds.c (Fself_insert_command): If last_command_char is not an
+	integer, beep.
+	* minibuf.c (Fself_insert_and_exit): Same thing.
+
+	* keyboard.c (format_modifiers): New function, factoring out code
+	from modify_event_symbol and reorder_modifiers.
+	(modify_event_symbol): Call format_modifiers instead of doing the
+	work inline.
+	(reorder_modifiers): New function to put the modifiers on a
+	modified symbol in the canonical order.
+
+	* keymap.c (modify_event_symbol): Prepend the modifiers so they
+	appear in the canonical order: `M-C-S-U-'.
+	(store_in_keymap): If IDX is a symbol, put the modifiers in the
+	canonical order before storing.
+
+1991-04-09  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keymap.c (Flocal_set_key, Fglobal_set_key): When checking types
+	of arguments, allow KEYS to be a vector or string, not just a
+	string.
+	(keymap_table): New static function to replace duplicated code in
+	access_keymap and store_in_keymap.
+	(access_keymap): Use keymap_table.
+	(store_in_keymap): Use keymap_table, and put non-character
+	definitions in dense keymaps *after* the vector.
+
+	* fileio.c (directory_file_name): Remove trailing slashes from
+	single-letter names like "a/" too.  Let slen be the string length,
+	not one less than the string length.
+
+	* keyboard.c (Fset_input_mode): Don't complain that QUIT isn't an
+	ASCII character if it is nil - it is an optional parameter.
+
+	* keymap.c (Faccessible_keymaps): Use meta-characters in the key
+	sequences returned, carefully making sure that the sequences still
+	appear in order of increasing length.
+
+1991-04-04  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* vmsfns.c (vms_trnlog): Increased size of str to 256 elements.
+	(vms_symbol): Increased size of str to 1025 elements.
+
+1991-03-24  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* dispnew.c (pixel_to_glyph_translation): Moved this function to
+	xterm.c, since it is specific to X and only called by the X code.
+	* xterm.c (pixel_to_glyph_translation): Here it is.
+
+1991-03-22  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* s-usg5-4.h (DATA_SEG_BITS): Definition deleted.
+	* m-intel386.h (DATA_SEG_BITS): Define here if USG5_4.
+
+1991-03-22  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keymap.c (Faccessible_keymaps): Produce meta-characters in the
+	key sequences instead of [meta-prefix-char CHAR] sequences.
+
+1991-03-21  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keymap.c (Flookup_key): If KEY is a zero-length array, then
+	return KEYMAP; this is more algebraically satisfying.
+
+	* dispnew.c (Fsit_for): If the time to sit is zero and there is no
+	input available, then return Qt, not Qnil.
+
+	* keyboard.c (read_char): If a quit occurs and we return
+	quit_char, clear Vquit_flag, so we don't end up returning it again
+	and again...  All lisp code does this manually if they call
+	read-char with quits inhibited, so it's the right thing to do.
+
+1991-03-20  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (read_char): If there is still no input available
+	after an auto-save, do a garbage-collection.
+
+	* undo.c (truncate_undo_list): Always leave at least one undo
+	record in the undo list.  And use sizeof (struct Lisp_Cons), etc.
+	instead of 8, etc.
+
+	* keyboard.c (read_char): When deciding whether to wrap
+	recent_keys_index back to 0, compare it against
+	sizeof (recent_keys)/sizeof(recent_keys[0]),
+	not sizeof (recent_keys).
+	(quit_char): This can't be anything but an ASCII character, so it
+	shouldn't be a Lisp_Object.  The declaration's comment says why.
+	(read_char, init_keyboard): Treat quit_char as an int now.
+	(Fset_input_mode): As above, and signal an error if QUIT is not an
+	ASCII character.
+
+	* callint.c (Fprefix_numeric_value): Use XFASTINT to initialize
+	val, not raw.
+
+	* fileio.c (Fmake_symbolic_link): Don't expand FILENAME; this
+	would make it impossible to make a link to a relative name.
+
+1991-03-19  Jim Blandy  (jimb at pogo.gnu.ai.mit.edu)
+
+	* keyboard.c (syms_of_keyboard): Removed the DEFVAR_BOOL for
+	meta-flag.  This cannot be a lisp variable because we need to
+	change the terminal settings whenever this flag changes.  Change
+	this through set-input-mode instead.
+
+1991-03-19  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+
+	* keyboard.c (read_avail_input): Raise SIGHUP if no input on AIX.
+
+1991-03-19  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* keyboard.c (kbd_buffer_store_event, kbd_buffer_read_char,
+	read_key_sequence, Fexecute_extended_command, Fset_input_mode,
+	init_keyboard, syms_of_keyboard): Use XSET (var, Lisp_Int, exp)
+	instead of XSETINT (var, exp) in those cases where var is not
+	known to already be a Lisp_Int.
+	* search.c (skip_chars): Same.
+	* xterm.c (construct_mouse_click, XTread_socket): Same.
+	* callint.c (Fprefix_numeric_value): Make sure to return a
+	Lisp_Int even when RAW is a cons whose car is not a Lisp_Int.
+	* process.c (sigchld_handler): When searching for a process whose
+	pid is -1, make sure that the pid is an int first, since network
+	streams are in Vprocess_alist too.
+
+	* keyboard.c (syms_of_keyboard): Added DEFVAR_BOOL for
+	meta-flag.  Emacs 18 had this, and I see no entry in the ChangeLog
+	saying that it was purposefully removed.
+
+1991-03-17  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* keymap.c (Fcopy_keymap, Faccessible_keymaps, describe_map,
+	append_key): Minor typos and brainos corrected.
+
+	* keyboard.c (read_char): Removed code to find the vector in a
+	(kbd-macro . VECTOR) - style macro, since the macro is represented
+	by the vector itself.
+	(read_char_menu_prompt): Changed to correctly recognize the new 
+	dense keymap structures.
+	(read_key_sequence): Changed code that checks for keymapness to
+	use get_keymap_1 instead of doing the indirection and keymapness
+	testing itself.
+	(Fcommand_execute): A keyboard macro is now a string or a vector.
+	(Fexecute_extended_command): When expanding this_command_keys,
+	remember that it is now an array of Lisp_Objects, not chars.
+
+	* doc.c (Fdocumentation): Rearranged into a switch statement, and
+	made vectors macros, not keymaps.
+
+	* eval.c (Fcommandp): Removed code to recognize 
+	(kbd-macro . VECTOR) as a command, and added code to recognize
+	vectors as commands.
+	* macros.c (Qkbd_macro): Variable deleted.
+	(syms_of_macros): Initialization of Qkbd_macro removed.
+
+1991-03-14  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* minibuf.c (keys_of_minibuf): Changed all calls to
+	initial_define_lisp_key to calls to initial_define_key.
+
+	* keymap.c (describe_map): Adjusted to handle the new style of
+	keymap.
+
+1991-03-14  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fileio.c (Fwrite_region): On VMS, don't try rewriting old version.
+
+1991-03-14  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keymap.c (Faccessible_keymaps): Adjusted to handle the new style
+	of keymap.
+	(Fwhere_is_internal): Handle the new-style of keymaps.
+	Additionally, only check to see if a match is shadowed by a
+	binding in the local keymap when LOCAL_KEYMAP is non-nil, instead
+	of comparing elt against DEFINITION yet again.
+	(describe_map_tree): Handle key sequences that are vectors, as
+	well as those that are strings.
+
+1991-03-13  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* commands.h, keymap.c (meta_map, control_x_map): Make these
+	Lisp_Objects, not Lisp_Vectors.
+	keymap.c (syms_of_keymap): Same.
+
+	* keymap.c (Fuse_global_map): There is no longer any reason to
+	insist that KEYMAP must be a dense keymap; delete the code that
+	does so.
+
+1991-03-12  Jim Blandy  (jimb at wookumz.ai.mit.edu)
+
+	* commands.h, lisp.h: Changed global_map and current_global_map	to
+	be Lisp_Objects, not Lisp_Vectors.
+	keyboard.c (read_key_sequence): Same.
+	keymap.c (Fkey_binding, Fglobal_key_binding, Fglobal_set_key,
+	Fuse_global_map, Fwhere_is_internal, describe_buffer_bindings,
+	syms_of_keymap): Same.
+
+	* keymap.c (Fdefine_key): Braino: increment idx and clear metized
+	flag even when the element of the key sequence isn't a character.
+	(Flookup_key): Fix same braino.
+
+1991-03-10  Jim Blandy  (jimb at wookumz.ai.mit.edu)
+
+	* keymap.c (get_keyelt): Use access_keymap to resolve indirect
+	entries, instead of duplicating its code.
+	(Fcopy_keymap): Handle the new keymap structure.
+
+1991-03-09  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* eval.c (struct catchtag): New field handlerlist.
+	(internal_catch, internal_condition_case): Set that field.
+	(unbind_catch): Use it.
+
+1991-03-08  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-intel386.h (signal): Maybe define if USG.
+
+	* keyboard.c (echo_char): Don't have space at end of echobuf.
+
+1991-03-07  Jim Blandy  (jimb at albert.ai.mit.edu)
+
+	* keyboard.c (syms_of_keyboard): Initialize mouse_syms, instead of
+	doing func_key_syms twice.  Don't deal with scrollbar_syms, since
+	it doesn't exist.
+
+1991-03-06  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keymap.c (access_keymap, store_in_keymap): Changed to handle the
+	new style of keymaps.
+
+	* fns.c (Fassq, Fcopy_alist): Changed docstring to promise to
+	ignore elements of LIST that are not conses.  See access_keymap
+	and copy_keymap for a cheap excuse.
+
+1991-03-06  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-vms.h (DATA_START): Remove `+ 512'.
+
+1991-03-05  Jim Blandy  (jimb at spiff.ai.mit.edu)
+
+	* keymap.c (Fmake_keymap): Rewritten to construct the
+	new dense keymap structure: (keymap VECTOR . ALIST).  Docstring
+	adjusted accordingly.  This means that the keyboard macro
+	stupidity (see Feb 27, keyboard.c) is no longer needed.
+
+1991-03-03  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sysdep.c (MEMORY_IN_STRING_H): New compilation flag.
+	* s-isc2-2.h: New file.
+
+1991-02-27  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* macros.c (Qkbd_macro): New variable, to hold the symbol
+	`kbd-macro', which we use to tag vector-style keyboard macros.
+	(syms_of_macros): Initialize and staticpro Qkbd_macro.
+
+	* eval.c (Fcommandp): Recognize the new keyboard macros.
+
+	* keyboard.c (Fcommand_execute): A keyboard macro is now a string,
+	or a cons whose car is the symbol `kbd-macro' and whose
+	cdr is a vector of events; previously, macros were strings or
+	vectors, but that makes it difficult to tell the difference
+	between macros and dense keymaps.
+	(read_char): Handle the new macros correctly, and re-allocate
+	this_command_keys correctly.
+
+1991-02-26  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-vms.h (calloc): Define like malloc, etc.
+
+1991-02-26  Jim Blandy  (jimb at spiff.ai.mit.edu)
+
+	* xterm.c (XTread_socket): Move enter_timestamp outside of the
+	function; static variables inside functions don't always work in
+	Emacs.
+
+	* editfns.c (in_accessible_range): Deleted - insufficently
+	general.
+	(clip_to_bounds): New function, much like in_accessible_range,
+	except that the upper and lower bounds are arguments.
+	(goto_char, save_restriction_restore): Rewritten to use
+	clip_to_bounds instead of in_accessible_range.
+
+1991-02-25  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keymap.c (initial_define_lisp_key): Turn KEY into a Lisp_Int
+	before passing it to store_in_keymap.
+
+	* buffer.c (reset_buffer_local_variables): Don't try to initialize
+	the buffer's mouse_map and function_key_map fields, since they
+	don't exist anymore.
+
+	* macro.c (kbd_macro_buffer, kbd_macro_ptr, kbd_macro_end): These
+	are now all pointers to Lisp_Objects instead of chars.
+	(Fend_kbd_macro): Use make_sequence.
+	(store_kbd_macro_char): Argument c is now a Lisp_Object.  Change
+	call to xrealloc to ask for Lisp_Objects instead of chars.  Set
+	kbd_macro_end to the same place in the new buffer as it was in the
+	old one, not to the end of the buffer.
+	(Fexecute_kbd_macro): Allow MACRO to be a string or a vector.
+	(syms_of_macros): Allocate Lisp_Objects instead of chars for
+	kbd_macro_buffer.
+
+	* alloc.c (make_sequence): New function, useful to keyboard.c and
+	macro.c.
+	* keyboard.c (Fread_key_sequence): Use make_sequence.
+	(Fthis_command_keys): Use make_sequence.
+
+1991-02-24  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* keymap.c (Fwhere_is): If the command can't be found, the message
+	is now "foobie is not on any key.", instead of "... any keys.".
+
+	* keyboard.c (input_poll_signal): Pass 0 to read_avail_input,
+	instead of `&junk'.  Removed variable `junk'.
+	(command_loop_1): Updated to handle the unified function key/mouse
+	event/keystroke arrangement.
+	(Finput_pending_p): Removed vestiges of code to handle
+	unread_input_char value of -1, since this doesn't happen anymore.
+	(read_char): Adapted to handle lispy events.
+	(read_char_menu_prompt): Allocate `menu' buffer using alloca,
+	instead of a variable-sized array, which is gcc-specific.
+	(Frecent_keys): Return the most recent "keystrokes" as a vector,
+	to accomodate lispy events.
+	(Fset_input_mode): Accomodate non-characters as quit keys.  If
+	this is a bad thing, init_sys_modes will tell us.
+	(init_keyboard): this_command_keys is now an array of
+	Lisp_Objects; adjust the amount of storage we request to hold it.
+	Remember that quit_char can be any keystroke.
+	(syms_of_keyboard): last_command_char, last_input_char, help_char,
+	menu_prompt_more_char and meta_prefix_char are now DEFVAR_LISPs
+	instead of DEFVAR_INTs.
+	
+1991-02-24  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): Use NETCONN_P.
+
+1991-02-23  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keyboard.c: (recent_keys, this_command_keys,
+	menu_prompt_more_char, help_char, last_command_char, quit_char,
+	last_input_char): Changed to Lisp_Objects, so we can use function
+	keys for them.
+	(Vglobal_function_map): Variable deleted.
+	(echo_char): Echo function keys too.  The argument C is now a
+	Lisp_Object instead of a char.
+	(Fread_key_sequence): Removed sludge to handle window events
+	specially, and added sludge to handle sequences with
+	non-characters in them.
+	(classify_object): Elided, since this should go away soon.
+	(read_key_sequence): Adapted to look up symbols in keymaps,
+	just like characters.
+
+1991-02-23  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (send_process): Handle EAGAIN like EWOULDBLOCK.
+
+1991-02-22  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* doc.c (substitute_command_keys): Call describe_map_tree with
+	only three arguments, since the CHARTAB arg has been disposed of.
+
+	* keymap.c (Fcurrent_global_map, Fuse_local_mouse_map): Functions
+	deleted, since the mouse maps are no longer separate from the key
+	maps.
+	(append_key): New function, which handles tacking a single
+	keystroke on the end of a key sequence, promoting strings to
+	vectors when needed.
+	(Faccessible_keymaps): Adjusted to return vectors for key
+	sequences, when necessary.
+	(Fkey_description): Removed stuff to handle mouse buttons and
+	other things specially, since this work will go into
+	Fsingle_key_description.
+	(Fsingle_key_description): SIMPLIFIED to handle everything
+	correctly!  Jeepers!
+	(Fwhere_is_internal): Scan the assoc-list at the end of dense
+	keymaps, and construct strings or vectors.
+	(where_is_string, describe_buffer_bindings): Simplified by
+	deleting code to handle mouse button bindings specially.
+	(describe_map_tree): Removed CHARTAB argument; this was
+	a kludge to print out mouse events nicely, and is no longer
+	necessary.  Nobody was using it anyway.
+	(describe_map): Removed ugly hack to handle mouse buttons
+	specially, added code to describe alists on dense keymaps, and
+	removed CHARTAB argument.
+	(describe_alist): Made to handle bindings of symbols as well as
+	characters.  Removed CHARTAB argument.
+	(describe_vector): Removed CHARTAB argument, allocated KLUDGE
+	outside of loop and GCPRO'd it.
+	(syms_of_keymap): Remove last vestiges of Vglobal_mouse_map,
+	Vmouse_button_names, Suse_local_mouse_map,
+	Scurrent_local_mouse_map.
+
+	* buffer.h (struct buffer): Removed mouse_map and function_key_map
+	members, since they are now handled by the keymap element.
+
+	* keyboard.c (syms_of_keyboard): Change initialization of
+	meta_prefix_char, since it's now a Lisp_Object.
+
+	* keymap.c (Fkeymapp): Rewrote this to use get_keymap_1; now it's
+	a one-liner instead of a 13-liner.
+	(DENSE_TABLE_SIZE): Created new constant for the # of lookup-style
+	entries in a dense keymap, and the index of the map's assoc list.
+	Used it where appropriate.
+	(Fcopy_keymap): Notice that 129'th element in dense keymaps.
+	(Fdefine_key, Flookup_key): Reworked to deal with vectors of
+	symbols and characters as well as strings for key sequences.
+	(meta_prefix_char): Changed from an int to a Lisp_Object.
+
+1991-02-21  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fileio.c (report_file_error): Don't downcase "I/O".
+
+1991-02-20  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* keymap.c (access_keymap): Allow IDX to be any sort of bindable
+	event, and deal with the extended keymaps.  IDX is now a
+	Lisp_Object instead of an int, obviously.
+	(store_in_keymap): Allow IDX to be any sort of bindable event, and
+	deal with the extended keymaps.  IDX is now a Lisp_Object.
+
+	* xterm.c (construct_mouse_click): Add code to set the up_modifier
+	bit for ButtonRelease events.
+
+	* keyboard.c (kbd_buffer_store_event): Use XFASTINT and XSETINT to
+	access event->code, since it's a Lisp_Object.
+	(kbd_buffer_read_char): Golly, perhaps we should increment
+	kbd_fetch_ptr to remove the event we just read from the queue.
+	(modify_event_symbol): Stupid fixes: correctly look up unmodified
+	symbols when cache entry has a modified symbol vector.  And, when
+	first adding the modified symbol vector, copy the old slot value
+	into it correctly.
+
+1991-02-19  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keyboard.c (command_loop_1): #if 0 the block of code which
+	handles mouse events and other lispy events specially, since I
+	hope it will go away soon.
+
+	* dispnew.c (Fsleep_for_millisecs): Pass all four arguments to
+	wait_reading_process_input, instead of just the first two.
+
+	* process.c (wait_reading_process_input): Remove support for
+	only waiting for mouse input, since that has been superceded.
+	This removes X dependencies from process.c, and eliminates some
+	references to code that should only exist when using X10.
+
+	* keyboard.c (mouse_moved_symbol, redraw_screen_symbol,
+	mapped_screen_symbol, unmapped_screen_symbol,
+	exited_window_symbol, exited_scrollbar_symbol): Renamed to
+	Qmouse_moved, Qredraw_screen, Qmapped_screen, Qunmapped_screen,
+	Qexited_window, Qexited_scrollbar, just as done in xterm.c.
+	(classify_object): Removed code to look up a function key in the
+	global and local function key keymaps, since this will be done
+	more generally.
+	(Fexecute_mouse_event): Elided this function with a #if 0;  I
+	think it will go away once the more general keymap stuff is
+	implemented, but I'm not sure.
+	(syms_of_keyboard): Removed defsubr for Sexecute_mouse_event.
+	(where_is_string, describe_buffer_bindings, syms_of_keymap):
+	Elided code to handle mouse button bindings specially; I hope this
+	will go away.
+
+	* lread.c (syms_of_lread): Change defsubr for eval-buffer to
+	defsubr for eval-current-buffer.
+
+	* keymap.c (syms_of_keymap): defvar for Vglobal_function_map
+	removed, since that variable has disappeared.
+
+	* xterm.c (x_func_key_to_sym): Removed entirely, since we no
+	longer convert X keycodes to symbols in this section of code.
+	(x_convert_modifiers): New function to turn the X modifier bits
+	into struct input_event modifier bits.
+	(encode_mouse_button): removed, since this work isn't done here
+	anymore.
+	(Vx_send_mouse_movement_events): Add an extern declaration for
+	this.
+
+	* termhooks.h: Only define struct input_event if the module
+	has previously #included lisp.h; this avoids forcing simple modules
+	like cm.c to #include lisp.h.
+
+	* term.c: #include "lisp.h" before #including "termhooks.h", since
+	the latter uses Lisp_Objects now.
+
+	* xfns.c (syms_of_xfns): Delete the defsubr for Sx_window_id,
+	since Fx_window_id is gone.
+
+	* xterm.c (construct_mouse_event): Construct a struct input_event
+	instead of a lispy event.
+
+	* screen.c (coordinates_in_window):  Added explanatory comment. 
+	(window_from_coordinates): Change PART, whose returned values are
+	dependent on X-windows, to be called MODELINE_P, with appropriate
+	new return values.
+	* xterm.c (notice_mouse_movement): Handle the X-windows dependent
+	stuff that used to be in window_from_coordinates here instead.
+	(XTread_socket): Modified to produce struct input_events
+	instead of lispy events.
+
+1991-02-18  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+        * termhooks.h: Added up_modifier to the enum for modifier bits;
+	this bit will be applied to mouse events.
+	(struct input_event): Changed specification of non_ascii_keystroke
+	events to send the function key number instead of a symbol.
+	* keyboard.c (modify_event_symbol): Re-arranged to work well
+	with function key/mouse button numbers instead of symbols.
+	And if (MODIFIERS & up_modifer), prepend "U-" to the name of the
+	symbol being constructed.
+	(make_lispy_event): Use the new modify_event_symbol.
+
+	* xterm.c (notice_mouse_movement): Adjusted this function to
+	work with a struct input_event instead of producing an
+	s-expression.
+
+	* xterm.c, xfns.c: Made all references to x_mouse_queue,
+	x_expose_queue, and the functions which manipulate them
+	conditional on having X10, since only X10 code ever places
+	anything in these queues.
+
+1991-02-15  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* termhooks.h: Define struct input_event, to represent input
+	events while they sit in the keyboard input buffer.  Using lisp
+	objects to represent input events is a bad idea because the
+	routines which enqueue them can be called from signal handlers,
+	and therefore should not cons.
+
+	* keyboard.c: (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr): Change
+	these to be of type `struct input_event *'.
+	(kbd_buffer_store_event): Manipulate struct input_events instead
+	of lisp objects.
+	(make_lispy_event): New function, to construct a lisp-style event
+	corresponding to a particular struct input_event.
+	(modify_event_symbol): New function, to add modifier prefixes to a
+	symbol, and look the new symbols up quickly if they've already
+	been created.
+	(kbd_buffer_read_char): Call make_lispy_event to turn the thing
+	in the keyboard buffer into the form that read_char is expecting.
+	(Qwith_modifier_keys): Define this new symbol variable.
+	(syms_of_keyboard): Initialize and protect Qwith_modifier_keys.
+
+	* xterm.c (init_input_symbols): Rearranged the code that produces
+	the func_key_syms array.
+	(x_func_key_to_sym): Simplified, since more will be handled in
+	make_lispy_event.
+	(XTread_socket): When handling KeyPress events, don't pass the
+	state of the modifier keys to x_func_key_to_sym, since it doesn't
+	care any more.
+
+	* sysdep.c (kbd_input_ast, end_kbd_input, read_input_waiting):
+	Rename kbd_buffer_store_char to kbd_buffer_store_event.
+
+	* keyboard.c (stuff_buffered_input): Since the keyboard buffer
+	holds lisp objects, only stuff entries that are Lisp_Ints, and
+	XINT them before passing them to stuff_char.
+	(kbd_buffer_store_char): Make this not a static function, since
+	sysdep.c calls it.  And rename it kbd_buffer_store_event.
+
+	* keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr): Made these
+	variables static, to document the fact that they're only used
+	within keyboard.c.
+
+1991-02-13  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* xterm.c (init_input_symbols): remove the `xk-' prefix from all
+	the function key symbols, since they're going to be used for
+	function keys from all sorts of terminals, not just when running
+	under X.
+
+	* lread.c (read_escape): Removed support for mouse button escapes
+	(\S-, \U-, \C- applied to digits), because they're being replaced
+	by something more rational.
+
+1991-02-09  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* buffer.c: Doc fix.
+
+	* sysdep.c (dup2): Rewrite of non-F_DUPFD case.
+
+1991-02-08  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-intel386.h (LOAD_AVE_CVT): Add extra parens.
+	* s-usg5-4.h (LIBX11_SYSTEM): #undef it.
+
+1991-02-07  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-esix.h: New version from kayvan.
+	Adds HAVE_X11 conditional, NEED_PTEM_H, USG_SYS_TIME, USE_UTIME,
+	LIBS_DEBUG; removes #undef sigsetmask, LIBS_SYSTEM, ESIX, 
+	MISSING_UTIMES.
+
+1991-02-06  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (Faccept_process_output): Second arg gives timeout.
+
+1991-02-06  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* lread.c (read_escape): Added support for \S- and \U- escapes (for
+	binding mouse buttons), and noted that \C- must work on digits.
+
+	* xterm.c (init_input_symbols): Was mistakenly renamed
+	init_inputs; named back.
+
+	* xterm.c (construct_mouse_click, encode_mouse_button): Rewritten
+	to build new-style mouse events.
+
+	* dispnew.c (update_line): Write a zero into obody[olen] to make
+	sure the lines in current_screen->glyphs remain terminated.
+	* xdisp.c (display_string, display_text_line): Don't write off
+	the end of the line and destroy the zero terminator when expanding
+	a tab.
+
+	* fns.c (Fy_or_n_p): Accept C-] (usually abort-recursive-edit) as
+	well as C-g to quit.
+
+1991-02-05  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* sysdep.c, s-aix3-1.h, s-hpux.h, s-iris3-5.h, s-iris3-6.h,
+	s-irix3-3.h, s-rtu.h, s-sunos4-1.h, s-unipl5-0.h, s-unipl5-2.h,
+	s-usg5-0.h, s-usg5-2-2.h, s-usg5-2.h, s-usg5-3.h, s-xenix.h:
+	Globally replaced INTERRUPTABLE with INTERRUPTIBLE.
+
+	* xterm.c (construct_mouse_event): Renamed to
+	construct_mouse_click, since there are kinds of mouse events
+	besides clicks (movement, for example).
+	(XTread_socket): rename calls here.
+
+	* xterm.c (mapped_screen_symbol, unmapped_screen_symbol,
+	exited_scrollbar_symbol, exited_window_symbol,
+	redraw_screen_symbol, mouse_moved_symbol): Renamed to
+	Qmapped_screen, Qunmapped_screen, Qexited_scrollbar,
+	Qexited_window, Qredraw_screen, Qmouse_moved, to agree with naming
+	conventions elsewhere in Emacs.
+
+	* xfns.c (text_part_sym, modeline_part_sym,
+	vertical_scrollbar_sym, vertical_slider_sym, vertical_thumbup_sym,
+	vertical_thumbdown_sym, horizontal_scrollbar_sym,
+	horizontal_slider_sym, horizontal_thumbleft_sym,
+	horizontal_thumbright_sym): Renamed to Qtext_part, Qmodeline_part,
+	Qvscrollbar_part, Qvslider_part, Qvthumbup_part, Qvthumbdown_part,
+	Qhscrollbar_part, Qhslider_part, Qhthumbleft_part,
+	Qhthumbright_part, to agree with the naming conventions elsewhere
+	in Emacs.
+
+	* xterm.c (XTread_socket): While handling EnterNotify events,
+	clear Vmouse_event here.
+	(notice_mouse_movement): Don't clear it here.
+
+1991-02-04  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-sunos4-0.h: Renamed from s-sunos4.h.
+	(read, write, open, close): Macro defs moved to s-sunos4-1.h.
+	(INTERRUPTABLE_*): Likewise.
+	* s-sunos4-1.h: New file.
+
+1991-02-04  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* keymap.c (Vglobal_mouse_map, Vglobal_function_map): Variables
+	removed in preparation for conversion to unified keymap format.
+	(Fmake_keymap): Make vector keymaps with 129 entries; the last
+	will be an assoc-list for looking up symbols.  Update docstring to
+	describe 129'th element.
+	(Fmake_sparse_keymap): Update docstring to say that you can bind
+	symbols in these maps too.
+	(Fkeymapp): Recognize 129-element vectors as keymaps, not
+	128-element vectors.
+	(get_keymap_1): wrong_type_argument can no longer return a new
+	value supplied by the debugger; remove loop to support this.
+
+	* xterm.c (XTread_socket): When handling EnterNotify events,
+	enqueue fake mouse events iff Vx_send_mouse_movement_events !=
+	Qnil.
+
+	* xfns.c (Fx_window_id): Function removed; Fscreen_parameters
+	already provides this information.
+
+	* xterm.c (x_term_init): Cleaned up the code to get the host name,
+	and removed fixed limit on host name length.
+
+	* window.c (Fscroll_other_window): Don't explicitly save
+	current_buffer and point; the save_excursion will take care of
+	that anyway.
+
+	* dispnew.c (safe_bcopy): Rewritten to handle overlapping regions
+	with multiple calls to bcopy instead of a stupid copy loop.
+
+	* xterm.c, xfns.c (Vscreen_part, Vx_send_movement_events): These
+	variables renamed to Vmouse_screen_part,
+	Vx_send_mouse_movement_events.
+
+	* lread.c (Feval_buffer): function deleted.
+	(Feval_current_buffer): Removed "#if 0 ... #endif" around this
+	function.
+
+1991-02-03  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* Makefile, ymakefile (SHELL): Force use of sh.
+
+	* s-usg5-4.h (USG5_4): Define it.
+	(LOAD_AVE_*): Don't define them.
+	* m-intel386.h (LOAD_AVE_*): Define, if USG5_4.
+
+	* buffer.c (Fbuffer_local_variables): Omit slots with no names.
+
+1991-02-03  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* xterm.c (x_term_init, init_input_symbols): Moved these to the
+	bottom of the file, 1) to be consistent with the other files, and
+	2) so it can initialize some variables I want.
+
+1991-02-02  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* xterm.h: Added external declaration for x_focus_screen.
+
+	* search.h: File deleted.
+	* buffer.h: declare searchbuf here instead.
+
+	* screen.c (Ffocus_screen, Funfocus_screen): Moved these functions
+	to xfns.c, since they're x-specific.
+	(syms_of_screen): Removed defsubr calls for above.
+	* xfns.c (Ffocus_screen, Funfocus_screen): Here they are.
+	(syms_of_xfns): The defsubrs are here now.
+
+	* buffer.h (PT): Make this expand to an expression which is not an
+	l-value, to prevent people from assigning to it.  If everyplace
+	uses SET_PT, it will be easier to merge in the interval code.
+	(point): Similar changes here.
+	(SET_PT): This can no longer be written in terms of PT, so write
+	out current_buffer->text.pt.
+
+	* xterm.c (x_new_font): Rewritten to remove arbitrary limit on
+	size of x_font_table.
+	(x_font_table_size): Created new variable.
+	(n_available_fonts, font_names, font_info, MAX_FONTS): Deleted
+	these variables/macros.
+
+	* dispnew.c (scroll_screen_lines): Instead of disabling the lines
+	vacated by the scroll (i.e. zeroing enable), mark them as enabled
+	but empty.
+
+	* callint.c (Fcall_interactively): Move UNGCPRO down, so that
+	stuff is protected while we build the command history entry and do
+	the function call.
+
+	* xterm.c (XTupdate_end): Turn cursor on, even if we don't
+	currently have the focus.
+
+	* minibuf.c (temp_echo_area_glyphs): Clear echo_area_glyphs and
+	previous_echo_glyphs, so the message we're displaying will
+	supercede any existing message.
+
+	* keyboard.c: Removed external declaration of echo_area_glyphs,
+	since it's declared in window.h.
+
+1991-01-31  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* xterm.c (XRINGBELL): Pass 0 as the second argument to XBell;
+	respect the user's preferences.
+
+1991-01-30  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* xterm.c (x_draw_single_glyph): New function, created to simplify
+	cursor drawing/undrawing.
+	(x_display_box_cursor): Rewritten to properly handle the box
+	cursor in its filled and hollow forms.
+	* xterm.h (enum text_cursor_kinds): Added enum for the different
+	kinds of cursors which might be displayed in a window.
+	(struct x_display): added member `text_cursor_kind' which says
+	which kind of cursor is currently being displayed in the window, so
+	we can arrange to redraw it effectively.
+
+	* keyboard.c (command_loop_1): When handling the forward_char
+	command, don't let point move to the location after the end of the
+	buffer.
+
+	* keyboard.c (poll_suppress_count): Define this even if
+	POLL_FOR_INPUT is not defined, because this makes lots of #ifdef
+	clauses unnecessary, and doesn't hurt, because
+	{start,stop}_polling become nops.
+
+	* config.h, config.h-dist: Make these #include "system.h" and
+	"machine.h", and let the config script link these appropriately,
+	instead of using the machine-specific names and expecting the user
+	to edit this file.
+
+1991-01-29  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* window.c (Fdelete_window): sib is a Lisp_Object; treat it as
+	such.
+
+	* xterm.c (screen_unhighlight): When the focus leaves a screen,
+	draw the cursor as a box instead of making it disappear entirely.
+
+1991-01-29  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* unexec.c (make_hdr) [TPIX]: Set f_hdr.f_nscns and f_thdr.f_scnptr.
+
+	* sysdep.c [BROKEN_TIOCGWINSZ]: Undef TIOCGWINSZ.
+
+	* process.c (wait_reading_process_input): Don't ignore
+	a zero-length read on a network connection.  Do close it.
+
+	* sysdep.c (hft_init, hft_reset): Pass &junk as arg to HFQERROR.
+	Do nothing if not HFT.
+
+1991-01-29  Jim Blandy  (jimb at albert.ai.mit.edu)
+
+	* xfns.h: Created, to declare things defined in xfns.c.
+	Declare Vx_send_movement_events.
+	* xfns.c: #include "xfns.h".
+	(Vx_send_movement_events): Define this variable.
+	(syms_of_xfns): DEFVAR_LISP it.
+	* xterm.c: #include "xfns.h".
+	(XTread_socket): Place a mouse-moved event in the buffer iff
+	Vx_send_movement_events says to.
+
+1991-01-28  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* ymakefile: noted that callint.o depends on mocklisp.h,
+	and dired.o on search.h.
+
+	* environ.h: Deleted - its creation in the first place was misguided.
+	callproc.h: Removed #include "environ.h", and added declarations
+	for environ.h
+
+	* buffer.c (syms_of_buffer): Add more detailed documentation to
+	buffer-undo-list.
+
+	* lisp.h (poll_suppress_count): Add external declaration for this here.
+
+1991-01-28  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-sun3-68881.h, m-sun3-fpa.h, m-sun3-soft.h: New files.
+
+1991-01-27  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* lisp.h (struct handler): add poll_suppress_count member, so
+	we can restore poll_suppress_count when we handle an error.
+	* eval.c (struct catchtag): Add it here too, for throws.
+	(internal_catch, Fcondition_case, internal_condition_case): Record
+	the value of poll_suppress_count here in the handler and catch tag.
+	(Fthrow, Fsignal): Restore it here.
+
+1991-01-25  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* xterm.c (x_display_box_cursor): If we're undrawing the cursor by
+	redrawing the character underneath it, draw according to that
+	line's highlight, instead of assuming it's in the normal GC.
+
+1991-01-25  Richard Stallmao  (rms at mole.ai.mit.edu)
+
+	* buffer.h (PTR_CHAR_POS): Value was too small by 1.
+
+1991-01-16  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* doprnt.c (doprnt): Check for overflow in fmtcpy.
+
+1991-01-16  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* window.c (Fdelete_window): If the deletee gives its space to its
+	next sibling, that sibling needs to have its top/left side pulled
+	back to where the deletee's is.
+
+1991-01-15  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* doc.c (Fsnarf_documentation): handle attaching docstrings to
+	bytecode objects too.
+
+	* syntax.h (syntax_spec_code): make external declaration for this
+	unsigned char to match the definition in syntax.c.
+
+	* indent.c (compute_motion): added comments describing how it
+	can be used.
+
+1991-01-15  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (create_process): Use SETUP_SLAVE_PTY if defined.
+
+	* s-usg5-4.h (HAVE_PTYS, HAVE_SETSID): Defined.
+	(HAVE_WAIT_HEADER, WAITTYPE, wait3, WRETCODE): New macros.
+	(TIOCSIGSEND): Alias for TIOCSIGNAL.
+	(FIRST_PTY_LETTER): Overridden.
+	(PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF, SETUP_SLAVE_PTY): New macros.
+
+	* m-ibmrs6000.h	(CANNOT_DUMP): Undefine it.
+	(UNEXEC): Define it.
+	(PURE_SEG_BITS, SHMKEY): Define only if CANNOT_DUMP.
+	(LINKER): Override it.  Then add -bnodelcsect.
+
+	* xfns.c (Fx_get_default): Try reversing XGetDefault args if it fails.
+
+1991-01-13  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-usg5-4.h (LOAD_AVE_CVT): Cast value to int.
+
+	* keyboard.c (read_avail_input): Signal SIGHUP if FIONREAD fails.
+
+	* ymakefile: Put tokens after #endif into comment.
+
+	* filelock.c (lock_file_owner_name): Declare argument type.
+
+	* syntax.c (syntax_spec_code): Type now unsigned char.
+
+	* process.c (wait_reading_process_input):
+	Call status_notify even when not doing redisplay.
+
+	* emacs.c (Fkill_emacs): Turn off SIGIO before exiting.
+
+	* s-usg5-3.h (USG5_3): Define it.
+	* m-ibmps2-aix.h [USG5_3]: Define TEXT_START as 0.
+	Don't define DATA_START or DATA_END or TEXT_END or DATA_SEG_BITS.
+	Override various other symbols at end of file.
+
+1991-01-12  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* window.c (window-configuration-p): Closing paren needed.  Added.
+
+	* keyboard.c (command_loop_1): When displaying a message over an
+	active minibuffer, call Fsit_for with three arguments, not two.
+
+1991-01-12  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-irix3-3.h (HAVE_SYSVIPC): Defined.
+
+1991-01-12  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* dispnew.c (buffer_posn_from_coords): compute_motion starting
+	from bufp[y] instead of counting from the top of the window.
+
+1991-01-11  Richard Mlynarik  (mly at pizza.ai.mit.edu)
+
+        * window.c (window-configuration-p):  Needed.  Added.
+
+1991-01-11  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* dispnew.c (buffer_posn_from_coords): Remember to deduce space
+	for the line continuation markers and the window separators from
+	the window width.
+
+1991-01-11  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-tower32v3.h (VALBITS, GCTYPEBITS): Use 26 bits for pointer.
+
+1991-01-10  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fileio.c (Fcopy_file): Always close descriptors.
+
+	* s-sunos4.h: read, write, open and close are interruptable.
+
+1991-01-09  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* xterm.c, dispnew.c (pixel_to_char_translation): Renamed to
+	pixel_to_glyph_translation, and rewritten.  Just get coordinates,
+	don't return anything.
+	(buffer_posn_from_coords): New function - given a window and
+	co-ordinates on the screen, find the buffer position at those
+	co-ordinates. 
+
+1991-01-08  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* alloc.c (Fmake_byte_code): Flesh out docstring.
+
+	* window.c (window_loop): pick the first window correctly, even
+	when screen == 0.
+
+	* dispnew.c (scroll_screen_lines): Don't forget to call
+	update_begin at the top of the down-scrolling section.
+	And rotate by amount, not -amount, in the up-scrolling section.
+
+	* xterm.h (MAX_FONTS, x_font_table, n_fonts): Removed external
+	declarations for these variables, since they're declared static in
+	xterm.c and not used elsewhere.
+	* xterm.c (MAX_FONTS): Moved definition of this to here from
+	xterm.h.
+
+	* xterm.c (x_new_font): If you can't find the requested font,
+	return a code which indicates this, instead of calling abort.
+
+1991-01-07  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* xdisp.c (redisplay, display_mode_line): To test
+	Vglobal_minibuffer_screen for validity, you must check that its
+	type is Lisp_Screen; comparing it to Qnil isn't good enough.
+
+	* screen.c (syms_of_screen): Initialize Vglobal_minibuffer_screen
+	to Qnil; otherwise, it inhibits decent redisplay (is that another
+	bug?)
+
+	* dispnew.c (init_display): Make sure that the standard input is a
+	terminal here.
+	* emacs.c (main): Not here, since we don't know yet if we want to
+	use a window system of some sort.
+
+	* xfns.c (x_make_gc): Delete code to support default_face and
+	highlight_face, since they're part of the interval code, and
+	shouldn't be installed yet.
+
+	* dispnew.c (init_display): calculate_costs expects a screen
+	parameter; pass selected_screen, instead of nothing.
+
+	* search.c (Freplace_match): Protect STRING.
+	* process.c (run_filter): New function.
+	(read_process_output, exec_sentinel): Use run_filter to call the
+	process's filter function. 
+ 	(status_notify): GCPro MSG.
+ 	* process.c (Fopen_network_stream): Protect various args.
+	* print.c (Fprin1_to_string, Fprint): Protect OBJ.
+	* lread.c (Feval_region): Check type of B.
+	* keymap.c (describe_alist): Protect ELT_PREFIX and TEM2.
+	(describe_vector): Likewise for ELT_PREFIX and TEM1.
+
+1991-01-06  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sysdep.c (init_sys_modes): Turn off VSUSP and V_DSUSP if they exist.
+	Only on a MIPS.
+
+1991-01-05  Jim Blandy  (jimb at spiff.ai.mit.edu)
+
+	* xselect.c (x_answer_selection_request): For incremental, set
+	format to 32 and send only 1 element.  Pass the address of size,
+	not size itself.
+	(x_selection_arrival): For incremental, delete the property
+	containing the size of the transfer.  This generates a
+	PropertyNotify to the owner, starting the exchange.
+
+	* xrdb.c (get_user_app): Pass correct number of parameters to
+	sprintf.
+
+	* xfns.c (x_window): Don't use backing store or saveunders; they
+	seem to slow down suns.
+	(x_icon): Set the InputHint to the window manager to False.
+	(x_make_gc): Initialize gc_values.line_width to zero before
+	creating the normal video GC, since it uses it.  And set the
+	default_face and hilite_face gcs here.
+	(install_vertical_scrollbar): Add 2 to thumbdown y position, and
+	don't add ibw.
+
+	* insdel.c (insert, del_range): Use SET_PT rather than assigning
+	point directly.
+	* window.c (Fselect_window): Here too.
+
+	* xdisp.c (redisplay_all_windows): removed static declaration for
+	this nonexistent function.
+
+1991-01-04  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* window.c (window_loop): neatened up.  MINI being non-zero now
+	makes it recognize active minibuffer windows.  Iterates properly
+	over multiple screens when asked nicely.
+	(Fget_lru_window, Fget_largest_window): SCREENS arguments are now
+	declared as a Lisp_Object, and documented.
+	(Fget_buffer_window): SCREENS argument is now documented.
+	(Fdelete_other_windows): Delete other windows on the argument
+	window's screen, not the current screen.
+
+	* screen.c (window_from_coordinates): Changed other reference to
+	Fnext_window to use next_screen_window; see below.
+
+	* window.c (Fnext_window, Fprevious_window): Accept non-nil, non-t
+	values for mini, and don't turn off all-screens when mini is t but
+	there is no global minibuffer screen.  Remove screen_{root,mini}
+	variables.
+	(Fother_window): Added second argument all_screens.
+
+	* undo.c (record_delete): Removed dead variable llength.
+
+	* data.c (Qkeyp, Fkeyp): Removed these and supporting code.
+	* keymap.c (Fsingle_key_description): Report an error instead of
+	calling wrong_type_argument.
+	* lisp.h (Qkeyp): Removed external declaration for this.
+	
+1991-01-03  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* search.c (search_buffer): Return starting position if count == 0.
+
+1991-01-02  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* scroll.c (do_scrolling): Use correct limits on loop to clear
+	lines just inserted--old version lost a line.
+
+	* screen.c: #ifdef HAVE_X_WINDOWS, #include xterm.h
+	(Ffocus_screen, Funfocus_screen): use Joe's new definitions, and
+	only define these functions ifdef HAVE_X_WINDOWS.
+	(window_from_coordinates): use next_screen_window instead of
+	Fnext_window, so that global minibuffers work.
+
+	* lread.c (syms_of_read): Don't forget to defsubr
+	read-char-exclusive.
+
+	* lisp.h (Fscreenp, Fselect_screen, Ffocus_screen,
+	Funfocus_screen, Fselected_screen, Fwindow_screen,
+	Fscreen_root_window, Fscreen_selected_window, Fscreen_list,
+	Fnext_screen, Fdelete_screen, Fread_mouse_position,
+	Fset_mouse_position, Fmake_screen_visible, Fmake_screen_invisible,
+	Ficonify_screen, Fdeiconify_screen, Fscreen_visible_p,
+	Fvisible_screen_list, Fscreen_parameters,
+	Fmodify_screen_parameters, Fscreen_pixel_size, Fscreen_height,
+	Fscreen_width, Fset_screen_height, Fset_screen_width,
+	Fset_screen_size, Fset_screen_position, Fcoordinates_in_window_p,
+	Flocate_window_from_coordinates, Frubber_band_rectangle): added
+	extern declarations for all these.
+
+	* lisp.h (Qscreenp): added an extern declaration for this.
+
+	* lisp.h (DBL_DIG): Added constant for the maximum number of
+	decimal digits a float could print to.  Used in print.c.
+
+	* keymap.c (Fkey_description): Produce pretty descriptions of
+	mouse and window system events too.
+	(Fsingle_key_description): signal an error if obj is not a key.
+
+	* data.c (Fkeyp, Qkeyp): Added predicate to recognize things which
+	can be bound - this includes keys, symbols (for function keys and
+	window system events), and conses (for mouse events).
+	* lisp.h (Qkeyp): Added external declaration for this.
+
+	* keyboard.c (Frecursive_edit): Don't specbind the standard IO here.
+	(recursive_edit_1): Do it here, and don't forgot to unbind_to.
+
+	(command_loop_1): Reset no_redisplay after mouse commands.
+
+	(classify_object): Place the object in read_key_sequence_cmd.
+
+	(Fread_key_sequence): recognize that when read_key_sequence
+	returns -1 or -2, it's a mouse event or window system event.
+
+1991-01-01  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* fileio.c (Fwrite_region): We should dereference GPT_ADDR[-1]
+	before comparing it to '\n' for VMS cruft.
+	(Fdo_auto_save): Don't call run-hooks before it's defined.  This
+	only happens before emacs is dumped, when loading inc-vers.el.
+
+ 	* eval.c (Fsignal): TOTALLY_UNBLOCK_INPUT here.
+	(error): Not here.
+
+	(Feval): We use argvals[0..5], so declare it to have six elements
+	instead of just five.
+
+1990-12-30  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* eval.c (Fsignal): Don't ever return.
+	Call error instead if user tries to use debugger to return.
+
+	* eval.c (unbind_to): New second arg is value to return.  gcpro it.
+	All callers changed to pass the arg; if a caller uses unbind_to
+	just before returning, it passes as this arg the value it wants
+	to return, then it returns whatever comes back.
+
+1990-12-28  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* print.c (print): put obj in a non-register variable so
+	we could gcpro it.  Also fixed some syntax errors.
+
+	* editfns.c (Fformat): declare nstrings, and declare nstrings and
+	strings in a local block.
+	(Fformat): XFLOAT(args[n]) isn't a float; ->data is.
+
+1990-12-27  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-tower32.h: Add comments for how to optimize.
+	* m-tower32v3.h: New file.
+
+	* fileio.c (Fwrite_region): Save errno around unlock_file.
+
+1990-12-26  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* editfns.c (Fformat): Handle floats.  Convert between int and float.
+	Don't truncate value at null char coming from doprnt.
+	* doprnt.c (doprnt): Replace tembuf with malloced buff if too small.
+	Handle %e, %f and %g.
+
+1990-12-25  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* abbrev.c (Fexpand_abbrev): Use insert_from_string, not insert.
+	(Funexpand_abbrev): Likewise.
+	* doc.c (Fsubstitute_command_keys): Likewise.
+	* editfns.c (Finsert, Finsert_before_markers): Likewise.
+	* minibuf.c (Fminibuffer_complete_word): Likewise.
+	* mocklisp.c (Finsert_string): Use insert1.
+	* vmsfns.c (Fdefault_subproc_input_handler): Likewise.
+
+	* print.c: Don't use strout for the text of a Lisp string.
+	(print_string): New function to use instead.
+	(print): Use print_string when no escapes needed.
+	When printing with escapes, protect the string and check addr often.
+
+1990-12-24  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* insdel.c (insert_from_string): New function.
+
+1990-12-20  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* term.c (ins_del_lines): Handle scroll region wrt chars_wasted.
+
+1990-12-16  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* Globally renamed InsStr to insert_string.
+
+1990-12-15  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-usg5-3.h (USG_SHARED_LIBRARIES): Define it.
+
+	* m-intel386.h (C_SWITCH_MACHINE): New macro.
+
+1990-12-15  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* alloc.c (STRING_FULLSIZE): Use sizeof(struct Lisp_String)
+	instead of sizeof(int).
+
+1990-12-14  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keyboard.c (Fread_key_sequence): Clear this_command_key_count
+	here; who unfixed this?
+
+1990-12-12  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* abbrev.c (Fdefine_abbrevs): Don't crash when EXPANSION is nil.
+
+1990-12-11  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* eval.c (Fmacroexpand): Change handling of (foo . bar) in ENV.
+
+1990-12-10  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-pmax.h (SYSTEM_MALLOC): Define it.
+
+	* process.c (wait_reading_process_input): Ignore failure with EIO.
+
+1990-12-09  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-iris4d.h (LOAD_AVE_CVT): Divide by 1024.
+	(LIB_STANDARD): Use -lbsd first.
+	(LIBS_MACHINE): Don't use -lbsd here.
+	* s-irix3-3.h (ADDR_CORRECT): Macro deleted.
+	(LIBS_MACHINE): Macro deleted.
+	(LDAV_SYMBOL): Delete the `_' from start of symbol.
+
+	* process.c (create_process): Delete duplicate sigsetmask.
+
+	* m-ibmrt.h (RTPC_REGISTER_BUG, SHORT_CAST_BUG): Macros deleted.
+	(C_SWITCH_MACHINE): Use -D to define alloca.
+	(SIGN_EXTEND_CHAR): Use a cast.
+
+1990-12-05  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+     	* keyboard.c (Fsuspend_emacs): Protect STUFFSTRING.
+	(cmd_error): Protect TAIL while printing.
+	(input_poll_signal, start_polling): Use polling_period.
+	(syms_of_keyboard): Initialize it and make it a Lisp var.
+
+	* fns.c (Fyes_or_no_p): Protect PROMPT for entire loop.
+
+	* fileio.c (Frename_file): Protect args.
+	* fileio.c (Fadd_name_to_file): Protect the args.
+	(Fcopy_file, Fmake_symbolic_link): Likewise.
+	(Finsert_file_contents): Protect FILENAME.
+
+1990-12-04  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* eval.c (Fbacktrace): gcpro TAIL.
+	* emacs.c (Fkill_emacs): gcpro ARG.
+	* editfns.c (Fformat): remove remains of gcpro'd args.
+
+	* dispnew.c (syms_of_dispnew): Don't clobber Vwindow_system_version
+	if CANNOT_DUMP.
+
+	* dired.c (file_name_completion): Check that FILE is a string.
+
+	* buffer.c (Fbury_buffer): Don't init BUF1.
+
+	* doc.c (Fsubstitute_command_keys): Protect STR and don't keep a
+	pointer to the middle of it.
+
+	* m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Override for BSD.
+
+	* process.c (sigchld_handler): Clear synch_process_alive if the
+	dying process isn't in the table at all.
+	* callproc.c (call_process_cleanup): Clear synch_process_alive.
+
+1990-12-03  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* callproc.c (Fcall_process): change synch_process_pid to
+	synch_process_alive, as a general flag that we are waiting for
+	a synchronous process to die.  This obviates the need to block
+	SIGCHLDs until we know the pid.
+	* sysdep.c (wait_for_termination): wait for synch_process_alive	to
+	be false.
+
+	* process.c (sigchld_handler): If pid not recognized, look for a
+	process recorded with pid -1.
+	(create_process): Set pid to -1 before the fork.
+	Store correct pid right after the fork.
+	Don't change sigchld handler on system V.
+
+	* process.c (Fstart_process): Set BUFFER before other string vars
+	so a gc in Fget_buffer_create won't clobber them.
+
+1990-11-30  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* keyboard.c (read_command_char): Save and restore getcjmp.
+
+1990-11-29  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (status_convert): Use WRETCODE for exited process.
+
+1990-11-26  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* s-usg5-4.h (LIB_STANDARD): Add libucb.a.
+	(NEED_PTEM_H): Define this instead of NEED_SIOCTL.
+	* m-ibm370aix.h, m-ibmps2-aix.h, m-ibmrs6000.h (NEED_SIOCTL):
+	Undefine this.
+	(NEED_PTEM_H): Likewise.
+
+	* s-sunos4.h (O_NDELAY): Don't define this.
+
+	* print.c (Fwith_output_to_temp_buffer): Don't eval first arg twice.
+
+1990-11-22  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Alternate defs for BSD.
+
+1990-11-21  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* dispnew.c (init_display): Check if we're using a window system
+	before trying to initialize the terminal.  If someone has
+	indicated that they want to use a window system, we shouldn't
+	bother initializing the terminal.  This is especially important
+	when the terminal is so dumb that emacs gives up and doesn't bother
+	using the window system.
+
+1990-11-20  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* print.c (Fexternal_debugging_output): added new function which
+	writes a character to stderr, for use when debugging emacs with
+	gdb.
+
+1990-11-14  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* dispnew.c (window_change_signal): used to assume that SIGWINCHes
+	always applied to the currently selected screen.  Now it scans the
+	list of screens for a screen controlled by termcap, and changes that
+	screen's size.
+
+1990-11-13  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fileio.c (err_str): New macro.
+	(Finsert_file_contents, Fwrite_region): Use it in error messages.
+
+1990-11-12  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* insdel.c (del_range): Supply missing arg to gap_left.
+
+1990-11-11  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* regex.c: Disabled definition of NULL from lisp.h
+
+	* crt0.c (_start): added static declaration of start1.
+
+	* xfns.c: added definition for Vbar_cursor.
+	(syms_of_xfns): Added DEFVAR_LISP clause for Vbar_cursor.
+
+	* xterm.c (XTread_socket): passed &event.xkey instead of &event to
+	XLookupString, so things will typecheck nicely.
+
+	* Globally rewrote all references to Vmouse_buffer to use the
+	buffer viewed by Vmouse_window instead.
+
+	* alloc.c (xmalloc, xrealloc): removed calls to
+	{un,}hold_window_change.  The new SIGWINCH-handling code and
+	do_pending_window_change make them unnecessary.
+
+1990-11-11  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): Make Available static;
+	don't clear when a nonzero bit is found.
+
+	* fns.c (Fnthcdr): Stop loop if reach end.
+
+	* dispnew.c: Include fcntl.h if HAVE_TERMIO.
+
+1990-11-10  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* alloc.c (make_uninit_string): No longer declared static, and
+	extern declaration added to lisp.h.  It's used in dired.c.
+
+1990-11-08  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* dispnew.c (do_pending_window_change): Changed incorrect call to
+	change_window_size_1 into a loop which scans list of screens and
+	resizes those that need resizing.
+
+1990-11-06  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-ibmrs6000.h (CANNOT_DUMP): Define it.
+
+	* process.c (create_process): Unblock SIGCHLD in the child.
+
+	* process.c (wait_reading_process_input): Don't read input
+	from more than one process between calls to `select'.
+
+1990-11-02  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* callint.c (syms_of_callint):
+	Initialize Vprefix_arg and Vcurrent_prefix_arg.
+
+1990-11-01  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* dired.c (Fdirectory_files): Avoid using MAXNAMLEN.
+
+1990-10-31  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* process.c (MAXDESC): Enclosed definition in `#ifndef ... #endif'
+	clause.
+
+	* bytecode.c: Included syntax.h to declare syntax_code_spec.
+
+	* syntax.h (syntax_spec_code): Added extern declaration for this.
+
+	* floatfns.c (float_error): Added static declaration for this at
+	the top of the file.
+
+1990-10-29  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* indent.c (position_indentation): renamed stray `bf_cur' to
+	`current_buffer', and old `CharAt' usages to `FETCH_CHAR'.
+	* buffer.c (Fbuffer_disable_undo): the symbol object for this
+	subroutine was still named Sbuffer_flush_undo, and the symbol's
+	lisp name was similarly out of date.  Renamed both, and added an
+	alias in lisp/subr.el .
+
+	* keyboard.c (Fset_input_mode): a `meta_flag' had escaped being
+	renamed to `meta_key'.
+
+1990-10-29  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (Fprocess_send_region, Fprocess_send_string):
+	Break data into bunches less than 500 bytes.
+	Accept process output between bunches.
+	??? Must update manual.
+
+1990-10-29  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* window.c (Fset_window_start, window_scroll): renamed stray
+	references to `redo_mode_line' to `update_mode_line'.
+
+	* xdisp.c (decode_mode_spec): renamed stray references to `bf_cur'
+	and `bf_modified' to `current_buffer' and `MODIFF'.
+
+1990-10-25  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* environ.h: file created - contains declarations for users of the
+	environment variable list.
+	* callproc.c (environ): removed extern declaration of environ, and
+	included environ.h.
+
+1990-10-24  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* callproc.c (init_callproc): removed extern declaration of
+	environ - it's already taken care of at the top of the file.
+
+	* mocklisp.h: file created - externally declares certain
+	functions defined in mocklisp.c.
+	* lisp.h (Fread_buffer, Fread_key_sequence): added extern
+	declarations for these functions.
+	* callint.c (ml_apply, Fread_buffer, Fread_key_sequence): removed
+	extern declarations for these functions, included mocklisp.h.
+	Moved external declaration of index to top of file.
+
+1990-10-24  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* ymakefile (GNULIB_VAR): New make variable.
+	(LIBES): Use that, not GNULIB directly.
+	(GNULIB): Don't define if already defined.
+
+1990-10-23  Jim Blandy  (jimb at geech.ai.mit.edu)
+
+	* indent.h (last_known_column_point): added extern declaration for
+	this variable.
+	buffer.c (last_known_column_point): removed extern declaration for
+	this variable, included indent.h.
+	(Vprin1_to_string_buffer): removed extern declaration - it's
+	already in lisp.h.
+
+	* lisp.h (catchlist, backtrace_list, stack_bottom,
+	current_global_map): added extern declarations for these
+	variables.
+	* alloc.c: removed external declarations for catchlist,
+	backtrace_list, and stack_bottom, since this file includes
+	lisp.h.
+	* callint.c: (current_global_map): removed extern declaration.
+
+	* search.h: new file - declares searchbuf.
+	* dired.c (Fdirectory_files): removed extern declaration of
+	searchbuf, included search.h.
+
+	* Globally renamed `CHAR_AT_POSITION' to `FETCH_CHAR'.
+
+1990-10-22  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* keyboard.c (quit_char): New variable.
+	(init_keyboard): Initialize it.
+	(Fset_input_mode): New optional arg to set quit_char.
+	(command_loop_1, read_char, kbd_buffer_store_char):
+	(read_avail_input): Use quit_char, not C-g.
+	* sysdep.c (init_sys_modes): Use quit_char to set special chars.
+	* xterm.c (x_term_init): Pass new arg to Fset_input_mode.
+
+1990-10-22  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* xdisp.c: added `extern' declaration for command_loop_level.
+
+	* term.c (term_init): Internal cleanups.
+	(write_glyphs): renamed argument `start' to `string'.
+
+1990-10-21  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* xterm.c (FIONREAD): Undefine if BROKEN_FIONREAD.
+	(SIGIO): Undefine if no FIONREAD.
+	(ioctl.h, termio.h, strings.h, string.h): Include them before those.
+
+	* alloc.c (make_vector_from_string, Fvector_from_string):
+	Functions deleted.
+
+	* sysdep.c (select): Handle timeout == 0.  Add var local_timeout.
+
+	* alloc.c (make_uninit_string, make_float): Use VALIDATE_LISP_STORAGE.
+	(Fcons, Fmake_vector, Fmake_symbol, Fmake_marker): Likewise.
+	(Fmake_vector_from_list): Likewise.
+	(VALIDATE_LISP_STORAGE): New macro.
+
+1990-10-20  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* dispnew.c (scrolling): Give up if some new lines not enabled.
+	(update_screen): Rework outq logic.
+
+	* xdisp.c (message, message1): Clear noninteractive_need_newline.
+
+1990-10-19  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* scroll.c (do_scrolling): allocate queue using alloca instead
+	of variable-sized arrays.
+
+1990-10-19  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* buffer.c: Doc fix.
+
+1990-10-18  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* print.c (internal_with_output_to_temp_buffer): install an
+	unwind_protect to make sure the current buffer is restored.
+
+	* minibuf.c (read_minibuf): call recursive_edit_1 instead of
+	Frecursive_edit, to support the new command_loop_level
+	arrangement.
+
+	* malloc.c (calloc): Added this function, in case something linked
+	with emacs calls it.
+
+	* lread.c (openp): Since access returns 0 on success, change that
+	into a 1 before returning it.
+
+	* lisp.h: deleted DEFSIMPLE and DEFPRED, since they're no
+	longer used.
+
+1990-10-18  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-intel386.h (alloca): Define as builtin, if using GCC.
+
+	* m-att3b.h (NEED_PTEM_H): Define this for 3b2.
+
+	* s-aix3-1.h (SYSV_SYSTEM_DIR): Define it.
+
+	* print.c (print): Improve error message for bad data type.
+
+1990-10-18  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keymap.c (Flookup_key): rearranged to use an index into the key
+	sequence instead of a pointer and a level counter.
+
+1990-10-18  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* floatfns.c (sinh, cosh): On VMS, define to use exp.
+	(IN_FLOAT): Detect errors reported using errno.
+	(float_error): Define function unconditionally.
+	Reestablish handler when called, if not BSD.
+
+1990-10-17  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-delta.h (C_DEBUG_SWITCH): Don't define this.
+
+1990-10-17  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keyboard.c (command_loop): made call to command_loop_2
+	conditional on minibuf_level too (it used to be only conditional
+	on command_loop_level), since this is what 18.56 and all the other
+	functions in Emacs 19 keyboard.c do.
+
+1990-10-16  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keyboard.c (read_char): Don't echo dash if there is already
+	something else being displayed in the echo area.
+
+1990-10-16  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (status_convert): If killed by signal, use WTERMSIG.
+
+	* data.c (arith_error): Reestablish handler on VMS.
+
+	* keyboard.c (start_polling, stop_polling): New functions.
+	(input_poll_signal): New function, handles periodic alarms.
+	(read_command_char): Turn off polling temporarily.
+	* xdisp.c (redisplay): Likewise.
+	* process.c (wait_reading_process_input, create_process): Likewise.
+
+1990-10-16  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* indent.c (position_indentation): instead of using CharAt, use a
+	pointer to scan the buffer - this is faster.
+
+	* emacs.c (Fdump_emacs): The conditional expression which passes
+	symname to unexec was missing a `: 0'.
+
+	* dispnew.c (rotate_vector): Was rotating backwards.
+
+1990-10-15  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* dired.c (file_name_completion): Use scmp to compare names.
+
+1990-10-15  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* process.c (create_process): Don't turn off handling of SIGCHLD.
+	Just set a flag if a signal comes in when not wanted.
+	(create_process_sigchld): New signal handler.
+
+1990-10-14  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* bytecode.c: De-implement Bmark, Bset_mark, Bscan_buffer.
+	Mark Bsymbol_function, Bfset, Bread_char as obsolete.
+	Implement codes Bmult, Bforward_char...Bwiden,
+	and Bstringeqlsign...Bintegerp.
+
+1990-10-12  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* buffer.c (list_buffers_1): Select the buffer given in
+	Vstandard_output using Fset_buffer instead of set_buffer_internal.
+
+	* buffer.c (set_buffer_internal): deleted variable swb - it's
+	never used.
+
+	* buffer.c (count_modified_buffers): function deleted - it's
+	not used anymore.
+
+1990-10-11  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* buffer.c (reset_buffer_local_variables, buffer_local_variables):
+	added support for default values for buffer local variables which
+	do not have a DEFVAR_PER_BUFFER, as described in the comments
+	above buffer_local_flags.
+
+	* buffer.c (Fget_buffer_create): move initialization of
+	b->save_length and b->last_window_start to reset_buffer.
+
+1990-10-11  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-ibmps2-aix.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Define them.
+	(C_DEBUG_SWITCH): Delete -fstrength-reduce.
+
+	* unexmips.c (unexec): Add conditional for MIPS2.
+
+1990-10-10  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-iris4d.h (LIBS_MACHINE): Use -lsun, don't use -lPW.
+
+	* unexelf.c: New file.
+	* s-usg5-4.h: New file.
+	* unexec.c [USG_SHARED_LIBARARIES]: Numerous changes under this cond.
+	(copy_text_and_data): New second argument.
+
+1990-10-10  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+        * alloc.c (gc_sweep): only unchain markers that are in a buffer.
+
+1990-10-10  Mike Rowan  (mtr at apple-gunkies)
+
+	* process.c: Merged in more changes from 18.56: update_status,
+	FD_SET changes (define all the FD_ macros).  Other small changes.
+
+1990-10-09  Jim Blandy  (jimb at churchy.ai.mit.edu)
+
+	* xdist.c: (decode_mode_spec): reworked code to handle %* - it now
+	goes like `if return else if return else ... return' instead of
+	using a conditional operator.
+
+	* xdist.c: (fmodetrunc): function deleted - no longer used.
+
+1990-10-09  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* xdisp.c (decode_mode_spec): Handle dashes in wide windows.
+
+1990-10-08  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sysdep.c (sys_open, sys_close, sys_read, sys_write):
+	Don't handle EAGAIN.
+
+	* process.c (wait_reading_process_input): Handle nread==-1
+	for O_NDELAY like O_NONBLOCK.
+
+	* s-vms.h (LINK_CTRL_SHARE): Turn on again.
+	tranle@intellicorp.com found it needed in VMS 5.3.
+
+	* emacs.c (main): Move VMS declaration of environ outside function.
+
+	* vmsfns.c (Fdefault_subproc_input_handler): InsCstr -> insert.
+
+1990-10-07  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-pmax.h (START_FILES): Handle crt0.o in different dir in Ultrix 4.0.
+
+	* s-sunos4.h (O_NDELAY): Define only if not defined.
+
+1990-10-06  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* sysdep.c (tabs_safe_p, get_screen_size): renamed `sg' to `tty'.
+
+	* sysdep.c (init_baud_rate): rearranged code for calculating
+	baud_rate.
+
+1990-10-05  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* search.c (Freplace_match): used Finsert_buffer_substring instead
+	of place and deleted place.
+
+	* search.c (place): function removed
+
+	* process.c (count_active_processes): Deleted; not used.
+
+	* minibuf.c (read_minibuf): renamed `prefix' argument to `initial'.
+
+1990-10-01  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* lread.c (Fload): renamed `MISSING-OK' to `NOERROR'.
+
+	* keyboard.c (describe_map): renamed `keys' to `string'.
+
+	* keyboard.c `Vauto_save_interval' unrenamed back to
+	`auto-save-interval'. 
+
+	* keymap.c (Fdefine_key, Flookup_key): renamed arguments called
+	`keys' to `key'.
+
+1990-10-01  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sysdep.c (sys_open, sys_close, sys_read, sys_write):
+	Handle EAGAIN like EINTR.
+
+1990-09-30  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* insdel.c (gap_left, gap_right): Use bcopy if requested.
+	New config parameters GAP_USE_BCOPY, BCOPY_SAFE_UPWARD,
+	and BCOPY_SAFE_DOWNWARD.
+
+	* eval.c (find_handler_clause): Bind debug-on-error to nil.
+	(Qdebug_on_error): New variable.
+	(syms_of_eval): Initialize that.
+
+	* sysdep.c: Include various headers for ptys, for hpux, aix, and sysv.
+
+	* dispnew.c (preserve_other_columns): Fix args to second bcopy.
+
+1990-09-30  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* keyboard.c: `auto_save_interval' renamed to
+	`Vauto_save_interval', since it *is* a lisp-accessible variable.
+
+	* fileio.c (Fdo_auto_save): call record_auto_save so that
+	read_char knows when we've auto-saved.
+
+	* keyboard.c (record_auto_save): added function to support the new
+	auto-save conditions.
+
+	* keyboard.c (read_char): use num_input_chars and last_auto_save
+	instead of keystrokes to decide when to autosave.
+
+	* keyboard.c (keystrokes): variable deleted.
+
+1990-09-30  Mike Rowan  (mtr at spike.ai.mit.edu)
+
+        * keyboard.c and alloc.c:  added malloc warning code from
+	18.56.
+
+	* dispnew.c, xdisp.c: (un)hold_window_change no longer exists;
+	added do_pending_window_change from 18.56.
+
+	* process.[ch]:  added the raw_status_low and raw_status_high
+	code from 18.56.
+
+1990-09-29  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* alloca.s: Handle ns32000 like ns16000.
+
+	* m-ns32000.h: New file.
+
+	* lread.c (Fload): Warn if elc file older than source file.
+
+	* ymakefile (LIB_X11_LIB): New parameter,default -lX11.
+	(LIBX): Use that.
+
+	* Makefile (xmakefile): Delete junk.c at the beginning.
+
+	* hftctl.c: Include termios.h before termio.h.
+	Define TCGETS and TCSETS if nec.
+	Give some forward declarations for the static functions.
+	Reformat in usual GNU style.
+
+	* m-orion105.h (LOAD_AVE_TYPE, FSCALE): Changed from double and 1.0.
+
+	* m-delta.h: New file.
+
+1990-09-28  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* fns.c (Frequire): Undo certain things on failure, like autoload.
+
+1990-09-28  Jim Blandy  (jimb at pogo.ai.mit.edu)
+
+	* fileio.c (Fwrite_region): renamed variable `fd' to `desc' and
+	changed argument to open from `1' to `O_WRONLY'.
+
+	* fileio.c (O_WRONLY): added clause to define this if not already
+	defined.
+
+	* emacs.c (Fdump_emacs): removed a_name variable.
+
+	* emacs.c (Fkill_emacs): removed code which asked about modified
+	buffers and running subprocesses.
+
+	* editfns.c (Fcurrent_time_string): renamed variable `now' to
+	`current_time'.
+
+	* dispnew.c (update_line): renamed variables `m1' and `m2' to
+	`begmatch' and `endmatch'.
+
+	* dispnew.c (update_screen): use preempt_count as a limit instead
+	of a counter; count with i instead.
+
+	* dispnew.c (visible_bell, inverse_video, baud_rate,
+	Vwindow_system): rearranged comments.
+
+1990-09-27  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* emacs.c (main) : Set the DISPLAY environment value when both of
+	MAINTAIN_ENVIRONMENT and HAVE_X_WINDOW are defined.
+
+	* m-convex.h (LIB_STANDARD, LIBS_MACHINE): remove these, they
+	cause an unnecessary C1/C2 dependency.
+
+	* m-convex.h (LD_SWITCH_MACHINE): use -e__start to specify
+	where crt0.c begins.
+
+	* m-convex.h (HAVE_SETSID): define; must call setsid
+	when creating an inferior with a different controlling tty.
+	* process.c (create_process): rearrange so that HAVE_SETSID
+	will be seen when not under USG.
+
+	* m-convex.h (S_IFMT etc): define in case of posix compilation.
+
+	* m-convex.h (FIRST_PTY_LETTER): do it at runtime.
+	* unexconvex.c (first_pty_letter): routine to locate lowest pty.
+
+	* unexconvex.c: Rewrite so it can cope with thread-local sections.
+
+	* sysdep.c (select): Use process_tick and update_tick,
+	not child_changed.
+
+1990-09-23  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* keyboard.c (Fsuspend_emacs): Check screen size after resume.
+
+1990-09-19  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* editfns.c: Doc fix.
+
+1990-09-18  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* window.c (Fsplit_window): Minor cleanup.
+
+1990-09-17  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* emacs.c (main) [USG_SHARED_LIBRARIES]: Call brk.
+
+1990-09-13  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* floatfns.c (float_error_arg): New variable.
+	(IN_FLOAT): New arg; sets float_error_arg.  All uses changed.
+	(float_error): Use that value when signaling error.
+
+1990-09-11  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* unexaix.c, m-ibmr2.h, s-aix3-1.h: New files.
+
+	* ymakefile (allocaobj): New variable.  Used in otherobjs.
+	Eliminates assignment of mallocobj using itself.
+	(mallocobj): Handle SYSTEM_MALLOC without HAVE_ALLOCA.
+	(xemacs): Use -nl option if HAVE_SHM.
+
+	* sysdep.c: Change IBMRTAIX conditionals to AIX.
+	Move hft.h to the top.
+	[IBMR2AIX]: Use termios.h and change macros accordingly.
+	(child_setup_tty): Change IBMRTAIX to AIX.
+	(setpgrp_of_tty): Handle IBMR2AIX.
+	(init_sys_modes): Handle IBMR2AIX.  Output special things for AIX.
+	(reset_sys_modes): Output special things for AIX.
+	(hft_init, hft_reset): Conditionals for IBMR2AIX.
+
+	* process.c: Change IBMRTAIX to AIX controlling time.h.
+	[AIX]: Include sys/pty.h and unistd.h.
+	(wait_reading_process_input): If AIX, handle EBADF differently.
+	(create_process): Handle HAVE_SETSID.  Change conditional to AIX.
+
+	* lisp.h (XPNTR): New definition if HAVE_SHM.
+	(NULL): Undef before defining.
+
+	* emacs.c (main): If HAVE_SHM, call map_in_data.
+	Use AIX, not IBMRTAIX, for signal conditional.
+	(Fdump_emacs_data): New function if HAVE_SHM.
+	(Fdump_emacs): Don't define if HAVE_SHM.
+
+	* alloc.c (pure, PUREBEG): If HAVE_SHM, define place for a segment.
+
+1990-09-03  Mike Rowan  (mtr at apple-gunkies)
+
+	* sysdep.c: added setup_pty from 18.56
+
+	* process.c:  merged in 18.55->6 changes.  Same for process.h
+
+	* globally replaced:
+		   redisplay_preserving_echo_area -> redisplay_preserve_echo_area
+		   SetBfp -> set_buffer_internal 
+		   buffer_flush_undo -> buffer_disable_undo 
+		   redo_mode_line -> update_mode_line  (window.h)
+
+1990-08-31  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* data.c (Fmake_local_variable): If var is local when set, make it
+	local now in this buffer.
+
+	* data.c (Fstring_to_int): Finish eliminating second arg.
+
+	* data.c (Faset): Require integer as third arg for string.
+
+1990-08-28  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* search.c: Doc fix.
+
+	* screen.h (SCREEN_SCROLL_BOTTOM_VPOS): New macro.
+	* xdisp.c (screen_bottom_vpos): Variable used if just one screen.
+	(redisplay, try_window_id): Set that field in screen.
+	* dispnew.c (scrolling, update_screen): New arg scroll_bottom_vpos.
+
+	* dispnew.c (scroll_screen_lines): Mark newly empty lines as empty.
+	(scrolling): Give up if any line in current_screen not enabled.
+
+1990-08-27  Roland McGrath  (roland at churchy.ai.mit.edu)
+
+	* dired.c (Ffile_attributes): Return the device number too (elt 11
+	of the returned list).
+
+1990-08-27  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* sysdep.c (wait_for_kbd_input): Frob waiting_for_input here.
+	* keyboard.c (kbd_buffer_read_command_char): Not here.
+
+	* sysdep.c (wait_for_kbd_input): Clear process_ef before snarfing
+	process input.
+
+	* fileio.c (Fdirectory_file_name): On VMS, leave space for log name.
+
+	* sysdep.c (init_sys_modes): Clear process_ef only the first time.
+
+	* vmsfns.c (process_exit): Logic of deletion was wrong.
+	(Fspawn_subprocess): Correctly reuse existing struct process_list.
+
+1990-08-22  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* m-plexus.h (LD_SWITCH_MACHINE): New macro.
+
+1990-08-22  Joseph Arceneaux  (jla at geech)
+
+	* xterm.c (XTread_socket): Cleaned up #ifdefs prior to event
+	reading loop.  Also handle FIOSNBIO.
+
+1990-08-19  Joseph Arceneaux  (jla at geech)
+
+	* xterm.c (dumplyphs): Last vestige of MScreenWidth removed.
+	* config.h: MScreenWidth, MScreenHeight definitions removed.
+
+1990-08-18  Joseph Arceneaux  (jla at geech)
+
+	* scroll.c (do_scrolling): Pass the correct sizes to bcopy.
+	* dispnew.c (make_screen_glyphs): Likewise.
+
+1990-08-16  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* dispnew.c (scroll_screen_lines, free_screen_glyphs): Only deal
+	with the X components of screen_glyphs if SCREEN_IS_X.
+	free_screen_glyphs now takes screen argument.
+
+	* window.c (Fnext_window, Fprevious_window): Fixed typo.  New
+	behaviour:  mini non-nil implies all_screens if global mini screen
+	exists, implies current screen only if not.
+	(Fdisplay_buffer): Simplification of multi-screen code.
+
+1990-08-15  Richard Stallman  (rms at mole.ai.mit.edu)
+
+	* buffer.c: Doc fix.
+
+1990-08-15  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* dispnew.c (update_line): Simplification of pixel size code, only
+	done if screen is X.
+	(update_screen): Only set pixel stuff if screen is X.
+
+1990-08-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-targon31.h (NO_REMAP): Definition removed.
+	(SEGMENT_MASK): New macro.
+
+1990-08-14  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* lread.c (eval-region): Don't set opoint to point, etc.
+	Fnarrow_to_region from BEGV, not b.
+	(eval-buffer): New subr, generalization of eval-current-buffer.
+	(eval-current-buffer): Moved to elisp, in simple.el.
+
+	* xfns.c (x_y_pos): Nuked.  Replaced by pixel_to_char_translation
+	and notice_mouse_movment (dispnew.c, xterm.c).
+	(Fx_point_coordinates): Also nuked.
+	mouse_buffer_offset:  New lisp variable.
+
+	* xterm.c (notice_mouse_movement): Use it in call to
+	pixel_to_char_translation.
+
+	* screen.h: For non-multiscreen, XSCREEN returns selected_screen,
+	as does WINDOW_SCREEN.
+
+	* xdisp.c (display_mode_line): Set desired_glyphs->bufp to 0 for
+	mode line.
+	All occurences of struct screen * replaced with SCREEN_PTR.
+
+1990-08-13  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xmenu.c (list_of_items, list_of_panes): Fixed wrong params to
+	wrong_type_argument.
+
+1990-08-12  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* dispnew.c (pixel_to_char_translation):  New algorithm for
+	finding y.
+
+	* xfns.c (install_*_scrollbar): No more height, width parameters.
+	Don't block input here.
+	(x_set_*_scrollbar): Block input here.
+
+	* xterm.c (notice_mouse_motion): Check if the mouse is still in
+	the window.
+	(encode_mouse_button): Don't bother about motion types.
+
+1990-08-11  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-convex.h (C_SWITCH_MACHINE, LIB_STANDARD, LIBS_MACHINE):
+	(LD_SWITCH_MACHINE): Add definitions for Convex V 4.0.
+
+1990-08-11  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_grab_pointer): Call XCreateFontCursor on shape,
+	setting new variable grabbed_cursor.  Return Qt if successful,
+	Qnil otherwise.
+	(Fx_ungrab_pointer): free grabbed_cursor if non zero.  Return Qnil.
+
+1990-08-10  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (x_figure_window_size): Don't set pixel sizes until
+	height and width are determined.
+
+1990-08-08  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_grab_pointer): New parameter to explicitly ignore
+	keyboard events.
+
+	* xterm.c (notice_mouse_movement): Use pixel_to_char_translation
+	to get char position and buffer offset.
+
+1990-08-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c [NEED_PTEM_H]: New flag macro says include ptem.h.
+
+1990-08-07  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* dispextern.h: element bufp of screen_glyphs no longer dependent
+	on X windows.
+	* xdisp.c (display_text_line): Likewise.
+
+	* xfns.c (Fx_grab_pointer, Fx_ungrab_pointer): New subrs.
+	(x_figure_window_size): Set pixel_width and pixel_height of
+	screen, using font height and width.
+
+	* xfns.c: Vmouse_grabbed renamed Vmouse_depressed.
+	* xterm.c: Likewise.
+	(construct_mouse_event): Don't check mouse coordinates;  this is
+	done by the notice_mouse_motion.  Don't grab the mouse here.
+
+	* dispnew.c (update_line): Set the pix_width and pix_height of the
+	line.  This fashion of doing so is temporary.
+
+1990-08-06  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* dispextern.h: screen_glyphs struct elements bottom_right_x,
+	bottom_right_y changed to pix_width and pix_height.
+	* scroll.c: Likewise.
+	* dispnew.c: Likewise.
+	(update_screen): Set top_left_x, top_left_y for X windows.
+
+	* xterm.h: Macros PIXEL_{WIDTH,HEIGHT} now use the display
+	structure elements.
+
+1990-08-05  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (x_window_to_scrollbar): Return Lisp symbol in parameter
+	PART_PTR, rather than string.
+	Declare these symbols.
+	New variable Vscreen_part, indicates which part of the screen the
+	mouse is in.
+
+	* xterm.c (notice_mouse_motion): Do XQueryPointer first thing.
+	Set Vmouse_event to Qnil.
+	(construct_mouse_event): Don't check if mouse has moved or not.
+	When returning cons, part is now already lisp symbol.
+	(XTread_socket): Set Vmouse_window = Vscreen_part = Qnil when
+	leaving screen, as well as setting x_mouse_x = x_mouse_y = -1.
+
+	* keyboard.c: Vmouse_window, Vmouse_event declared extern and no
+	longer DEFVARed:  they are already delclared in window.c
+
+	* screen.c (window_from_coordinates): Use Fnext_window, even if
+	MULTI_SCREEN, to obtain the next window.  This is an test.
+	Also, new paramater part returns text or modeline symbol.
+	(Flocate_window_from_coordinates): Pass &part to
+	window_from_coordinates.
+	(coordinates_in_window): Don't say modeline if window_height is 1,
+	as this is likely to be the minibuffer.
+
+1990-08-04  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* screen.c (Fcoordinates_in_window_p): Doc fix.  Simplified.
+	(window_from_coordinates):  New function.
+	(Flocate_window_from_coordinates):  Use it.
+
+	* keyboard.c (classify_object):  New function for dealing with the
+	input object.  New symbol, mouse-motion, called here.
+	Call to mouse-motion-handler now takes no parameters.
+	(read_key_sequence):  Use the new function.  Don't set keybuf[0]
+	to 0.
+
+	* xterm.c (init_input_symbols):  Create all the Lisp symbols
+	returned in the input stream.
+	func_key_syms:  New array to hold all symbols for function keys.
+	(x_func_key_to_sym): Use this array.
+	(notice_mouse_movement): New function for dealing with motion
+	events.
+	(XTread_socket): Use it here.
+
+1990-08-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* callproc.c (child_setup): Report error in chdir.
+
+1990-08-01  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* lisp.h: New macro XFLOATINT.  extract_float declared.
+	* floatfns.c (Ffloor): Call floor, not ceil.
+	(extract_float): No longer static.
+	* bytecode.c (Fbyte_code): Correctly handle floats in case Beqlsign.
+
+1990-07-31  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): When downcasing letters,
+	don't change the value returned in keybuf.
+	(This is an experiment; it might be unpleasant in
+	things such as C-h c, but it is an improvement
+	for M-x global-set-key.)
+
+1990-07-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* eval.c: Doc fix.
+
+1990-07-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* s-iris*.h (SYSTEM_TYPE): Change silicon-graphics-unix to irix.
+
+1990-07-26  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* indent.c (Fmove_to_column): End-test was off by 1.
+
+	* abbrev.c (Fexpand_abbrev): Return nil if alloca arg would be neg.
+
+1990-07-26  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xdisp.c (display_text_line):  String to rope copy for inserting
+	arrow text.
+
+1990-07-25  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xdisp.c (display_mode_line): Check that the name has actually
+	changed before calling x_set_name.
+
+	* ralloc.c (check_memory_limits):  New function.
+	Also check if new memory will be larger than elisp pointer.
+	(r_alloc_sbrk): Call this function.
+	(relocate_blocs_upward, relocate_blocs_downward): Eliminated.
+	(r_alloc_sbrk): Use relocate_some_blocs instead of the eliminated
+	functions.
+
+	* vm-limit.c (morecore_with_warning): Check if new memory larger
+	than elisp pointer size.
+
+1990-07-24  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keyboard.c (save_getcjmp, restore_getcjmp): New functions.
+	(read_char): Use them around Fdo_auto_save.
+	* process.c (read_process_output, exec_sentinel): Use them.
+	* fileio.c (Fdo_auto_save): Run auto-save-hook.
+
+1990-07-24  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* dispnew.c (safe_bcopy): No longer static.
+
+	* ralloc.c (relocate_blocs_upward, relocate_blocs_downward):  Use
+	safe_bcopy.
+
+	* mem_limits.c:  typedef SIZE.
+
+1990-07-19  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* fileio.c (Finsert_file_contents): Initialize how_much when exiting
+	main loop.
+
+	* m/m-mips.h: Added stuff from the 18.56 version.
+
+1990-07-18  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* indent.c (Fmove_to_column):  Set end to ZV.
+
+1990-07-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* editfns.c (init_editfns): Let envvar NAME override full name.
+
+	* buffer.c (list_buffers_1): Avoid error with list-buffers-directory.
+
+1990-07-17  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* buffer.c (list_buffers_1):  Don't check list-buffers-directory.
+
+1990-07-16  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xdisp.c (display_text_line):  Don't print ellipsis if they're
+	off the left edge.
+
+1990-07-10  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* s-386-ix.h: Define BROKEN_TIOCGETC.
+
+1990-07-09  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-pmax.h: Undef LD_SWITCH_MACHINE, change DATA_START
+	and DATA_SEG_BITS.
+
+1990-07-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* s-iris3-6.h (HAVE_GETWD): Define this.
+	(KERNEL_FILE): Change to /unix.
+	(sigsetmask, sigblock, NEED_ERRNO, C_SWITCH_MACHINE): Turn off.
+	(SIGIO): Don't undefine it.
+	(LIBS_MACHINE): Remove -lbsd.
+
+	* minibuf.c (Fall_completions, do_completion): Treat nil as alist.
+	(Ftry_completion): Likewise.
+
+1990-07-01  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c: Undefine TIOCGETC if BROKEN_TIOCGETC defined.
+	* s-usg5-3.h, s-xenix.h: Define BROKEN_TIOCGETC.
+
+1990-06-26  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (Fopen_network_connection): Minor cleanup.
+
+1990-06-20  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-sun3.h: Add comments for dealing with 68881.
+
+1990-06-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-ibmps2-aix.h [__GNUC__]: Define LIB_STANDARD and C_DEBUG_SWITCH,
+	and don't define LIBS_MACHINE.
+	(HAVE_WAIT_HEADER): Define this.
+	Also reordered definitions so recently added ones are together.
+
+1990-06-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* insdel.c (insert): Error if buffer would get too long.
+	* fileio.c (Finsert_file_contents): Likewise.
+
+1990-06-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* syntax.c (scan_sexps_forward): Allow Squote inside symbols.
+
+1990-06-16  Joseph Arceneaux  (jla at geech)
+
+	* window.c (Fscroll_other_window): Don't unbind_to.  Keep track of
+	current_buffer and point explicitly.
+
+1990-06-15  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* term.c: (cursor_to): Only add chars_wasted if not calling hook.
+	(clear_end_of_line_raw): Likewise.
+	(clear_end_of_line): Check that screen is termcap before using
+	chars_wasted.
+	(ins_del_lines): Eliminated local copybuf[].
+	(calculate_ins_del_char_costs): Now has screen parameter.
+	DCICcost: Change to char_ins_del_costs and defined with
+	SCREEN_WIDTH (screen).
+	DC_ICcost: Changed to char_ins_del_vector.
+	* term.h: DCICcost no longer defined here.  DC_ICcost no longer
+	declared here.
+	* dispnew.c: char_ins_del_cost defined here.  char_ins_del_vector
+	declared extern here.
+
+1990-06-14  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* Globally replaced screen_width with macro
+	SCREEN_WIDTH (selected_screen).
+	* dispnew.c (init_display): Don't set SCREEN_WIDTH, etc. from
+	screen_width.
+	(change_window_size):  No longer check output_type and set
+	ScreenRows.
+
+1990-06-11  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* indent.c (Findent_to): Don't fail to return value.
+	(Fmove_to_column, Fcurrent_column): Doc fixes.
+
+1990-06-06  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (echo_prompt):  Now uses glyphs.
+	echobuf, echobuf_ptr:  These variables now glyphs.
+
+1990-06-05  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* fileio.c (Fdo_auto_save): Use glyphs_to_str_copy to set
+	omessage.
+	* alloc.c (Fgarbage_collect): Ditto.
+
+	* xdisp.c (message):  message_buf set here, realloced if smaller
+	than screen width.
+	message_buf now type GLYF *.  New variable message_buf_size holds
+	its size.
+	Use temp_buf for call to doprnt, then use str_to_glyph_cpy to set
+	echo_area_glyphs.
+
+	* print.c (printchar, strout):  Use message_buf_size.  Convert to
+	glyfs before assigning chars.
+	(str_to_glyph_cpy, str_to_glyph_ncpy, 
+	glyph_to_str_cpy, glyph_to_str_ncpy):  New functions.
+
+1990-06-03  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (command_loop_1): Clear this_command_key_count here.
+	(Fread_key_sequence): And here.
+	(read_key_sequence): Not here.
+
+	* dispnew.c (update_screen):
+	Add missing else in handling cursor_in_echo_area.
+	* xdisp.c (redisplay_window): Eliminate lpoint.  Alter opoint 
+	if point should be changed permanently in the selected window.
+
+	* window.c (unshow_buffer): Don't set pt in selected window's buffer.
+
+	* xdisp.c (decode_mode_spec): Don't truncate buffer or file name.
+
+	* editfns.c (Finsert_buffer_substring): Don't fail to set beg, end.
+
+	* keyboard.c (command_loop_level): New variable.
+	Used in place of RecurseDepth, but different meaning.
+	(recursive_edit_1): New function.
+	(Frecursive_edit): Call it.
+	* minibuf.c (read_minibuf): Call recursive_edit_1.
+	* xdisp.c (RecurseDepth): Variable deleted.
+	display_minibuffer_message renamed echo_area_display.
+
+	* print.c: Include dispextern.h.
+	(printchar, strout): Use message_buf.
+
+	* scroll.c (CalcIDCosts): Dynamically allocate ILcost, etc.
+	(ILcost, DLcost, ILncost, DLncost): Now pointers.
+	(do_scrolling): Use alloca for queue.
+
+	* term.c (term_init):  selected_screen as arg to calculate_costs.
+	(calculate_costs):
+	Dynamically allocate chars_wasted, copybuf, DC_ICcost.
+	Set RPov based on actual width.
+	(chars_wasted, copybuf, DC_ICcost): Now pointers.
+
+	* xterm.c (x_term_init): Don't set dont_calculate_costs anymore.
+
+1990-06-02  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+        * term.c (calculate_ins_del_char_costs, string_cost_one_line):
+	Made static.
+
+	* dispnew.c: Declare scrolling_1;
+
+	* scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID):  Renamed
+	calculate_ins_del_char_costs, ins_del_costs, and line_ins_del.
+	CalcIDCosts1 and CalcLID also renamed.
+	(calculate_scrolling):  Now void.
+
+	* Global renaming:  bf_modified -> MODIFF.  CharAt -> CHAR_AT_POSITION.
+	BufferSafe{Floor,Ceiling} -> BUFFER_{FLOOR,CEILING}_OF.
+	SetPoint -> SET_PT.
+
+	* xterm.c (x_term_init): Don't CalcIDCosts here anymore.
+
+1990-06-01  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* print.c: Include dispextern.h.
+	(printchar, strout): Use message_buf.
+
+        * sysdep.c (get_screen_size): Don't use MscreenWidth, MscreenLenght.
+	* term.c:  Likewise.
+
+        * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID):  These now take a
+	screen argument.
+	(CalcIDCosts): Dynamically allocate ILcost, etc.
+	(ILcost, DLcost, ILncost, DLncost): Now pointers.
+	(do_scrolling): Use alloca for queue.
+
+	* dispnew.c (remake_screen_structures): Allocate message_buf.
+	Don't use MscreenWidth, MscreenLenght.
+
+	* xdisp.c: bf_cur replaced with current_buffer.
+	Calls to SetBfx deleted.
+	message_buf is now char *.
+	(message): Use SCREEN_WIDTH macro as limit for doprnt.
+
+	* indent.c (current_column): Detect special case when point == BEGV.
+
+	* buffer.h (struct buffer_text): Component modified renamed to
+	modiff. All refs changed to macros below.
+	(MODIFF, BUF_MODIFF): New macros.
+	Macro SetBfx removed.
+	Macro SetPoint renamed SET_PT.
+
+	* fileio.c (Fexpand_file_name):  Simplified.
+
+1990-06-01  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dired.c: Doc fix.
+
+1990-05-31  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* search.c (Fsearch_forward): Docstring fix.
+
+1990-05-31  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dired.c: Comment added.
+
+1990-05-31  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* process.c (Fprocess_connection):  Return the type of a process
+	object. 
+	(syms_of_process):  Initialize pty_process and stream_process.
+	Declare Fprocess_type.
+	* process.h  New element type to struct Lisp_Process.
+
+	* syntax.c (scan_sexps_forward): Initialize curlevel->last to -1.
+
+1990-05-28  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* fileio.c (Finsert_file_contents):  Use new variable how_much to
+	hold read result.
+
+1990-05-24  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* lread.c (read_char_exclusive):  New subr.
+
+1990-05-24  David Lawrence  (tale at pogo.ai.mit.edu)
+
+	* fileio.c (file_executable_p):  New function.
+
+1990-05-23  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* insdel.c (make_gap): Only set BEG_ADDR if BUFFER_REALLOC was
+	successful.
+
+	* editfns.c (syms_of_editfns):  DEFVAR the new variables.
+
+	* eval.c (Finteractive_p): Don't skip the first frame if the
+	function was compiled.
+
+	* print.c (print): Use ... only for conses, and instead of normal
+	print.
+
+1990-05-22  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* Renamed meta_flag meta_key.
+
+	* termopts.h:  Comment changes.
+
+1990-05-20  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* buffer.h: upcase_table and downcase_table are now Lisp_Objects.
+	* alloc.c (mark_object, gc_sweep):  Related changes.
+	* casetab.c: Ditto.
+
+1990-05-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* minibuf.c (Fall_completions): Protect STRING from gc.
+	Copy ALIST to TAIL to protect it.
+
+	* paths.h-dist: Doc fix.
+
+1990-05-17  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* search.c (Flooking_at, search_buffer): Use new accessors.
+	* indent.c (Fcurrent_column): Likewise.
+	* minibuf.c (read_minibuf): Likewise.
+	* regex.c (re_match_2): Use PTR_CHAR_POS.
+	* editfns.c (Fbuffer_size, Fnarrow_to_region, Fbuffer_substring):
+	(Fbuffer_string, Finsert_buffer_substring): Likewise.
+	(save_restriction_restore): Likewise.
+	* dispnew.c (direct_output_for_insert): Likewise.
+	* fileio.c (Fwrite_region, Finsert_file_contents): Likewise.
+	(Fdo_auto_save): Likewise.
+	* insdel.c (move_gap, gap_left, gap_right, make_gap): Likewise.
+	(InsCStr, del_range, modify_region): Likewise.
+	* process.c (Fprocess_send_region): Likewise.
+	* xdisp.c (try_window, try_window_id, display_text_line): Likewise.
+	(redisplay): Likewise.
+	* buffer.c (list_buffers_1): Likewise.
+	* marker.c (marker_position, Fset_marker, set_marker_restricted): 
+	(Fmarker_position): Likewise.
+	* window.c (unshow_buffer, Fset_window_configuration): Likewise.
+	(Fset_window_buffer): Likewise.
+
+	* editfns.c (save_restriction_restore): Use a macro to alter point.
+
+	* lread.c (readchar): Use new accessors, and avoid knowing about
+	the text field of a buffer.
+	* window.c (Fpos_visible_in_window_p): Likewise.
+
+	* buffer.h (struct buffer): Make the syntax table a Lisp object.
+	* alloc.c (mark_buffer): No need to treat it specially.
+	* syntax.c (Fsyntax_table, Fset_syntax_table, Fdescribe_syntax):
+	(Fmodify_syntax_entry): Adjust for this change.
+	* buffer.c (reset_buffer_local_variables): Need not be special.
+	(init_buffer_once): Make this slot a defaulted local variable.
+	* syntax.h: Adjust macros for this change.
+	(Vstandard_syntax_table): Define as macro, in buffer_defaults.
+	* syntax.c (syms_of_syntax): Don't staticpro it here.
+	(Fset_syntax_table): Set the flag in local_var_flags.
+
+	* buffer.h (struct text): Represent the buffer dimensions
+	with new slots, memory, begv, pt, gpt, zv, z and gap_size.
+	(BEGV, etc.): Use new slots.
+	(CharAt): Likewise.
+	(BufferSafeCeiling, BufferSafeFloor): Use new slots; fix old bugs.
+	(bf_p1, bf_s1, etc.): Old macros deleted.
+
+	* buffer.c (Fget_buffer_create): Set up memory and new slots.
+	(Fkill_buffer): Likewise.
+
+	* insdel.c (move_gap, gap_left, gap_right, make_gap): Update new slots.
+	(del_range, InsCStr): Likewise.
+	* fileio.c (Finsert_file_contents): Likewise.
+	* window.c (temp_output_buffer_show): Likewise.
+	* xdisp.c (decode_mode_spec, try_window_id): Likewise.
+
+	* insdel.c (make_gap): Complete rewrite.  Arg is amount of new gap
+	to create.  All calls changed.
+	(gap_left): New argument NEWGAP.
+
+	* buffer.c (Fset_buffer): Check for deleted buffer.
+	(SetBfp): Don't check.
+	(SetBfp, Frename_buffer): Local cleanups.
+	* print.c (PRINTPREPARE): Use Fset_buffer.
+
+	* buffer.c (SetBfp): Don't bother with selected window or its point.
+	* window.c (Fselect_window): Always set pointm of old window. 
+
+	* editfns.c: Eliminate all use of DEFSIMPLE and DEFPRED.
+	* indent.c, keyboard.c: Ditto.
+
+	* search.c (skip_chars): Eliminate PointLeft and PointRight.
+	* cmds.c (SelfInsert): Likewise.
+
+1990-05-16  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xdisp.c (try_window):  No return value.
+	Fix calls to try_window.
+	* Global variable RedoModes is now redraw_mode_line.
+
+1990-05-13  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keymap.c (Fdefine_key, Flookup_key): Local cleanups.
+
+	* sysdep.c (sys_suspend): Use save_signal_handlers and 
+	restore_signal_handlers to save and restore signal state.
+
+	* indent.c (Findent_to): Merge guts of indentation into here.
+	(position_indentation): Scan with a pointer, for speed.
+
+	* casefiddle.c (operate_on_word): Just return the other end.
+	(Fupcase_word, Fdowncase_word, Fcapitalize_word):
+	Pass that value to casify_region.
+
+	* editfns.c (init_editfns): Store system and user names as
+	strings to avoid arbitrary limits.
+
+	* keymap.c (describe_vector, describe_alist): Make elt_prefix
+	and elt_describer responsible for indentation and newlines.
+	Local cleanups.
+	(describe_command): Do indentation and newline.
+	(describe_map): Add space to end of prefix.
+	* syntax.c (describe_syntax): Do indentation and newline.
+
+1990-05-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (create_process) [not USG]: Put subproc in pgrp 0.
+
+1990-05-10  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* dispextern.h: new struct screen_glyfs replaces struct
+	display_line.
+	* screen.c: new screen elements current_glyfs, desired_glyfs, and
+	temp_glyfs.
+	* dispnew.c: (make_screen_glyfs, free_screen_glyfs,
+	remake_screen_glyfs):  New functions.
+	(make_display_lines, new_display_line, return_display_line):
+	Functions deleted.
+	(change_screen_size, init_display): Use the new functions.
+	(cancel_line, clear_screen_records, get_display_line):
+	Rewritten for new data structures.  get_display_line no longer
+	returns anything.
+	(preserve_other_columns, preserve_my_columns): Likewise.
+	(cancel_my_columns, direct_output*): Likewise.
+	(update_screen, update_line, quit_error_check, scrolling): Likewise.
+	(scroll_screen_lines): Likewise.
+	(rotate_vector, safe_bcopy): New subroutines.
+	(line_hash_code, line_draw_cost): Cleaned up.
+	Args are different, and hash computation too.
+	(update_screen): Rearrange buffer-emptying code.
+	* xdisp.c: (display_minibuf_message, redisplay): Rewritten for new
+	structures. 
+	(display_text_line, display_mode_line): Likewise.
+	(display_mode_element, display_string): Likewise.
+	(decode_mode_spec): Local cleanups.
+	* scroll.c (do_scrolling): Rewritten for new data structures.
+	* xterm.c (XTflash): Use this new structure.
+
+	* editfns.c (in_accessible_range): New function.
+	(Fgoto_char, save_restriction_restore): Use it.
+	(save_excursion_save, Fcurrent_time_string): Local cleanups.
+
+	* process.c (Fprocess_kill_without_query): New arg; new return value.
+	(count_active_processes): Function deleted.
+
+	* fileio.c (Finsert_file, Fwrite_region): Local cleanups.
+
+	* fns.c (Fsubstring): Local cleanup.
+
+	* keyboard.c (echo_prompt, echo_char, echo_dash, echo): New functions.
+	(cancel_echoing): Likewise.
+	(immediate_echo, echoptr): New variables.
+	(command_loop_1, request_echo, get_char, read_key_sequence): 
+	(set_waiting_for_input, interrupt_signal): Related changes.
+	(get_char): No more declaration of request_echo. Local cleanups.
+
+	(this_command_key...): New variables.
+	(Fexecute_extended_command, Fthis_command_keys): Related changes.
+	(init_keyboard, get_char): Likewise.
+
+	* macros.c (Fstart_kbd_macro): Local cleanup.
+
+	* minibuf.c (read_minibuf): No more delcaration of
+	Frestore_screen_configuration.
+
+	* search.c (Fregexp_quote): Simplified.
+
+1990-05-08  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* process.c (Fopen_network_stream):  Also handle numeric inet
+	addresses.
+
+1990-05-06  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* alloca.c: #ifdef __STDC__ rather than X3J11/
+
+1990-05-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c (Fmake_symbolic_link): Delete old file if permitted.
+
+1990-05-02  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* data.c (Fstring_to_int): Delete disabled feature
+	of accepting `yes' and `no'.
+
+	* xdisp.c (redisplay, redisplay_preserving_echo_area):
+	Two functions replace DoDsp.  All callers changed.
+	(redisplay, redisplay_window): Eliminate `inhibit_hairy_id'.
+	(redisplay_window): No return value.  Local cleanups.
+
+	* alloc.c (Fmake_marker): Delete `modified' field.
+	* insdel.c (adjust_markers): Likewise.
+
+	* abbrev.c (Fdefine_mode_abbrev): Clean up error message.
+
+1990-05-01  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_draw_rectangle, Fx_erase_rectangle): Simplified.
+
+	* xterm.c (x_display_cursor): Don't check s->phys_x when drawing
+	cursor.
+
+	* undo.c:  New version.
+	* undo.h:  No longer exists.
+	* alloc.c (Fgarbage_collect): Call truncate_undo_list.
+	(syms_of_alloc): Define vars undo-threshold and undo-high-threshold.
+	* buffer.c (Fget_buffer_create): Set undo_list to t or nil.
+	(Fbuffer_disable_undo, Fbuffer_enable_undo): Likewise.
+	(Fkill_buffer): Likewise.
+	(init_buffer_once): Set up local variable buffer-undo-list.
+	(syms_of_buffer): Likewise.
+	* buffer.h: New element undo_list in struct buffer.
+	* fileio.c (Finsert_file_contents): Store nil in undo_list.
+
+	* buffer.c:  Variable bf_text deleted.
+	(Fkill_buffer, SetBfp): Delete code that worked with it.
+	(SetBfx):  Now a macro in buffer.h
+	* editfns.c (Fwiden, Fnarrow_to_region): Related changes.
+	(save_restriction_save, save_restriction_restore): Likewise.
+	(Finsert_buffer_substring): Likewise.
+	* fileio.c (Fdo_auto_save): Likewise.
+	* insdel.c (make_gap): Likewise.
+	* lread.c (readchar): Likewise.
+	* marker.c (Fmarker_position, marker_position): Likewise.
+	(Fset_marker): Likewise.
+	* xdisp.c (DoDsp): Likewise.
+
+1990-04-30  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+        * buffer.h:  New macro R_ALLOC_SET_BUFFER for declaring all the
+	text pointers of a buffer to the relocating allocator.
+	* buffer.c (Fbury_buffer, SetBfx, SetBfp): Use the macro.
+	* editfns.c (Finsert_buffer_substring):  ditto.
+	* fileio.c (Fdo_auto_save): ditto.
+	* insdel.c (make_gap): ditto.
+	* xfns.c (adjust_scrollbars): Don't set bf_cur->text.
+
+1990-04-26  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* minibuf.c: Declare active_screen struct screen *, not
+	Lisp_Screen *.
+
+1990-04-19  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (XTupdate_end): Only x_display_cursor if s is x_input_screen.
+
+1990-04-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fns.c (Fy_or_n_p): If a C-g comes in and does not quit, quit by hand.
+
+	* buffer.c (Frename_buffer): Allow renaming to same name it has.
+
+1990-04-19  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_open_connection):  Attach xrdb to x_current_display.
+
+1990-04-17  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (dumpborder):  Now only used for X10.
+	(highlight, unhighlight):  New functions for X11.
+
+1990-04-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cm.c (Wcm_init): Return -2 if screen size not specified.
+	* term.c (term_init): Special error message for that case.
+
+1990-04-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* s-sunos4.h, s-sunos4shr.h (SYSTEM_MALLOC): Define it.
+
+1990-04-15  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_get_resource):  Concatenate invocation_name before
+	the resource tag.
+	(Fx_create_screen):  Use the latest resource id's.
+
+1990-04-13  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_get_resource):  New subr.
+	(Fx_open_connection):  Call x_load_resources.  New parameter
+	xrm_string.
+	* xrdb.c:  New file for doing resource manager stuff.
+
+	* xscrollbar.h:  New file for scrollbar bitmaps.
+
+	* xselect.h:  New file for the X selection stuff.
+
+	* ymakefile: Take note of these new files.
+
+1990-04-10  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (x_term_init):  Use MAXPATHLEN.
+
+1990-04-09  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* buffer.c (list_buffers_1): Get filename from list-buffers-directory.
+
+1990-04-06  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* screen.c (coordinates_in_window):  Return -1 if in modeline of
+	window.
+	(Fcoordinates_in_window_p):  Return Qt if in modeline of window.
+	(Flocate_window_from_coordinates):  Use next_screen_window if
+	MULTI_WINDOW is defined.
+
+1990-04-05  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (construct_mouse_event):  Deal with the motion events
+	first.  Only grab the mouse when in the scrollbar.
+
+1990-04-04  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* screen.c (coordinates_in_window): Include mode line as part of
+	window.
+
+	* xterm.c (XTread_socket):  Initialize nbytes to 0.
+	(x_display_cursor):  Don't draw if screen not selected.
+
+	* xdisp.c (DoDsp):  Additional checks for screen being visible.
+
+1990-04-03  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* editfns.c (Fmessage):  If there is a global minbuffer screen,
+	raise it before displaying the message.
+
+	* window.c (window_loop):  Parameter SCREENS now affects which
+	screen is scanned for windows.  All subrs calling window_loop must
+	pass a Lisp_Object here now.
+
+1990-04-01  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* window.c (window_loop):  Additional parameter mini to control
+	minibuffer selection or not.
+	(Fget_lru_window):
+	(Fget_largest_window):
+	(Fget_buffer_window):
+	(Fdelete_other_windows):
+	(Fdelete_windows_on):
+	(Freplace_buffer_in_windows):  Use that parameter.
+
+1990-03-29  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+        * screen.c (Fselect_screen):  Raise the selected screen.
+
+	* window.c (Fget_buffer_window):
+	(Fget_largest_window):
+	(Fget_lru_window):  New parameter all_screens.
+	(Fdisplay_buffer):  Use the new param in Fget_lru_window,
+	Fget_buffer_window, and	Fget_largest_window.
+	(Fscroll_other_window):  Use new param in Fget_buffer_window.
+	* buffer.c (Fother_buffer): ditto.
+
+	* xterm.c (x_display_cursor):  Always draw the cursor if ON is
+	true.  Don't check if the screen S is selected or equal to
+	mouse-screen.
+
+	* xfns.c (Fx_track_pointer):  Don't turn off cursor, just call
+	x_display_cursor.
+
+1990-03-28  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+        * data.c (Fmake_local_variable):  Give the variable value nil if
+	unbound.
+
+	* window.c (Fnext_window, Fprevious_window):  For MULTI_SCREEN,
+	check if Vglobal_minibuffer_screen is non-nil and maybe call
+	next_screen.
+
+	* screen.c (Fscreen_selected_window):
+	(Fscreen_root_window):  If screen is nil, use selected-screen.
+
+1990-03-27  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (XTread_socket):  SET_SCREEN_GARBAGED which returning
+	symbol which causes DoDsp to be invoked.
+	* keyboard.c (read_key_sequence):  Don't SET_SCREEN_GARBAGED here.
+
+	* screen.h:  New macro SET_SCREEN_GARBAGED.
+
+	* xfns.c:
+	* window.c:
+	* sysdep.c:
+	* keyboard.c:
+	* dispnew.c:  Use the new macro.
+
+1990-03-25  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_own_selection):  Only take one argument, string.
+
+1990-03-24  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (select_visual):  Catch bullshit machines whose hardware
+	doesn't support the X server pixel depth by looking at colormap_size.
+	(x_decode_color):  Use x_screen_planes to check for color.
+
+1990-03-23  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (x_display_cursor):  Try using vertical bar cursor.
+	(clear_cursor):  Call x_display_cursor for X11.
+
+	* xfns.c: Zotzed Vx_pointer_mask.
+	(Fx_track_pointer):  Call x_display_cursor if we just
+	wasted the cursor.  Break out of loop if no display line.
+	Use mode line cursor if we're there.
+	(x_y_pos):  New function.
+	(x_set_font):  Dont' set x_font_{width,height}, they are gone.
+
+1990-03-22  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_track_pointer):  Check that s == selected_screen each
+	time through loop.  If event is nil, read mouse position.
+
+	* keyboard.c (get_char):  DoDsp only if selected_screen visible.
+
+	* xterm.c (XTread_socket):  Mark screen as visible only on expose
+	event.
+
+	* emacs.c (main):  Check here for "-d" option and set display_arg.
+	* dispnew.c (init_display):  Set Vwindow_system, etc. if display_arg.
+
+1990-03-21  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence):  Don't DoDsp if the screen was
+	just unmapped.
+	(command_loop_1):  Call the mouse motion handler before calling
+	read_key_sequence.
+	(interrupt_signal):  Fixed typo checking screen type.
+
+	* xfns.c (Fx_track_mouse):  Don't crash because of null display
+	line.  Don't set obj til call to get_char.
+
+	* xterm.c (x_term_init):  Disable SIGWINCH here.
+
+	* fns.c (Fmember):  New subr.
+
+	* dispnew.c (init_display):  Don't check env variable DISPLAY to
+	set Vwindow_system.  Now done in startup.el.
+
+	* emacs.c:  Removed variables xargc, xargv.
+
+1990-03-20  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_track_pointer):  Go faster.
+
+	* screen.h:  New macro SCREENP.
+
+	* window.c: (Fminibuffer_window):  Rewritten.
+
+1990-03-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c (perror): Control with HAVE_PERROR as well as HPUX.
+	* s-hpux.h (HAVE_PERROR): Define it.
+
+1990-03-19  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (command_loop_1):  Restructured handling of X event
+	things.
+	(read_key_sequence):  Handle new `unmapped-screen' symbol with new
+	Vunmap_screen_hook.
+
+	* xterm.c (XTread_socket):  Return unmapped-screen symbol if the
+	window for UnmapNotify events.
+
+	* lread.c  (Feval_region):  GCPRO opoint.
+
+1990-03-16  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (command_loop_1):  Call mouse-motion handler with
+	argument.  Also, don't call undo-boundary.
+
+	* process.c (create_process):  Set the process group for BSD at
+	the same time as for USG.
+
+1990-03-14  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (x_new_selected_screen):  Set x_input_screen here.
+
+1990-03-11  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c:  Vx_mouse_grabbed now Vmouse_grabbed.
+	(XTread_socket):  Generate exited-window symbols on LeaveNotify
+	even if screen is focused.
+
+	* xfns.c:  Vx_mouse_grabbed now Vmouse_grabbed.
+	(outline_region):  Now static.
+	(Fx_track_pointer):  Check x_mouse_screen == s in loop.
+
+1990-03-10  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (encode_mouse_button): Correctly get the button from
+	Motion events.
+
+	* xfns.c (x11_encode_mouse_button):  Nuked.
+	(encode_mouse_button, Fx_mouse_events, Fx_get_mouse_event): #if 0'd.
+
+	* keyboard.c (get_char):  Re-set obj if we've keyboard-translated
+	c.
+
+1990-03-08  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c  x_focus_screen no longer static.
+	(x_error_handler):  Use XDefaultIOError.
+
+	* screen.c (Ffocus_screen):  New subr, removed Fscreen_has_focus.
+	(Fselect_screen):  New, optional parameter no_enter.
+	(Frestore_screen_configuration):
+	(Fdelete_screen):  Pass second parm Qnil to Fselect_screen.
+
+	* window.c (Fdisplay_buffer, Fset_window_configuration):  Pass
+	second parm Qnil to Fselect_screen.
+
+1990-03-07  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* screen.c (Fscreen_has_focus):  New subr.
+	(Fselect_screen):  Use x_focus_on_screen to physically select the
+	screen.
+
+1990-03-06  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (x_set_mouse_position):  Moved to xterm.c.
+
+	* fileio.c (Fremove_directory):  New subr.
+
+	* screen.c (Frelease_focused_screen):  Just call x_unfocus_screen.
+
+	* xterm.c (XTread_socket):  On FocusOut, if s isn't mouse screen,
+	return exited-window.  On LeaveNotify, simplify if expression for
+	dumpborder.  Reworked FocusIn/FocusOut events.
+	(x_unfocus_screen):  Check that screen is x_focus_screen.
+	(x_set_mouse_position):  Moved from xfns.c.  Use new macro
+	XWarpPointer.
+	* xterm.h:  New macro XWarpPointer.
+
+	* buffer.c:  Replaced Fbuffer_flush_undo with
+	Fbuffer_disable_undo.
+	* process.c:  Ditto.
+
+1990-03-05  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (XTupdate_end):  Use parameter s rather than
+	updating_screen.
+	(XTread_socket):  On EnterNotify, don't check s != focus_screen
+	before selecting.  On Focus In/Out don't set/reset mouse_screen.
+
+1990-03-04  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* eval.c  If using X windows, include xterm.h.
+	(error):  TOTALLY_UNBLOCK_INPUT if using X.
+
+	* xterm.h: BLOCK_INPUT, UNBLOCK_INPUT:  No signal stuff, just inc
+	and decrement x_input_blocked.
+
+	* xfns.c (adjust_scrollbars):  Don't BLOCK_INPUT.
+	(x_set_font):  Check result of x_new_font.  Call error if nonzero.
+	(x_set_icon_type): Check result of x_*_icon, maybe call error.
+
+	* screen.c (Fdeiconify_screen): Use x_make_screen_visible rather
+	than x_deiconify_screen.  Return screen.
+	(Fmake_screen_visible):  Don't raise it here.  Return screen.
+
+	* xterm.c (XTwrite_glyfs):  Don't show cursor if screen is
+	global-minibuffer-screen.
+	(x_new_selected_screen): Do dumpborder and check auto-raise here,
+	rather than XEvent switch.
+	(x_deiconify_screen): No longer exists.
+	(x_do_pending_expose, x_clear_cursor):
+	(x_invert_screen, scraplines, stufflines, x_bitmap_icon):
+	(x_text_icon,  x_new_font): Don't BLOCK_INPUT.
+	(XTins_del_lines):  BLOCK_INPUT here.
+	(XTupdate_end):  Don't turn on cursor if minibuffer-screen.
+	(XTread_socket): On MotionNotify, just that screen is selected before
+	processing.
+	(XTtopos):  If updating_screen, just set x and y, don't flush.
+	(x_bitmap_icon):
+	(x_text_icon):
+	(x_new_font):  Return 1 if failed, don't call error.
+	(x_make_screen_visible):  Raise the screen as well.
+
+1990-03-02  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* screen.c (Frelease_focused_screen):  Just check that screen is
+	selected.
+
+1990-02-28  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* screen.c (Fselect_screen_focused, Frelease_focused_screen):  New
+	subrs.
+	* xterm.c (x_focus_on_screen, x_unfocus_screen):  New procedures
+	to implement focusing.
+
+1990-02-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* casefiddle.c: Doc fix.
+
+1990-02-28  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.h:  Redefined BLOCK_INPUT and UNBLOCK_INPUT to use sigblock
+	and sigsetmask if available.
+	* xterm.c:  Declare BLOCK_INPUT_mask if have SIGIO and FIONREAD.
+
+1990-02-27  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* minibuf.c (Fread_from_minibuffer): Initialize pos to 0.
+
+1990-02-25  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (read_key_sequence): Handle mapped-screen event
+	symbol by calling new hook Vmap_screen_hook.
+
+	* xterm.c (x_make_screen_invisible):  Use the new Xlib function
+	XWidthdrawWindow.
+	(x_iconify_screen):  Use the new Xlib function XIconifyWindow.
+	(XTread_socket): Return mapped-screen symbol to signal
+	mapped-screen events.
+
+1990-02-23  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (command_loop_1):  Check the character for width 1
+	before doing direct_output_forward, as well as the cursor position
+	on the screen.
+
+	* xdisp.c (DoDsp):  Use redisplay_windows rather than
+	redisplay_all_windows, which was removed.
+
+1990-02-22  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* unexencap.c: New file, waiting for papers.
+
+1990-02-22  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c: Removed much debugging stuff.
+	* xterm.c: Removed much debugging stuff.
+	(x_error_handler): For X11, if caught BadAlloc error while
+	converting selection (note new variable x_converting_selection),
+	just set new variable x_selection_alloc_error.
+
+	* xfns.c:  Massive changes for crufty selection processing details.
+	New X atoms:  Xatom_clipboard, Xatom_delete, Xatom_insert_selection,
+	Xatom_insert_property, Xatom_pair.
+
+1990-02-21  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (kbd_buffer_store_char): Check NULL objects.
+
+	* xterm.c (XTread_socket): Correctly advance bufp for all KeyPress
+	events.
+
+1990-02-20  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (kbd_buffer_get_char):  Use KBD_BUFFER_SIZE rather
+	than sizeof kbd_buffer.
+	(read_key_sequence): Upon redraw-display symbol, set
+	screen_garbaged.
+
+	* xterm.c (XTread_socket): On EnterNotify events, make sure to
+	return mouse event for both scrollbars and windows.
+
+1990-02-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* casefiddle.c (casify_region): Move the new statement.
+
+1990-02-19  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* casefiddle.c (casify_region): Return if beginning and end same.
+
+1990-02-18  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (kbd_buffer_store_char): Use KBD_BUFFER_SIZE rather
+	than sizeof kbd_buffer.
+
+	* fns.c (Fy_or_n_p): Only accept ints from get_char.
+
+1990-02-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* minibuf.c (Fread_from_minibuffer): New arg POSITION.
+
+	* unexsunos4.c: New file.  Waiting for papers.
+	* s-sunos4shr.h: New file.
+
+	* emacs.c (main) [RUN_TIME_REMAP]: Call run_time_remap.
+
+	* ymakefile (LD): Let config file override with LD_CMD.
+
+1990-02-14  Joseph Arceneaux  (jla at albert.ai.mit.edu)
+
+	* keyboard.c (read_avail_input): pass read_socket_hook
+	KBD_BUFFER_SIZE rather than doing sizeof (buf).
+
+	* xterm.c (XTread_socket): Set event.type = MotionNotify when
+	entering screen or scrollbar to fake motion event.
+
+1990-02-13  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* window.c (next_screen, prev_screen): moved to screen.c
+	(Fnext_window): If mini non-nil, count the separate minibuffer
+	screen.
+	* screen.c (Fnext_screen): new subr.
+
+1990-02-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xdisp.c (display_text_line, try_window, try_window_id, DoDsp):
+	Don't display overlay arrow on more than one line in a window.
+
+1990-02-12  Joseph Arceneaux  (jla at albert.ai.mit.edu)
+
+	* doprnt.c (doprnt): Expand size of tembuf to 512.
+
+1990-02-10  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* minibuf.c (Fread_no_blanks_input): Make second arg optional.
+
+1990-02-09  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* keyboard.c (get_char): Remember to set obj when executing macro.
+	(read_key_sequence): Handle the exited-scrollbar symbol.
+	Compare obj, not read_key_sequence_cmd.
+
+	* xterm.c (x_make_screen_visible, x_deiconify_screen): Check
+	window-manager variable.
+	(x_make_screen_invisible, x_iconify_screen): Don't use new R4
+	calls (they crash), do it ourselves.
+	(XTread_socket): Return exited-scrollbar symbol when doing so.
+
+1990-02-08  Joseph Arceneaux  (jla at albert.ai.mit.edu)
+
+	* xterm.c (construct_mouse_event): Rewritten to do mouse-motion
+	compression.  All mouse processing now done here.
+	Also, just use nil and t for x-mouse-grabbed.  Record buttons
+	pressed in new variable x_mouse_grabbed.  XGrabPointer on button
+	depression. 
+	* xfns.c (Fx_horizontal_line): use x_mouse_grabbed.
+
+1990-02-07  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xdisp.c (DoDsp): If only updating selected screen, but there is
+	a minibuffer screen, update it as well.
+
+1990-02-06  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_pixel_width, Fx_pixel_height): New subrs.
+	* xterm.h New components pixel_width, pixel_height, to x_display.
+	* xterm.c (XTread_socket): On configure notify, set these components.
+
+	* window.c (Fset_window_configuration): Select the screen of the
+	root window if it's not the selected_screen.
+	* minibuf.c (read_minibuf): Remove all the screen selection stuff,
+	now that this is integrated in Fset_window_configuration.
+
+1990-02-05  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* screen.h: Declare Vglobal_minibuffer_screen.
+	* xdisp.c (DoDsp): Set all_windows if using global-minibuffer-screen.
+
+1990-02-03  Joseph Arceneaux  (jla at geech)
+
+	* window.c (Fset_window_configuration): Make sure to set
+	window->next to nil for a minibuffer-only screen.
+
+	* screen.c (make_minibuffer_screen): Set mini_window->next nil.
+
+1990-02-01  Joseph Arceneaux  (jla at albert.ai.mit.edu)
+
+	* screen.c (make_screen): Set wants_modeline elt to 1.
+
+	* window.c (Fset_window_configuration): Use screen->root_window
+	as arg to delete_all_subwindows rather than minibuf_window->prev.
+
+	* minibuf.c (read_minibuf): Don't unwind with
+	Frestore_screen_configuration.  Save selected_screen if different
+	than minibuf screen, and re-select it after reading minibuf.
+	* screen.c: #if 0 Fscreen_configuration,
+	Frestore_screen_configuration.
+
+1990-02-01  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-ibmps2-aix.h: Undef NEED_SIOCTL.
+	(SIGN_EXTEND_CHAR): Cast to `signed char'.
+
+1990-01-28  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xfns.c (Fx_track_pointer): rewrote this to loop while there are
+	mouse events.
+
+	* xterm.c (XTread_socket): Return left-window-event symbol upon
+	LeaveNotify.
+	* keyboard.c (read_key_sequence): Handle this symbol.
+
+1990-01-27  Joseph Arceneaux  (jla at churchy.ai.mit.edu)
+
+	* xterm.c (x_display_cursor): Use dumpglyfs with SPACEGLYF for
+	cursor, as `XFillRectaogle's kill HP-BSD server.
+
+	* xterm.h: Added nontext_cursor, modeline_cursor to x_display
+	structure.
+	* xfns.c (x_set_mouse_color, Fx_track_pointer): Changes to use
+	nontext_cursor.
+
+1990-01-25  Joseph Arceneaux  (jla at albert.ai.mit.edu)
+
+	* xterm.h: Changed the face structure for X11 to handle GCs and
+	pixmaps.
+
+	* xterm.c (XTread_socket): Return a motion event when mouse enters
+	scrollbar or window.
+	(x_make_screen_invisible): Use the new X11R4 function XWithdrawWindow.
+	(x_iconify_screen): Use the X11R4 function XIconfifyWindow.
+	(dumpglyfs): Use the new face structure.
+
+	* xfns.c (install_vertical_scrollbar, install_horizontal_scrollbar):
+	Accept EnterNotify events.  Use XMapSubwindows rather than mapping
+	each one.
+	(Fx_set_face_font): New subr for X11 to set face GC.
+
+1990-01-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dispnew.c (direct_output_for_insert): Give up if buf in 2 windows.
+
+	* keyboard.c (command_loop_1):
+	Dumb bugs disabled special fast display for character motion.
+
+	* xdisp.c (DoDsp): For cursor motion within line,
+	hpos result from compute_motion is relative to window.
+
+1990-01-24  Richard Stallman  (rms at albert.ai.mit.edu)
+
+	* eval.c (Fmacroexpand): Handle explicit macros ((macro ...) ...).
+
+1990-01-18  Joseph Arceneaux  (jla at spiff)
+
+	* undo.c (Fundo_more): Fixed typo.
+
+1990-01-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xdisp.c (display_text_line): When checking HPOS for continuation
+	line, compensate for w->left.
+
+1990-01-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dispnew.c [no FIONREAD]: Undefine SIGIO.
+
+	* buffer.c (SetBfp): Use XTYPE to test for no selected window yet.
+
+	* editfns.c, dispnew.c, fileio.c, process.c, sysdep.c, xterm.c:
+	Uniformly let NEED_TIME_H control use of time.h instead of sys/time.h.
+
+	* xterm.h (TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT): Don't use
+	SIGIO if no FIONREAD.
+
+1990-01-15  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (x_set_mouse_color): Set non-text pointer shape with new
+	variable Vx_nontext_pointer_shape.
+
+	* keyboard.c: More checks for evil bug which trashes kbd_*_ptr.
+
+	* m/hp300bsd.h: Try using BSD load average stuff.
+
+1990-01-11  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (x_draw_pixmap): New routine.
+
+1990-01-10  Jim Kingdon  (kingdon at pogo)
+
+	* m/hp300bsd.h: New file
+
+1990-01-08  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_window_id): New subr.
+
+	* screen.c (make_screen): Set wants_modeline elt to mini_p.
+	If mini_p 0, then set root_window->next to nil.
+
+1990-01-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* editfns.c (Fchar_after): Set N after coercing marker.
+
+1990-01-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* buffer.c (Fkill_all_local_variables): Force mode line update.
+
+1990-01-05  Joseph Arceneaux  (jla at spiff)
+
+	* insdel.c: Declare Vfirst_change_function.
+
+	* keyboard.c (read_key_sequence): Function keys are now lisp symbols.
+	(kbd_buffer_store_char): Abort if store pointer past
+	buffer.  Temproarry; This shouldn't be able to happen.
+	(read_key_sequence):  #ifdef HAVE_X_WINDOWS code
+	which handles complex objects.
+	(command_loop_1): Check not termcap screen before 
+	processing non-char input.
+	(kbd_{store,fetch}_char): More debugging checks.
+
+	* screen.c (make_screen): Set root_window height to 9 if mini_p.
+	(make_minibuffer_screen): Set the mini window's next,
+	prev, and screen elements.
+
+	* xterm.c (x_func_key_to_sym): New function, uses new variable
+	func_key_syms.
+	(XTread_socket): Use this in KeyPress event for function keys.
+	(XTflash): Draw solid rectangle in middle of screen.
+	(x_set_offset): Set the size hints as well when doing
+	this.
+	(XTflash): Just dumpglyfs instead of redrawing the
+	screen after flashing the rectangle.
+
+	* lread.c: (syms_of_lread): defsubr Fread_event.
+
+1990-01-04  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* buffer.h, buffer.c (Vfirst_change_function): New Lisp variable. 
+	* insdel.c (signal_before_change): Call that function.
+
+	* keyboard.c (cmd_error): Don't crash if TAIL is nil.
+
+1989-12-31  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* minibuf.c: Doc fixes.
+
+1989-12-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (create_process): Unhold SIGCHLD in the child.
+
+1989-12-27  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (create_process): Treat HPUX like BSD for sigsetmask.
+
+1989-12-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fns.c (Fmapconcat): Gcpro SEP around mapcar1.
+
+1989-12-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dispnew.c (get_display_line): Don't touch X data if not using X.
+
+	* syntax.c (Fscan_sexps): Fix fatal documentation typo.
+
+	* lread.c: Include commands.h.
+
+	* xterm.c (construct_mouse_event): Delete unreached return at end.
+	(x_wm_set_size_hint): #if 0 some broken code.
+
+	* cmds.c (SelfInsert): Set HAIRY if have before or after change hooks.
+	* editfns.c (Fsubst_char_in_region, Ftranslate_region):
+	Call signal_after_change for chars changed.
+	* undo.c (Fundo_more): When undoing Uchange, do signal_after_change.
+	* casefiddle.c (casify_region): Do modify_region before the change,
+	signal_after_change afterward.
+
+	* insdel.c (prepare_to_modify_buffer): Call signal_before_change.
+	(del_range, InsCStr): Call signal_after_change.
+	(signal_after_change, signal_before_change): New functions.
+
+1989-12-20  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dispnew.c (init_display) [VMS]: Downcase terminal type.
+
+1989-12-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c: Use NEED_SIOCTL to control use of sioctl.h.
+	* m/m-mips.h, m/m-iris4d.h: Define that.
+
+	* m/m-ibmps2-aix.h (NEED_SIOCTL, HAVE_UNION_WAIT, HAVE_PTYS): Define.
+	(HAVE_SYSVIPC, HAVE_SOCKETS, X_DEFAULT_FONT): Define.
+	(sigsetmask): #undef this.
+
+1989-12-15  Joseph Arceoeaux  (jla at spiff)
+
+	* lread.c (Fread_char): Catch error if read non-char.
+	(Fread_event): New subr.  Return any input object.
+
+1989-12-14  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c: New variable Vx_no_window_manager.
+	 (Fx_track_pointer):  If bufp < 0, abort.
+
+	* xterm.c (XTread_socket):  When leaving window, set x_mouse_x and
+	x_mouse_y to -1.
+
+1989-12-13  Joseph Arceneaux  (jla at spiff)
+
+	* xterm.c (XTread_socket): On ConfigureNotify events, return
+	"redraw-screen" symbol.
+	(dumpborder): Only do border stuff if x-no-window-manager non nil.
+	Also check if there is a tracking rectangle.
+	(XTupdate_begin): If there is a mouse tracking rectangle, erase
+	it.
+	* keyboard.c (read_key_sequence): Return -2 for symbols.
+	(command_loop_1): DoDsp when 'redraw-screen arrives as input.
+	For mouse events, call Fexecute_mouse_event with
+	read_key_sequence_cmd instead of Vmouse_event.
+
+1989-12-08  Joseph Arceneaux  (jla at spiff)
+
+	* process.c (create_process):  For not USG, properly set the
+	process group.
+
+1989-12-07  Joseph Arceneaux  (jla at spiff)
+
+	* term.c (topos):  Under X Windows, abort if topos_hook not
+	correct.  Temporary.
+
+	* xfns.c (Fx_horizontal_line): New subr.
+
+1989-12-05  Joseph Arceneaux  (jla at spiff)
+
+	* keyboard.c (Fexecute_mouse_event): Don't set Vmouse_window here
+	for X11.
+
+	* xterm.c (construct_mouse_event): Vx_mouse_grabbed now indicates
+	which keys are depressed.
+	(construct_mouse_event): Set Vmouse_window here.
+
+1989-12-04  Joseph Arceneaux  (jla at spiff)
+
+	* screen.c (coordinates_in_window): New function.
+	(Fcoordinates_in_window_p):  Rewritten to use above.
+
+	* dispextern.h: New element bufp for display_line structure when
+	using X windows.
+	* xdisp.c (redisplay_window): Set this to the position in the
+	buffer of the first char in this display line.
+	* dispnew.c (get_display_line): Set this to -1 here.
+
+1989-12-03  Joseph Arceneaux  (jla at spiff)
+
+	* alloc: Upped NSTATICS from 200 to 256.
+
+	* xterm.c (XTread_socket):  Report MotionNotify events only if
+	mouse has changed character position.  Call x_read_mouse_position.
+	Set Vmouse_event here.
+	* xfns.c (x_read_mouse_position): Set new global variables
+	x_mouse_x and x_mouse_y.
+
+	* keyboard.c: Vignore_mouse_events:  New variable.
+
+	* syntax.c (Fscan_sexps): Doc change.
+
+	* lread.c (Fread_char): Return only chars.  If new variable
+	Vignore_mouse_events non nil, execute any mouse events which
+	appear.
+
+1989-12-01  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_track_pointer): Draw half-sized rectangles for '\n'.
+	(x_rectangle): Draw half-size if negative argument.
+
+	* xterm.c (XTread_socket): abort if garbage collecting when doing
+	mouse events.
+
+	* ymakefile: #define FLOATSUP if LISP_FLOAT_TYPE defined.
+
+	* emacs.c (main): If BSD, set pgrp to pid.
+
+1989-11-30  Joseph Arceneaux  (jla at spiff)
+
+	* callint.c (Fcall_interactively): For case 'e', set varies[i] to
+	avoid entering in the command history.
+
+	* xterm.c: Removed the function x_indicate_pointer_char.
+	(XTread_socket): When leaving window, erase mouse tracking box if
+	it exists.
+	* xfns.c (Fx_track_pointer): New function, does what
+	x_indicate_pointer_char used to.
+	(x_read_mouse_position): Subtract internal_border_width.
+
+	* screen.c: No rubber-banding function for X11.
+
+	* window.c (Fmove_to_window_line): Document string fix.
+
+1989-11-29  Joseph Arceneaux  (jla at spiff)
+
+	* lread.c (Fread_char):  Return a Lisp_Object (directly from
+	get_char).
+
+	* keyboard.c:
+	* xterm.c: Function keys now arrive as cons cells.
+
+1989-11-27  Joseph Arceneaux  (jla at spiff)
+
+	* keyboard.c (read_key_sequence): Handle Lisp_Symbols on input
+	(function keys).  Also, handle these and mouse events with
+	prefixes (by ignoring the prefixes for now).
+
+	* xfns.c New variable Vx_mouse_grabbed.
+	* xterm.c (construct_mouse_event): Use it.
+	(XTread_socket): Return Lisp_Symbol for function key.
+
+	* buffer.c (reset_buffer_local_variables): Set function_key_map to
+	Qnil.
+
+1989-11-24  Joseph Arceneaux  (jla at spiff)
+
+	* buffer.h: Per-buffer function key maps.
+
+	* keyboard.c (read_avail_input): Convert chars to Lisp_Objects in
+	case of stdin.
+
+1989-11-22  Joseph Arceneaux  (jla at spiff)
+
+	* keyboard.c (read_key_sequence): Check type of object returned
+	from get_char.  Handle mouse events (set Vmouse_event) and
+	function keys.
+	(get_char_menu_prompt): Return a Lisp_Object.
+	(Fexecute_mouse_event): No longer set Vmouse_event.
+	Vmouse_window set here.
+
+	* xterm.c (XTread_socket): KeyPress events now return
+	Lisp_Objects, as do ButtonPress events.
+	(construct_mouse_event): New function.
+	(encode_mouse_button): New function.
+
+1989-11-21  Joseph Arceneaux  (jla at spiff)
+
+	* keyboard.c (kbd_buffer_store_char, kbd_buffer_get_char):
+	Store and get Lisp_Objects.
+	(get_char): Use those Lisp_Objects.
+
+	* fileio.c (Fread_filename_internal): If exactly complete, but
+	string was modified, return string.
+
+	* minibuf.c (temp_minibuf_message): Pass correct arguments to Fsit_for.
+
+1989-11-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* s-386-ix.h: New file.
+
+1989-11-17  Joseph Arceneaux  (jla at spiff)
+
+	* xterm.c (dump_rectangle): Flush the X queue.
+
+1989-11-16  Joseph Arceneaux  (jla at spiff)
+
+	* xmenu.c (xmenu_show): Use ButtonReleaseMask instead of
+	ButtonRelease.
+
+	* fileio.c (Fmake_directory): New subr.
+
+1989-11-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* config.h-dist (C_SWITCH_SITE, LD_SWITCH_SITE): Mention these.
+	(HAVE_X11): Renamed from X11 and defined by default.
+	It shoukld have no effect when not using X.
+
+1989-11-14  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_get_selection, x_selection_arrival): use &event
+	instead of event.
+	(x_selection_arrival): For incremental selections, loop on
+	XGetWindowProperty if one is not enough.
+
+1989-11-13  Joseph Arceneaux  (jla at spiff)
+
+	* ymakefile: Just link if ../oldXMenu/libXMenu11.a already exists.
+
+1989-11-09  Joseph Arceneaux  (jla at spiff)
+
+	* m/m-sparc.h: If __GNUC__ use "-O", else "-O2"
+
+1989-11-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* search.c (Fstore_match_data): A marker pointing nowhere, treat as 0.
+
+1989-11-08  Joseph Arceneaux  (jla at spiff)
+
+	* search.c (Fmatch_data): fixed typo.
+
+	* insdel.c (make_gap): Use BUFFER_REALLOC instead of realloc.
+	* buffer.c (Fget_buffer_create): Use new define BUFFER_ALLOC in
+	place of malloc, and set b->data.
+	(Fkill_buffer): Use BUFFER_FREE on b->data, rather than malloc on
+	b->p1 + 1.
+	* buffer.h: New element data in buffer_text structure.
+	New define for it, bf_data.
+
+1989-11-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* marker.c (Fset_marker): Don't force POS into visible range.
+	* window.c (set_marker_restricted): New function does what
+	Fset_marker did.  All calls in this file now use the new function.
+
+1989-11-07  Joseph Arceneaux  (jla at spiff)
+
+	* buffer.h: Defines for allocating buffer variables.
+
+	* ralloc.c: Completely rewritten.
+
+	* alloc.c (xmalloc, xrealloc): Return 0 immediately for requests
+	of 0 size.
+
+1989-11-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* search.c (Flooking_at, Fstring_match, search_buffer):
+	Record in search_regs_from_string whether matching against a string.
+	(Fmatch_data): Save data as integers if from a string.
+
+	* s-umips.h: Now include either s-usg5-2-2.h or s-bsd4-3.h
+	and then override as needed.
+	* m-mips.h: System dependence deleted.
+	LD_SWITCH_MACHINE remains w/ options needed on all systems.
+	* m-pmax.h: A little of that (LIBS_DEBUG) moved here.
+	No need to undef LIBS_MACHINE.
+
+	* fns.c (Fload_average): FIXUP_KERNEL_SYMBOL_ADDR is now general hook.
+	* s-umips.h: Define it.
+
+	* sysdep.c: Handle BROKEN_FIONREAD.
+
+1989-11-03  Joseph Arceneaux  (jla at spiff)
+
+	* config.h-dist: Mention LISP_FLOAT_TYPE, GNU_MALLOC, and REL_ALLOC.
+
+	* s/s-umips.h: New file.
+
+1989-11-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (Fopen_network_stream): Handle EINTR in connect.
+	Describe errno in err msg if connect fails.
+
+1989-11-02  Joseph Arceneaux  (jla at spiff)
+
+	* vm-limit.c: New file.
+	* ralloc.c: New file.
+	* ymakefile: Take vm-limit.o into account.
+
+1989-11-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* alloc.c (staticvec): Make this a simple vector of pointers
+	rather than an alias for a vector of chars.
+
+1989-11-01  Joseph Arceneaux  (jla at spiff)
+
+	* window.c: Moved some functions (save_window_save,
+	replace_window, unshow_buffer) around.
+	* search.c: Moved function place.
+	* lread.c: Moved function read_escape.
+	* unexec.c: Declarations for make_hdr, copy_text_and_data,
+	copy_sym.  Declare mark_x as static void.
+	* dispextern.h: removed declaration of new_display_line.
+
+	* emacs.c: Do malloc_init if GNU_MALLOC.
+	* gmalloc.c: (malloc_init): New function.
+
+	* xfns.c (x_rectangle, Fx_draw_rectangle, Fx_erase_rectangle,
+	outline_region, Fx_countour_region, Fx_uncontour_region): New
+	subroutines for drawing rectangles and things.
+	(Fx_point_coordinates): New subr.
+
+1989-10-31  Joseph Arceneaux  (jla at spiff)
+
+        * All .c and .h files: New copyright header.
+
+1989-10-30  Joseph Arceneaux  (jla at spiff)
+
+	* gmalloc.c: New GNU malloc.
+
+	* emacs.c (main, Fdump_emacs): No malloc init if GNU_MALLOC.
+
+	* ymakefile: Check if GNU_MALLOC defined.
+
+1989-10-27  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_pointer_char): New subr.
+	* xterm.c (x_indicate_pointer): New procedure.
+
+	* alloc.c (Fmake_vector_from_list, make_vector_from_list): New subrs.
+
+1989-10-26  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xterm.c (x_term_init):
+	Negate arg to fcntl F_SETOWN if F_SETOWN_SOCK_NEG.
+	* keyboard.c (Fset_input_mode) [NO_SOCK_SIGIO]:
+	No interrupt input if using a socket.
+	* m-sequent.h: Define NO_SOCK_SIGIO, F_SETOWN_SOCK_NEG, MAIL_USE_FLOCK.
+
+1989-10-26  Joseph Arceneaux  (jla at spiff)
+
+	* xterm.c (x_handle_error_gracefully): Make sure to completely
+	release input before returning, using:
+	* xterm.h New macro TOTALLY_UNBLOCK_INPUT.
+
+	* xmenu.c (xmenu_quit): No longer use this error_handler; use
+	default one.
+
+1989-10-25  Joseph Arceneaux  (jla at spiff)
+
+	* config.h-dist: Comment fix.
+
+1989-10-24  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_draw_lines, translate_vectors): New functions.
+
+1989-10-21  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* search.c (search_buffer): Always find null string.
+
+	* window.c (window_loop): For UNSHOW_BUFFER, don't Fset_buffer
+	unless window is the selected one.
+
+1989-10-20  Joseph Arceneaux  (jla at spiff)
+
+	* xdisp.c (display_minibuf_message): Choose minibuf screen first
+	of all.  Return if not visible.
+
+1989-10-19  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c (x_handle_error_gracefully): New procedure to handle
+	non-fatal X errors.
+	(x_error_handler): Use it.
+	(acceptable_x_error_p): New macro.
+
+	* xfns.c (Fx_own_selection): Use second parameter SCREEN.
+
+	* xdisp.c: (message, message1): No longer displays messages
+	when using X but not yet mapped. 
+
+1989-10-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-pyramid.h (NO_ARG_ARRAY): Define if using GCC.
+
+1989-10-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* vmsfns.c (process_command_input): Call clear_waiting_for_input.
+
+1989-10-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* syntax.c (scan_words): If words_include_escapes not 0,
+	treat Sescape and Scharquote like Sword.
+	(syms_of_syntax): Define Lisp variable.
+
+	* process.c (wait_reading_process_input): Get rid of kbd_count.
+	Use detect_input_pending.
+	* sysdep.c (select, read_input_waiting): Likewise.
+	(read_input_waiting): Don't read directly into kbd_buffer;
+	use kbd_buffer_store_char.
+	* keyboard.c: Don't define kbd_count.
+
+	* keyboard.c (read_key_sequence): Reject the prefix char generated
+	for a Meta char, if it finds a non-prefix definition.
+
+1989-10-13  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): READ_KBD==2 means
+	wait until have mouse input.
+	* xfns.c (Fx_get_mouse_event): Use that.
+	* xterm.c (mouse_event_pending_p): New subroutine.
+
+1989-10-13  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c (x_selection_arrival):
+	(x_send_incremental):
+	(x_answer_selection_request): New procedures for incremental
+	selection transfer.
+
+1989-10-12  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* lread.c (complete_filename_p): New function which replaces
+	absolute_filename_p.   This one doesn't consider "~" valid.
+
+1989-10-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* buffer.c: Comment fix.
+
+1989-10-11  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c: (Fx_open_connection) New X atoms Xatom_incremental and
+	Xatom_multiple.
+
+	* xterm.h: New macros MAX_SELECTION and SELECTION_LENGTH.
+
+	* process.c (child_sig):  Check pid <= 0 in case WNOHANG not defined.
+
+1989-10-11  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* termcap.c (tgetent, gobble_line): Always store null at end of bfr.
+	Allocate one extra byte at end to ensure space.
+	Clean up order of arithmetic when updating ptrs into buffer
+	after xrealloc.
+
+1989-10-10  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c (Fx_open_connection): Make all X Atoms here.
+
+	* xterm.c: (x_iconify_screen):
+	(x_iconify_screen): Cleaned up this code.
+	(x_term_init): Removed warpmouseondeiconify stuff.
+
+1989-10-09  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xdisp.c (DoDsp): Make sure to call unhold_window_change after
+	before all returns. 
+
+	* minibuf.c (read_minibuf): Changed set_mouse_position to
+	Fset_mouse_position.
+
+	* xterm.c (XTread_socket): dumprectangle (whole screen) instead of
+	DoDsp in ConfigureNotify event.
+	(x_wm_set_size_hint): New calculations for size_hints.
+
+	* screen.c (Fset_mouse_position): No more function
+	set_mouse_position; use x_set_mouse_position directly.
+
+	* xfns.c (x_set_cursor_color): Really decode Vx_cusor_fore_pixel
+	if set.  Define new cursor before freeing old.  This may eliminate
+	a server bug on the Sony.
+	Also check for invisible cursors.
+	(x_set_mouse_color): Check for invisible pointers.
+	(x_resize_scrollbars): BLOCK_INPUT whilst doing operations.
+	(adjust_scrollbars): Likewise.
+
+1989-10-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m/m-hp9000s800.h (XUNMARK): Delete definition.
+	(S_IFLNK): Do not undef it.
+
+1989-10-03  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* dispnew.c (get_display_line): If screen not visible, abort.
+
+1989-10-02  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c (x_make_screen_visible): Set s->visible, unset
+	s->iconified for HAVE_X11.
+
+1989-09-29  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c (XTread_socket): Check screen s before proceeding for
+	MapNotify event.
+
+	* xterm.c: No longer sets the variable mouse_down_timestamp.
+	* xfns.c: (Fx_get_mouse_event) mouse_timestamp
+	 (formerly mouse_down_timestamp) set here.  Also, mask out upper 9
+	 bits before doing XSET.
+
+1989-09-28  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c (Fx_geometry): Kludge for the case of position `-0'.
+	(Fx_get_mouse_event): Also return the time stamp as last list elt.
+	(Fx_color_display_p):
+	(Fx_defined_color):
+	(x_decode_color):
+	(defined_color): Eliminate screen argument.
+	(Fx_create_screen): No more ColorMap component to display.x.
+	* xterm.h: Likewise.
+
+1989-09-27  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c (Fx_own_selection):
+	 (Fx_get_selection):
+	 (x_disown_selection): new funcs, which use new variables
+	 Vx_selection_value, x_begin_selection_own, mouse_down_timestamp,
+	 requestor_time, requestor_window, property_name, and
+	 x_begin_selection_own.
+
+	* xterm.c (XTread_socket): Only do stuff if s for FocusOut under X11.
+	SelectionClear:
+	SelectionRequest:
+	SelectionNotify:  New events to handle the selection inter-client
+	communication mechanism.
+	ButtonPress: Set mouse_down_timestamp.
+
+1989-09-26  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c: New variable Vx_cursor_fore_pixel.
+
+1989-09-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lread.c (openp): Don't ! the result of `access'.
+
+1989-09-22  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c (Fread_file_name_internal): Try to work properly
+	if dirs are specified using environment vars.  Preserve use of vars.
+
+1989-09-21  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c: Comment fix.
+
+1989-09-18  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_get_cut_buffer): XFree the data returned by
+	XFetchBytes.
+
+1989-09-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c (Fwrite_region): Reinstall #if 0 around fstat.
+
+1989-09-12  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (defined_color): New function to test if a color is
+	currently defined.
+	(x_decode_color): Use defined_color.
+	(Fx_defined_color): New subr.
+	(select_visual): Select the appropriate X11 Visual.
+	(Fx_open_connection): Use select_visual.  screen_visual now
+	global and used when making emacs windows.
+	(Fx_color_display_p): New subr.
+
+1989-09-11  Joseph Arceneaux  (jla at spiff)
+
+	* fileio.c (Fwrite_region): fixed typo.
+
+	* keyboard.c (Fdiscard_input): fixed typo.
+
+	* window.c (Fnext_window): fixed typos.
+
+	* alloc.c (xmalloc, xrealloc): hold_window_changes whilst doing
+	the associated operations.
+
+	* dispnew.c (init_display): 
+	(Fsleep_for, Fsit_for): 
+	* process.c (Faccept_process_output): 
+	* keyboard.c ({clear,set}_waiting_for_input):
+	(quit_throw_to_get_char, get_char): 
+	* xdisp.c (DoDsp, message, message1): Undid changes of Aug. 23
+	(see below);  accept window changes most of the time.
+
+1989-09-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keyboard.c: Eliminate kbd_count, and use two pointers,
+	kbd_fetch_ptr and kbd_store_ptr.  Assume buffer is empty when
+	they are equal.  This should eliminate timing error.
+	(kbd_buffer_store_char): Update kbd_store_ptr when storing.
+	Don't ever fill the entire buffer.
+	(kbd_buffer_get_char): Update kbd_fetch_ptr when fetching.
+	(stuff_buffered_input): Likewise.
+	(get_input_pending): Compare the two pointers.
+
+	* fileio.c (Fwrite_region): Reenable using fstat rather than stat
+	to get the modtime of the file just written, except on VMS and APOLLO.
+
+1989-09-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emacs.c, doc.c, filelock.c: Move Emacs header includes after
+	system header includes, and #undef NULL in between.
+
+1989-08-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c [SYSV_PTYS]: If `titan', include some other files.
+
+1989-08-29  Joseph Arceneaux  (jla at spiff)
+
+	* fileio.c: read-file-name replaced with new version, formerly
+	called new-read-file-name.
+
+1989-08-26  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* window.c (Fscroll_other_window): Use save-excursion (in effect)
+	to save and restore current buffer and point.
+	(window_scroll): If selected window's buffer isn't current,
+	make it current, using save-excursion to go back.
+
+1989-08-24  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* Use two variables to convey reason for synch process death,
+	to avoid consing in signal handler.
+	They are synch_process_death and synch_process_retcode.
+	* callproc.c (Fcall_process): Use both variables.
+	* process.c (child_sig): Set both variables.
+
+1989-08-24  Joseph Arceneaux  (jla at spiff)
+
+	* xterm.c (x_wm_set_size_hint): Use new ICCCM values for size_hints.
+
+1989-08-24  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* buffer.c: Doc fix.
+
+1989-08-24  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_create_screen): X11 part.  Set height and width to 0
+	before calling change_screen_size.
+
+	* buffer.c (kill-all-local-variables): Changed doc string.
+
+1989-08-23  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* dispnew.c (init_display): Call hold_window_change.
+	(Fsleep_for, Fsit_for): Temporarily unhold, while waiting.
+	* process.c (Faccept_process_output): Likewise.
+	* keyboard.c ({clear,set}_waiting_for_input): Temporarily unhold.
+	(quit_throw_to_get_char, get_char): Rehold.
+	* xdisp.c (DoDsp, message, message1):
+	Unhold and rehold momentarily before any real work.
+
+	* Makefile (CPP): Use $(CC).
+
+1989-08-22  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (x_set_mouse_color): Use new variables Vx_pointer_mask,
+	Vx_pointer_shape.
+
+1989-08-21  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+
+	* alloc.c (malloc_warning): Do nothing if ignore_warnings.
+	(init_alloc_once): Set ignore_warnings while initializing allocation.
+
+	* buffer.c: Doc fix.
+
+1989-08-21  Joseph Arceneaux  (jla at spiff)
+
+	* xterm.c (x_calc_absolute_position): New function to calculate
+	positive screen position.
+	(x_set_position): Use it.
+	(x_reset_cursor): No longer exists.
+
+	* xfns.c (x_set_mouse_color): Reset the cursor even if there's no
+	X window.
+	(x_figure_window_size): Use x_calc_absolute_position.
+	(x_set_mouse_color): Rewrote this function.  Always set cursor and
+	its color.  If the window exists, then attach the cursor to it.
+	No longer uses x_reset_cursor.
+	(x_create_window):
+	(x_set_background):
+	(x_set_foreground): Use x_set_mouse_color instead of x_reset_cursor.
+
+1989-08-18  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* vmsfns.c: Define PRV$V_... syms if prvdef.h does not.
+
+1989-08-18  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_geometry): New subr.
+	(x_figure_window_size): Don't worry about "geometry" here anymore;
+	now done in x-win.el.
+	(x_icon): Look in parms for iconic-startup rather than in variable.
+
+1989-08-16  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (x_set_*_scrollbar): Don't destroy a scrollbar if it
+	doesn't exist.  Also set scrollbar size only if actually creating
+	one.
+	(x_set_name): Don't do anything if the X window doesn't exist.
+	Set the icon name as well.
+	(x_window): Set the class hints for the window.
+
+1989-08-16  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* lread.c (Fload): Fix unterminated comment.
+
+	* scroll.c (scrolling_max_lines_saved): Replace fixed threshold of 20
+	with 1/4 of average length of lines.
+
+1989-08-13  Joseph Arceneaux  (jla at spiff)
+
+	* ymakefile: Do ${make} for oldXMenu.
+
+1989-08-13  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* eval.c: Doc fix.
+
+1989-08-12  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* emacs.c (main): Check for failure opening -t device.
+	Fatal error if terminal isn't a real terminal.
+
+	* window.c (Fscroll_other_window): Let Vother_window_scroll_buffer
+	specify a buffer to scroll.
+
+1989-08-11  Richard Stallman  (rms at hobbes.ai.mit.edu)
+
+	* dispnew.c: Handle BROKEN_FIONREAD as in other files.
+
+1989-08-09  Joseph Arceneaux  (jla at spiff)
+
+	* ../oldXMenu/Makefile: Removed all the unneccessary X stuff.
+
+1989-08-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c (barf_or_query_if_file_exists): When signalling,
+	provide the expected args for a file-error.
+
+1989-08-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c: Let NEED_BSDTTY control include of bsdtty.h.
+
+	* process.c [BSD or STRIDE]: If ioctl.h fails to define O_NDELAY,
+	and we need it, try fcntl.h.
+
+	* s-bsd*.h, s-rtu.h, s-umax.h, s-unipl*.h: Define HAVE_UNION_WAIT.
+	* m-stride.h: Likewise.
+	* process.c: Decide which type to use with `wait'
+	according to HAVE_UNION_WAIT.  If WAITTYPE already defined,
+	assume everything all set up for this.
+
+	* m-hp9000s300.h: Unless NOT_C_CODE or NO_SHORTNAMES,
+	define WAITTYPE and WRETCODE, and include sys/wait.h.
+
+1989-08-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* callproc.c (child_setup): Get rid of junk in #if 0.
+
+1989-08-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* abbrev.c (Fdefine_abbrev): Allow nil spec'd as expansion.
+	(Fexpand_abbrev): Eliminate abbrev length limit; use alloca.
+	Eliminate redundant tests, always true.
+	Record positions of both start and end of abbrev.
+	Handle whitespace following the abbrev, before point.
+
+	* callproc.c (Fcall_process_region): Use unwind-protect to delete
+	temp file.
+
+	* lread.c (load_unwind): Free the pointer-word malloc'd in Fload.
+
+1989-08-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emacs.c (Fdump_emacs): Doc fix.
+
+1989-08-02  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c: Reorganized several functions to be in same order as the
+	enum list.
+	(x_set_border_color): For X11, don't set pix to -1 for
+	gray values.
+	(Fx_create_screen): Simplified this function even more.
+
+1989-07-31  Joseph Arceneaux  (jla at spiff)
+
+	* keymap.c: New subrs Fuse_local_mouse_map, Fcurrent_local_mouse_map.
+
+	* xfns.c (x_set_mouse_color):
+	(x_set_cur): No need to redraw display after doing these.
+
+	(Fx_get_mouse_event): Accept motion events.
+	(x11_encode_mouse_button): Encoding a la X11, except for one
+	kludge.  This is used only for motion events.
+
+	* xterm.c (XTread_socket): Handle motion eveots.
+	
+1989-07-26  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_create_screen): I couldn't take it any more, the
+	ugliness of this routine offended me too deeply.  It is now
+	completely rewritten for X11 and uses subroutines:
+	(x_figure_window_size)
+	(x_create_window)
+	(x_icon)
+	(x_make_gc)
+
+	(Fx_draw_rectangle):
+	(Fx_erase_rectangle): New subrs.
+
+	* m/m-intel386.h: Changes in LOAD_AVE_TYPE, LOAD_AVE_CVT, and
+	FSCALE to make loadst work correctly.
+
+1989-07-24  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fmodify_screen_parameters): Check s->output_method
+	before looping through alist.
+
+	(Fx_create_screen): Call x_default_parameter for font.
+	Don't add the scrollbar widths when making the main window:  this
+	is done when the scrollbar is actually made.
+
+	(x_set_vertical_scrollbar): Set v_scrollbar_width here instead of
+	in install_vertical_scrollbar.  Also, pass that function macros
+	PIXEL_WIDTH, PIXEL_HEIGHT as args.
+
+	(x_set_horizontal_scrollbar): Likewise.
+
+	* xterm.c: (x_set_window_size): Don't call the things called
+	anyway upon the ConfigureNotify event.
+	(x_set_offset): Use the screen-size lisp variables for these
+	calculations.
+
+	* xterm.h: Added the screen parameter declarations from xfns.c for
+	X11.
+
+1989-07-21  Joseph Arceneaux  (jla at spiff)
+
+	* sysdep.c: Don't include sioctl.h on mips.
+
+	* buffer.c  (Flist_buffers): Pass prefix as arg.
+
+	* editfns.c (Finsert_char): Insert at most 256 chars at a whack.
+
+	* xterm.c (x_draw_box): Moved cursor box right by one pixel.
+
+1989-07-20  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c: New variable x_screen_visuals, set if Fx_open_display,
+	to be used in screen-color-p.
+
+	* process.c (create_process): Don't call setpgrp_of_tty here.
+	Also, do setpgrp for USG regardless of HAVE_PTYS.
+
+	* callproc.c (child_setup): Ignore argument set_pgrp and always do
+	setpgrp_of_tty.
+	(Fcall_process): Don't call setpgrp_of_tty here.
+
+	* keyboard.c (command_loop_1): Make sure Vprefix_arg is NULL
+	before finalizing_kbd_macro_chars;
+
+1989-07-19  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c (Fx_rebind_key): Completely rewrote this function for
+	X11.
+
+1989-07-13  Joseph Arceneaux  (jla at spiff)
+
+	* emacs.c:
+	* process.c:
+	* unexec.c:
+	* m/m-ibmrt-aix.h: Changed IBMRTAIX to IBMAIX.
+	* sysdep.c: Likewise.  Also, don't define our closedir if IBMAIX.
+	* m/m-ibmps2-aix.h: New file.
+
+1989-07-12  Joseph Arceneaux  (jla at spiff)
+
+	* xdisp.c (message, message1): If using x, but haven't mapped the
+	window yet, use noninteractive output.
+
+	* dispnew.c (Fredraw_display): Don't redraw a screen which is not
+	visible.
+
+	* xterm.c (x_set_window_size): Don't DoDsp if screen isn't visible.
+
+	* xfns.c (x_set_mouse_color)
+	(x_set_border_color)
+	(x_set_cursor_color)
+	(x_set_background_color)
+	(x_set_foreground_color): Don't redraw when screen isn't visible.
+
+1989-07-11  Joseph Arceneaux  (jla at gluteus)
+
+	* xterm.c (x_term_init, XTread_socket):  Use ConnectionNumber for
+	both X10 and X11.  This is #defined for X10.
+
+	* screen.c (Fset_screen_width, Fset_screen_height): These now take
+	a SCREEN argument.
+
+1989-07-10  Joseph Arceneaux  (jla at gluteus)
+
+	* xterm.c (x_set_window_size): Call x_wm_set_size_hint.
+	(x_new_font): Don't call x_wm_set_size_hint.
+
+	* xfns.c (x_set_internal_border_width): Don't call
+	x_set_resize_hint, and call x_set_window_size after BLOCK_INPUT.
+
+	* screen.c, dispnew.c (Fset_screen_width, Fset_screen_height):
+	These functions have moved to screen.c.
+
+1989-07-07  Joseph Arceneaux  (jla at sugar-bombs.ai.mit.edu)
+
+	* eval.c (Ffuncall): Handle 6 arguments.  Also, print a nice error
+	message if there are more than 6 args.
+
+	* fns.c: (Fyes-or-no-p):
+	* minibuf.c: (read_minibuf_unwind):
+	(Fread_minibuffer):
+	(Fread_no_blanks_input):
+	(Fcompleting_read): Extra arg to read_minibuf.
+
+	* callint.c (Fcall_interactively):
+	* keyboard.c (Fexecute_extended_command):
+	* minibuf.c: (Fread_command):
+	(Fread_function):
+	(Fread_variable):
+	(Fread_buffer): Extra arg to Fcompleting_read.
+
+1989-07-05  Joseph Arceneaux  (jla at spiff)
+
+	* minibuf.c (read_minibuf): New argument back_n is number of
+	characters to back-up point by.
+	(Fcompleting_read): Same.
+	* fileio.c: (Fnew_read_file_name): New version of Fread_file_name
+	using the above features.
+	(Finsert_file_contents): Check for negative file length.
+
+1989-07-03  Joseph Arceneaux  (jla at spiff)
+
+	* xfns.c: (x_pixel_width, x_pixel_height) New functions.
+	* screen.c: (Fscreen_pixel_size): New subr.
+
+1989-06-30  Joseph Arceneaux  (jla at spiff)
+
+	* xterm.c: Use invocation_name as argument to XGetDefaults.
+
+1989-06-29  Joseph Arceneaux  (jla at spiff)
+
+	* xterm.c (x_error_handler) #ifdef sony_news use XDefaultError
+	instead of XPrintDefaultError due to weirdness in Sony library.
+	* xterm.c: Avoid infinite raise/lower, enter/leave cycle when both
+	auto_raise and auto_lower are set by checking times between
+	consecutive Enter events.
+
+1989-06-27  Joseph Arceneaux  (jla at sugar-bombs.ai.mit.edu)
+
+	* screen.c: (Fselect_screen)
+	* window.c: (Fselect_window) The previous strategy was bugging the
+	lisp stuff, so these are now rewritten.
+
+1989-06-26  Joseph Arceneaux  (jla at galapas.ai.mit.edu)
+
+	* cm.c (Wcm_init): Don't check for Wcm.cm_ds, since this has been
+	removed.
+	(losecursor):  This function now a #define in cm.h.
+
+	* xterm.c (x_iconify_screen): Send message to root window to do
+	this, as per latest Inter-Client Communications Conventions.  This
+	is commented out until it's implemented by X.  For now, do it with
+	the iconic_state hint.
+	(x_deiconify_screen): For X11, just Map the window, as per the new
+	ICCC.
+	(x_make_screen_visible): Only handle visible and iconified screen
+	elements for X10;  these variables are handled in event processing
+	for X11.
+	(x_make_screen_invisible): Send an UnmapNotify event to the root
+	window to aprise the window manager of the change.
+	(XTread_socket): Catch VisibilityNotify events.
+
+1989-06-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fsplit_window): If horizontal, round left window size up.
+
+1989-06-24  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cm.h (cmplus): Improve formatting.
+	Use losecursor when reach end of line, if losewrap.
+
+	* cm.h: New fields to handle multi-line and multi-char motion,
+	and both max and min cost for certain operations.
+	* term.c (term_init): Init those fields.
+
+	* term.c (clear_end_of_line_raw): Don't clear last char of last line
+	if autowrap.
+
+	* abbrev.c (Finsert_abbrev_table_description): Make 2nd arg optional.
+
+1989-06-23  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c, lisp/term/x-win.el: C routine Fscreen_color_p now lisp
+	function x-color-screen-p in x-win.el.
+	(x_set_cursor_color): New method:  first disallow same cursor as
+	background, then if cursor not foreground, use it as cursor
+	foreground.
+
+1989-06-22  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lisp.h (XPNTR): Don't define if already defined.
+
+1989-06-22  Joseph Arceneaux  (jla at cream-of-wheat.ai.mit.edu)
+
+	* screen.c: New subrs Ficonify_screen, Fdeiconify_screen,
+	Fread_mouse_position, Fset_mouse_position.
+
+	* xterm.c: New functions x_deiconify_screen, x_iconify_screen.
+
+1989-06-22  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fsplit_window, change_window_height):
+	Enforce minimum of 2 for window_min_width and window_min_height.
+
+1989-06-22  Joseph Arceneaux  (jla at galapas.ai.mit.edu)
+
+	* dispnew.c (unhold_window_change): Don't set and unset in_display
+	before and after calling change_screen_size.
+
+1989-06-21  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* buffer.c (Fkill_buffer): Ignore errors deleting auto-save file.
+	Delete only if delete-auto-save-files.
+
+	* data.c (Fmake_local_variable): Don't change value if unbound.
+
+1989-06-20  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* screen.c (Fselect_screen): Use x_set_mouse_position instead of
+	x_enter_screen.
+
+	* xterm.c (x_enter_screen): Deleted, now merged with
+	* xfns.c (x_set_mouse_position): If the position is negative, use
+	the center screen position.
+
+	* data.c (swap_in_symval_forwarding): Declared tem1.
+	(Fset): Changed variable name void to voide.  Also, set it to a C
+	true/false, rather than Qt or Qnil.
+
+1989-06-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* eval.c (Fdefvar): Operate on default value if sym is buffer-local.
+	(Fdefconst): Likewise.
+
+	* Allow buffer-local variables to be void in one buffer
+	or in the default value.
+	* data.c (swap_in_symval_forwarding): New function.
+	(Fboundp, Fsymbol_value): Use that.
+	(default_value): New function.
+	(Fdefault_value): Use that.
+	(Fdefault_boundp): New function, uses that.
+
+1989-06-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ymakefile: New variable OLDXMENU has filename of libXMenu.a
+	as a target.  Make temacs depend on it.
+
+1989-06-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ymakefile [HAVE_X11, HAVE_X_MENU]: Build oldXMenu.
+	* xmenu.c: Get XMenu.h from sibling dir.
+
+	* buffer.c (Fkill_buffer): Return t if buffer is killed.
+	Delete auto-save file if any.
+
+1989-06-09  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* window.c: initialize auto_new_screen to 0 (nil).
+
+	* screen.c (make_screen): added auto_lower to the list of screen
+	elements initialized.
+	(make_minibuffer_screen): likewise.
+
+1989-06-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fset_window_point): Don't lose if window's buffer is
+	not current.
+
+1989-06-08  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c (Fx_open_connection): Added 9  Lisp variables
+	defined	by the screen and server.
+
+1989-06-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-pmax.h: New file.
+
+1989-06-08  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c: removed superfluous definition of gray_bits.
+
+1989-06-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-hp9000s300.h: Define NEED_BSDTTY unless NOMULTIPLEJOBS.
+
+1989-06-07  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* emacs.c (Fkill_emacs): If under X, call
+	Fx_close_current_connection.  This has fixed the "bad file" bug.
+	* xfns.c (Fx_close_current_connection): Added this subr which for
+	the moment serves only to close the X-connection when killing emacs.
+
+1989-06-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-hp9000s800.h: Define NEED_BSDTTY here.
+	* s-hpux.h: Not here.
+
+1989-06-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* s/s-hpux.h: Define NEED_BSDTTY.
+
+1989-06-06  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c (x_new_selected_screen): Make the new selected_screen
+	and it's selected_window's screen be the same.
+	(x_enter_screen): Calculate the middle of the screen, and warp the
+	mouse there.  Also, raise the screen before doing so.
+
+1989-06-05  Joseph Arceneaux  (jla at cream-of-wheat.ai.mit.edu)
+
+	* xterm.c (x_set_window_size):  If not already in DoDsp (checked
+	with variable in_display) then DoDsp here.  Handles redisplay
+	after screen configuration.
+	(x_error_handler): Print out stuff about the error if we're in
+	debug mode.
+
+	* dispnew.c (change_screen_size):  No longer call DoDsp here.
+
+1989-06-05  Chris Hanson  (cph at kleph)
+
+	* syntax.c (Fmodify_syntax_entry): Change documentation string to
+	reflect earlier change to action of `p' syntax bit.
+
+1989-06-04  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lread.c (read1): Don't accept "" in middle of string.
+
+1989-05-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* search.c (Freplace_match): If \N has nothing to insert,
+	insert nothing.
+
+1989-05-29  Joseph Arceneaux  (jla at gracilis.ai.mit.edu)
+
+	* xfns.c: (Fx_create_screen): If parms is nil and
+	Vx_screen_defaults isn't, then use them.
+	(Fdisplay_buffer): Call Fx_create_screen with Qnil.
+
+1989-05-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* syntax.c (scan_lists): Once within a word, treat Squote like Sword.
+
+1989-05-24  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* dispnew.c (change_screen_size): DoDsp if not pretend.
+
+1989-05-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* search.c (skip_chars): Dumb error checking for \.
+
+1989-05-22  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* screen.c (Fselect_screen): Under X, basically just warp the
+	cursor into the desired screen.  The event handler will then do
+	the right thing.
+	(Frestore_screen_configuration): Don't set the mouse position.
+
+	* window.c (Fselect_window):  If window's screen is not selected,
+	call Fselecte_screen.
+	(Fdisplay_buffer): Call Fx_create_screen with x-screen-parameters
+	as argument instead of nil.
+
+	* keyboard.c (clear_waiting_for_input): Don't call
+	x_new_selected_screen here.
+
+	* xterm.c (XTread_socket): Add case slots for CirculateNotify and
+	CirculateRequest events.
+
+1989-05-21  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* doc.c (Fsubstitute_command_keys): Evaluate \\<...> keymap 
+	in proper buffer.
+
+	* keymap.c (Fapropos_internal): New Lisp function, old apropos
+	but only returns a list.
+
+1989-05-20  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (Fopen_network_stream): Don't set kill-without-query.
+
+1989-05-19  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c (x_new_selected_screen):  This now takes a struct screen
+	pointer as paramter.
+	* (XTread_socket): call x_new_selected_screen *before* dumpborder.
+
+1989-05-16  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c: (x_window_to_scrollbar): If the caller's not interested
+	in the names--passing 0 for last two parameters--just return the
+	screen pointer.
+
+	* xterm.c (x_enter_screen):  Added this function for warping the
+	pointer into a screen.
+
+1989-05-16  Chris Hanson  (cph at kleph)
+
+	* syntax.c (scan_lists, scan_sexps_forward): Treat characters
+	whose "prefix" bit is on as whitespace when they are encountered
+	between expressions.  When they occur within expressions they are
+	treated according to their syntax code.
+
+1989-05-16  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c: (x_new_selected_screen): Don't call Fselect_screen.
+	Just do everything here.
+
+	* window.c (Fselect_window): If the screen associated with the
+	window is not selected, warp the mouse, cause an EnterNotify event
+	which then causes the proper screen to become selected.  This does
+	*not* call Fselect_screen.
+
+	* screen.c (Fselect_screen):  Now this is *only* a lisp subr.  It
+	just calls Fselect_window on the selected window of the screen.
+
+1989-05-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* editfns.c (Fsubst_char_in_region): If NOUNDO, do increment tick,
+	but maybe also increment save-tick.
+
+1989-05-15  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c (x_set_window_size): Only one #ifdef HAVE_X11 due to new
+	macro in:
+	* xterm.h: New macro XChangeWindowSize for both X10 and X11.
+
+	* xfns.c (Fx_create_screen):  Use XCreateWindow instead of
+	XCreateSimpleWindow to directly set some extra attributes.
+
+1989-05-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* syntax.h (SYNTAX_PREFIX): New macro.
+	* syntax.c (Fmodify_syntax_table): Handle `p'; set new flag.
+	(describe_syntax): Describe new flag.
+	(Fbackward_prefix_chars): Move back over such chars.
+
+	* lread.c (read1): Dumb errors in last change.
+
+1989-05-13  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lread.c (read1): Error if EOF after `?' or in string.
+
+	* sysdep.c (init_sys_modes) [IBMRTAIX]: Typo; had s for sg.
+
+1989-05-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* s/s-usg5-3.h: Define HAVE_SYSVIPC?
+
+	* alloc.c (Fmake_byte_code): If purifying, purecopy all elements.
+
+	* ymakefile (LIBXMENU): Use -loldX.
+	Find libXMenu11.a in special place.
+
+1989-05-12  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c (Fx_create_screen):  If user has specified
+	`x-iconic-startup' then start emacs in iconic form.
+	Look for icon position in `icon-left' and `icon-top', or use
+	window postion.
+
+	* xterm.c (x_term_init):  If server doesn't respond, use fatal
+	instead of error.  Also tell user about -d option.
+
+1989-05-10  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c (init_sys_modes, reset_sys_modes):
+	Handle TIOCGLTC even if HAVE_TERMIO.
+
+	* print.c (Qprint_escape_newlines): New variable.
+	* minibuf.c (read_minibuf): Make it t locally in minibuffers.
+
+	* fileio.c (Fcopy_file): Check for error on close.
+
+1989-05-10  Joseph Arceneaux  (jla at corn-chex.ai.mit.edu)
+
+	* xfns.c (adjust_scrollbars):  Don't subtract 2 from
+	h_scrollbar_height when calculating `length'.
+
+1989-05-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* eval.c (call_debugger): Set entering_debugger.
+	(find_handler_cause): Don't enter debugger if that's set.
+	(Fbacktrace): Clear it; we are presumably in the debugger.
+
+	* m/m-sps7.h: New file.
+
+1989-05-08  Joseph Arceneaux  (jla at rice-chex.ai.mit.edu)
+
+	* xterm.c (XTread_socket_hook): For X11, on map and unmap events
+	check the window manager hints for iconification status.
+
+	* xterm.c (x_make_widow_icon):  For X11, just request
+	iconification of the window manager.
+
+1989-05-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m/m-clipper.h: New file.
+
+1989-05-07  Joseph Arceneaux  (jla at corn-chex.ai.mit.edu)
+
+	* xfns.c (adjust_scrollbars):  Don't subtract 2 from
+	v_scrollbar_width when calculating `height'.
+
+	* xfns.c (x_set_foreground, x_set_border_pixel):  Finished color
+	coordination.  Scrollbar border, thump-arrows, and slider pixmap
+	linked with foreground color;  slider border with window border.
+
+1989-05-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lread.c (read1): Handle octal integers.
+
+	* macros.c: Doc fix.
+
+	* search.c (Fstore_match_data): Allow ints instead of markers.
+
+	* keyboard.c (get_char_menu_prompt): New function; does menu prompting
+	based on current keymaps.
+
+1989-05-05  Joseph Arceneaux  (jla at gracilis.ai.mit.edu)
+
+	* xfns.c (Fx_set_face):  Rewrote the doc-string and renamed the
+	parameters.
+
+1989-05-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* unexec.c: New control parameters COFF_BSD_SYMBOLS, KEEP_OLD_PADDR,
+	KEEP_OLD_TEXT_SCNPTR, ADJUST_TEXT_SCNHDR_SIZE, ADJUST_TEXTBASE,
+	HEADER_INCL_IN_TEXT.
+
+	* unexec.c: Define IN_UNEXEC as flag for config.h.
+
+	* keymap.c: Fapropos, etc., deleted.  (Now in Lisp code.)
+
+	* eval.c (Fcommandp): Byte code object is command if interactive slot
+	exists at all.
+
+1989-05-05  Chris Hanson  (cph at kleph)
+
+	* process.c [HPUX && !NOMULTIPLEJOBS]: Include <bsdtty.h>, which
+	defines TIOCGPGRP.
+
+1989-05-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* data.c (Faref, Farray_length): Handle byte-code objects.
+	* fns.c (Flength, concat): Likewise.
+
+	* data.c (Faref, Faset, Farray_length): Rename arg VECTOR to ARRAY.
+
+	* m/m-hp9000s300.h: Undefine NOMULTIPLEJOBS.
+
+	* keyboard.c (Fcommand_execute): Treat bytecode object as function.
+
+	* callint.c (Fcall_interactively): Separate decoding of fcn
+	from handling of it.
+
+	* alloc.c (Fmake_byte_code): Renamed from Fmake_compiled_code.
+	Make it pure if Vpurify_flag is non-nil.
+	(Fpurecopy): Handle byte-code objects.
+
+	* keyboard.c (get_char): Use Fsit_for for echoing timeout, not alarm.
+	Do this before timeout for auto-save since the latter is longer.
+	(request_echo): Function deleted.
+	({set,clear}_waiting_for_input): No need for echo_now, echo_flag.
+
+1989-05-04  Joseph Arceneaux  (jla at gracilis.ai.mit.edu)
+
+	* xterm.c (x_lower_window, x_raise_window): Don't do anything if
+	the window isn't visible.
+
+	* xfns.c (x_set_foreground_color): Recolor the scrollbar windows
+	appropriately, compatible with xterm.
+
+	* xterm.c (x_reset_cursor): Do cursor recoloring.
+
+1989-05-04  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fns.c (Frandom): With number as arg, return value < that number.
+
+	* sysdep.c [USG, BSD4_1] (random): Call `rand' twice, to get
+	30 bits of significance.
+
+1989-05-03  Joe Arceneaux  (jla at gracilis.ai.mit.edu)
+
+	* xterm.c (x_draw_box):  Use the cursor_gc.
+	* xfns.c: (x_set_cursor_color, x_create_screen): Do a better job
+	with cursor colors, and use 0 line width for the cursor_gc.
+
+1989-05-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* Begin changing representation of compiled functions.
+	* lisp.h (enum Lisp_Type): New type code Lisp_Compiled, like a vector.
+	(COMPILED_*): Names for slots in those vectors.
+	* alloc.c (Fmake_compiled_code): New function.
+	* eval.c (Fcommandp, Feval, Ffuncall, funcall_lambda):
+	Handle fcns of type Lisp_Compiled.
+	(Fcommandp, Fapply): Avoid directly nested ifs.
+	* print.c (print): Handle Lisp_Compiled objects.
+	* callint.c (Fcall_interactively): likewise.
+	* doc.c (Fdocumentation): likewise.
+
+	* keyboard.c (Fopen_dribble_file): nil as arg means close it.
+
+	* abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c:
+	* casefiddle.c, cmds.c, data.c, dired.c, dispnew.c, doc.c, editfns.c:
+	* eval.c, fileio.c, filelock.c, floatfns.c, fns.c, keyboard.c:
+	* keymap.c, lread.c, minibuf.c, mocklisp.c, print.c, process.c:
+	* screen.c, search.c, syntax.c, undo.c, vmsfns.c:
+	Many doc fixes.
+
+1989-04-30  Joseph Arceneaux  (jla at hobbes)
+
+	* xterm.c (XTring_bell): Wasn't passing selected_screen to XTflash.
+	Fixed this.
+
+	* xterm.c (XTread_socket): Don't check if server died under
+	X11.  Temporary.
+
+1989-04-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fdelete_other_windows): Bug getting top edge.
+
+1989-04-29  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keyboard.c (get_char): Auto save if enough time elapses.
+	(auto_save_timeout): New Lisp variable.
+
+	* xdisp.c (try_window, try_window_id): Set w->redo_mode_line
+	if should show percentage instead of `Bot'.
+
+1989-04-29  Joe Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c (x_term_init): Don't set visible bell, as it pre-empts
+	.emacs control.
+
+1989-04-26  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* doc.c (syms_of_doc): Make Vdoc_file_name a Lisp variable
+	named internal-doc-file-name.
+
+1989-04-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-news.h: m-news800.h renamed.
+	Removed EXPLICIT_SIGN_EXTEND and COMPILER_REGISTER_BUG.
+	Removed SEGMENT_MASK and sigmask.
+	LOAD_AVE_TYPE is now `double'; LOAD_AVE_CVT changed too.
+	Define m68000 if not defined.
+
+1989-04-24  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ymakefile: If COFF_ENCAPSULATE, define LD as gcc -nostdlib.
+
+	* sysdep.c: Unconditionally include sys/ioctl.h.
+
+	* m/m-mips.h [USG]: Define LIBS_TERMCAP.
+	If HAVE_X11, define HAVE_VFORK.
+
+1989-04-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m/m-altos.h: Use termcap, not terminfo.
+	Define COFF_ENCAPSULATE if using gcc.
+	Use built-in alloca if using gcc.
+	Define PURESIZE.
+
+	* lread.c (absolute_filename_p): On ALTOS, @ means absolute.
+
+	* process.c: Missing #endif.
+	* fileio.c (Finsert_file_contents): Define `p' for last change.
+	* buffer.c, floatfns.c: Typos in DEFUN doc strings.
+	* keyboard.c: Typo in DEFVAR_LISP doc string.
+
+	* window.c (Fdelete_other_windows): Fix confusion about type of W.
+
+1989-04-22  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ymakefile (LDFLAGS): Forgot to use LD_SWITCH_SITE.
+
+	* xterm.c (XTflash): Draw the bars here.
+	(x_invert_screen): Change to invert entire window.
+	(stufflines): Changed args to XClearArea.
+	(XTread_socket): Clean up handling of KeyPress events.
+	For LeaveWindow, ignore uninteresting ones and handle autolower.
+	For FocusIn, ignore if unknown window, and handle autoraise.
+	For MotionNotify, add real handling for X11.
+	For ConfigureNotify, count width of scroll bars.
+	Don't call change_screen_size redundantly; ignore linked expose events.
+	Update left and top pos if nec.
+	For button events, ignore if not in known window or scrollbar.
+	(x_new_selected_screen): Takes screen as arg.
+	(x_error_handler): Arg type different for X11.
+	(x_set_window_size) [HAVE_X11]: Call change_screen_size
+	before x_wm_set_size_hint.
+	(x_make_window_visible): Make scroll bars visible too, if any.
+	(x_lower_window): New fn.
+	(x_wm_set_size_hint): Take account of width of scroll bars.
+	Ior specified hint flags with those already set.
+
+	* xterm.h (HSCROLL_HEIGHT): HSCROLL_WIDTH is renamed.
+	(MAXWIDTH): Increased to 300.
+	(MAXHEIGHT): Increased to 100.
+	(DISPLAY_SCREEN_ARG): Remove parentheses.
+	(ButtonReleased, WhichMouseButton): Delete definitions.
+
+	* xmenu.c: Adapted to new X interface.  X11ONLY replaced with xDISPLAY.
+	Many X11 conditionals removed.
+
+	* xfns.c (x_set_cursor_color): Special case if matches foreground.
+	(Fx_create_screen): Typo for HSCROLL_HEIGHT.
+	Use BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT.
+	Set PRETEND arg to change_screen_size.
+	Delete gray_bits; this value made global.
+	Don't call install_*_scrollbar here.
+	(x_set_horizontal_scrollbar): Define this for real.
+	(x_set_vertical_scrollbar): Corrent args to install_vertical_scrollbar.
+	(install_vertical_scrollbar): New local slider_pixmap, and set it.
+	Delete locals GC_values, temp_gc.
+	Change arrow_width, arrow_height (appears to be undefined) to 16.
+	Un-if-0 this code.
+	Use border_pixel, not foreground_pixel, for scrollbar.
+	(install_horizontal_scrollbar): Define this for real.
+	(adjust_scrollbars): Handle horizontal scrollbar.
+	Define XMoveResizeWindow as XConfigureWindow if X10 to simplify.
+	(x_resize_scrollbars): Remove #if 0 from quick-exit case.
+	Really handle horizontal scrollbar.
+	Simplify using new macro.
+	(Fx_get_mouse_event): Mostly ignore events other than buttons.
+	Use many new macros to handle X10 and X11.
+	(encode_mouse_button): New fn: encoding of which button, broken out.
+
+	* xfns.c (left_arror_cursor, etc.): New vars.
+	(x_screen_parm, init_x_parm_symbols, x_set_screen_param):
+	Define X_PARM_AUTOLOWER.
+
+	* xdisp.c (display_string, redisplay-window, DoDsp):
+	Use SCREEN_WIDTH, SCREEN_HEIGHT.
+
+1989-04-21  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* indent.c (compute_motion): Use SCREEN_WIDTH.
+	* dispnew.c (update_line): Use SCREEN_WIDTH.
+	(update_screen): Use SCREEN_HEIGHT.
+
+1989-04-20  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c: rename Vauto_new_screen_hook, Vdisplay_buffer_hook, and
+	Vtemp_buffer_show_hook to ..._function.
+
+	* keyboard.c: rename mouse_hook to mouse_event_function.
+
+	* buffer.c, buffer.h, cmds.c: blink-paren-hook and auto-fill-hook
+	renamed to -function.
+
+	* fileio.c (Finsert_file_contents): Allow quit in read.
+	(Fwrite_region): Allow quit in write.
+
+1989-04-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* doprnt.c (doprnt): Comment out %b since sprintf can't do it.
+
+	* Change X11 to HAVE_X11 everywhere.
+
+	* m-sun3.h: Define C_SWITCH_MACHINE as -fsoft.
+
+1989-04-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c: Don't define wstopsig, wtersig if already defined.
+
+	* sysdep.c [VMS] (sys_getenv): Copy the string before returning it.
+
+	* m-alliant.h: Define `vector'.
+
+1989-04-13  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (wait_reading_process_input) [sun]: If SIGIO failed
+	to be sent, send it by hand.
+
+1989-04-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fdelete_other_windows): recenter window to avoid scrolling.
+
+1989-04-11  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* indent.c: Include screen.h.
+
+	* indent.c (pos_tab_offset, Fvertical_motion): Compute internal width
+	correctly and uniformly.
+
+	* xdisp.c (try_window, try_window_id): Use exact internal width
+	to update tab_offset.
+	(try_window_id): pos_tab_offset value needs adjustment only if
+	starting a line in middle of a character.
+
+1989-04-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c [USG]: If TIOCGWINSZ defined, include sioctl.h.
+
+1989-04-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* eval.c (Fbacktrace): Set Vprint_level to 3 throughout.
+
+	* fns.c (Fload_average): nlist data structure is funny on convex.
+
+	* window.c (scroll_command): scroll at least 1 line in specd direction.
+
+	* cm.c (calccost): NTABS was off by 1 sometimes; take account of
+	the starting position modulo 8.
+
+	* fileio.c (Fexpand_file_name): Don't simplify /../ at start of name.
+
+	* callint.c: doc fixes.
+
+	* process.c (create_process):
+	On all USG systems, not just IRIS and AIX, don't pre-open pty's tty.
+	Move the setpgrp done for USG (no real change).
+	Tell child_setup to do a setpgrp.
+	* callproc.c (child_setup): New arg says whether to setpgrp.
+	Never setpgrp on USG.
+	(Fcall_process): Tell child_setup not to setpgrp.
+
+	* sysdep.c (init_sys_modes, reset_sys_modes): Don't try to hack
+	TIOCGLTC, TIOCGETC, etc. if HAVE_TERMIO.
+	Don't bother to undef these for XENIX.
+
+1989-04-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ymakefile (LIBES): Put LIBX first; it may depend on LIBS_MACHINE.
+
+	* m-sequent.h: Define HAVE_ALLOCA.
+
+1989-04-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* term.c (term_init): Can't use scroll region if no abs positioning.
+
+1989-04-01  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (Fopen_network_stream): close desc. if connect fails.
+
+1989-03-31  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* minibuf.c (Fall_completions): gcprotect ALLMATCHES and TAIL,
+	not STRING.
+
+	* keyboard.c (read_avail_input): Handle EBADSLT like EAGAIN.
+
+1989-03-29  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* term.c (term_init): Either ic or ip or im or IC => can insert chars.
+
+	* minibuf.c (read_minibuf_unwind): Ensure minibuf writable for erasure.
+
+1989-02-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-convex.h: Undefine NO_ARG_ARRAY.
+	Changed defns of DATA_SEG_BITS and XINT.
+	Define alloca for GCC compilation.
+
+1989-02-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m-ibmrt-aix.h: Define BROKEN_FIONREAD.
+
+1989-02-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keymap.c (Fdefine_prefix_command): Set both value and fn defn,
+	with separate syms specified for each purpose.
+
+1989-02-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* callproc.c (Fcall_process): Open /dev/null with O_WRONLY.
+
+1989-02-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (window_scroll): Allow scrolling to very end (empty screen)
+	if that's exactly where we wanted to scroll to.
+
+1989-02-11  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* data.c (Fkill_local_variable): New local to simplify big stmt.
+
+1989-02-09  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xdisp.c (display_text_line): cvt chars to glyfs for overlay arrow.
+
+	* sysdep.c (init_sys_modes, child_setup_tty) [IBMRTAIX]:
+	Don't ignore BRK, and don't signal it.
+
+	* process.c (pty): An IBMRTAIX conditional.
+	(create_process): Another here.
+
+1989-02-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keymap.c (Fdefine_prefix_command): Use Ffset, not Fset.
+
+1989-02-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c (Fset_visited_file_modtime): New fn.
+
+	* xfns.c (Fx_create_screen) [X10]: XCreateWindow wants pixmaps as args.
+
+1989-02-03  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dispnew.c (Fsit_for): It accepts 3 args.
+
+1989-02-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xterm.c (XTread_socket): For X10, make EVENT an XKeyPressedEvent.
+	(x_set_resize_hint): Call XSetResizeHint.
+
+	* process.c: Declare interrupt_input.
+
+	* sysdep.c (init_sys_modes): TIOCSTART, not TCSTART.
+
+1989-01-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xterm.h (struct x_display): `GC' renamed `gc' in all field names.
+	Field `ColorMap' renamed to `color_map'.
+	(face_gc_values): face_GC_values renamed.
+
+1989-01-28  Joe Arceneaux  (rms at sugar-bombs.ai.mit.edu)
+
+	* xterm.h (face_GC): Var deleted.
+	(struct x_display): New field face_GC.
+	(VSCROLL_WIDTH, HSCROLL_WIDTH): Moved here.
+	(MINWIDTH, MINHEIGHT, MAXWIDTH, MAXHEIGHT): New vars.  Eliminate them!
+	(BLACK_PIX_DEFAULT): Typo in definition.
+	(WHITE_PIX_DEFAULT): Typos in definitions; was the black default.
+
+	* xterm.c: Include ioctl.h only if BSD.
+	Include termio.h otherwise.
+	(XMapWindow) [X11]: Typo in definition.
+	(METABIT): New definition; maybe not needed.
+	(hostname, id_name, invocation_name, Vcommand_line_args): New vars
+	declared for main icon title.
+	(x_debug): Init to 1 if XDEBUG defined.
+	(dumpglyfs) [X11]: Changed args to XDrawImageString.
+	If debugging, do XFlushQueue.
+	Use screen's face_gc rather than old global one.
+	(XTflash) [not BSD]: avoid `struct itimerval'; use `alarm'.
+	(events): New table of event type names.
+	(XTread_socket): EVENT is now an XEvent even on x10.
+	Translate modifier key 1 into meta-bit.
+	For EnterNotify event, don't dumpborder or x_new_selected_screen
+	if there is an x_focus_screen.
+	For LeaveNotify event, don't ignore due to nonzero subwindow.
+	For ConfigureNotify, change screen size.
+	Do `select' check for SIGHUP only if HAVE_SELECT.
+	(x_new_selected_screen): An arg, SCREEN.
+	(x_display_cursor): dumpglyfs args changed.
+	(x_draw_box): Add GC arg to XDrawRectangle; change other args.
+	(clear_cursor): Change args to XClearArea.
+	(dumpborder): check x_input_screen, not selected_screen.
+	(x_text_icon): For X11, new arg to XGetDefault.
+	Cast values stored in icon_label.
+	(x_term_init): Hair to calculate name for icon.
+	Don't init_sigio unless SIGIO defined.
+	Call Fset_input_mode.
+	For X11, new arg to XGetDefault.
+	Set _Xdebug if debugging.
+	(x_new_font) Use XGetFont.
+	Get GC values from the screen structure.
+	(x_reset_cursor): Don't call XRecolorCursor.
+	(x_set_window_size): Call x_wm_set_size_hint, not x_set_size_hint.
+	(x_set_resize_hint): For X11, call x_wm_set_size_hint.
+	(x_wm_set_size_hint, x_wm_set_window_state, x_wm_set_icon_pixmap):
+	(x_wm_set_icon_position): New fns for X11.
+
+	* xfns.c: For X11, include Xutil.h
+	(VSCROLL_WIDTH): Moved to xterm.h.
+	(face_GC): Don't declare it.
+	(id_name): Declare this.
+	(x_decode_color): Check `white' and `black' first of all.
+	(x_set_foreground_color) [X11]: Reset foreground and background.
+	(x_set_background_color) [X11]: Missing arg to XSetWindowBackground.
+	(x_set_cursor_color) [X11]: Reset foreground and background.
+	(x_read_mouse_position) [X11]: Changed call to XQueryPointer.
+	(x_set_mouse_position) [X11]: Add args to XWarpPointer.
+	(Fx_create_screen): Set some temporary geometry parms at the beginning.
+	For X11, changed setup of iconidentity, and implement rubber-banding.
+	For X11, implement merging individual geometry parms.
+	For X11, changed args to XCreateSimpleWindow.
+	For X11, call x_wm_set_size_hint.
+	Specify name when creating icon.
+	Don't call XSetForeground, XSetBackground before making border tile.
+	New var `cursor_bits'.  Init the screen's GC's.
+
+	* screen.c (Frubber_band_rectangle): For X11, just return nil.
+
+1989-01-24  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* buffer.c (Fbuffer_modified_tick): New fn.
+
+	* window.c (Fnext_window): Accept 3 args from Lisp.
+
+1989-01-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c (sys_suspend): Handle case of SIGTSTP but not BSD.
+
+1989-01-20  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c (init_sys_modes): Do TIOCSTART if def, like TCXONC.
+
+1989-01-19  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): New 2nd arg is extra usecs.
+	All callers changed.
+	* dispnew.c (Fsit_for, Fsleep_for): New 2nd arg says 1st arg
+	counts in milliseconds.
+
+	* buffer.c (Fkill_all_local_variables): Implement permanent locals.
+
+1989-01-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keymap.c (get_keyelt): Allow indirection within (STRING . DEFN).
+
+1989-01-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (wait_reading_process_input): If select returns there
+	is kbd input, but detect_input_pending can't find it, signal SIGIO.
+	This may avoid the X loop-on-logout bug.
+
+	* process.c (wait_reading_process_input): Flush fix_screen_hook.
+	* termhooks.h, term.c: likewise.
+
+	* xdisp.c (Fredraw_display): Don't do set_terminal_modes.
+	* dispnew.c (Fredraw_screen): likewise.
+
+	* eval.c (Fcond): If no args, return nil.
+
+1989-01-15  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* eval.c (Fbacktrace_frame): Require one arg.  Return nil if too high.
+
+1989-01-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* minibuf.c (read_minibuf): Set Vminibuf_scroll_window before
+	switching windows.
+
+	* xterm.c (XTread_socket): If no HAVE_SELECT, wait for input
+	if new arg WAITP is non0.  Do this by not bothering to test for
+	presence of input before reading some.
+	Check for dead connection only if new arg EXPECTED is nonzero.
+	All callers changed (keyboard and sysdep).
+
+	* Simplify keyboard input.
+	* keyboard.c (read_avail_input): Don't assume buffer is empty.
+	Don't call get_input_pending; do FIONREAD here.
+	Don't do FIONREAD if read_socket_hook, just tell it don't wait.
+	Arg EXPECTED is passed to read_socket_hook.
+	(input_available_signal): Use read_avail_input.
+	(gobble_input): Use read_avail_input; arg EXPECTED passed along.
+	(get_input_pending): let gobble_input do the work.
+
+	* VMS keyboard input should have interrupt_input nonzero.
+	* keyboard.c (Fset_input_mode, init_keyboard): [VMS] Always set
+	interrupt_input to 1.
+	(get_input_pending): Special case deleted.
+
+1989-01-13  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c (auto_save_1): Always make auto-save file owner-writable.
+
+	* eval.c (Fbacktrace_frame): New fn.
+
+	* buffer.h: Define `fieldlist' field in a buffer.
+	* buffer.c (Fregion_fields): Return list of fields overlapping
+	specified region.
+	(syms_of_buffer): New variable buffer-field-list.
+	(reset_buffer): Clear the fieldlist.
+	(init_buffer_once): Set up default and flag for buffer-field-list.
+	* insdel.c (prepare_to_modify_buffer): If check_protected_fields,
+	call Fregion_fields to detect error.
+	Delete buffer_modify_hook.
+
+	* callint.c (Fcall_interactively): Bind `command-debug-status'
+	for each interactive command.
+
+	* keyboard.c (command_loop_1): Count # commands read.
+	(num_input_keys): New Lisp variable.
+
+	* m/m-gould.h, m/m-ibmrt-aix.h, m/m-sequent.h, m/m-sparc.h,
+	m/m-sun3.h, m/m-symmetry.h: Define A_TEXT_SEEK.
+	* unexec.c (copy_text_and_data): Don't check A_TEXT_OFFSET,
+	just A_TEXT_SEEK.
+	* unexconvex.c: Likewise.
+
+	* unexconvex.c: machine/*.h unconditionally.
+
+	* process.c (pty): Delete RTU, HPUX, IRIS alternatives to
+	PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF.
+	* s/s-hpux.h: Define PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF.
+	* s/s-rtu.h: Likewise.
+	* s/s-iris*.h: Define PTY_TTY_NAME_SPRINTF.
+
+	* sunfns.c (Fsun_change_cursor_icon): Avoid ambiguity in eval order.
+
+1989-01-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* data.c (Fdefault_value): If var set up with default value as current,
+	take the current value slot, more up to date than the default slot.
+
+1989-01-11  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dispnew.c (init_display): don't handle SIGWINCH if using X.
+
+	* fileio.c (Fdo_auto_save): If file has shrunk, turn off auto-save.
+	This avoids duplicate messages and allows M-x auto-save to turn it on.
+
+	* lread.c (Fload): Look in Vafter_load_alist.
+	(syms_of_load): Define after-load-alist.
+
+1989-01-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dired.c (Fdirectory_files): 4th arg NOSORT non-nil means don't sort.
+
+	* syntax.c (scan_lists): Change Sendcomment case so that
+	ignoring comments works even for newline-terminated comments.
+
+	* minibuf.c (read_minibuf): Default Vminibuf_scroll_window
+	to the window that was selected.
+
+1989-01-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fns.c (do_yes_or_no_p): Typo, call2 => call1.
+
+	* eval.c (Fbacktrace): Each frame item should have a newline.
+
+	* emacs.c (Fkill_emacs): Don't run hook if noninteractive.
+
+	* eval.c: Define Vrun_hooks.
+	(syms_of_eval): Initialize Vrun_hooks.
+
+	* indent.c (Fmove_to_column): Use del_range; Fdelete_backward non ex.
+
+	* ymakefile (objs, floatfns.o): Re-add this file.
+	(LIBX): Install X11 case.
+
+	* ymakefile (LIB_GCC): Now a cpp macro, like all other LIB_...
+	Define null if not using GCC.
+
+	* lread.c (unreadchar): New function to unread a char
+	by stuffing it back into its stream.  Now unread chars
+	work properly between multiple reads.
+	(UNREAD): Now calls that function.
+	(readchar): Don't us `unrch'; variable deleted.
+	(various): Don't initialize `unrch'.
+	(readevalloop): No need to save and restore `unrch'.
+	(read1): Don't unread a -1.
+
+	* keymap.c (get_keyelt): If keymap defn is (STRING . FOO),
+	remove just FOO.  Will help HierarKey.
+
+1989-01-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* unexmips.c [IRIS_4D]: Don't include fcntl.h.
+	(unexec): Look for LIT8, LIT4 sections iff they are defined.
+
+	* buffer.c (Fkill_all_local_variables): Force redisplay of mode lines.
+
+1989-01-02  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emacs.c (main): Do the setpgrp before handling -t.
+
+	* keyboard.c (Fsuspend_emacs): Use run-hooks to run suspend-hook
+	and suspend-resume-hook.
+
+	* buffer.c (Fkill_buffer): Execute kill-buffer-hooks
+	with buffer to be killed as current buffer.
+
+	* buffer.c (count_modified_buffers): ModExist renamed.
+
+	* emacs.c (Fkill-emacs): Execute kill-emacs-hook.
+
+	* fileio.c (auto_save_1): Set auto_save_mode_bits from visited file.
+	(Fwrite_region) [not VMS]: If auto-saving, write file with that mode.
+
+	* fileio.c (Fwrite_region): If START is a string, write that string.
+
+1989-01-01  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lisp.h (XMARKBIT, XSETMARKBIT): If mark bit is sign bit,
+	use sign-test for XMARKBIT; value is then 1 or 0.
+	Make XSETMARKBIT test 2nd arg for nonzeroness only.
+
+	* m/m-mips.h: Last batch of changes are only for USG.
+	(XMARKBIT, XSETMARKBIT): Deleted; the new default ones are good.
+
+	* editfns.c (Fformat): Use princ for %s.
+	New format %S converts everything (even strings) with prin1.
+	* doprnt.c (doprnt): Treat %s like %S.
+
+	* print.c (Fprin1_to_string): Opt 3nd arg non-nil does princ.
+
+1988-12-31  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* data.c (Fstring_to_int): Correct max # args.
+
+1988-12-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ymakefile (LIBES, LIB_GCC): If using GCC, link with gnulib.
+
+1988-12-29  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* editfns.c: Many doc improvements.
+
+1988-12-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lisp.h (CHECK_NATNUM): New macro.
+
+	* indent.c (Fmove_to_column): 2nd arg t means indent till spec'd column
+	or change tab to spaces if necessary.
+
+	* m/m-iris4d.h: (conditionally) delete DEFAULT_ENTRY_ADDRESS
+	and change START_FILES and LIB_STANDARD.
+
+	* s/s-iris3-6.h: Define sigblock as no-op.
+
+	* m/m-mips.h: Cancel defn of VIRT_ADDR_VARIES, `static'.
+	Undef SIGIO.  Define BROKEN_FIONREAD.
+	Define various HAVE_... flags a la BSD.
+	Add options, libraries for linking and compilation.
+
+	* unexmips.c (unexec): Handle additional optional sections now likely.
+	New scheme for recording what sections there are.
+	Make handling of the LIT8,LIT4 sections conditional (not on IRIS).
+
+	* fns.c (do_yes_or_no_p): New interface to Lisp function yes-or-no-p.
+	Allows the user to redefine that function.
+	All callers of Fyes_or_no_p changed.
+
+	* data.c (Fmakunbound): Don't allow nil or t as arg.
+
+	* m/m-orion105.h (LOAD_AVE_TYPE): Now `long'.
+
+1988-12-27  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* dispnew.c (unhold_window_change):
+	Don't signal SIGWINCH.  Instead, do pending size-changes here,
+	while holding any new size-changes that arrive, so they become
+	pending.  Loop around to get the new pending ones.
+	(change_screen_size): Clear any previous pending size-change.
+
+	* search.c (place): Was clipping to (1- (point-max)) by mistake.
+
+1988-12-24  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fdelete_window): Give all this window's space
+	to one adjacent sibling.
+
+1988-12-23  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keymap.c (describe_alist): Don't lose on non-cons-cell alist elts.
+	(Fwhere_is_internal): Don't fail to step down the alist.
+	(Faccessible_keymaps): Considerable confusion in alist case.
+
+	* lread.c (Feval_current_buffer, Feval_region):
+	Save and restore point as a marker, not a number.
+	Don't restore it at all if printflag is t.
+
+	* print.c (float_to_string): Mostly rewritten; output format
+	is now a printf %-spec.
+	(Qfloat_output_format): Doc changed to match.
+
+1988-12-22  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* ymakefile (obj): Include floatfns.o.
+	* data.c (syms_of_data): Fix typo Snumberp_or_marker_p.
+
+	* Allow keymaps to have other keymaps as tails.
+	Thus, one keymap can inherit from another.
+	* keymap.c (Fwhere_is_internal): Ignore non-cons elements of alist.
+	(Faccessible_keymaps): Support symbols as alist indices.
+	Ignore alist elements that aren't conses.
+
+	* m/m-sun386.h (LDAV_SYMBOL): Define as "avenrun" with no underscore.
+
+	* lread.c (read_escape): Support ANSI C `\x...' hex escapes.
+
+	* bytecode.c (Fbyte_code): fix jump operators for change in `pc'.
+
+1988-12-21  Joe Arceneaux  (jla at gracilis.ai.mit.edu)
+
+	* ymakefile: Commented #endif LISP_FLOAT_TYPE.  Also changed
+	the code pertaining to X11 to use the same files as X10.
+
+	* bytecode.c (Fbyte_code): Declared unsigned char *pc.
+
+1988-12-19  Joe Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xterm.c: Finished a first cut of the X11 version.
+
+1988-12-18  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* sysdep.c (select): `buf' is now unsigned char.
+
+1988-12-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m/m-elxsi.h: Don't define WORD_MACHINE or CANNOT_DUMP.
+	Do define symbols for load average.
+	Define COFF and ADJUST_EXEC_HEADER.
+
+1988-12-16  Joe Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* sink.h,sinkmask.h: Same file now works for both X10 and X11.
+	* xterm.c,xfns.c (x_text_icon) Can now take new name as parameter.
+
+1988-12-16  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m/m-is386.h: No need to undef HAVE_PTYS, HAVE_SOCKETS, SYSV_PTYS
+	since s-usg5-3.h no longer defines them.
+
+1988-12-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* bytecode.el (Fbyte_code): Cache the pointer in the string
+	to avoid recalculating it at each fetch.
+	Also turn off the error check for stack overflow/underflow.
+
+1988-12-14  Joe Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+
+	* xfns.c: Made the first cut for X11 version.
+	* xterm.c: (x_reset_cursor) Did the X11 version.
+
+1988-12-14  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keyboard.c (Fexecute_mouse_event): Set Vmouse_event.  Doc fix.
+	Run Vmouse_hook at the end.
+	(syms_of_keyboard): Define var `mouse-hook'.
+
+1988-12-13  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* term.c (insert_glyfs): Typo, was fetching G twice.
+
+1988-12-10  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keymap.c (describe_buffer_bindings): Print mouse bindings too.
+	(describe_map): If have a chartab, use mouse-describe-key for prefixes.
+	* keymap.c (describe_{map,map_tree,alist}, describe_vector):
+	Extra arg mapping chars to their names.  Calls changed.
+	* syntax.c (describe_syntax_1): Call changed.
+
+	* keymap.c (Vglobal_mouse_map): Make it exist unconditionally.
+
+	* keymap.c (apropos1): Clean up.
+	Do where-is-internal only if there is a function definition.
+	Use mouse-describe-key to turn mouse key sequences into strings.
+	(Fwhere_is): Check the mouse map too;
+	(Fwhere_is_internal): New arg is global map to use.
+	All callers changed in keypad.c and doc.c.
+	(where_is_string): New fn cvts result of Fwhere_is_internal to string.
+
+1988-12-09  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* emacs.c (stack_bottom): New variable, set in main.
+	* alloc.c (Fgarbage_collect): Save a copy of the entire stack contents.
+
+1988-12-07  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* editfns.c (Funix_umask, Funix_sync): New functions.
+
+	* process.c (Fsignal_process): New function.
+
+1988-12-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* editfns.c (Fsubst_char_in_region): Fix typo in when to un-modify buf.
+
+1988-12-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (create_process): Take the usg's setpgrp and the close-and
+	-open of the tty outside the TIOCNOTTY conditional, since TIOCNOTTY
+	is always missing outside BSD.  Now the TIOCNOTTY conditional controls
+	only the TIOCNOTTY.
+
+1988-12-04  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* lread.c (Feval_current_buffer, Feval_region):
+	If there is an error, don't restore original point.
+
+	* s-hpux.h (SHORT_CAST_BUG): Define this, for HPUX version 6.2.
+
+	* ymakefile (THIS_IS_YMAKEFILE): Define macro to tell m- files
+	to do special things.
+
+	* m/m-ns16000.h: (LOAD_AVE_TYPE, etc.): Don't define them if USG.
+	* m/m-ns16000.h [USG]: Define various macros differently.
+	(munnari!sibyl.eleceng.ua.oz.au!ian@uunet.uu.net).
+
+	* sysdep.c (reset_sys_modes): Don't output a CR here.
+	* term.c (reset_terminal_modes): Do it here, but first
+	do a newline if it's a magic cookie terminal.
+
+	* sysdep.c (sys_suspend) [USG]: Use `nice' to set subshell pri. to 0.
+
+	* sysdep.c (TIOCSETN) [USG]: Use TCSETAW, not TCSETA.
+
+	* sysdep.c (setpriority) [USG]: No longer a no-op; use `nice'.
+
+	* keymap.c (Fwhere_is_internal): New 4th arg inhibits looking thru
+	indirect definitions--so you can search for one.	
+
+	* alloc.c, fns.c, search.c: Doc fix.
+
+1988-12-01  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* process.c (read_process_output): Insert with insert_before_markers.
+
+	* filelock.c (lock_file_1, lock_superlock):
+	If USG, use chmod instead of fchmod.
+
+	* environ.c (Fsetenv): Doc fix.
+
+1988-11-25  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* eval.c (do_autoload): Verify FUNNAME is a symbol.
+
+1988-11-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* fileio.c (Fread_file_name): New arg specifies initial minibuf cntnts.
+	* callint.c (Fcall_interactively): Calls changed.
+
+1988-10-08  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* insdel.c (make_gap): Error if buffer size exceeds range of Lisp int.
+
+1988-10-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fsplit_window): Prevent error in Fset_window_buffer.
+
+	* sysdep.c (gettimeofday): Store -1 thru tzp so caller knows invalid.
+
+	* xdisp.c (message): Pass 0 as new arg to doprnt.
+	* callint.c (Fcall_interactively): Likewise.
+	* editfns.c (format1):
+	* doprnt.c (doprnt): Allow 0 as FORMAT_END arg meaning null-terminated.
+
+1988-10-05  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* keyboard.c: If UNIPLUS, include ioctl.h.
+
+	* sysdep.c (utime): Use new flag IRIS_UTIME, not IRIS.
+	* s-iris*.h: Define that flag.
+
+1988-10-04  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* term.c (term_init): If have `im' capability, permit ins/del char
+	even without `ic'.
+
+1988-10-03  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* m/m-hp9000s300.h: Conditionals for BSD vs HPUX.
+
+	* ymakefile: Look for C_SWITCH_SITE, LD_SWITCH_SITE.
+
+1988-09-30  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* editfns.c (Fformat): Allow nulls in the format.
+	* doprnt.c (doprnt): likewise.  End of format string is new arg.
+
+1988-09-28  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* m/m-7300.h: Undefine SHORTNAMES.  Supposedly newer Unix now.
+
+	* print.c (print): Support new var print_length.
+	(syms_of_print): Define Lisp var print-length.
+	* eval.c (Fbacktrace): Print unevalled form with print_length = 3.
+
+	* Makefile (tags): Add TAGS as alternate target.
+	Process the files in ../lisp/term.
+
+1988-09-27  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* doprnt.c (doprnt): Handle %-20s.
+	* editfns.c (Fformat): Likewise (make enough space for it).
+
+	* minibuf.c (do_completion): If get "Complete but not unique" twice
+	in a row, display all completions.  New var last_exact_completion.
+
+1988-09-26  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+*	* dispnew.c (baud_rate): Now a Lisp variable, not a function.
+	* termcap.c (tputs) [emacs]: Use baud_rate as the speed.
+
+1988-09-19  Richard Stallman  (rms at gluteus.ai.mit.edu)
+
+	* window.c (Fset_window_configuration): Set deleted windows' buffer
+	to nil, via new function delete_all_subwindows.
+	* window.c (Fset_window_buffer): Reject deleted windows.
+	* window.c (init_window_once): Init the ->buffer fields
+	to satisfy error check in Fset_window_buffer.
+
+*	* xmenu.c (Fx_popup_menu): 1st arg is now ((X Y) WINDOW).
+
+	* process.c (child_sig): If synch process terminates, clear
+	synch_process_pid and record synch_process_death.
+*	* callproc.c (Fcall_process): return synch_process_death.
+	Always set synch_process_pid and do it with SIGCHLD masked off.
+	* sysdep.c (wait_for_termination) [subprocesses and not VMS]:
+	Use alarms to check every second whether synch_process_pid is 0.
+
+1988-09-17  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* xdisp.c (redisplay_window): If window-point is outside restriction
+	then correct it in the window.
+	* window.c (Fdelete_buffer): Don't change buffer's point to a value
+	outside its restriction.
+
+	* sysdep.c (init_sys_modes) [MULTI_SCREEN]: Set Vterminal_screen's
+	garbaged bit.
+
+1988-09-16  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+	* keyboard.c (kbd_buffer_get_char): VMS now uses same code as Unix.
+
+	* vmsproc.c: New file for VMS only.
+	* callproc.c [VMS]: Omit Fcall_process and child_setup_tty.
+	* emacs.c (main) [VMS]: Call init_vmsproc and syms_of_vmsproc.
+
+	* lread.c (OBARRAY_SIZE): Change slightly to 509 (prime).
+
+*	* keyboard.c, dispnew.c, term.c, xterm.c (meta_flag): MetaFlag renamed.
+	* keyboard.c (Fset_input_mode): 3rd arg sets meta_flag.
+	(syms_of_keyboard): Variable meta-flag deleted.
+	* sysdep.c (init_sys_modes): Don't override parity settings
+	if meta_flag is 0.
+
+1988-09-15  Richard Stallman  (rms at corn-chex.ai.mit.edu)
+
+*	* search.c (Fsearch_forward, etc.): All buffer-search functions
+	return new the value of point if they succeed.
+
+1988-09-13  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* cmds.c (Fnewline): Correct test of ARG1 to inhibit auto-fill.
+
+1988-09-12  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* window.c (Fdelete_window): Put nil as buffer of the deleted window.
+	This makes select-window get an error earlier.
+
+1988-09-06  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+
+	* search.c (search_buffer, string_match, looking_at):	
+	Report matcher stack overflow as error, not just failure to match.
+
+	* data.c (Fmake_local_variable): Add local variable to simplify
+	too-complex expression.
+
+	* fileio.c (Fdo_auto_save): No "file has shrunk" msg if < 5000 chars.
+
+See ChangeLog.2 for earlier changes.