Sun Mar 11 04:28:30 1990  Brian Fox  (bfox at gnuwest.fsf.org)

	* parse.y: handle_eof_unit () now alls reset_parser () before
	calling logout_or_exit () to prevent incorrect parsing of the
	.logout file.

Sat Mar 10 16:40:10 1990  Brian Fox  (bfox at gnuwest.fsf.org)

	* execute_cmd.c: execute_command_internal ().  Fixed bug of
	backgrounded shell control structures not being in the background.

	* subst.c: expand_word_internal (); If a command substitution
	string was not closed properly, the shell could walk off of the
	end of a string.  Fixed with simple test.

	* parse.y: shell_getc ();  now takes argument saying how to handle
	backslash-newline.  All calls to shell_getc () adjusted.
	read_token () adjusted to handle new scheme; it has to know when
	to allow backslash newline, and when to ignore.	

	* builtins.c: echo_builtin ();  Words ending in `\' handled
	incorrectly, allowing a reference past the end of the string.
	Fixed.

	* execute_cmd.c: find_user_command_in_path ();
	if PATH ended with a `:', then that didn't mean to search
	`.' for a file.  Now it does.

	* builtins.c: added hack to history_builtin ().  Let
	history -s args produce output the way that ARGS would if typed
	interactively.  Thus "history -s "!?ema" might produce
	"ls -l emacs-18.55.tar.Z".

	* Added sun-cmd.termcap to the examples directory.

	* POSIX`fied jobs.c: new define tcsetpgrp () takes place of
	ioctl TIOCSPGRP; order of setting pgrp and terminal pgrp now
	pgrp first, then terminal next.

Fri Mar  9 00:04:53 1990  Brian Fox  (bfox at gnuwest)

	* subst.c: new function unquote_bang () removes backslashed `!'
	from single-quoted strings after extracting them.

Sat Feb 24 13:40:12 1990  Brian Fox  (bfox at gnuwest.gnu.org)

	* parse.y:read_token (); backslash doesn't quote inside
	of single quotes.  Esp. newline.

Tue Jan 30 09:23:13 1990  Brian Fox  (bfox at sbphy.ucsb.edu)

	* cpp-Makefile, machines.h, config.h:  HAVE_SETLINEBUF define is
	defined or not in machines.h.

	* shell.c: main (); Line buffer stdout as well as stderr.

	  builtins.c: type_builtin (), jobs_builtin (), alias_builtin (),
	  cd_builtin (), dirs_builtin ().  fflush (stdout) after printing.

	  jobs.c: pretty_print_job (); fflush (stream) after printing.

Sat Jan 20 12:02:41 1990  Brian Fox  (bfox at sbphy.ucsb.edu)

	* unwind_prot.c: run_unwind_protects_internal () -- don't
	run a non-existant function, like when the element is a
	catch frame marker.

Fri Jan 19 16:57:31 1990  Brian Fox  (bfox at sbphy.ucsb.edu)

	* variables.c: getenv () now calls find_tempenv_variable () first
	to find the most recent exported variable.

	* variables.c: find_tempenv_variable () -- new function.  Makes a
	shell variable if one exists in the temporary environment for a
	command and returns that, or NULL otherwise.  Used in
	set_or_show_attributes (), found in builtins.c.  This specifically
	allows shell builtins to get the value of variables in the local
	environment for this command.

	* parse.y: pre_process_line ().  Don't do any preprocessing if
	history_exapnsion_inhibited is on.  builtins.c: parse_and_execute
	().  Save and restore the value of history_expansion_inhibited,
	not of history_expansion.  In this way, .bashrc files can set or
	clear this flag with "set +o".

Thu Jan 18 19:52:02 1990  Brian Fox  (bfox at sbphy.ucsb.edu)

	* builtins.c: All builtins use builtin_error () instead of
	report_error ().  All builtins have a return value.
	get_numeric_value () no longer takes FOR_WHOM argument.  The value
	is now taken from THIS_COMMAND_NAME.  Ditto for no_args ().

	* builtins.c: new function builtin_error () is similar to
	report_error (), but can never exit the shell, and uses the value
	of this_command_name in reports.

Fri Jan  5 11:12:31 1990  Brian Fox  (bfox at sbphy.ucsb.edu)

	* variables.c: initialize_shell_variables ().  Added new variable
	HOSTTYPE which contains the machine type that this shell is
	compiled on.  Also affected Makefile for additional define and
	rule for variables.c.

	* parse.y: pre_process_line ().  In the case of ALIAS not being
	defined, a non-malloced string could be returned.  Fixed by
	calling savestring (line) in that case.

	* execute_cmd.c: do_redirections (), do_redirect ():
	  Added noclobber variable.  If set redirections are
	  not allowed to overwrite existing files.  Also affected subst.c:
	  stupidly_hack_variables.

Thu Jan  4 11:51:25 1990  Brian Fox  (bfox at sbphy.ucsb.edu)

	* builtins.c: pushd_builtin (), popd_builtin ().  If variable
	"pushd_silent" exists don't print out new directory after cd'ing.
	Allow pushd and popd to take "-NUM" args -- they count back from
	the end of the list.

Wed Jan  3 11:42:30 1990  Brian Fox  (bfox at sbphy.ucsb.edu)

	* Gave variables two cells; one for value, one for functions.
	  This modifies a large number of files.  The function cell of
	  a variable is addressed with "function_cell (var)"; this can be
	  a LHS.   The value cell is addressed with "value_cell (var)".
	  There is no more att_function; you can still check to see if the
	  variable has a function value with function_p (var).

Mon Sep  4 18:30:33 1989  Brian Fox  (bfox at aurel)

	* copy_command.c: copy_command ().  Don't forget to copy
	  the command redirections.

Sun Sep  3 08:23:04 1989  Brian Fox  (bfox at aurel)

	* readline.c: update_display ().  Fixed printing of initial
	  character on line twice bug. 

Fri Sep  1 18:52:08 1989  Brian Fox  (bfox at aurel)

	* readline.c: rl_insert ().  Optimized for large amounts
	  of typeahead.  Insert all insertable characters at once.

	* I update this too irregularly.
	  Released 1.03.

	  jobs.c: stop_pipeline ().  If THE_PIPELINE is null, don't
	  try to install it as a job.

	  execute_command.c: execute_simple_command ().  Fixed call
	  to stop_pipeline () by adding required arguments.

	  parse.y: yy_error (), new function report_syntax_error ().
		   CASE case uses report_syntax_error ().
	  shell.c: main (). If the input to the shell is a command file,
	  then remember the name of the file in with_input_from_stream ().

Tue Aug  8 18:11:54 1989  Brian Fox  (bfox at aurel)

	* general.c: strindex () now placed there.  Static version
	  is in readline.c.

	* execute_cmd.c: If the shell is to read a file as commands,
	  and the file appears to contain non-ascii characters, then
	  complain about it being a binary file.

Sun Aug  6 13:07:41 1989  Brian Fox  (bfox at aurel)

	* unwind_prot.c: Added tag based unwind frames.
	  begin_unwind_frame ("foo");
	    add_unwind_protect (free, data);
	    add_unwind_protect (free, data);
	    ...
	  run_unwind_frame ("foo");

	* readline.c: Added input buffer management, and event
	  input.
	  rl_event_hook, if non-zero, is the address of a function to
	  call repeatadly while polling for input.

	  rl_stuff_char (char) pushes CHAR onto input ring.

	  rl_get_char (&char) (when returning non-zero) pops the front of
	  the input ring, placing it into CHAR (an int).

	  rl_gather_tyi () puts characters into input ring if available.

	* execute_cmd.c: execute_simple_command (): even when a function
	  is being piped we need to set return_catch_flag.

Sat Aug  5 08:32:05 1989  Brian Fox  (bfox at aurel)

	* variables.c: make_var_array (), initialize_shell_variables ()
	  Added exporting of functions.

	* read_builtin (): reads characters singly from stdin, allowing
	  backslash-newline to pass.

	* test.c: use access () instead of opening files.

	* numerous files, parse_and_execute (), with_input_from...
	  Added stream_name to contents of pushed and popped streams,
	  and to functions that push and pop streams.  yyerror () uses
	  this to aid in reporting errors.

Fri Aug  4 12:35:08 1989  Brian Fox  (bfox at aurel)

	* copy_cmd.c copy_redirect (): case of r_read_until falls through
	  to copy the actual here-document.

Wed Aug  2 11:47:50 1989  Brian Fox  (bfox at aurel)

	* builtins.c:cd_builtin (): if the shell variable "cdable_vars"
	  exists, and the directory specified cannot be changed to, either
	  first with CDPATH or directly, the the directory name is looked
	  up in the list of shell variables.  If it exists, and is a
	  string, then that value is tried.

	* test.c: moved `!' operator to term () from expr ()

Tue Aug  1 16:03:32 1989  Brian Fox  (bfox at aurel)

	* execute_cmd.c, builtins.c: global variable return_catch_value
	  now contains the value of `return' calls.

	* parse.y: current_readline_prompt gets NULL after it is freed.

Sun Jul 16 07:51:46 1989  Brian Fox  (bfox at aurel)

	* test.c: Added -S to test for file being a socket.
	  builtins.c: Added documentation for -S test.

	* execute_cmd.c: execute_case_command ()
	  The clause patterns are now expanded before being
	  matched against.

Tue Jul 11 05:30:58 1989  Brian Fox  (bfox at aurel)

	* parse.y:yy_readline_get ()
	  Fixed bug with readline returning EOF.

	* All files
	  Changed #ifndef NOJOBS to #ifdef JOB_CONTROL.

Sat Jul  8 05:02:39 1989  Brian Fox  (bfox at aurel)

	* parse.y
	  New command type `Group' is for running commands in `{}'.  This
	  allows all of the commands to be piped at the same time.

Wed Jun 28 16:51:42 1989  Brian Fox  (bfox at aurel)

	* New directory: LIB contains readline and history stuff,
	  and is Make-able on its own.  Also contains its own
	  ChangeLog.

	* history.c: removed shell dependent stuff, made into module
	  in readline library.

Tue Jun 27 13:05:54 1989  Brian Fox  (bfox at aurel)

	* readline.c: removed shell dependent stuff.

	* New file: bashline.c contains all of the shell specific
	  readline material in an attempt to begin using the
	  readline stuff as a library.


Mon Jun 26 13:35:16 1989  Brian Fox  (bfox at aurel)

	* parse.y
	   Fixed problem in read_token () which prevented '{' from
	   being recognized after "c () {".  Changed
	   reserved_word_acceptable () to know about `{' as precursor
	   to commands.

	* readline.c, jobs.c
	   Make commands that do not complete sucessfully restore the
	   tty state to whatever it was before the command was executed.
