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.