8 - don't automatically use GNU malloc on FreeBSD, the builtin one
9 is supposed to be better (but doesn't have the debugging hooks)
12 - check that full_pathname(command) doesn't return NULL because of
13 inaccessible parent directories
19 - broke the code that opens a file for output redirection when in
20 noclobber mode out into a separate function: noclobber_open().
21 This tries to avoid race conditions and file replacement between
25 - make sure pat_subst does not run off the end of its return
26 string when copying the unmatched portion of the input string
31 - don't install readline.3 by default
34 - removed an unnecessary check for string[i] being non-null in
39 support/config.{sub,guess}
40 - merged in changes from config.sub in autoconf-2.12 distribution
42 lib/readline/readline.c
43 - in rl_newline, only call _rl_vi_done_inserting and _rl_vi_reset_last
44 if readline is currently in vi mode
46 lib/readline/display.c
47 - corrected a misuse of inv_lbreaks where vis_lbreaks was wanted in
48 the code that decides whether the cursor is at the beginning of
49 an otherwise-empty line
54 - fixed a typo, thanks to eggert@twinsun.com
57 - new test, BASH_STRUCT_DIRENT_D_FILENO, testing for d_fileno member
61 - call BASH_STRUCT_DIRENT_D_FILENO
64 - new #define for STRUCT_DIRENT_HAS_D_FILENO
66 lib/posixheaders/posixdir.h
67 - only define d_fileno as d_ino if STRUCT_DIRENT_HAS_D_INO is defined
68 and STRUCT_DIRENT_HAS_D_FILENO is not defined. This fixed the
69 problem of compiling getcwd.c on SunOS4.1.4 with cc
73 lib/readline/complete.c
74 - fix a memory-used-after-freed bug reported by Andreas Schwab
77 - call BASH_CHECK_SOCKLIB only if getpeername is not found in libc
78 (ac_cv_func_getpeername = no)
84 - change #define guard to _SH_GETOPT_H to avoid similar guards in
85 /usr/include/getopt.h (Dec OSF/1 4.x, for example)
88 - fix assign_array_from_string so that it rejects attempts to assign
92 - fix verify_substring_values to handle offsets that are past the
93 end or before the beginning (in the case of a negative offset)
94 of the expanded variable value
99 - fix a problem where any completion after a `cmd` command
100 substitution would inappropriately attempt command completion,
101 even if the previous command substitution was correctly closed
103 builtins/evalstring.c
104 - unwind_protect remember_on_history even if the shell is not
105 interactive, since history can now be used in scripts, and
106 `source' will turn off interactive_shell before calling
110 - new function get_job_by_pid(pid, block) to translate a pid to
111 a job number. The block argument says whether or not to block
115 - new extern declaration for get_job_by_pid
118 - call get_job_by_pid if an argument appears to be a pid rather
122 - configure --without-gnu-malloc automatically on MachTen 4.x
125 - change to mindist() so that a best guess of `.' returns 3,
126 which means not reasonable
128 lib/posixheaders/memalloc.h
129 - changed hpux_9 to __hpux, since the new config stuff doesn't
133 - fix parameter_brace_patsub to handle null patterns (doesn't
137 - slight change to bzero replacement
140 - changed TEMP to be /tmp/bbug.$$ as a sop to systems with 14-char
144 - add note to POSIX Mode section that the output of `set' when
145 invoked without arguments is sorted when in POSIX mode
150 - a couple of changes prompted by a `gcc -Wall'
153 - changed ASSIGN_RETURN macro to use the do...while(0) idiom to
154 avoid problems with its multiple statements
157 - a bad identifier given to readonly or export without an assignment
158 statement (e.g. `readonly a[5]') is an error, but not an assignment
159 error (i.e., return EXECUTION_FAILURE rather than EX_BADASSIGN)
161 tests/{{array,new-exp}.,tilde-}tests
162 - added `set +o posix' at the beginning to disable POSIX mode, which
163 causes some of the tests to fail. Some systems (e.g. LINUX-FT),
164 set POSIXLY_CORRECT by default
167 - added a warning if $UID is 0 to the effect that the test suite
168 should not be run as root
169 - worked around the `noread' and `nowrite' tests failing when run
173 - began removing the remains of the STANDALONE code, since test is
174 included in GNU shellutils
178 lib/readline/{readline,display}.c
179 - a couple of slight changes to build on Win95 using djgpp (reported
180 by x-aes@telelogic.se)
183 - changed TERMCAP_LIBDIR to TERM_LIBDIR, so building the termcap
184 library (if necessary) should work now
187 - new function: quote_word_break_characters(), to backslash-quote
188 characters in a filename that the readline completion code would
190 - change bash_quote_filename to call quote_word_break_characters if
191 the completion quoting style says to use backslashes
192 - add `:' to rl_filename_quote_characters, since it's part of
193 filename_word_break_characters
195 lib/posixheaders/posixjmp.h
196 - new file, with half of bashjmp.h
197 - posixjmp.h and lib/readline/posixjmp.h are symlinks to this file
200 - include "posixjmp.h" for possible redefinitions of setjmp/longjmp
206 - bad options now cause the standard shell usage message (a subset
207 of what `bash --help' prints) to be displayed on stderr
210 - don't free the trap command for a DEBUG trap in
211 restore_default_signal if SIG_INPROGRESS is set -- there's already
212 a pointer saved to the old value in _run_trap_internal. This
213 makes bashdb run better, too
215 examples/bashdb/bashdb.{pre,fns}
216 - a couple of minor fixes; it actually has a chance of working now
221 - add a define for <dlfcn.h>, HAVE_DLFCN_H
224 - look for <dlfcn.h>, define HAVE_DLFCN_H if found
227 - include <dlfcn.h> only if HAVE_DLFCN_H is defined
229 lib/readline/display.c
230 - renamed clear_to_eol to _rl_clear_to_eol and made it global, so
231 other library files (readline.c) can use it
232 - new function _rl_clear_screen, to clear the screen with the right
233 termcap escape sequence
235 lib/readline/readline.c
236 - call _rl_clear_to_eol and _rl_clear_screen instead of using tputs
237 - extern declarations for _rl_clear_to_eol and _rl_clear_screen
242 - fixed a problem in make_default_mailpath() where a slash was not
243 added between the default mail directory and the username
248 - added a fourth parameter to ansicstr: the length of the returned
252 - changed declaration of ansicstr
255 - changed call to ansicstr -- saves a call to strlen
258 - changed call to ansicstr
259 - if do_v9 is non-zero, use putchar to output the string instead
260 of printf, since there may be embedded NULL characters
262 doc/{bash.1,bashref.texi}, builtins/trap.def
263 - modified the `trap' documentation to make it clearer that trap
264 takes multiple signal specs as arguments
266 jobs.c, nojobs.c, jobs.h
267 - renamed initialize_jobs to initialize_job_control, added an
271 - set shell_tty to fileno(stderr) in initialize_job_control if
272 the shell is not interactive. This fixes the problem of bad
273 tty pgrps when monitor mode is turned on in a non-interactive
277 - made initialize_terminating_signals do only that; moved the rest
278 of the code that used to be there into a new function:
279 initialize_shell_signals, which calls initialize_terminating_signals
280 if the shell is interactive
281 - initialize_terminating_signals is now extern
282 - made reset_terminating_signals return immediately if
283 termsigs_intitialized is zero, meaning that
284 initialize_terminating_signals has not been called
287 - new extern declaration for initialize_terminating_signals
290 - call initialize_terminating_signals from set_signal if sig is
291 EXIT_TRAP and the shell is not interactive. Since the terminating
292 signals do not need to be initialized until a trap on exit is
293 set, not doing that at startup should result in a speed increase
297 - save and restore command->flags in time_command, so you can use
298 `time command' in a loop
302 lib/readline/display.c
303 - fix redisplay code to wrap correctly if the prompt is longer than
304 the screen width (reported by bos@Eng.Sun.COM)
307 - don't include <setjmp.h>, it's not needed
309 lib/readline/{util,readline}.c
310 - include "posixjmp.h" instead of <setjmp.h>
311 - readline_top_level is now a `procenv_t' instead of a `jmp_buf'
312 (now readline uses the correct posix semantics for preserving
313 the signal mask and other things across longjmp)
316 - fixes to push_string/pop_string to make them more general -- they
317 now can be used generally, instead of having to be associated
318 with an alias being expanded
319 - fixes to the parser so that it parses (( ls abc; ls def); ls ghi)
320 as a nested subshell command for backwards compatibility. Broke
321 the double-paren expression parsing off into a new function:
322 parse_arith_cmd, called from read_token when a `((' is seen. If
323 it looks like an arithmetic command, return `let' and set things
324 up so that the expression is returned as a double-quoted string
325 by the next call to read_token. If it's a nested subshell, push
326 the text we parsed onto the list of strings for later consumption
330 - fix glob_vector so it doesn't short-circuit checking a filename if
331 it starts with a `.' and the pattern starts with `\.' (if
332 noglob_dot_filenames is set). This makes `".junk2"*' match
333 `.junk2.txt' correctly
338 - ask for confirmation before sending the bug report
341 - when editing and re-executing a multiline command, make sure
342 current_command_line_count is initialized and then incremented
343 for each line read from the file so that the lines added to
344 the history list by fc_replhist and fc_addhist obey the `lithist'
345 and `cmdhist' shopt options. Reported by tibbitts@pb.seflin.org
349 lib/readline/readline.h
350 - added a couple of extern declarations for variables described in
351 the documentation but heretofore undeclared
354 - try to catch some classes of integer overflows before calling
360 - push and pop a `(' delimiter while parsing a $(...) construct, so
361 the history code doesn't try to inappropriately add a `;' when
362 a newline appears in the `...'
365 - new macro, BASH_STRUCT_WINSIZE, which looks for `struct winsize'
366 in <sys/ioctl.h> (or one of the files it includes)
369 - call BASH_STRUCT_WINSIZE
370 - slightly reorganized the calls to bash-specific macros
373 - add an `#undef STRUCT_WINSIZE_IN_SYS_IOCTL'
376 - only look in sys/ptem.h for struct winsize if
377 STRUCT_WINSIZE_IN_SYS_IOCTL is not defined to cpp
381 .{distribution,patchlevel}
382 - renamed to _{distribution,patchlevel}
385 - create a variable BASHVERS, from the contents of _distribution,
386 and a variable BASHPATCH, from the contents of _patchlevel,
387 (using m4 magic so we don't have to distribute .distribution
388 and .patchlevel) and substitute them into Makefile.in
391 - use Version and PatchLevel variables instead of the contents of
392 .distribution and .patchlevel, respectively. These are set by
394 - removed `.machine' from targets and dependencies
397 - new shell script to handle updating version.h, replaces mkversion.c
398 (which is now overkill)
401 - don't bother with writing .distribution and .patchlevel files,
402 since they're no longer distributed
405 - simple bash script to make new version files. It can increment
406 the major or minor version numbers or patchlevel, or take a
407 completely new version number (e.g., 2.01) as an argument
410 - added support for the `install-info' command to update the info
411 directory file after installing bash.info
416 - fix core dump with `help --'
419 - make call_expand_word_internal obey the convention that if
420 expand_word_internal returns &expand_word_{fatal,error}, then
421 w->word has already been freed
422 - return &expand_word_fatal from expand_word_internal if the shell
423 is not interactive and `set -u' has been executed
426 - moved group_member from test.c to general.c
429 - moved extern declaration of group_member from externs.h to general.h
432 - broke the code that initializes the group array out into a new
433 function, initialize_group_array()
434 - initialize_group_array() now initializes an array even if the OS
435 does not have getgroups(). If it does not, an array with one
436 element (the real gid) is created
437 - call sysconf(_SC_NGROUPS_MAX) if sysconf is available and
438 _SC_NGROUPS_MAX is defined
439 - new function, char **get_group_list(int *), to return an array
440 of strings made from the groups list
443 - new dynamic array variable: GROUPS, expands to the group set as
444 obtained with getgroups() (or whatever initialize_group_array()
447 doc/{bash.{1,html},bashref.texi}
448 - added description of GROUPS variable
451 - before modifying the setgid bit on /tmp/setgid, try to change its
452 group to ${GROUPS[0]}
457 - new autconf macro, BASH_MISC_SPEED_T, to see if speed_t is defined
461 - call BASH_MISC_SPEED_T
464 - add `#undef SPEED_T_IN_SYS_TYPES'
467 - include `rltty.h' if HAVE_TERMCAP_H and __linux__ are defined, but
468 SPEED_T_IN_SYS_STYPES is not, before including <termcap.h>
470 support/mksignames.c, siglist.c
471 - add support for 4.4 BSD SIGLOST
474 - add support for recognizing QNX based on `uname' output
477 - make sure recho and zecho are compiled with the same set of CC
478 options as the rest of the sources
481 - change calls to rl_generic_bind to cast the third argument to
482 (char *) where necessary
485 - two new flags: CMD_AMPERSAND (currently unused), and CMD_STDIN_REDIR,
486 which means that this command should have its standard input
487 redirected from /dev/null if there are not any explicit redirections
491 - a redirection of type r_inputa_direction is no longer added at the
492 beginning of the redirection chain for an async command;
493 CMD_STDIN_REDIR is set in the flags instead
494 - new function: stdin_redirects: returns the number of redirections to
495 stdin in a chain of redirections
496 - new functions: async_redirect_stdin() to open /dev/null and make it
498 - changes to make CMD_STDIN_REDIR propagate to all of the necessary
499 functions (like execute_simple_command)
500 - execute_disk command now takes the flags from simple_command rather
501 than just the CMD_NO_FORK flag as its last argument
502 - various places after make_child is executed (in the child) check for
503 CMD_STDIN_REDIRECT (and no stdin redirections or piping) and call
505 - stdin_redir is now global
508 - set stdin_redir to 0 just before calling execute_command so it
509 gets reset to a known value and doesn't persist across commands
514 - add a stub function for ulimit(2) on systems without HAVE_RESOURCE
515 or HAVE_ULIMIT that just sets errno to EINVAL and returns -1 --
516 QNX is one such system
519 - pre_process_line needs to protect all occurrences of hist_verify
523 - hist_verify needs to be protected with #ifdef READLINE, not
528 support/config.{guess,sub}, configure.in
529 - chages to better support the Harris Night Hawk
532 - changes for things pointed out by gcc -Wall
535 - make sure -DSHELL is included in CCFLAGS so that globbing is
539 - extern declaration for botch: if botch is #defined, it should be
540 the name of a void function
542 configure.in,Makefile.in,builtins/Makefile.in,
543 lib/{glob,malloc,readline,tilde}/Makefile.in
544 - add a LOCAL_DEFS variable, substituted from configure into the
545 various Makefiles. It's set to -DSHELL, so that define gets
546 passed to all sub-makes without doing anything special
548 lib/readline/readline.c
549 - change to rl_digit_loop to make it compatible with GNU emacs:
550 if a key bound to `universal-argument' is read after reading
551 some digits, it terminates the argument but is otherwise
552 ignored. This is how people can insert repeated digits
554 doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
555 - changed description of `universal-argument' to describe how
556 to terminate a numeric argument
561 - changed kill_pid to diddle the job and process data structures
562 if we're sending SIGCONT to a stopped job with `kill' so that
563 the shell knows the job is running again. ksh93 does this
568 - changed bcopy to FASTCOPY
571 - changed pointer arithmetic in delete_builtin to just subtract
572 the head of the builtins list (shell_builtins) from a pointer
573 to the builtin to be deleted (b) to find its index in the list
579 - when using old-style keynames to bind to a new-style macro,
580 pass an array of type (unsigned char *) to rl_macro_bind
583 - change sh_getopt to return EOF if nextchar is empty or NULL
584 and sh_optind is greater than argc. This can happen if a
585 script mixes calls to `getopts' with calls to `shift'
590 - fixed make_command_string_internal so that commands with the
591 CMD_TIME_POSIX flag set print `time -p' instead of `time'
592 - changed print_redirection_list so the here documents are
593 printed after all the other redirections, and followed by a
594 newline (rather than a possible semicolon)
595 - added a new variable, was_heredoc, to avoid adding a semicolon
596 at the beginning of an empty line after printing the heredoc
600 - don't put the gnu_argv_flags into the environment any more; it's
601 proven to be a bad idea
604 - set LOCAL_CFLAGS to `-DSunOS5' on Solaris 5.5[.x]
607 - only call fflush() after printing each word on SunOS 5.5, since
608 that's the system with the bug that prompted its inclusion in
612 - added support for more system-specific signals from AIX 4.2,
613 changed initialization order so that system-specific signals
614 are done first, before the common signals
619 - broke the code that creates a file containing the text of a
620 here document out into a separate function: here_doc_to_fd
621 - create the temp file used for a here document with mode 600
622 - open the temp file used for a here document with O_EXCL
625 - changed the uid members of struct user_info to be of type uid_t
626 and the gid members to be of type gid_t
629 - changed the type of the `type' argument to init_yy_io() to be
630 `enum stream_type', since that's what's always passed
633 - changed the function prototype for init_yy_io so the third arg is
634 type `enum stream_type'
637 - added a prototype for getcwd, if HAVE_GETCWD is not defined
640 - changed all variables that are used as arguments to or save the
641 return value from umask(2) to be of type mode_t
642 - changed print_symbolic_umask to take an argument of type mode_t
647 - if old_sigint_handler is set to SIG_DFL, as it will be in a script
648 without a trap on SIGINT installed, call termination_unwind_protect()
649 directly from waitchld()
654 - added a section before the call to BASH_CHECK_LIB_TERMCAP to
655 set a variable prefer_curses on some systems (AIX, for one)
658 - in BASH_CHECK_LIB_TERMCAP, don't return -ltermcap if $prefer_curses
661 lib/readline/Makefile.in
662 - redid the dependencies
667 - include `bashansi.h' instead of stdlib.h and string.h
669 error.c, siglist.c, xmalloc.c, builtins/{common,evalfile,mkbuiltins,psize}.c,
670 builtins/{exec,exit,fg_bg,hash,history}.def
671 - include `bashtypes.h' instead of directly including <sys/types.h>
674 - include ../bashtypes.h and ../posixstat.h instead of bashtypes.h
677 builtins/mkbuiltins.c
678 - include ../posixstat.h instead of <sys/stat.h>
681 - include `bashtypes.h' if RLIMTYPE is defined, so we can fetch
682 a definition of quad_t (or whatever) from <sys/types.h> before
683 using it in a function prototype
685 Makefile.in, builtins/Makefile.in
686 - updated dependencies
691 - new function, set_posix_mode, called when `set [-+]o posix'
692 or `shopt -[su] -o posix' is executed. It sets or unsets
693 $POSIXLY_CORRECT and calls sv_strict_posix
696 - in sv_strict_posix, call posix_readline_initialize only if
697 the shell is interactive (interactive_shell != 0)
700 - if we are acting like `sh', call posix_readline_initialize
701 if the shell is interactive
702 - moved the code that does posix.2 mode initialization after
703 interactive_shell is set, and call posix_readline_initialize
704 if interactive_shell is non-zero
707 - renamed to unionwait.h, since that is what it defines
710 - moved the POSIX 1003.1 job control defines here from jobs.h
713 - include `posixwait.h'
718 - if SHELL is defined, pass the contents of new-style command
719 substitution through without expanding brace constructs between
720 the parens -- let the subshell do it
723 - when brace-expanding words, preserve the flags (word->flags) if
724 brace expansion does not change the word. This fixes the problem
727 local -a avar=( ${PATH//: } );
730 - have shell_expand_line pass a copy of rl_line_buffer to expand_string
731 in case there are substitution errors and the string gets freed
736 - make sure that expland and explor set `lasttok' to LAND and LOR,
737 respectively, if they parse `&&' or `||'. This makes the
738 precedence code work right
741 - changes so that non-interactive shells exit immediately when a
742 parameter that is unset is referenced after `set -u' has been
743 executed causes the shell to exit immediately
748 - if `set -r' is executed, call maybe_make_restricted so that $PATH
749 and $SHELL are made read-only
752 - if `set -e' has been executed, and we're inverting a pipeline's
753 return status with `!', set CMD_IGNORE_RETURN so a failing
754 command does not inadvertently cause the shell to exit before
755 the exit status can be inverted. This is probably only a problem
756 with the `eval' builtin.
761 - add a missing argument of 0 to add_hashed_command
764 - job identifiers can be used in non-interactive shells as long as
765 job control has been turned on with `set -m'
768 - we want to be notified of stopped jobs if job_control is non-zero,
769 even if the shell is not interactive
772 - make sure shell_execve returns EX_NOTFOUND if execve fails and
773 errno is set to ENOENT
774 - makes sure execute_builtin saves the temporary environment to
775 builtin_env for the `eval' builtin, since it can destroy the
776 temporary environment when it calls parse_and_execute
779 - new variable: hist_last_line_added, set to 1 if the last command
780 line was added to the history successfully as a separate entry.
781 Used by `history' and `fc'
786 - save line number before executing trap command, because
787 parse_and_execute resets it to 1 and the trap command might
791 - change to executing_line_number to return trap_line_number if
792 the shell is currently running a trap
797 - change to time_command so that a `real' value of 0 does not
798 cause a divide-by-zero error when computing cpu percentage
800 lib/readline/signals.c
801 - if MUST_REINSTALL_SIGHANDLERS is defined, reinstall the SIGWINCH
802 handler in rl_handle_sigwinch
805 - `unset' now rejects attempts to unset names that are not valid
806 shell identifiers as errors
807 - add a description of `-o history' option to help text
810 - in parameter_brace_patsub, we want backslash removal done on
811 the replacement if (mflags & MATCH_QUOTED), since the code
812 in expand_word_internal will not do it. We need to call
813 expand_string_unsplit directly, since maybe_expand_string does
814 not do the right thing
819 - if execute_for_command finds that the iteration variable is readonly,
820 decrement loop_level before returning
823 - if the break count is <= 0, display an error message and break out
827 - if PATH is unset, and we're using command -p, we don't want PATH
828 to be set to the empty string when `command' completes
831 - POSIX.2 says `kill -l signum' prints the signal name without the
832 leading `SIG' prefix, so check for this_shell_builtin == kill_builtin
833 in display_signal_list
836 - when invoked without any arguments, `getopts' now prints a usage
842 - add a second argument to get_numeric_arg: if non-zero, the shell
843 exits on a bad argument; if not, the shell jumps to top_level
844 with a DISCARD argument, which aborts the current command
846 builtins/{break,exit,history,return,shift}.def
847 - change calls to get_numeric_argument
849 lib/readline/funmap.c
850 - add `dump-macros' to list of bindable names
852 lib/readline/readline.h
853 - added extern declaration for rl_prompt (it was apparently missing)
855 lib/readline/readline.c
856 - new internal function, _rl_init_line_state, which sets rl_point
857 and rl_end to 0, sets the_line to point to _rl_line_buffer, and
860 lib/readline/callback.c
861 - if a user's callback function does not clear the line, clear it
862 for him by calling _rl_init_line_state
867 - made the readline support functions #ifdef READLINE, so they're
868 not compiled into the shell unless readline is
871 - new function _rl_untranslate_macro_value, to expand meta-prefixes
872 and other special characters in a macro value for printing by
873 _rl_macro_dumper_internal
874 - call _rl_untranslate_macro_value in _rl_macro_dumper_internal to
875 get a printable version of the macro value
877 lib/readline/readline.c
878 - new variable, rl_dispatching, set to 1 when we call a function
881 lib/readline/readline.h
882 - extern declaration for rl_dispatching
884 lib/readline/complete.c
885 - make sure S_ISCHR and S_ISBLK are defined before using them
887 lib/readline/terminal.c
888 - add a new #define NEED_EXTERN_PC. Define this if the termcap
889 or curses libraries need `extern' before declarations of PC,
892 lib/readline/{readline,terminal,histfile}.c
893 - changes to compile on OS/2 with OS/2 `EMX' port of gcc, originally
894 sent by ilya@math.ohio-state.edu
897 - fixed a bug in set_shellopts that caused the shell to crash if
898 there were no shell options set
902 configure.in,Makefile.in
903 - choose run-all or run-minimal as the test script based on whether
904 the --enable-minimal-config option was given to configure
907 - fixed `export -p' and `readonly -p' so that they output `export'
908 or `readonly' when in POSIX mode, as POSIX.2 specifies
913 - make `readonly -a var=(...)' work just like `declare -ar var=(...)',
914 since the two logically mean the same
915 - `readonly -f' and `export -f' don't print the function definition
916 for each readonly or exported function, respectively, when in
920 - don't report status for processes killed by SIGPIPE if
921 DONT_REPORT_SIGPIPE is defined
924 - added a commented-out define for DONT_REPORT_SIGPIPE
927 - `time' can now be used to time background pipelines, and reports
928 the timing statistics when the pipeline completes
930 [bash-2.01-alpha1 frozen]
935 - move the parent end of the pipe file descriptor used for process
936 substitution to a high, unused file descriptor to avoid clashes
937 with redirections performed explicitly by a script
940 - added a `--with-curses' argument so curses can be forcibly chosen
941 over libtermcap (some Unix versions ship lousy termcap databases)
944 - new script to create _distribution and _patchlevel from values
945 contained in `configure'
948 - updated installation instructions
953 - if `getgroups' returns 0, make sure we add the primary group id
955 - if we have getgroups, and the primary gid is not in the array
956 getgroups returns, add it as group_array[0] and shuffle everything
957 up one element. This ensures that current_user.gid == group_array[0]
961 - changes to avoid stray variables in environment when the shell
962 version of printenv is used with bash as /bin/sh, running the
968 - spelling correction is no longer enabled by default
971 - if the shell's release status is alpha or beta, offer the option
972 of sending the bug report to the bash-testers mailing list as
978 - configure --without-gnu-malloc by default on *-sgi-irix6* because
979 their code needs 8-byte alignment
982 - ``' needs to be quoted with a backslash in double-quoted strings
985 - slight changes to the strcoll test, since AIX 4.2 returns -1, 0, or
986 1 from strcmp(3) but a numeric collation order difference from
992 - new redirection error code: HEREDOC_REDIRECT
995 - return HEREDOC_REDIRECT from do_redirection_internal when
996 here_document_to_fd cannot create the temp file for a here document
997 - changed redirection_error to print a meaningful message when
998 here document temp file creation fails (HEREDOC_REDIRECT)
1003 - changes to match_pattern_char: return 1 if the first char of the
1004 pattern is `?' only if the string is non-null; just return 1 if
1005 the first char of the pattern is `[' and the string is non-empty
1006 rather than try to re-implement the brace matching code from fnmatch
1009 - some changes from glibc-2.0.1 posix/fnmatch.c
1014 - only do the initialization of `ignoreeof' if the shell is
1016 - reset values of $SHLVL > 1000 to 1 in adjust_shell_level, and
1017 don't call itos, since we don't need its generality
1018 - new function, initialize_shell_level, just calls adjust_shell_level
1019 with argument of 1. If $SHLVL is unset, adjust_shell_level will
1020 deal with it correctly
1021 - change initialize_shell_variables to not malloc a copy of each
1022 environment variable, just keep two pointers into the env string:
1023 one for the name, one for the value
1024 - broke the code that computes the value of $BASH out into a separate
1025 function: get_bash_name
1026 - get_bash_name special-cases shell_name with a `./' prefix when
1028 - new function: set_home_var, sets $HOME to current_user.home_dir if
1029 it's not already set, calling get_current_user_info if
1030 current_user.home_dir is NULL
1031 - new function: set_shell_var, sets $SHELL to current_user.shell if
1032 it's not already set, calling get_current_user_info if
1033 current_user.shell is NULL
1034 - changed places that reference information in current_user to check
1035 for NULL values of the member they're interested in and call
1036 get_current_user_info if necessary
1039 - moved the code that sets up the information in current_user that
1040 comes from the password file into a new function,
1041 get_current_user_info
1042 - shell_initialize calls get_current_user_info only if the shell is
1046 - new extern declaration for get_current_user_info(), so variables.c
1052 - if SHELL is defined, user the current_user struct info to find
1053 the user's home directory rather than calling getpwuid
1058 - don't try to open /dev/tty when getting or setting the tty state
1059 and window size; use shell_tty instead
1060 - initialize shell_tty to standard error in initialize_job_control
1061 - only fetch the tty state initially if the shell is interactive
1064 - open /dev/tty with the O_NONBLOCK flag
1067 - changed all_vars so that it sorts its output all the time, not
1068 just when in POSIX mode. This means that the output of `set'
1069 and `export' will be sorted
1072 - in initialize_shell_options, only call parse_shellopts if we
1073 inherited $SHELLOPTS from the environment
1074 - make sure we call parse_shellopts from initialize_shell_options
1075 with a copy of the value of SHELLOPTS, in case one of the functions
1076 called while setting one of the variables modifies $SHELLOPTS
1078 lib/readline/readline.c
1079 - make sure that digit arguments don't change the state of
1083 - new file, printenv(1) clone, used to avoid environment variables
1084 that might be set automatically when using printenv.sh
1087 - if SHELL is defined, don't call getenv to get the value of $HOME,
1088 call get_string_value () directly
1092 lib/readline/histexpand.c
1093 - abstracted the `#ifdef SHELL' stuff that checked for special cases
1094 that should not be history expanded ([!...], ${!...}) into a call
1095 to a function that is the value of the
1096 new history_inhibit_expansion_function variable
1098 lib/readline/history.h
1099 - extern declaration for history_inhibit_expansion_function
1102 - new function, bash_history_inhibit_expansion, which checks for
1103 the special cases in which history expansion should be inhibited
1104 - changes to the various history initialization functions to
1105 set history_inhibit_expansion_function
1107 lib/readline/doc/hstech.texinfo
1108 - documented history_inhibit_expansion_function
1110 lib/readline/shell.c
1111 - new file, containing versions of the functions that are provided
1112 by bash when readline is linked as part of bash
1113 - new function: get_env_value(). If SHELL is defined, this calls
1114 get_string_value(). If SHELL is not defined, this calls getenv()
1116 lib/readline/histexpand.c
1117 - moved single_quote() to shell.c
1120 - moved savestring() to shell.c
1122 lib/readline/terminal.c
1123 - moved set_lines_and_columns() to shell.c
1125 lib/readline/Makefile.in, Makefile.in
1126 - added shell.c and shell.o to the appropriate variables that contain
1127 the files comprising the readline and history libraries
1129 lib/readline/signals.c
1130 - introduced two new cpp defines: HANDLE_JOB_SIGNALS and
1131 HANDLE_SIGTERM. When HANDLE_JOB_SIGNALS is defined, SIGTSTP,
1132 SIGTTIN, and SIGTTOU are caught and handled. When HANDLE_SIGTERM
1133 is defined, SIGTERM is caught and handled. These are both
1134 defined automatically if SHELL is not defined
1136 lib/readline/{bind,histfile,nls,readline,terminal}.c
1137 - call get_env_value instead of getenv(). This should remove the
1138 dependency on being able to redefine getenv() in oslib.c
1141 - added a missing argument of -1 to the call to list_minus_o_opts.
1142 Now `bash -o' lists all options, not just random ones depending
1143 on what's on the stack
1148 - change RLIM_INFINITY to the hard limit only if the hard limit is
1149 greater than the current (soft) limit
1152 - return immediately from flush_hash_table if the hash table passed
1158 - remove call to initialize_filename_hashing -- initialize the hash
1159 table the first time a hashed command has to be remembered
1162 - new file, with functions to perform filename hashing and lookup
1163 taken from builtins/hash.def and builtins/common.c
1164 - change to remember_filename -- call initialize_filename_hashing
1165 if hashing_initialized is 0
1168 - new file, mostly from builtins/hashcom.h, with extern function
1171 execute_cmd.c, builtins/{hash,type}.def
1172 - include hashcmd.h for hash function and type definitions
1174 builtins/{common.{c,h},hash.def}
1175 - moved hashing functions and declarations to hashcmd.c/hashcmd.h
1177 Makefile.in, builtins/Makefile.in
1178 - changed source and object file definitions and dependencies because
1179 of addition of hashcmd.h and hashcmd.c
1182 - return immediately from print_hashed_commands if hashed_commands
1183 is empty, indicating that the hash table has not been initialized
1188 - fixed translation of ESC in rl_untranslate_keyseq and
1189 rl_untranslate_macro_value
1191 lib/readline/{readline,kill}.c
1192 - added an argument to _rl_fix_point telling it whether or not to
1193 fix up the mark also; changed calls to _rl_fix_point to add the
1194 appropriate argument
1197 - changed the substitution delimiter in the `sed' commands that
1198 create bashbug from `:' to `%' to avoid conflicts with options
1204 - made the initial value and the default growth value for the
1205 printed command somewhat smaller -- we don't really need to
1206 allocate 4096 bytes for the printed command
1207 - added stdarg support to xprintf if PREFER_STDARG is defined
1210 - changed strip_trailing to take the index of the last character
1211 as the second argument, saving a (useless) call to strlen, since
1212 the caller already knows where the end of the string is
1215 - change call to strip_trailing in command_substitute to add the
1219 - changed extern declaration for strip_trailing
1223 Makefile.in, configure.in, lib/malloc/Makefile.in
1224 - changed the strategy for picking which `malloc' to include by
1225 having configure define a `malloc target' and the Makefile in
1226 lib/malloc implementing rules for that target
1231 - slightly changed the rules for remaking `parser-built': it is
1232 now a copy of y.tab.h, updated only when the contents of y.tab.h
1234 - everything that used to depend on y.tab.h now depends on
1239 execute_cmd.c, print_cmd.c
1240 - use #include <y.tab.h> so we pick up y.tab.h from the build
1241 directory instead of the source directory if it happens to be
1242 recreated in the build directory
1247 - fixed another problem with `pwd`/[TAB] thinking that the `/
1248 started an unclosed command substitution, generating errors
1253 - renamed bash_tilde_expansion_failure_hook to be
1254 bash_special_tilde_expansions, since that more accurately reflects
1256 - changed tilde_initialize so that there is no failure hook -- the
1257 special expansions are handled first with the preexpansion hook
1260 - new variable: tilde_expansion_preexpansion_hook -- if non-null, it
1261 points to a function that is called before standard tilde expansion
1265 - extern declaration for tilde_expansion_preexpansion_hook
1267 doc/{bash.{1,html},bashref.texi}
1268 - added optional open paren to description of `case' command syntax
1273 - on qnx, set and export a variable `NODE' which contains the QNX
1277 - QNX system can now handle pathnames with a leading `//'
1280 - added `-Dqnx' to LOCAL_CFLAGS on QNX machines
1282 lib/malloc/getpagesize.h
1283 - some systems need sysconf(_SC_PAGE_SIZE) to obtain the page size;
1284 added code to check for it
1289 - include the prototype for cprintf only if PREFER_STDARG is defined,
1290 otherwise just have a K&R-style forward function declaration
1293 - reduced the default number of buckets in a hash table to 53
1296 - prime the result string in tilde_expand by allocating a new string
1297 that's as long as the input string (+16 if a tilde appears in
1298 the string to be expanded). This should reduce the number of
1302 - broke the code that reads the output of a command substitution
1303 through the pipe to the subshell out into a separate function:
1304 read_comsub(). This does not use stdio, but rather reads
1305 directly from the pipe into a local 128-character buffer
1310 - some systems need both <sys/time.h> and <time.h>, so include both
1311 if it's possible, otherwise include <sys/time.h> (if present)
1313 lib/readline/rl{tty,defs}.h
1314 - moved includes of <sys/stream.h>, <sys/ptem.h>, etc. to rltty.h
1316 lib/readline/terminal.c
1317 - include rltty.h after rldefs.h
1320 - changes to make environment creation faster and use less memory
1321 (fewer malloc/free calls, too):
1323 o two new variables: export_env_index (how many environment
1324 strings are in export_env) and export_env_size (the
1325 number of slots for strings allocated in export_env)
1326 o added new function add_to_export_env, since adding the
1327 exported shell variables and shell functions does not
1328 need to search the export_env for a definition to supersede
1329 (we just cleared it out!)
1330 o renamed add_or_supersede to add_or_supersede_exported_var,
1331 since it always works on export_env, and changed the second
1332 argument to a flag saying whether or not to allocate a new
1333 copy of the string placed into the environment
1334 o changed calls to add_or_supersede to the new
1335 add_or_supersede_exported_var with the appropriate flags
1336 o don't free and reallocate export_env in maybe_make_export_env,
1337 just free the strings and start anew
1338 o prime the size of export_env from the total number of shell
1339 variables and shell functions -- this will always be enough
1340 for the exported shell functions and variables, and big
1341 enough most of the time for the entire environment
1344 - efficiency hack in bindpwd(): if PWD is exported, we will have to
1345 rebuild the entire exported environment after every time we change
1346 directories. What we do is see if array_needs_making changes value
1347 from 0 to 1 after bind_variable ("PWD", dirname) is called, and
1348 that PWD is exported. If that happens, we just replace the value
1349 of PWD in the exported environment with a call to
1350 add_or_supersede_exported_var
1353 - check calls to pre_process_line to make a fresh copy of the line
1354 if pre_process_line returns what it was passed, in preparation
1358 - pre_process_line now returns its argument if it did not make
1362 - free the bucket entry holding the alias to be removed in
1363 remove_alias, as well as the data
1368 - if an unwind-protect frame is being discarded, and its cleanup
1369 function is `restore_variable', the `arg' member points to a
1370 SAVED_VAR that must be freed. This change is made in
1371 remove_unwind_protect_internal and unwind_frame_discard_internal
1374 - need to free memory allocated by parse_arith_cmd if it is an
1375 arithmetic command, after using it to make a new word
1378 - fixed some memory leaks caused by not freeing the argument to
1379 make_bare_word, which duplicates its string argument
1380 - need to dispose list generated by list_rest_of_args in
1381 paramter_list_remove_pattern
1382 - make sure the return value from getpattern() is freed
1383 - make sure array_value_internal always returns newly-allocated
1385 - get_var_and_type returns a new type: VT_ARRAYMEMBER if the
1386 string passed is of the form var[index]
1387 - make sure parameter_brace_substring frees the memory allocated
1388 by get_var_and_type if verify_substring_values returns 0
1390 hashlib.c, hashlib.h
1391 - new function, dispose_hash_table (table), which frees the
1392 table's bucket array and the table itself
1395 - call dispose_hash_table from delete_all_aliases instead of just
1399 - make sure to free `newnames' (but *not* its contents) before
1400 returning from ignore_globbed_names
1403 - make sure the argv created to pass to shell_execve is freed if
1404 the execve fails and we're not exiting on failed execs
1407 - broke evalexp into two functions: evalexp, which sets up the
1408 jmp_buf that errors jump to, and subexpr, which does the
1409 evaluation and pushing and popping of contexts
1410 - readtok now calls subexpr to evaluate subexpressions in
1412 - evalexp now takes an additional paramter, a pointer to an int.
1413 If the expression contains errors, the location to which this
1414 points gets 0, otherwise it gets 1 to show that the value
1415 returned may be used. This plugs up memory leaks that were
1416 the result of evalexp() longjmping back to top_level
1417 - fixed a memory leak: expr_stack[0] was not being freed
1420 - changed extern declaration for evalexp
1422 variables.c, subst.c, builtins/let.def
1423 - changed calls to evalexp appropriately. They either cause a
1424 longjmp (top_level, DISCARD) (which is what the old stuff in
1425 expr.c did) or are handled by returning an appropriate error
1426 value (e.g., &expand_word_error in subst.c)
1431 - make sure to free dollar_vars[0] before assigning it the first
1432 argument following `-c command'
1435 - if unsetting a local variable with a previous context, make sure
1436 to free the hash table element used to store the local variable
1438 lib/readline/terminal.c
1439 - rearrange the includes so <sys/ioctl.h> is included before rltty.h,
1445 - new function: reset_shell_flags, which resets all of the flags
1446 back to their initial values
1449 - extern declaration for reset_shell_flags
1452 - new function: reset_shell_options, which resets all of the -o
1453 options that are not also shell flags back to their initial values
1456 - new function: reset_shopt_options, which resets all of the shopt
1457 options that are not also shell flags or -o options back to their
1461 - extern declarations for reset_shell_options and reset_shopt_options
1464 - broke the code that reinitializes things when an executable script
1465 without a leading `#!' is found out into a new function:
1467 - initialize_subshell now calls the reset_* functions that reset the
1468 shell flags and options
1470 general.c, general.h
1471 - move_to_high_fd now takes a third argument: the highest fd at which
1472 to start looking. If that's less than 20, the maximum number of
1473 open files as returned by getdtablesize() is used (which is what
1476 jobs.c, shell.c, subst.c
1477 - changed calls to move_to_high_fd appropriately
1479 [bash-2.01-beta1 frozen]
1484 - itos now uses a local char buffer to do its conversion, but still
1485 returns newly-allocated memory
1490 - be a little more careful when checking for backwards-compatibility
1491 with exported function definitions
1496 - translate RLIM_INFINITY to limit.rlim_max if the current limit is
1497 less than or equal to the hard limit, not just strictly less than
1498 (the change of 3/28 was too drastic)
1503 - fixed definition of to_lower on machines without strcasecmp
1506 - don't free the trap command in change_signal if the SIG_INPROGRESS
1507 is set in the signal's flags -- it will cause memory to be freed
1508 twice if a trap command resets the signal handler more than once,
1509 and _run_trap_internal keeps a pointer to the trap command so it
1510 can free it, so there will be no leaks
1514 aclocal.m4,configure.in
1515 - removed BASH_CC_WORKS, since AC_PROG_CC now has the functionality
1518 - get_current_user_info is now a void function
1521 - alias_expand_line_internal was removed
1522 - new function, alias_expand_line, performs alias expansion on
1523 rl_line_buffer and either replaces rl_line_buffer or signals
1525 - new bindable commands: alias-expand-line and
1526 history-and-alias-expand-line, available if ALIAS is defined
1530 Makefile.in, lib/malloc/malloc.c
1531 - changed the define that turns on malloc range checking from
1532 `rcheck' to `RCHECK'
1534 lib/readline/isearch.c
1535 - fixed a couple of places where rl_search_history would try to
1541 - fixed a problem with saving a variable that is a null pointer
1542 in unwind_protect_var. It happens only on machines where the
1543 size of a pointer is not the size of an int. The old FASTCOPY
1544 code would copy the eight bytes at memory location zero, which
1545 did not necessarily make a null pointer
1550 - run_startup_files should turn off job control, since the startup
1551 files should be run without job control enabled -- this makes
1552 SIGINT interrupt startup file execution again
1553 - if we get a SIGINT or other longjmp to top_level while executing
1554 the startup files, re-enable job control for interactive shells
1555 before setting locally_skip_execution
1560 - if we have setlocale(3), don't bother with checking the
1561 environment variables for valid values; just use setlocale()
1562 to set the locale categories from the environment variables
1563 directly and go into eight-bit mode if the current locale is
1569 - make sure that the handler for SIGPROF is not changed if it has
1570 been set to something other than SIG_IGN or SIG_DFL -- this makes
1571 profiling work after the terminating signals have been initialized
1574 - if a filename containing `!' is completed, and the user has started
1575 the string with a `"', change the completion style to backslash-
1576 quoting, since there's no way to use `!' with double quotes (this
1577 requires more changes to readline to really work right)
1581 lib/readline/complete.c
1582 - changes to make_quoted_replacement, insert_all_matches, and
1583 insert_match and their callers to allow the application-specific
1584 filename quoting function to change the quote character (e.g., for
1585 bash to change a filename containing a `!' and started with a
1586 double quote by the user into a filename with the `!' quoted by
1587 a backslas and no double quote)
1592 - new function: nohup_all_jobs(), calls nohup_job for each entry in
1594 - delete_all_jobs is now global
1597 - new extern declarations for delete_all_jobs() and nohup_all_jobs()
1600 - `disown' without any jobspec arguments means the current job. Fix
1601 a core dump printing the error message when there is no current job
1606 - process an expansion like $((foo); bar) as a command substitution,
1607 not as an arithmetic expansion. An arithmetic expansion must have
1612 builtins/evalstring.c
1613 - the third argument to parse_and_execute() is now a flags word.
1614 The caller can control the value of `interactive' and whether
1615 or not history is disabled while parse_and_execute() runs
1618 - new #defines for the flag values for parse_and_execute()
1620 {bashline,jobs,shell,subst,trap,variables}.c, parse.y, builtins/evalfile.c,
1621 builtins/{eval,fc}.def
1622 - changed calls to parse_and_execute appropriately
1625 - if _evalfile() is passed FEVAL_HISTORY as part of the flags arg,
1626 don't pass SEVAL_NOHIST to parse_and_execute
1627 - new function: fc_execute_file, which sets FEVAL_HISTORY in the
1628 flags argument to _evalfile()
1631 - call bash_add_history instead of add_history from
1632 vi_edit_and_execute_command so the bash state variables get
1633 updated properly. This keeps the `v' command from operating
1634 on an empty command when the history list is stifled
1637 - bash_add_history is now global
1640 - extern declaration for bash_add_history
1643 - call fc_execute_file instead of maybe_execute_file in the
1644 edit-and-re-execute case (fc -e ...)
1645 - don't manually insert the commands from the file created by `fc -e'
1646 into the history list, just set remember_on_history and let
1647 fc_execute_file take care of telling parse_and_execute to do the
1648 right thing. This makes compound commands and the `cmdhist'
1649 and `lithist' settings work better. This supersedes the fix of
1650 1/27. This was reported again by rchen@fractal.eng.yale.edu.
1653 - the body of a `for' command (the commands between do...done or
1654 {...}) should be a `compound_list' instead of a `list'. Problem
1655 reported by cpg@research.bell-labs.com
1659 lib/readline/complete.c
1660 - in filename_completion_function, if we find that the directory
1661 pointer (return value from opendir(3)), is not null when state
1662 is 0 (indicating that this is the first time the completion
1663 function has been called for the current completion), call
1664 closedir on it, assuming that it was left open by a previous
1665 (interrupted) completion
1667 [bash-2.01-beta2 frozen]
1672 - make sure that `make distclean' (and other clean targets) remove
1673 the `printenv' executable
1675 tests/execscript, tests/redir.tests
1676 - make sure to set LANG=C and LC_ALL=C so the messages show up in
1680 - add a warning about exported functions in the environment
1685 - if one of the arguments passed to `hash' is an absolute pathname,
1686 just continue the loop, don't do list=list->next first. This
1687 fixes the `hash a/b' -> core dump bug
1692 - change canonicalize_pathname to leave a leading `/' alone, as
1697 support/xenix-link.sh
1698 - shell script for linking bash under Xenix
1703 - fixed a memory leak in command_word_completion_function, courtesy
1704 of a.pfaller@pop.gun.de
1707 - fixed find_hashed_filename to always return a newly-allocated
1711 - since find_hashed_filename returns newly-allocated memory, don't
1712 call savestring() on it, and free it if the data is stale (in
1713 search_for_command()). Another memory leak fixed courtesy of
1714 a.pfaller@pop.gun.de
1717 - free the value returned by find_hashed_filename
1719 [bash-2.01-release frozen]
1724 - force shlicc2 and libc malloc for BSD/OS 3.0
1729 - don't create ${man3dir}, since we're not installing the readline
1732 lib/readline/readline.h
1733 - rl_dispatching should be declared `extern'
1738 lib/malloc/Makefile.in
1739 - make sure ${ALLOCA_SOURCE} is preceded by ${srcdir} so that things
1740 work when building in a directory other than the source directory
1745 lib/readline/examples/rltest.c
1746 - don't free the value returned by history_list()
1748 lib/readline/histfile.c
1749 - open the history file for writing with mode 0600 for better
1754 - select_query now uses legal_number to decide whether the user's
1755 selection is a valid number, and just executes the loop again if
1756 invalid input is entered
1761 builtins/evalstring.c
1762 - fix to parse_and_execute so `bash -c 'time [-p] zzz'' works right
1766 - fix to execute_command_internal so that `bash -c time [-p] (zzz)''
1769 - print_formatted_time should pass a long as the fourth parameter
1774 - `exit_shell' is now a void function
1777 - print_table_stats is now a void function
1780 - made add_mail_file check for the filename in the mail file list
1781 using the expanded filename, since that is what it puts into
1786 - for the time being, PWD will be auto-exported, since some systems
1789 doc/bashref.texi, lib/readline/doc/{hist,rlman}.texinfo
1790 - added necessary `dircategory' and `direntry' commands to make
1791 `install-info' work correctly
1794 - move $(LDFLAGS) after $(BUILTINS_LDFLAGS) and $(LIBRARY_LDFLAGS) on
1795 the line that links bash
1798 - upgraded to version 2.185 from the texinfo-3.9 distribution
1801 - fixed a bug in tilde_expand so that enough space is allocated for
1802 the string and terminating null byte if a `~' does not appear.
1803 This was masked before by the bash malloc()
1809 - new test, BASH_TYPE_INT32_T, to check which builtin C type is
1811 - new test, BASH_TYPE_PTRDIFF_T, to check which builtin C type is
1812 appropriate for pointer arithmetic
1815 - check sizes of int and long, and for the existence of an int32_t
1816 basic system type. Call BASH_TYPE_INT32_T if int32_t is not
1817 defined anywhere in the system header files
1818 - check size of (char *), and for the existence of a ptrdiff_t
1819 basic system type. Call BASH_TYPE_PTRDIFF_T if ptrdiff_t is not
1820 defined anywhere in the system header files
1821 - added a check for <stddef.h>
1824 - add lines for SIZEOF_INT, SIZEOF_LONG, SIZEOF_CHAR_P, int32_t,
1825 u_int32_t, and ptrdiff_t
1826 - added line for HAVE_STDDEF_H
1829 - new version, with many changes and much better memory usage; old
1830 (bash-2.01) version is lib/malloc/omalloc.c
1832 lib/malloc/gmalloc.c
1833 - new version, with a number of changes and range checking included
1834 by default; old (bash-2.01) version is lib/malloc/ogmalloc.c
1837 - applied patch from 5/27 to make execute_simple_command fork early
1838 if it's part of a pipeline. This keeps assignment statements or
1839 other commands that don't require a builtin, function, or disk
1840 command to be executed from modifying the shell's environment
1843 - renamed from tests/execscript.sub? because those filenames are
1844 too long for System V 14-char filename systems
1847 - renamed from tests/source.sub? because those filenames are bad
1851 - renamed from tests/getopts.sub? because those filenames are bad
1854 tests/histexp.{tests,right}
1855 - renamed from histexpand.{tests,right} because those filenames are
1856 too long for System V 14-char filename systems
1859 - renamed from trap.sub1 because that filename was bad for DOS/Windows
1861 tests/ifs-[123].right
1862 - renamed from ifs.[123].right because those filenames were bad for
1865 tests/ifs-[123].test
1866 - renamed from ifs-test-[123].sh because those filenames were bad
1869 examples/startup-files/Bashrc.bfox
1870 - renamed from examples/startup-files/Bashrc because that filename
1871 conflicts with examples/startup-files/bashrc on case-insensitive
1875 - renamed from execscript.right because that filename is too long
1876 for System V 14-char filename systems
1879 - renamed from run-set-e-test
1882 - renamed from tests/misc/haertel.perftest because that filename is
1883 too long for System V 14-char filename systems
1886 - new version with full POSIX.2 BRE matching (character classes,
1887 collating symbols, equivalence classes), full support for
1888 strcoll(3), and case-insensitive pattern matching
1891 - new version, with necessary symbols for the new fnmatch.c
1893 tests/posixpat.{tests,right}, tests/run-posixpat
1894 - test suite for the POSIX.2 BRE pattern matching code
1897 - make sure that array assignment using the compound syntax empties
1898 the array before doing the assignment
1902 - new function, trap_to_sighandler(sig), which returns the correct
1903 trap handler for SIG depending on the information in sigmodes[sig]
1907 - extern declarations for trap_handler and trap_to_sighandler
1911 - if we get an interrupt while waiting for a command to complete,
1912 and there was a trap set on SIGINT that resets the handler to
1913 SIG_DFL, the value that waitchld uses for old_trap_handler will
1914 be wrong (it will be trap_handler, but trap_handler no longer
1915 knows anything about SIGINT). If old_signal_handler is trap_handler,
1916 but signal_is_trapped(SIGINT) returns 0, we need to call
1917 trap_to_sighandler to decide what to do
1923 - fix to set_locale_var to handle an assignment to LC_ALL (e.g., as
1924 the result of `unset LANG') when default_locale is null
1929 builtins/umask.def, doc/{bash.{1,html},bashref.texi}
1930 - added `-p' option for umask to print output in a reusable form
1934 doc/{bash.{1,html},bashref.texi}
1935 - removed descriptions of `-type', `-path', and `-all' options to
1936 the `type' builtin in preparation for removing them in the next
1940 - removed mention of `-type', `-path', and `-all' options from the
1941 long help description
1944 - new function: internal_warning, for warning messages
1947 - changed a call to internal_error to use internal_warning
1948 - modified change of 7/3 so that arrays are not emptied until
1949 just before the shell is about to assign the new values, so
1950 the old value can be used to generate the rhs of the assignment,
1951 if necessary. This is how `normal' shell variables work
1955 - delete_job now takes a second int argument and prints a warning
1956 message when deleting a stopped job if the second argument is
1959 jobs.c, builtins/jobs.def
1960 - changed all calls to delete_job to provide a proper second arg
1963 - broke rl_read_init_file into an `upper' and `lower' half in
1964 preparation for adding file inclusion capability to inputrc
1966 - handle_parser_directive now displays an error message if an
1967 unknown directive is encountered
1968 - parser_endif now prints an error message if an $endif without
1969 a matching $if is found
1970 - added `$include' parser directive to read bindings and commands
1971 from another file at that point
1973 lib/readline/doc/rluser.texinfo, doc/{bash.{1,html},readline.3}
1974 - documented new readline `$include' parser directive
1977 - added a new invocation option, --dump-po-strings, and code to
1978 make it dump translatable strings ($"...") in GNU gettext
1981 doc/{bash.{1,html},bashref.texi}
1982 - documented new `--dump-po-strings' invocation option
1984 lib/readline/{{kill,funmap}.c,readline.h}
1985 - added `rl_paste_from_clipboard()', bound to `paste-from-clipboard'
1989 - incorporated bfox's patches for `iterative' yank-last-arg handling.
1990 This means that one can keep pressing M-. and move backwards in
1991 the history, yanking the last argument of successive history lines
1993 lib/readline/rlwinsize.h
1994 - new file, encapsulates various locations of the definition for
1998 - augmented BASH_STRUCT_WINSIZE to look in termios.h as well as
1999 sys/ioctl.h for definition of `struct winsize'
2001 lib/readline/rltty.h
2002 - include "rlwinsize.h" after including tty-driver-specific header
2007 support/config.guess
2008 - add better support for SunOS on M68K (old Sun3 machines)
2011 - check for compound array assignment in read_token_word only if
2012 there are characters before the `=' (which would make it a legal
2013 assignment statement). This fixes the problem with defining a
2014 function named `=' with `=() { echo foo; }'
2018 - nohup_all_jobs and delete_all_jobs now take a parameter which
2019 says whether or not to restrict their operation to only running
2023 - changed all calls to delete_all_jobs
2026 - added `-a' (all jobs) and `-r' (running jobs only) options to
2029 doc/{bash.{1,html},bashref.texi}
2030 - documented new `-a' and `-r' options to `disown'
2032 findcmd.c, findcmd.h
2033 - new files with command searching code from execute_cmd.c and
2034 function declarations from execute_cmd.h
2036 Makefile.in, builtins/Makefile.in
2037 - updated dependencies to account for new findcmd.[ch]
2038 - updated dependencies to account for new redir.[ch]
2041 - new files with code that sets up lists and performs redirections
2042 from execute_cmd.c and execute_cmd.h
2045 - include new findcmd.h, redir.h
2049 Makefile.in, configure.in
2050 - PROFILE_FLAGS is now substituted into the Makefile by configure
2055 - make sure single_quote is called from xtrace_print_word_list
2056 to correctly quote each word of trace output, especially those
2057 with embedded quotes
2061 - extended BASH_CHECK_GETPW_FUNCS so that it checks that getpwuid
2062 and getpwnam can also be declared, as well as getpwent
2064 - in BASH_FUNC_PRINTF, cast printf to type `_bashfunc' before trying
2065 to assign it to `pf' to avoid any prototype problems in the
2070 - include <unistd.h> before any of the bash-specific header files,
2075 - include <errno.h> and declare `extern int errno' before including
2076 any of the bash-specific include files, but after <unistd.h>
2079 builtins/Makefile.in
2080 - PROFILE_FLAGS is now substituted into the Makefile by configure
2083 - new options, --enable-profiling and --enable-static-link, to turn
2084 on profiling with gprof and link bash statically (if using gcc)
2085 for use as a root shell. The former implies the latter. If
2086 we're linking statically, dynamic loading of new builtins is not
2090 - documented new --enable-profiling and --enable-static-link
2091 options in installation section; regenerated INSTALL
2094 - new global variable, glob_ignore_case, turns on case-insensitive
2095 filename matching in fnmatch() using the FNM_CASEFOLD flag
2097 doc/{bash.{1,html},bashref.texi}
2098 - documented new shopt `nocaseglob' option
2103 - when glob_complete_word is called with state == 0, make sure we
2104 set rl_filename_completion_desired so that proper quoting of
2105 the resultant filenames is performed
2111 - strcasecmp and strncasecmp replacements should have `const char *'
2112 as the first two arguments, to match OS definitions
2118 - changes for minix-2.0, mostly just adding #ifndef _MINIX around
2119 include files that minix doesn't provide, like <sys/param.h> and
2122 lib/readline/terminal.c
2123 - removed `outchar' function; use _rl_output_character_function in
2126 support/config.guess
2127 - changes to recognize HP_ARCH of `hppa2.0'
2130 - new `-N' option: `test -N file' returns true if FILE exists and
2131 has been modified since it was last accessed
2133 doc/{bash.{1,html},bashref.texi}
2134 - documented new `test -N' option
2139 - prefer /var/spool/mail to /usr/spool/mail in BASH_DEFAULT_MAIL_DIR
2142 lib/readline/{complete,bind}.c
2143 - new readline variable, print-completions-horizontally, which causes
2144 matches to be printed across the screen (like `ls -x') rather than
2145 up-and-down (like `ls')
2146 - new readline variable, completion-ignore-case, which causes filename
2147 completion and matching to be performed case-insensitively
2149 doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
2150 - documented new print-completions-horizontally variable
2151 - documented new completion-ignore-case variable
2153 _distribution, Makefile.in
2154 - bumped the version number up to 2.02-alpha1
2157 - fixes so that the braces are not quoted by the filename quoting
2158 function when complete-into-braces is executed with M-{. The
2159 brace completion functions do filename quoting themselves
2163 - changed quote_string_for_globbing so that it takes a flags word
2164 as its second argument
2167 - defines for flags passed to quote_string_for_globbing
2169 subst.c,execute_cmd.c
2170 - changed calls to quote_string_for_globbing to pass the correct
2174 - added a `**' binary operator to do exponentiation (2**16 == 65536).
2175 precedence is lower than arithmetic operators, higher than unary
2176 operators (2**16-1 == 65535)
2178 doc/{bash.{1,html},bashref.texi}
2179 - documented new `**' arithmetic binary operator
2184 - added new (currently undocumented) `--wordexp' option to do the
2185 job required by POSIX.2 wordexp(). If -n is supplied along with
2186 --wordexp, command substitution is disallowed and the shell
2187 exits with a status of 125 if one is attempted. If there is an
2188 expansion error, the shell exits with a status of 127. If there
2189 is a shell parsing error, the shell exits with a status of 126.
2190 Otherwise, the exit status is 0. The current output is
2194 expanded words, one per line, separated by newlines
2196 This will have to be changed when an interface to glibc is coded
2201 - reduced the default size of the filename hash table from 631
2205 - don't call initialize_siglist if HAVE_UNDER_SYS_SIGLIST is defined
2209 - don't compile this file if HAVE_UNDER_SYS_SIGLIST is defined
2213 - fix to make $RANDOM work better in subshells
2217 - new macro, BASH_DECL_UNDER_SYS_SIGLIST, looks for _sys_siglist in
2218 <signal.h> and <unistd.h>, defines UNDER_SYS_SIGLIST_DECLARED if
2221 - change BASH_UNDER_SYS_SIGLIST to require BASH_DECL_UNDER_SYS_SIGLIST,
2222 like BASH_SYS_SIGLIST requires AC_DECL_SYS_SIGLIST
2226 - add a line for UNDER_SYS_SIGLIST_DECLARED
2230 - make sure that SVR4_2 is defined for machines that have $host_os
2231 sysv4.2* (e.g., sysv4.2MP) as well as $host == sysv4.2
2237 - new command type, ARITH_COM, used to create and execute a ((...))
2238 command without translating it into let "..."
2241 - changes to the grammar and lexer so that ((...)) is parsed as a
2242 command of type ARITH_CMD. An ARITH_CMD is a WORD_LIST, for
2243 future expansion, even though only the first word is used
2245 make_cmd.c, make_cmd.h
2246 - definition and declaration of a function to build an arithmetic
2250 - added code to dispose of arithmetic commands
2253 - added code to print arithmetic commands, both `regularly' and
2254 when they're being traced with `set -x'
2257 - extern declaration for xtrace_print_arith_cmd
2260 - added code to copy arithmetic commands
2263 - added code to directly execute arithmetic commands -- they are
2264 a shell_control_structure, so just about everything like
2265 redirections and piping is taken care of by the boilerplate code.
2266 All that's needed is to expand the expression (which is within
2267 double quotes -- added by parse.y:parse_arith_cmd()), print it
2268 if tracing is enabled, call the expression evaluator, and return
2269 an appropriate result
2274 - new function, set_buffered_stream(fd, bp), sets the buffered stream
2275 associated with FD to BP and returns the old buffered stream
2278 - extern declaration for set_buffered_stream
2281 - call set_buffered_stream rather than manipulating the BUFFERS array
2285 - unset_bash_input now takes an argument, CHECK_ZERO. This tells it
2286 whether to check whether default_buffered_input is >= 0 or just > 0
2289 - changed extern declaration for unset_bash_input
2291 execute_cmd.c, jobs.c, nojobs.c
2292 - changed calls to unset_bash_input to add appropriate argument
2295 - #undef B_* before defining them as flag values for b_flags. Some
2296 systems, like SVR4, have a B_ERROR define in a file included by
2297 jobs.c and nojobs.c, and it causes a warning
2302 - rewrote most of fnmatch(), so that it now implements ksh-88 style
2303 pattern matching (`[@+*?!](patlist)') if the FNM_EXTMATCH flag
2307 - added a define for FNM_EXTMATCH
2311 lib/readline/display.c
2312 - fixed _rl_redisplay_after_sigwinch () so that it really redisplays
2313 only the portion after the final newline of a multi-line prompt
2317 - attempt_shell_completion no longer returns matches if a glob pattern
2318 matches more than one filename -- it caused too many problems
2324 - updated glob_pattern_p so that the extended matching operators
2328 - udpated unquoted_glob_pattern_p so that the extended matching
2329 operators are recognized
2330 - udpated quote_globbing_chars so that the extended matching
2331 operators are recognized and quoted appropriately
2334 - updated match_pattern_char so that the extended matching operators
2338 - updated read_token_word so that it parses an extended matching
2339 pattern as a single word
2342 - if a job is suspended with SIGTSTP, and the user has set
2343 checkwinsize with `shopt', update the window size
2346 pathexp.c, pathexp.h
2347 - new global variable, extended_glob, controls whether the extended
2348 pattern matching features are enabled
2351 - new define, FNMATCH_EXTFLAG, to be OR'd with other values for
2352 flags argument to fnmatch to enable the extended pattern matching
2353 features if extended_glob is set
2355 {pathexp,execute_cmd,bashhist,subst,test}.c, builtins/help.def
2356 - changed calls to fnmatch to add FNMATCH_EXTFLAG to the flags arg if
2357 extended_glob is non-zero
2360 - changed flags arg passed to fnmatch to include FNM_EXTMATCH if
2361 extended_glob is non-zero (#ifdef SHELL)
2366 - added a new `extglob' shell option, controls the value of
2371 doc/{bash.{1,html},bashref.texi}
2372 - documented new extended pattern matching operators and the `extglob'
2375 tests/{extglob.{tests,right},run-extglob}
2376 - test suite for the new extended globbing features
2380 parse.y, pathexp.h, lib/glob/fnmatch.c
2381 - made the extended globbing code #ifdef EXTENDED_GLOB
2384 - added a line for EXTENDED_GLOB, controlled by configure
2387 - new option, --enable-extended-glob, controls defining of
2388 EXTENDED_GLOB (on by default)
2391 - documented new `configure' `--enable-extended-glob' option
2396 - new `printf' builtin, implemented according to POSIX.2 spec
2399 Makefile.in,builtins/Makefile.in
2400 - added necessary stuff for new printf builtin
2404 lib/readline/isearch.c
2405 - change to make ^G interrupt the incremental search correctly
2408 configure.in, config.h.in
2409 - configure now checks for the availability of strtoul(3)
2412 - use strtoul for the `%o', `%u', `%x', and `%X' formats if it
2417 tests/{printf.{right,tests},run-printf}
2418 - extensive test suite for the new `printf' builtin
2420 builtins/Makefile.in
2421 - change so that `builtext.h' is not recreated every time the source
2422 file for a builtin is changed if the contents are the same. This
2423 keeps many files from being recompiled
2428 - changed verify_substring_values so that it returns -1 for substring
2429 range errors, 0 for expression errors, and 1 for success
2431 - changed parameter_brace_substring to return an error if
2432 verify_substring_values returns 0, and a null string if it returns
2433 -1. This matches the ksh93 behavior
2437 - changed decode_signal so that it makes sure the first three
2438 characters of a signal name are `SIG' before allowing the `SIG'
2439 prefix to be omitted. This is so a signal spec of `T' does not
2440 match `EXIT', for instance
2444 - make sure that showtrap() displays traps for signals with unknown
2445 names using the signal number
2448 - make sure that `bash -r' doesn't turn on the restricted mode until
2449 after the startup files are executed
2452 doc/{bash.{1,html},bashref.texi}
2453 - documented printf builtin
2458 - added \xNNN escape to ansicstr -- NNN are up to three hex digits.
2459 This affects $'...', `echo -e', and printf
2462 - added \xNNN escape to bexpand -- NNN are up to three hex digits.
2463 This affects printf's `%b' conversion specifier
2465 doc/{bash.{1,html},bashref.texi}
2466 - documented new \xNNN escape sequence for echo, $'...', and printf
2468 builtins/setattr.def
2469 - make sure that a variable found in the temp environment does not
2470 cause a null string to be assigned by bind_variable (e.g.,
2478 - fixed a bug that sometimes caused bad memory (pointer into an
2479 allocated block) to be passed to free when doing arithmetic
2480 substitution. Bug report from stevet@myofb.org
2486 - considerable changes: moved the code that expands a single
2487 $... parameter expansion into a separate function: param_expand()
2488 This function returns a string, which may contain characters
2489 quoted with CTLESC or CTLNUL without doing word splitting
2490 - changed expand_word_internal to not remove the expansion of "$*"
2491 if the number of positional parameters is > 0
2492 - changed the '"' case of expand_word_internal to remove quoted
2493 nulls from the resultant word if the expansion was not "$@", and
2494 the word is not a quoted null string ([] == CTLNUL, [1] == '\0')
2496 subst.c, variables.c
2497 - moved the code that handles special variables from subst.c to
2503 - rearranged the source a bit to group functions with similar
2505 - fixed parameter_brace_expand so that it no longer allows
2506 indirect expansion of `special' variables
2507 - fixed parameter_brace_expand so taking the length of some of
2508 the shell's special parameters works again
2509 - moved all of the code that computes the length of a shell
2510 parameter (the ${#xxx} expansion) into parameter_brace_expand_length.
2511 Previously, the code that handled the lengths of the shell's
2512 special parameters was in parameter_brace_expand_word
2513 - valid indirect expansions are now only variable names or positional
2519 - fixed param_expand to raise an expansion error if $! is being
2520 expanded and no asynchronous processes have been created
2521 - an expression error in a $((...)) arithmetic expansion now causes
2522 a non-interactive shell running in POSIX mode to exit
2523 - relaxed change of 8/20 to allow indirect references to $#, $@, $*
2525 builtins/bashref.texi
2526 - documented new posix-mode exit on invalid expressions in $((...))
2528 lib/readline/complete.c
2529 - don't call rl_strpbrk unless rl_filename_quote_characters is not
2530 NULL -- strpbrk requires non-NULL arguments
2536 - don't make `history-expand-line' a bindable command unless
2537 BANG_HISTORY is defined, and don't compile the code for that
2538 command in unless BANG_HISTORY is defined
2539 - make history_expand_line(), tcsh_magic_space(), alias_expand_line(),
2540 and history_and_alias_expand_line() int-returning functions that
2541 return 0 for success and non-zero on error. This allows
2542 tcsh_magic_space() to just call history_expand_line() and insert
2543 a space if that returns successfully
2544 - `magic-space' is now a bindable readline command
2546 doc/bash.{1,html}, lib/readline/doc/rluser.texinfo
2547 - documented new `magic-space' bindable readline command
2552 - fixed decode_prompt_string so that values of $PWD longer than
2553 PATH_MAX don't cause buffer overruns (char t_string[PATH_MAX])
2557 - fixed polite_directory_format so that values of $HOME longer
2558 than PATH_MAX don't cause buffer overruns (char tdir[PATH_MAX])
2562 - fix to expansion of $* so that the positional parameters are
2563 separated by the first character of $IFS, even when the expansion
2564 is not within double quotes, so the correct split is still
2565 performed even when IFS does not contain a space. Works for
2567 - fix to expansion of $@ so that the positional parameters are
2568 separated by the first character of $IFS, even when the expansion
2569 is not within double quotes, so the correct split is still
2570 performed even when IFS does not contain a space. Works for
2572 - new function, string_list_dollar_at(), which is to $@ as
2573 string_list_dollar_star is to $*
2574 - fixed expansion of $@ so that splitting is still done even if
2575 IFS is unset or NULL, as POSIX.2 specifies (section 3.5.2)
2576 - fixed expansion of $* so that it expands to multiple words if there
2577 is more than one positional parameter, just like $@, even if
2578 IFS is unset or NULL
2579 - new function list_quote_escapes, quotes (with CTLESC) all
2580 CTLESC and CTLNUL characters in each member of the list
2582 tests/dollar-{at,star}.sh
2583 - combined into dollar-at-star, changed run-dollars accordingly
2588 - make the `tests' target use $(SHELL) instead of hardcoding `sh'
2593 - expand_word_list_internal now takes a flags word as the second
2594 argument, telling which expansions to perform on the WORD_LIST
2595 - broke expand_word_list_internal into several functions: one
2596 each to do brace expansion, glob expansion, and the `normal'
2598 - new extern function: expand_words_shellexp() to perform the
2599 `normal' shell expansions on a WORD_LIST
2602 - extern declaration for expand_words_shellexp
2605 - fixed a problem with attempt_shell_completion where it attempted
2606 to refer to rl_line_buffer[-1] (completion at the start of the
2607 line, which means that ti == -1, which means that the test for
2608 rl_line_buffer[ti] at line 715 was an array bounds error
2612 - new function, parse_string_to_word_list(), which takes a string
2613 and runs it through the parser, returning the resultant word
2617 - new extern declaration for parse_string_to_word_list()
2620 - change assign_array_var_from_string to first split the string
2621 between the parens on whitespace, then expand the resultant
2622 list of words with all the shell expansions before doing the
2628 - redirection_error is no longer a static function
2630 builtins/evalstring.c
2631 - changes to handle $( < filename ) (equivalent to $(cat filename))
2635 - added two new functions: rl_unbind_function_in_map(func, map),
2636 which unbinds all keys that execute FUNC in MAP; and
2637 rl_unbind_command_in_map(command, map), which unbinds all keys
2638 bound to COMMAND in MAP
2640 lib/readline/readline.h
2641 - extern declarations for rl_unbind_{function,command}_in_map
2643 lib/readline/doc/rltech.texi
2644 - documented rl_unbind_{function,command}_in_map
2647 - added a new option, -u FUNCNAME, which unbinds all key sequences
2648 bound to FUNCNAME in the specified (or current) keymap
2650 doc/{bash.{1,html},bashref.texi}
2651 - documented new $( < filename ) command substitution
2652 - documented new bind -u FUNCNAME option
2657 - send SIGHUP to all jobs when an interactive login shell exits if
2658 the variable `hup_on_exit' is non-zero
2659 - modified run_startup_files so that if `NON_INTERACTIVE_LOGIN_SHELLS'
2660 is #define'd (perhaps in config.h.top, though there is nothing there
2661 for it), all login shells (interactive and non-interactive) run
2662 /etc/profile and one of the per-user login shell startup files
2665 - new shopt option `huponexit' to control the value of hup_on_exit
2667 doc/{bash.{1,html},bashref.texi}
2668 - documented new `huponexit' shell option
2673 - changed contains_shell_metas to return 1 if a tilde appears at the
2674 start of a string or after a `=' or `:'
2675 - changed backslash_quote to quote a tilde if it appears at the start
2676 of a string or after a `=' or `:'
2678 lib/readline/complete.c
2679 - moved rl_tilde_expand to util.c; it doesn't really have anything
2680 to do with completion
2681 - moved insert_text to readline.c, renamed it _rl_replace_text (since
2682 that's really what it does), changed callers
2683 - moved code that postprocesses the list of completion matches into
2684 a new function: postprocess_matches
2685 - new implementation of tcsh-like menu completion in a single new
2686 function: rl_menu_complete
2688 lib/readline/{funmap.c,readline.h}
2689 - necessary declarations for binding rl_menu_complete to the
2690 new `menu-complete' command
2692 doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
2693 - documented new `menu-complete' bindable readline command
2698 - delete_job should print a warning only if subshell_environment
2699 is 0, so we don't print bogus warnings when shell scripts without
2700 a leading #! are executed
2705 - fixed the code so that the `read' is automatically restarted when
2706 it returns -1 with errno == EINTR. SIGINT is handled by the
2707 interrupt handler, since interrupt_immediately is set to 1, so
2708 this handles things like SIGCHLD
2714 - reorganized the code slightly to make it easier to add the ksh-like
2715 [[...]] compound command
2718 - new file, with extern declarations for functions available in test.c
2721 - moved declaration of test_command to test.h
2728 {command,make_cmd,dispose_cmd,externs,subst}.h
2730 {make,dispose,copy,print,execute}_cmd.c
2731 - changes to add the new ksh-93 compatible [[...]] conditional command
2734 - new enable option, --enable-cond-command, to compile in the [[...]]
2738 - new #define, COND_COMMAND, to compile in the [[...]] command code
2740 tests/{run-cond,cond.{tests,right}}
2741 - test suite for the new [[...]] command
2743 {builtins,lib/{readline,glob,tilde}}/Makefile.in
2744 - explicit dependencies for .o files on .c files for losing makes
2747 doc/{bash.{1,html},bashref.texi}
2748 - documented the new `[[' compound command
2749 - documented the test/[ builtin behavior based on the number of
2750 arguments in the description of the builtin
2751 - made a new section for conditional expressions that just lists
2752 the available primaries -- the connectives and other operators
2753 are listed in the description of the [[ command and the test/[
2759 - minus_o_option_commands is now a global function so the shopt
2761 - minus_o_option_commands now takes an argument telling it which
2762 options to print, just like list_minus_o_options
2763 - new function, print_minus_o_option, which prints the value of
2764 a `set -o' option either in the traditional format or in the
2765 format used by `set +o'
2766 - changed list_minus_o_opts and minus_o_option_commands to call
2767 print_minus_o_option
2770 - `shopt -p' now causes output to be printed in a format reusable
2771 as input (the format is a series of shopt commands, like the
2773 - fixed a bug that made `shopt -so' and `shopt -uo' not work
2774 - fixed list_shopt_o_options so that `shopt -op' acts like `set +o'
2775 - fixed list_shopt_o_options to that `shopt -op optname' prints the
2776 value of optname in a reusable format
2777 - fixed list_some_o_options so that `shopt -ops' and `shopt -opu'
2778 work and display output in a reusable format
2782 doc/{bash.{1,html},bashref.texi}
2783 - documented new `shopt -p' behavior
2786 - made `bash +o' display the same output as `set +o' and then
2787 start an interactive shell (previously `bash -o' and `bash +o'
2788 displayed the same thing)
2791 - added prototypes to the extern function declarations
2795 builtins/evalstring.c
2796 - fixed the DISCARD case of the jump_to_top_level so that it
2797 doesn't try to call dispose_command(command) after the
2798 `pe_dispose' unwind frame gets run, since that disposes the
2804 - test_eaccess is now a global function so that globbing code can
2808 - rewrote glob_vector to be slightly more efficient and to not
2809 read the directory if the filename pattern does not contain
2810 any globbing chars. This satisfies the POSIX requirement that
2811 read permission is not required for a directory when the
2812 pathname component does not contain a pattern character (bug
2813 reported by jsm28@cam.ac.uk)
2816 - fixed parameter_brace_expand so that ${array[@]} and ${array[*]}
2817 behave correctly when IFS is unset or set to something that does
2818 not contain a space (they should result in separate words, just
2821 tests/{run-array2,array-at-star,array2.right}
2822 - tests for the expansions of ${array[@]} and ${array[*]}, derived
2823 from the tests in dollar-at-star
2828 - fixed cleanup_dead_jobs so that it doesn't remove the job
2829 containing last_asynchronous_pid from the job table. This
2830 fixes the POSIX.2 `wait' requirement problem
2835 - added `\r' escape sequence to the prompt expansion code
2837 lib/readline/chardefs.h
2838 - added defines for ISOCTAL, OCTVALUE, isxdigit (if not defined),
2842 - added `normal' echo/printf-like backslash escapes to the
2843 key sequence translation code, with the addition that \d
2844 expands to RUBOUT. This means that key sequence definitions
2845 (before the `:') and macro values may contain these special
2846 backslash-escape sequences
2847 - now that we can translate octal escape sequences in key bindings,
2848 change _rl_get_keyname so that it turns characters with values
2849 128-159 inclusive into octal escape sequences (\200-\237), since
2850 those characters are not ASCII or ISO Latin 1
2852 doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
2853 - documented new backslash escapes for readline key sequence and
2857 - new function, get_dirstack_from_string(char *string), returns an
2858 element from the directory stack or null, treating the argument
2859 exactly as `dirs string' would, with the exception that if
2860 the first character of `string' is not `+' or `-', a `+' is
2864 - new extern declaration for get_dirstack_from_string
2867 - added code to bash_special_tilde_expansions to get the expansion
2868 using get_dirstack_from_string() if the first character of the
2869 tilde-prefix is a digit or the first character is a `+' or `-'
2870 and the second is a digit
2872 tests/dstack.{tests,right}
2873 - renamed from dirstack.{tests,right}
2875 tests/dtack2.{tests,right}
2876 - new tests for the directory stack tilde expansion code
2879 - now runs both dstack and dstack2
2884 - reordered header file inclusion for irix 4
2887 - fixed select_query so that a reply that is not a number is treated
2888 the same as a numeric reply that is out of range
2891 - added a backwards-compatibility definition of _rl_savestring()
2894 - initialize_shell_options now takes an argument saying whether or
2895 not we should parse $SHELLOPTS from the environment. The shell
2896 does not parse the value if it's restricted, running setuid, or
2897 running in `privileged mode'
2900 - change call to initialize_shell_options to add the correct argument
2903 - changed extern declaration for initialize_shell_options
2905 doc/{bash.{1,html},bashref.texi}
2906 - added note that the shell ignores $SHELLOPTS in the environment at
2907 startup if running in privileged mode
2908 - added note that the restricted shell does not parse $SHELLOPTS from
2909 the environment at startup
2914 - change BASH_RLIMIT_TYPE so that it looks for rlim_t in
2915 <sys/resource.h> as well as <sys/types.h>, for Solaris 2.6
2916 - new macro, BASH_LARGE_FILE_SUPPORT, to enable special compilation
2917 options for large files on Solaris 2.6 (from eggert@twinsun.com)
2920 - the `file_size' member of the FILEINFO struct should be of
2922 - the `size' variable in file_has_grown should be of type `off_t'
2923 - the RESET_MAIL_FILE macro should initialize file_size to 0, not 0L
2925 builtins/Makefile.in
2926 - LDFLAGS and LOCAL_LDFLAGS are now set by configure
2927 - `mkbuiltins' is now created from `mkbuiltins.o' instead of directly
2928 from the source to the executable
2931 - fixed _evalfile so that it handles large files correctly on
2932 systems where the st_size member of `struct stat' will not fit
2935 builtins/mkbuiltins.c
2936 - don't assume that st_size fits into an int
2939 - the `b_size' member of a struct BSTREAM is now of type `size_t'
2940 - changed third argument to make_buffered_stream to size_t; changed
2942 - changed `size' variable in fd_to_buffered_stream to type `size_t'
2945 - include <sys/resource.h> if HAVE_SYS_RESOURCE_H and RLIMTYPE are
2946 both defined, for possible necessary definition of RLIMTYPE
2947 (e.g., on Solaris 2.6)
2949 {execute_cmd,jobs}.c, builtins/times.def
2950 - don't include <sys/resource.h> explicitly if RLIMTYPE is defined,
2951 since general.h will include it in that case
2954 - new function, char *_rl_read_file(filename, sizep), which reads
2955 FILENAME into a malloced buffer, returning the buffer and the
2956 size of the buffer in *SIZEP
2958 lib/readline/histfile.c
2959 - changed read_history_range and history_truncate_file to handle
2963 - find_hashed_filename should not add `./' to the front of a pathname
2964 that already begins with `./'
2969 - recognize `hppa2.0' as a valid machine architecture
2972 - changed BASH_CHECK_LIB_TERMCAP so that `gnutermcap' is not chosen
2973 if `$prefer_curses' is set to something
2976 - don't use HISTCONTROL or HISTIGNORE to remove lines from the
2977 second and subsequent lines of a multi-line command
2978 (current_command_line_count > 1). Old code did this only when
2979 command-oriented-history was enabled
2981 doc/{bash.{1,html},bashref.texi}
2982 - changed descriptions of HISTCONTROL and HISTIGNORE to state that
2983 these variables are not applied to the second and subsequent
2984 lines of a multi-line command
2986 builtins/hash.def, {copy,dispose}_cmd.c
2987 - include "bashtypes.h" -- cray machines need it because of their
2988 oddball definition of `word'
2991 - changed check of ${host_cpu} to check for `*cray*' and `*Cray*'
2992 when deciding whether to include the GNU malloc, since it
2993 seems that ${host_cpu} gets set to `CrayYMP'
2998 - look for strtod and strtol in libc
2999 - make lib/sh directory in build directory if not there
3000 - create lib/sh/Makefile
3003 - added HAVE_STRTOD and HAVE_STRTOL
3006 - changes for lib/sh/libsh.a (shell library)
3009 - took out the `#ifdef STRTOUL' code, since strtoul is in libsh.a,
3010 and will be resolved from there if it's not in libc
3013 - call strtol() instead of string_to_long()
3015 general.c, general.h
3016 - removed string_to_long
3017 - changed legal_number to use strtol so it correctly sets errno
3018 to ERANGE on overflow
3019 - moved bash_getcwd_errstr here from lib/sh/oslib.c
3022 - moved extern declarations for functions defined in libsh to a
3023 separate section of the file, added extern declarations for
3024 other functions in libsh
3027 - changed macro definition for string_to_rlimtype to call strtol
3028 directly instead of string_to_long
3031 - moved get_clock_tck to its own file, since it's compiled in
3037 - moved getenv() and __getenv() here from lib/sh/oslib.c
3039 lib/sh/{setlinebuf,strerror,strcasecmp}.c
3040 - moved {setlinebuf,strerror,strcasecmp}() from oslib.c to
3043 lib/sh/Makefile.in, Makefile.in
3044 - changes for new files in lib/sh
3047 - new macro BASH_SYS_RESTARTABLE_SYSCALLS, which does what
3048 AC_SYS_RESTARTABLE_SYSCALLS does, but using posix sigaction()
3051 - call BASH_SYS_RESTARTABLE_SYSCALLS if ac_cv_sys_restartable_syscalls
3057 - catch out-of-range jobs better in disown_builtin
3060 - don't build with GNU malloc on cygwin32
3063 - change signal_name to handle the case where signal_names[sig] is
3064 NULL, which can happen on cygwin32
3067 - changes to do_piping to make pipes text mode (O_TEXT) on cygwin32
3070 - new directory with cache files and other stuff for cross-compiling
3071 bash (currently only for building for cygwin32 on a Unix machine)
3073 cross-build/cygwin32.cache
3074 - new file containing configuration variable assignments for
3075 cygwin32 that would otherwise require a default case for AC_TRY_RUN
3078 - source ${srcdir}/cross-build/cygwin32.cache on CYGWIN32 systems
3079 if we're cross-compiling on a unix machine
3080 - set $CC_FOR_BUILD for cygwin32 cross-compiling environment
3083 - CC_FOR_BUILD is now a variable set by configure
3085 builtins/mkbuiltins.c
3086 - only check for read(2) returning <= 0 in extract_info() (error
3087 and exit on < 0, warning and return on == 0)
3090 - only check for read(2) returning <= 0 in _evalfile() (error and
3091 and failure return on < 0, success on == 0 while short-circuting
3098 - moved to lib/sh/vprint.c
3101 - added entries for vprint.[co] in the appropriate places
3103 cross-build/win32sig.h
3104 - a version of signames.h for cross-compiling for the CYGWIN32
3105 environment on a Unix machine (from noer@cygnus.com)
3108 - made all cases of AC_TRY_RUN and AC_TRY_COMPILE have reasonable
3109 default cases for cross-compiling, and tell the user what they are
3112 - removed vprint.c from shell sources and vprint.o from shell
3114 - added a level of indirection for signames.h -- the variable
3115 SIGNAMES_H is set by configure to either `lsignames.h' or
3116 a file for a cross-compilation environment (currently only
3117 the cygwin32 stuff is supported). Then that file is copied
3118 to `signames.h'. `lsignames.h' is created by `mksignames' as
3119 was previously used to create signames.h directly
3122 - set SIGNAMES_H to either `$(srcdir)/cross-build/win32sig.h' or
3123 `lsignames.h' as appropriate, substitute into Makefile
3127 builtins/Makefile.in
3128 - CC_FOR_BUILD is now set by configure and used to build mkbuiltins
3132 - new variable attribute `att_tempvar', set if the SHELL_VAR * was
3133 constructed on the fly from the temporary environment
3136 - find_name_in_env_array now sets the `att_tempvar' attribute on
3137 the SHELL_VAR it creates
3140 - search_for_command now disposes the SHELL_VAR created by searching
3141 the temporary environment for $PATH, if it is found there
3142 - _find_user_command_internal also disposes of the SHELL_VAR if it
3143 has the `att_tempvar' attribute set
3146 - show_name_attributes looks in the temporary environemnt, so it needs
3147 to dispose the SHELL_VAR if it has the att_tempvar attribute set
3150 - parameter_brace_expand_word now disposes of the SHELL_VAR returned
3151 by find_variable if it has the att_tempvar attribute set
3152 - ditto for param_expand and word_split
3155 - disallow null pid arguments instead of treating them as 0
3156 - display a usage message and return failure if no pid or job
3157 arguments are supplied
3161 builtins/declare.def
3162 - make `var=value declare -x var' behave the same as
3163 `var=value export var' and `var=value declare -r var' behave the
3164 same as `var=value readonly var', now that we have the `tempvar'
3170 - non-interactive shells shouldn't report jobs killed by a SIGINT,
3171 even if the standard output is to a terminal
3172 - pretty_print_job should add a CR at the end of its output if the
3173 shell is interactive and asynchronous notification is being
3174 performed. This fixes the problem with extra CRs in the output
3178 - changed canonicalize_pathname to change `//' into `/', but leave
3179 other pathnames starting with two consecutive slashes alone
3184 lib/readline/histexpand.c
3185 - fixed history_expand so that the appearance of the history
3186 comment character at the beginning of a word inhibits history
3187 expansion for the rest of the line
3192 - moved set_pipestatus_array to variables.c
3195 - new function, set_pipestatus_from_exit(int), which sets the
3196 PIPESTATUS variable from a command's exit status
3199 - extern declarations for set_pipestatus_from_exit and
3200 set_pipestatus_array
3203 - fixed execute_simple_command to call set_pipestatus_from_exit
3204 if a foreground builtin or function, or a foreground null
3210 - fixed run_startup_files to detect being run by sshd, and treat
3211 that case as equivalent to being run by rshd
3216 - make sure `set -a' doesn't cause SHELLOPTS to be exported when
3217 a change is made to one of the shell options
3222 - fix to shell_glob_filename in the code that uses a POSIX glob
3228 - fix cleanup_dead_jobs to hang onto the job corresponding to
3229 last_asynchronous_pid only if the shell is not interactive
3230 (this still has the problem that until a new async process
3231 is started, the job will stay in the jobs table)
3233 configure.in,aclocal.m4
3234 - added a new macro, BASH_TYPE_U_INT32_T, to check for u_int32_t
3235 separately from int32_t, since there are systems (HP-UX 10.20)
3236 that have a define for the latter but not the former
3241 - cleanup_dead_jobs no longer checks whether the job it is deleting
3242 corresponds to last_asynchronous_pid
3243 - notify_of_job_status and mark_dead_jobs_as_notified now will not
3244 mark the job corresponding to last_asynchronous_pid as notified
3245 if the shell is not interactive
3246 - wait_for_single_pid, if told to wait for last_asynchronous_pid,
3247 or the job of which it is a member, will take care of marking
3248 the job as notified after calling wait_for and collecting the
3249 status. This means that two successive `wait' calls for $! will
3250 succeed the first time and fail the second, as POSIX.2 specifies
3251 (take this code out if it causes problems)
3256 - wait_for_job, if told to wait for the job corresponding to the
3257 last async pid, will mark the job as notified after waiting for
3258 it and collecting the status
3261 - fixed MEMBER macro to avoid reading past end of S (it used to
3262 test s[1] before s[0], which is an error if s == "")
3265 - expand_word_internal should free ISTRING before returning if
3266 param_expand returns an error
3267 - parameter_brace_expand_word should free the memory it allocates
3268 and passes to param_expand
3271 - execute_arith_command should call dispose_words on the list
3272 returned by expand_words
3275 - after calling parse_arith_command, read_token needs to free the
3276 string value that parse_arith_command fills in, since make_word
3277 makes a copy of the string it's passed
3282 - cond_expand_word needs to free the value returned by string_list
3283 after it is run through quote_string_for_globbing
3286 - make sure cond_term frees yylval.word if it is just a `!' and
3287 it's parsed as a term negation operator
3290 - assign_array_var_from_string needs to free the word list returned
3291 by parse_string_to_word_list after calling expand_words_shellexp
3295 - changed execute_simple_command to avoid saving the_printed_command
3296 into command_line until just before it's needed. This should save
3297 time and prevent memory leaks on errors, but it must be watched
3298 closely to make sure that the_printed_command doesn't change out
3299 from under execute_simple_command before we copy it
3304 - alias and unalias should print error messages when passed an
3305 argument that is not an alias for printing or deletion,
3306 respectively, even if the shell is not interactive
3309 - `logout' will no longer exit a non-login non-interactive shell
3314 - add `koi8-r' as a legal LANG value
3317 - if `alias' or `alias -p' is executed when no aliases are defined,
3318 the return status should be 0, according to POSIX.2
3323 - changed a couple of calls to make_word_list (make_word(z), ...)
3324 to add_string_to_list (z, ...)
3327 - execute_cond_command now sets this_command_name to `[['
3332 - all_visible_{function,variable}s and the functions they call
3333 should be compiled in only if READLINE is defined
3338 - remove some leading whitespace before preprocessor statements in
3339 BASH_KERNEL_RLIMIT_CHECK
3342 - fix declarations for group_member so the extern declaration in
3343 general.h agrees with the definition in general.c (fix from
3344 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
3347 - print the new working directory if the shell is interactive
3349 - don't print the new working directory if it's found in $CDPATH
3350 if the shell is not interactive
3355 - fixes to bindpwd so that it copes with get_working_directory
3356 returning NULL (bug from schwab@issan.informatik.uni-dortmund.de)
3360 support/config.guess
3361 - add support for new OS name for SINIX SVR4 systems
3367 - `unset' should check that a function it's trying to unset is a
3368 legal identifier only when in POSIX mode
3371 - changed here_document_to_fd to try and make sure the filename
3372 used for the here document is `more unique', since the old
3373 version would fail if two here documents were created in less
3379 - POSIX.2 says that if CDPATH is used to find the new directory,
3380 and it's not relative to the current directory, the new directory
3381 name should be displayed on stdout even if the shell is not
3387 - changes so that `time' is recognized as a reserved word only at
3388 the beginning of a pipeline (the last read token is one of 0,
3389 `;', `\n', `&&', `||', or `&'):
3391 o add clause to special_case_tokens that does the check
3392 and returns TIME if the conditions are met
3393 o take check for `TIME' out of CHECK_FOR_RESERVED_WORD, but
3394 leave it in the word_token_alist so that `type' still
3395 reports it as a `keyword'
3396 o new function, time_command_acceptable(), encapsulates the
3397 necessary conditions for `time' to be returned as a
3400 [bash-2.02-alpha1 frozen]
3405 - fix define for isgraph so that it does not return success for space
3406 - fix strcompare() so that the call to strcoll is surrounded by
3412 - the `test' argument to brackmatch() should be of type `unsigned char'
3417 - make sure execute_arith_command sets this_command_name to `(('
3422 - make sure the code for pushing and popping strings is compiled in
3423 if either ALIAS or DPAREN_ARITHMETIC is defined, because the ((
3424 code uses push_string in the case of a nested subshell
3425 - fix cond_skip_newlines so it resets the prompt to $PS2 while
3426 parsing an unfinished conditional command
3428 dispose_cmd.c, copy_cmd.c, builtins/hash.def
3429 - fixes to not use `word' as a variable name or the name of a
3430 function parameter to get around stuff in the Cray Unix include
3434 - return failure immediately if an illegal format character is
3438 - make the code that creates here-documents behave better if the
3439 file it's trying to create already exists for some reason
3441 lib/readline/complete.c
3442 - changed print_filename to return the number of characters it
3443 outputs; changed callers to use that value. This makes columns
3444 line up when printing completion listings with filenames
3445 containing control characters
3448 - fixed a typo in the quote removal section
3453 - free_string_list() needs to check that t->expander is not NULL
3454 before trying to dereference it
3455 - reset_parser() doesn't need to set pushed_string_list to NULL
3456 after calling free_string_list(), since free_string_list does it
3458 configure.in,cross-build/cygwin32.cache
3459 - fixes from Geoff Noer for better cygwin32 cross-compilation
3461 tests/printf.{tests,right}
3462 - removed test for integer overflow, since error messages differ
3466 - fixed a problem with unquoted_glob_pattern_p that made things
3467 like `x+*' not expand correctly
3470 - fixed a problem with glob_pattern_p that made things like `x+*'
3471 not expand correctly
3474 - if `cd -P' is executed, or `set -o physical' has been executed,
3475 the value of $PWD after a successful cd will not contain any
3476 symlinks, regardless of whether or not the shell is in posix mode
3480 lib/readline/shell.c
3481 - include <string.h> or <strings.h> as appropriate
3486 - take out the code in backslash_quote() that looks for tildes to
3487 quote, for the time being
3488 - if getcwd() fails, get_working_directory now prints the error
3489 message corresponding to errno in addition to the rest of the
3490 information -- TENTATIVE CHANGE
3493 - fix from Paul Smith to make getcwd() behave better in the presence
3494 of lstat(2) failures
3497 - when copying the replacement string into the output string being
3498 constructed, strsub() needs to make sure enough space for the
3499 replacement string is allocated, not the length of the pattern
3500 (use REPLEN, not PATLEN)
3503 - make sure make_default_mailpath() has a valid current_user struct
3504 before trying to construct the default mailpath
3509 - execute_builtin needs to call run_unwind_frame if the builtin is
3510 `source' or `eval' and we're not in a subshell rather than just
3511 calling dispose_builtin_env, because not all invocations copy
3512 the temporary_env to builtin_env, and nested calls to `.' require
3513 that the temporary env given to the first persist until that first
3514 call to `.' finishes
3517 - fix to history_delimiting_chars so that function definitions like
3524 are saved to the history correctly when command_oriented_history
3525 is enabled, but literal_history is not
3528 - when calling internal_error from pre_process_line, use "%s" as
3529 the format with history_value as the argument to avoid the
3530 problem with the failed history event containing printf escape
3536 - if shell_initialized is non-zero, don't line-buffer stderr and
3537 stdout in shell_initialize on SunOS5 -- see if this fixes the
3538 crashing problems for scripts without a leading `#! /bin/sh'
3543 - added diffs to _ignore_completion_names from Andreas Schwab to
3544 complete names that would otherwise be ignored with FIGNORE if
3545 they are the only possible completions. Define NO_FORCE_FIGNORE
3546 if you want this; it is not defined by default
3551 - changed the bug-bash address to bug-bash@gnu.org
3553 examples/loadables/Makefile.in
3554 - converted from `Makefile' with some boilerplate configure variables
3555 to find the source and build directories -- still requires some
3556 hand-editing to get the right CFLAGS and LDFLAGS for shared object
3560 - create examples/loadables/Makefile with `make makefiles'
3563 - create examples/loadables directory so `make makefiles' can write a
3567 - make sure initialize_groups_array always sets things up so that
3568 ${GROUPS[0]} is the user's primary group (current_user.gid)
3572 lib/readline/parens.c
3573 - change the time delay when showing matching parens from 1.5 sec to
3579 - isnetconn() should call getpeername(fd,...) instead of using 0
3580 (though fileno(stdin) should always be 0)
3582 support/config.guess
3583 - updates from master FSF copy
3588 - modified version of man2html to convert bash.1 into bash.html
3591 - simple Makefile to create man2html
3594 - make sure support/Makefile is created
3597 - make sure support/Makefile is created and cleaned
3600 - changes to suffix rules to say how to make .html from .1
3601 - `bash.html' is now a makefile target, created by man2html from
3602 bash.1 rather than being hand-modified
3604 lib/sh/itos.c, general.c
3605 - new file, itos() from general.c. This is here because the
3606 implementation of strerror in lib/sh/strerror.c uses itos()
3608 Makefile.in, lib/sh/Makefile.in
3609 - changes to add itos.c in libsh.a
3611 externs.h, general.h
3612 - moved extern declaration of itos() from general.h to externs.h
3615 - changes to BASH_LARGE_FILE_SUPPORT for the LFS64_* variables in
3619 - make sure configure sets CPPFLAGS in this file
3624 builtins/command.def
3625 - make sure get_standard_path returns the value of
3626 STANDARD_UTILS_PATH if _CS_PATH is defined, but confstr(3)
3627 returns 0, indicating that _CS_PATH does not have a defined
3631 - fixed bash_history_inhibit_expansion() so that extended globbing
3632 expressions like *.!(c) are not history expanded if extended_glob
3633 is non-zero (shopt -s extglob has been executed)
3638 - changed release status to `beta1'
3640 [bash-2.02-beta1 frozen]
3644 lib/readline/vi_mode.c
3645 - make sure _rl_vi_save_insert() gets a non-null UNDO_LIST pointer
3646 before trying to do anything with it
3649 - add a call to internal_warning from wait_for_job if the job is
3651 - changed notify_of_job_status to not report pipelines exiting due to
3652 SIGPIPE in non-interactive shells if the shell is compiled with
3653 -DDONT_REPORT_SIGPIPE
3656 - some fixes to try to avoid /tmp file races and surreptitious
3660 - changed the extended version info to show 1998 as the copyright year
3663 - fixes from Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>
3664 for compilation errors when the shell is configured --disable-alias
3665 but with dparen arithmetic enabled
3668 - fixes from Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de> to
3669 make sure the input stream is popped correctly when performing an
3670 array assignment in the command argument to `bash -c', e.g.,
3674 - make `kill' with no arguments print a usage message and return a
3678 - fix so that rd_token doesn't dump core when trying to do alias
3679 expansion on a line containing an unclosed single quote (fix from
3680 Vasco Pedro <vp@di.fct.unl.pt>)
3683 - fix so that using a non-empty directory from CDPATH to construct
3684 the name of the directory to change to results in an absolute
3685 pathname of the new current working directory being displayed,
3686 as POSIX.2 specifies
3689 - a couple of small fixes to minimize /tmp file races -- the script
3690 is still raceable, the window is just smaller
3695 - make sure assign_in_env passes a malloc'd string to
3696 expand_string_unsplit, because some of the error code assumes that
3697 it is malloc'd and frees it (bug reported by Marko.Makela@HUT.FI)
3702 - changed the email addresses to use the @email texinfo tag
3705 - call reset_parser from the exit trap code before calling
3706 parse_and_execute, so reserved words are parsed correctly
3709 - make sure parameter_brace_patsub expands the pattern string as if
3710 the expression were not in double quotes, even if the entire
3711 expansion is enclosed in double quotes, so that quote removal
3712 on embedded double quotes is performed correctly (bug report from
3713 schwab@issan.informatik.uni-dortmund.de)
3717 support/config.guess
3718 - changes to allow Power PCs running Apple's Rhapsody to configure
3724 - changed release status to `beta2'
3726 [bash-2.02-beta2 frozen]
3731 - make sure command_substitute does not try to set the terminal's
3732 process group to a background job