----- release 1.5 -----

Tue Aug 10 02:19:16 1993  Tom Lord  (lord@unix6.andrew.cmu.edu)

	* ref.c (flush_fm_ref): NULL check

Mon Jul 26 16:05:29 1993  Tom Lord  (lord@metis.weh.andrew.cmu.edu)

	* list.c: Applied a patch from chris@lslsun7.epfl.ch (Christian Iseli)
	The patch saves list mode from wasting time examining thousands
	of empty cells.

Sun Jul 25 21:57:43 1993  Tom Lord  (lord@unix1.andrew.cmu.edu)

	* configure.in, io-x11.c: Check for XSetWMProtocols and don't call
	it if it doesn't exist (as in X11R3?)

Wed Jul 21 14:12:08 1993  Tom Lord  (lord@unix8.andrew.cmu.edu)

	* utils.h: don't #define ck_free


----- no additional release info ----

Sun May 23 01:19:38 1993  Tom Lord  (lord@unix9.andrew.cmu.edu)

    -- partial accounting of various patches from Andreas Schwab
       <schwab@issan.informatik.uni-dortmund.de>

       * io-curses.c (_io_redraw_input, redraw_info, _io_redisp): start
       drawing the info screen on row 0 (or else the info screen is one line
       too high)
       (_io_repaint): redraw the prompt if info screen active, too
       * io-edit.c (forward_char): allow the cursor to move after the last
       character
       (goto_char): ... but that is too much
       * window.c (io_set_input_status): use the new values to compute the
       layout
       * help.c (expand_help_message): expand unbound functions correctly

Fri May 21 16:18:46 1993  Tom Lord  (lord@unix10.andrew.cmu.edu)

	* help.c (expand_help_msg): lookup bindings from top_keymap
	instead of cur_keymap.

Thu May 13 13:30:43 1993  Tom Lord  (lord@dacre.bh.andrew.cmu.edu)

	* io-term.c defun.h cmd.c (pushback_keystroke, main): 
	Made the non warrenty not consume a keystroke and not
	appear if a file is being loaded. Hopefully is less offensive to
	pro users.

	* io-edit.c: made the cpp macros non-recursive because
	gcc is just too good for the rest of the world to bear.

	* reginos.c, print.c ({ps,}print_region_cmd): fixed argument
	order. (TEST)

	* io-x11.c, init.c: corrected the ansi arrow bindings. (TEST)

	* panic.h: new file, took over some decls from utils.h

	* io-curses: got rid of unused variable io_input_avail_val

	* io-x11.c: got rid of all references to ->message

Tue May 11 00:49:06 1993  Tom Lord  (lord@socrates.hl.andrew.cmu.edu)

	* io-term.c defun.h cmd.c (pushback_keystroke, main): 
	Made the non warrenty not consume a keystroke so that it 
	is less offensive to pro users.

	* io-edit.c: made the cpp macros non-recursive because
	gcc is just too good for the rest of the world to bear.

	* reginos.c, print.c ({ps,}print_region_cmd): fixed argument
	order. (TEST)

	* io-x11.c, init.c: corrected the ansi arrow bindings. (TEST)

	* panic.h: new file, took over some decls from utils.h

	* io-curses: got rid of unused variable io_input_avail_val

	* io-x11.c: got rid of all references to ->message

	----- some bugfixes not recorded :( -----

Fri Mar 19 01:42:54 1993  Tom Lord  (lord@unix2.andrew.cmu.edu)

	* ref.c (shift_outside): udpate variable refs correctly (moving
	ranges would sometimes cause oleo to hang, othertime not to update
	correctly).

	* ref.c (copy_cell): update timer refs appropriately.

Tue Mar 16 16:05:54 1993  Tom Lord  (lord@antares.weh.andrew.cmu.edu)

	* io-x11.c (xio_scan..., open_display, ...): added a patch from 
	Jeremy.Allison@Corp.Sun.COM (Jeremy Allison):

	    allows oleo to receive keyboard input in X11 under IC\ CCM
	    complient window managers (like olwm) that only give keyboard
	    focus to clients that explicitly request it. I have also added
	    a fix to allow oleo to quit when such \ a window manager sends
	    a WM_DELETE_WINDOW client message.

Fri Mar 12 01:48:35 1993  Tom Lord  (lord@unix7.andrew.cmu.edu)

	* font.c: simplified the font naming system such that one must use
	define-font and then refer to fonts by their oleo name.  The old
	way confused people and would not have worked as well with the new
	command loop. 

Sat Feb 13 15:14:47 1993  Tom Lord  (lord@unix8.andrew.cmu.edu)

	* io-curses.c, basic.c, io-term.c (suspend_oleo, continue...)
	A new command (suspend-oleo) and also set the terminal modes
	nicely when being suspended or continued.

Fri Feb 12 19:14:58 1993  Tom Lord  (lord@watson.bh.andrew.cmu.edu)

	* window.c: i am removing supprot for linked windows because
	they don't appear ever to have worked and are now in the way of
	some other changes.

Tue Feb  9 00:08:20 1993  Tom Lord  (lord@maelstrom.ucc.andrew.cmu.edu)

	* -- extensive --
	There are now doc strings for all interactive functions and
	for all formula functions.  These are defined in defun.h
	and forminfo.h respectively.

	Defun.h is turned into structures and arrays in funcs.h.
	This replaces/augments some tables that were formerly 
	built in io-term.c.

	Defun.h also correlates c functions with their Oleo names and
	func_args strings.


Tue Feb  2 03:30:16 1993  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* basic.c (recalc_cmd => recalculate): added a parameter that
	tells recalculate to recompute all cells, regardless of what
	has changed.  This is like ^L except for formula values instead
	of display state.  When called interactively, a prefix
	arg causes full recalc.  Otherwise, only partial recalc is done.

	* basic.c (imove, inc_direction): new interactive command
	for navigation that is less stressful on the hands/anglo-centric
	than Emacs bindings.

Thu Jan 21 15:38:23 1993  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* -- extensive --
	The command loop was formerly split between io-term and the
	two implementations of get_line.  The newly created
	cmd.[ch] collect all of the command loop in one place.

	The mechanism that builds up arguments for interactive functions
	has been rewritten.  Command-loops are now first class objects 
	so multiple input contexts (e.g. recursive minibuffers) are
	supported.

	io-term.c has been carved up.  Some functions have been moved
	into their own file (format.c).  Many commands have been changed
	slightly to better fit the new command loop.

Mon Jan 11 15:17:15 1993  Tom Lord  (lord@kalypso.weh.andrew.cmu.edu)

	* display.c (record_display_damage): inner loop tested r.  should
	have tested c.

	* alarm.[ch], io-term.c, ref.c: got rid of the alarm functions
	and all uses of SIGALRM.  The alarm is derived by polling time() 
	as part of a select-with-timeout loop.

Sat Jan  9 15:00:16 1993  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* print.c (set_page_size_cmd): incorporated support (from Cosmos
	Nicolaou) for named page sizes 

	* print.c (psprint_region): in the output postscript, define max
	and min because apparently not all ps interpreters do (?!?!).

	* io-x11.c (xio_redisp): only draw the cursor in the current window.

	* io-x11.c (open_): Scale the labels accounding to max_bounds (not
	"M" width).  The reverse change for cell-width scaling.

	* io-term.c (got_sig): don't call io_error_msg from a signal
	handler and therefore don't report the signal to the user.  This
	is a temporary fix.

Fri Jan  8 02:14:39 1993  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* io-term.c io-curses.c io-x11.c:  rewrote real_get_chr
	to use select instead of wait, SIGIO or non-blocking io.
	Updated the display drivers to reflect this.

Wed Jan  6 01:26:00 1993  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* io-term.c (read_file_and_run_hooks): Don't pass a constant
	string to find_var or execute_cmd because those functions can't
	deal with it (grrr). (diagnosis from  Cosmos Nicolaou
	<can@ansa.co.uk>) 

	* io-term.c (set_page_size_cmd): rewritten so as to parse its
	argument correctly.

	* print.c (put_eps_header, psprint_region): incorporated patches
	from Eric S Fraga <eric@mathematics.edinburgh.ac.uk> to fix
	the postscript definition of CELL-GOAL  (in the right-justified
	case) and the computation of the bounding box.

Tue Jan  5 14:31:31 1993  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* everything -- cleaned up nearly all the warning from gcc -pedantic
	-ansi -Wall (other than those fixed by Paul Eggert).  Mostly this
	was a matter of properly (i hope) declaring libc functions in sysdef.h.

	* parse.y (parse_cell_or_range): cleaned up the CK_* macros to get
	rid of the empty else warning.

Thu Dec 31 15:31:32 1992  Paul Eggert  (eggert@twinsun.com)

        * decompile.c (decomp): Use prototoype when defining in ANSI C, since
        the argument type CELLREF will be promoted otherwise, and ANSI C does
        not allow mixing old-style definitions with prototype declarations
        when argument types are promoted.
        * display.c (cell_display_of, pr_display_cell): Likewise.
        * io-curses.c (_io_pr_cell_win, move_cursor_to): Likewise.
        * io-term.c (set_cell_formula): Likewise.
        * io-utils.c (cell_value_string, cell_name, col_to_str): Likewise.
        * io-x11.c (xio_pr_cell_win): Likewise.
        * lists.c (find_cell, find_or_make_cell): Likewise.
        * ref.c (new_value, set_new_value, read_new_value, move_cell,
        copy_cell, add_ref, flush_range_ref, add_ref_fm, flush_ref_fm,
        push_cell): Likewise.
        * regions.c (set_rng): Likewise.
        * window.c (win_label_cols, io_pr_cell, io_move_cell_cursor): Likewise.

        * cell.h, font.h, global.h, io-abstract.h, io-generic.h, io-term.c,
        io-term.h, io-utils.h, list.h, lists.h, oleofile.h, ref.h, regions.h,
        sc.h, sylk.h, utils.h, window.h: If __STDC__, declare zero-argument
        functions using `(void)', not `()'.

        * global.h (for_all_vars, hash_insert, index, rindex): Declare
        argument types if __STDC__.

        * hash.c (hash_insert): 3rd arg is VOIDSTAR, not char *.

        * io-term.c: Declare prototype for getenv,
        move_region, format_area, open_window, close_window, goto_window.

        * io-x11.c (getenv): Argument is const char *, not char *.

        * ref.c (for_all_vars): Use prototype for argument if __STDC__.

        * utils.h (abort, malloc, calloc): Correct prototypes to agree with
        ANSI C.
        * utils.h (ck_fopen): Delete unused declaration.


Fri Jan  1 02:48:28 1993  Tom Lord  (lord@unix1.andrew.cmu.edu)

	* utils.c (fopen_with_backup): the backup_by_copying branch
	had out-of-order parameters to fread/fwrite. (
	(patch from ron@mlfarm.com)

	* ualarm.c: Some systems want <sys/time.h> instead of <time.h>

	* io-x11.c (open_display): actually use the geometry that was
	computed from the resource database.

	* io-utils.c (div => divide): name clash w/stdlib.h

Thu Dec 31 13:16:32 1992  Paul Eggert  (eggert@twinsun.com)

        * sysdef.h (SIGRET): Remove.  All invokers removed.
        This change might cause some harmless compiler warnings in
        old-fashioned hosts where signal functions yield `int', but
        that's better than always generating warnings in modern hosts
        where signal functions yield `void'.

Thu Dec 31 13:12:16 1992  Tom Lord  (lord@ceti.weh.andrew.cmu.edu)

	* xrdb.c: properly include alloca.h (patch from Paul Eggert)

    	* io-term.c (main): show the disclaimer before turning on curses.

	* io-utils.c (ignore_sig): reregister the signal handler after it
	fires.

	* io-x11.c (open_display): init the xwins field of thePort.

	* io-x11.c (get_x11_args): don't merge the command line database
	(which was never computed).

Wed Dec 30 21:49:33 1992  Tom Lord  (lord@wombat.gnu.ai.mit.edu)

	* utils.c, configure.in: added configuration tests for several
	semistandard functions that are (now conditionally) defined in
	utils.c.

Mon Dec 28 20:10:27 1992  Tom Lord  (lord@altair.weh.andrew.cmu.edu)

	* io-x11.c (xio_update_status): fixed formatting of the cell formula

	* io-term.c (main): new long option -nw to not use x.
	new options: --help, -h to show usage.

	* print.c (put_ps_string): quote left parens inside of ps strings.

Mon Dec 21 01:02:03 1992  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* io-term.c (main): added new command line arguments and
	started to use getopt.

	* io-x11.c (set_cursor & elswhere): draw the cursor even when
	  the layout needs to be recomputed (but not when it has never
	  been computed)

	* cells.c (vlookup_str): new formula function.

Sun Dec 20 00:31:00 1992  Tom Lord  (lord@thisbe.weh.andrew.cmu.edu)

	* io-term.c (read_file_and_run_hooks): After reading a
	file, execute the macro bound to load_hooks, if any.

Fri Dec 18 14:53:15 1992  Tom Lord  (lord@chort.weh.andrew.cmu.edu)

	* io-x11 (record_damage): compute label damage precisely.
	Got rid of call to xwin_range which was buggy and supersceded
	by display_range, anyway.

	* display.c (layout): removed two spurious calls to damage in the
	first loop.

	* io-x11.c (io-redisp): don't repaint the cursor cell unecessarily.

	* io-term.c (real_get_chr): On systems that support sigio, 
	block using wait.  This way, timer events can cause continuous
	updating.

Thu Dec 17 01:54:57 1992  Tom Lord  (lord@alcyone.weh.andrew.cmu.edu)

	* ref.c: removed lots of bugs from shift_outside and related
	functions.  The corresponding commands seem to work for a change.

	* io-term.c: made the use of input line buffers more consistent.

	* io-term.c (read_variables, set_region_formula,
	where_is): new interactive functions.

	* io-term.c ({upper,lower}_{left,right}): new functions.

Wed Dec 16 13:13:40 1992  Tom Lord  (lord@unix9.andrew.cmu.edu)

	* various: The SPLIT_REFS option is being removed (as it comes up).

	* utils.c (abort): Turned off the oleo.panic files.

	* font.c (intern_font):  Specifications in def\(a\(u\(l\(t\)?\)?\)?\)? 
	now return 0, which stands for the font that is set using 
	set-default-font.

	* oleofile.c (oleo_write_file): don't bother generating a boundry
	field. (e.g. B;r23c43).  read_file still parses them for compatability.

Sun Dec 13 20:23:28 1992  Tom Lord  (lord@monsoon.ucc.andrew.cmu.edu)

	* ref.c: Turned off the error messages that occured when moving a
	range that partially overlaps formula and variable references.
	That is because this isn't an error. The change means that ranges
	will sometimes be silently adjusted as lines are insert/deleted or
	regions moved.  Is this a problem?

Sat Dec 12 20:17:26 1992  Tom Lord  (lord@wisteria.bh.andrew.cmu.edu)

	* sylk.c/oleofile.c (_read_file): Abort the read after a bad field
	is found.

	* io-x11.c (init): Set the window title.

	* ref.c (flush_range_ref): null deref bug.

	* oleofile.c (oleo_read/write_file): correctly set a0 mode if
	the option is set in the input file.

	* sylk.c (sylk_read/write_file): read/write in a0 mode.

Fri Dec 11 11:44:10 1992  Tom Lord  (lord@watson.bh.andrew.cmu.edu)

	* io-term.c (exchange_point_and_mark): rewritten so as to actually
	work.

	* io-x11.c (several functions): added a new field, redisp_needed,
	to a port structure.  Set and cleared at obvious times (to avoid
	flashy redisplay).  

	* ref.c (flush_ref_fm): Avoid trying flushing if *where is NULL.
	It's not clear that this is the right fix since an old piece of
	TEST code complains about this condition.  I guess the expected
	bug, if this fix is wrong, will be bogus updating.  The
	max_row->highest_row change might have something to do with why
	this bug is showing up now.

	* display.c (pr_display_cell): This function checks to see if the
	cell has truly changed appearence, and if not, does nothing. This
	change is because the cell cursor flashed annoyingly after empty
	cells went from not being allocated to being allocated (but still
	empty);  the fix is a little more general, though.

	* ref.c (shift_outside): fixed several null dereferences in
	condition of loops that remove references to a cell.

	* ref.c, region.c: Wherever the comment
			  /* sparse array bug fixed here */
         occurs, there was a bug caused by keeping pointers to cells
	 through calls to one of the make_cell functions.  The fix
	 is always to recompute the pointer from the row/column address. 
	 A number of bugs related to move_region appear to have had
	 something to do with this.

Thu Dec 10 12:24:10 1992  Tom Lord  (lord@unix5.andrew.cmu.edu)

	* regions.c (move_region): max_row -> highest_row when clipping 
	the region being moved.  This fixed a bug that showed up when the
	last column in the source region had fewer filled rows than other
	rows in the source region.

	* io-term.c init.c (insert_*, delete_*): added new commands to
	insert/delete rows and columns.  Bindings ^O ^K M-^O M-^K.

	* ref.c (shift_outside): When shifting a relative range reference,
	set cur_row/col to the destination of the cell being shifted
	instead of the source.  This appears to be  the long standing bug
	in which move-cells fails to correctly update formulae -- though
	the bug reports aren't clear enough for me to be sure this is the
	only bug.

Wed Dec  9 16:36:13 1992  Tom Lord  (lord@dacre.bh.andrew.cmu.edu)

	* utils.c (fopen_with_backup): applied *part* of a patch from
	somewhere!ron@mlfarm.com.  The fix is to the __backup_by_copying
	case; the correct file is opened as the backup file.
	The patch also replaced fread/fwrite w/ fgetc/fputc; I didn't
	incorporate that because i see no reason why should be necessary.
	Someone send me a bug if i'm wrong, please.

	* parse.y: (yylex): For some reason, variables were never lexed in
	a0 mode.  Now they are.

Fri Dec  4 20:05:37 1992  Tom Lord  (lord@unix8.andrew.cmu.edu)

	* io_term.c:  new interactive function: write-variables.

Fri Nov 27 22:03:10 1992  Tom Lord  (lord@maelstrom.ucc.andrew.cmu.edu)

	* io_x11.c (xio_scan_for_input): recognize Mod1Mask as meta.

Mon Nov 23 20:33:48 1992  Tom Lord  (lord@unix9.andrew.cmu.edu)

	* sylk.c, oleofile.c (*_read_file): Obey user-specified 
	  a0 option when reading files.

	* init.c: new bindings
	   M-C-v    show-all-variables

Sat Nov 21 17:00:40 1992  Tom Lord  (lord@strand.bh.andrew.cmu.edu)

	* io_term.c (real_get_chr): replaced ERR with -1 because not all 
	  curses implementations define ERR.  Hopefully they all use -1.

	* utils.c (stricmp): ifdefed stricmp.

	* Makefile.in (.c.o): -I$(srcdir)

	* io_term.c (main):  Obtain part of the startup message from
	  oleo_version_string so that it is up to date.

