Tue Aug 25 00:08:47 1992  Marc Andreessen  (marca at wintermute)

        * ymakefile
        (LIBES): Moved GNULIB_VAR (-lgcc for GCC users) before 
        LIB_STANDARD.

        * screen.c
        (syms_of_screen): Upped epoch::version to 4.2.
        
        * keyboard.c
        New variable Veightbit_keyboard.
        (syms_of_keyboard): Declare eightbit-keyboard.
        (init_keyboard): Patch for SunOS 5.0.
        (input_available_signal): Patch for SunOS 5.0.

        * unexapollo.c
        New version of file.

        * x11term.c
        (CXTupdate_end): Call after-update-hook, if it exists, after each
        screen update.
        (internal_socket_read): Use old code when not using
        EIGHTBIT_KEYBOARD.

        * keymap.c
        Restore extern decl for meta_prefix_char when not using
        EIGHTBIT_KEYBOARD.
        (push_text_char_description): Catch chars >= 0200 if not
        EIGHTBIT_KEYBOARD.
        (push_key_description): Catch chars >= 0200 if not
        EIGHTBIT_KEYBOARD.
        (Flookup_key): Use old code when not using EIGHTBIT_KEYBOARD.
        (Fdefine_key): Use old code when not using EIGHTBIT_KEYBOARD.

        * x11term.h
        Don't include <X11/X10.h>.

        * xdispepoch.c
        (layout_string_inc): Cast cb->ch to unsigned char to compare to
        unsigned chars.
        (layout_text_line): Cast cb->ch to unsigned char to compare to
        unsigned chars.
        (try_layout): Don't assume list_ptr gets incremented in
        layout_mode_line.

Sun Aug 23 15:44:42 1992  Marc Andreessen  (marca at wintermute)

        * dispepoch.c
        (init_display): Removed '#if OLD' cruft.  distinct_minibuffer is
        initialized in main.

Sat Aug  8 23:05:51 1992  Marc Andreessen  (marca at wintermute)

        * insdel.c
        (prepare_to_modify_buffer): Clarify message for read-only 
        zone.

        * screen.c
        (Fselect_screen): Print debugging info when buffer
        or window goes kablooey.

--> Epoch 4.1 released.
Wed Aug  5 03:16:01 1992  Marc Andreessen  (marca at wintermute)

        * window.c:
        (Fwindow_edges): Returns correct values now; also takes
        into account separator ("|") for horizontal windows
        not adjacent to left edge of screen.
        (Fwindow_pixedges): Adjust for horizontally split windows.
        [Thanks to rowley@epx.cis.umn.edu (Henry A. Rowley)
        for bugfixes.]

        * mouse.c
        (Fepoch_coords_to_point): Separator character ("|")
        between horizontal windows is now taken into account.
        This may cause inaccuracies with variable-width fonts...

        * indent.c
        (CHECK_NEXT): Fix cursor positioning in horizontally
        scrolled window by catching characters off the left edge
        of the window.

        * alloc.c:
        (Fgarbage_collect): Watch for minibuf_prompt before printing
        ``Garbage collecting...done''.

        * eval.c
        (Fsignal): Don't set Vx_event_handler to nil anymore.

Sun Aug  2 19:30:25 1992  Marc Andreessen  (marca at nlrs2)

        * keyboard.c
        (quit_throw_to_read_command_char): Assert only if
        poll_suppress_count == 0 (so == 2 is still OK).

Sat Aug  1 19:37:50 1992  Marc Andreessen  (marca at nlrs2)

        * button.c
        (PlotTextLine): Constrain n to length of buf.

        * sysdep.c
        (reset_sys_modes): Avoid playing with WS when WS
        doesn't exist.
        (end_of_data): Declare DATA_END extern for systems
        that apparently need it (Titan).
        (end_of_text): Declare TEXT_END extern for systems
        that apparently need it (Titan).

Sat Jul 25 23:29:54 1992  Marc Andreesen  (marca at nlrs4)

        * screen.c
        (syms_of_screen): Upped epoch::version to 4.1.

        * Changes for Apollo support:
          crt0.c
          emacs.c
          fileio.c
          unexapollo.c (new file)

Sun Jul 12 01:10:26 1992  Marc Andreessen  (marca at wintermute)

        * dispepoch.c
        (change_screen_size_1): Don't let window become less
        than one character high.

        * keyboard.c
        (read_key_sequence): If not EIGHTBIT_KEYBOARD,
        allow keys >= 0200 to be recognized normally.

        * cmds.c
        (keys_of_cmds): Only give keys in range [0240,0377]
        ability to self-insert 8-bit characters if 
        EIGHTBIT_KEYBOARD is defined.

        * config.h-dist
        Added EIGHTBIT_KEYBOARD option; default is to not
        define it.

Sat Jul 11 19:22:04 1992  Marc Andreessen  (marca at wintermute)

        * Changes for 8-bit (Keriven) support:
          buffer.c   
          buffer.h   
          cmds.c     
          indent.c   
          keyboard.c 
          keymap.c   
          regex.c    
          search.c   
          syntax.c   
          x11term.c  
          x11term.h  
          xdispepoch.c

        * Changes for SunOS 5 (Solaris) support:
          emacs.c
          fileio.c
          fns.c
          getpagesize.h
          keyboard.c
          lisp.h
          process.c
          selection.c
          syntax.c
          syntax.h
          sysdep.c
          x11term.c
          x11term.h
          ymakefile

        * Makefile
        Added note about -Xs flag to cc -E under Solaris.

        Brendan Lynch - Sun BOS Software  (blynch at East.Sun.COM):
        * process.c (process_send_signal): Although SVr4 'TIOCSIGNAL' is
	almost the same as 'TIOCSIGSEND', it requires its argument to be
	a pointer to the signal value, not the signal value itself.  Add
	"#ifdef TIOCSIGNAL" case *inside* "#ifdef TIOCSIGSEND" to handle
	this difference.

Tue Jun 30 00:10:26 1992  Marc Andreessen  (marca at wintermute)

        * gettime.h
        Patches for TRITON88 support.

        * sysdep.c
        (sys_signal): Call sigaction correctly.
        Patches for TRITON88 support.
        (start_of_data): Clipped extern decl for TEXT_END.
        (end_of_data): Clipped extern decl for DATA_END.

        * buffer.c
        (barf-if-buffer-read-only): Set waiting_for_input explicitly
        to 0 when calling Fsignal (to avoid abort in Fsignal); restore
        waiting_for_input to original value when leaving.

        * window.c
        (select-window): Added window-select-hook support from
        blk@mitre.org.

        * unextitan.c
        Replacement file from mac@kpc.com.

        * data.c
        (%): Don't coredump on % by 0.
        (arith_driver): Don't coredump on divide by 0.

        * x11term.c
        (stringFuncVal): Enable for AIX also.
        (internal_socket_read): Let it work for AIX also.
        (internal_socket_read): Made mapping_buf MAPPINGBUFLEN
        chars long.

        * mouse.c
        (epoch::coords-to-point): Added sanity check to prevent
        infinite loop while cycling through window list.

--> 4.0p2 released.
Sun May 31 15:28:39 1992  Marc Andreessen  (marca at wintermute)

        * unexmips.c
        (unexec): Fixed typo.

        * process.c
        Fixed typo in cpp directive.

        * button.c
        (epoch::motion-style-overrides): New variable.
        (get_button): If epoch::motion-style-overrides is
        t, then allow motion::style to supersede other styles
        of zones in this buffer.

        * config.h-dist
        Raised PURESIZE to 220,000 (up 20,000) for X version.

        * xutil.c
        (epoch::font): Make sure font_name is a string.

        * xdispepoch.c
        (message): Fixes for compiling with GCC 2.1.

Wed May 13 08:50:31 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* dispepoch.c
	(output_forward_char): 
	(update_window): don't call after-movement-function if
	w->last_point was nil.

	* indent.c
	(compute_motion): when dealing with control characters, use the
	character itself for finding dimensions, etc.  Fixes problems with
	proportional fonts and control characters and wrapped lines.

	* screen.c
	(x_init_roots): initialize prev_select field on screen if running
	with local minibuffers.

Tue May 12 09:56:10 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* screen.c: epoch::version up to "Epoch 4.0 Patchlevel 2"

	* xdispepoch.c
	(layout_text_line): If inserting an 8-bit character as a single
	character, do comparison as unsigned characters.  (char_block
	structure declares 'ch' as a (potentially) signed character).

Thu May  7 09:52:34 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* dispepoch.c
	(update_window): 
	(output_forward_char): pass one arg to signal_after_movement.
	* undo.c
	(signal_after_movement): pass one arg - the last value of point.

Tue May  5 13:48:26 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* xutil.c
	(Fx_icon_pixmap): New function; let user set screens' icon_pixmap
	value. 

	* xdispepoch.c
	(layout_text_line): initialize cpos, and insure that cursor
	pointer gets set correctly when cursor is off a scrolled window.

Sat May  2 20:24:39 1992  Christopher Love  (love at fir)

	* button.c
	(syms_of_button): zonep rather than buttonp.

Thu Apr 30 14:17:37 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* screen.c
	(x_set_hints): If user-specified geometry position, then set
	window gravity hint.

	* xdispepoch.c
	(try_layout_id): core dump fix.

Wed Apr 29 11:36:03 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xutil.c
	(Fx_font): do BLOCK_INPUT around update_all_attributes; we don't
	want this to get interrupted.

	* button.c
	(PlotTextLine): buf should be of size 1000; 300 is too small in
	certain cases.

Sat Apr 25 10:06:18 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* ymakefile
	* sysdep.c
	* process.c
	* x11term.h: patch from mac@kpc.com for support of TITAN machine.
	* unextitan.c: new file.

	* unexmips.c
	(unexec): patch from rutt@paradise.asd.sgi.com to enable stripping
	on irix.

	* 4.0p1 released.

Wed Apr 22 11:24:26 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* xdispepoch.c
	(layout_window): Call get_start_button if window's starting
	position is forced.
	(try_layout): Call get_start_button *only* if requested start is
	different from current start.

	* button.c
	(get_start_button): Anytime this function is called, must
	recalculate window's starting position by seaching button list
	from scratch.

Fri Apr 17 14:23:54 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* screen.c
	(x_create_screen): Fix for uninitialized values for initial screen
	placement. 

	* button.c
	(PlotTextLine): Fix for random coredump.

Wed Apr 15 09:36:24 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* selection.c
	(x_selection_request): If nonstandard target type requested,
	SelectionNotify event should have property = None.  Fixes more
	problems pasting to Openwindows clients.

	* insdel.c
	(insert_from_string): call prepare_to_modify_buffer with correct
	args (2 rather than none).

	* screen.c
	(epoch::version): update to "4.0 Patchlevel 1"

Mon Apr 13 16:05:38 1992  Christopher Love  (love at aspen.cs.uiuc.edu)

	* selection.c
	(x_selection_request): Do BLOCK_INPUT() around all property
	setting.  Do XFlush() following property changes.  This fixes
	openwindows problems. 

Sun Apr 12 19:15:03 1992  Christopher Love  (love at fir)

	* button.c
	(Fread_pixmap_file): Initialize other fields in attributes
	structure to prevent coredump.

Sat Apr 11 19:47:37 1992  Christopher Love  (love at fir)

	* window.c
	(Fdelete_window)
	(unshow_buffer): Fix for deleting deleted window.

Fri Apr 10 10:43:56 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xutil.c
	(Fepoch_load_bitmap): New function.

Thu Apr  9 14:51:20 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* window.c
	(Fselect_window)
	(Fset_window_configuration): Fixes for running with local
	minibuffers. 

	* screen.c
	(Fselect_screen)
	(x_select_screen): Fixes for running with local minibuffers.

	* button.c
	(GCofStyle): if there is a style & a stipple pattern, don't
	override value of foreground.

Tue Apr  7 11:55:54 1992  Christopher Love  (love at golin.cs.uiuc.edu)

	* xutil.c
	(Fquery_mouse): fix documentation.
	(raw_query_pointer): return X window id of the Epoch screen that
	coordinates are wrt; this is valid if function will return non-nil
	value for query-mouse.

Mon Apr  6 16:42:00 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* xutil.c
	(raw_query_pointer): when called from query-mouse, don't hang if
	pointer is outside the screen.

Sun Apr  5 15:19:40 1992  Christopher Love  (love at fir)

	* selection.c
	(x_selection_request): for XA_LENGTH request, only do strlen if
	'item' is of type STRING.

Fri Apr  3 11:14:00 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* screen.c
	(x_init_display): intern atoms for XA_TEXT, XA_LIST_LENGTH,
	XA_LENGTH, and XA_CLIPBOARD.

	* selection.c
	(x_selection_request): If target type is STRING or TEXT, return
	the selection value.  Deal with LENGTH and LIST_LENGTH requests,
	which return 32 bit integers.  TARGETS request lists all
	possibilities.  Don't call convert-selection-hook for PRIMARY or
	CLIPBOARD selection atoms.

Thu Apr  2 11:45:01 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* xutil.c
	(Fx_cursor_color):  renamed to Fx_cursor_background.
	(cursor-color and cursor-background available at elisp level.
	(Fx_cursor_foreground):  new function.

	* x11term.c
	(rindex):  this should be 'externed'.

	* xdispepoch.c
	(layout_text_line): More changes.  Treat overlay_arrow string and
	leading '$' for scrolled windows as "overwrite" string which
	overwrites the displayed buffer contents on a line.  

	* screen.c
	(x_init_display): intern atom "TEXT" for use in selection code.
	Under Openwindows, it may already be interned.

	* selection.c
	(x_selection_request): support request of target type XA_TEXT.
	This is ICCCM compliant.  XA_TARGETS request should return this in
	its list as well.  (Should support some other target types as
	well). 

Wed Apr  1 19:49:44 1992  Christopher Love  (love at fir)

	* keyboard.c
	(record_unwind_protect): don't mess with screen heights and
	changing screen size following suspension. 

Mon Mar 30 14:40:20 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* screen.c
	(Fcreate_screen): When creating screen with local minibuffer, get
	base font of the newly created screen, *not* of the screen
	containing the minibuffer currently.

	* xdispepoch.c
	(layout_window): if doing a recenter, be sure that window's
	start_button value is correct so that all styles will appear.

Sat Mar 28 09:45:46 1992  Christopher Love  (love at aspen.cs.uiuc.edu)

	* VMSBUILD: remove RCS headers.

	* vms-pp.trans: remove RCS headers.

	* button.c: if HAVE_GRAPHIC_ZONES, include "xpm.h", not <X11/xpm.h>

Fri Mar 27 14:41:52 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* regex.c
	(re_match_2): fix for Convex.

	* selection.c
	* property.c: don't include memory.h if __convex__ defined.

	* keyboard.c
	(read_command_char): don't call epoch_event_dispatch() (which
	calls Elisp code) with waiting_for_input set to 1.  Temporarily
	set this flag to zero.

	* Epoch 4.0p0 Released.

Wed Mar 25 10:12:02 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* x11term.c
	(internal_socket_read): Don't mask off bits when ControlMask seen
	for a KeyPress event.

	* xdispepoch.c
	(layout_text_line): Deal with finding cursor while laying out the
	overlay arrow string.

	* dispepoch.c
	(output_for_insert): Don't do fast insert if overlay arrow is in
	this buffer.

Tue Mar 24 20:15:57 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c
	(layout_text_line): Cleaned up/reworked code for horizontal window
	scrolling.  This fixes problems displaying lines with tabs (which
	then caused core dumps).  Yet another "feature" supported.

Mon Mar 23 09:39:38 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* screen.c
	(epoch::version):  Change to "Epoch 4.0 Patchlevel 0".

Sun Mar 22 14:45:54 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* emacs.c
	(main): if initialized, run ASCII emacs when "-batch" is specified.

	* xdefault.c
	(optable): deal with "-name" argument; treat line "-rn".
	* xutil.c
	(x_make_command_line): treat "-name" like "-rn".

	* minibuf.c - include signal.h; fix for DGUX problem
	* print.c - include signal.h; fix for DGUX problem
	* process.c
	(process_send_signal): DGUX fix from reilly@dg-rtp.dg.com

	* x11term.c
	(CursorToggle): Don't call XClearArea if in minibuffer window with
	a local minibuffer.  Fixes character blanking problem.
	(CursorToggle): Call ShipOutTextBlock with window corresponding to
	cursor info; this insures a match between text plotted and the GC
	clip rectangle.  Fixes character blanking in minibuffer for local
	minibuffers. 

	* xdispepoch.c
	(layout_echo_area_contents): don't specify a style for laying out
	messages.  It will use stylenorm by default.

Thu Mar 19 15:26:05 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* xdispepoch.c
	(layout_text_line): fixes for selective-display mode.  Problems
	seen in outline-minor-mode.

	* window.c
	(change_window_height): if the "bounding" window of window being
	resized is the sole window on the screen (next window is
	minibuffer window and prev window is nil and running with distinct
	minibuffers), then silently fail here.  This prevents a wierd
	window configuration on the epoch screen (If running with local
	minibuffers, then this is allowable and lets you get a multi-line
	minibuffer). 

Wed Mar 18 11:44:11 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c
	* window.c
	* mouse.c - call compute_motion with new argument; in cases of
	cursor motion, use the window's start_button value, which is
	valid.  Othertimes, use Qnil.

	* indent.c
	(compute_motion): new argument - start_button.  If non nil, use
	this a starting point in buffer's zone list; otherwise start from
	beginning of list.
	(compute_motion): at end, when checking next character in buffer,
	don't extend past end of buffer or narrowed region (ZV).

Tue Mar 17 13:02:57 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* paths.h-dist
	(PATH_APPDEFAULTS): add this label; used in x_load_defaults for
	default location of app-defaults entry for Epoch.

	* xdefault.c
	(x_load_defaults): use PATH_APPDEFAULTS as default location of
	app-defaults entry.
	(x_load_defaults): app_default buffer declared to size MAXPATHLEN,
	or 1024 if symbol not defined.

Mon Mar 16 10:06:34 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* x11term.c
	(dump_window): only try to deal with modeline if it is non-nil.

	* xdispepoch.c
	(layout_echo_area_contents): 
	(layout_window): Layout message appropriately if we've got a
	multi-line minibuffer window.
	(layout_text_line): only layout overlay arrow string *IF* it is of type
	string.  Caused garbage under Calc.
	(layout_mode_line): Set window's modeline to Qnil while laying it
	out, then set it to the correct structure afterward.  This
	prevents interaction between layout code and expose event code.

Sun Mar 15 12:18:53 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c
	(layout_text_line): Draw overlay arrow after left window '|' has
	been drawn (if appropriate).  Set beginning of changed region
	correctly so that it is plotted.

	* emacs.c
	(init_cmdargs): ignore -ud if left in cmd line args.

	* xutil.c
	(x_make_command_line): if -ud specified, set flag so that we look
	at the .Xdefaults file directly.  Flag is XD_use_defaults.

	* xdefault.c
	(x_load_defaults): If XD_use_defaults set, look at .Xdefaults;
	otherwise be politically correct.

	* ymakefile
	(termcap.o, terminfo.o, tparam.o): remove dependencies.

	* termcap.c, terminfo.c, tparam.c - files moved to ascii
	directory; they aren't needed for Epoch.

	* window.c
	(Fscroll_other_window): correctly set result for all cases; this
	was causing bogus error messages.

	* keyboard.c
	(read_command_char): call stop_polling regardless, and call
	start_polling prior to "goto read_command_char_start_over"; this
	fixes aborts on SYSV machines.

Tue Mar 10 16:31:58 1992  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* unexec.c
	(mark_x): return an integer; void caused problems.

	* x11term.c
	(CursorToggle): If not in screen update, do an XFlush; this
	prevents cursor from vanishing in some situation.  

Thu Mar  5 15:19:51 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* ymakefile - don't link with curses library.  (termcap, tparam,
	etc.) should be moved to ascii directory and not used here)

	* sysdep.c
	(init_baud_rate): set baud rate to 9600 and don't deal with
	ospeed.  (In order to not require curses library).

	* minibuf.c - replace uses of NULL with NIL.

	* process.c - replace uses of NULL with NIL.	

Mon Mar  2 10:05:30 1992  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* x11term.c
	(internal_socket_read): Back out all changes from Mar 1.  This
	version of focus code seems to deal with most cases correctly; if
	you use "warp rings", you are S.O.L.

Sun Mar  1 09:57:49 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* button.c
	(STYLE_SET_FUNCTION): If argument not nil or a bitmap, silently
	fail.  This is consistent with other set-style-* functions.

	* x11term.c
	(internal_socket_read): Try focus code from Emacs; it seems to
	handle basic cases OK, and does deal with "warp rings" better.
	(There is excess cursor flicker; c'est la vie).
	(internal_socket_read): Undo this previous change; it causes other
	problems.  Sigh.  My kingdom for politically correct focus code.
	(internal_socket_read): Disable special code for Enter/LeaveNotify
	events; this prevents correct behavior for "warp ring" under
	TWM/TVTWM.  This may result in excess cursor flickering in other
	circumstances, but shouldn't otherwise change things.

Fri Feb 28 10:26:22 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c
	(layout_window): If point still hasn't been found after "recenter"
	case, try scrolling up a little to find it.  This will only
	probably happen with buffers containing graphic zones.

	* button.c
	(ShipOutTextBlock): for XCopyArea w/graphic zones, use GC with no
	graphics exposures set.

	* x11term.c
	(dump_window): fixed test for whether modeline needs to be
	refreshed following expose event.
	(x_init_1): conditional should be #ifndef SYSV_STREAMS

Thu Feb 27 12:00:21 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* screen.c
	(epoch::version): changed to Epoch 4.0 Beta Patchlevel 1

Tue Feb 25 13:42:49 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* print.c
	(strout): fix off-by-1 error in bounds check; bcopy was called
	with length -1, and it blew core on some systems.

	* xdispepoch.c
	(message_buf): declare as 301 bytes.
	(layout_string_inc): take max when calculating line's ascent and
	descent. 
	(layout_window): if forced window start and relocating cursor,
	don't blow core.  (Why cursor x/y is such that it would blow core
	is another question).

	* x11term.c
	(CXTflash): If HAVE_TIMEVAL, do a slight pause when flashing
	screen for visible bell.

Mon Feb 24 15:45:18 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* indent.c (compute_motion): Make a more accurate decision on
	whether to "fudge" the value for border case on wrapped line;
	previous version wasn't valid for proportional font lines.

Sun Feb 23 09:50:23 1992  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* x11term.c (Fastmove_cursor): BLOCK/UNBLOCK_INPUT around
	CursorToggle call.  Call XFlush explicitly here.

	* Changes from 18.58 merged in:

	* process.c (create_process): Really don't use variable `sigchld'.
	* fileio.c: Doc fix.
	* x11term.c: Define NULL if nec after all system headers.
	* process.c, sysdep.c: Don't include termio.h if NO_TERMIO.
	(TIOCGPGRP): If TRITON88, define as alias for FIOGETOWN.
	* process.c (BROKEN_O_NONBLOCK): New parameter; undefine
	O_NONBLOCK.
	* data.c (Fset_default): Handle the case of mask < 0.
	* sysdep.c (child_setup_tty) [IRIS_4D]: Make sure we have VSWTCH char.
	* process.c (PTY_OPEN): Handle new macro.
	* fileio.c (Fmake_symbolic_link): If error, try deleting link name
	and then retry.  Read first arg, not second, as raw string.
	* gettime.h: On DPX2, include sys/time.h.
	* window.c (window_scroll): If NOERROR, return indication of failure.
	(Fscroll_other_window): Signal at end the error inhibited before.
	* callproc.c (Fcall_process): Clear synch_process_* earlier.
	* sysdep.c [_SEQUENT_]: Include stropts.h.
	* sysdep.c, process.c, x11term.c, keyboard.c: Fix comments on #endif.
	* Makefile (distclean): Depend on clean; delete redundant stuff.
	* ymakefile (LIB_GCC, GNULIB_VAR): Handle GCC 2.
	* malloc.c (malloc): If SUNOS_LOCALTIME_BUG, get at least 16 bytes.
	* fileio.c (Fwrite_region): Remove Alliant conditional.
	* crt0.c: Conditionals for ALLIANT_2800.
	* unexfx2800.c: New file.
	* sysdep.c [VMS] (sys_write): Special case for fixed-length
	with carriage-control characters.
	* lread.c (readevalloop): Make forward declaration static.
	* dispnew.c: Fix doc string of visible-bell.
	* fileio.c (Fexpand_file_name): When removing / from end of newdir,
	don't change `/' to `'.
	* dired.c (file_name_completion_stat): Try stat, then lstat.
	* unexelf.c: Fix typo in last change.
	* fileio.c (Finsert_file_contents) [AIX]: Don't open mpx files.
	* fileio.c (Fmake_symbolic_link): Use `s' to read second arg.
	* unexelf.c: Handle rounding of section boundaries.
	(round_up): New function.
	* sysdep.c (sys_access) [VMS]: Fix bug whereby the default rather 
	than the actual privileges were used to determine if we have
	file access.
	* fileio.c (Finsert_file_contents) [VMS]: Adjust st_size
	if file has fixed length records and implied carriage control.
	* compile.com: Delete useless object file generated when sensing
	the presence of a C compiler.  Prevent user from seeing error 
	message when sensing C compiler.
	* fileio.c (file_name_as_directory): Cast result of `index'.
	(directory_file_name): Likewise.
	* sysdep.c (getpwnam): Cast result of egetenv.
	* vmsfns.c: Don't include syidef.h if using GCC.
	* Makefile (xmakefile): Write formfeed and tab literally.
	* compile.com: Automatically use whichever C compiler is installed.
	* process.c (process_send_signal): Undo Nov 23 change.
	* process.c (wait_reading_process_input): Use timeout_subtract.
	* dispepoch.c (Fsleep_for): Likewise.
	(timeout_subtract): New function to subtract struct timeval.
	* window.c (window_scroll): New arg `noerror'.
	(scroll_command, Fscroll_other_window): Pass that arg.
	* callproc.c (Fcall_process): Get return status from
	synch_process_death and synch_process_retcode.
	* process.c (sigchld_handler): Set those vars.
	* sysdep.c, process.c: Include sys/termios.h if NEED_TERMIOS.
	* process.c: Doc fix.
	* window.c (init_window_once): Call make_window with no args.
	* keyboard.c (command_loop_1): Move label directly_done.
	* emacssignal.h (signal_full_mask, signal_empty_mask): Vars renamed.
	(sigmask): Copy from SIGEMPTYMASK.
	(sys_sigpause): Argument is a mask.
	(SIGFULLMASK, sigunblock, sys_sigdel): New non-POSIX definitions.
	* sysdep.c (sigunblock): Definition removed.
	(wait_for_termination): Change call to sigpause.
	(signal_full_mask, signal_empty_mask): Vars renamed.
	(signal_handler_t): Add missing `typedef'.
	* ymakefile (CC, MAKE): Set these variables from optional macros.
	Change all uses of `make' to ${MAKE}.
	* process.c (Fopen_network_stream): Handle EINTR from connect,
	but turn off interrupts anyway.
	* emacs.c (main): Do tzset if HAVE_TZSET.
	* minibuf.c (read_minibuf_unwind): Clear readonlyness of
	minibuffer.
	* lisp.h: Turn text after #endif, #else into real comment.
	* sysdep.c (child_setup_tty) [AIX]: If process_send_signal will use 
	chars, make sure we have chars for VQUIT and VINTR.
	* lisp.h (DEFVARPERBUFFER, DEFVAR_PER_BUFFER):
	Don't omit 3d arg to defvar_per_buffer.
	* emacs.c (main) [BSD4_3]: Call tzset.
	* sysdep.c (get_system_name): Special code for IRIX.
	* process.c (process_send_signal): New code for Iris.
        * 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.
	* ymakefile: Fix comments on #endifs.
	* unexmips.c (unexec): Get rid of error check about mismatch
	in number of sections.
	* buffer.c: Doc fix. 
	* process.c (create_process): Set bit in input_wait_mask before fork,
	so sigchld_handler can clear it properly at any time.
	* cmds.c (Fforward_line): Moving nowhere at eob after non-newline
	should return 1, not 0.
	* config.h-dist (PURESIZE): Increase to 120000 if no X.
	* ymakefile: Use C style comment, not #.
	* emacs.c (main) [AIX]: Handle SIGURG, not SIGIOINT.
	* search.c (syms_of_search): Set re_max_failures here.
	(compile_pattern): Not here.
	* search.c (compile_pattern): Use bigger than default re_max_failures.
	* x11fns.c: Move lisp.h and window.h later; undef NULL just before.
	* alloca.c: Test __STDC__, not X3J11.
	Do nothing if alloca is defined as a macro.
	* editfns.c (Ffollowing_char): Really return 0 at eob.
	* ymakefile (paths.h, config.h): Never copy, always fail.
	* dired.c (file_name_completion): Copy two improvements in ignoring
	case from Ftry_completion: of inexact matches, prefer one that doesn't
	change the case, and preserve user's input case whenever we can't
	add any more text.
	* process.c (create_process): Give subtty its permanent value
	right from the start.  Duplicate the descriptor.
	Handle system call failures opening pty or pipes.
	* sysdep.c (tcgetattr): Just one definition, if not HAVE_TCATTR.
	[HAVE_TERMIO]: Coalesce duplicate definition and include.
	* process.c (close_process_descs): Close subtty of proc if open.
	* ymakefile (paths.h, config.h): Don't use sh -c.  Get rid of @.
	* ymakefile (paths.h, config.h): Use explicit file names, not $?, $@.
	* crt0.c (start1): Declare static before first use.
	* lread.c (read1): Don't accept integer containing quoted chars.
	* eval.c (Feval): Don't allow return without correcting backtrace_list.
	(Ffuncall): Likewise.
	* sysdep.c (wait_for_termination): Use sleep loop instead of `pause'.
	* search.c (Fstring_match, search_buffer): Real Lisp error on overflow.
	* lread.c (map_obarray): Don't die if obarray contains non-symbol.
	* sysdep.c (wait_for_termination): Make use of sysv sigpause.
	* emacs.c (main): Ignore SIGDANGER on aix.
	* editfns.c: Doc fix.
	* data.c (Fset): When this buffer sees default value,
	thoroughly set the default value right away.
	* callproc.c: Doc fix.
	* keyboard.c (Fopen_dribble_file): Handle closing the file.
	* commands.h (quit_char): Declare it.
	* minibuf.c (temp_echo_area_contents): Use that var.
	* fileio.c: Changed a HPUX conditional to HPUX_NET.
	* 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.
	* sysdep.c (HAVE_TERMIO definitions):  Add HAVE_TCATTR inside IBMR2AIX.
	* fileio.c (Fexpand_file_name): Avoid doing strlen (0).
	* emacs.c (main): Add SIGIO conditional within AIX conditional.
	* window.c (init_window_once): Increment window_select_count.
	* keymap.c (Fkeymapp): Doc fix.
	(Fcopy_keymap): Don't recursively copy keymaps inside symbols.
	* emacs.c (main) [POSIX_SIGNALS]: Call init_signal.
	* sysdep.c [DGUX] (sys_siglist): New variable.
	* sysdep.c (_sobuf): Unsigned chars if DGUX.
	* sysdep.c (init_signals, sys_signal, sys_sigpause): New functions.
	(sys_sigblock, sys_sigunblock, sys_sigsetmask): New functions.
	* emacssignal.h: New file.
	* data.c, keyboard.c, process.c, sysdep.c, x11term.h: Include it.
	* data.c (arith_error): Use SIGEMPTYMASK.
	* keyboard.c (sigfree, sigunblockx): Use SIGEMPTYMASK.
	(get_input_pending): Use SIGMASKTYPE.
	* keyboard.c (sigholdx, sigblockx): Use sigmask.
	* process.c (create_process): Use sigmask.
	* sysdep.c (wait_for_termination): Use them.
	[FASYNC] (request_sigio): Use sigunblock.
	* x11term.h (BLOCK_INPUT_DECLARE): Use SIGMASKTYPE.
	* x11term.c (sigunblockx): Use SIGEMPTYMASK.
	* process.h (subtty): New slot.
	* process.c (create_process): Set it.
	(process_send_signal): Use it.
	* sysdep.c [DGUX]: Include file.h.
	* 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.
	* keyboard.c (read_avail_input) [SYSV_STREAMS]: Don't alter O_NDELAY.
	* process.c (process_send_signal): Handle case where there is no pgrp.
	* process.c (status_notify): GCPRO tail.
	* 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.
	(Feval): If we're calling a subr that takes MANY args, don't
	UNGCPRO until after we call the subr.
	* callint.c (Fcall_interactively): Don't UNGCPRO until after
	Ffuncall returns.
	* sysdep.c (discard_tty_input): Do nothing if read_socket_hook.
	* 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.
	* bytecode.c (Fbyte_code): Don't take away GC protection
	of args given to Ffuncall.  Ffuncall expects the caller to protect.
	* indent.c (invalidate_current_column): New function.
	* editfns.c (Fwiden, Fnarrow_to_region): Call it.
	* keyboard.c (init_keyboard): Test HAVE_TERMIO instead of USG.
	* ymakefile (LIBES): Put gnulib before libc.
	* process.c (list_processes_1): Handle status of network streams.
	* search.c: Doc fixes.
	* dispepoch.c [__GNU_LIBRARY__] (PENDING_OUTPUT_COUNT): Changed FILE
	member names for recent GNU stdio.h reorganization.
	* process.c (Fprocess_status): Finish handling network connections
	right.
	* eval.c (Ffuncall): Don't gcpro args if we decide to
	garbage-collect; in functions that take MANY arguments, the caller
	gcpros the arguments.
	* keyboard.c (read_command_char): Exit at eof if noninteractive.
	* eval.c (call1, call2, call3): Reorder actions in NO_ARG_ARRAY case.
	* print.c (strout): Set message_buf_print if appropriate.
	* insdel.c (insert_from_string, insert_from_string_before_markers):
	New functions.
	* editfns.c (Finsert, Finsert_before_markers): Use them.
	* eval.c (apply1, call1, call2, call3): Protect arg vector.
	* eval.c (Fapply): Protect funcall_args.
	* 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.
	* minibuf.c (Ftry_completion): If ignoring case, and all else equal,
	try to preserve the case of the characters in the input.
	* keymap.c (describe_map_tree): `maps' no longer register var.
	* lread.c (init_read): If Vload_path was set specially before dumping,
	preserve it by default.
	* keymap.c (describe_map_tree): GCPRO maps.
	* 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.
	* abbrev.c (Fdefine_abbrev): When type-checking arguments, allow
	EXPANSION to be nil.
	* 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.
	* filelock.c (lock_file_owner_name): Declare type of arg properly.
	* alloc.c (pure): No need to initialize under VMS.  If we do
	initialize the executable is 132000 bytes larger
	* callproc.c, emacs.c: Fix def of environ when compiling with GCC
	under VMS.
	* fileio.c: fix data type of vms_file_written.
	* malloc.c: Add a couple of type casts.
	* vmsmap.c: Give proper name to sdata such that $D$ATA
	and __DATA correctly bracket the impure memory.  Increase size of
	sdata and DATA_START, to make sure that impure memory starts at an
	address > 8191, since otherwise garbage collection gets very
	confused and Emacs bombs with peculiar errors.  
	Remove some flotsam in mapin_data - someone was trying to save the
	argv and argc parameters, but never bothered to pass them in the
	first place.  This was wrong to begin with, since the reason the
	argv and argc parameters were saved in the dump file was that
	calloc was not defined as sys_calloc in s-vms.h
	* sysdep.c: Include strings.h, and fix data type of dummy.  Add
	check to make sure that va_count is not already defined.
	* vmsfns.c: Add type cast.
	* compile.com: Comments added for how to use GCC.
	* link.com: Alternative command for linking if GCC is in use.
	* malloc.c: Add forward decl for `malloc'.
	* 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.
	* fileio.c (write-region): Use rename_sans_version instead of rename.
	* editfns.c (init_editfns): Turn off polling.
	* sysdep.c (child_setup_tty): Turn off erase & kill chars for BSD.
	* editfns.c (init_editfns): Don't call getpwnam (0).
	* editfns.c (clip_to_bounds): Not static.
	* vmsfns.c (vms_trnlog): Increased size of str to 256 elements.
	(vms_symbol): Increased size of str to 1025 elements.
	* window.c (unshow_buffer): Keep PT in bounds when setting it.
	* process.c (Fprocess_status): Test of childp was backwards.
	* emacs.c: Include headers to get FIONREAD, as in keyboard.c.
	* dired.c (file_name_completion_stat): Use lstat.
	* fileio.c (Ffile_exists_p): Use lstat.
	* getpagesize.h [VMS]: Include param.h from Emacs.
	* malloc.c (vms_current_brk): Delete spurious ampersand.
	* sysdep.c [VMS]: Include pwd.h from Emacs.  Use sys/file.h if GCC.
	(F_SETFL) [VMS]: Undefine this, to control conditionals.
	(bzero, bcopy) [VMS]: Don't take address of `length'.
	(getpwnam): Make `full' unsigned.
	(creat_copy_attrs): Add some casts.
	(sys_access): Change prvmask and CHECKPRIV to use bitfields.
	Add some casts.
	(vmserrstr): Add a cast.
	* vmsmap.c (mapin_data, mapout_data): Add some casts.
	(sdata, edata): Alternate declarations for GNU C.
	* vmsfns.c: Include clidef.h and syidef.h.
	(getjpi, translate_id): Add cast.
	(translate_id): Make p unsigned.
	(Fvms_system_into, Fsetprv): Likewise for other variables.
	(Fspawn_subprocess): Cast call to xmalloc.
	(vms_version_fn, vms_trnlog, vms_symbol): Add casts.
	* minibuf.c (Ftry_completion): Fix error in previous change.
	* 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.
	(expand_file_name): Cast result of index.
	* window.c (replace_window, unshow_buffer, save_window_save):
	Add forward declarations.  Make some return void.
	* keymap.c (insert_first_line): Likewise.
	* lread.c (read_escape): Likewise.
	* unexec.c (make_hdr, copy_text_and_data, copy_sym, mark_x):
	Likewise.
	* sysdep.c (sys_sleep, input_wait_timeout): Don't use & on constant.
	(sys_access): Likewise.
	(sys_creat): Define va_count.
	* vmsfns.c (Fspawn_subprocess, create_mbx): Don't use & on constant.
	(translate_id, vms_version_fn, vms_proclist
	(JPI$_MASTER_PID, JPI$_CLINAME): Don't define if already defined.
	(CLI$M_NOWAIT, SYI$_VERSION): Likewise.
	* lastfile.c, filelock.c, process.c: Add a dummy function if VMS.
	* fileio.c: Change VMS conditionals for header files.
	* dir.h (dir$t_name, dir$t_linkname): Use standard syntax for pointer.
	* callproc.c (environ) [VMS and __GNUC__]: Different declaration.
	* minibuf.c (Ftry_completion): Fix handling of matches aside from
	case. 
	* fileio.c (directory_file_name): Fix off-by-one testing slen at end.
	(Fexpand_file_name): Remove excess slash from end of user's home dir.
	* unexmips.c [sony]: Include getpagesize.h and fcntl.h.
	* keyboard.c (read_avail_input): Raise SIGHUP if no input on AIX.
	* minibuf.c (assoc_for_completion): Add missing defn of local var.
	* minibuf.c (assoc_for_completion): New function.
	(do_completion): Use that to check for exact match.
	* fileio.c (Fwrite_region): On VMS, don't try rewriting old version.
	* fileio.c (Fmake_symbolic_link): Don't expand FILENAME.
	* eval.c (Fcatch, internal_condition_case): Fill in c.handlerlist.
	* buffer.c (Frename_buffer): Refuse to rename a minibuffer.
	* keyboard.c (echo_char): Don't have a space at end of echobuf.
	* sysdep.c (MEMORY_IN_STRING_H): New compilation flag.
	* emacs.c: Use EQ rather than NULL.
	Include stdio.h after lisp.h, and preserve its meaning of NULL.
	* gettime.h: New file.  Handles time.h and/or sys/time.h.
	* process.c, x11term.c, x11fns.c: Use that, not those others directly.
	Make sure to include sys/socket.h first, if have sockets.
	* 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.
	* process.c, x11term.c (sys/time.h): Treat uts like aix.
	* xdispepoch.c (message_buf_print): New variable.
	* dispepoch.h: Declare it.
	* xdispepoch.c (message): Store 0 there.
	* print.c (printchar): Use and set it.
	* window.h (prev_echo_area_contents): Declare it.
	* minibuf.c (do_completion): Clear that var before temporary message.
	* fileio.c (report_file_error): Don't downcase "I/O".
	* sysdep.c (TERMINAL): Move the definitions inside other #ifdef's.
	(tcgetattr): New sym.  Define as macro if not HAVE_TCATTR.
	Use instead of ioctl TIOCGETP.
	(discard_tty_input, child_setup_tty, init_sys_modes, reset_sys_modes):
	If HAVE_TCATTR, use tcsetattr.
	(init_sys_modes): Handle VSUSP, V_DSUSP if HAVE_TCATTR.
	* vmsmap.c (mapin_data): Save and restore argv; copy the strings.
	* x11fns.c, x11term.c: Include fcntl.h only once.
	* window.c (syms_of_window): New variable minibuffer-prompt-width.
	* sysdep.c (dup2): Rewrite of non-F_DUPFD case.
	* search.c (Fmatch_data): Return ints for values above buf size.
	* callint.c (global_map): Make declaration extern.
	* process.c (Qexit): Likewise.
	* process.c (create_process): On Apollo, use O_NOCTTY to open pty.
	* process.c (wait_reading_process_input): Special case APOLLO like
	sun. 
	* sysdep.c (discard_tty_input): Use TIOCFLUSH on Apollo.
	(init_sys_modes): Avoid TIOCSTART on Apollo.
	* keyboard.c (command_loop_1):
	Don't clear last_command when start macro.
	* window.c (init_window_once): Set use_time to 1 for root_window.
	* x11fns.c: Always include ioctl.h except on VMS.
	* keyboard.c (this_command_keys): Now type unsigned char *.
	(read_command_char, Fexecute_command_char): Cast to proper type.
	(init_keyboard): Likewise.
	* Makefile, ymakefile (SHELL): Force use of sh.
	* buffer.c (Fbuffer_local_variables): Omit slots with no names.
	* eval.c (struct catchtag): New slot `handlerlist'.
	(internal_catch): Record that.
	(unbind_catch): Use that.
	* unexec.c (make_hdr) [TPIX]: Set f_hdr.f_nscns and f_thdr.f_scnptr.
	* sysdep.c [BROKEN_TIOCGWINSZ]: Undef TIOCGWINSZ.
	* malloc.c (cfree): New function.
	* 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.

Thu Feb 20 11:08:25 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* lread.c
	(init_read): set load-path to ../epoch-lisp:../lisp initially.

	* button.c
	(syms_of_button): add two new functions - epoch_get_color_rw and
	epoch_set_color_rw. 

	* x11term.c
	(internal_socket_read): toggle cursor if appropriate for both
	FocusIn/Out and Enter/LeaveNotify events.
	(Cdumprectangle): unconditionally clear cursor and toggle it
	following expose event handling.

Wed Feb 19 10:33:11 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* xdefault.c
	(x_load_defaults): don't read .Xdefaults in user's home directory;
	this isn't politically correct.

	* screen.c
	(x_set_hints): Take two flags - user and program geometry masks
	and try to do the right thing.
	(x_init_defaults): don't specify position in default geometry
	strings. 
	(x_create_screen): Changes to deal with positioning hints
	differently. 

Mon Feb 17 10:51:45 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* indent.c
	(compute_motion): When correcting computed x,y values at end,
	don't adjust values if lines are being truncated; cursor should
	reside on the '$' character.

	* dispepoch.c
	(output_forward_char): If at end of line, don't do shortcut, as
	line may be truncated with cursor at end of invisible text.

	* xdispepoch.c
	(layout_text_line): if laying out a truncated line with point in
	invisible text, cursor should be at last real character - the '$',
	not the sentinel character at end of line.  Fixes vanishing cursor.

Fri Feb 14 14:47:43 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* process.c
	(wait_reading_process_input): Use conditional NETCONN_P to
	possibly detect dead socket connection.
	(Fprocess_status): Deal with network streams appropriately.
	(list_processes_1): Output different messages for network streams.
	(Fopen_network_stream):  Handle EINTR from connect, but turn off
	interrupts anyway.

Mon Feb 10 11:45:01 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* undo.c
	(Fprimitive_undo): properly restore mark if point was before mark.

	* x11term.c
	(XTmove_cursor): Do call XFlush at line 465.
	(ClearCursor): silently succeed if ws->new_cur_char not valid, etc.
	(internal_socket_read): if screen has been resized by font change
	or elisp command and processing is pending, don't do any expose
	event handling, as display structs aren't valid.
	* xdispepoch.c
	(redisplay): handle cases where nothing has changed, but we must
	get to end and do pending window changes.

Sat Feb  8 15:23:24 1992  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* xdispepoch.c
	(redisplay): get correct horizontal cursor position for vertically
	split windows.

Fri Feb  7 10:52:36 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* lisp.h - changes for precedence problems seen with GCC2.

	* xdispepoch.c
	(try_layout_id): set window_end_pos correctly if changes are not
	visible on screen.  Handle case where display begins on line using
	selective display.
	(redisplay): don't optimize for single line if using
	selective_display.
	(redisplay): use correct tab_offset in call to compute_motion.

Thu Feb  6 11:16:57 1992  Christopher Love  (love at ash.cs.uiuc.edu)

	* Makefile - clean should remove epoch, not xemacs.

	* ymakefile - create epoch, not xemacs if defined SHM.

Wed Feb  5 09:27:44 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* window.c
	(Fset_buffer_window): If switching between buffers with different
	(or non-nil) buffer-styles, mark window's size as changed; this
	will prevent stray pixels from being left in some instances.

Tue Feb  4 16:41:51 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c
	(layout_mode_line): If modeline height has changed, and last
	redisplay block is to clear the window end, adjust the region to
	be cleared.

	* xutil.c
	(Fx_font):  only set the font field for the screen's stylenorm;
	not the stylerev or stylecursor.

Sun Feb  2 17:01:35 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* dispepoch.c - call punt_and_run_emacs if no display set.

	* emacs.c - punt_and_run_emacs() - new function.  Call if -nw or
	-t cmd line flags specified.

	* selection.c - Fepoch_convert_selection - fix arguments on call to
      	wait_reading_process_input().  Call consume_available_input() after
	this call returns.

Tue Jan 28 11:47:38 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* print.c - buttons are now printed as zones

	* ymakefile - zone.elc loaded rather than button.elc for
	documentation strings.

	* button.c - All "button" functions visible at elisp level are now
	"zone" functions.
	
	* undo.c - undo information for delete operations will also encode
	a list of affected buttons (with their old positions).

	* insdel.c - if undo-restore-zones non-nil, have undo operations
	encode buffer information.

	* buffer.c - deal with buffer-local undo-restore-zones.

	* buffer.h - new buffer-local var:  undo-restore-zones.

Sat Jan 25 09:20:18 1992  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* xdispepoch.c
	(try_layout_id): don't do excess redraws on inserting/deleting lines
	(layout_text_line): if line is empty and is new, mark it changed.

	* x11term.c
	(dump_window): don't clear end of lines on lines being plotted.
	This could wipe out cursor, and isn't at all necessary.

Wed Jan 22 18:43:00 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* ymakefile - changes to support sharing of lisp directory with
	already-installed emacs 18.57.  Load appropriate files from
	epoch-lisp rather than lisp directory.

Tue Jan 21 19:34:45 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* screen.c
	(x_create_screen): fix for cursor color problem (Core dump on VMS)

Mon Jan 20 13:26:15 1992  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* config.h-dist - configure for sparc by defaut.

	* ymakefile - use system cc by default.

	* indent.c
	(compute_motion): fix for wrapped lines with tabs.

	* xdispepoch.c
	(try_layout_id): hack for wrapped lines and starting hpos - if
	hpos > 0 (for proportional fonts), set it to zero.
	(layout_text_line): now take hpos argument and use appropriately
	for wrapped characters and horizontally scrolled windows.
	(try_layout_id): make sure inserted lines are fully plotted.

Sat Jan 18 09:35:28 1992  Christopher Love  (love at birch.cs.uiuc.edu)

    	* undo.c
	(Fprimitive_undo):  If undoing for buffer that is visible only in
	selected_window, reset update_mode_lines to 0 and set window's
	update_mode_line flag.  This will enable blitting to take place.

	* xdispepoch.c
	(try_layout_id):  cursor horizontal position was off by 1 in
	certain instances.

Thu Jan 16 14:01:34 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* x11fns.c
	(epoch::store-cut-buffer):  Don't clear selection owner.

	* xdispepoch.c
	(redisplay): save exact cursor info in old_cur_{line|char} in case
	single line update fails.

Wed Jan 15 09:24:16 1992  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* xdispepoch.c 
	(try_layout_id): give up if only laying out lines and region
	extends to visible end of window.

	* dispepoch.c
	(update_cursor): if blitting, call Fastmove_cursor() to replot it
	in its new position.

Mon Jan 13 10:38:24 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* screenX.h - remove expose_pending fields.

	* x11term.c
	(internal_socket_read): revert to previous method of handing
	expose events; bounding box produced too much redundant output.
	Now call Cdumprectangle directly rather than building a bounding
	box of all expose events.

	* screen.c
	(make_root_block): remove expose_pending field references

	* xdispepoch.c
	(redisplay): Blank out changed region of line if single-line
	update fails.

Sun Jan 12 10:12:45 1992  Christopher Love  (love at redwood.cs.uiuc.edu)

	* x11term.c
	(internal_socket_read): mark screen_changed on configure notify
	event which is processed.

	* dispepoch.c
	(scroll_screen_lines): Store necessasry info for erasing cursor in
	old_cur_line and old_cur_char variables.
	(update_window): cursor handling for blitted regions no longer a
	special case.

	* indent.c
	(compute_motion): Fudge return value if target is on a line that
	is a continuation; this is vital for insert/delete optimizations.

	* window.c
	(Fdisplay_buffer): rb wasn't getting set correctly.

	* xdispepoch.c
	(layout_text_line): fix for incorrect count of characters on a
	line.
	(try_layout_id): more changes for vertical blitting on
	insertion/deletion.

Sat Jan 11 11:16:45 1992  Christopher Love  (love at aspen.cs.uiuc.edu)

	* window.c - use window_end_ppos appropriately.

	* window.h - new field window_end_ppos - Epoch 4.0's version of
	window_end_vpos; window_end_vpos used as in 18.57.

	* dispepoch.h - new structure for blitting under the
	redisplay_block structure.
	
	* xdispepoch.c
	(try_layout): compute window_end_vpos appropriately (lines), and
	compute window_end_ppos (pixels).
	(redisplay): fix case where end of line \ or $ is lost.

Fri Jan 10 13:47:46 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c
	(redraw_display): Fix for when cursor is in minibuffer.
	(redisplay): First attempt redisplay of selected window by doing
	current line only.  If this fails, try to do only selected window,
	then do all windows.
	(layout_echo_area_contents):
	(redisplay):
	(redisplay_screen): 
	(layout_window): Don't call update_begin, update_end.

	* dispepoch.c
	(update_window): Only call update_begin,update_end, etc. if things
	have changed in window.  Only call update_cursor if in selected
	window for screen.

	* x11term.c
	(XTmove_cursor): Changed special case when moving cursor between
	windows. 
	(CXTupdate_begin):
	(CXTupdate_end): New conditions for calling CursorToggle().

Thu Jan  9 10:28:13 1992  Christopher Love  (love at birch.cs.uiuc.edu)

	* indent.c - fixed 'register' references.

	* sysdep.c - removed references to old variables
	(read_input_waiting): fix for Interactive Unix 2.2 w/start_polling()

	* screen.c - signed/unsigned changes, removed unused variables

Tue Dec 17 13:26:39 1991  Christopher Love  (love at aspen.cs.uiuc.edu)

	* screen.c - update epoch::version.

	* xdispepoch.c - use old NEXT_CHAR macro.

Sat Dec  7 20:31:43 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* xdispepoch.c - try_layout() - fix for cursor wierdness.

Thu Dec  5 11:54:38 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* x11term.c - fix for expose problems.

	* casefiddle.c, cmds.c, editfns.c, fileio.c, insdel.c, undo.c -
	use DEFINE_CHANGE_FUNCTIONS rather than HAVE_LEIF.

	* config.h/config.h-dist - change HAVE_LEIF to
	DEFINE_CHANGE_FUNCTIONS. 

	* x11term.c - CXTupdate_end() - shouldn't update cursor on
	non-current screens.

Wed Dec  4 18:44:25 1991  Christopher Love  (love at redwood.cs.uiuc.edu)

	* indent.c - don't use register in a couple of places in
	Ftext_width(). 

	* x11term.c - don't include sink11.h or sink11mask.h; obsolete.
	(Remove them from distribution).

	* xdispepoch.c, x11term.c - restructured cursor handling somewhat;
	flicker still exists and is a race between focus event code and
	regular redisplay process.

Tue Dec  3 13:48:22 1991  Christopher Love  (love at redwood.cs.uiuc.edu)

	* x11term.c, screen.c, screenX.h - try to "compact" expose events
	and build a bounding box composed of all of them to use for expose
	event handling; should be faster for screens obscured by lots of
	other windows.

	* xdispepoch.c - layout_text_line - reset line's horizontal origin
	everytime through, in case window's left edge moved.

Tue Nov 26 10:44:31 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* xdispepoch.c - layout_text_line - if line's ascent/descent has
	changed, be sure to replot *all* of it.

	* dispepoch.c - use line->tabs field to blow off short-cut
	character insertion.

	* xdispepoch.c - set line->tabs flag appropriately.

	* dispepoch.h - new field in line_header struct - 'tabs', set if
	line contains tabs.c

	* term.c, x11term.c, dispepoch.h, sysdep.c, screen.c - remove
	references to code in cm.c

	* term.c - removed dead code, retain functions calling hooks as
	interface to redisplay code.

	* ymakefile - cm.[ch] removed.

Mon Nov 25 15:29:14 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* keyboard.c, sysdep.c, eval.c, x11term.c, window.c - use NIL
	rather than NULL to run on Intel 486.   

	* window.c - replace_buffer_in_window() - reset window's
	start_button pointer.

Wed Nov 20 11:47:50 1991  Christopher Love  (love at aspen.cs.uiuc.edu)

	* insdel.c - call raw_read_only_region() from
	prepare_to_modify_buffer(), and use starting button from
	selected_window in adjust_buttons() and adjust_buttons2().

	* button.c - new fcns:  raw_read_only_region and
	raw_buttons_in_region for use internally (they will accept
	starting points in a button list based on selected_window).

	* mouse.c - vertical bounds check in coords-to-point.

	* button.h - new flag - transient.  If t, blow off this button
	when considering undo operations which restore buttons.

	* button.c - added code for buttons-in-region, button-transient-p,
	and set-button-transient.

	* lisp.h, commands.h - Macros using NULL should use NIL instead.
	This fixes additional problems when building w/ R5.

Mon Nov 18 15:17:35 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* button.c - ShipOutTextBlock - underlining was extending 1 too
	many pixels to right

	* x11term.c - CursorToggle - better detect case where ws->cur_char
	= 0, and don't blow core.

Sun Nov 17 15:13:55 1991  Christopher Love  (love at redwood.cs.uiuc.edu)

	* keyboard.c, malloc.c, process.c, sysdep.c - added patches for
	DGUX from David Brennan.

Sat Nov 16 10:21:31 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* dispepoch.c - changes for inserting text in front of tabs.  If
	  char at point is a tab, fail.

Fri Nov 15 18:30:29 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* xdispepoch.c - only compute cursor motion for selected window.
	  redisplay_window() - new 2nd arg - just_this_one, = 1 for
	  selected window, 0 when called on secondary screens.
	  redisplay() - deal with buffer_shared value differently; deal
	  with preemption of display of secondary screens.
	  NOTE:  Behavior is consistent with documentation when
	  epoch::global-update = nil; different from behavior with past
	  versions.

Tue Nov 12 11:06:47 1991  Christopher Love  (love at redwood.cs.uiuc.edu)

	* x11term.c - dump_window - don't replot a line if line's ypos is
	zero. 

	* x11term.c - XTmove_cursor - move the hack for switching cursor
	between windows.  Fcn now called with InUpdate = 0; code wasn't
	being reached.

Mon Nov 11 19:57:49 1991  Christopher Love  (love at redwood.cs.uiuc.edu)

	* screen.c - new function - find_buffer_start_button_in_window() -
	for all windows displaying buffer, reset start_button value to nil.

	* button.c - when clearing buttons, or deleting a button from
	buffer, reset start_button of all windows displaying that buffer.

Sun Nov 10 14:12:44 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c - layout_text_line() - if propogation = 1, make
	sure entire line is replotted.

	* x11term.c - dead code removal.

	* x11term.c - don't call XClearArea for cursor with 0 height.
	Fudge the height from font info when this happens.

Fri Nov  8 17:19:08 1991  Christopher Love  (love at redwood.cs.uiuc.edu)

	* xdispepoch.c, dispepoch.c - use window's start_button when
	searching button list.

	* window.c - deal with new field, including when window scrolls
	and window's buffer changes.

	* button.c - new fcn - get_start_button() - set window's
	start_button field correctly.

	* window.h - new field - start_button, will contain pointer into
	window's buffer's button list, starting at the first relevent
	button for text visible in window.

	* x11term.c - XTmove_cursor() - remove fprintf; this leg of code
	is now used.

	* xdispepoch.c - redisplay_screen() - let update_end()'s hook call
	update_cursor. 

	* x11term.c - XTupdate_end() - call update_cursor(); this is
	closer to being right.

	* process.c - wait_reading_process_input() - don't call
	fix_screen_hook within body of while() loop; this is more
	consistent with Epoch 3.2.

Thu Nov  7 14:12:24 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* mouse.c - Fepoch_coords_to_point - fixed case with local
	minibuffers where click sends Epoch into space.

Wed Nov  6 11:30:08 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* window.h - new field - start_button - points to a position in
	window's buffer's button list which precedes window's starting
	point. 

Tue Nov  5 16:36:10 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* button.c - get_button - try to reduce need to call
	marker_position(); only get button ending pos if absolutely
	needed. 

	* x11term.c - dump_window - fixes for exposes in modelines only.

Epoch 4.0a2 released - 11-5-91.

Mon Nov  4 11:26:15 1991  Christopher Love  (love at aspen.cs.uiuc.edu)

	* cmds.c - call line-fill-hook rather than auto-fill-hook when
	appropriate.

	* buffer.c - deal with new buffer-local var - line-fill-hook.

	* buffer.h - added line-fill-hook -> called when inserting char
	pushes line end past fill-pixel.

Sun Nov  3 22:06:15 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* x11term.c, process.c - uniform externs for selection_available.
	Only retrieve property first time, etc.  

Sat Nov  2 20:56:10 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* screen.c - epoch::version evaluates to "Epoch 4.0 Alpha
	Patchlevel 2".

Fri Nov  1 10:07:26 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* indent.c - current_pixel() - fixed bug handling tabs.

	* cmds.c - call auto-fill-hook if pixel_insert_ok returns 0.

	* dispepoch.c - new fcn pixel_insert_ok() - return 0 when inserted
	character will push line's end pos past the fill pixel value.

	* x11term.c - when erasing cursor in previous window, find the
	appropriate style.

	* button.c - find_style checks whether buffer's style field is in
	fact a style.

	* dispepoch.h - STYLE_FIELD macro checks if buffer's style field
	is in fact a style before referencing it.

	* button.c - added stylep primitive.

Thu Oct 31 13:23:04 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* window.c - Fset_window_configuration - if running with local
	minibuffers & selected window would be the minibuffer window, and
	screen has changed, select the screen's previously selected window.

	* screen.c - Fselect_screen - if running local minibuffers and
	value not previously set, save new screen's selected window in
	prev_select.  

	* screen.h - added new field - prev_select; used when selecting
	new screen with local minibuffers and the selected window being
	the minibuffer window.

	* indent.c - text-width - expand tabs and control characters in
	string according to tab_width and ctl_arrow of selected_window.

	* screen.c - on switching screens with local minibuffers, make
	sure minibuffer gets completely redrawn in its new home.

Wed Oct 30 13:38:15 1991  Christopher Love  (love at aspen.cs.uiuc.edu)

	* screenW.h - new flag replot_lines; this replaces a global flag.

	* xdispepoch.c - use screen's replot_lines flag for
	redraw-display. 

Tue Oct 29 14:55:58 1991  Christopher Love  (love at dogwood.cs.uiuc.edu)

	* x11term.c - XTmove_cursor - if cursor has switched between
	windows, check if old window is still in the window hierarchy
	before erasing cursor in it.

	* window.c - new function find_window; returns 1 if it finds a
	window in a given window hierarchy.

	* x11term.c - fixed expose event handling on modelines being
	partially exposed.

	* indent.c - compute_motion - deal with motion in minibuffer with
	prompt being displayed; this fixes horizontal scrolling in the
	minibuffer window.

Mon Oct 28 16:01:30 1991  Christopher Love  (love at aspen.cs.uiuc.edu)

	* xdispepoch.c - backed out previous changes for clearing window
	and line ends.  This needs to be reconsidered.

	* screen.c - don't set window group hints if running w/local
	minibuffers. 

	* dispepoch.c - fix calls to wait_reading_process_input

Fri Oct 25 10:02:08 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* indent.c - rewrote move_to_pixel to look at buffer contents
	rather than display structs.  Currently ignores the presence of
	butons (and different fonts) in the line; this will change in the
	future. 

	* indent.c - rewrote current_pixel to look at buffer contents
	rather than display structs.  Currently ignores the presence of
	buttons (and different fonts) in the line; this will change in the
	future.

	* x11term.c insert_chars_hook points to InsertChars.
	* button.c - InsertChars - new fcn for fast inserting of chars in
	middle of line.  Do blt'ing for remaining text on line.
	* term.c insert_chars - new interface.
	* dispepoch.c - output_for_insert - faster loop to update
	attributes of remaining chars on line.

	* button.c - fixed GCofStyle to deal with change of font when
	HAVE_GRAPHIC_BUTTON enabled.

Thu Oct 24 12:26:20 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* Try to minimize calls to XClearArea for line ends and window
	ends: 
	* xdispepoch.c - only clear window end if size has changed, etc.,
	or distance to end of window has decreased since last update.
	* xdispepoch.c, dispepoch.c - set BLOCK_LINE_CLEAR field
	appropriately. 
	* button.c - PlotTextLine() - take clear argument and deal with it
	appropriately.
	* term.c - update_line() takes new argument - "clear".  If set, then
	clear end of line; otherwise don't.
	* dispepoch.h - new field BLOCK_LINE_CLEAR.

	* xdispepoch.c - fixed partial lines being layed out first time in
	windows. 

	* Horizontal scrolling of windows:
	* window.c - re-enable horizontal scrolling.
	* xdispepoch.c - layout_text_line() - gobs of changes for
	horizontal scrolling.
	* x11term.c - CursorToggle, ClearCursor - don't fail when cursor
	x position is negative; this is uncool.

Wed Oct 23 09:41:45 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* indent.c - adjust_buttons(), adjust_buttons2() - don't look thru
	remaining button list if all buttons start after old starting
	position. 

	* button.c - read_only_region_p() - don't look thru remaining
	button list if all buttons start after the end of region.

Tue Oct 22 11:28:23 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* buffer.c, button.c, insdel.c - set/use appropriately; only check
	for inserting on RO buttons and adjusting RO buttons if they
	exist. 

	* buffer.h - added int read_only_buttons; a counter for the number
	of read-only buttons in the buffer.

	* ymakefile - link with variable LIBXPM (for HAVE_GRAPHIC_BUTTONS)

	* button.c - added epoch::query-pixmap function for
	HAVE_GRAPHIC_BUTTON feature.

Sun Oct 20 14:38:16 1991  Christopher Love  (love at evergreen.cs.uiuc.edu)

	* button.c, term.c - fixes and more code for HAVE_GRAPHIC_BUTTON
	feature.  New primitives are:
		  epoch::define-opaque-font
		  epoch::load-pixmap-file
		  epoch::set-style-pixmap
		  epoch::style-pixmap

	* mouse.c - fixes for recognizing minibuffer presses with local
	minibuffers.

	* cmds.c - call current_column or current_pixel as appropriate.

	* indent.c - moved current_pixel code out of current_column code
	and move-to-pixel code out of move-to-column code.  Pixel fcns
	will now work w/local minibuffers.

	* xdispepoch.c - fixed local-minibuffer behavior to clear text in
	"fake" minibuffer windows when appropriate.

Sat Oct 19 11:46:22 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* screen.c - correctly set epoch::nonlocal-minibuffers.

	* xdispepoch.c - fixed redisplay to correctly handle cases where
	cur_root == mini_root and epoch::global-update == Qnil.

	* window.c - fixed window_char_height to return reasonable values
	in certain situations.

	* selection.c, x11term.c - keep track of selection, not
	selection's target property for loop.  

Fri Oct 18 12:25:42 1991  Christopher Love  (love at redwood.cs.uiuc.edu)

	* xutil.c, xdefault.c - fixes for cmd line args and X11R5.

	* fns.c - fixed append.

Thu Oct 17 13:20:36 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* keyboard.c, dispepoch.c, process.c - call
	wait_reading_process_input with 0 for 4th arg.

	* selection.c - call wait_reading_process_input rather than
	spinning.  Added new variable epoch::selection-timeout; selection
	conversion will wait this many seconds before returning nil.
	Also, find owner of selection first; if none, return nil; if
	Epoch, shortcut the entire process.

	* process.c - wait_process_reading_process_input - new 4th arg -
	selection.  If 1, return when flag selection_available == 1.

Wed Oct 16 15:54:01 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* xdispepoch.c - fix determination of whether buffer is shared
	between window; this is key when buffer must be updated in
	multiple windows.

	* button.c, minibuf.c, mouse.c, print.c, process.c, property.c,
	screen.c, selection.c, sysdep.c, x11fns.c, x11term.c, xevent.c,
	xresource.c, xutil.c, screen.h -> replace references of NULL with
	NIL from lisp.h.  This removes clashes between Epoch code and R5
	(which redefines NULL)

	* lisp.h - #define NIL with same definition as NULL.

--> Epoch 4.0a1 released 10-16-91.

Tue Oct 15 17:28:28 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* x11fns.c - add x-set-baud

Mon Oct 14 10:53:00 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdispepoch.c layout_text_line() -> reset font correctly on
	changing of styles.

	* indent.c, xdispepoch.c -> deal with new interface to get_button.

	* button.c -> fixed "next_button" value returned by get_button.
	This will be distinct from the "button_return" value; hence
	another parameter.

Sun Oct 13 14:09:37 1991  Christopher Love  (love at aspen.cs.uiuc.edu)

	* xdispepoch.c, indent.c -> maintain a "next_button" which is
	valid for the time that motion/layout is being computed for a
	given window & buffer.

	* button.c - get_button() -> b_return parm can also specify a
	button in the buffer's button list as a start for the search.

	* dispepoch.c - output_for_insert() -> don't call get_button; this
	results in gobs of speed improvements when running with lots of
	buttons. 

	* indent.c - added move-to-pixel; it and move-to-column both call
	move_to_pos(), a new function which does both.

	* screen.c - epoch::version now evaluates to "Epoch 4.0 Alpha
	Patchlevel 1"

	* cmds.c - self_insert_internal -> Do character comparison of
	current_column with fill_column unless fill_column set to nil;
	then do pixel comparison of current_pixel with fill_pixel.  Either
	way, call fill-mode-hook if non-nil.  Need a separate kern-mode
	which handles this appropriately.

	* indent.c - current-column not overloaded.  Added current-pixel
	primitive. 

	* buffer.c - added buffer-local var fill-pixel.

Sat Oct 12 22:18:53 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* xdispepoch.c - fix for cursors going off windows w/partial
	height lines.

Fri Oct 11 11:57:34 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* window.c - change_window_height, enlarge-window, shrink-window -
	pass parms as character dimensions, deal with pixels in
	change_window_height. 

	* window.c - window_char_height - if window_end_ values are bogus,
	just take total height / font height.

	* window.c - split-window -> when splitting window in half, split
	according to character dimensions, then calculate corresponding
	pixel values.  Also, make window_end_ values invalid for immediate
	calls to window_char_height.

	* selection.c - for convert-selection requests of non-string type,
	call convert-selection-hook with the target type.

	* button.c, screen.c, xutil.c, x11term.c = set "variable" field,
	and use it when setting hints, etc.

	* dispepoch.h - added "variable" field to X_font struct.  

	* xdispepoch.c - correctly deal with buffer->force_redisplay == Qt

	* buffer.c - set-buffer-modified-p fixed.

Thu Oct 10 16:38:08 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* xresource.c - bugfix from jrussell@watson.ibm.com.

	* button.c, x11fns.c - fixes for Iris.

	* ymakefile - restore the #undef of X11.

Wed Oct  9 19:27:42 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* button.c - plot_text_line adjust text regions being plotted to
	include any leading spaces.

	* window.c - set-window-configuration -> mark window's size as
	having changed if any dimension or position is different.

	* keyboard.c - don't be as conservative on calling
	output_for_insert. 

	* dispepoch.c - refinements in output_for_insert and
	output_forward_char.

	* x11term.c - Fastmove_cursor - new fcn called from
	output_for_insert -> eliminates unneeded replots of cursor.

Tue Oct  8 14:20:47 1991  Christopher Love  (love at fir)

	* indent.c, cmds.c, bytecode.c - provide overload of
	current-column to give pixel info.  current-column with non-nil
	arg will return pixel info, which will be valid except for
	wrapped-line w/part off top of line.  (Value returned in that
	instance will be as if it was a single line).

	* screen.c - fixed bug in delete-screen.  Caused coredump.

	* window.c - fixed pos-visible-in-window-p.

Mon Oct  7 17:02:30 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* indent.c, xdispepoch.c - don't set size_change = Qt on vertical
	motion; this reduces unneeded redisplay.

	* window.c - enlarge-window, shrink-window -> only proceed if
	there is a net size change; this reduces unneeded redisplay.

	* xdispepoch.c, button.c - when button moves from buffer to
	buffer, mark both buffers as needing thorough redisplay; make sure
	this doesn't get prempted.

	* indent.c, xdispepoch.c, buffer.c - incorporated 8-bit patches
	from Emacs 18.57.

Sun Oct  6 10:06:48 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* xutil.c - query-cursor-pixels returns pixel values relative to
	0,0 origin in upper left corner of pixels.

	* xd.h - VOID should use definition from config.h

	* selection.c, x11term.c, xevent.c  - convert-selection will now
	block til value is available or spinning is detected.
	SelectionNotify event no longer propogated to Elisp.

	* ymakefile - list if elisp files should include motion.elc.

	* xevent.c - when X timestamp returned, return as x mod 2^23 - 1.
	This makes multi-click detection easier.

	* xdispepoch.c, dispepoch.c - fix for wrapped line at bottom of
	window and cursor off screen.

	* window.c - fixed previous-window so it won't coredump.

Thu Oct  3 10:50:00 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* xdefault.c, screen.c, emacs.c xd.h - deal with "false" and "true"
	from Xdefaults, correctly deal with minibuffer mode from
	Xdefaults, possibly overridden by command line.

	* xutil.c - added epoch::query-cursor-pixels primitive; this
	provides the cursor coordinates in pixels.

	* dispepoch.c - fix adjustments to minibuffer window on change of
	screen size or font.

	* xdefault.c - VOID should use definition from config.h

Wed Oct  2 10:53:59 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* x11term.c, property.c - fixes to types and unused variables.
	Fixes problems running on Sequent and RT's.

	* ymakefile - remove all references to dispextern.h from rules. 

	* dispepoch.h, xdispepoch.c, x11term.c -> no longer use -2 as
	character value of "sentinel" char_blocks at end of line.  This
	should enable use of 8-bit characters sets (IBM).

	* term.c, x11term.c, dispepoch.c, xdispepoch.c, indent.c -
	text_width function will take an X_font structure as a parameter;
	this is to ultimately deal with virtual/opaque fonts.

--> Alpha Release 10-1-91
Thu Sep  5 12:09:23 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* fns.c - fixed equal to deal with Xresources.  This lets client
	messages work.

	* button.c - get_button -> b_start will now return start of next
	button (or ZV) if no button contains loc.  Should reduce times
	that get_button is called.  Behaved reasonably fast with 2000+
	buttons editing  xdispepoch.c

	* x11term.c - fixed dump_window() so that whole window isn't
	redrawn unnecessarily.

Wed Sep  4 14:57:15 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* xdispepoch.c - fixed layout_text_line()'s handling of insertion
	at right edge of window, and setting of Changed for text deletion
	from end of line (clipping lines).

	* dispepoch.c - fixed output_for_insert()'s handling of insertion
	on right edge of window.

	* indent.c - fixed compute_motion() for dealing with wrapped lines.

Tue Sep  3 16:52:01 1991  Christopher Love  (love at birch.cs.uiuc.edu)

	* button.c - fixed clipping rectangle for minibuffer.

	* screen.c,screenX.h - eliminated cursor_color field -> is now in
	style structs.

	* xdispepoch.c - fixed display for multiple screens to behave as
	manual specifies.

	* window.c - fixed window-edges, added window-pixedges.

	* xutil.c - fixed foreground, background, cursor-color primitives.

	* x11fns.c - fixed flash-screen primitive.

Mon Sep  2 10:47:38 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* xdispepoch.c - fixed layout_mode_element to work with embedded
	styles. 

	* button.c - GC's now configured to clip against Emacs window
	pixel dimensions.  ShipOutTextBlock does same.

Fri Aug 30 15:55:05 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* screen.c, xutil.c, xdispepoch.c - fixed bugs in adjusting window
	heights for multiple-minibuffer mode.

Tue Aug 27 13:28:06 1991  Christopher Love  (love at fir)

	* xdispepoch.c -> added flag "replot_attributes" which is set in
	instances where display attributes for a screen are clearly hosted
	(i.e. changing screen's base font).  Need a better way to do this.
	For example, an update_attribute function which scans display
	structs and updates attributes w/o doing any display operations.

	* xutil.c -> changing screen's font with epoch::font primitive
	must also adjust window sizes for screen's window hierarchy.

Mon Aug 26 15:44:06 1991  Christopher Love  (love at fir)

	* Cleaned up interface between functions calling text_width() ->
	value returned internally to Epoch should be a short rather than
	an int; this can cause portability problems.

	* Fixed bug where cursor appears one char to right in certain
	instances; this was due to a boundary condition in
	layout_text_line().

	==> Start of Fall '91 semester; preparation for Alpha/beta test in
	late September/early October. <==

Sat Jul  6 11:23:16 1991  Christopher Love  (love at ash.cs.uiuc.edu)

	* Applied patches to Emacs 18.57 from Dave Brennan
	(brennan@dg-rtp.dg.com.) for DGUX/POSIX.

Tue May  7 22:55:17 1991  Christopher Love  (love at fir)

	* { Much has changed. }

Sat Apr  6 16:07:56 1991  Christopher Love  (love at fir)

	* xdispepoch.c : (redisplay_screen) - call update_cursor to clean
	up things after redisplay for a window.

	* dispepoch.c : (update_begin,update_end) - don't move cursor as
	done previously.
	(update_cursor) - new function to place cursor after updating all
	windows on a screen.  Called with a root block.

Tue Mar 12 17:06:13 1991  Christopher Love  (love at fir)

	* xdisp.c dispnew.c scroll.c dispextern.h : these files are
	obsolete under Epoch 4.0.  They are replaced roughly by
	xdispepoch.c, dispepoch.c, dispepoch.h

Tue Feb 26 10:48:29 1991  Christopher Love  (love at fir)

	* xutil.c : changed references to xs->font to look at style for
	screen.
	(raw_warp_pointer,raw_set_pointer) : now take root_block parameter
	to get styles.

	* xevent.c : change references to xs->font to look at style for
	that screen.
	(ReadButtonEvent,ReadMotionEvent) : now take a root_block
	parameter to get styles.

	* mouse.c : changed references to xs->font to look at styles for
	that screen.

Mon Feb 25 13:20:03 1991  Christopher Love  (love at fir)

	* button.c (GCofStyle) : New functionality:  If 'style' arg is
	nil, then find and return appropriate screen or buffer-local
	style.  Regardless, set up GC(s) correctly based on styles.

	* window.c, xdisp.c, xdispepoch.c changed references of
	xs->pixwidth to xs->pixw.

	* screenX.h : added field pixw,pixh - actual pixel dimensions of
	text area.

Fri Feb 22 15:10:50 1991  Christopher Love  (love at fir)

	* screen.h : removed styles field.  Added stylenorm, stylerev,
	stylecursor.

	* screenX.h : removed font, background,foreground,etc. - these are
	now encapsulated in styles.  

Sun Feb 17 19:15:53 1991  Christopher Love  (love at pine)

	* Changed window references to use pixel values for top, left,
	width, height of windows.  

Sat Feb 16 13:29:22 1991  Christopher Love  (love at fir)

	* window.c (save_window_save,Fset_window_configuration) : for
	saving/restoring window configurations, save pixel
	left,top,width,height values. 

	* termhooks.h:  added hook:  text_width_hook.  This will call
	XTextWidth() if running under X, or text_width() if running ASCII.

	* xdispepoch.c (text_width) :new function.  Return length of
	string as size of text string in a 1x1 font.

	* dispnew.c (init_display) : set hook for text_width
	* x11term.c ( ) : set hook for text_width

Thu Feb 14 15:13:40 1991  Christopher Love  (love at fir)

	* window.h : added pixel left,top,width,height fields.  Added
	lines field which points to "display structure" for this window.

Sun Feb 13 12:55:38 2011  Christopher Love  (love at pine)

	* button.h, button.c : removed references to attributes.  Buttons
	will now point to styles directly.
	(epoch::set-button-style), (epoch::button-style) : replace
	analogous attribute fcns.
	(get_button) : return a style pointer, or Qnil.

Tue Feb 12 15:55:10 1991  Christopher Love  (love at fir)

	* xdispepoch.c
	(redisplay) : main entry point to display code
	(layout_screen) : do layout for a given screen.  This will occur
	when screen is garbaged and built from scratch.
	(layout_all_windows) : layout all windows of screen's window
	hierarchy
	(layout_windows)
	(layout_window) : Do layout for specific window.
	(try_layout) :

Mon Feb 11 16:01:50 1991  Christopher Love  (love at aspen)

	* dispepoch.h: New file.  Define data structures to be used by new
	display code in version 4.0

	* xdispepoch.c : New file.  (load_font) : new function; returns
	pointer to font info struct for desired font, adds it to list.

Thu Feb  7 11:16:31 1991  Christopher Love  (love at aspen)

	* mouse.c : New file (from 3.2 release).

	* xevent.c : New file (from 3.2 release).

	* dispnew.c: 
	(Cscrolling) : use same routines for scrolling for both X and
	ASCII.  Ultimately change this.  Call scrolling_1 with root block
	pointer. 

	* scroll.c:  Generalized scrolling stuff to work for Epoch under
	X.  *** Need to add method to short-circuit cost calculations when
	under X ***
	(scrolling_1) : now take root block pointer.
	(calculate_scrolling) : same.
	(do_scrolling) : same.

	* x11term.c
	(More similar changes to functions for display and handling of
	expose events.)
	(Cdumpchars,dumpchars)
	(Cupdateline,updateline)
	(Cwritechars,writechars)
	(CXToutput_chars,XToutput_chars)
	(CXTflash,XTflash)
	(CXTfeep,XTfeep)
	(CCursorToggle,CursorToggle)
	(CClearCursor,ClearCursor)
	(CXTupdate_begin,XTupdate_begin)
	(CXTupdate_end,XTupdate_end)
	(CXTset_terminal_window,XTset_terminal_window)
	(CXTins_del_lines,XTins_del_lines)
	(CXTinsert_chars,XTinsert_chars)
	(CXTdelete_chars,XTdelete_chars)
	(Cstufflines,stufflines)
	(Cscraplines,scraplines)
	(ShiftScreenLines) : New function
	Ripped out most X code from 18.57 release.  Replaced with code
	from 3.2 release (slightly modified)
	(x_term_init) : removed code for reading xdefaults and command
	line.
	(internal_read_socket) : duplicated code from 3.2 release.

Tue Feb  5 11:05:48 1991  Christopher Love  (love at spruce.cs.uiuc.edu)

	* x11term.c 
	(XT functions) : added CXT functions which operate on a specified
	root block structure.  XT functions operate on cur_root.

	* dispnew.c (Cscrolling) : separate code will be executed when
	running under X.  This shouldn't break under ASCII.
	(Cupdate_line) : similar changes.
	(update_a_screen) : to here today.

Mon Feb  4 15:55:07 1991  Christopher Love  (love at aspen)

	* dispnew.c (make_screen_structure) : allocate space for attribute
	data if running under X.
	(free_screen_structure) : free attribute data if it was allocated.
	(Cget_display_line) : also prepare attribute info for line.
	(Cscroll_screen_lines) : scroll attribute info with other screen
	information. 
	(preserve_other_columns) : preserve attribute information as well.
	This includes maxheight in pixels for that line.
	(direct_output_for_insert) : set attribute data for inserted
	character. 

	* dispextern.h (cursor_hpos,cursor_vpos) : removed.
	(matrix) : added vectors for character attributes.

Sat Feb  2 11:06:59 1991  Christopher Love  (love at spruce.cs.uiuc.edu)

	* keyboard.c (command_loop_1) : Added code from Epoch 3.2 to be
	used when running under X.
	(read_command_char) : added similar code from Epoch 3.2.  This is
	rude, crude, and socially improper.
	(kbd_buffer_read_command_char) : same.
	(epoch::dispatch-events) : Added function.

	* x11fns.c : Replaced with code from Epoch 3.2.  Removed emacs X
	functions. 

	* ymakefile : added make info for new files.

	* xutil.c : New file (from 3.2).  No changes.

	* selection.c : New file (from 3.2).  No changes.

	* property.c : New file (from 3.2).  No changes.

	* alloc.c : added code for allocaction and garbage collection of X
	resources.  (Only executed if running under X).

	* xresource.c : New file (from 3.2).  No changes.

	* xdefault.c : New file (from 3.2).  No changes.

	* dispnew.c (change_screen_size_1) : modify to work for both modes
	of minibuffer operation.

	* window.c (set-window-configuration) : call change_screen_size
	correctly.
	* keyboard.c (suspend-emacs) : call change_screen_size correctly.
	* dispnew.c (change_screen_size) : 4th parameter is a rootblock
	structure. 
	(change_screen_size_1) : same.

	* screen.c (syms_of_screen) : only intern screen functions and
	other X-specific stuff if running in X mode.
	(epoch::create-screen) : create screen's minibuffer window if
	appropriate. 
	(delete_screen) : check if anchor to display structures is being
	deleted. 
	(x_init_roots) : create screen's minibuffer window if appropriate.
	(x_init_display) : raise sole edit screen if now distinct
	minibuffer screen exists.  (Deal with ICCCM stuff later)
	(epoch_buffer_in_window) : do comparison against screen's
	minibuffer window.
	(epoch::distinct-minibufferp) : added variable when running under X.

	* Makefile : added SHELL=/bin/sh for HPUX.  Bugfix from
	jimf@saber.com posted to gnu.emacs.bug.

	* x11term.c (time.h) : changed condition for including time.h.
	This is a bugfix from jtc@wimsey.bc.ca posted to gnu.emacs.bug.

	* xdisp.c (display_text_line) : added bugfix from lnz@LUCID.COM
	posted to gnu.emacs.bug.
	(display_string) : same.
	dispnew.c (update_line) : same.

Fri Feb  1 17:04:14 1991  Christopher Love  (love at spruce.cs.uiuc.edu)

	* emacs.c (main) : call syms_of_screen.  This will happen
	regardless of mode of operation (X or ASCII)

Tue Feb  1 11:57:42 2011  Christopher Love  (love at pine)

	* window.c : fixed set-window-configuration to avoid loops in
	window structure for a screen.

Thu Jan 31 11:38:56 1991  Christopher Love  (love at spruce.cs.uiuc.edu)

	* process.c : zero top bits on return from wait() call.  This is a
	potential problem otherwise for sysV.

	* eval.c, regex.c, x11term.c : applied patches from 18.57 release.

Wed Jan 30 11:37:04 1991  Christopher Love  (love at spruce.cs.uiuc.edu)

	* dispextern.h (message_buf) : removed allusion.

	* xdisp.c (set-screen-modified) : added function (from 3.2).

	* indent.c (compute_motion) : Get screen_width from rootblock
	structure. 

	* print.c (print) : added print code for Lisp_Root_Block and
	Lisp_Raw_Data types.  Removed references to screen_width and
	screen_height. 

	* sysdep.c (reset_sys_modes) : get screen width and height from
	root block structure.

Tue Jan 29 16:21:35 1991  Christopher Love  (love at spruce.cs.uiuc.edu)

	* x11fns.c : removed most GNU emacs fcns.  These will be replaced
	with epoch primitives ultimately, and are in the way.

	* termchar.h : redefined macro DCICcost.

	* scroll.c : replaced references to screen_width, screen_height,
	current_screen,new_screen,temp, etc with root block fields as
	appropriate. 
	(do_scrolling) : update screen information in appropriate root block.

	* dispnew.c (get_display_line,Cget_display_line) :
	get_display_line calls Cget_display_line with cur_root.
	(scroll_screen_lines,Cscroll_screen_lines) : scroll_screen_lines
	calls Cscroll_screen_lines with cur_root.
	(cancel_line,Ccancel_line) : cancel_line calls Ccancel_line with
	cur_root.
	(clear_screen_records,Cclear_screen_records) :
	clear_screen_records calls Cclear... with cur_root.
	(preserve_other_columns) : alter screen data for appropriate
	screen.
	(cancel_my_columns) : alter screen data for appropriate screen.
	(scrolling,Cscrolling) : scrolling calls Cscrolling with cur_root.
	(update_line,Cupdate_line) : update_line calls Cupdate_line with
	cur_root.


	* xdefault.h, xd.h : new files (from 3.2)

Mon Jan 28 11:30:40 1991  Christopher Love  (love at fir)

	* xdisp.c : changed references to cursor_hpos, ypos to cursor_x,
	cursor_y.  Similarly for screen_width and screen_height.

	* minibuf.c (read_minibuffer) : set cursor_x and cursor_y in
	current W_screen.  (This may not be right in the long run).

	* window.c (make_window) : no longer static.
	(window-width) : check screen width appropriately.
	(delete-window) : update root block window pointer.
	(destroy_window_tree) : added function.
	(replace_window) : adjust root block window pointer.
	(next-window) : use appropriate window hierarchy
	(replace_buffer_in_window) : new function.
	(replace-buffer-in-windows) : call it.
	(set-window-buffer) : Call set-window-buffer-hook, and do checks
	for the allowed screens of a buffer.
	(select-window) : Call x_select_screen() when appropriate.  Update
	current window pointer in root block.
	(display-window) : get screen width from root block structure.
	(split-window) : set window's root pointer.
	(save-window-configuration) : applied similar changes from Epoch
	3.2.  This needs some work.
	(current-window-configuration) : applied similar changes from
	Epoch 3.2.  This needs some work.

	* term.c (term_init) : update screen width and height fields here
	- they aren't globals.  Replace references to screen_width and
	screen_height with references to cur_Wscreen->width, height.  This
	will always be valid under ASCII mode.

	* dispnew.c (syms_of_display) : only intern screen_height and
	screen_width functions if running ASCII.
	(init_display) : if running ASCII, call x_init_roots() to
	initialize root block structure appropriately.  Call
	remake_screen_structures() with cur_root.
	(remake_screen_structures) : now take parameter of desired root
	block structure.
	(change_screen_size_1) : call remake_screen_structures() with
	cur_root. 
	(update_screen) : renamed to update_a_screen.  Called from a new
	update_screen function which passes a root block structure.
	(update_line) : now is passed a root block structure.
	(direct_output_forward_char) : same.
	(direct_output_for_insert) : change references to cursor position.

	* font.h : new file (from 3.2).

	* ymakefile : added build data for screen.c.

Sun Jan 27 17:44:43 1991  Christopher Love  (love at spruce.cs.uiuc.edu)

	* dispnew.c (init_display) : set distinct_minibuffer flag
	appropriately for ASCII.
	(current_screen,new_screen,cursor_hpos,cursor_vpos) : these
	variables are no longer globals.  Ultimately delete.

	* buffer.c  (reset_buffer) : reset buffer's button list, etc.
	(reset_buffer_local_variables) : reset buffer's allowed screen
	list.
	(epoch::set-buffer-redisplay) : new function
	(get-buffer-create) : set redisplay field for buffer.
	(other-buffer)	: check allowed_screens field for buffer.
	(pop-to-buffer) : set allowed_screens field for buffer.
	Declare allowed_screens field to be buffer-local.

	* button.h : added field for button list, forced_redisplay, and
	allowed_screens. 

	* alloc.c : added allocation/garbage collection code for Epoch
	Elisp types.

Sat Jan 26 10:04:17 1991  Christopher Love  (love at fir)

	* window.h : added root pointer which points to root block
	containing window.

	* screen.c : new file (from 3.2).  Reorganized declarations.
	Added pointer 'root' which anchors display structures.
	(x_init_defaults) : will need to handle default for displaying
	minibuffer. 
	(x_init_roots) : create root block structure for minibuffer only
	when appropriate.  This function (or similar) should be called
	when running ASCII.
	(x_init_display) : create minibuffer screen only when necessary.
	(x_find_screen) : use root rather than mini_root
	(x_find_screen_seq) : same
	(update_screen) : remove function.
	(change_screen_size) : call redisplay_preserve_echo_area().
	(unhold_window_change) : use root.
	(epoch::screens_of_buffer) : same.
	{ other fcns need to be revised }

	* screenW.h : new file (from 3.2).  Use matrix structures for
	current and desired screen.  Deleted two obsolete macros.

	* screenX.h : new file (from 3.2).  Use font_index as index into
	table for current font information.

	* screen.h : new file (from 3.2).  Redefined macro EDIT_SCREEN
	(eliminate this ultimately).
	Added minibuf_window pointer, which points to global or local
	minibuffer window.

	* emacs.c (distinct_minibuffer): added variable.  If non-zero,
	display minibuffer as distinct screen.
	Deferred handling of "-d" option to Epoch's default code.

	* lisp.h (Lisp_RootBlock, Lisp_Raw_Data, Lisp_Button, Lisp_Style,
	Lisp_Xresource) : added additional Epoch elisp types. 

	* Epoch 4.0 development begins based on 18.56 release.

Wed Jan 16 18:57:00 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* Version 18.56 released.

Tue Jan 15 13:13:36 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* sysdep.c (init_sys_modes):
	Don't mess with VSUSP, V_DSUSP except on a Mips.

	* 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 (LINKER): Add -bnodelcsect.

	* x11fns.c (Fx_get_default): XBACKWARDS flips XGetDefault args.

Mon Jan 14 13:30:32 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* sysdep.c (hft_init, hft_reset): Do nothing if not HFT.

	* m-ibmrs6000.h (CANNOT_DUMP): Undefine it.
	(UNEXEC): Define it.
	(PURE_SEG_BITS, SHMKEY): Define only if CANNOT_DUMP.
	(LINKER): Override it.

Sun Jan 13 23:10:34 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* s-usg5-4.h (LOAD_AVE_CVT): Cast value to int.

Sat Jan 12 14:50:45 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* s-irix3-3.h (HAVE_SYSVIPC): Defined.

Fri Jan 11 11:45:19 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* 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.

	* m-tower32v3.h (VALBITS, GCTYPEBITS): Use 26 bits for pointer.

Thu Jan 10 12:33:20 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11fns.c (Fx_debug, Fx_get_cut_buffer, Fx_get_*_color):
	Call check_xterm.

	* fileio.c (Fcopy_file): Always close descriptors.

	* s-sunos4.h: read, write, open and close are interruptable.

Tue Jan  8 20:46:34 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* keyboard.c (input_available_signal): If FIONREAD fails, do SIGHUP.

Sun Jan  6 23:25:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* sysdep.c (init_sys_modes): Turn off VSUSP and V_DSUSP if they exist.

Thu Jan  3 17:30:46 1991  Richard Stallman  (rms at mole.ai.mit.edu)

	* search.c (search_buffer): Return starting position if count == 0.

Thu Dec 27 13:54:20 1990  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.

Thu Dec 20 18:09:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* term.c (ins_del_lines): Handle scroll region wrt chars_wasted.

Wed Dec 19 19:04:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* alloc.c (memory_full): Use preallocated arg to Fsignal.
	(syms_of_alloc): Preallocate it.

	* bytecode.c (Fbyte_code): Consider GC in each loop.

Wed Dec 12 16:17:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* keyboard.c (command_loop_1): Really bind inhibit-quit.

	* abbrev.c (Fdefine_abbrevs): Don't crash when EXPANSION is nil.

Wed Dec 12 03:35:47 1990  Chris Hanson  (cph at kleph)

	* keyboard.c (command_loop_1): Bind inhibit-quit to t while
	displaying message over active minibuffer.

	(get_input_pending): If quit-flag is set by read_avail_input,
	count that as an input character.

Mon Dec 10 00:11:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* m-pmax.h (SYSTEM_MALLOC): Define it.

	* search.c: Doc fix.

	* process.c (wait_reading_process_input): Ignore failure with EIO.

	* process.c (create_process): Delete duplicate sigsetmask.

Sun Dec  9 23:38:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* 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.

Sun Dec  2 15:39:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* fns.c (Fload_average): Add IRIS conditional.

	* m-iris4d.h (LOAD_AVE_CONVERT): Divide by 1024.

	* s-irix3-3.h (ADDR_CORRECT): Macro deleted.
	(LIBS_MACHINE): Macro deleted.
	(LDAV_SYMBOL): Delete the `_' from start of symbol.

	* process.c (status_notify): Was failing to UNGCPRO for dead buffer.

Fri Nov 30 18:07:13 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* process.c (read_process_output, exec_sentinel): Don't catch errors.

	* keyboard.c (read_command_char): Save and restore getcjmp.

Thu Nov 29 16:57:02 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11term.c (XT_Set_Size_Hints): Rewrite XICCC case.

	* process.c (status_convert): Use WRETCODE for exited process.

Wed Nov 28 18:02:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11term.c (x_term_init):
	Use progname as XXidentity even if matches CLASS.
	* x11term.h (CLASS): Use Emacs, not emacs.

	* s-386ix.h (ISC): New macro.

Tue Nov 27 14:19:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* dispnew.c (PENDING_OUTPUT_COUNT): Alternate defn for GNU library.

Mon Nov 26 14:34:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11term.c (XTfeep): Do nothing unless HAVE_SELECT and HAVE_TIMEVAL.

	* s-sunos4.h (O_NDELAY): Don't define this.

	* s-usg5-4.h (LIB_STANDARD): Add libucb.a.

	* print.c (Fwith_output_to_temp_buffer): Don't eval first arg twice.

Thu Nov 22 14:24:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* m-hp9000s300.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Override for BSD.

	* doc.c (Fsubstitute_command_keys): Use IDX only around GC points.
	Get rid of SEND.

Wed Nov 21 14:43:01 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* m-mips4.h (MIPS2): Undefine this.

	* x11term.c (internal_socket_read):
	Avoid redrawing cursor when no change.

Tue Nov 20 17:12:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* process.c (sigchld_handler): Don't look for new proc if found old.

	* x11term.c (internal_socket_read): Record whether have explicit focus.
	Handle LeaveNotify events accordingly.

	* fns.c (Fyes_or_no_p): Protect PROMPT for entire loop.
	* process.c (status_notify): Protect MSG.

	* doc.c (Fsubstitute_command_keys): Protect STR and don't keep a
	pointer to the middle of it.
	* keyboard.c (Fsuspend_emacs): Protect STUFFSTRING.
	(cmd_error): Protect TAIL while printing.
	* keymap.c (describe_alist): Protect ELT_PREFIX and TEM2.
	(describe_vector): Likewise for ELT_PREFIX and TEM1.
	(insert_first_line): Protect STR.

	* process.c (Fstart_process): Set BUFFER before other string vars
	so a gc in Fget_buffer_create won't clobber them.

	* process.c (Fopen_network_stream): Protect various args.
	* print.c (Fprin1_to_string, Fprint): Protect OBJ.
	* fileio.c (Frename_file): Protect args.
	* search.c (Freplace_match): Protect STRING.

	* dispnew.c (syms_of_dispnew): Don't clobber Vwindow_system_version
	if CANNOT_DUMP.

Mon Nov 19 17:56:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* emacs.c (Fkill_emacs): Protect ARG.

	* fileio.c (Fadd_name_to_file): Protect the args.
	(Fcopy_file, Fmake_symbolic_link): Likewise.
	(Finsert_file_contents): Protect FILENAME.

	* buffer.c (Fbury_buffer): Don't init BUF1.

	* eval.c (Fbacktrace): Protect TAIL from GC.

	* scroll.c (CalcIDCosts1): Use calculate_costs_hook.
	* x11term.c (x_term_init): Set up the hook.
	(XTcalculate_costs): New function.
	* dispnew.c (init_display): Call calculate_costs here.
	* term.c (term_init): Not here.

Thu Nov 15 16:29:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* lread.c (Feval_region): Check type of B.

	* dired.c (file_name_completion): Use CHECK_STRING on FILE.

Tue Nov 13 12:04:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* 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.

	* keyboard.c (input_poll_signal, start_polling): Use polling_period.
	(syms_of_keyboard): Initialize it and make it a Lisp var.

	* malloc.c: Use vlimit on VMS.

	* process.c (create_process): Handle HAVE_SETSID when not USG.

	* x11term.c (XT_GetDefaults): Handle temp_useBitmap.
	(xDefaultsValueTable): Handle bitmapIcon.

	* fileio.c (err_str): New macro.
	(Finsert_file_contents, Fwrite_region): Use it in error messages.

Mon Nov 12 17:18:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* insdel.c (del_range): Supply missing arg to gap_left.

	* indent.c (Findent_to): Don't fail to return a value.

	* process.c (run_filter): New function.
	(read_process_output, exec_sentinel): Use it to call the function.

Sun Nov 11 00:37:50 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* xdisp.c (try_window_id): When checking val.hpos < 0,
	to update tab_offset, correct for hscroll.

	* ymakefile (xemacs): Link xemacs to temacs if HAVE_SHM.

	* m-ibmrs6000.h (HAVE_SHM): Undefine this since does not work.

	* fns.c (Fnthcdr): Stop loop if reach end.

	* dispnew.c: Undef SIGIO if no FIONREAD.
	Include fcntl.h if HAVE_TERMIO.

Fri Nov  9 23:22:37 1990  Chris Hanson  (cph at kleph)

	* eval.c (struct catchtag): Add new element `poll_suppress_count',
	which records the value of that variable at the time the catchtag
	is bound.
	(internal_catch): Initialize the new element.
	(Fcondition_case): Likewise.
	(internal_condition_case): Likewise.
	(Fthrow): Instead of calling `barf_if_polling_suppressed', abort
	if current value of `poll_suppress_count' is different from what
	it was when the catchtag was bound.

	* keyboard.c (barf_if_polling_suppressed): Delete this, it's not
	referred to anymore.

Tue Nov  6 21:37:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* process.c (wait_reading_process_input): Don't read input
	from more than one process between calls to `select'.

	* m-ibmrs6000.h (CANNOT_DUMP): Define this.

	* process.c (create_process): Unblock SIGCHLD in the child.

Mon Nov  5 18:38:18 1990  Chris Hanson  (cph at kleph)

	* keyboard.c: Define and initialize the variable
	`poll_suppress_count' even when polling is not being used.
	* lisp.h: Extern the variable `poll_suppress_count'.

	* lisp.h (struct handler): Add new element `poll_suppress_count',
	which records the value of that variable at the time the handler
	is bound.  
	* eval.c (Fcondition_case): Initialize new element.
	(internal_condition_case): Likewise.
	(Fsignal): Instead of calling `barf_if_polling_suppressed', abort
	if current value of `poll_suppress_count' is different from what
	it was when the handler was bound.

Fri Nov  2 15:13:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* malloc.c (get_lim_data): Test !BSD4_1, not BSD4_2.

	* callint.c (syms_of_callint):
	Initialize Vprefix_arg and Vcurrent_prefix_arg.

Fri Nov  2 01:34:47 1990  Chris Hanson  (cph at kleph)

	* keyboard.c (barf_if_polling_suppressed): Don't do anything
	unless `read_socket_hook' is nonzero.

	* keyboard.c (barf_if_polling_suppressed): Define this again, but
	don't do anything if `initialized' is not set.
	* eval.c (Fthrow): Call it.
	(Fsignal): Call it.

	* lisp.h: Define `Qinhibit_quit'.
	* eval.c: Likewise.

Fri Nov  2 01:09:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* process.c (read_process_output): Inhibit quit in filter.
	(exec_sentinel): Likewise.

Wed Oct 31 18:13:08 1990  Chris Hanson  (cph at kleph)

	* keyboard.c (barf_if_polling_suppressed): Delete this function.
	(quit_throw_to_read_command_char): Inline call to it here.
	* eval.c (Fthrow, Fsignal): Delete calls to it.

Wed Oct 31 00:45:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* process.c (wait_reading_process_output): Don't turn off polling.

	* keyboard.c (barf_if_polling_suppressed): New function.
	(quit_throw_to_read_command_char): Call it.
	* eval.c (Fthrow): Call it.
	(Fsignal): Call it.

Thu Oct 25 22:39:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11fns.c (Fx_store_cut_buffer): Clear selection owner.

Wed Oct 24 15:18:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* ymakefile (GNULIB_VAR): New make variable.
	(LIBES): Use that, not LIB_GCC directly.
	(LIB_GCC): Renamed from GNULIB.  Don't define if already defined.

Tue Oct 23 01:19:25 1990  Roland McGrath  (roland at churchy.ai.mit.edu)

	* x11fns.c, x11term.c: Include header for FIONREAD.

Mon Oct 22 14:07:45 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* scroll.c (struct matrix_elt): Use ints for costs.
	* dispextern.h (INFINITY): Moved here from scroll.c.
	* dispnew.c (scrolling): If new line not enabled, draw cost = INFINITY.

	* keyboard.c (quit_char): New variable.
	(init_keyboard): Initialize it.
	(Fset_input_mode): New optional arg to set quit_char.
	(command_loop_1, read_command_char, kbd_buffer_store_char):
	(read_avail_input, input_available_signal): Use quit_char, not C-g.
	* sysdep.c (init_sys_modes): Use quit_char to set special chars.
	* x11term.c (x_init_1): Call to Fset_input_mode fixed.

Sun Oct 21 15:21:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sysdep.c (select): Handle timeout == 0.  Add var local_timeout.

	* ymakefile (LIBES): Put LIBS_SYSTEM and LIBS_MACHINE after LIBX.

	* x11fns.c: After config.h, maybe undef FIONREAD and SIGIO.

	* alloc.c (Fcons, Fmake_vector, Fmake_symbol, Fmake_marker):
	(make_uninit_string): Use VALIDATE_LISP_STORAGE.
	(VALIDATE_LISP_STORAGE): New macro.

	* fileio.c (Fcopy_file): Detect error closing output.

Sat Oct 20 00:59:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* xdisp.c (message, message1): Clear noninteractive_need_newline.

Fri Oct 19 17:25:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* buffer.c: Doc fix.

Thu Oct 18 13:43:50 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* m-intel386.h (alloca): Define as builtin, if using GCC.

	* ymakefile (GNULIB): New macro.
	(LIBES): Use that macro.  Fixes linking if compiled with 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.

Wed Oct 17 12:04:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* m-delta.h (C_DEBUG_SWITCH): Don't define this.

Tue Oct 16 13:23:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11fns.c (Fx_get_default): Test for XXidentity non-empty.

	* data.c (arith_error): Reestablish handler on VMS.

	* process.c (status_convert): If killed by signal, use WTERMSIG.

Mon Oct 15 00:27:43 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* alloc.c (truncate_all_undos): New subroutine.

	* 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.
	* x11term.h (BLOCK_INPUT, UNBLOCK_INPUT): Likewise.
	* xterm.c (XTflash, flashback): Likewise.

	* process.c (wait_reading_process_input): Undo last change.

	* 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.

Sun Oct 14 15:26:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* alloca.s [new hp assembler]: Avoid putting sp above stack top.

	* crt0.c [new hp assembler]: Double flag_fpa and flag_68881 if %d2!=0.

	* x11term.c: Choose time.h or sys/time.h as in process.c.

	* alloc.c (Fmake_marker): Delete debugging abort.

Thu Oct 11 11:58:40 1990  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.

	* x11term.c (XT_GetDefaults): Try more alternatives for each option.

	* unexmips.c (unexec): Add conditional for MIPS2.

Wed Oct 10 16:36:23 1990  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.

	* process.c (wait_reading_process_input): If not using interrupts,
	and using X, check every second for input from X.

Tue Oct  9 14:10:30 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11term.c [BAT68K]: Include sys/time.h.
	(x_clear_end_of_line): Fix typo inside #ifdef.

	* m-delta.h: Never use HAVE_ALLOCA.
	Don't define HAVE_SOCKETS.
	Don't alter HAVE_X_WINDOWS or X11.
	Other changes inside HAVE_X_WINDOW conditional.

	* window.c (window_loop): In case 6, don't do Fset_buffer.

	* m-news-risc.h: New file.

	* dispnew.c (init_display): Cast result of egetenv.

	* m-ibmrt-aix.h (PTY_TTY_NAME_SPRINTF): Use fd, not ptyv.

Mon Oct  8 18:55:20 1990  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.  See james@bigtex.cactus.org.

	* 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.

Sun Oct  7 22:48:33 1990  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.

Mon Oct  1 13:51:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sysdep.c (sys_open, sys_close, sys_read, sys_write):
	Handle EAGAIN like EINTR.

Sun Sep 30 16:37:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sysdep.c: Include various headers for ptys, for hpux, aix, and sysv.

	* dispnew.c (preserve_other_columns): Fix args to second bcopy.

	* term.c (output_chars): Fix braino updating len after TS_repeat.

Sat Sep 29 00:04:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* x11fns.c (Fcoordinates_in_window_p): Don't fail in minibuffer.

	* x11term.c (internal_socket_read): Backwards if in FocusOut. 

	* term.c (fatal): Declare argument str.

	* alloca.s: Handle ns32000 like ns16000.

	* ymakefile (LIB_X11_LIB): New parameter,default -lX11.
	(LIBX): Use that.

	* Makefile (xmakefile): Delete junk.c at the beginning.

	* process.c (sigchld_handler): Don't clear bit in wait mask
	if process is deactivated already.

	* 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.

	* xkeys-aix.h: Don't modify delete and backspace.
	If the user has already remapped the keyboard,
	this would only mess things up.

	* m-delta.h: New file.

Fri Sep 28 17:57:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* malloc.c (morecore): Don't block SIGTRAP, SIGILL, SIGSTOP, SIGTSTP.

	* Eliminate all mallocs in signal handlers.

	* process.h (struct process): New slots raw_status_low, raw_status_high
	* process.c (sigchld_handler): Don't compute status list here.
	Just set raw_status_...
	(update_status): New function; compute status from raw_status_...
	(make_process, Fdelete_process, Fprocess_status):
	(Fprocess_exit_status, list_processes_1, wait_reading_process_input):
	(send_process, process_send_signal, sigchld_handler, status_notify):
	Set or test raw_status...

	* dispnew.c (window_change_signal): Don't do it, just make it pending.
	(do_pending_window_change): New function.  Really change the size.
	(hold_window_change, unhold_window_change): Functions deleted.
	* xdisp.c (redisplay, message, message1): Use do_pending_window_change.
	* process.c (wait_reading_process_output): Likewise, after select.

	* alloc.c (malloc_warning): Just save the string.
	(pending_malloc_warning): New variable.
	(display_malloc_warning): Really display the message in a buffer.
	* keyboard.c (command_loop_1): Call display_malloc_warning if needed.

	* fns.c (Frequire): Undo certain things on failure, like autoload.

Thu Sep 27 20:59:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* sysdep.c (select): Use process_tick and update_tick,
	not child_changed.

	* 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.

	* m-sequent.h, m-cydra5.h, m-ibmrt-aix.h: Change ptyname to pty_name.

	* alloc.c (Fmake_marker): Abort if called from signal handler.

Wed Sep 26 18:39:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* m-mips4.h: New file.

Sun Sep 23 14:25:45 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* keyboard.c (Fsuspend_emacs): Check screen size after resume.

Tue Sep 18 09:21:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* window.c (Fsplit_window): For horizontal split, put excess
	column on left.

Mon Sep 17 11:22:45 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* emacs.c (main) [USG_SHARED_LIBRARIES]: Call brk.

Sun Sep 16 22:23:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* window.c (save_window_save): New arg MAXWINDOW.
	(Fcurrent_window_configuration): Pass that arg.

Tue Sep 11 16:25:53 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* unexaix.c, m-ibmr2.h, s-aix3-1.h, xkeys-aix.h: New files.

	* ymakefile (LD): Allow override with LINKER.
	(mallocobj): Handle SYSTEM_MALLOC without HAVE_ALLOCA.
	(xemacs): Use -nl option if HAVE_SHM.

	* x11term.c (XMOD_Alt, ...): New static variables.
	(stringFuncVal): Don't define it if AIX.
	(internal_socket_read): Don't map function keys if AIX.
	Handle ControlMask like Mod1Mask.
	(XInitWindow): If AIX, insert xkeys-aix.h.

	* 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.

Thu Sep  6 00:01:05 1990  Chris Hanson  (cph at kleph)

	* x11term.c (CursorToggle): If the cursor is in the modeline,
	don't display it, just say we did.

	* process.c (wait_reading_process_input): Don't initialize
	`Available'.
	(sigchld_handler): Take the process input channel out of
	`input_wait_mask' if the process has died.
	(init_process): Must initialize `input_wait_mask' to contain
	standard input.

Mon Sep  3 14:00:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* process.c: Use fd_set for args of select, if appropriate.
	(SELECT_TYPE): Always define this as type to use.
	(FD_SET, FD_CLR, FD_ISSET, FD_ZERO): New access macros.
	(input_wait_mask): Use SELECT_TYPE.  All refs changed.
	(wait_reading_process_input): Use SELECT_TYPE and new macros.

	* x11term.c (CursorToggle): Abort if on inverse-video line.

Tue Aug 28 23:15:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* regex.c (re_match_2): For case duplicate, refuse to match
	a register with invalid contents.

Tue Aug 28 17:01:40 1990  Chris Hanson  (cph at kleph)

	* dispnew.c (N_PREEMPTIONS): remove illegal semicolon from
	definition.
	(update_screen): fix typo, `num_input_characters' should be
	`num_input_chars'.
	Initialize preemption-debugging variables to impossible values so
	that they are disabled.

Tue Aug 28 15:10:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* regex.c (re_search_2): Propagate serious error indication.

	* dispnew.c (scroll_screen_lines): Mark newly empty lines as empty.
	(scrolling): Give up if any line in current_screen not enabled.

Mon Aug 27 12:42:22 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* lread.c (load_unwind): Free the stream object.

	* 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.

Sun Aug 26 22:09:23 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* dispnew.c (update_screen): Record preemption events
	in special history array `preemptions'.
	Let programmer force a preemption from the debugger.

Sat Aug 25 14:22:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* xdisp.c (try_window_id): Record info for debugging.

	* x11term.c (CursorToggle): If in highlighted line, call dummy.

Thu Aug 23 16:41:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* process.c (wait_reading_process_output):
	Don't deactivate process for eof if SIGCHLD is defined.
	That used to mask the proper exit status.

Wed Aug 22 12:40:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* m-plexus.h (LD_SWITCH_MACHINE): New macro.

Mon Aug 20 23:29:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* malloc.c (malloc_usable_size, memalign): Count size of header
	properly.

Thu Aug 16 13:51:23 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* keymap.c (apropos1): At least 1 space between fn name and keys.

Wed Aug 15 14:44:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)

	* term.c (calculate_costs): Make DC_ICcost one element larger.

	* process.c (allocate_pty, create_process): 
	(Fopen_network_stream, wait_reading_process_input):
	Use O_NONBLOCK if it is defined.
	(wait_reading_process_input): Ignore nread == 0 if using O_NDELAY.

	* process.c (pty_name): New name for ptyname.

Tue Aug 14 22:13:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fileio.c (Finsert_file_contents): Ensure `i' appears initialized.

	* process.c (create_process) [HPUX]: Avoid calling signal;
	HPUX has sigsetmask.

Mon Aug 13 18:32:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11term.c (x_term_init): Turn off use of XIgnoreError.
	(internal_socket_read): Turn off O_NDELAY if FIOSNBIO will be used.

	* xmenu.c (list_of_items, list_of_panes): Fix typos in wta errors.

Sat Aug 11 19:00:49 1990  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.

Wed Aug  8 13:50:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11term.c (internal_socket_read): Make XComposeStatus static.

Tue Aug  7 16:11:57 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sysdep.c [NEED_PTEM_H]: New flag macro says include ptem.h.

	* x11term.c (XTfeep): Call XFlush.

	* x11term.c (XT_Set_Size_Hints): Move resize after setting hints.

Mon Aug  6 23:48:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11fns.c (Fx_set_background_color): Set bkgd color of cursor GC.

Sun Jul 29 14:16:05 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11term.c (local_cursor_vpos, local_cursor_hpos): 
	New variables, used throughout this file instead of cursor_*.
	(XTupdate_end): Move cursor to last specified position.
	This makes cursor_in_echo_area work.

	* Makefile (CPP): Use $(CC).

	* editfns.c (init_editfns): Fix typos.

Sat Jul 28 22:14:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* doprnt.c (doprnt): Support negative width for %s.

Fri Jul 27 17:15:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* dispnew.c (change_screen_size): Set screen_garbaged.

Mon Jul 23 15:51:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* scroll.c (CalcLID): Run loop screen_height times.
	(calculate_scrolling): Offset *_cost by -1.

Tue Jul 17 17:42:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-mips.h: Fix unterminated comment.

	* fileio.c (Finsert_file_contents): Initialize I exiting main loop.

	* fileio.c (barf_or_query_if_file_exists): Fix bad arg to Fsignal.

Tue Jul 10 15:54:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c (wait_reading_process_input):
	Test of wait_proc->status was backwards.

	* sysdep.c: New parameter NO_SIOCTL_H.
	* s-386ix.h: New file.

Mon Jul  9 14:33:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-pmax.h: Undef LD_SWITCH_MACHINE, change DATA_START
	and DATA_SEG_BITS.

Thu Jul  5 15:34:31 1990  Richard Stallman  (rms at mole.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.

	* term.c (calculate_costs): Fix typo allocating DC_ICcost.

Thu Jul  5 13:38:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* minibuf.c (Fall_completions, do_completion): Treat nil as alist.
	(Ftry_completion): Likewise.

Sun Jul  1 17:21:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sysdep.c: Undefine TIOCGETC if BROKEN_TIOCGETC defined.
	* s-usg5-3.h: Define BROKEN_TIOCGETC.

Thu Jun 28 13:44:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* term.c (calculate_costs): Always allocate chars_wasted and copybuf.
	Clear chars_wasted.

	* xdisp.c (display_text_line): Check p1prev against startp for `...'.

Tue Jun 26 12:37:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* fileio.c (Fdo_auto_save): If don't save because file has shrunk,
	that still counts as trying.

Sun Jun 24 14:30:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11term.c (dumprectangle, CursorToggle, dumpchars): Use new
	screen data structures.
	* xterm.c (dumprectangle, CursorToggle, dumpchars): Likewise.
	Also, use current_screen in place of active_screen
	since in fact only that screen matrix was ever used.

	* dispextern.h: Add `extern' to variable declarations.

Sat Jun 23 14:12:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c [HPUX]: Undefine TIOCGPGRP.

	* editfns.c, fileio.c, filelock.c [HPUX]: Include stdio.h.

	* s-hpux.h: Inclusion of wait.h moved from m-hp9000s300.h.
	(HAVE_RENAME): Define this.
	* sysdep.c (HAVE_RANDOM): Define this on hpux with x11.
	(rename): Check HAVE_RENAME.

	* lread.c (read_escape): Don't use \a.

Wed Jun 20 12:44:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-sun2.h: Add comment for dealing with 68881.

Tue Jun 19 01:36:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-ibmps2-aix.h: Define C_DEBUG_SWITCH to optimize for gcc.
	Define LIB_STANDARD rather than LIBS_MACHINE.
	Define HAVE_PTYS, HAVE_SOCKETS, HAVE_SYSVIPC, X_DEFAULT_FONT.
	Undefine sigsetmask.

	* sysdep.c: Don't include sioctl.h on aix386.

	* process.c: Use HAVE_WAIT_HEADER.

Sun Jun 17 17:57:31 1990  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.

Sat Jun 16 23:31:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* syntax.c (scan_lists, scan_sexps_forward): Allow Squote in symbols.

Sun May 27 18:33:35 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.h (struct Lisp_Process): Add element pty_flag.
	* process.c (create_process): Initialize that.
	(process_send_signal): Ignore current_process if no pty.

	* syntax.c (scan_sexps_forward): Initialize curlevel->last.

Sat May 26 03:15:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* keyboard.c (command_loop_1): Clear this_command_key_count here.
	(Fread_key_sequence): And here.
	(read_key_sequence): Not here.

	* indent.c (current_column): Detect special case when point == BEGV.

	* window.c (unshow_buffer): Don't set pt in selected window's buffer.

	* process.c (status_message): Fix screwup in Qexit case.

Fri May 25 15:10:30 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* dispnew.c (update_screen):
	Add missing else in handling cursor_in_echo_area.

	* window.c (Fselect_window): Always get point from the new window.
	* xdisp.c (redisplay_window): Eliminate lpoint.  Alter opoint 
	if point should be changed permanently in the selected window.

	* xdisp.c (decode_mode_spec): Don't truncate buffer or file name.

	* editfns.c (Finsert_buffer_substring): Don't fail to set beg, end.

	* dispnew.c (safe_bcopy): Fix backwards conditional.
	Do both cases explicitly; don't use bcopy.
	(scroll_screen_lines): Fix amount to rotate by for AMOUNT < 0.

Tue May 22 20:50:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* Renamings: Renamed functions include
	move_cursor, bell, read_command_char, insert, output_chars, 
	self_insert_internal, set_buffer_internal.
	Variables echo_area_contents, cursor_hpos, cursor_vpos, meta_key,
	update_mode_lines, current_buffer.
	Macros SET_PT, FROM_KBD, FETCH_CHARS.

	* keyboard.c (defkey): Function deleted.  ndefkey used instead.
	(Vglobal_map, global_map, Vesc_map, Vctl_x_map): Now type Lisp_Object.

Mon May 21 14:32:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* buffer.h (struct buffer_text): Component renamed.
	All refs changed to macros below.
	(MODIFF, BUF_MODIFF): New macros.

	* xdisp.c (redisplay_window): Fix backward conditional on point_vpos.

	* xdisp.c (redisplay_window): Set bf_cur directly.
	* buffer.c (SetBfx): Function deleted.

Sun May 20 17:27:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* keyboard.c (command_loop_level): New variable.
	Used in place of RecurseDepth, but different meaning.
	(recursive_edit_1): New function.
	(Frecursive_edit): Call that.
	* minibuf.c (read_minibuf): Call recursive_edit_1.
	* xdisp.c (RecurseDepth): Variable deleted.

	* 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 (calculate_costs):
	Dynamically allocate chars_wasted, copybuf, DC_ICcost.
	Set RPov based on actual width.
	(chars_wasted, copybuf, DC_ICcost): Now pointers.

	* term.c (term_init): Don't use MScreenWidth, MScreenLength at all.
	* sysdep.c (get_screen_size): Likewise.
	* dispnew.c (change_screen_size_1): Likewise.

	* dispnew.c (remake_screen_structures): Allocate message_buf.
	* xdisp.c (message_buf): Now is a pointer.

Sat May 19 15:10:11 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* keyboard.c (get_char): Don't echo dash if have other echo area text.

Fri May 18 15:03:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* lread.c (openp): Fix error setting fd after failing `access'.

	* dired.c (file_name_completion): Use scmp to compare names.

	* sysdep.c (setup_pty): New function.

Thu May 17 15:58:05 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* malloc.c (calloc): New function.

	* minibuf.c (Fall_completions): Protect STRING from gc.
	Copy ALIST to TAIL to protect it.

	* paths.h-dist: Doc fix.

	* process.h (struct Lisp_Process): New components status
	contains process status in Lispy form.  Replaces flags and reason.
	New components tick and update_tick record need for attention.
	* process.c: All references updated.
	(status_convert, decode_status, status_message): New functions.
	(pty): Return a descriptor or -1.
	(send_process): Function deleted.
	(send_process_1): Renamed to send_process.
	(process_send_signal, sigchld_handler, status_notify): Renamed fns.
	* sysdep.c (setup_pty): New function.

	* print.c (internal_with_output_to_temp_buffer):
	Save and restore the current buffer.

Sat May 12 18:09:30 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c (create_process) [not USG]: Put subproc in pgrp 0.

	* buffer.c (SetBfp): Don't bother with selected window or its point.
	* window.c (Fselect_window): Always set pointm of old window. 

Thu May 10 18:20:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* dispnew.c (make_screen_structure): Clear out enable vector.

Wed May  9 16:55:30 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* insdel.c (make_gap): Arg is amount of new gap to create.
	All calls changed.

	* buffer.c (Fget_buffer_create):
	-2 in buffer_local_flags means init the slot.

	* buffer.c (SetBfp, Frename_buffer): Local cleanups.

	* buffer.c (Fset_buffer): Check for deleted buffer.
	(SetBfp): Don't check.	
	* print.c (PRINTPREPARE): Use Fset_buffer.

Tue May  8 23:00:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* 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.

	* buffer.c (ModExist): Function deleted.

	* 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.

	* marker.c (Fset_marker): Don't unchain marker if has no buffer.
	(set_marker_restricted): Likewise.
	* alloc.c (gc_sweep): Likewise.
	* editfns.c (save_excursion_restore): Likewise.

	* editfns.c (insert1): New function.
	* keyboard.c (get_char): Echo area message turns off echoing.

	* keyboard.c (record_auto_save): New function.
	* fileio.c (Fdo_auto_save): Call it.

	* dispnew.c (rotate_vector): Was rotating backwards.

	* insdel.c (make_gap): Complete rewrite.
	(gap_left): New argument NEWGAP.

Sat May  5 13:00:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* search.c (skip_chars): Eliminate PointLeft and PointRight.
	* cmds.c (SelfInsert): Likewise.

	* 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.

Thu May  3 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* 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.

	* keymap.c (Fdefine_key, Flookup_key): Local cleanups.

	* xdisp.c (redisplay_window): Fix calls to try_window.

	* term.c (write_chars): Local cleanup.
	(term_init): Local cleanup.
	For c100, substitute only in the cm string.
	No need to keep the address of the start of the string area.

	* editfns.c: Eliminate all use of DEFSIMPLE and DEFPRED.
	* dispnew.c, indent.c, keyboard.c: Likewise.

Mon Apr 30 20:00:00  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* 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.

Wed Apr 25 15:10:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* keymap.c: Minor changes.

	* lread.c (Fload): Minor changes.

	* macros.c (Fstart_kbd_macro): Local cleanup.

	* minibuf.c (read_minibuf): Local cleanup.

	* search.c (Freplace_match, Fregexp_quote): Local cleanups.

	* search.c (Fstore_match_data): Handle ints and markers properly.

	* syntax.c: Flush incorrect comment.

	* sysdep.c (init_baud_rate, init_sys_modes, tabs_safe_p):
	(get_screen_size): Local cleanups.

	* data.c (Fstring_to_int): Delete disabled feature
	of accepting `yes' and `no'.

	* dispnew.c (current_screen, new_screen, temp_screen): New vars.
	(remake_screen_structures, make_screen_structure):
	(free_screen_structure): New functions.
	(make_display_lines, new_display_line, return_display_line):
	Functions deleted.
	(change_screen_size_1, init_display): Use the new functions.
	(cancel_line, clear_screen_records, get_display_line):
	Rewritten for new data structures.
	(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.
	* scroll.c (do_scrolling): Rewritten for new data structures.
	* xdisp.c (display_minibuf_message, redisplay): Likewise.
	(display_text_line, display_mode_line): Likewise.
	(display_mode_element, display_string): Likewise.

	* xdisp.c (decode_mode_spec): Local cleanups.
	(display_mode_element): Pass proper arg MAXWIDTH to decode_mode_spec.
	(display_text_line): Pointers now unsigned.

	* dispnew.c (line_hash_code, line_draw_cost): Cleaned up.
	Args are different, and hash computation too.

	* dispnew.c (update_screen): Rearrange buffer-emptying code.

	* editfns.c (in_accessible_range): New function.
	(Fgoto_char, save_restriction_restore): Use it.
	(save_excursion_save, Fcurrent_time_string): Local cleanups.

	* emacs.c (Fkill_emacs): Don't ask any questions.
	* process.c (Fprocess_kill_without_query): New arg; new return value.
	(count_active_processes): Function deleted.

	* emacs.c (Fdump_emacs): Local cleanup.

	* 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.

	* keyboard.c (this_command_key...): New variables.
	(Fexecute_extended_command, Fthis_command_keys): Related changes.
	(init_keyboard, get_char): Likewise.

	* keyboard.c (get_char): New way to decide when to auto-save.
	Other local cleanups.
	(command_loop_1): New criterion for undo boundary.

Tue Apr 24 12:00:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* buffer.c (bf_text): Variable deleted.
	(Fkill_buffer, SetBfp): Delete code that worked with it.
	* 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, set_marker_restricted): Likewise.
	* window.c (Fset_window_buffer, Fpos_visible_in_window_p): Likewise.
	* xdisp.c (redisplay): Likewise.

	* xdisp.c (redisplay, redisplay_preserve_echo_area):
	Two functions replace DoDsp.  All callers changed.

	* xdisp.c (redisplay, redisplay_window): Eliminate `inhibit_hairy_id'.
	(redisplay_window): No return value.  Local cleanups.

	* xdisp.c: Fix various inaccurate comments.

	* xdisp.c (try_window): No return value.

Sat Apr 21 18:05:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sysdep.c (random, srandom): Don't define if HAVE_RANDOM.

Thu Apr 19 12:00:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* abbrev.c (Fdefine_mode_abbrev): Clean up error message.

	* alloc.c (Fmake_marker): Delete `modified' field.
	* insdel.c (adjust_markers): Likewise.

	* undo.c: Complete rewrite.
	* undo.h: File deleted.
	* 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_flush_undo, Fbuffer_enable_undo): Likewise.
	(Fkill_buffer): Likewise.
	(init_buffer_once): Set up local variable buffer-undo-list.
	(syms_of_buffer): Likewise.
	* fileio.c (Finsert_buffer): Store nil in undo_list.

Tue Apr 17 03:24:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* buffer.h (struct buffer): Delete minor_modes.
	* buffer.c (Fget_buffer_create):

Mon Apr 16 13:17:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* s-sunos4.h (SYSTEM_MALLOC): Define it.

Sat Apr 14 16:48:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* window.c (set_window_height, set_window_width):
	Don't delete top-level windows.

Wed Apr 11 15:10:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* sysdep.c [HPUX] (perror): Function deleted.

Tue Apr 10 20:39:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c (sig_process): Use TIOCSIGSEND if available.

Fri Mar 30 14:42:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* alloc.c (xmalloc, xrealloc): Avoid failure if size is 0.

Wed Mar 21 18:19:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-sun3.h (C_SWITCH_MACHINE): Use -fsoft.

Thu Mar 15 02:41:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11term.c (internal_socket_read): Change type of 1st arg to
	XRefreshKeyboardMapping and XLookupString.

	* undo.c (Fundo_more): Fix error message.

Tue Feb 13 18:34:54 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c: If _h_BSDTYPES, include time.h, not sys/time.h.

Thu Feb  1 02:11:41 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-ibmps2-aix.h (SIGN_EXTEND_CHAR): Cast to `signed char'.

Thu Jan 18 12:56:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* search.c (skip_chars): Never go past edge of buffer.

Mon Jan  8 10:56:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* editfns.c (Fchar_after): Set N after coercing marker.

Thu Dec 28 18:12:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c (create_process): Unhold SIGCHLD in the child.

Wed Dec 27 19:10:35 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c (create_process): Fix bad HPUX conditional at sigsetmask.

Mon Dec 25 00:10:57 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11term.c (internal_socket_read): Handle explicit focus events.
	(XInitWindow): Add them to event mask.

	* fns.c (Fmapconcat): Gcpro SEP around mapcar1.

Fri Dec 15 13:27:03 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* process.c (read_process_output): Return -1 if read does.
	(wait_reading_process_input): Handle EWOULDBLOCK.

Fri Nov 17 17:18:15 1989  Joseph Arceneaux  (jla at spiff)

	* xmenu.c (XEmacsMenu): Use ButtonReleasedMask for X11.

Thu Nov  9 13:10:02 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-sparc.h (C_OPTIMIZE_SWITCH): Use -O if GCC.

Wed Nov  8 14:05:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* marker.c (Fset_marker): Don't force position into visible range.
	(set_marker_restricted): New function does what Fset_marker did.
	* window.c: Change many calls to use the new function.

	* search.c (Fstore_match_data): Accept integers as well as
	markers.
	A marker pointing nowhere, treat as 0.

Mon Nov  6 02:00:40 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* search.c (Fmatch_data): Report 0 as integer 0;
	don't convert to a marker.

	* m-mips.h [USG]: Undef NOMULTIPLEJOBS.
	Define SYSV_SYSTEM_DIR and undef NONSYSTEM_DIR_LIBRARY.
	Define utimes as alias for utime.  Undef BSTRING.
	[unconditional]: Undef LOAD_AVE_TYPE.
	[BSD]: Define COFF and TERMINFO.
	Undef MAIL_USE_FLOCK and HAVE_UNION_WAIT.
	Define C_SWITCH_SYSTEM and LD_SWITCH_SYSTEM.
	Define START_FILES and LIB_STANDARD as in USG.
	* m-pmax.h: Add stuff to cancel that out.

	* sysdep.c: Handle BROKEN_FIONREAD.

Thu Nov  2 12:30:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* alloc.c (staticvec) [__GNUC__]: Make this a simple vector of pointers
	rather than an alias for a vector of chars.

Thu Oct 26 20:24:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11term.c (x_init_1): Negate arg to fcntl F_SETOWN
	if F_SETOWN_SOCK_NEG.
	* xterm.c (x_init_1): Likewise.
	* 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.

Wed Oct 18 17:55:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-pyramid.h (NO_ARG_ARRAY): Define if using GCC.

Tue Oct 17 03:08:08 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* vmsfns.c (process_command_input): Call clear_waiting_for_input.

Fri Oct 13 20:29:42 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11fns.c (Fx_get_mouse_input): Read in all kbd input, to get event.
	* keyboard.c (consume_available_input): New fn that does this.
	(read_avail_input): No longer requires kbd_count == 0.
	Can now be subroutine for consume_available_input.

Wed Oct 11 14:55:23 1989  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.

Tue Oct  3 12:29:18 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* m-hp9000s800.h (XUNMARK): Delete definition.

Fri Sep 22 00:40:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)

	* x11fns.c (Fx_get_mouse_event): Fix typo, Fcond => Fcons.
	Do set Vx_mouse_item.  Wait using Fsleep_for.
	Convert meta from 8-bit to 2-bit, as in Fx_proc_mouse_event.

Fri Aug 18 17:00:47 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)

	* Version 18.55 released.

	* vmsfns.c: Define PRV$V_... syms if prvdef.h does not.


Local Variables:
mode: indented-text
left-margin: 8
fill-column: 74
version-control: never
End:
