From f73dda092b33638d2d5e9c35375f687a607b5403 Mon Sep 17 00:00:00 2001 From: Jari Aalto Date: Tue, 13 Nov 2001 17:56:06 +0000 Subject: Imported from ../bash-2.05a.tar.gz. --- CWRU/changelog | 11679 +++++++++------------------------------------- CWRU/empty-for-wordlist | 25 - CWRU/maildir-patch | 175 - 3 files changed, 2289 insertions(+), 9590 deletions(-) delete mode 100644 CWRU/empty-for-wordlist delete mode 100644 CWRU/maildir-patch (limited to 'CWRU') diff --git a/CWRU/changelog b/CWRU/changelog index 9126b6b9..67829991 100644 --- a/CWRU/changelog +++ b/CWRU/changelog @@ -1,10041 +1,2940 @@ - 12/23/1996 - ---------- -[bash-2.0 released] - - 12/27 - ----- -configure.in - - don't automatically use GNU malloc on FreeBSD, the builtin one - is supposed to be better (but doesn't have the debugging hooks) + 4/9/2001 + -------- +[bash-2.05 released] -builtins/exec.def - - check that full_pathname(command) doesn't return NULL because of - inaccessible parent directories + 4/10 + ---- +redir.c + - check return value of fclose() in write_here_document() for error + returns; don't just rely on fwrite() failing -support/config.sub - - recognize OpenBSD +support/bashbug.sh + - set TMPDIR to /tmp if it's null or unset + - use $TMPDIR in the TEMP tempfile name template + - fixed the call to `mktemp', if it exists, to make it more portable -execute_cmd.c - - broke the code that opens a file for output redirection when in - noclobber mode out into a separate function: noclobber_open(). - This tries to avoid race conditions and file replacement between - stat(2) and open(2) +jobs.c + - if WCONTINUED is not defined, define it to 0 and add a define for + WIFCONTINUED(wstatus) which expands to 0 + - add WCONTINUED to the flags passed to waitpid(2) in waitchld() + - don't increment children_exited if waitpid's status is WIFCONTINUED, + since we don't want to call a SIGCHLD trap handler in this case + - in waitchld(), we set child->running to 1 if WIFCONTINUED(status) + is non-zero + - make sure pretty_print_job doesn't check for the core dump bit if + the process has been continued; it's only valid if the job is dead + - in set_job_status_and_cleanup, set the job to JRUNNING if job_state + is non-zero and the job was previously marked as JSTOPPED -subst.c - - make sure pat_subst does not run off the end of its return - string when copying the unmatched portion of the input string +configure.in + - add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS - 12/30 - ----- -doc/Makefile.in - - don't install readline.3 by default +lib/glob/glob.c + - if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1 -lib/tilde/tilde.c - - removed an unnecessary check for string[i] being non-null in - tilde_find_suffix +jobs.c + - in kill_pid, we only need to block and unblock SIGCHLD if the + `group' argument is non-zero, since otherwise we just call `kill' + on the pid argument - 12/31 - ----- -support/config.{sub,guess} - - merged in changes from config.sub in autoconf-2.12 distribution +version.c + - update copyright date to 2001 -lib/readline/readline.c - - in rl_newline, only call _rl_vi_done_inserting and _rl_vi_reset_last - if readline is currently in vi mode +bashline.c + - prog_complete_return needs to take a `const char *' as its first + argument + - history_completion_generator needs to take a `const char *' as + its first argument, and `text' needs to be a `const char *' -lib/readline/display.c - - corrected a misuse of inv_lbreaks where vis_lbreaks was wanted in - the code that decides whether the cursor is at the beginning of - an otherwise-empty line + 4/11 + ---- +redir.c + - fixed a weird typo in redir_special_open, case RF_DEVFD, added + call to all_digits before call to legal_number + - fixed do_redirection_internal to call legal_number instead of atol(3) + when translating r_duplicating_{in,out}put_word, so it handles + overflow better + - produce an error message in redirection_error for out-of-range + file descriptors + - change allocation strategy in redirection_error so we don't have to + malloc scratch memory if redirection_expand() fails - 1/2/1997 - -------- -support/bashbug.sh - - fixed a typo, thanks to eggert@twinsun.com +jobs.h + - added defines for `running' member of a struct process -aclocal.m4 - - new test, BASH_STRUCT_DIRENT_D_FILENO, testing for d_fileno member - of struct dirent +general.c + - fix legal_number to return 0 when strtol(3) reports overflow or + underflow -configure.in - - call BASH_STRUCT_DIRENT_D_FILENO +parse.y + - changed read_token_word to call legal_number instead of atoi(3) -config.h.in - - new #define for STRUCT_DIRENT_HAS_D_FILENO +input.c + - return -1/EBADF from close_buffered_fd if fd is < 0 -lib/posixheaders/posixdir.h - - only define d_fileno as d_ino if STRUCT_DIRENT_HAS_D_INO is defined - and STRUCT_DIRENT_HAS_D_FILENO is not defined. This fixed the - problem of compiling getcwd.c on SunOS4.1.4 with cc +command.h + - fixed bogus comment about IS_DESCRIPTOR in description of the + REDIRECTEE struct - 1/3 - --- -lib/readline/complete.c - - fix a memory-used-after-freed bug reported by Andreas Schwab +print_cmd.c + - change cprintf's 'd' modifier code to display negative numbers as + an out-of-range value. We can do this only because the only use + of %d is to output file descriptor numbers in redirections -configure.in - - call BASH_CHECK_SOCKLIB only if getpeername is not found in libc - (ac_cv_func_getpeername = no) +support/mksignames.c + - need to include config.h to get a possible value for + UNUSABLE_RT_SIGNALS - 1/13 + 4/16 ---- +lib/readline/doc/rluser.texinfo + - corrected a small error in one description of M-DEL -builtins/getopt.h - - change #define guard to _SH_GETOPT_H to avoid similar guards in - /usr/include/getopt.h (Dec OSF/1 4.x, for example) - -variables.h - - fix assign_array_from_string so that it rejects attempts to assign - to readonly variables - -subst.c - - fix verify_substring_values to handle offsets that are past the - end or before the beginning (in the case of a negative offset) - of the expanded variable value - - 1/14 + 4/17 ---- -bashline.c - - fix a problem where any completion after a `cmd` command - substitution would inappropriately attempt command completion, - even if the previous command substitution was correctly closed - -builtins/evalstring.c - - unwind_protect remember_on_history even if the shell is not - interactive, since history can now be used in scripts, and - `source' will turn off interactive_shell before calling - parse_and_execute +stringlib.c + - need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER + in strcreplace() -jobs.c - - new function get_job_by_pid(pid, block) to translate a pid to - a job number. The block argument says whether or not to block - SIGCHLD +support/bashversion.c + - new file, prints bash version information -jobs.h - - new extern declaration for get_job_by_pid +Makefile.in + - rules for building bashversion and linking it to version.o -builtins/jobs.def - - call get_job_by_pid if an argument appears to be a pid rather - than a jobspec + 4/24 + ---- +conftypes.h + - new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from + variables.h -configure.in - - configure --without-gnu-malloc automatically on MachTen 4.x +variables.h, version.c + - include conftypes.h -builtins/cd.def - - change to mindist() so that a best guess of `.' returns 3, - which means not reasonable +patchlevel.h + - new file, contains define for PATCHLEVEL. Doing away with the old + scheme of having the information in configure.in -lib/posixheaders/memalloc.h - - changed hpux_9 to __hpux, since the new config stuff doesn't - define hpux_9 +version.c + - include patchlevel.h -subst.c - - fix parameter_brace_patsub to handle null patterns (doesn't - do anything) +Makefile.in + - run bashversion -p to find patch level rather than have configure + substitute in a value + - pass -S ${top_srcdir} to support/mkversion.sh -oslib.c - - slight change to bzero replacement +support/mkversion.sh + - don't put PATCHLEVEL define into version.h, but accept and ignore + a -p option + - take a new -S srcdir option + - find the patch level by parsing it out of patchlevel.h -support/bashbug.sh - - changed TEMP to be /tmp/bbug.$$ as a sop to systems with 14-char - file names +configure.in + - hard-code BASHVERS assignment instead of reading it from a file + - remove BASHPATCH; don't substitute it -doc/bashref.texi - - add note to POSIX Mode section that the output of `set' when - invoked without arguments is sorted when in POSIX mode +_distribution,_patchlevel + - removed - 1/15 + 4/26 ---- -support/recho.c - - a couple of changes prompted by a `gcc -Wall' - -subst.c - - changed ASSIGN_RETURN macro to use the do...while(0) idiom to - avoid problems with its multiple statements +shell.c + - call init_noninteractive() in open_shell_script if forced_interactive + is non-zero (the shell was started with -i) and fd_is_tty is 0 + (the script file is a real file, not something like /dev/stdin), + since it wasn't done earlier -builtins/setattr.def - - a bad identifier given to readonly or export without an assignment - statement (e.g. `readonly a[5]') is an error, but not an assignment - error (i.e., return EXECUTION_FAILURE rather than EX_BADASSIGN) +builtins/printf.def + - change for POSIX.2 compliance when conversion errors are encountered + when processing %d, %u, and floating point conversion operators + (print a warning message, return the value accumulated at the time + of the error -- which is always 0 -- and exit with a non-zero status) -tests/{{array,new-exp}.,tilde-}tests - - added `set +o posix' at the beginning to disable POSIX mode, which - causes some of the tests to fail. Some systems (e.g. LINUX-FT), - set POSIXLY_CORRECT by default +command.h + - added CMD_COMMAND_BUILTIN for use by the `command' builtin and the + code in execute_cmd.c -tests/test-tests - - added a warning if $UID is 0 to the effect that the test suite - should not be run as root - - worked around the `noread' and `nowrite' tests failing when run - as root +builtins/command.def + - add CMD_COMMAND_BUILTIN to the created command's flags -test.c - - began removing the remains of the STANDALONE code, since test is - included in GNU shellutils + 5/1 + --- +configure.in + - add call to AC_C_CONST to test `const' compiler behavior + - add call to AC_C_INLINE to test `inline' compiler behavior + - add call to AC_C_STRINGIZE to test cpp #x stringizing operator - 1/16 - ---- -lib/readline/{readline,display}.c - - a couple of slight changes to build on Win95 using djgpp (reported - by x-aes@telelogic.se) +config.h.in + - add `#undef const' for configure to substitute + - add `#undef inline' for configure to substitute + - add `#undef HAVE_STRINGIZE' for configure to substitute -Makefile.in - - changed TERMCAP_LIBDIR to TERM_LIBDIR, so building the termcap - library (if necessary) should work now +include/stdc.h + - remove code that defines or undefines `const' and `inline' + - change the __STRING macro to be defined depending on the value + of HAVE_STRINGIZE -bashline.c - - new function: quote_word_break_characters(), to backslash-quote - characters in a filename that the readline completion code would - treat as word breaks - - change bash_quote_filename to call quote_word_break_characters if - the completion quoting style says to use backslashes - - add `:' to rl_filename_quote_characters, since it's part of - filename_word_break_characters - -lib/posixheaders/posixjmp.h - - new file, with half of bashjmp.h - - posixjmp.h and lib/readline/posixjmp.h are symlinks to this file - -bashjmp.h - - include "posixjmp.h" for possible redefinitions of setjmp/longjmp - and procenv_t - - 1/17 - ---- -shell.c - - bad options now cause the standard shell usage message (a subset - of what `bash --help' prints) to be displayed on stderr +lib/malloc/malloc.c + - change the __STRING macro to be defined depending on the value + of HAVE_STRINGIZE -trap.c - - don't free the trap command for a DEBUG trap in - restore_default_signal if SIG_INPROGRESS is set -- there's already - a pointer saved to the old value in _run_trap_internal. This - makes bashdb run better, too +lib/readline/{readline,rlprivate}.h + - moved rl_get_termcap to readline.h, making it a public function -examples/bashdb/bashdb.{pre,fns} - - a couple of minor fixes; it actually has a chance of working now +lib/readline/readline.h + - new #define, RL_READLINE_VERSION, hex-encoded library version + number, currently set to 0x0402 + - new public int variable, rl_readline_version - 1/21 - ---- -config.h.in - - add a define for , HAVE_DLFCN_H +lib/readline/readline.c + - #define RL_READLINE_VERSION if it is not already defined (which it + should be in readline.h) + - initialize rl_readline_version to RL_READLINE_VERSION -configure.in - - look for , define HAVE_DLFCN_H if found +lib/readline/doc/rltech.texinfo + - documented rl_get_termcap + - documented rl_readline_version -builtins/enable.def - - include only if HAVE_DLFCN_H is defined +jobs.c + - job_exit_status should return an int, not a WAIT (undetected + before because on most POSIX-like systems a WAIT is really an int) -lib/readline/display.c - - renamed clear_to_eol to _rl_clear_to_eol and made it global, so - other library files (readline.c) can use it - - new function _rl_clear_screen, to clear the screen with the right - termcap escape sequence +builtins/evalfile.c + - added FEVAL_REGFILE (file must be a regular file) to accepted + _evalfile flags + - fc_execute_file() adds FEVAL_REGFILE to _evalfile flags. This + means that startup files and files read with `.' no longer need + to be regular files -lib/readline/readline.c - - call _rl_clear_to_eol and _rl_clear_screen instead of using tputs - - extern declarations for _rl_clear_to_eol and _rl_clear_screen + 5/2 + --- - 1/22 - ---- -mailcheck.c - - fixed a problem in make_default_mailpath() where a slash was not - added between the default mail directory and the username +lib/termcap/Makefile.in + - fix target for installed termcap library (normally unused) - 1/23 - ---- -stringlib.c - - added a fourth parameter to ansicstr: the length of the returned - string +lib/tilde/Makefile.in + - fix install target to install in $(libdir) (normally unused) -externs.h - - changed declaration of ansicstr +Makefile.in + - don't make $(man3dir) since there's nothing installed there -parse.y - - changed call to ansicstr -- saves a call to strlen +Makefile.in,doc/Makefile.in + - change `man1ext' to `.1', `man3ext' to `.3' + - change appropriate install targets to use new values of man[13]ext + - use `test ...' instead of `[...]' + - add support for DESTDIR root installation prefix, for package + building (installdirs, install, install-strip, uninstall targets) -builtins/echo.def - - changed call to ansicstr - - if do_v9 is non-zero, use putchar to output the string instead - of printf, since there may be embedded NULL characters +builtins/common.c + - new function int get_exitstat(WORD_LIST *list) returns an eight-bit + exit status value for use in return, exit, logout builtins -doc/{bash.1,bashref.texi}, builtins/trap.def - - modified the `trap' documentation to make it clearer that trap - takes multiple signal specs as arguments +builtins/common.h + - extern declaration for get_exitstat() -jobs.c, nojobs.c, jobs.h - - renamed initialize_jobs to initialize_job_control, added an - argument (force) +builtins/{exit,return}.def + - call get_exitstat where appropriate -jobs.c - - set shell_tty to fileno(stderr) in initialize_job_control if - the shell is not interactive. This fixes the problem of bad - tty pgrps when monitor mode is turned on in a non-interactive - shell - -sig.c - - made initialize_terminating_signals do only that; moved the rest - of the code that used to be there into a new function: - initialize_shell_signals, which calls initialize_terminating_signals - if the shell is interactive - - initialize_terminating_signals is now extern - - made reset_terminating_signals return immediately if - termsigs_intitialized is zero, meaning that - initialize_terminating_signals has not been called - -sig.h - - new extern declaration for initialize_terminating_signals +builtins/printf.def + - add support for "'" flag character as posix 1003.2-200x d6 says + - fix core dump when user-supplied field width or precision is 0 + - fix to printstr() to handle zero-length precision with `%b' format + specifier (printf '%.0b-%.0s\n' foo bar) + - fix to printstr() to treat a negative field width as a positive + field width with left-justification + - fix to mklong to avoid static buffers, which can always be overrun + by someone sufficiently motivated -trap.c - - call initialize_terminating_signals from set_signal if sig is - EXIT_TRAP and the shell is not interactive. Since the terminating - signals do not need to be initialized until a trap on exit is - set, not doing that at startup should result in a speed increase - for scripts +bashline.c + - change var in add_host_name to type `size_t' for passing to xrealloc + 5/3 + --- execute_cmd.c - - save and restore command->flags in time_command, so you can use - `time command' in a loop - - 1/24 - ---- -lib/readline/display.c - - fix redisplay code to wrap correctly if the prompt is longer than - the screen width (reported by bos@Eng.Sun.COM) + - change restore_signal_mask to accept a sigset_t *, since a sigset_t + may not fit into a pointer, change call -lib/readline/undo.c - - don't include , it's not needed +unwind_prot.c + - use a union UWP in restore_variable when restoring a variable whose + size is the same as sizeof(int), the reverse of the method used to + store it in unwind_protect_int -lib/readline/{util,readline}.c - - include "posixjmp.h" instead of - - readline_top_level is now a `procenv_t' instead of a `jmp_buf' - (now readline uses the correct posix semantics for preserving - the signal mask and other things across longjmp) +builtins/printf.def + - use a #define LENMODS containing the length modifiers instead of + testing against each possible modifier character, save any mod + character found + - add support for ISO C99 length specifiers `j', `t', and `z' + - if `L' modifier is supplied with a floating point conversion char, + pass a `long double' to printf if HAVE_LONG_DOUBLE is defined -parse.y - - fixes to push_string/pop_string to make them more general -- they - now can be used generally, instead of having to be associated - with an alias being expanded - - fixes to the parser so that it parses (( ls abc; ls def); ls ghi) - as a nested subshell command for backwards compatibility. Broke - the double-paren expression parsing off into a new function: - parse_arith_cmd, called from read_token when a `((' is seen. If - it looks like an arithmetic command, return `let' and set things - up so that the expression is returned as a double-quoted string - by the next call to read_token. If it's a nested subshell, push - the text we parsed onto the list of strings for later consumption - and return `(' +configure.in,config.h.in + - call AC_C_LONG_DOUBLE to check for `long double'; define + HAVE_LONG_DOUBLE if supported -lib/glob/glob.c - - fix glob_vector so it doesn't short-circuit checking a filename if - it starts with a `.' and the pattern starts with `\.' (if - noglob_dot_filenames is set). This makes `".junk2"*' match - `.junk2.txt' correctly +bashline.c + - fix an inadvertantly-unclosed comment in attempt_shell_completion + - make set_saved_history return a value + - make dynamic_complete_history return a useful value - 1/27 - ---- -support/bashbug.sh - - ask for confirmation before sending the bug report +{make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test, +pcomplete}.c + - removed some declared-but-unused variables -builtins/fc.def - - when editing and re-executing a multiline command, make sure - current_command_line_count is initialized and then incremented - for each line read from the file so that the lines added to - the history list by fc_replhist and fc_addhist obey the `lithist' - and `cmdhist' shopt options. Reported by tibbitts@pb.seflin.org +builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def + - removed some declared-but-unused variables - 1/28 - ---- -lib/readline/readline.h - - added a couple of extern declarations for variables described in - the documentation but heretofore undeclared +lib/sh/{zread,netopen}.c + - removed some declared-but-unused variables -builtins/ulimit.def - - try to catch some classes of integer overflows before calling - set_limit +execute_cmd.c + - in execute_arith_command, use a long variable to hold the result + of evalexp(), since that's what it returns - 1/29 - ---- -parse.y - - push and pop a `(' delimiter while parsing a $(...) construct, so - the history code doesn't try to inappropriately add a `;' when - a newline appears in the `...' +builtins/evalstring.c + - make cat_file return -1 on a read or write error -aclocal.m4 - - new macro, BASH_STRUCT_WINSIZE, which looks for `struct winsize' - in (or one of the files it includes) +lib/sh/stringlib.c + - make merge_stringlists() return the right value -configure.in - - call BASH_STRUCT_WINSIZE - - slightly reorganized the calls to bash-specific macros + 5/7 + --- +pcomplete.c + - remove typo that caused empty declaration (;;) -config.h.in - - add an `#undef STRUCT_WINSIZE_IN_SYS_IOCTL' +parse.y + - fix yyerror() to accept a single string argument; fix callers -jobs.c, nojobs.c - - only look in sys/ptem.h for struct winsize if - STRUCT_WINSIZE_IN_SYS_IOCTL is not defined to cpp +trap.c + - cast pointer to long instead of int when printing message with + internal_warning() in run_pending_traps() - 1/30 - ---- -.{distribution,patchlevel} - - renamed to _{distribution,patchlevel} +subst.c + - fix process_substitute to handle stdin being closed -configure.in - - create a variable BASHVERS, from the contents of _distribution, - and a variable BASHPATCH, from the contents of _patchlevel, - (using m4 magic so we don't have to distribute .distribution - and .patchlevel) and substitute them into Makefile.in +test.c + - change `while' to `if' in and() and or(), since the loop isn't + actually performed -- there's an unconditional `return' in the + loop body + - check for integer overflow of arguments to `-t' -Makefile.in - - use Version and PatchLevel variables instead of the contents of - .distribution and .patchlevel, respectively. These are set by - configure - - removed `.machine' from targets and dependencies +lib/sh/netopen.c + - change _getserv() to reject negative port/service numbers -support/mkversion.sh - - new shell script to handle updating version.h, replaces mkversion.c - (which is now overkill) +expr.c + - fix strlong() to not convert the base specification from long to + int before checking for overflow, since truncation on machines + where sizeof(int) != sizeof(long) may mask errors -support/mkdist - - don't bother with writing .distribution and .patchlevel files, - since they're no longer distributed +builtins/{jobs,kill,wait}.def + - use legal_number instead of atoi when converting strings to pid_t; + check for numeric overflow -support/mknewvers.sh - - simple bash script to make new version files. It can increment - the major or minor version numbers or patchlevel, or take a - completely new version number (e.g., 2.01) as an argument +input.c + - fix for cygwin in b_fill_buffer -- off-by-one error when checking + buffer for \r\n termination -doc/Makefile.in - - added support for the `install-info' command to update the info - directory file after installing bash.info +general.h + - new #define INT_STRLEN_BOUND(t), computes max length of string + representing integer value of type T, possibly including a sign + character + - include if it's present - 1/31 - ---- -builtins/help.def - - fix core dump with `help --' +{execute_cmd,findcmd,test}.c + - don't include , since general.h does it now -susbt.c - - make call_expand_word_internal obey the convention that if - expand_word_internal returns &expand_word_{fatal,error}, then - w->word has already been freed - - return &expand_word_fatal from expand_word_internal if the shell - is not interactive and `set -u' has been executed +{execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c + - use INT_STRLEN_BOUND instead of static array sizes when converting + various strings to integer values -test.c, general.c - - moved group_member from test.c to general.c +shell.h + - struct fd_bitmap now uses an `int' size, since it's bounded by + the number of file descriptors, which must fit into an `int' -externs.h, general.h - - moved extern declaration of group_member from externs.h to general.h +execute_cmd.c + - FD_BITMAP_DEFAULT_SIZE is now 32, not 32L + - new_fd_bitmap takes an `int' size parameter, not a `long' -general.c - - broke the code that initializes the group array out into a new - function, initialize_group_array() - - initialize_group_array() now initializes an array even if the OS - does not have getgroups(). If it does not, an array with one - element (the real gid) is created - - call sysconf(_SC_NGROUPS_MAX) if sysconf is available and - _SC_NGROUPS_MAX is defined - - new function, char **get_group_list(int *), to return an array - of strings made from the groups list +execute_cmd.h + - change prototype for new_fd_bitmap() -variables.c - - new dynamic array variable: GROUPS, expands to the group set as - obtained with getgroups() (or whatever initialize_group_array() - makes) +test.c + - fix test_stat to check for overflow when parsing the integer file + descriptor number; return ENOENT instead of EBADF for files that + are not open -doc/{bash.{1,html},bashref.texi} - - added description of GROUPS variable +hashlib.c + - don't discard the upper 32 bits of the random value, if present -test/test-tests - - before modifying the setgid bit on /tmp/setgid, try to change its - group to ${GROUPS[0]} +lib/readline/shell.c + - use the same INT_STRLEN_BOUND mechanism to decide how much space to + allocated in sh_set_lines_and_columns - 2/3 + 5/8 --- aclocal.m4 - - new autconf macro, BASH_MISC_SPEED_T, to see if speed_t is defined - in + - add check for libtinfo (termcap-specific portion of ncurses-5.2) to + BASH_CHECK_LIB_TERMCAP + - new macro, RL_LIB_READLINE_VERSION, checks version of installed + readline library and (optionally) writes version #defines to + config.h. Bash doesn't use the version defines configure.in - - call BASH_MISC_SPEED_T + - call RL_LIB_READLINE_VERSION instead of support/rlvers.sh -config.h.in - - add `#undef SPEED_T_IN_SYS_TYPES' +execute_cmd.c + - fix execute_shell_script and the WHITECHAR and STRINGCHAR macros + to check array bounds before indexing into the sample string -lib/readline/tcap.h - - include `rltty.h' if HAVE_TERMCAP_H and __linux__ are defined, but - SPEED_T_IN_SYS_STYPES is not, before including +unwind_prot.[ch] + - import new versions submitted by Paul Eggert + with a couple of changes for backwards compatibility, so the rest + of the source doesn't need to be changed yet -support/mksignames.c, siglist.c - - add support for 4.4 BSD SIGLOST +jobs.c + - use unwind_protect_var on last_made_pid in run_sigchld_trap -support/config.guess - - add support for recognizing QNX based on `uname' output +builtins/bind.def + - use unwind_protect_var on rl_outstream -Makefile.in - - make sure recho and zecho are compiled with the same set of CC - options as the rest of the sources +general.c + - rework print_rlimtype to use INT_STRLEN_BOUND and handle the + most negative number correctly -lib/readline/bind.c - - change calls to rl_generic_bind to cast the third argument to - (char *) where necessary +expr.c + - `tokval' should have been a `long', since all arithmetic is done + as longs -command.h - - two new flags: CMD_AMPERSAND (currently unused), and CMD_STDIN_REDIR, - which means that this command should have its standard input - redirected from /dev/null if there are not any explicit redirections - to stdin +builtins/history.def + - consolidate tests for valid history position in one block to + avoid duplicate code and strings -execute_cmd.c - - a redirection of type r_inputa_direction is no longer added at the - beginning of the redirection chain for an async command; - CMD_STDIN_REDIR is set in the flags instead - - new function: stdin_redirects: returns the number of redirections to - stdin in a chain of redirections - - new functions: async_redirect_stdin() to open /dev/null and make it - file descriptor 0 - - changes to make CMD_STDIN_REDIR propagate to all of the necessary - functions (like execute_simple_command) - - execute_disk command now takes the flags from simple_command rather - than just the CMD_NO_FORK flag as its last argument - - various places after make_child is executed (in the child) check for - CMD_STDIN_REDIRECT (and no stdin redirections or piping) and call - async_redirect_stdin - - stdin_redir is now global +builtins/ulimit.def + - fix check for overflow when setting limit to work when int is 32 + bits and RLIMTYPE is 64 -eval.c - - set stdin_redir to 0 just before calling execute_command so it - gets reset to a known value and doesn't persist across commands +lib/sh/tmpfile.c + - don't truncate the result of time(3) to int; just use time_t, + since it's being assigned to an `unsigned long' + +mailcheck.c + - use legal_number instead of atoi in time_to_check_mail() to catch + more numeric errors; consolidate error checking in one block + - last_time_mail_checked should be a time_t - 2/4 + 5/9 --- -builtins/ulimit.def - - add a stub function for ulimit(2) on systems without HAVE_RESOURCE - or HAVE_ULIMIT that just sets errno to EINVAL and returns -1 -- - QNX is one such system +builtins/set.def + - recognize `set [-+]o nolog' if HISTORY is defined -bashhist.c - - pre_process_line needs to protect all occurrences of hist_verify - with #ifdef READLINE +bashline.c + - new variable `dont_save_function_defs', set by `set -o nolog'; + currently ignored -builtins/shopt.def - - hist_verify needs to be protected with #ifdef READLINE, not - #ifdef HISTORY +command.h + - the `dest' member of a REDIRECTEE is now an `int' - 2/5 - --- -support/config.{guess,sub}, configure.in - - chages to better support the Harris Night Hawk +parse.y,redir.c + - changed uses of `redir.test' (where redir is a REDIRECTEE) since + it's now an int + +lib/readline/rlstdc.h + - don't mess around with `const', rely on configure to supply a + proper definition if the compiler doesn't support it -[many files] - - changes for things pointed out by gcc -Wall +lib/tilde/tilde.h + - include if HAVE_CONFIG_H is defined + - don't mess around with `const', rely on configure -lib/glob/Makefile.in - - make sure -DSHELL is included in CCFLAGS so that globbing is - interruptible +builtins/shopt.def + - new read-only `shopt' option, login_shell, non-zero if shell is a + login shell (as decided by shell.c) + - new function set_login_shell(), sets shopt private value of + login_shell -lib/malloc/malloc.c - - extern declaration for botch: if botch is #defined, it should be - the name of a void function +builtins/common.h + - new extern declaration for set_login_shell -configure.in,Makefile.in,builtins/Makefile.in, -lib/{glob,malloc,readline,tilde}/Makefile.in - - add a LOCAL_DEFS variable, substituted from configure into the - various Makefiles. It's set to -DSHELL, so that define gets - passed to all sub-makes without doing anything special +shell.c + - call set_login_shell after setting value of login_shell (in + main() and set_shell_name()) -lib/readline/readline.c - - change to rl_digit_loop to make it compatible with GNU emacs: - if a key bound to `universal-argument' is read after reading - some digits, it terminates the argument but is otherwise - ignored. This is how people can insert repeated digits +parse.y + - added new `\A' prompt string escape sequence: time in 24-hour + HH:MM format -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - changed description of `universal-argument' to describe how - to terminate a numeric argument +configure.in, config.h.in + - check for , define HAVE_GRP_H if found - 2/6 - --- -jobs.c - - changed kill_pid to diddle the job and process data structures - if we're sending SIGCONT to a stopped job with `kill' so that - the shell knows the job is running again. ksh93 does this +builtins/complete.def + - add new `-A group/-g' option to complete group names - 2/7 - --- -unwind_prot.c - - changed bcopy to FASTCOPY +pcomplete.h + - new define for CA_GROUP, used with group name completion -builtins/enable.def - - changed pointer arithmetic in delete_builtin to just subtract - the head of the builtins list (shell_builtins) from a pointer - to the builtin to be deleted (b) to find its index in the list - on ANSI C systems +pcomplete.c + - add code to support CA_GROUP group name completion - 2/10 - ---- -lib/readline/bind.c - - when using old-style keynames to bind to a new-style macro, - pass an array of type (unsigned char *) to rl_macro_bind +bashline.c + - new function, bash_groupname_completion_function(), supports + programmable completion of group names -builtins/getopt.c - - change sh_getopt to return EOF if nextchar is empty or NULL - and sh_optind is greater than argc. This can happen if a - script mixes calls to `getopts' with calls to `shift' +bashline.h + - extern declaration for bash_groupname_completion_function - 2/11 - ---- -print_cmd.c - - fixed make_command_string_internal so that commands with the - CMD_TIME_POSIX flag set print `time -p' instead of `time' - - changed print_redirection_list so the here documents are - printed after all the other redirections, and followed by a - newline (rather than a possible semicolon) - - added a new variable, was_heredoc, to avoid adding a semicolon - at the beginning of an empty line after printing the heredoc - ending delimiter +lib/readline/bind.c + - new inputrc variable, `match-hidden-files', controls completion + matching files beginning with a `.' (on Unix) -execute_cmd.c - - don't put the gnu_argv_flags into the environment any more; it's - proven to be a bad idea +lib/readline/complete.c + - new variable, _rl_match_hidden_files, mirrors `match-hidden-files' + inputrc variable -configure.in - - set LOCAL_CFLAGS to `-DSunOS5' on Solaris 5.5[.x] +lib/readline/rlprivate.h + - extern declaration for _rl_match_hidden_files -builtins/echo.def - - only call fflush() after printing each word on SunOS 5.5, since - that's the system with the bug that prompted its inclusion in - the first place +builtins/hash.def + - new `-t' option to list hash values for each filename argument -support/mksignames.c - - added support for more system-specific signals from AIX 4.2, - changed initialization order so that system-specific signals - are done first, before the common signals +builtins/read.def + - alarm(3) takes an `unsigned int' argument, not int + - check for arithmetic overflow with -t and -n options - 2/12 - ---- -execute_cmd.c - - broke the code that creates a file containing the text of a - here document out into a separate function: here_doc_to_fd - - create the temp file used for a here document with mode 600 - - open the temp file used for a here document with O_EXCL +input.c + - check for read error before doing \r\n translation on cygnus in + b_fill_buffer + - reset bp->b_used to 0 instead of leaving it at -1 on read error + in b_fill_buffer -shell.h - - changed the uid members of struct user_info to be of type uid_t - and the gid members to be of type gid_t +builtins/shopt.def + - new functions, shopt_setopt(name, mode) and + shopt_listopt(name, mode) to give the rest of the shell an easy + interface -parse.y - - changed the type of the `type' argument to init_yy_io() to be - `enum stream_type', since that's what's always passed +builtins/common.h + - extern declarations for shopt_setopt and shopt_listopt -input.h - - changed the function prototype for init_yy_io so the third arg is - type `enum stream_type' +shell.c + - new invocation options -O and +O, to list or set/unset shopt + options like +o/-o sets and unsets `set -o' options -externs.h - - added a prototype for getcwd, if HAVE_GETCWD is not defined +doc/{bash.1,bashref.texi} + - document `set -o nolog' + - document `login_shell' shopt option + - document new `\A' prompt string escape sequence + - document new `-t' option to `hash' + - document new `[+-]O' invocation option -builtins/umask.def - - changed all variables that are used as arguments to or save the - return value from umask(2) to be of type mode_t - - changed print_symbolic_umask to take an argument of type mode_t +doc/bashref.texi + - add text to `Invoking Bash' section defining a login shell; text + taken from man page - 2/13 - ---- -jobs.c - - if old_sigint_handler is set to SIG_DFL, as it will be in a script - without a trap on SIGINT installed, call termination_unwind_protect() - directly from waitchld() +doc/bash.1, lib/readline/doc/rluser.texinfo + - documented new complete/compgen `-A group/-g' option - 2/14 +lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 + - documented new `match-hidden-files' inputrc variable + + 5/10 ---- configure.in - - added a section before the call to BASH_CHECK_LIB_TERMCAP to - set a variable prefer_curses on some systems (AIX, for one) + - fix AC_CHECK_PROG(ar, ...) + - add AC_CHECK_TYPE for ssize_t -aclocal.m4 - - in BASH_CHECK_LIB_TERMCAP, don't return -ltermcap if $prefer_curses - is non-empty +config.h.in + - new #undef for ssize_t -lib/readline/Makefile.in - - redid the dependencies +lib/sh/zread.c + - int -> ssize_t fixes to mirror modern declarations of read and write + - the `off' variable in zsyncfd should be an off_t since it computes + a file offset + - the local buffer `lbuf' is now char, since it's not nice to pass + unsigned char * to read(2), and the values from it are assigned to + a char anyway + - lind and lused are now size_t, since they index into a buffer + - set lused to 0 on read error - 2/17 - ---- -hashlib.c, getcwd.c - - include `bashansi.h' instead of stdlib.h and string.h +lib/sh/zwrite.c + - change second argument to type `char *', since ISO C says you have + to pass a `char *' to `write' -error.c, siglist.c, xmalloc.c, builtins/{common,evalfile,mkbuiltins,psize}.c, -builtins/{exec,exit,fg_bg,hash,history}.def - - include `bashtypes.h' instead of directly including +externs.h + - fix extern declarations of zread, zread1, zreadc, and zwrite + - prototype extern declaration of qsort_string_compare + - add extern declaration for history_delimiting_chars() from parse.y -builtins/fc.def - - include ../bashtypes.h and ../posixstat.h instead of bashtypes.h - and posixstat.h +input.h + - b_used and b_inputp members ofr struct BSTREAM are now size_t -builtins/mkbuiltins.c - - include ../posixstat.h instead of +builtins/evalstring.c + - the number of chars read with zread in cat_file should be assigned + to a variable of type ssize_t -general.h - - include `bashtypes.h' if RLIMTYPE is defined, so we can fetch - a definition of quad_t (or whatever) from before - using it in a function prototype +input.c + - the number of chars read with zread in b_fill_buffer should be + assigned to a variable of type ssize_t + - `localbuf' is now type char[], since POSIX says you shouldn't pass + unsigned char * to read(2) + - in getc_with_restart(), use a variable of type unsigned char to + get a value from the local buffer and return it + - in ungetc_with_restart, explicitly return the character arg passed + to avoid relying on localbuf being unsigned char -Makefile.in, builtins/Makefile.in - - updated dependencies +subst.c + - the number of chars read with zread in read_comsub should be + assigned to a variable of type ssize_t - 2/18 - ---- -builtins/set.def - - new function, set_posix_mode, called when `set [-+]o posix' - or `shopt -[su] -o posix' is executed. It sets or unsets - $POSIXLY_CORRECT and calls sv_strict_posix +mksyntax.c + - instead of casting to unsigned char * in addcstr, use a variable + of type unsigned char and let the compiler do the work + +parse.y + - instead of casting to unsigned char * in yy_readline_get, use a + variable of type unsigned char and let the compiler do the work + - ditto for yy_string_get and shell_getc (cast to unsigned char) subst.c - - in sv_strict_posix, call posix_readline_initialize only if - the shell is interactive (interactive_shell != 0) + - instead of casting to unsigned char when assigning to ifscmap in + expand_word_internal, use a variable of type unsigned char and + let the compiler do the work -shell.c - - if we are acting like `sh', call posix_readline_initialize - if the shell is interactive - - moved the code that does posix.2 mode initialization after - interactive_shell is set, and call posix_readline_initialize - if interactive_shell is non-zero +lib/sh/strtrans.c + - instead of casting to unsigned char in ansic_quote, use a variable + of type unsigned char and let the compiler do the work -bashwait.h - - renamed to unionwait.h, since that is what it defines +builtins/evalstring.c + - remove extern declarations for zwrite and run_trap_cleanup; they're + in externs.h + - prototype cat_file forward declaration -posixwait.h - - moved the POSIX 1003.1 job control defines here from jobs.h +Makefile.in + - remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES -jobs.h - - include `posixwait.h' +aclocal.m4 + - change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR, + and RL_INCLUDEDIR to what it used to test the installed readline + library version for use by the caller + - change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if + the caller has already assigned it a value + - rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir, + _rl_includedir -> ac_cv_rl_includedir + +configure.in + - change testing of whether to use the value of + $opt_with_installed_readline to be != no, to allow the user to + specify a prefix where the installed readline library may be found + - if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix + to PREFIX before calling RL_LIB_READLINE_VERSION + - if --with-installed-readline[=PREFIX] is supplied, don't set + RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care + of it, set RL_INCLUDE=-I${RL_INCLUDEDIR} + - if --with-installed-readline[=PREFIX] is supplied, and we're + linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR + so we use the same version of the installed readline and history + libraries - 2/19 - ---- -braces.c - - if SHELL is defined, pass the contents of new-style command - substitution through without expanding brace constructs between - the parens -- let the subshell do it +Makefile.in, builtins/Makefile.in + - have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable -subst.c - - when brace-expanding words, preserve the flags (word->flags) if - brace expansion does not change the word. This fixes the problem - of things like +doc/bashref.texi + - updated description of --with-installed-readline configure option - local -a avar=( ${PATH//: } ); +general.c + - moved QSFUNC typedef here from builtins/common.c -bashline.c - - have shell_expand_line pass a copy of rl_line_buffer to expand_string - in case there are substitution errors and the string gets freed +{alias,bashline,variables,lib/sh/stringvec}.c + - cast fourth argument to qsort to (QSFUNC *) - 2/20 - ---- -expr.c - - make sure that expland and explor set `lasttok' to LAND and LOR, - respectively, if they parse `&&' or `||'. This makes the - precedence code work right +alias.c + - prototype forward declaration of qsort_alias_compare -subst.c - - changes so that non-interactive shells exit immediately when a - parameter that is unset is referenced after `set -u' has been - executed causes the shell to exit immediately +bashhist.c + - include for extern declaration of glob_pattern_p + - remove extern declaration of history_delimiting_chars; it's now + in externs.h + - prototype forward declarations of histignore_item_func, + maybe_add_history, and bash_add_history - 2/21 - ---- -flags.c - - if `set -r' is executed, call maybe_make_restricted so that $PATH - and $SHELL are made read-only +bracecomp.c + - remove extern declaration for sh_backslash_quote; it's in externs.h -execute_cmd.c - - if `set -e' has been executed, and we're inverting a pipeline's - return status with `!', set CMD_IGNORE_RETURN so a failing - command does not inadvertently cause the shell to exit before - the exit status can be inverted. This is probably only a problem - with the `eval' builtin. +braces.c + - remove extern declaration for extract_command_subst; it's in subst.h + - prototype forward declarations for expand_amble, array_concat, and + brace_gobbler - 2/24 - ---- -builtins/hash.def - - add a missing argument of 0 to add_hashed_command +error.c + - prototype extern declaration of give_terminal_to, fix bad call -builtins/kill.def - - job identifiers can be used in non-interactive shells as long as - job control has been turned on with `set -m' +{execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir, +shell}.c + - prototype all static forward function declarations -jobs.c - - we want to be notified of stopped jobs if job_control is non-zero, - even if the shell is not interactive +pcomplete.c + - changed some function parameters to `const char *' to avoid discarding + const qualifier -execute_cmd.c - - make sure shell_execve returns EX_NOTFOUND if execve fails and - errno is set to ENOENT - - makes sure execute_builtin saves the temporary environment to - builtin_env for the `eval' builtin, since it can destroy the - temporary environment when it calls parse_and_execute +make_cmd.c + - make_bare_word, make_word_flags, and make_word now take a + `const char *' string argument -bashhist.c - - new variable: hist_last_line_added, set to 1 if the last command - line was added to the history successfully as a separate entry. - Used by `history' and `fc' +make_cmd.h + - changed extern declarations for make_bare_word and make_word - 2/25 - ---- -trap.c - - save line number before executing trap command, because - parse_and_execute resets it to 1 and the trap command might - want it +print_cmd.c + - cprintf now takes a `const char *' as its first argument, like + xprintf and printf + - the conditional define for xprintf should have been HAVE_VPRINTF, + not HAVE_VFPRINTF -execute_cmd.c - - change to executing_line_number to return trap_line_number if - the shell is currently running a trap +shell.c + - in isnetconn(), the return value of sizeof() is size_t + +aclocal.m4 + - add inclusion of stddef.h if STDC_HEADERS is defined to 1 in + BASH_CHECK_TYPE + +configure.in + - add a call to BASH_CHECK_TYPE for socklen_t (type of third argument + to getpeername(2)) - 2/26 + 5/11 ---- -execute_cmd.c - - change to time_command so that a `real' value of 0 does not - cause a divide-by-zero error when computing cpu percentage +lib/readline/bind.c + - make `useq' a char array to pass to rl_macro_bind in + rl_parse_and_bind -lib/readline/signals.c - - if MUST_REINSTALL_SIGHANDLERS is defined, reinstall the SIGWINCH - handler in rl_handle_sigwinch +lib/readline/{{bind,isearch}.c,rlprivate.h} + - _rl_isearch_terminators is now a char *, not unsigned char * -builtins/set.def - - `unset' now rejects attempts to unset names that are not valid - shell identifiers as errors - - add a description of `-o history' option to help text +{subst,variables,lib/sh/tmpfile}.c + - dollar_dollar_pid is now a `pid_t' instead of `int' -subst.c - - in parameter_brace_patsub, we want backslash removal done on - the replacement if (mflags & MATCH_QUOTED), since the code - in expand_word_internal will not do it. We need to call - expand_string_unsplit directly, since maybe_expand_string does - not do the right thing +variables.c + - sbrand() now takes an `unsigned long' to set the seed value + - changed last_random_value to type int, since it's always between + 0 and 32767 + - use strtoul to convert the value in assign_random instead of atoi + - take out casts in any arguments to sbrand() + - take out cast to int in call to inttostr in set_ppid() - 2/28 - ---- -execute_cmd.c - - if execute_for_command finds that the iteration variable is readonly, - decrement loop_level before returning +subst.c + - don't cast last_asynchronous_pid when passing to itos() -builtins/break.def - - if the break count is <= 0, display an error message and break out - of all loops +{sig,subst}.c + - prototype all static forward function declarations -builtins/command.def - - if PATH is unset, and we're using command -p, we don't want PATH - to be set to the empty string when `command' completes + 5/14 + ---- +{test,trap,variables}.c + - prototype all static forward function declarations -builtins/common.c - - POSIX.2 says `kill -l signum' prints the signal name without the - leading `SIG' prefix, so check for this_shell_builtin == kill_builtin - in display_signal_list +variables.c + - free_variable_hash_data() now takes a PTR_T, a `generic pointer' -builtins/getopts.def - - when invoked without any arguments, `getopts' now prints a usage - message +builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help, +history,jobs,pushd,read,set,trap,umask, + - prototype all static forward function declarations - 3/3 - --- -builtins/common.c - - add a second argument to get_numeric_arg: if non-zero, the shell - exits on a bad argument; if not, the shell jumps to top_level - with a DISCARD argument, which aborts the current command +builtins/read.def + - reset_eol_delim now takes a `char *' arg, since that's what the + unwind_protect functions pass it, and it ignores its arguments + anyway -builtins/{break,exit,history,return,shift}.def - - change calls to get_numeric_argument +lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c + - prototype all static forward function declarations -lib/readline/funmap.c - - add `dump-macros' to list of bindable names +lib/tilde/tilde.c + - prototype all static forward function declarations + - tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and + glue_prefix_and_suffix now take `const char *' arguments where + appropriate -lib/readline/readline.h - - added extern declaration for rl_prompt (it was apparently missing) +configure.in,config.h.in + - check for vsnprintf, define HAVE_VSNPRINTF if found -lib/readline/readline.c - - new internal function, _rl_init_line_state, which sets rl_point - and rl_end to 0, sets the_line to point to _rl_line_buffer, and - clears the line +lib/readline/display.c + - use vsnprintf() in rl_message if it's available; if we don't, at + least set the last character in msg_buf to 0 to avoid overrun -- + we really can't do anything about overflow at this point. if it's + available, this fixes buffer overflow problems in rl_message -lib/readline/callback.c - - if a user's callback function does not clear the line, clear it - for him by calling _rl_init_line_state + 5/15 + ---- +lib/readline/histexpand.c + - in get_history_word_specifier, allow any character to terminate + a `:first-' modifier, not just `:' and null. This is what csh + appears to do. This allows things like `!:0- xyzzy' to replace the + last argument with xyzzy - 3/4 - --- -alias.c - - made the readline support functions #ifdef READLINE, so they're - not compiled into the shell unless readline is + 5/18 + ---- +configure.in, config.h.in + - check for , define HAVE_STDINT_H if found + - check for intmax_t in , define intmax_t as long if not + found -lib/readline/bind.c - - new function _rl_untranslate_macro_value, to expand meta-prefixes - and other special characters in a macro value for printing by - _rl_macro_dumper_internal - - call _rl_untranslate_macro_value in _rl_macro_dumper_internal to - get a printable version of the macro value + 5/21 + ---- +builtins/kill.def + - change to use strerror() for error message when kill(2) fails -lib/readline/readline.c - - new variable, rl_dispatching, set to 1 when we call a function - from _rl_dispatch +aclocal.m4 + - new macro, BASH_C_LONG_LONG, check for `long long' -lib/readline/readline.h - - extern declaration for rl_dispatching +configure.in, config.h.in + - call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found -lib/readline/complete.c - - make sure S_ISCHR and S_ISBLK are defined before using them +lib/sh/snprintf.c + - new file, with implementations of snprintf, vsnprintf, asprintf, + and vasprintf, derived from inetutils version -lib/readline/terminal.c - - add a new #define NEED_EXTERN_PC. Define this if the termcap - or curses libraries need `extern' before declarations of PC, - BC, and UP +Makefile.in, lib/sh/Makefile.in + - add snprintf.c/snprintf.o -lib/readline/{readline,terminal,histfile}.c - - changes to compile on OS/2 with OS/2 `EMX' port of gcc, originally - sent by ilya@math.ohio-state.edu +configure.in, config.h.in + - add checks for snprintf, asprintf, vasprintf, with appropriate + cpp defines -builtins/set.def - - fixed a bug in set_shellopts that caused the shell to crash if - there were no shell options set +lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c + - xmalloc and xrealloc now take `size_t' arguments, like their bash + counterparts - 3/5 - --- -configure.in,Makefile.in - - choose run-all or run-minimal as the test script based on whether - the --enable-minimal-config option was given to configure +externs.h,lib/sh/itos.c + - inttostr and itos now take `long' arguments + - inttostr takes a `size_t' argument for the buffer size + +{expr,lib/malloc/malloc,variables,general}.c + - fixed calls to itos() by removing casts, etc. + +subst.[ch] + - get_dollar_var_value now takes a long, not an int + - sub_append_number now takes a long, not an int + +subst.c + - in parameter_brace_expand_word, use a long and legal_number to + translate ${N}, to avoid overflow + - in parameter_brace_expand_length, use a long and legal_number to + translate ${#N}, to avoid overflow + - in do_array_element_assignment, array_expand_index, + array_value_internal, use arrayind_t instead of int + - let verify_substring_values take long * arguments for the return + value of evalexp() + - pass long * arguments to verify_substring_values in + parameter_brace_substring + - parameter_brace_expand_length now returns `long' + - parameter_brace_expand now uses a long variable for the return + value of parameter_brace_expand_length + - param_expand now uses a long variable for the return value from + evalexp + - array_length reference now returns an `arrayind_t', since it can + return the num_elements member of an array, which is of type + arrayind_t -builtins/setattr.def - - fixed `export -p' and `readonly -p' so that they output `export' - or `readonly' when in POSIX mode, as POSIX.2 specifies +subst.h + - array_expand_index now returns an `arrayind_t' - 3/6 - --- -builtins/setattr.def - - make `readonly -a var=(...)' work just like `declare -ar var=(...)', - since the two logically mean the same - - `readonly -f' and `export -f' don't print the function definition - for each readonly or exported function, respectively, when in - POSIX mode +array.[ch] + - array_subrange now takes arrayind_t arguments, not `int' + - dup_array_subrange now uses arrayind_t local variable to do + array indexing + - use long to print array indices in print_element -jobs.c, nojobs.c - - don't report status for processes killed by SIGPIPE if - DONT_REPORT_SIGPIPE is defined +variables.c + - null_array_assign, assign_dirstack, bind_array_variable + now take arrayind_t arguments as array indices + - assign_array_var_from_word_list, assign_array_var_from_string, + unbind_array_element now use arrayind_t local variables for + array indexing -config.h.top - - added a commented-out define for DONT_REPORT_SIGPIPE +variables.h + - change extern declaration of bind_array_variable -execute_cmd.c - - `time' can now be used to time background pipelines, and reports - the timing statistics when the pipeline completes +builtins/common.[ch] + - get_numeric_arg now returns a `long', since it usually returns + the value of legal_number() -[bash-2.01-alpha1 frozen] +builtins/{shift,break}.def + - use long variables for the return value of get_numeric_arg - 3/12 - ---- -subst.c - - move the parent end of the pipe file descriptor used for process - substitution to a high, unused file descriptor to avoid clashes - with redirections performed explicitly by a script +builtins/history.def + - convert string argument to int only if it's in range -configure.in - - added a `--with-curses' argument so curses can be forcibly chosen - over libtermcap (some Unix versions ship lousy termcap databases) +builtins/pushd.def + - set_dirstack_element and get_dirstack_element now take `long' + index arguments + - get_dirstack_index now takes a `long' index argument, since it's + passed the converted value from legal_number -support/mkconffiles - - new script to create _distribution and _patchlevel from values - contained in `configure' +lib/sh/timeval.c + - in print_timeval, don't assume that the number of minutes fits into + an int, since it's just seconds/60. -doc/bashref.texi - - updated installation instructions +lib/sh/clock.c + - ditto for print_clock_t - 3/13 + 5/22 ---- -general.c - - if `getgroups' returns 0, make sure we add the primary group id - as GROUPS[0]. - - if we have getgroups, and the primary gid is not in the array - getgroups returns, add it as group_array[0] and shuffle everything - up one element. This ensures that current_user.gid == group_array[0] - all the time - -tests/builtins.tests - - changes to avoid stray variables in environment when the shell - version of printenv is used with bash as /bin/sh, running the - `exec -c' tests. - - 3/14 +shell.c + - since the -O option settings may possibly be overridden by the + normal shell initialization or posix initialization, save the + invocation options on an alist (with add_shopt_to_alist) and + process them after basic initialization (with run_shopt_alist) + + 5/23 ---- -builtins/cd.def - - spelling correction is no longer enabled by default +trap.h + - new define, BASH_NSIG, all system signals plus special bash traps -support/bashbug.sh - - if the shell's release status is alpha or beta, offer the option - of sending the bug report to the bash-testers mailing list as - well as to chet +trap.c, builtins/trap.def + - use BASH_NSIG for array bounds and loops where appropriate - 3/17 - ---- -configure.in - - configure --without-gnu-malloc by default on *-sgi-irix6* because - their code needs 8-byte alignment +trap.c + - change decode_signal to disallow numeric signal numbers above + NSIG -- this means you can only reference special traps like + DEBUG by name + - new SPECIAL_TRAP(s) macro to test whether s is one of the special + bash traps (currently DEBUG and EXIT) + - change reset_or_restore_signal_handlers so command substitution + doesn't inherit the debug trap (like ksh93), and child processes + don't have to rely on initialize_traps being run to get rid of + any debug trap -support/bashbug.sh - - ``' needs to be quoted with a backslash in double-quoted strings +support/mksignames.c + - add extra "ERR" signal name, value NSIG+1, allocate space for it + and write it out in signal_names[] -aclocal.m4 - - slight changes to the strcoll test, since AIX 4.2 returns -1, 0, or - 1 from strcmp(3) but a numeric collation order difference from - strcoll(3) +trap.h + - new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2 + - extern declarations for set_error_trap, run_error_trap + - new define: TRAP_STRING(s), expands to trap_list[s] if signal S + is trapped and not ignored, NULL otherwise - 3/18 - ---- -command.h - - new redirection error code: HEREDOC_REDIRECT +trap.c + - add ERROR_TRAP to SPECIAL_TRAPS define + - initialize ERROR_TRAP stuff in initialize_traps + - new function: set_error_trap(command), sets the ERR trap string + - new function: run_error_trap(command), runs the ERR trap string + - set trap string for ERROR_TRAP to NULL in free_trap_strings + - change reset_or_restore_signal_handlers so child processes don't + inherit the ERR trap + - add case to call run_error_trap in maybe_call_trap_handler execute_cmd.c - - return HEREDOC_REDIRECT from do_redirection_internal when - here_document_to_fd cannot create the temp file for a here document - - changed redirection_error to print a meaningful message when - here document temp file creation fails (HEREDOC_REDIRECT) + - in execute_command_internal, keep track of ERR trap and call it if + necessary + - use TRAP_STRING to get the value of debug and error traps + - in execute_function, arrange things so the ERR trap is not inherited + by shell functions, and is saved and restored like the DEBUG trap - 3/19 - ---- -subst.c - - changes to match_pattern_char: return 1 if the first char of the - pattern is `?' only if the string is non-null; just return 1 if - the first char of the pattern is `[' and the string is non-empty - rather than try to re-implement the brace matching code from fnmatch +doc/{bash.1,bashref.texi} + - documented new ERR trap -lib/glob/fnmatch.c - - some changes from glibc-2.0.1 posix/fnmatch.c +tests/{trap.{tests,right},trap2.sub,trap2a.sub} + - added ERR trap tests - 3/21 - ---- -variables.c - - only do the initialization of `ignoreeof' if the shell is - interactive - - reset values of $SHLVL > 1000 to 1 in adjust_shell_level, and - don't call itos, since we don't need its generality - - new function, initialize_shell_level, just calls adjust_shell_level - with argument of 1. If $SHLVL is unset, adjust_shell_level will - deal with it correctly - - change initialize_shell_variables to not malloc a copy of each - environment variable, just keep two pointers into the env string: - one for the name, one for the value - - broke the code that computes the value of $BASH out into a separate - function: get_bash_name - - get_bash_name special-cases shell_name with a `./' prefix when - initializing $BASH - - new function: set_home_var, sets $HOME to current_user.home_dir if - it's not already set, calling get_current_user_info if - current_user.home_dir is NULL - - new function: set_shell_var, sets $SHELL to current_user.shell if - it's not already set, calling get_current_user_info if - current_user.shell is NULL - - changed places that reference information in current_user to check - for NULL values of the member they're interested in and call - get_current_user_info if necessary +subst.c + - on machines without /dev/fd, change the named pipe fifo list to a + list of structs containing pathname and proc information + - change unlink_fifo_list to kill the proc in the fifo list with + signal 0 and not remove the fifo if the proc is still alive. This + should fix the problem on those backward systems without /dev/fd + where fifos were removed when a job using process substitution was + suspended -shell.c - - moved the code that sets up the information in current_user that - comes from the password file into a new function, - get_current_user_info - - shell_initialize calls get_current_user_info only if the shell is - interactive + 5/24 + ---- +examples/loadables/getconf.h + - new file, with basic defines needed to make getconf work minimally + on POSIX systems without the necessary definitions -externs.h - - new extern declaration for get_current_user_info(), so variables.c - can use it +examples/loadables/getconf.c + - replacement functions for confstr, sysconf, pathconf for systems + that lack them, providing a minimal posix interface + - heavily augmented getconf, now supports all POSIX.1-200x, + POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables - 3/24 + 5/29 ---- -lib/tilde/tilde.c - - if SHELL is defined, user the current_user struct info to find - the user's home directory rather than calling getpwuid +builtins/setattr.def + - make `readonly', `export', and `declare' print `invisible' variables + as just a command and variable name, without a value, when listing + all variables (as POSIX.2-200x d6 requires) - 3/25 + 5/30 ---- -nojobs.c - - don't try to open /dev/tty when getting or setting the tty state - and window size; use shell_tty instead - - initialize shell_tty to standard error in initialize_job_control - - only fetch the tty state initially if the shell is interactive -general.c - - open /dev/tty with the O_NONBLOCK flag +configure.in + - upgraded to autoconf-2.50 on main development machine, so require + autoconf-2.50 in preparation for using some if its new features + - call AC_C_PROTOTYPES + - remove call to AC_EXEEXT, which now does the wrong thing + - changed AC_INIT to new flavor + - added call to AC_CONFIG_SRCDIR + - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS + - AC_RETSIGTYPE -> AC_TYPE_SIGNAL -variables.c - - changed all_vars so that it sorts its output all the time, not - just when in POSIX mode. This means that the output of `set' - and `export' will be sorted +configure.in, aclocal.m4, config.h.in + - removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE + standard support, with new macros _FILE_OFFSET_BITS and + _LARGE_FILES + - removed definition of BASH_LARGE_FILE_SUPPORT -builtins/set.def - - in initialize_shell_options, only call parse_shellopts if we - inherited $SHELLOPTS from the environment - - make sure we call parse_shellopts from initialize_shell_options - with a copy of the value of SHELLOPTS, in case one of the functions - called while setting one of the variables modifies $SHELLOPTS +doc/bashref.texi + - document new `--enable-largefile' configure option lib/readline/readline.c - - make sure that digit arguments don't change the state of - rl_last_func + - change rl_set_prompt to call rl_expand_prompt unconditionally, so + local_prompt and local_prompt_prefix get set correctly -support/printenv.c - - new file, printenv(1) clone, used to avoid environment variables - that might be set automatically when using printenv.sh + 6/6 + --- +lib/readline/complete.c + - don't append `/' or ` ' to a match when completing a symlink that + resolves to a directory, unless the match doesn't add anything + to the word. This means that a tab will complete the word up to + the full name, but not add anything, and a subsequent tab will add + a slash. Change to append_to_match; callers changed -lib/tilde/tilde.c - - if SHELL is defined, don't call getenv to get the value of $HOME, - call get_string_value () directly +hashlib.c + - new function, hash_table_nentries (table), returns the number of + items in TABLE - 3/26 - ---- -lib/readline/histexpand.c - - abstracted the `#ifdef SHELL' stuff that checked for special cases - that should not be history expanded ([!...], ${!...}) into a call - to a function that is the value of the - new history_inhibit_expansion_function variable +hashlib.h + - extern declaration for hash_table_nentries -lib/readline/history.h - - extern declaration for history_inhibit_expansion_function +configure.in + - configure without bash malloc on openbsd; they claim it needs + eight-bit alignment (which the bash malloc provides, but...) -bashhist.c - - new function, bash_history_inhibit_expansion, which checks for - the special cases in which history expansion should be inhibited - - changes to the various history initialization functions to - set history_inhibit_expansion_function + 7/2 + --- +stringlib.c + - only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement + string length is > 0, avoid possible hangs if replacement is null -lib/readline/doc/hstech.texinfo - - documented history_inhibit_expansion_function +subst.c + - don't include input.h; no longer needed -lib/readline/shell.c - - new file, containing versions of the functions that are provided - by bash when readline is linked as part of bash - - new function: get_env_value(). If SHELL is defined, this calls - get_string_value(). If SHELL is not defined, this calls getenv() +configure.in + - remove calls to AC_SYS_RESTARTABLE_SYSCALLS and + BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used -lib/readline/histexpand.c - - moved single_quote() to shell.c +config.h.in + - remove define for HAVE_RESTARTABLE_SYSCALLS -lib/readline/util.c - - moved savestring() to shell.c +aclocal.m4 + - removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used -lib/readline/terminal.c - - moved set_lines_and_columns() to shell.c +execute_cmd.c + - changed select command so `return' no longer terminates the select + command, so it can be used to return from an enclosing function. + This is as ksh (88 and 93) does it -lib/readline/Makefile.in, Makefile.in - - added shell.c and shell.o to the appropriate variables that contain - the files comprising the readline and history libraries +lib/readline/vi_mode.c + - fix trivial typo in declaration of vi_motion; `t' appears twice; + the second instance should be `T' -lib/readline/signals.c - - introduced two new cpp defines: HANDLE_JOB_SIGNALS and - HANDLE_SIGTERM. When HANDLE_JOB_SIGNALS is defined, SIGTSTP, - SIGTTIN, and SIGTTOU are caught and handled. When HANDLE_SIGTERM - is defined, SIGTERM is caught and handled. These are both - defined automatically if SHELL is not defined + 7/3 + --- +configure.in + - don't add -static to LDFLAGS on Solaris 2.x. This means that the + auxiliary programs will be built as dynamic executables, but that + should do no harm -lib/readline/{bind,histfile,nls,readline,terminal}.c - - call get_env_value instead of getenv(). This should remove the - dependency on being able to redefine getenv() in oslib.c + 7/5 + --- +lib/glob/fnmatch.c + - fix the code that processes **(pattern) to short-circuit if the + pattern is ill-formed or lacks a trailing `)' -- this fixes the + segfault on **(/*) -shell.c - - added a missing argument of -1 to the call to list_minus_o_opts. - Now `bash -o' lists all options, not just random ones depending - on what's on the stack +Makefile.in, builtins/Makefile.in + - split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in + cross-compilation + - build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD) - 3/28 - ---- -builtins/ulimit.def - - change RLIM_INFINITY to the hard limit only if the hard limit is - greater than the current (soft) limit +configure.in, config.h.in + - check for getaddrinfo(3), define HAVE_GETADDRINFO if found -hashlib.c - - return immediately from flush_hash_table if the hash table passed - is NULL +lib/sh/netopen.c + - implemented a version of _netopen (_netopen6) that uses + getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined. + old _netopen is _netopen4; _netopen now calls either _netopen6 + or _netopen4 as appropriate - 4/1 + 7/9 --- -shell.c - - remove call to initialize_filename_hashing -- initialize the hash - table the first time a hashed command has to be remembered +builtins/exit.def + - don't source ~/.bash_logout if subshell_environment is non-zero -hashcmd.c - - new file, with functions to perform filename hashing and lookup - taken from builtins/hash.def and builtins/common.c - - change to remember_filename -- call initialize_filename_hashing - if hashing_initialized is 0 +execute_command.c + - in execute_until_or_while, handle the case where `breaking' is + set in the loop test (e.g., by the job control code when a job + is stopped with SIGTSTP), but the return value from the test is + something that would cause the loop to break. Need to decrement + `breaking' in this case -hashcmd.h - - new file, mostly from builtins/hashcom.h, with extern function - declarations added + 7/10 + ---- +execute_cmd.c + - in execute_in_subshell, make sure a command of type cm_subshell + inherits its `enclosing' command's CMD_IGNORE_RETURN flag -execute_cmd.c, builtins/{hash,type}.def - - include hashcmd.h for hash function and type definitions +variables.c + - in maybe_make_export_env, don't allow restricted shells to put + exported functions in the export environment -builtins/{common.{c,h},hash.def} - - moved hashing functions and declarations to hashcmd.c/hashcmd.h + 7/11 + ---- +lib/glob/strmatch.h + - renamed old fnmatch.h + - changed guard #ifdef to _STRMATCH_H + - include system if HAVE_LIBC_FNM_EXTMATCH is defined -Makefile.in, builtins/Makefile.in - - changed source and object file definitions and dependencies because - of addition of hashcmd.h and hashcmd.c +lib/glob/strmatch.c + - renamed old fnmatch.c + - include "strmatch.h" + - if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of + strmatch() that just calls fnmatch(3) -builtins/hash.def - - return immediately from print_hashed_commands if hashed_commands - is empty, indicating that the hash table has not been initialized +lib/glob/glob.c + - include "strmatch.h" + - fnmatch -> strmatch - 4/2 - --- -lib/readline/bind.c - - fixed translation of ESC in rl_untranslate_keyseq and - rl_untranslate_macro_value +Makefile.in, lib/glob/Makefile.in + - fnmatch -> strmatch -lib/readline/{readline,kill}.c - - added an argument to _rl_fix_point telling it whether or not to - fix up the mark also; changed calls to _rl_fix_point to add the - appropriate argument +{bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c, +pathexp.h,builtins/help.def + - include + - fnmatch -> strmatch -Makefile.in - - changed the substitution delimiter in the `sed' commands that - create bashbug from `:' to `%' to avoid conflicts with options - containing `:' +execute_cmd.c + - broke the code that parses the interpreter name from a #! line + out from execute_shell_script to a new function, getinterp() + - call getinterp from execute_shell_script + - use return value from getinterp in error message about bad + #! interpreter in shell_execve - 4/3 - --- -print_cmd.c - - made the initial value and the default growth value for the - printed command somewhat smaller -- we don't really need to - allocate 4096 bytes for the printed command - - added stdarg support to xprintf if PREFER_STDARG is defined + 7/12 + ---- +lib/readline/isearch.c + - the last isearch string is now remembered in a new static variable, + last_isearch_string + - if ^R^R is typed, readline now searches for the remembered isearch + string, if one exists -stringlib.c - - changed strip_trailing to take the index of the last character - as the second argument, saving a (useless) call to strlen, since - the caller already knows where the end of the string is + 7/24 + ---- +pcomplete.h + - extern declaration for completions_to_stringlist() -subst.c - - change call to strip_trailing in command_substitute to add the - new second argument + 7/25 + ---- +builtins/complete.def + - make compgen handle -o default option + - make compgen return success only if sl->list_len is non-zero, + indicating that there are items on the list -externs.h - - changed extern declaration for strip_trailing + 7/31 + ---- +execute_cmd.c + - in execute_connection, force stdin to /dev/null for asynchronous + commands if job control is not active, not just if the shell is + running a shell script (since you can run `set -m' in a script) - 4/4 - --- -Makefile.in, configure.in, lib/malloc/Makefile.in - - changed the strategy for picking which `malloc' to include by - having configure define a `malloc target' and the Makefile in - lib/malloc implementing rules for that target +lib/readline/rltty.c + - make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on + successful restoration of the terminal modes + - make sure _rl_tty_disable_signals turns off IXON so that ^S and + ^Q can be read by rl_quoted_insert - 4/5 + 8/1 --- -Makefile.in - - slightly changed the rules for remaking `parser-built': it is - now a copy of y.tab.h, updated only when the contents of y.tab.h - change - - everything that used to depend on y.tab.h now depends on - parser-built +aclocal.m4 + - new check for FNM_EXTMATCH being defined in , as Ullrich + Drepper intends to do for new versions of GNU libc - 4/6 - --- -execute_cmd.c, print_cmd.c - - use #include so we pick up y.tab.h from the build - directory instead of the source directory if it happens to be - recreated in the build directory +config.h.in + - new definition for HAVE_LIBC_FNM_EXTMATCH - 4/7 - --- -bashline.c - - fixed another problem with `pwd`/[TAB] thinking that the `/ - started an unclosed command substitution, generating errors +configure.in + - check for fnmatch, but don't define anything in config.h + - call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH - 4/8 + 8/2 --- -general.c - - renamed bash_tilde_expansion_failure_hook to be - bash_special_tilde_expansions, since that more accurately reflects - its function - - changed tilde_initialize so that there is no failure hook -- the - special expansions are handled first with the preexpansion hook +alias.h + - remove bogus extern declaration for xmalloc() + - include "stdc.h" + - add prototype declarations for all extern function declarations -lib/tilde/tilde.c - - new variable: tilde_expansion_preexpansion_hook -- if non-null, it - points to a function that is called before standard tilde expansion - is attempted +xmalloc.c,lib/readline/xmalloc.c + - fix xmalloc to return a PTR_T + - fix xrealloc to return a PTR_T and take a PTR_T as first argument -lib/tilde/tilde.h - - extern declaration for tilde_expansion_preexpansion_hook +include/ansi_stdlib.h + - extern declarations for malloc and realloc have them return PTR_T -doc/{bash.{1,html},bashref.texi} - - added optional open paren to description of `case' command syntax +xmalloc.h + - new file, with extern declarations for functions in xmalloc.c - 4/9 - --- -variables.c - - on qnx, set and export a variable `NODE' which contains the QNX - `node id' +general.h + - removed extern declarations for functions in xmalloc.c + - include xmalloc.h -general.c - - QNX system can now handle pathnames with a leading `//' +Makefile.in,builtins/Makefile.in + - update dependencies to include xmalloc.h + +parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general, +hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib, +subst,unwind_prot,variables}.c +builtins/{common,evalfile}.c +builtins/{cd,command,enable,exec,printf,read,set}.def +lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist, +strtrans,tmpfile}.c +lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input, +histfile,histexpand,display,complete,bind}.c + - make sure all calls to xmalloc are cast to the right return value -configure.in - - added `-Dqnx' to LOCAL_CFLAGS on QNX machines +siglist.c + - include xmalloc.h -lib/malloc/getpagesize.h - - some systems need sysconf(_SC_PAGE_SIZE) to obtain the page size; - added code to check for it +parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c +builtins/{fc,printf,read}.def +lib/sh/snprintf.c, lib/tilde/tilde.c +lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c + - make sure all calls to xrealloc are cast to the right return value - 4/10 - ---- -print_cmd.c - - include the prototype for cprintf only if PREFER_STDARG is defined, - otherwise just have a K&R-style forward function declaration +lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c + - include xmalloc.h, remove extern declaration of xmalloc -hashlib.h - - reduced the default number of buckets in a hash table to 53 +lib/readline/xmalloc.h + - xmalloc and xrealloc should return PTR_T -lib/tilde/tilde.c - - prime the result string in tilde_expand by allocating a new string - that's as long as the input string (+16 if a tilde appears in - the string to be expanded). This should reduce the number of - reallocs +lib/readline/rldefs.h + - don't include an extern declaration for xmalloc -subst.c - - broke the code that reads the output of a command substitution - through the pipe to the subshell out into a separate function: - read_comsub(). This does not use stdio, but rather reads - directly from the pipe into a local 128-character buffer + 8/7 + --- +support/shobj-conf + - fixed up commented-out stanzas for HP's unbundled C compiler on + HP/UX - 4/11 - ---- -execute_cmd.c - - some systems need both and , so include both - if it's possible, otherwise include (if present) +support/bashbug.sh + - force the subject to be changed from the default -lib/readline/rl{tty,defs}.h - - moved includes of , , etc. to rltty.h +lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 + - document that transpose-words swaps the last two words on the line + if point is at the end of the line -lib/readline/terminal.c - - include rltty.h after rldefs.h + 8/9 + --- +stringlib.c + - fix possible infinite recursion problem with null pattern in + strsub() -variables.c - - changes to make environment creation faster and use less memory - (fewer malloc/free calls, too): - - o two new variables: export_env_index (how many environment - strings are in export_env) and export_env_size (the - number of slots for strings allocated in export_env) - o added new function add_to_export_env, since adding the - exported shell variables and shell functions does not - need to search the export_env for a definition to supersede - (we just cleared it out!) - o renamed add_or_supersede to add_or_supersede_exported_var, - since it always works on export_env, and changed the second - argument to a flag saying whether or not to allocate a new - copy of the string placed into the environment - o changed calls to add_or_supersede to the new - add_or_supersede_exported_var with the appropriate flags - o don't free and reallocate export_env in maybe_make_export_env, - just free the strings and start anew - o prime the size of export_env from the total number of shell - variables and shell functions -- this will always be enough - for the exported shell functions and variables, and big - enough most of the time for the entire environment - -builtins/cd.def - - efficiency hack in bindpwd(): if PWD is exported, we will have to - rebuild the entire exported environment after every time we change - directories. What we do is see if array_needs_making changes value - from 0 to 1 after bind_variable ("PWD", dirname) is called, and - that PWD is exported. If that happens, we just replace the value - of PWD in the exported environment with a call to - add_or_supersede_exported_var - -bashline.c, parse.y - - check calls to pre_process_line to make a fresh copy of the line - if pre_process_line returns what it was passed, in preparation - for future changes +hashlib.c + - new function copy_hash_table to copy a hash table using a caller- + supplied function to copy item data (defaults to savestring()) -bashhist.c - - pre_process_line now returns its argument if it did not make - any changes to it +hashlib.h + - new extern declaration for copy_hash_table -alias.c - - free the bucket entry holding the alias to be removed in - remove_alias, as well as the data +builtins/declare.def + - changes so that declare [-a] var=value assigns `value' to element 0 + of array variable `var' like ksh93 + - change so that declare [-a] var[N]=value assigns `value' to element + N of array variable `var' like ksh93 - 4/14 + 8/13 ---- -unwind_prot.c - - if an unwind-protect frame is being discarded, and its cleanup - function is `restore_variable', the `arg' member points to a - SAVED_VAR that must be freed. This change is made in - remove_unwind_protect_internal and unwind_frame_discard_internal +arrayfunc.c + - new file, for miscellaneous array functions -parse.y - - need to free memory allocated by parse_arith_cmd if it is an - arithmetic command, after using it to make a new word +arrayfunc.h + - new file, extern declarations for functions in arrayfunc.c -subst.c - - fixed some memory leaks caused by not freeing the argument to - make_bare_word, which duplicates its string argument - - need to dispose list generated by list_rest_of_args in - paramter_list_remove_pattern - - make sure the return value from getpattern() is freed - - make sure array_value_internal always returns newly-allocated - memory - - get_var_and_type returns a new type: VT_ARRAYMEMBER if the - string passed is of the form var[index] - - make sure parameter_brace_substring frees the memory allocated - by get_var_and_type if verify_substring_values returns 0 - -hashlib.c, hashlib.h - - new function, dispose_hash_table (table), which frees the - table's bucket array and the table itself +variables.c + - move convert_var_to_array, bind_array_variable, + assign_array_from_string, assign_array_var_from_word_list, + assign_array_var_from_string, quote_array_assignment_chars, + skipsubscript, unbind_array_element, print_array_assignment + to arrayfunc.c -alias.c - - call dispose_hash_table from delete_all_aliases instead of just - freeing the table +shell.h + - include arrayfunc.h after variables.h -pathexp.c - - make sure to free `newnames' (but *not* its contents) before - returning from ignore_globbed_names +variables.h + - remove above extern function declarations moved to arrayfunc.h + - add extern declaration for var_lookup -builtins/exec.def - - make sure the argv created to pass to shell_execve is freed if - the execve fails and we're not exiting on failed execs +Makefile.in + - add arrayfunc.c, arrayfunc.h in appropriate places + - add arrayfunc.h to dependencies -expr.c - - broke evalexp into two functions: evalexp, which sets up the - jmp_buf that errors jump to, and subexpr, which does the - evaluation and pushing and popping of contexts - - readtok now calls subexpr to evaluate subexpressions in - parentheses - - evalexp now takes an additional paramter, a pointer to an int. - If the expression contains errors, the location to which this - points gets 0, otherwise it gets 1 to show that the value - returned may be used. This plugs up memory leaks that were - the result of evalexp() longjmping back to top_level - - fixed a memory leak: expr_stack[0] was not being freed +subst.c + - move valid_array_reference, array_expand_index, array_variable_part, + array_value_internal, array_value (now global), get_array_value, + do_array_element_assignment to arrayfunc.c -externs.h - - changed extern declaration for evalexp +subst.h + - extern declarations for functions above moved to arrayfunc.h -variables.c, subst.c, builtins/let.def - - changed calls to evalexp appropriately. They either cause a - longjmp (top_level, DISCARD) (which is what the old stuff in - expr.c did) or are handled by returning an appropriate error - value (e.g., &expand_word_error in subst.c) +arrayfunc.h + - extern declarations for above functions from subst.c - 4/16 +subst.[ch] + - string_list_dollar_star and string_list_dollar_at are now global + functions + - quote_escapes is now a global function + +subst.c + - maybe_expand_string -> expand_string_if_necessary + - expand_string_to_string -> expand_string_to_string_internal + - new functions: expand_string_to_string and + expand_string_unsplit_to_string, which call + expand_string_to_string_internal with expand_string and + expand_string_unsplit as the FUNC arguments, respectively + +arrayfunc.c + - change array_expand_index to call expand_string_to_string instead + of maybe_expand_string + + 8/14 ---- shell.c - - make sure to free dollar_vars[0] before assigning it the first - argument following `-c command' + - in execute_env_file, call expand_string_unsplit_to_string + +mailcheck.c + - in check_mail, call expand_string_to_string variables.c - - if unsetting a local variable with a previous context, make sure - to free the hash table element used to store the local variable + - in assign_in_env, call expand_string_unsplit_to_string + +arrayfunc.c + - new function, array_variable_name, splits an array reference into + a name (which is returned as a new string) and subscript + - change array_variable_part to just call array_variable_name and + look up the string returned with find_variable + - new function, find_or_make_array_variable (name, flags) which will + look up an array variable and convert a string variable to an + array if necessary. The FLAGS argument, if non-zero, says to + check the readonly and noassign attributes and fail if either is set + +builtins/read.def + - make `read -a aname' honor any readonly status of `aname' + - read -a now calls find_or_make_array_variable with FLAGS value 1 -lib/readline/terminal.c - - rearrange the includes so is included before rltty.h, - as it is in rltty.c +arrayfunc.[ch], subst.c, builtins/{declare,read}.def + - do_array_element_assignment -> assign_array_element - 4/17 + 8/20 ---- -flags.c - - new function: reset_shell_flags, which resets all of the flags - back to their initial values +parse.y + - changed `for' command grammar to allow missing word list after `IN' + token, like latest POSIX drafts require -flags.h - - extern declaration for reset_shell_flags +lib/sh/tmpfile.c + - in sh_mktmpname(), check for filenum == 0 and init to non-zero number + in this case. it can happen on arithmetic overflow -builtins/set.def - - new function: reset_shell_options, which resets all of the -o - options that are not also shell flags back to their initial values +support/mkversion.sh + - added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a + distribution to allow for intermediate versions, like 2.05a -builtins/shopt.def - - new function: reset_shopt_options, which resets all of the shopt - options that are not also shell flags or -o options back to their - initial values +support/config.guess + - removed the addition of the output of `/usr/bin/objformat' when + creating the canonical name on FreeBSD machines, so the canonical + name is once again `freebsd4.2' instead of `freebsdelf4.2' -builtins/common.h - - extern declarations for reset_shell_options and reset_shopt_options + 8/22 + ---- +lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell, +rltypedefs,xmalloc}.h +lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch, +input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode + - changed __P to PARAMS -execute_cmd.c - - broke the code that reinitializes things when an executable script - without a leading `#!' is found out into a new function: - initialize_subshell - - initialize_subshell now calls the reset_* functions that reset the - shell flags and options +lib/tilde/tilde.[ch] + - changed __P to PARAMS -general.c, general.h - - move_to_high_fd now takes a third argument: the highest fd at which - to start looking. If that's less than 20, the maximum number of - open files as returned by getdtablesize() is used (which is what - it did before this) +{Makefile,configure}.in + - changed the version number to 2.05a + - changed the release status to `alpha1' -jobs.c, shell.c, subst.c - - changed calls to move_to_high_fd appropriately + 8/23 + ---- +support/shobj-conf + - support for building shared libraries on Darwin/MacOS X -[bash-2.01-beta1 frozen] +siglist.h + - extern declaration for strsignal() to compensate for lack of + a definition in some system include files - 4/18 - ---- -general.c - - itos now uses a local char buffer to do its conversion, but still - returns newly-allocated memory +jobs.c + - remove casts from strsignal() calls - 4/21 - ---- -variables.c - - be a little more careful when checking for backwards-compatibility - with exported function definitions +[bash-2.05a-alpha1 frozen] - 4/22 + 8/27 ---- -builtins/ulimit.def - - translate RLIM_INFINITY to limit.rlim_max if the current limit is - less than or equal to the hard limit, not just strictly less than - (the change of 3/28 was too drastic) +[bash-2.05a-alpha1 released] - 4/23 + 8/27 ---- -oslib.c - - fixed definition of to_lower on machines without strcasecmp +execute_cmd.c + - fix eval_arith_for_expr to handle the case where the expanded + word list is NULL, returning 0 in this case -trap.c - - don't free the trap command in change_signal if the SIG_INPROGRESS - is set in the signal's flags -- it will cause memory to be freed - twice if a trap command resets the signal handler more than once, - and _run_trap_internal keeps a pointer to the trap command so it - can free it, so there will be no leaks +print_cmd.c + - in print_function_def, make sure that func_redirects is assigned + a value before being used - 4/24 + 8/28 ---- -aclocal.m4,configure.in - - removed BASH_CC_WORKS, since AC_PROG_CC now has the functionality +alias.c + - include for definition of isalpha() -shell.c, externs.h - - get_current_user_info is now a void function +bashhist.h + - add prototypes for extern function declarations -bashline.c - - alias_expand_line_internal was removed - - new function, alias_expand_line, performs alias expansion on - rl_line_buffer and either replaces rl_line_buffer or signals - an error - - new bindable commands: alias-expand-line and - history-and-alias-expand-line, available if ALIAS is defined - - 4/25 - ---- -Makefile.in, lib/malloc/malloc.c - - changed the define that turns on malloc range checking from - `rcheck' to `RCHECK' +flags.c + - include bashhist.h for extern function declarations -lib/readline/isearch.c - - fixed a couple of places where rl_search_history would try to - free a NULL pointer +mksyntax.c + - include if HAVE_UNISTD_H is defined in config.h - 4/29 - ---- -unwind_prot.c - - fixed a problem with saving a variable that is a null pointer - in unwind_protect_var. It happens only on machines where the - size of a pointer is not the size of an int. The old FASTCOPY - code would copy the eight bytes at memory location zero, which - did not necessarily make a null pointer +parse.y + - include test.h for extern function declarations - 4/30 - ---- -shell.c - - run_startup_files should turn off job control, since the startup - files should be run without job control enabled -- this makes - SIGINT interrupt startup file execution again - - if we get a SIGINT or other longjmp to top_level while executing - the startup files, re-enable job control for interactive shells - before setting locally_skip_execution +externs.h + - change extern declaration for setlinebuf to sh_setlinebuf - 5/2 - --- -lib/readline/nls.c - - if we have setlocale(3), don't bother with checking the - environment variables for valid values; just use setlocale() - to set the locale categories from the environment variables - directly and go into eight-bit mode if the current locale is - not C or POSIX - - 5/5 - --- -sig.c - - make sure that the handler for SIGPROF is not changed if it has - been set to something other than SIG_IGN or SIG_DFL -- this makes - profiling work after the terminating signals have been initialized +stringlib.c + - include for extern function declarations -bashline.c - - if a filename containing `!' is completed, and the user has started - the string with a `"', change the completion style to backslash- - quoting, since there's no way to use `!' with double quotes (this - requires more changes to readline to really work right) +variables.h + - add function prototypes for all of the sv_* functions - 5/6 - --- -lib/readline/complete.c - - changes to make_quoted_replacement, insert_all_matches, and - insert_match and their callers to allow the application-specific - filename quoting function to change the quote character (e.g., for - bash to change a filename containing a `!' and started with a - double quote by the user into a filename with the `!' quoted by - a backslas and no double quote) +builtins/common.h + - add extern declarations for set_shellopts() and parse_shellopts() + from builtins/set.def - 5/8 - --- -jobs.c - - new function: nohup_all_jobs(), calls nohup_job for each entry in - the jobs list - - delete_all_jobs is now global +variables.c + - include "hashcmd.h" for extern declaration for flush_hashed_filenames + - include "pathexp.h" for extern declaration for setup_glob_ignore -jobs.h - - new extern declarations for delete_all_jobs() and nohup_all_jobs() +lib/malloc/malloc.c + - cast to `long' instead of `int' in memalign for 64-bit machines -builtins/jobs.def - - `disown' without any jobspec arguments means the current job. Fix - a core dump printing the error message when there is no current job +{pcomplete,trap}.c + - changed printf escape sequences used to print pointers to %p - 5/12 - ---- -subst.c - - process an expansion like $((foo); bar) as a command substitution, - not as an arithmetic expansion. An arithmetic expansion must have - a closing `))' +lib/readline/undo.c + - include "xmalloc.h" for extern function declaration - 5/14 - ---- -builtins/evalstring.c - - the third argument to parse_and_execute() is now a flags word. - The caller can control the value of `interactive' and whether - or not history is disabled while parse_and_execute() runs +input.h + - add function prototypes to extern declarations for getc_with_restart + and ungetc_with_restart -builtins/common.h - - new #defines for the flag values for parse_and_execute() +variables.[ch] + - changed type of `function' member of `struct name_and_function' to + `sv_func_t', which is defined and prototyped in variables.h + - map_over now takes an `sh_var_map_func_t *' -{bashline,jobs,shell,subst,trap,variables}.c, parse.y, builtins/evalfile.c, -builtins/{eval,fc}.def - - changed calls to parse_and_execute appropriately +shell.h + - start of a set of function pointer typedefs like those in + lib/readline/rltypedefs.h -builtins/evalfile.c - - if _evalfile() is passed FEVAL_HISTORY as part of the flags arg, - don't pass SEVAL_NOHIST to parse_and_execute - - new function: fc_execute_file, which sets FEVAL_HISTORY in the - flags argument to _evalfile() +hashlib.[ch] + - second paramter to flush_hash_table is now an `sh_free_func_t *' -bashline.c - - call bash_add_history instead of add_history from - vi_edit_and_execute_command so the bash state variables get - updated properly. This keeps the `v' command from operating - on an empty command when the history list is stifled +trap.c + - parameter to reset_or_restore_signal_handlers is now an + `sh_resetsig_func_t *' -bashhist.c - - bash_add_history is now global +pcomplete.h, pcomplib.c + - function pointer argument to print_all_compspecs is now an + `sh_csprint_func_t *' + - function pointer `list_getter' element of an `ITEMLIST' is now + prototyped with __P((...)) instead of using `Function *' -bashhist.h - - extern declaration for bash_add_history - -builtins/fc.def - - call fc_execute_file instead of maybe_execute_file in the - edit-and-re-execute case (fc -e ...) - - don't manually insert the commands from the file created by `fc -e' - into the history list, just set remember_on_history and let - fc_execute_file take care of telling parse_and_execute to do the - right thing. This makes compound commands and the `cmdhist' - and `lithist' settings work better. This supersedes the fix of - 1/27. This was reported again by rchen@fractal.eng.yale.edu. +jobs.[ch] + - `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *' -parse.y - - the body of a `for' command (the commands between do...done or - {...}) should be a `compound_list' instead of a `list'. Problem - reported by cpg@research.bell-labs.com +alias.c + - map_over_aliases now takes an `sh_alias_map_func_t *' + - free_alias_data now takes a `PTR_T' - 5/19 - ---- -lib/readline/complete.c - - in filename_completion_function, if we find that the directory - pointer (return value from opendir(3)), is not null when state - is 0 (indicating that this is the first time the completion - function has been called for the current completion), call - closedir on it, assuming that it was left open by a previous - (interrupted) completion +pathexp.c + - function pointer argument to ignore_globbed_names is now an + `sh_ignore_func_t *' -[bash-2.01-beta2 frozen] +bashline.c + - function pointer argument to _ignore_completion_names is now an + `sh_ignore_func_t *' - 5/27 - ---- -Makefile.in - - make sure that `make distclean' (and other clean targets) remove - the `printenv' executable +pathexp.h,{bashhist,bashline.c + - `item_func' member of a `struct ignorevar' is now an + `sh_iv_item_func_t *' -tests/execscript, tests/redir.tests - - make sure to set LANG=C and LC_ALL=C so the messages show up in - English +builtins/evalfile.c + - `errfunc' is now an `sh_vmsg_func_t *' -tests/run-func - - add a warning about exported functions in the environment +jobs.c + - map_over_job now takes an `sh_job_map_func_t *' as its first argument - 5/29 - ---- -builtins/hash.def - - if one of the arguments passed to `hash' is an absolute pathname, - just continue the loop, don't do list=list->next first. This - fixes the `hash a/b' -> core dump bug +array.[ch] + - function pointer argument to array_walk is now an + `sh_ae_map_func_t *' - 5/30 - ---- general.c - - change canonicalize_pathname to leave a leading `/' alone, as - POSIX requires + - tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *', + and so the assignment in tilde_initialize doesn't need a cast - 6/2 - --- -support/xenix-link.sh - - shell script for linking bash under Xenix +list.c + - map_over_words now takes an `sh_icpfunc_t *' as its second argument - 6/3 - --- -bashline.c - - fixed a memory leak in command_word_completion_function, courtesy - of a.pfaller@pop.gun.de +input.h + - the `getter' and `ungetter' function pointer members of a + BASH_INPUT are now of types `sh_cget_func_t *' and + `sh_cunget_func_t *' respectively + - init_yy_io now takes an `sh_cget_func_t *' as its first argument and + an `sh_cunget_func_t *' as its second -hashcmd.c - - fixed find_hashed_filename to always return a newly-allocated - string +parse.y + - init_yy_io now takes an `sh_cget_func_t *' as its first argument and + an `sh_cunget_func_t *' as its second + - initialize_bash_input casts bash_input.getter and bash_input.ungetter + appropriately + +builtins/mkbuiltins.c + - make the extern function definitions written to builtext.h have + prototypes with __P((...)) + - include "stdc.h" + - change Function to mk_handler_func_t + - fixed comment_handler to take the right number of args + - prototyped all the handler functions with __P((...)) + +builtins.h + - the `function' member of a struct builtin is now of type + `sh_builtin_func_t *' + +builtins/common.[ch] + - last_shell_builtin, this_shell_builtin are now of type + `sh_builtin_func_t *' + - find_shell_builtin, builtin_address, find_special_builtin now return + `sh_builtin_func_t *' + +builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y + - changed all declarations of last_shell_builtin and this_shell_builtin execute_cmd.c - - since find_hashed_filename returns newly-allocated memory, don't - call savestring() on it, and free it if the data is stale (in - search_for_command()). Another memory leak fixed courtesy of - a.pfaller@pop.gun.de + - execute_builtin, execute_builtin_or_function, + execute_subshell_builtin_or_function now take an + `sh_builtin_func_t *' instead of a `Function *' for argument + - changed appropriate variables from `Function *' to + `sh_builtin_func_t *' -builtins/type.def - - free the value returned by find_hashed_filename +builtins/{bind,builtin,enable,read,setattr}.def + - replaced uses of `Function *' in variable declarations with + appropriate types (sh_builtin_func_t * or rl_command_func_t *) -[bash-2.01-release frozen] +builtins/set.def + - set_func and get_func members of binary_o_options are now of types + `setopt_set_func_t *' and `setopt_get_func_t *', which are + prototyped - 6/6 - --- -configure.in - - force shlicc2 and libc malloc for BSD/OS 3.0 +builtins/shopt.def + - set_func member of shopt_vars is now of type `shopt_set_func_t *' + +bashline.c + - enable_hostname_completion now returns `int' (the old value of + perform_hostname_completion) - 6/9 +[The only use of Function and VFunction now is for unwind-protects] + + 9/4 --- -doc/Makefile.in - - don't create ${man3dir}, since we're not installing the readline - manual page +lib/sh/getcwd.c + - use const define from config.h rather than `CONST' + - use PTR_T define from xmalloc.h rather than `PTR' + - include xmalloc.h for PTR_T + - remove PATH_MAX define, rely on value from maxpath.h -lib/readline/readline.h - - rl_dispatching should be declared `extern' - [in bash-2.01.1] +{general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c + - don't include maxpath.h directly; it's already included by shell.h - 6/10 - ---- -lib/malloc/Makefile.in - - make sure ${ALLOCA_SOURCE} is preceded by ${srcdir} so that things - work when building in a directory other than the source directory - [in bash-2.01.1] +lib/sh/mailstat.c + - new `mailstat()' implementation, to stat a mailbox file for + mail checking. handles maildir-style mail directories with one + file per message and creates a dummy stat struct from them - 6/30 - ---- -lib/readline/examples/rltest.c - - don't free the value returned by history_list() +lib/sh/Makefile.in + - add mailstat.c and mailstat.o in the appropriate places -lib/readline/histfile.c - - open the history file for writing with mode 0600 for better - security - [in bash-2.01.1] +lib/malloc/malloc.c + - augmented implementation with wrapper functions that pass in file + and line number information from cpp. currently unused, but a + placeholder for future debugging and use tracking -execute_cmd.c - - select_query now uses legal_number to decide whether the user's - selection is a valid number, and just executes the loop again if - invalid input is entered - [in bash-2.01.1] +lib/malloc/shmalloc.h + - new file, extern declarations for allocation wrapper functions for + use by the shell (and others, I guess) - 7/1 +xmalloc.[ch] + - wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that + pass cpp line number information through to the malloc functions, + if USING_BASH_MALLOC is defined + + 9/5 --- -builtins/evalstring.c - - fix to parse_and_execute so `bash -c 'time [-p] zzz'' works right - [in bash-2.01.1] +lib/malloc/gmalloc.c + - removed; no longer part of distribution -execute_cmd.c - - fix to execute_command_internal so that `bash -c time [-p] (zzz)'' - works right - [in bash-2.01.1] - - print_formatted_time should pass a long as the fourth parameter - to mkfmt - [in bash-2.01.1] +lib/malloc/Makefile.in + - removed references to gmalloc.[co] -externs.h, shell.c - - `exit_shell' is now a void function +configure.in, doc/bashref.texi + - removed references to `--with-glibc-malloc' configure option -hashlib.c - - print_table_stats is now a void function +{configure,Makefile}.in + - changed the way bash malloc is configured into the Makefile, making + it more like how readline is configured. If the bash malloc is + not configured in, nothing in lib/malloc will be built -mailcheck.c - - made add_mail_file check for the filename in the mail file list - using the expanded filename, since that is what it puts into - the list - [in bash-2.01.1] + 9/6 + --- +lib/malloc/imalloc.h + - new file, some internal malloc definitions -variables.c - - for the time being, PWD will be auto-exported, since some systems - seem to expect it +lib/malloc/mstats.h + - new file, definitions for malloc statistics structs and functions -doc/bashref.texi, lib/readline/doc/{hist,rlman}.texinfo - - added necessary `dircategory' and `direntry' commands to make - `install-info' work correctly +lib/malloc/trace.c + - new file, malloc tracing functions (currently just print messages + to stderr), code is #ifdef MALLOC_TRACE -Makefile.in - - move $(LDFLAGS) after $(BUILTINS_LDFLAGS) and $(LIBRARY_LDFLAGS) on - the line that links bash +lib/malloc/stats.c + - new file, moved malloc stats code from malloc.c to here -doc/texinfo.tex - - upgraded to version 2.185 from the texinfo-3.9 distribution +lib/malloc/malloc.c + - moved some definitions to imalloc.h + - moved stats code to stats.c + - malloc tracing calls added to internal_{malloc,realloc,free}, all + #ifdef MALLOC_TRACE -lib/tilde/tilde.c - - fixed a bug in tilde_expand so that enough space is allocated for - the string and terminating null byte if a `~' does not appear. - This was masked before by the bash malloc() - [in bash-2.01.1] +lib/malloc/Makefile.in, Makefile.in + - added {imalloc,mstats}.h, {trace,stats}.c - 7/3 - --- -aclocal.m4 - - new test, BASH_TYPE_INT32_T, to check which builtin C type is - 32 bits wide - - new test, BASH_TYPE_PTRDIFF_T, to check which builtin C type is - appropriate for pointer arithmetic +parse.y + - changed decode_prompt_string to save and restore $? + (last_command_exit_value) around calls to expand_prompt_string(), + so command substitutions in PS1, etc. don't change $? + +{array,subst}.c + - a couple more arrayind_t fixes from Paul Eggert configure.in - - check sizes of int and long, and for the existence of an int32_t - basic system type. Call BASH_TYPE_INT32_T if int32_t is not - defined anywhere in the system header files - - check size of (char *), and for the existence of a ptrdiff_t - basic system type. Call BASH_TYPE_PTRDIFF_T if ptrdiff_t is not - defined anywhere in the system header files - - added a check for + - remove redundant check for wait3(2) -config.h.in - - add lines for SIZEOF_INT, SIZEOF_LONG, SIZEOF_CHAR_P, int32_t, - u_int32_t, and ptrdiff_t - - added line for HAVE_STDDEF_H +redir.h + - fixed a typo (stdin_redirs -> stdin_redirects) -lib/malloc/malloc.c - - new version, with many changes and much better memory usage; old - (bash-2.01) version is lib/malloc/omalloc.c + 9/10 + ---- +execute_cmd.c + - remove check for \n and \r from WHITESPACE macro, since those + chars are not whitespace as returned by the whitespace(c) macro + - getinterp now takes a `char *' as first arg, not unsigned char * + - execute_shell_script now takes a `char *' as first arg, not + unsigned char * + - fix typo in forward declaration for `initialize_subshell' + +general.[ch] + - check_binary_file now takes a (char *) argument, not unsigned char * + - pass unsigned char to isspace and isprint because of ISO C fuckup + - bash_tilde_expand now takes a `const char *' as its argument -lib/malloc/gmalloc.c - - new version, with a number of changes and range checking included - by default; old (bash-2.01) version is lib/malloc/ogmalloc.c +builtins/evalfile.c, shell.c + - buffer passed to check_binary_file is char, not unsigned char -execute_cmd.c - - applied patch from 5/27 to make execute_simple_command fork early - if it's part of a pipeline. This keeps assignment statements or - other commands that don't require a builtin, function, or disk - command to be executed from modifying the shell's environment +parse.y + - fix extern declaration for yyerror() + - yyerror now takes a `const char *' as first arg -tests/exec?.sub - - renamed from tests/execscript.sub? because those filenames are - too long for System V 14-char filename systems +{error,jobs}.c + - fixes to printf-style functions to handle pids wider than an int -tests/source?.sub - - renamed from tests/source.sub? because those filenames are bad - for DOS/Windows +lib/readline/{isearch,vi_mode}.c + - fix call to rl_message in rl_display_search (remove extra arg) -tests/getopts?.sub - - renamed from tests/getopts.sub? because those filenames are bad - for DOS/Windows +variables.c + - fix missing argument to builtin_error in make_local_variable -tests/histexp.{tests,right} - - renamed from histexpand.{tests,right} because those filenames are - too long for System V 14-char filename systems +builtins/getopts.def + - since getopts takes no options, change while loop calling + internal_getopts to a simple `if' check -tests/trap1.sub - - renamed from trap.sub1 because that filename was bad for DOS/Windows +builtins/printf.def + - since printf takes no options, change while loop calling + internal_getopts to a simple `if' check -tests/ifs-[123].right - - renamed from ifs.[123].right because those filenames were bad for - DOS/Windows +lib/readline/bind.c + - remove _SET_BELL macro, expand code inline -tests/ifs-[123].test - - renamed from ifs-test-[123].sh because those filenames were bad - for DOS/Windows +lib/readline/input.c + - change _rl_input_available to use either select or FIONREAD, + but not both -examples/startup-files/Bashrc.bfox - - renamed from examples/startup-files/Bashrc because that filename - conflicts with examples/startup-files/bashrc on case-insensitive - file systems +lib/readline/readline.c + - fix rl_digit_loop to remove unreachable code at end of loop -tests/exec.right - - renamed from execscript.right because that filename is too long - for System V 14-char filename systems +{bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c + - bracket unused functions with #ifdef INCLUDE_UNUSED/#endif + - remove some unused variables -tests/run-set-e - - renamed from run-set-e-test +execute_cmd.c + - remove #ifdef'd code that allowed `return' to terminate a select + statement -tests/misc/perftest - - renamed from tests/misc/haertel.perftest because that filename is - too long for System V 14-char filename systems +expr.c + - remove some extraneous tests from strlong() -lib/glob/fnmatch.c - - new version with full POSIX.2 BRE matching (character classes, - collating symbols, equivalence classes), full support for - strcoll(3), and case-insensitive pattern matching +array.h + - arrayind_t is now a long, since shell arithmetic is performed as + longs + - remove second declaration of new_array_element -lib/glob/fnmatch.h - - new version, with necessary symbols for the new fnmatch.c +builtins/printf.def + - in mklong, xrealloc cannot return NULL, so don't check for it + - remove some #if 0 code + - fix core dump triggered by a format specification with more than + one `*' + - remove `foundmod', since its value mirrors `modchar != 0' + - include "common.h" for builtin_{error,usage} declarations -tests/posixpat.{tests,right}, tests/run-posixpat - - test suite for the POSIX.2 BRE pattern matching code +Makefile.in,builtins/Makefile.in + - updated some dependencies due to new include files -variables.c - - make sure that array assignment using the compound syntax empties - the array before doing the assignment - [in bash-2.01.1] +pcomplete.c + - include "execute_cmd.h" for declaration of execute_shell_function -trap.c - - new function, trap_to_sighandler(sig), which returns the correct - trap handler for SIG depending on the information in sigmodes[sig] - [in bash-2.01.1] +arrayfunc.c + - include for printf + - include "builtins/common.h" for builtin_error declaration -sig.h - - extern declarations for trap_handler and trap_to_sighandler - [in bash-2.01.1] +builtins/evalstring.c + - include "../trap.h" for run_trap_cleanup declaration -jobs.c - - if we get an interrupt while waiting for a command to complete, - and there was a trap set on SIGINT that resets the handler to - SIG_DFL, the value that waitchld uses for old_trap_handler will - be wrong (it will be trap_handler, but trap_handler no longer - knows anything about SIGINT). If old_signal_handler is trap_handler, - but signal_is_trapped(SIGINT) returns 0, we need to call - trap_to_sighandler to decide what to do - [in bash-2.01.1] - - 7/7 - --- -locale.c - - fix to set_locale_var to handle an assignment to LC_ALL (e.g., as - the result of `unset LANG') when default_locale is null - [in bash-2.01.1] +builtins/help.def + - include "common.h" instead of locally declaring builtin_error + and builtin_usage - 7/8 - --- -builtins/umask.def, doc/{bash.{1,html},bashref.texi} - - added `-p' option for umask to print output in a reusable form +error.h + - add extern declaration for itrace() + - add prototype to extern declaration of get_name_for_error + - file_error now takes a `const char *' as first argument - 7/9 - --- -doc/{bash.{1,html},bashref.texi} - - removed descriptions of `-type', `-path', and `-all' options to - the `type' builtin in preparation for removing them in the next - release +externs.h + - added prototype for sh_setlinebuf declaration, bracketed with + NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere + - add extern declaration for parse.y:return_EOF() + +shell.c + - add NEED_SH_SETLINEBUF_DECL before including shell.h -builtins/type.def - - removed mention of `-type', `-path', and `-all' options from the - long help description +lib/readline/callback.c + - include or "ansi_stdlib.h" for abort declaration -error.c, error.h - - new function: internal_warning, for warning messages +quit.h + - remove declaration of throw_to_top_level -variables.c - - changed a call to internal_error to use internal_warning - - modified change of 7/3 so that arrays are not emptied until - just before the shell is about to assign the new values, so - the old value can be used to generate the rhs of the assignment, - if necessary. This is how `normal' shell variables work - [in bash-2.01.1] +subst.c + - remove unused extern declaration for getopts_reset -jobs.c, jobs.h - - delete_job now takes a second int argument and prints a warning - message when deleting a stopped job if the second argument is - non-zero +lib/sh/netopen.c + - include for legal_number, etc. + - add prototype for inet_aton extern declaration -jobs.c, builtins/jobs.def - - changed all calls to delete_job to provide a proper second arg +lib/sh/clock.c + - include for __P declaration + - add extern declaration for get_clk_tck -lib/readline/bind.c - - broke rl_read_init_file into an `upper' and `lower' half in - preparation for adding file inclusion capability to inputrc - parsing - - handle_parser_directive now displays an error message if an - unknown directive is encountered - - parser_endif now prints an error message if an $endif without - a matching $if is found - - added `$include' parser directive to read bindings and commands - from another file at that point - -lib/readline/doc/rluser.texinfo, doc/{bash.{1,html},readline.3} - - documented new readline `$include' parser directive - -shell.c, parse.y - - added a new invocation option, --dump-po-strings, and code to - make it dump translatable strings ($"...") in GNU gettext - `po' format - -doc/{bash.{1,html},bashref.texi} - - documented new `--dump-po-strings' invocation option - -lib/readline/{{kill,funmap}.c,readline.h} - - added `rl_paste_from_clipboard()', bound to `paste-from-clipboard' - for CYGWIN32 users - -lib/readline/kill.c - - incorporated bfox's patches for `iterative' yank-last-arg handling. - This means that one can keep pressing M-. and move backwards in - the history, yanking the last argument of successive history lines - -lib/readline/rlwinsize.h - - new file, encapsulates various locations of the definition for - `struct winsize' +support/mkversion.sh + - changed so that extern function declarations for functions in + version.c (moved from externs.h) are in the generated version.h -aclocal.m4 - - augmented BASH_STRUCT_WINSIZE to look in termios.h as well as - sys/ioctl.h for definition of `struct winsize' +shell.h + - include version.h -lib/readline/rltty.h - - include "rlwinsize.h" after including tty-driver-specific header - file +version.c + - various `char *' version variables are now `const char *' - 7/10 - ---- -support/config.guess - - add better support for SunOS on M68K (old Sun3 machines) +general.h + - add prototype for same_file, bracketed with _POSIXSTAT_H + #ifdef, since that's what include/posixstat.h defines -parse.y - - check for compound array assignment in read_token_word only if - there are characters before the `=' (which would make it a legal - assignment statement). This fixes the problem with defining a - function named `=' with `=() { echo foo; }' - [in bash-2.01.1] +builtins/common.[ch] + - _evalfile, maybe_execute_file, source_file, and fc_execute_file + now take a `const char *' as their first argument -jobs.c, jobs.h - - nohup_all_jobs and delete_all_jobs now take a parameter which - says whether or not to restrict their operation to only running - jobs +eval.c + - removed extern declaration of yyparse; it's in externs.h -jobs.c - - changed all calls to delete_all_jobs +parse.y + - added prototypes to static forward function declarations + - changed local `all_digits' variable in read_token_word () to + all_digit_token to avoid clash with all_digits() function in + general.c -builtins/jobs.def - - added `-a' (all jobs) and `-r' (running jobs only) options to - `disown' +{bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c + - added prototypes for static function declarations -doc/{bash.{1,html},bashref.texi} - - documented new `-a' and `-r' options to `disown' +shell.h + - add extern declarations for interactive, interactive_shell, + changed c files with extern declarations -findcmd.c, findcmd.h - - new files with command searching code from execute_cmd.c and - function declarations from execute_cmd.h +pcomplete.c + - changed it_init_aliases to avoid shadowing global variable + `aliases' -Makefile.in, builtins/Makefile.in - - updated dependencies to account for new findcmd.[ch] - - updated dependencies to account for new redir.[ch] +bashline.c,pathexp.c,general.h + - sh_ignore_func_t is now a pointer to a function taking a + `const char *'; users changed -redir.c, redir.h - - new files with code that sets up lists and performs redirections - from execute_cmd.c and execute_cmd.h +configure.in + - test for -execute_cmd.c - - include new findcmd.h, redir.h +config.h.in + - add #undef HAVE_STRINGS_H - 7/11 - ---- -Makefile.in, configure.in - - PROFILE_FLAGS is now substituted into the Makefile by configure +bashansi.h + - change like recommended in autoconf manual - 7/14 + 9/11 ---- -print_cmd.c - - make sure single_quote is called from xtrace_print_word_list - to correctly quote each word of trace output, especially those - with embedded quotes - [in bash-2.01.1] +[a date which will live in infamy. prayers for the victims.] -aclocal.m4 - - extended BASH_CHECK_GETPW_FUNCS so that it checks that getpwuid - and getpwnam can also be declared, as well as getpwent - [in bash-2.01.1] - - in BASH_FUNC_PRINTF, cast printf to type `_bashfunc' before trying - to assign it to `pf' to avoid any prototype problems in the - declaration - [in bash-2.01.1] +execute_cmd.c + - don't use an absolute index into abuf in mkfmt, use + sizeof(abuf) to compute last index -trap.c - - include before any of the bash-specific header files, - but after config.h - [in bash-2.01.1] +builtins/common.c + - fix read_octal to do a better job of detecting overflow while + iterating through the string -test.c - - include and declare `extern int errno' before including - any of the bash-specific include files, but after - [in bash-2.01.1] +builtins/umask.def + - change octal-print mode to print 4 digits, like other shells + - cast umask to unsigned long to avoid problems on systems where + it's wider than an int (POSIX doesn't guarantee that mode_t is + no wider than an int, but real-world systems use int) -builtins/Makefile.in - - PROFILE_FLAGS is now substituted into the Makefile by configure +builtins/printf.def + - mklong can never return NULL (it uses xrealloc), so the mainline + doesn't need to check for NULL returns + - new function, getldouble (long double *), to get long doubles + - mklong now takes a `char *' as its second argument, the modifier(s) + to use + - changed use of `modchar' to handle more than a single modifier + character + - changed to handle `long double' and `L' formats better, rather + than discarding long double information + - since printf now follows the POSIX.2 rules for conversion errors, + we can dispense with the status returns from the get* functions + - make the get* functions as similar in structure as possible, + removing type casts, etc. + +lib/sh/timeval.c,execute_cmd.c + - change some instances of `long' to `time_t', for systems where + a time_t is bigger than a long + +jobs.c + - include "posixtime.h" instead of + +config.h.in + - add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD, + HAVE_DECL_SBRK, HAVE_DECL_PRINTF + - remove defines for SBRK_DECLARED and PRINTF_DECLARED + - add _GNU_SOURCE define configure.in - - new options, --enable-profiling and --enable-static-link, to turn - on profiling with gprof and link bash statically (if using gcc) - for use as a root shell. The former implies the latter. If - we're linking statically, dynamic loading of new builtins is not - available + - add AC_CHECK_DECLS for strtold, confstr, sbrk, printf + - remove call to BASH_FUNC_SBRK_DECLARED + - remove call to BASH_FUNC_PRINTF -doc/bashref.texi - - documented new --enable-profiling and --enable-static-link - options in installation section; regenerated INSTALL +xmalloc.c, lib/malloc/malloc.c + - change check of SBRK_DECLARED to HAVE_SBRK_DECL -lib/glob/glob.[ch] - - new global variable, glob_ignore_case, turns on case-insensitive - filename matching in fnmatch() using the FNM_CASEFOLD flag +print_cmd.c + - change PRINTF_DECLARED to HAVE_DECL_PRINTF -doc/{bash.{1,html},bashref.texi} - - documented new shopt `nocaseglob' option +builtins/evalstring.c, builtins/common.h + - parse_and_execute now takes a `const char *' as its second argument - 7/15 - ---- -bashline.c - - when glob_complete_word is called with state == 0, make sure we - set rl_filename_completion_desired so that proper quoting of - the resultant filenames is performed - [in bash-2.01.1] +input.h,parse.y + - with_input_from_* functions now take a `const char *' as their + second argument + - init_yy_io now takes a `const char *' as its fourth argument - 7/16 - ---- -externs.h, oslib.c - - strcasecmp and strncasecmp replacements should have `const char *' - as the first two arguments, to match OS definitions - [in bash-2.01.1] +parse.y,externs.h + - parse_string_to_word_list now takes a `const char *' as its second + argument - 7/17 - ---- -(many files) - - changes for minix-2.0, mostly just adding #ifndef _MINIX around - include files that minix doesn't provide, like and - +tests/builtins.right + - change output to account for extra digit in umask output -lib/readline/terminal.c - - removed `outchar' function; use _rl_output_character_function in - its place +pcomplib.c + - free_progcomp now takes a PTR_T argument -support/config.guess - - changes to recognize HP_ARCH of `hppa2.0' +builtins/bashgetopt.h + - include + - add prototypes to extern declarations -test.c - - new `-N' option: `test -N file' returns true if FILE exists and - has been modified since it was last accessed +builtins/shopt.def + - add prototypes to static function declarations + +builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c + - include for isdigit macro (referenced by `digit(x)') -doc/{bash.{1,html},bashref.texi} - - documented new `test -N' option +lib/readline/complete.c + - added more static function declarations with prototypes - 7/22 + 9/12 ---- -aclocal.m4 - - prefer /var/spool/mail to /usr/spool/mail in BASH_DEFAULT_MAIL_DIR - [in bash-2.01.1] +lib/sh/tmpfile.c + - use `^' instead of `*' in sh_mktmpname to make filenames a bit + more random -lib/readline/{complete,bind}.c - - new readline variable, print-completions-horizontally, which causes - matches to be printed across the screen (like `ls -x') rather than - up-and-down (like `ls') - - new readline variable, completion-ignore-case, which causes filename - completion and matching to be performed case-insensitively +include/stdc.h,lib/readline/rldstdc.h + - add __attribute__ definition -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - documented new print-completions-horizontally variable - - documented new completion-ignore-case variable +builtins/common.h + - add printf __attribute__ to declaration of builtin_error -_distribution, Makefile.in - - bumped the version number up to 2.02-alpha1 +error.h + - add printf __attribute__ to declaration of programming_error, + report_error, parser_error, fatal_error, sys_error, internal_error, + internal_warning -bracecomp.c - - fixes so that the braces are not quoted by the filename quoting - function when complete-into-braces is executed with M-{. The - brace completion functions do filename quoting themselves - [in bash-2.01.1] +lib/readline/readline.h + - add printf __attribute__ to declaration of rl_message -pathexp.c - - changed quote_string_for_globbing so that it takes a flags word - as its second argument +pcomplete.c + - add printf __attribute__ to declaration of debug_printf -pathexp.h - - defines for flags passed to quote_string_for_globbing +print_cmd.c + - add printf __attribute__ to declarations of cprintf, xprintf -subst.c,execute_cmd.c - - changed calls to quote_string_for_globbing to pass the correct - flag arguments +include/chartypes.h + - new file, includes and defines macros that check for + safe (ascii) arguments before calling the regular ctype macros -expr.c - - added a `**' binary operator to do exponentiation (2**16 == 65536). - precedence is lower than arithmetic operators, higher than unary - operators (2**16-1 == 65535) +{alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c +parse.y +builtins/{bashgetopt,common}.c +builtins/{fc,printf,umask,wait}.def +lib/glob/strmatch.c +lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c +examples/loadables/{head,sleep}.c + - include "chartypes.h" or instead of -doc/{bash.{1,html},bashref.texi} - - documented new `**' arithmetic binary operator +Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in + - update dependencies to include chartypes.h - 7/24 - ---- -shell.c - - added new (currently undocumented) `--wordexp' option to do the - job required by POSIX.2 wordexp(). If -n is supplied along with - --wordexp, command substitution is disallowed and the shell - exits with a status of 125 if one is attempted. If there is an - expansion error, the shell exits with a status of 127. If there - is a shell parsing error, the shell exits with a status of 126. - Otherwise, the exit status is 0. The current output is - - number of words\n - number of bytes\n - expanded words, one per line, separated by newlines - - This will have to be changed when an interface to glibc is coded - - 7/28 - ---- -hashcmd.h - - reduced the default size of the filename hash table from 631 - to 107 - -sig.c - - don't call initialize_siglist if HAVE_UNDER_SYS_SIGLIST is defined - [in bash-2.01.1] - -siglist.c - - don't compile this file if HAVE_UNDER_SYS_SIGLIST is defined - [in bash-2.01.1] - -variables.c - - fix to make $RANDOM work better in subshells - [in bash-2.01.1] - -aclocal.m4 - - new macro, BASH_DECL_UNDER_SYS_SIGLIST, looks for _sys_siglist in - and , defines UNDER_SYS_SIGLIST_DECLARED if - found - [in bash-2.01.1] - - change BASH_UNDER_SYS_SIGLIST to require BASH_DECL_UNDER_SYS_SIGLIST, - like BASH_SYS_SIGLIST requires AC_DECL_SYS_SIGLIST - [in bash-2.01.1] +lib/sh/inet_aton.c + - use `unsigned char' instead of `char' to pass to ctype.h functions -config.h.in - - add a line for UNDER_SYS_SIGLIST_DECLARED - [in bash-2.01.1] +lib/sh/netopen.c + - check for '0' <= host[0] <= '9' in _getaddr instead of using + isdigit -configure.in - - make sure that SVR4_2 is defined for machines that have $host_os - sysv4.2* (e.g., sysv4.2MP) as well as $host == sysv4.2 - [in bash-2.01.1] +subst.c,lib/sh/shquote.c + - change array subscripts into sh_syntaxtab from `char' to + `unsigned char' - 7/29 - ---- -command.h - - new command type, ARITH_COM, used to create and execute a ((...)) - command without translating it into let "..." +{alias,bashline,execute_cmd,expr,general,subst}.c, parse.y +builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c +lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c +examples/loadables/{head,sleep}.c + - change to use some of the new macros in chartypes.h + - remove old local macro definitions now provided by chartypes.h -parse.y - - changes to the grammar and lexer so that ((...)) is parsed as a - command of type ARITH_CMD. An ARITH_CMD is a WORD_LIST, for - future expansion, even though only the first word is used +general.h + - remove definition of isletter, ISOCTAL, digit, digit_value + - change legal_variable_starter and legal_variable_char to use + chartypes.h macros + - change ABSPATH to use chartypes.h macros -make_cmd.c, make_cmd.h - - definition and declaration of a function to build an arithmetic - command +lib/readline/util.c + - change to use Paul Eggert's FUNCTION_FOR_MACRO define to define + function replacements for macros in chardefs.h -dispose_cmd.c - - added code to dispose of arithmetic commands +lib/readline/chardefs.h + - added some of the same macros as in chartypes.h + - change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, + _rl_to_upper, _rl_to_lower to use new IS* macros + - added _rl_isident macro from vi_mode.c:isident -print_cmd.c - - added code to print arithmetic commands, both `regularly' and - when they're being traced with `set -x' +lib/readline/{bind,complete,nls}.c + - change to use some of the new macros from chardefs.h -externs.h - - extern declaration for xtrace_print_arith_cmd +lib/readline/vi_mode.c + - isident -> _rl_isident + - remove local defines of macros in chardefs.h -copy_cmd.c - - added code to copy arithmetic commands +lib/sh/strtol.c + - updated to new version, modified from glibc 2.2.4 and sh-utils-2.0. + This one can do strtoll and strtoull, if necessary -execute_cmd.c - - added code to directly execute arithmetic commands -- they are - a shell_control_structure, so just about everything like - redirections and piping is taken care of by the boilerplate code. - All that's needed is to expand the expression (which is within - double quotes -- added by parse.y:parse_arith_cmd()), print it - if tracing is enabled, call the expression evaluator, and return - an appropriate result - - 7/30 + 9/13 ---- -input.c - - new function, set_buffered_stream(fd, bp), sets the buffered stream - associated with FD to BP and returns the old buffered stream - -input.h - - extern declaration for set_buffered_stream - -parse.y - - call set_buffered_stream rather than manipulating the BUFFERS array - directly - -shell.c - - unset_bash_input now takes an argument, CHECK_ZERO. This tells it - whether to check whether default_buffered_input is >= 0 or just > 0 - -externs.h - - changed extern declaration for unset_bash_input +builtins/ulimit.def + - changed get_limit so it retrieves both hard and soft limits + instead of one or the other + - changed callers of get_limit + - changed getmaxvm to take soft limit, hard limit as arguments + - changed getmaxuprc to just take a single argument, the value + - changed calls to printone() to pass soft limit or hard limit + depending on `mode' instead of using old current_limit variable + - moved check for out-of-range limits in ulimit_internal into the + block that converts a string argument to a value of type rlim_t + - changed RESOURCE_LIMITS struct to break the description into a + description string and separate scale factor string + - changed print_all_limits to print a single error message if + get_limit fails, including limits[i].description now that the + scale factor has been removed from the description string + - removed DESCFMT define, since it's now used only in printone() + - changed printone to print the option character associated with a + particular limit if we're printing multiple limits + - changed calls to builtin_error to print the description associated + with a limit if setting or getting the limit fails + - added support for new POSIX 1003.1-200x rlim_t values: + RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current + soft and hard limits, whatever they are + - changed printone to print `hard' or `soft' if the current limit is + RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively + - changed ulimit_internal to handle new `hard' and `soft' arguments + - changed help text do describe the special limit arguments `hard', + `soft', and `unlimited' -execute_cmd.c, jobs.c, nojobs.c - - changed calls to unset_bash_input to add appropriate argument +doc/{bash.1,bashref.texi} + - documented new `hard' and `soft' limit arguments to `ulimit' -input.h - - #undef B_* before defining them as flag values for b_flags. Some - systems, like SVR4, have a B_ERROR define in a file included by - jobs.c and nojobs.c, and it causes a warning +hashlib.[ch] + - find_hash_item now takes a `const char *' is its first argument + - hash_string now takes a `const char *' is its first argument + - remove_hash_item now takes a `const char *' as its first argument - 7/31 - ---- -fnmatch.c - - rewrote most of fnmatch(), so that it now implements ksh-88 style - pattern matching (`[@+*?!](patlist)') if the FNM_EXTMATCH flag - is set +pcomplib.c + - removed cast from first argument to find_hash_item in find_compspec -fnmatch.h - - added a define for FNM_EXTMATCH +general.[ch] + - absolute_program now takes a `const char *' as its argument + - absolute_pathname now takes a `const char *' as its argument - 8/4 - --- -lib/readline/display.c - - fixed _rl_redisplay_after_sigwinch () so that it really redisplays - only the portion after the final newline of a multi-line prompt - [in bash-2.01.1] +lib/glob/glob.[ch] + - glob_pattern_p now takes a `const char *' as its argument bashline.c - - attempt_shell_completion no longer returns matches if a glob pattern - matches more than one filename -- it caused too many problems - [in bash-2.01.1] - - 8/5 - --- -lib/glob/glob.c - - updated glob_pattern_p so that the extended matching operators - are recognized - -pathexp.c - - udpated unquoted_glob_pattern_p so that the extended matching - operators are recognized - - udpated quote_globbing_chars so that the extended matching - operators are recognized and quoted appropriately - -subst.c - - updated match_pattern_char so that the extended matching operators - are recognized - -parse.y - - updated read_token_word so that it parses an extended matching - pattern as a single word - -jobs.c - - if a job is suspended with SIGTSTP, and the user has set - checkwinsize with `shopt', update the window size - [in bash-2.01.1] - -pathexp.c, pathexp.h - - new global variable, extended_glob, controls whether the extended - pattern matching features are enabled - -pathexp.h - - new define, FNMATCH_EXTFLAG, to be OR'd with other values for - flags argument to fnmatch to enable the extended pattern matching - features if extended_glob is set - -{pathexp,execute_cmd,bashhist,subst,test}.c, builtins/help.def - - changed calls to fnmatch to add FNMATCH_EXTFLAG to the flags arg if - extended_glob is non-zero + - removed cast from first argument to absolute_program in + command_word_completion_function + - removed cast from first argument to glob_pattern_p in + attempt_shell_completion + +findcmd.[ch] + - find_absolute_program, find_user_command, find_path_file, + search_for_command, user_command_matches now take a + `const char *' as their first argument + - file_status, executable_file, is_directory, executable_or_directory + now take a `const char *' as their argument + - _find_user_command_internal, find_user_command_internal, + find_user_command_in_path + +lib/sh/makepath.c, externs.h + - changed sh_makepath so it takes `const char *' for its first + two arguments + +hashcmd.[ch] + - find_hashed_filename now takes a `const char *' as its first arg + - remove_hashed_filename now takes a `const char *' as its first arg -lib/glob/glob.c - - changed flags arg passed to fnmatch to include FNM_EXTMATCH if - extended_glob is non-zero (#ifdef SHELL) - - 8/6 - --- -builtins/shopt.def - - added a new `extglob' shell option, controls the value of - extended_glob - - 8/7 - --- -doc/{bash.{1,html},bashref.texi} - - documented new extended pattern matching operators and the `extglob' - shell option - -tests/{extglob.{tests,right},run-extglob} - - test suite for the new extended globbing features - - 8/8 - --- -parse.y, pathexp.h, lib/glob/fnmatch.c - - made the extended globbing code #ifdef EXTENDED_GLOB - -config.h.in - - added a line for EXTENDED_GLOB, controlled by configure - -configure.in - - new option, --enable-extended-glob, controls defining of - EXTENDED_GLOB (on by default) - -doc/bashref.texi - - documented new `configure' `--enable-extended-glob' option - - 8/11 - ---- -builtins/printf.def - - new `printf' builtin, implemented according to POSIX.2 spec - for printf(1) - -Makefile.in,builtins/Makefile.in - - added necessary stuff for new printf builtin +variables.[ch] + - new_shell_variable, var_lookup, shell_var_from_env_string, + find_name_in_env_array, bind_function, makunbound, + bind_name_in_env_array, bind_tempenv_variable, bind_variable + now take a `const char *' as their first arg + - find_function, make_new_variable, find_tempenv_variable, + find_variable_internal, find_variable, set_func_read_only, + set_func_auto_export, all_variables_matching_prefix, assign_in_env, + assignment, kill_local_variable, make_local_variable, unbind_variable + now take a `const char *' as their arg + - mk_env_string now takes `const char *' arguments + +arrayfunc.[ch] + - skipsubscript now takes a `const char *' as its argument - 8/12 + 9/17 ---- -lib/readline/isearch.c - - change to make ^G interrupt the incremental search correctly - [in bash-2.01.1] - -configure.in, config.h.in - - configure now checks for the availability of strtoul(3) +lib/readline/complete.c + - attempt to preserve case of what the user typed in + compute_lcd_of_matches if we're ignoring case in completion -builtins/printf.def - - use strtoul for the `%o', `%u', `%x', and `%X' formats if it - is available +builtins/{let,pushd}.def,{execute_cmd,expr}.c + - change some 0L constants to 0 and let the compiler sort it out - 8/13 + 9/18 ---- -tests/{printf.{right,tests},run-printf} - - extensive test suite for the new `printf' builtin +lib/malloc/alloca.c + - alloca now takes a `size_t' argument -builtins/Makefile.in - - change so that `builtext.h' is not recreated every time the source - file for a builtin is changed if the contents are the same. This - keeps many files from being recompiled +include/memalloc.h + - if we're providing an extern function declaration for alloca, + use `void *' and prototype if __STDC__ is defined + - if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't + define HAVE_ALLOCA - 8/14 + 9/19 ---- subst.c - - changed verify_substring_values so that it returns -1 for substring - range errors, 0 for expression errors, and 1 for success - [in bash-2.01.1] - - changed parameter_brace_substring to return an error if - verify_substring_values returns 0, and a null string if it returns - -1. This matches the ksh93 behavior - [in bash-2.01.1] + - do_assignment_internal, do_assignment, and do_assignment_no_expand + now take a `const char *' as their first argument -trap.c - - changed decode_signal so that it makes sure the first three - characters of a signal name are `SIG' before allowing the `SIG' - prefix to be omitted. This is so a signal spec of `T' does not - match `EXIT', for instance - [in bash-2.01.1] - -builtins/trap.def - - make sure that showtrap() displays traps for signals with unknown - names using the signal number - [in bash-2.01.1] -shell.c - - make sure that `bash -r' doesn't turn on the restricted mode until - after the startup files are executed - [in bash-2.01.1] - -doc/{bash.{1,html},bashref.texi} - - documented printf builtin - - 8/15 - ---- -general.c - - added \xNNN escape to ansicstr -- NNN are up to three hex digits. - This affects $'...', `echo -e', and printf - -builtins/printf.def - - added \xNNN escape to bexpand -- NNN are up to three hex digits. - This affects printf's `%b' conversion specifier - -doc/{bash.{1,html},bashref.texi} - - documented new \xNNN escape sequence for echo, $'...', and printf - -builtins/setattr.def - - make sure that a variable found in the temp environment does not - cause a null string to be assigned by bind_variable (e.g., - foo="" export foo - ) - [in bash-2.01.1] +general.h + - a `sh_assign_func_t' is now a function taking a `const char *' and + returning int - 8/18 - ---- -subst.c - - fixed a bug that sometimes caused bad memory (pointer into an - allocated block) to be passed to free when doing arithmetic - substitution. Bug report from stevet@myofb.org - [in bash-2.01.1] +hashcmd.c + - free_filename_data now takes a `PTR_T' argument to agree with the + typedef for `sh_free_func_t' - 8/19 - ---- -subst.c - - considerable changes: moved the code that expands a single - $... parameter expansion into a separate function: param_expand() - This function returns a string, which may contain characters - quoted with CTLESC or CTLNUL without doing word splitting - - changed expand_word_internal to not remove the expansion of "$*" - if the number of positional parameters is > 0 - - changed the '"' case of expand_word_internal to remove quoted - nulls from the resultant word if the expansion was not "$@", and - the word is not a quoted null string ([] == CTLNUL, [1] == '\0') - -subst.c, variables.c - - moved the code that handles special variables from subst.c to - variables.c +lib/sh/snprintf.c + - use TYPE_MAXIMUM define like strtol.c instead of huge constants - 8/20 - ---- -subst.c - - rearranged the source a bit to group functions with similar - operation together - - fixed parameter_brace_expand so that it no longer allows - indirect expansion of `special' variables - - fixed parameter_brace_expand so taking the length of some of - the shell's special parameters works again - - moved all of the code that computes the length of a shell - parameter (the ${#xxx} expansion) into parameter_brace_expand_length. - Previously, the code that handled the lengths of the shell's - special parameters was in parameter_brace_expand_word - - valid indirect expansions are now only variable names or positional - parameters - - 8/21 + 9/20 ---- -subst.c - - fixed param_expand to raise an expansion error if $! is being - expanded and no asynchronous processes have been created - - an expression error in a $((...)) arithmetic expansion now causes - a non-interactive shell running in POSIX mode to exit - - relaxed change of 8/20 to allow indirect references to $#, $@, $* - -builtins/bashref.texi - - documented new posix-mode exit on invalid expressions in $((...)) - -lib/readline/complete.c - - don't call rl_strpbrk unless rl_filename_quote_characters is not - NULL -- strpbrk requires non-NULL arguments - [in bash-2.01.1] +lib/sh/snprintf.c + - don't bother to compile the bulk of the body unless HAVE_SNPRINTF + or HAVE_ASPRINTF is not defined - 8/22 - ---- -bashline.c - - don't make `history-expand-line' a bindable command unless - BANG_HISTORY is defined, and don't compile the code for that - command in unless BANG_HISTORY is defined - - make history_expand_line(), tcsh_magic_space(), alias_expand_line(), - and history_and_alias_expand_line() int-returning functions that - return 0 for success and non-zero on error. This allows - tcsh_magic_space() to just call history_expand_line() and insert - a space if that returns successfully - - `magic-space' is now a bindable readline command - -doc/bash.{1,html}, lib/readline/doc/rluser.texinfo - - documented new `magic-space' bindable readline command - - 8/25 + 9/24 ---- -parse.y - - fixed decode_prompt_string so that values of $PWD longer than - PATH_MAX don't cause buffer overruns (char t_string[PATH_MAX]) - [in bash-2.01.1] +flags.c + - ignore `set -n' if the shell was started interactively -general.c - - fixed polite_directory_format so that values of $HOME longer - than PATH_MAX don't cause buffer overruns (char tdir[PATH_MAX]) - [in bash-2.01.1] +lib/readline/readline.c + - initialize readline_echoing_p to 0; let the terminal-specific code + in rltty.c set it appropriately -subst.c - - fix to expansion of $* so that the positional parameters are - separated by the first character of $IFS, even when the expansion - is not within double quotes, so the correct split is still - performed even when IFS does not contain a space. Works for - ${*}, too - - fix to expansion of $@ so that the positional parameters are - separated by the first character of $IFS, even when the expansion - is not within double quotes, so the correct split is still - performed even when IFS does not contain a space. Works for - ${@}, too - - new function, string_list_dollar_at(), which is to $@ as - string_list_dollar_star is to $* - - fixed expansion of $@ so that splitting is still done even if - IFS is unset or NULL, as POSIX.2 specifies (section 3.5.2) - - fixed expansion of $* so that it expands to multiple words if there - is more than one positional parameter, just like $@, even if - IFS is unset or NULL - - new function list_quote_escapes, quotes (with CTLESC) all - CTLESC and CTLNUL characters in each member of the list - -tests/dollar-{at,star}.sh - - combined into dollar-at-star, changed run-dollars accordingly - - 8/26 - ---- -Makefile.in - - make the `tests' target use $(SHELL) instead of hardcoding `sh' +lib/malloc/malloc.c + - changed internal_memalign() slightly to avoid compiler warnings about + negating an unsigned variable (-alignment -> (~alignment + 1)) - 8/29 + 9/27 ---- -subst.c - - expand_word_list_internal now takes a flags word as the second - argument, telling which expansions to perform on the WORD_LIST - - broke expand_word_list_internal into several functions: one - each to do brace expansion, glob expansion, and the `normal' - shell expansions - - new extern function: expand_words_shellexp() to perform the - `normal' shell expansions on a WORD_LIST - -subst.h - - extern declaration for expand_words_shellexp - -bashline.c - - fixed a problem with attempt_shell_completion where it attempted - to refer to rl_line_buffer[-1] (completion at the start of the - line, which means that ti == -1, which means that the test for - rl_line_buffer[ti] at line 715 was an array bounds error - [in bash-2.01.1] - -eval.c - - new function, parse_string_to_word_list(), which takes a string - and runs it through the parser, returning the resultant word - list - -externs.h - - new extern declaration for parse_string_to_word_list() - -variables.c - - change assign_array_var_from_string to first split the string - between the parens on whitespace, then expand the resultant - list of words with all the shell expansions before doing the - assignment - - 9/4 - --- -redir.c, redir.h - - redirection_error is no longer a static function +lib/readline/readline.c + - changed rl_newline to set _rl_history_saved_point appropriately + for the {previous,next}_history code -builtins/evalstring.c - - changes to handle $( < filename ) (equivalent to $(cat filename)) - as in ksh +lib/readline/rlprivate.h + - extern declaration for _rl_history_preserve_point lib/readline/bind.c - - added two new functions: rl_unbind_function_in_map(func, map), - which unbinds all keys that execute FUNC in MAP; and - rl_unbind_command_in_map(command, map), which unbinds all keys - bound to COMMAND in MAP - -lib/readline/readline.h - - extern declarations for rl_unbind_{function,command}_in_map - -lib/readline/doc/rltech.texi - - documented rl_unbind_{function,command}_in_map - -builtins/bind.def - - added a new option, -u FUNCNAME, which unbinds all key sequences - bound to FUNCNAME in the specified (or current) keymap - -doc/{bash.{1,html},bashref.texi} - - documented new $( < filename ) command substitution - - documented new bind -u FUNCNAME option - - 9/5 - --- -shell.c - - send SIGHUP to all jobs when an interactive login shell exits if - the variable `hup_on_exit' is non-zero - - modified run_startup_files so that if `NON_INTERACTIVE_LOGIN_SHELLS' - is #define'd (perhaps in config.h.top, though there is nothing there - for it), all login shells (interactive and non-interactive) run - /etc/profile and one of the per-user login shell startup files - -builtins/shopt.def - - new shopt option `huponexit' to control the value of hup_on_exit - -doc/{bash.{1,html},bashref.texi} - - documented new `huponexit' shell option - - 9/8 - --- -builtins/common.c - - changed contains_shell_metas to return 1 if a tilde appears at the - start of a string or after a `=' or `:' - - changed backslash_quote to quote a tilde if it appears at the start - of a string or after a `=' or `:' - -lib/readline/complete.c - - moved rl_tilde_expand to util.c; it doesn't really have anything - to do with completion - - moved insert_text to readline.c, renamed it _rl_replace_text (since - that's really what it does), changed callers - - moved code that postprocesses the list of completion matches into - a new function: postprocess_matches - - new implementation of tcsh-like menu completion in a single new - function: rl_menu_complete - -lib/readline/{funmap.c,readline.h} - - necessary declarations for binding rl_menu_complete to the - new `menu-complete' command - -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - documented new `menu-complete' bindable readline command - - 9/9 - --- -jobs.c - - delete_job should print a warning only if subshell_environment - is 0, so we don't print bogus warnings when shell scripts without - a leading #! are executed - - 9/10 - ---- -builtins/read.def - - fixed the code so that the `read' is automatically restarted when - it returns -1 with errno == EINTR. SIGINT is handled by the - interrupt handler, since interrupt_immediately is set to 1, so - this handles things like SIGCHLD - [in bash-2.01.1] + - new bindable variable, `history-preserve-point', sets value of + _rl_history_preserve_point - 9/11 + 10/1 ---- -test.c - - reorganized the code slightly to make it easier to add the ksh-like - [[...]] compound command - -test.h - - new file, with extern declarations for functions available in test.c +lib/malloc/table.c + - new file, with a map of allocated (and freed) memory for debugging + multiple frees, etc. Indexed by hash on values returned by + malloc(); holds size, file and line number info for last alloc or + free and a couple of statistics pointers -externs.h - - moved declaration of test_command to test.h +lib/malloc/malloc.c + - a few cleanups; added calls for registering allocations and frees + if MALLOC_REGISTER is defined + - replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define + - reordered fields in `struct...minfo' in `union mhead' to restore + eight-byte alignment + - added explicit checks for underflow in free and realloc since + checking mh_magic2 is not sufficient to detect everything (it's + no longer the last field in the struct, and thus not the bytes + immediately preceding what's returned to the user) + - new function, xbotch, for printing file and line number info for + the failed assertion before calling botch() (programming_error()) + +configure.in + - replaced call to BASH_C_LONG_LONG with call to + AC_CHECK_TYPES([long long]) + - moved the C compiler tests before the tests for various + system types, so we can know whether we have `long long' + before testing for 64-bit types + - if we have `long long', check for sizeof(long long) and save value -builtins/test.def - - include `test.h' +aclocal.m4 + - changed BASH_TYPE_BITS64_T to check `long long' before `long', but + after `double' - 9/16 + 10/2 ---- -{command,make_cmd,dispose_cmd,externs,subst}.h -parse.y, subst.c -{make,dispose,copy,print,execute}_cmd.c - - changes to add the new ksh-93 compatible [[...]] conditional command - -configure.in - - new enable option, --enable-cond-command, to compile in the [[...]] - command code - -config.h.in - - new #define, COND_COMMAND, to compile in the [[...]] command code - -tests/{run-cond,cond.{tests,right}} - - test suite for the new [[...]] command - -{builtins,lib/{readline,glob,tilde}}/Makefile.in - - explicit dependencies for .o files on .c files for losing makes - like Solaris - -doc/{bash.{1,html},bashref.texi} - - documented the new `[[' compound command - - documented the test/[ builtin behavior based on the number of - arguments in the description of the builtin - - made a new section for conditional expressions that just lists - the available primaries -- the connectives and other operators - are listed in the description of the [[ command and the test/[ - builtin +lib/malloc/malloc.c + - made malloc and realloc both agree on the rounding for a request of + size N (round up to nearest multiple of 8 after adjusting for + malloc overhead); uses new ALLOCATED_BYTES macro + - realloc and free now use new IN_BUCKET macro for underflow checks - 9/18 - ---- -builtins/set.def - - minus_o_option_commands is now a global function so the shopt - code can use it - - minus_o_option_commands now takes an argument telling it which - options to print, just like list_minus_o_options - - new function, print_minus_o_option, which prints the value of - a `set -o' option either in the traditional format or in the - format used by `set +o' - - changed list_minus_o_opts and minus_o_option_commands to call - print_minus_o_option +execute_cmd.c + - fixed time_command() to use `time_t' instead of `long' to hold + time stamps -builtins/shopt.def - - `shopt -p' now causes output to be printed in a format reusable - as input (the format is a series of shopt commands, like the - output of `set +o') - - fixed a bug that made `shopt -so' and `shopt -uo' not work - - fixed list_shopt_o_options so that `shopt -op' acts like `set +o' - - fixed list_shopt_o_options to that `shopt -op optname' prints the - value of optname in a reusable format - - fixed list_some_o_options so that `shopt -ops' and `shopt -opu' - work and display output in a reusable format +lib/sh/clock.c + - clock_t_to_secs now takes a `time_t *' second argument + - fixed print_clock_t to call clock_t_to_secs with right arguments - 9/19 - ---- -doc/{bash.{1,html},bashref.texi} - - documented new `shopt -p' behavior +lib/sh/timeval.c + - fixed print_timeval to make `minutes' a `long' and make its + structure identical to print_clock_t -shell.c - - made `bash +o' display the same output as `set +o' and then - start an interactive shell (previously `bash -o' and `bash +o' - displayed the same thing) +redir.c + - changed redirection_error to check for EBADF and use the file + descriptor being redirected from in the error message if it + is >= 0 -builtins/common.h - - added prototypes to the extern function declarations +Makefile.in + - changed release status to `beta1' - 9/22 - ---- -builtins/evalstring.c - - fixed the DISCARD case of the jump_to_top_level so that it - doesn't try to call dispose_command(command) after the - `pe_dispose' unwind frame gets run, since that disposes the - command +lib/glob/collsyms.h + - added a few ASCII symbols to the posix_collsyms array - 9/23 + 10/3 ---- -test.[ch] - - test_eaccess is now a global function so that globbing code can - use it - -lib/glob/glob.c - - rewrote glob_vector to be slightly more efficient and to not - read the directory if the filename pattern does not contain - any globbing chars. This satisfies the POSIX requirement that - read permission is not required for a directory when the - pathname component does not contain a pattern character (bug - reported by jsm28@cam.ac.uk) +aclocal.m4 + - fixed typo in BASH_TYPE_BITS64_T -subst.c - - fixed parameter_brace_expand so that ${array[@]} and ${array[*]} - behave correctly when IFS is unset or set to something that does - not contain a space (they should result in separate words, just - like $@ and $*) +configure.in + - added check for unsigned chars with AC_C_CHAR_UNSIGNED -tests/{run-array2,array-at-star,array2.right} - - tests for the expansions of ${array[@]} and ${array[*]}, derived - from the tests in dollar-at-star +config.h.in + - added PROTOTYPES and __CHAR_UNSIGNED__ #defines - 9/24 - ---- -jobs.c - - fixed cleanup_dead_jobs so that it doesn't remove the job - containing last_asynchronous_pid from the job table. This - fixes the POSIX.2 `wait' requirement problem +general.h + - if CHAR_MAX is not define by , provide a definition - 9/25 - ---- -parse.y - - added `\r' escape sequence to the prompt expansion code +builtins/printf.def + - change tescape() to mask \0 and \x escape sequences with 0xFF + - change tescape() to process at most two hex digits after a `\x' -lib/readline/chardefs.h - - added defines for ISOCTAL, OCTVALUE, isxdigit (if not defined), - and HEXVALUE +lib/sh/strtrans.c + - change strtrans() to mask \0 and \x escape sequences with 0xFF + - change strtrans() to process at most two hex digits after a `\x'. + This affects `echo -e' and $'...' processing lib/readline/bind.c - - added `normal' echo/printf-like backslash escapes to the - key sequence translation code, with the addition that \d - expands to RUBOUT. This means that key sequence definitions - (before the `:') and macro values may contain these special - backslash-escape sequences - - now that we can translate octal escape sequences in key bindings, - change _rl_get_keyname so that it turns characters with values - 128-159 inclusive into octal escape sequences (\200-\237), since - those characters are not ASCII or ISO Latin 1 - -doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo - - documented new backslash escapes for readline key sequence and - macro translation - -builtins/pushd.def - - new function, get_dirstack_from_string(char *string), returns an - element from the directory stack or null, treating the argument - exactly as `dirs string' would, with the exception that if - the first character of `string' is not `+' or `-', a `+' is - assumed - -builtins/common.h - - new extern declaration for get_dirstack_from_string - -general.c - - added code to bash_special_tilde_expansions to get the expansion - using get_dirstack_from_string() if the first character of the - tilde-prefix is a digit or the first character is a `+' or `-' - and the second is a digit - -tests/dstack.{tests,right} - - renamed from dirstack.{tests,right} + - changed rl_translate_keyseq() to process at most two hex digits + after a `\x' -tests/dtack2.{tests,right} - - new tests for the directory stack tilde expansion code +lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 + - changed documentation for key binding escape sequences to specify + that at most two hex digits after \x are translated + - changed documentation for key binding to specify that the result + of \nnn or \xhh escapes is an eight-bit value, not just ASCII -tests/run-dirstack - - now runs both dstack and dstack2 +doc/{bash.1,bashref.texi} + - changed documentation of $'...' to specify that at most two hex + digits after \x are translated + - changed `echo' documentation to specify that at most two hex + digits after \x are translated + - changed documentation for `echo' and $'...' to specify that the + result of \nnn or \xhh escapes is an eight-bit value, not just ASCII - 10/3 + 10/4 ---- -trap.c - - reordered header file inclusion for irix 4 - -execute_cmd.c - - fixed select_query so that a reply that is not a number is treated - the same as a numeric reply that is out of range - -lib/readline/util.c - - added a backwards-compatibility definition of _rl_savestring() +lib/malloc/malloc.c + - changed interface for xbotch to pass memory address and error code + as two additional arguments + - call mregister_describe_mem from xbotch to get the last allocation + or free before the botch -builtins/set.def - - initialize_shell_options now takes an argument saying whether or - not we should parse $SHELLOPTS from the environment. The shell - does not parse the value if it's restricted, running setuid, or - running in `privileged mode' +configure.in + - call AC_CHECK_DECLS([strsignal]) -shell.c - - change call to initialize_shell_options to add the correct argument +config.h.in + - add HAVE_DECL_STRSIGNAL -builtins/common.h - - changed extern declaration for initialize_shell_options +siglist.h + - make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL -doc/{bash.{1,html},bashref.texi} - - added note that the shell ignores $SHELLOPTS in the environment at - startup if running in privileged mode - - added note that the restricted shell does not parse $SHELLOPTS from - the environment at startup + 10/5 + ---- +support/texi2html + - upgraded to version 1.64 - 10/6 + 10/9 ---- aclocal.m4 - - change BASH_RLIMIT_TYPE so that it looks for rlim_t in - as well as , for Solaris 2.6 - - new macro, BASH_LARGE_FILE_SUPPORT, to enable special compilation - options for large files on Solaris 2.6 (from eggert@twinsun.com) - -mailcheck.c - - the `file_size' member of the FILEINFO struct should be of - type `off_t' - - the `size' variable in file_has_grown should be of type `off_t' - - the RESET_MAIL_FILE macro should initialize file_size to 0, not 0L + - added check for `long long' to BASH_TYPE_PTRDIFF_T -builtins/Makefile.in - - LDFLAGS and LOCAL_LDFLAGS are now set by configure - - `mkbuiltins' is now created from `mkbuiltins.o' instead of directly - from the source to the executable - -builtins/evalfile.c - - fixed _evalfile so that it handles large files correctly on - systems where the st_size member of `struct stat' will not fit - into an `int' +configure.in + - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ -builtins/mkbuiltins.c - - don't assume that st_size fits into an int +aclocal.m4 + - replaced body of BASH_STRUCT_TERMIOS_LDISC with call to + AC_CHECK_MEMBER(struct termios.c_line, ...) + - replaced body of BASH_STRUCT_TERMIO_LDISC with call to + AC_CHECK_MEMBER(struct termios.c_line, ...) -input.[ch] - - the `b_size' member of a struct BSTREAM is now of type `size_t' - - changed third argument to make_buffered_stream to size_t; changed - caller - - changed `size' variable in fd_to_buffered_stream to type `size_t' +[bash-2.05a-beta1 frozen] -general.h - - include if HAVE_SYS_RESOURCE_H and RLIMTYPE are - both defined, for possible necessary definition of RLIMTYPE - (e.g., on Solaris 2.6) - -{execute_cmd,jobs}.c, builtins/times.def - - don't include explicitly if RLIMTYPE is defined, - since general.h will include it in that case - -lib/readline/bind.c - - new function, char *_rl_read_file(filename, sizep), which reads - FILENAME into a malloced buffer, returning the buffer and the - size of the buffer in *SIZEP - -lib/readline/histfile.c - - changed read_history_range and history_truncate_file to handle - large files - -hashcmd.c - - find_hashed_filename should not add `./' to the front of a pathname - that already begins with `./' - - 10/8 - ---- -support/config.sub - - recognize `hppa2.0' as a valid machine architecture - -aclocal.m4 - - changed BASH_CHECK_LIB_TERMCAP so that `gnutermcap' is not chosen - if `$prefer_curses' is set to something - -bashhist.c - - don't use HISTCONTROL or HISTIGNORE to remove lines from the - second and subsequent lines of a multi-line command - (current_command_line_count > 1). Old code did this only when - command-oriented-history was enabled - -doc/{bash.{1,html},bashref.texi} - - changed descriptions of HISTCONTROL and HISTIGNORE to state that - these variables are not applied to the second and subsequent - lines of a multi-line command - -builtins/hash.def, {copy,dispose}_cmd.c - - include "bashtypes.h" -- cray machines need it because of their - oddball definition of `word' - -configure.in - - changed check of ${host_cpu} to check for `*cray*' and `*Cray*' - when deciding whether to include the GNU malloc, since it - seems that ${host_cpu} gets set to `CrayYMP' - - 10/9 - ---- -configure.in - - look for strtod and strtol in libc - - make lib/sh directory in build directory if not there - - create lib/sh/Makefile - -config.h.in - - added HAVE_STRTOD and HAVE_STRTOL - -Makefile.in - - changes for lib/sh/libsh.a (shell library) - -builtins/printf.def - - took out the `#ifdef STRTOUL' code, since strtoul is in libsh.a, - and will be resolved from there if it's not in libc - -variables.c - - call strtol() instead of string_to_long() - -general.c, general.h - - removed string_to_long - - changed legal_number to use strtol so it correctly sets errno - to ERANGE on overflow - - moved bash_getcwd_errstr here from lib/sh/oslib.c - -externs.h - - moved extern declarations for functions defined in libsh to a - separate section of the file, added extern declarations for - other functions in libsh - -builtins/ulimit.def - - changed macro definition for string_to_rlimtype to call strtol - directly instead of string_to_long - -lib/sh/clktck.c - - moved get_clock_tck to its own file, since it's compiled in - unconditionally - - 10/10 - ----- -lib/sh/getenv.c - - moved getenv() and __getenv() here from lib/sh/oslib.c - -lib/sh/{setlinebuf,strerror,strcasecmp}.c - - moved {setlinebuf,strerror,strcasecmp}() from oslib.c to - individual files - -lib/sh/Makefile.in, Makefile.in - - changes for new files in lib/sh - -aclocal.m4 - - new macro BASH_SYS_RESTARTABLE_SYSCALLS, which does what - AC_SYS_RESTARTABLE_SYSCALLS does, but using posix sigaction() - -configure.in - - call BASH_SYS_RESTARTABLE_SYSCALLS if ac_cv_sys_restartable_syscalls - is `no' - - 10/13 - ----- -builtins/jobs.def - - catch out-of-range jobs better in disown_builtin - -configure.in - - don't build with GNU malloc on cygwin32 - -trap.c - - change signal_name to handle the case where signal_names[sig] is - NULL, which can happen on cygwin32 - -execute_cmd.c - - changes to do_piping to make pipes text mode (O_TEXT) on cygwin32 - -cross-build - - new directory with cache files and other stuff for cross-compiling - bash (currently only for building for cygwin32 on a Unix machine) - -cross-build/cygwin32.cache - - new file containing configuration variable assignments for - cygwin32 that would otherwise require a default case for AC_TRY_RUN - -configure.in - - source ${srcdir}/cross-build/cygwin32.cache on CYGWIN32 systems - if we're cross-compiling on a unix machine - - set $CC_FOR_BUILD for cygwin32 cross-compiling environment - -Makefile.in - - CC_FOR_BUILD is now a variable set by configure - -builtins/mkbuiltins.c - - only check for read(2) returning <= 0 in extract_info() (error - and exit on < 0, warning and return on == 0) - -builtins/evalfile.c - - only check for read(2) returning <= 0 in _evalfile() (error and - and failure return on < 0, success on == 0 while short-circuting - rest of operation) - - 10/14 - ----- - -vprint.c - - moved to lib/sh/vprint.c - -lib/sh/Makefile.in - - added entries for vprint.[co] in the appropriate places - -cross-build/win32sig.h - - a version of signames.h for cross-compiling for the CYGWIN32 - environment on a Unix machine (from noer@cygnus.com) - -aclocal.m4 - - made all cases of AC_TRY_RUN and AC_TRY_COMPILE have reasonable - default cases for cross-compiling, and tell the user what they are - -Makefile.in - - removed vprint.c from shell sources and vprint.o from shell - objects - - added a level of indirection for signames.h -- the variable - SIGNAMES_H is set by configure to either `lsignames.h' or - a file for a cross-compilation environment (currently only - the cygwin32 stuff is supported). Then that file is copied - to `signames.h'. `lsignames.h' is created by `mksignames' as - was previously used to create signames.h directly - -configure.in - - set SIGNAMES_H to either `$(srcdir)/cross-build/win32sig.h' or - `lsignames.h' as appropriate, substitute into Makefile - - 10/15 - ----- -builtins/Makefile.in - - CC_FOR_BUILD is now set by configure and used to build mkbuiltins - and psize.aux - -variables.h - - new variable attribute `att_tempvar', set if the SHELL_VAR * was - constructed on the fly from the temporary environment - -variables.c - - find_name_in_env_array now sets the `att_tempvar' attribute on - the SHELL_VAR it creates - -findcmd.c - - search_for_command now disposes the SHELL_VAR created by searching - the temporary environment for $PATH, if it is found there - - _find_user_command_internal also disposes of the SHELL_VAR if it - has the `att_tempvar' attribute set - -builtins/setattr.c - - show_name_attributes looks in the temporary environemnt, so it needs - to dispose the SHELL_VAR if it has the att_tempvar attribute set - -subst.c - - parameter_brace_expand_word now disposes of the SHELL_VAR returned - by find_variable if it has the att_tempvar attribute set - - ditto for param_expand and word_split - -builtins/kill.def - - disallow null pid arguments instead of treating them as 0 - - display a usage message and return failure if no pid or job - arguments are supplied - - 10/16 - ----- -builtins/declare.def - - make `var=value declare -x var' behave the same as - `var=value export var' and `var=value declare -r var' behave the - same as `var=value readonly var', now that we have the `tempvar' - attribute - - 10/22 - ----- -jobs.c - - non-interactive shells shouldn't report jobs killed by a SIGINT, - even if the standard output is to a terminal - - pretty_print_job should add a CR at the end of its output if the - shell is interactive and asynchronous notification is being - performed. This fixes the problem with extra CRs in the output - of $(jobs) - -general.c - - changed canonicalize_pathname to change `//' into `/', but leave - other pathnames starting with two consecutive slashes alone - - 10/27 - ----- - -lib/readline/histexpand.c - - fixed history_expand so that the appearance of the history - comment character at the beginning of a word inhibits history - expansion for the rest of the line - - 10/29 - ----- -jobs.c,variables.c - - moved set_pipestatus_array to variables.c - -variables.c - - new function, set_pipestatus_from_exit(int), which sets the - PIPESTATUS variable from a command's exit status - -variables.h - - extern declarations for set_pipestatus_from_exit and - set_pipestatus_array - -execute_cmd.c - - fixed execute_simple_command to call set_pipestatus_from_exit - if a foreground builtin or function, or a foreground null - command is executed - - 10/31 - ----- -shell.c - - fixed run_startup_files to detect being run by sshd, and treat - that case as equivalent to being run by rshd - - 11/3 - ---- -builtins/set.def - - make sure `set -a' doesn't cause SHELLOPTS to be exported when - a change is made to one of the shell options - - 11/4 - ---- -pathexp.c - - fix to shell_glob_filename in the code that uses a POSIX glob - library - - 11/5 - ---- -jobs.c - - fix cleanup_dead_jobs to hang onto the job corresponding to - last_asynchronous_pid only if the shell is not interactive - (this still has the problem that until a new async process - is started, the job will stay in the jobs table) - -configure.in,aclocal.m4 - - added a new macro, BASH_TYPE_U_INT32_T, to check for u_int32_t - separately from int32_t, since there are systems (HP-UX 10.20) - that have a define for the latter but not the former - - 11/6 - ---- -jobs.c - - cleanup_dead_jobs no longer checks whether the job it is deleting - corresponds to last_asynchronous_pid - - notify_of_job_status and mark_dead_jobs_as_notified now will not - mark the job corresponding to last_asynchronous_pid as notified - if the shell is not interactive - - wait_for_single_pid, if told to wait for last_asynchronous_pid, - or the job of which it is a member, will take care of marking - the job as notified after calling wait_for and collecting the - status. This means that two successive `wait' calls for $! will - succeed the first time and fail the second, as POSIX.2 specifies - (take this code out if it causes problems) - - 11/7 - ---- -jobs.c - - wait_for_job, if told to wait for the job corresponding to the - last async pid, will mark the job as notified after waiting for - it and collecting the status - -general.h - - fixed MEMBER macro to avoid reading past end of S (it used to - test s[1] before s[0], which is an error if s == "") - -subst.c - - expand_word_internal should free ISTRING before returning if - param_expand returns an error - - parameter_brace_expand_word should free the memory it allocates - and passes to param_expand - -execute_cmd.c - - execute_arith_command should call dispose_words on the list - returned by expand_words - -parse.y - - after calling parse_arith_command, read_token needs to free the - string value that parse_arith_command fills in, since make_word - makes a copy of the string it's passed - - 11/10 - ----- -subst.c - - cond_expand_word needs to free the value returned by string_list - after it is run through quote_string_for_globbing - -parse.y - - make sure cond_term frees yylval.word if it is just a `!' and - it's parsed as a term negation operator - -variables.c - - assign_array_var_from_string needs to free the word list returned - by parse_string_to_word_list after calling expand_words_shellexp - on it - -execute_cmd.c - - changed execute_simple_command to avoid saving the_printed_command - into command_line until just before it's needed. This should save - time and prevent memory leaks on errors, but it must be watched - closely to make sure that the_printed_command doesn't change out - from under execute_simple_command before we copy it - - 11/12 - ----- -builtins/alias.def - - alias and unalias should print error messages when passed an - argument that is not an alias for printing or deletion, - respectively, even if the shell is not interactive - -builtins/exit.def - - `logout' will no longer exit a non-login non-interactive shell - - 11/17 - ----- -lib/readline/nls.c - - add `koi8-r' as a legal LANG value - -builtins/alias.def - - if `alias' or `alias -p' is executed when no aliases are defined, - the return status should be 0, according to POSIX.2 - - 11/18 - ----- -subst.c - - changed a couple of calls to make_word_list (make_word(z), ...) - to add_string_to_list (z, ...) - -execute_cmd.c - - execute_cond_command now sets this_command_name to `[[' - - 11/21 - ----- -variables.c - - all_visible_{function,variable}s and the functions they call - should be compiled in only if READLINE is defined - - 11/24 - ----- -aclocal.m4 - - remove some leading whitespace before preprocessor statements in - BASH_KERNEL_RLIMIT_CHECK - -general.[ch] - - fix declarations for group_member so the extern declaration in - general.h agrees with the definition in general.c (fix from - Andreas Schwab ) - -builtins/cd.def - - print the new working directory if the shell is interactive - and `cd -' succeeds - - don't print the new working directory if it's found in $CDPATH - if the shell is not interactive - - 11/25 - ----- -builtins/cd.def - - fixes to bindpwd so that it copes with get_working_directory - returning NULL (bug from schwab@issan.informatik.uni-dortmund.de) - - 12/2 - ---- -support/config.guess - - add support for new OS name for SINIX SVR4 systems - - 12/3 - ---- - -builtins/set.def - - `unset' should check that a function it's trying to unset is a - legal identifier only when in POSIX mode - -redir.c - - changed here_document_to_fd to try and make sure the filename - used for the here document is `more unique', since the old - version would fail if two here documents were created in less - than a second - - 12/4 - ---- -builtins/cd.def - - POSIX.2 says that if CDPATH is used to find the new directory, - and it's not relative to the current directory, the new directory - name should be displayed on stdout even if the shell is not - interactive - - 12/5 - ---- -parse.y - - changes so that `time' is recognized as a reserved word only at - the beginning of a pipeline (the last read token is one of 0, - `;', `\n', `&&', `||', or `&'): - - o add clause to special_case_tokens that does the check - and returns TIME if the conditions are met - o take check for `TIME' out of CHECK_FOR_RESERVED_WORD, but - leave it in the word_token_alist so that `type' still - reports it as a `keyword' - o new function, time_command_acceptable(), encapsulates the - necessary conditions for `time' to be returned as a - reserved word - -[bash-2.02-alpha1 frozen] - - 1/6/1998 - -------- -lib/glob/fnmatch.c - - fix define for isgraph so that it does not return success for space - - fix strcompare() so that the call to strcoll is surrounded by - #ifdef HAVE_STRCOLL - - 1/7 - --- -lib/glob/fnmatch.c - - the `test' argument to brackmatch() should be of type `unsigned char' - - 1/11 - ---- -execute_cmd.c - - make sure execute_arith_command sets this_command_name to `((' - - 1/29 - ---- -parse.y - - make sure the code for pushing and popping strings is compiled in - if either ALIAS or DPAREN_ARITHMETIC is defined, because the (( - code uses push_string in the case of a nested subshell - - fix cond_skip_newlines so it resets the prompt to $PS2 while - parsing an unfinished conditional command - -dispose_cmd.c, copy_cmd.c, builtins/hash.def - - fixes to not use `word' as a variable name or the name of a - function parameter to get around stuff in the Cray Unix include - files - -builtins/printf.def - - return failure immediately if an illegal format character is - encountered - -redir.c - - make the code that creates here-documents behave better if the - file it's trying to create already exists for some reason - -lib/readline/complete.c - - changed print_filename to return the number of characters it - outputs; changed callers to use that value. This makes columns - line up when printing completion listings with filenames - containing control characters - -doc/bash.{1,html} - - fixed a typo in the quote removal section - - 1/30 - ---- -parse.y - - free_string_list() needs to check that t->expander is not NULL - before trying to dereference it - - reset_parser() doesn't need to set pushed_string_list to NULL - after calling free_string_list(), since free_string_list does it - -configure.in,cross-build/cygwin32.cache - - fixes from Geoff Noer for better cygwin32 cross-compilation - -tests/printf.{tests,right} - - removed test for integer overflow, since error messages differ - across systems - -pathexp.c - - fixed a problem with unquoted_glob_pattern_p that made things - like `x+*' not expand correctly - -lib/glob/glob.c - - fixed a problem with glob_pattern_p that made things like `x+*' - not expand correctly - -builtins/cd.def - - if `cd -P' is executed, or `set -o physical' has been executed, - the value of $PWD after a successful cd will not contain any - symlinks, regardless of whether or not the shell is in posix mode - - 2/3 - --- -lib/readline/shell.c - - include or as appropriate - - 2/4 - --- -builtins/common.c - - take out the code in backslash_quote() that looks for tildes to - quote, for the time being - - if getcwd() fails, get_working_directory now prints the error - message corresponding to errno in addition to the rest of the - information -- TENTATIVE CHANGE - -lib/sh/getcwd.c - - fix from Paul Smith to make getcwd() behave better in the presence - of lstat(2) failures - -stringlib.c - - when copying the replacement string into the output string being - constructed, strsub() needs to make sure enough space for the - replacement string is allocated, not the length of the pattern - (use REPLEN, not PATLEN) - -mailcheck.c - - make sure make_default_mailpath() has a valid current_user struct - before trying to construct the default mailpath - - 2/5 - --- -execute_cmd.c - - execute_builtin needs to call run_unwind_frame if the builtin is - `source' or `eval' and we're not in a subshell rather than just - calling dispose_builtin_env, because not all invocations copy - the temporary_env to builtin_env, and nested calls to `.' require - that the temporary env given to the first persist until that first - call to `.' finishes - -parse.y - - fix to history_delimiting_chars so that function definitions like - - function xyz - { - echo a - } - - are saved to the history correctly when command_oriented_history - is enabled, but literal_history is not - -bashhist.c - - when calling internal_error from pre_process_line, use "%s" as - the format with history_value as the argument to avoid the - problem with the failed history event containing printf escape - sequences - - 2/13 - ---- -shell.c - - if shell_initialized is non-zero, don't line-buffer stderr and - stdout in shell_initialize on SunOS5 -- see if this fixes the - crashing problems for scripts without a leading `#! /bin/sh' - - 2/17 - ---- -bashline.c - - added diffs to _ignore_completion_names from Andreas Schwab to - complete names that would otherwise be ignored with FIGNORE if - they are the only possible completions. Define NO_FORCE_FIGNORE - if you want this; it is not defined by default - - 2/19 - ---- -support/bashbug.sh - - changed the bug-bash address to bug-bash@gnu.org - -examples/loadables/Makefile.in - - converted from `Makefile' with some boilerplate configure variables - to find the source and build directories -- still requires some - hand-editing to get the right CFLAGS and LDFLAGS for shared object - creation - -Makefile.in - - create examples/loadables/Makefile with `make makefiles' - -configure.in - - create examples/loadables directory so `make makefiles' can write a - makefile there - -general.c - - make sure initialize_groups_array always sets things up so that - ${GROUPS[0]} is the user's primary group (current_user.gid) - - 2/20 - ---- -lib/readline/parens.c - - change the time delay when showing matching parens from 1.5 sec to - 0.5 sec - - 2/23 - ---- -shell.c - - isnetconn() should call getpeername(fd,...) instead of using 0 - (though fileno(stdin) should always be 0) - -support/config.guess - - updates from master FSF copy - - 2/24 - ---- -support/man2html.c - - modified version of man2html to convert bash.1 into bash.html - -support/Makefile.in - - simple Makefile to create man2html - -configure.in - - make sure support/Makefile is created - -Makefile.in - - make sure support/Makefile is created and cleaned - -doc/Makefile.in - - changes to suffix rules to say how to make .html from .1 - - `bash.html' is now a makefile target, created by man2html from - bash.1 rather than being hand-modified - -lib/sh/itos.c, general.c - - new file, itos() from general.c. This is here because the - implementation of strerror in lib/sh/strerror.c uses itos() - -Makefile.in, lib/sh/Makefile.in - - changes to add itos.c in libsh.a - -externs.h, general.h - - moved extern declaration of itos() from general.h to externs.h - -aclocal.m4 - - changes to BASH_LARGE_FILE_SUPPORT for the LFS64_* variables in - Solaris 2.6 - -Makefile.in - - make sure configure sets CPPFLAGS in this file - - 2/27 - ---- - -builtins/command.def - - make sure get_standard_path returns the value of - STANDARD_UTILS_PATH if _CS_PATH is defined, but confstr(3) - returns 0, indicating that _CS_PATH does not have a defined - value - -bashhist.c - - fixed bash_history_inhibit_expansion() so that extended globbing - expressions like *.!(c) are not history expanded if extended_glob - is non-zero (shopt -s extglob has been executed) - - 3/2 - --- -Makefile.in - - changed release status to `beta1' - -[bash-2.02-beta1 frozen] - - 3/17 - ---- -lib/readline/vi_mode.c - - make sure _rl_vi_save_insert() gets a non-null UNDO_LIST pointer - before trying to do anything with it - -jobs.c - - add a call to internal_warning from wait_for_job if the job is - stopped - - changed notify_of_job_status to not report pipelines exiting due to - SIGPIPE in non-interactive shells if the shell is compiled with - -DDONT_REPORT_SIGPIPE - -builtins/psize.sh - - some fixes to try to avoid /tmp file races and surreptitious - substitutions - -version.c - - changed the extended version info to show 1998 as the copyright year - -parse.y - - fixes from Andreas Schwab - for compilation errors when the shell is configured --disable-alias - but with dparen arithmetic enabled - -eval.c - - fixes from Andreas Schwab to - make sure the input stream is popped correctly when performing an - array assignment in the command argument to `bash -c', e.g., - `bash -c 'A=()'' - -builtins/kill.def - - make `kill' with no arguments print a usage message and return a - failure status - -alias.c - - fix so that rd_token doesn't dump core when trying to do alias - expansion on a line containing an unclosed single quote (fix from - Vasco Pedro ) - -builtins/cd.def - - fix so that using a non-empty directory from CDPATH to construct - the name of the directory to change to results in an absolute - pathname of the new current working directory being displayed, - as POSIX.2 specifies - -support/bashbug.sh - - a couple of small fixes to minimize /tmp file races -- the script - is still raceable, the window is just smaller - - 3/24 - ---- -variables.c - - make sure assign_in_env passes a malloc'd string to - expand_string_unsplit, because some of the error code assumes that - it is malloc'd and frees it (bug reported by Marko.Makela@HUT.FI) - - 3/25 - ---- -doc/bashref.texi - - changed the email addresses to use the @email texinfo tag - -trap.c - - call reset_parser from the exit trap code before calling - parse_and_execute, so reserved words are parsed correctly - -subst.c - - make sure parameter_brace_patsub expands the pattern string as if - the expression were not in double quotes, even if the entire - expansion is enclosed in double quotes, so that quote removal - on embedded double quotes is performed correctly (bug report from - schwab@issan.informatik.uni-dortmund.de) - - 3/27 - ---- -support/config.guess - - changes to allow Power PCs running Apple's Rhapsody to configure - - 3/31 - ---- - -Makefile.in - - changed release status to `beta2' - -[bash-2.02-beta2 frozen] - - 4/6 - --- -subst.c - - make sure command_substitute does not try to set the terminal's - process group to a background job - -[bash-2.02 frozen] - - 4/18 - ---- -[bash-2.02 released] - - 4/20 - ---- -bashline.c - - make sure that rl_defun is not called for - history-and-alias-expand-line unless both ALIAS and BANG_HISTORY - are defined - [in bash-2.02.1] - - 4/22 - ---- -make_cmd.c - - make sure that make_here_document allocates enough space for the - first line of the here document, by using the line length +2 - (instead of 1000, which is what the old code did, and breaks if - the first line of the here document is enough longer than 1000 - characters to cause other memory to be scribbled on) - [in bash-2.02.1] - -builtins/cd.def - - when in posix mode, a value of "" for CDPATH should be treated the - same as the current directory, not result in an error - [in bash-2.02.1] - -lib/malloc/malloc.c - - change the mh_align member of `union mhead' to be of type double - rather than a pointer, so that malloc will return (hopefully) - 8-byte aligned memory - [in bash-2.02.1] - - 4/23 - ---- -aclocal.m4 - - add a new macro to check whether or not off_t is 64 bits - - 4/24 - ---- -configure.in - - fixed a typo so the bash malloc is not compiled in on mips-sgi-irix6 - -lib/readline/display.c - - fix for readline redisplay if the prompt string is longer than the - screen width and includes invisible characters - [in bash-2.02.1] - -jobs.c - - make_child should not set the terminal's process group to - pipeline_pgrp if pipeline_pgrp == shell_pgrp (indicating that we - are forking a child for a command substitution) - [in bash-2.02.1] - -subst.c - - in execute_simple_command, in the child forked if there is a pipe - or the command is asynchronous, set subshell_environment to - SUBSHELL_ASYNC only if the command is asynchronous, SUBSHELL_FORK - if there is a pipe in or out - [in bash-2.02.1] - - 4/27 - ---- -support/texi2dvi - - upgraded to version 0.8 (from 0.5) - -support/texi2html - - upgraded to version 1.52 (from 1.51) - -support/config.sub - - config.sub now recognizes all the permutations of the system name - that config.guess produces for alphas - [in bash-2.02.1] - -aclocal.m4 - - changed BASH_TYPE_INT32_T, BASH_TYPE_U_INT32_T, and - BASH_TYPE_PTRDIFF_T to avoid compiling a program; instead use - the values determined by the AC_CHECK_SIZEOF tests to determine - the default values to supply to AC_CHECK_TYPE - -configure.in - - don't call AC_CHECK_TYPE({int32_t,u_int32_t,ptrdiff_t}) from - configure.in; use the updated BASH_TYPE macros instead - -builtins/exec.def - - if shell_execve fails, set ARGS to null because the realloc() call - by shell_execve may have caused it to be reallocated and freed -- - we don't want to free the memory twice - -lib/glob/fnmatch.c - - fixes from ache@nagual.pp.ru to make fnmatch work for eight-bit - characters when `isupper' and `islower' are used -- they were - restricted to ASCII characters before, probably to work around - some ancient, broken C libraries in which is{low,upp}er are valid - only for ASCII characters and return bogus values otherwise - [in bash-2.02.1] - - 4/29 - ---- -builtins/cd.def - - fixed a problem with the shell displaying the old working directory - instead of the new one after changing to a directory found via - $CDPATH when in physical mode (set -o physical) - [in bash-2.02.1] - -make_cmd.c - - make make_cond_command initialize the line number from the cond_node - that's passed as an argument (not that it's used right now) - -copy_cmd.c - - make sure that copy_cond_command copies the type of the cond command, - since execute_cond_command uses that to decide what kind of test - to perform - [in bash-2.02.1] - -builtins/printf.def - - make sure the for loop that processes the format string actually - consumes arguments; otherwise process it only once to avoid - infinite loops (e.g., `printf " " abc def ghi') - [in bash-2.02.1] - - if the format string is empty after preprocessing by ansicstr, - return immediately - [in bash-2.02.1] - -tests/run-printf - - use `diff -a' so the presence of a non-printing character in the - output doesn't confuse diff into thinking the files are binary - (test whether or not `diff' supports `-a' first) - -Makefile.in - - keep $(LOCAL_LIBS) from being specified twice - - 4/30 - ---- -support/shobj-conf - - a script to generate variables to do shared object configuration - for the loadable builtin stuff - -configure.in - - added a section for shared object configuration using an `eval' - of the output of shobj-conf and substituting the generated values - with AC_SUBST - -examples/loadables/Makefile.in - - the system-specific shared object configuration variables are now - substituted by configure - - 5/4 - --- -builtins/ulimit.def - - some changes for HPUX 9.x's peculiar handling of RLIMIT_FILESIZE - - changed the limit retrieval functions to return an error code - and the value in a reference argument to avoid use of RLIM_INVALID - -general.c - - new function, get_group_array(), which returns an array of - gids - -examples/loadables/{id,printenv,sync,uname,whoami,push}.c - - new loadable builtins - -variables.c - - moved code that initializes $PPID into a new function, set_ppid() - -variables.h - - extern declaration for set_ppid() - - 5/6 - --- -subst.c - - make sure that the `"' (double-quoted string) case of - expand_word_internal calls string_list_dollar_at if we've expanded - a double-quoted $@ so correct splitting on $IFS is done when - the expansion is complete. We can't simply call string_list - because that forces a space separator, and $IFS may not contain - a space - [in bash-2.02.1] - - 5/7 - --- -builtins/umask.def - - broke the code that parses a symbolic mode out of symbolic_umask - into a separate function that takes a symbolic mode and an initial - set of bits to modify - -examples/loadables/mkdir.c - - new loadable builtin - - 5/11 - ---- -builtins/printf.def - - use the format string length provided by ansicstr() to process the - format string, rather than testing for nullness, to handle NUL - bytes in the expanded format string - -builtins/pushd.def - - changes so it can be built as both a regular builtin and a loadable - builtin from the same source - -examples/loadables/Makefile.in - - changes to build pushd.c from ${topdir}/builtins/pushd.def and then - compile it with the correct flags to make it a loadable builtin, - even if PUSHD_AND_POPD is not defined in config.h - - 5/12 - ---- -lib/readline/complete.c - - use rl_completer_quote_characters instead of #ifdef SHELL/#endif - code in make_quoted_replacement. This means complete.c no longer - has any #ifdef SHELL code - - 5/13 - ---- -builtins/Makefile.in - - `make clean' should remove mkbuiltins.o - -Makefile.in - - all of the various `clean' targets need to descend into lib/sh - and run the appropriate target there - -builtins/type.def - - changed to use the builtin getopt. The old long options are - handled by prescanning the argument list looking for the long - options, processing them, and taking them out of the list before - passing it to internal_getopt() - -lib/readline/signals.c - - removed #ifdef SHELL code -- job control signals and SIGTERM are - always set in rl_set_signals, but are set to SIG_IGN if the old - handler was SIG_IGN (as bash sets it) - - new function rl_maybe_set_sighandler, which sets the signal - disposition back to SIG_IGN if the old handler was SIG_IGN - - removed #ifdef HANDLE_JOB_SIGNALS and #ifdef HANDLE_SIGTERM code - -lib/readline/rltty.c - - removed #ifdef SHELL code -- set_winsize is always called - to force the application to stop if it's not in the foreground - before getting the tty attributes - - 5/14 - ---- -lib/readline/signals.c - - readline now catches SIGQUIT and cleans up the tty before resending - it to its container application (unless the calling application has - set the disposition of SIGQUIT to be SIG_IGN) - - rl_handle_sigwinch is now called rl_sigwinch_handler - - rl_sigwinch_handler now calls rl_resize_terminal to fetch the - screen size after a SIGWINCH - - the sighandler_cxt struct for non-posix systems now includes - sa_flags and sa_mask variables, for future use - - new variable, rl_catch_signals, indicating that readline should - install its own signal handlers for SIGINT, SIGTERM, SIGQUIT, - SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU - - new variable, rl_catch_sigwinch, indicating that readline should - install its own SIGWINCH handler, which will chain to a calling - application's SIGWINCH handler - - new function, rl_free_line_state(), to free up variable state - associated with the current line after receiving a signal - - new function, rl_cleanup_after_signal(), to clean up the display - and terminal state after receiving a signal - - new function, rl_reset_after_signal(), to reinitialize the - terminal state after a signal handler returns and readline - continues - - rl_set_signals and rl_clear_signals now look at the values of - rl_catch_signals and rl_catch_sigwinch - -lib/readline/terminal.c - - new function rl_resize_terminal (), to reset readline's idea of - the screen size after a SIGWINCH - -lib/readline/readline.h - - extern declarations for rl_resize_terminal(), rl_free_line_state(), - rl_cleanup_after_signal(), rl_reset_after_signal() - - extern declarations for rl_catch_signals and rl_catch_sigwinch - -variables.c - - new functions, get_env_value(char *) and get_home_dir(void) to - satisfy references from the tilde and readline libraries when - they are compiled as part of bash - -lib/tilde/tilde.c - - rely on extern declarations of get_env_value and get_home_dir; - there is no more #ifdef SHELL code - -lib/readline/shell.c - - implementation of get_home_dir that uses getpwuid() to satisfy - references from tilde.c when not compiled as part of bash - - removed savestring() - - removed #ifdef SHELL/#endif pair -- all of these functions will be - resolved from bash when readline is linked into bash - -lib/readline/savestring.c - - new file, with function definition for savestring() for backwards - compatibility - -Makefile.in, _distribution - - bumped things up to bash-2.03-alpha - - 5/15 - ---- -lib/readline/rlconf.h - - removed #ifdef SHELL/#endif pair, so the callback stuff will be - compiled into libreadline, but never linked into bash (since it's - not referenced) - -configure.in - - added new `--with-installed-readline' option to allow readline to - be linked with an already-installed version -- this will probably - not work with versions of readline prior to 2.3 (libreadline.so.4) - [THIS IS STILL UNDOCUMENTED] - -Makefile.in - - changed necessary variables to allow the `--with-installed-readline' - option to work; shared and static libraries are supported - - 5/18 - ---- -lib/readline/display.c - - _rl_save_prompt is now rl_save_prompt; _rl_restore_prompt is now - rl_restore_prompt - -lib/readline/readline.h - - extern declarations for rl_save_prompt and rl_restore_prompt - -lib/readline/{search,isearch,readline,display}.c - - converted calls to _rl_{save,restore}_prompt () to use new public - versions - -lib/readline/doc/rltech.texinfo - - documented new public functions rl_{save,restore}_prompt - - 5/19 - ---- -lib/readline/readline.c - - new hook function variable, rl_pre_input_hook. If non-zero, it's - called from readline_internal_setup just before it returns and - readline starts reading input - -lib/readline/readline.h - - extern declaration for rl_pre_input_hook - -lib/readline/doc/rltech.texinfo - - documented new variable rl_pre_input_hook - - 5/20 - ---- -lib/readline/complete.c - - new hook function variable, rl_completion_display_matches_hook. - If non-null, this function is called when readline would normally - display the list of completion matches - -lib/readline/readline.h - - extern declaration for rl_completion_display_matches_hook - -lib/readline/doc/rltech.texinfo - - documented rl_completion_display_matches_hook - -lib/readline/readline.c - - if RL_LIBRARY_VERSION is not defined, define it to 4.0 to match - the version number of the shared libraries - -lib/readline/doc/{hist,rlman}.texinfo - - changed the version and edition to 4.0 to match the library version - -support/config.guess - - added case clause for matching UnixWare 7 from SCO (SVR5) -- further - work may be needed - [These fixes were in a usenet posting from hops@sco.com] - -support/config.sub - - added case clauses to recognize various aliases for SCO Open Server - and Open Desktop - [in bash-2.02.1] - - broke the code that canonicalizes unixware into unixware2 and - unixware7 clauses (multiple places) - [in bash-2.02.1] - - added clause to recognize `sysv5' for SVR5 - [These fixes were in a usenet posting from hops@sco.com] - [in bash-2.02.1] - -configure.in - - add `-b elf' to LOCAL_CFLAGS for sco3.2v5* to allow dynamic linking - (and loadable builtins) - - add AC_DEFINE(SVR5) on SVR5 (unixware 7) - -config.h.in - - add #undef SVR5, set by configure - - 5/21 - ---- -shell.c - - line-buffer stdout and stderr in shell_initialize only if - shell_initialized is 0 on all systems, not just SunOS 5 - [in bash-2.02.1] - -support/rlvers.sh - - script to print out the version number of any installed - readline library - -configure.in - - only allow --with-installed-readline if the version of the - installed readline library is 4.0 or greater - - 5/22 - ---- -lib/readline/complete.c - - broke the code that actually displays a list of completion - matches on the output stream into a separate public function, - rl_display_match_list, so it can be called from the hook - function rl_completion_display_matches_hook. - -lib/readline/readline.h - - new extern declaration for rl_display_match_list - -lib/readline/rltech.texinfo - - documented rl_display_match_list - -configure.in,Makefile.in - - --enable-static-link now creates a STATIC_LD variable in Makefile - rather than adding to LDFLAGS directly. LDFLAGS now includes - $(STATIC_LD) - - 6/2 - --- -builtins/cd.def - - OLDPWD is now auto-exported - - broke the code out of bindpwd() that updated the value of PWD in - the export environment in-place and made it general, so it can - be used for OLDPWD, too (this should be made *more* general, and - moved to variables.c) - - 6/3 - --- -variables.c - - moved builtins/cd.def:export_pwd_var to here, renamed it to - update_export_env_inplace - - converted put_command_name_into_env to just call - update_export_env_inplace - - made dummy variable for OLDPWD, marked as invisible and exported, - in initialize_shell_variables - -variables.h - - extern declaration for update_export_env_inplace - -builtins/cd.def - - changed calls to export_pwd_var to update_export_env_inplace - -lib/readline/bind.c - - added missing return in rl_unbind_function_in_map - - changed _rl_read_file to check whether or not `read' returns - < 0 rather than < file_size - - _rl_read_init_file needs to free `openname' after calling - _rl_read_file, since it's not used again - -lib/readline/callback.c - - bogus extern declaration for `readline_internal_startup', should - be readline_internal_setup - -lib/readline/histfile.c - - read_history_range now checks whether read(2) returns < 0 rather - than checking the return value against the file size - -lib/readline/parens.c - - whoops -- timer.tv_usec is *micro* seconds, not milliseconds - -lib/readline/readline.c - - initialize `eof' to 1 in readline_internal_charloop - - 6/5 - --- -configure.in - - if we're configuring with an installed version of readline, set and - have configure substitute RL_INCLUDE to `-I$(includedir)', so the - build process uses the installed readline include files as well as - the libraries - -Makefile.in, builtins/Makefile.in - - add @RL_INCLUDE@ in the appropriate places, substituted by configure - -lib/readline/{history,readline}.h - - add `extern "C"' wrapper if `__cplusplus' is defined - -lib/glob/fnmatch.h - - include stdc.h - - add prototypes to extern declaration for fnmatch() - -lib/readline/rlstdc.h - - link to ../posixheaders/stdc.h (in readline lib with different name - for benefit of standalone readline library installation) - -lib/readline/{history,keymaps}.h - - include rlstdc.h - - add prototypes to all of the extern function declarations - -lib/readline/history.h - - the `data' member of a HIST_ENTRY is now a histdata_t, which is - either a void * (ansi c) or a char * (k&r c) - -lib/readline/readline.c - - changed calls to replace_history_entry to pass a histdata_t as the - third parameter - - 6/8 - --- -copy_cmd.c - - make sure that copy_cond_command doesn't blindly try to copy - com->op, since that will be null for AND and OR nodes, at least - [in bash-2.02.1] - -lib/readline/vi_mode.c - - added missing second argument to rl_vi_[fbe][Ww]ord(), since - they're used as pseudo-bindable commands (they appear in the - default funmap) as well as utility functions - -lib/readline/readline.h - - include rlstdc.h - - added prototypes for functions from vi_mode.c, util.c, terminal.c, - search.c, util.c, undo.c, readline.c, parens.c, macro.c, kill.c, - keymaps.c, isearch.c, input.c, funmap.c, display.c, complete.c, - callback.c, - - added extern declarations for functions from rltty.c - -lib/readline/{readline,util}.c - - rl_refresh_line now takes the standard two arguments for bindable - commands; changed callers - -lib/readline/*.c - - small cleanups for incorrect arguments, etc. uncovered by use of - function prototypes - -bashline.c - - small cleanups for incorrect arguments, etc. uncovered by use of - function prototypes - - 6/11 - ---- -jobs.c - - cast result of strsignal() to (char *) for the benefit of broken - Cray UNICOS machines - [in bash-2.02.1] - -configure.in,aclocal.m4 - - new test, BASH_TYPE_BITS64_T, used to find out what basic type is - 64 bits long; defaults to `double' - - call AC_CHECK_SIZEOF(double) - -config.h.in - - #define for bits64_t, undef by default - - 6/24 - ---- -aclocal.m4 - - changed BASH_TYPE_BITS64_T so that it checks the size of a char * - first, before trying sizeof(double) - -lib/readline/doc/rluser.texinfo,doc/{bash.1,readline.3} - - changed default binding for tilde-expand to M-&, since bash - overrides M-~ to force username completion - -bashline.c - - fixed an off-by-one error in hostnames_matching that exhibited - itself when an exact multiple of 16 hostnames matched (fix - from ) - [in bash-2.02.1] - - 6/30 - ---- -lib/readline/readline.c - - the maximum numeric argument is now 1000000 - -bashline.c - - fixed a bug in bash_directory_completion_hook that caused memory - to be freed twice if a directory name containing an unset - variable was completed and `set -u' had been set - -configure.in - - on LynxOS, add a -DRECYCLES_PIDS to LOCAL_CFLAGS - -execute_cmd.c - - make sure that the changes to make the shell fork early when - run in the background do not cause commands such as `%1 &' - to fork - [in bash-2.02.1] - - if RECYCLES_PIDS is defined, execute_command_internal sets - last_made_pid to NO_PID after waiting for a foreground process, - if the return status is 0 (fix from plai@Lynx.COM (Paul Lai)) - -lib/readline/kill.c - - fixes from Andreas Schwab to rl_yank_last_arg that make it - behave better - -lib/readline/input.c - - fixes from Donald Beaudry to make the input buffering - and rl_stuff_char work right when the input buffer is nearly full - (probably not a problem with keyboard input, but maybe a problem - with programmers attempting to use rl_stuff_char to preload the - input buffer) - - 7/14 - ---- -parse.y - - fix to decode_prompt_string so that the \$ expansion quotes the `$' - so it won't be processed by subsequent parameter expansion - - change read_token_word so a $$ appearing in a token is recognized - and parsed immediately, so a single or double quote after the - second `$' doesn't cause ANSI-C expansion or locale translation - (bug report from haertel@ichips.intel.com) - - 7/16 - ---- -lib/readline/display.c - - fixed a bug that caused core dumps in xrealloc if the prompt was - longer than 1024 characters - - 7/21 - ---- -builtins/mkbuiltins.c - - if the number of characters read from the .def file is less than - the file size reported by `stat', and the read completed without - errors, reset the file size to avoid writing garbage at the end - of the generated .c file (needed on WIN32 systems, doesn't hurt - on Unix) - - 7/22 - ---- -CWRU/empty-for-wordlist - - patch from Brian Fox for parse.y to allow bash to accept an empty - `wordlist' after the `in' keyword in a for statement - - 7/23 - ---- -doc/bash.1 - - corrected the synopsis of the `for' and `select' statements to - indicate that the semicolon (or newline) after the optional - `in words' is required - -[bash-2.02.1 released] - - 7/28 - ---- -lib/readline/display.c - - make sure visible_length is initialized to 0 in rl_expand_prompt. - Fix from Gerhard Niklasch . - -lib/glob/glob.c - - make sure that quotes are removed from the filename being globbed - in glob_vector() before calling the GLOB_TESTNAME macro if there - are no globbing characters in the pattern - -doc/Makefile.in - - make sure that builtins.1 is looked for in $(srcdir) when running - `make install' (it's still commented out, though) - - 7/30 - ---- -config.h.bot - - if PROMPT_STRING_DECODE is not defined, define PPROMPT (the primary - prompt string) as "$ " - -variables.c - - if PROMPT_STRING_DECODE is not defined, and current_user.euid == 0, - PS1 defaults to "# ", otherwise it defaults to `primary_prompt' - -doc/bashbug.1 - - fixed email address prep.ai.mit.edu -> gnu.org - - 8/3 - --- -support/shobj-conf - - add `solaris2' as a possible OS name, treated the same as sunos5 - - 8/4 - --- -shell.c - - changed maybe_make_restricted() so that $ENV and $BASH_ENV are - read-only variables in a restricted shell - -doc/{bash.1,bashref.texi} - - added ENV and BASH_ENV to the list of readonly variables in - restricted mode - -parse.y - - added `do', `then', `else', `{', and `(' to the list of keywords - that may precede the `time' reserved word - -general.c - - added sanity checks to timeval_to_secs and clock_t_to_secs so - that if the fractional part is >= 1000, 1 is added to the - seconds and 1000 is subtracted from the fractional seconds - - 8/6 - --- -Makefile.in - - use $(CC_FOR_BUILD) to build mksignames - -configure.in - - changes to allow cross-building for BeOS as well as cygwin32 - -cross-build/{beos-sig.h,x86-beos.cache} - - new files for cross-compiling for BeOS - - 8/7 - --- -Makefile.in - - changed rule for version.h to use && instead of if-then-else-fi to - make sure the recipe fails if mkversion.sh fails - -configure.in - - beos does not use the GNU malloc - -lib/sh/itos.c - - broke itos into inttostr(i, buf, len) and itos(i), which calls - inttostr and returns a newly-allocated string with the result - -support/mksignames.c - - define `SIGKILLTHR' if system include files define it - -externs.h - - extern declaration for inttostr(int, char *, int) - - 8/13 - ---- -lib/sh/strtol.c - - include stdc.h before bashansi.h - -execute_cmd.c - - make sure that execute_cond_node treats `=' the same as `==' - - 8/25 - ---- -variables.c, print_cmd.c - - changed some calls to itos to use inttostr instead - -cross-build/x86-beos.cache, {execute_cmd,general,shell,trap}.c - - some changes for BeOS (from fnf@ninemoons.com) - -lib/posixheaders/memalloc.h - - changes to handle case where we're using both gcc and the C - version of alloca(), or if we have alloca.h and we're using - the C version of alloca() (from fnf@ninemoons.com) - -lib/sh/oslib.c - - if bcopy or bzero are #defines, #undef them before defining - replacement functions - -support/config.guess - - recognize AmigaOS (from fnf@ninemoons.com) - - recognize BeOS running on various machines - (from fnf@ninemoons.com) - -support/config.sub - - change basic_machine definition for amiga; added amigaos - (from fnf@ninemoons.com) - - changed definitions for MIPS machines running Linux (from - fnf@ninemoons.com) - - recognize `beos' as a valid operating system - (from fnf@ninemoons.com) - - changed OS for *-cbm to `amigaos' rather than `amigados' - (from fnf@ninemoons.com) - -examples/functions/autoload.v3 - - a new version, from Mark Kennedy - -lib/readline/readline.c - - new function, rl_delete_or_show_completions, like tcsh editing - function delete-char-or-list - -lib/readline/readline.h - - new extern declaration for rl_delete_or_show_completions - -lib/readline/funmap.c - - new bindable name `delete-char-or-list', like tcsh - -lib/readline/doc/rluser.texinfo, doc/{bash.1,readline.3} - - documented new delete-char-or-list command - -general.c - - fix full_pathname to keep it from generating things like - //foo when the current directory is / - - 8/27 - ---- -builtins/fc.def - - fixed the help text for the -e option - - 8/28 - ---- -support/shobj-conf - - added a clause for AIX 4.2 systems running gcc -- just the - standard gcc stuff for shared objects, but it has to come - before the other AIX 4.2 clause - - 8/31 - ---- -shell.c - - some changes so that `set -e' is turned off while executing - the startup files - - 9/3 - --- -flags.c - - new variable, `restricted_shell', non-zero if the shell was - started in restricted mode - -flags.h - - extern declaration for restricted_shell - -shell.c - - new function, shell_is_restricted, returns 1 if the shell is - supposed to be restricted based on the basename of $0 or the - -r option - - set restricted_shell to the value returned by shell_is_restricted - before executing the startup files - -externs.h - - extern declaration for shell_is_restricted - -builtins/shopt.def - - new shopt variable, restricted_shell, indicates whether the shell - was restricted at startup -- useful in startup files - -doc/{bash.1,bashref.texi} - - documented new restricted_shell shopt option - - 9/15 - ---- -lib/sh/rename.c - - new file, replacement for rename(2) if the OS doesn't provide it - -configure.in,config.h.in,Makefile.in,lib/sh/Makefile.in - - machinery for including rename.o in libsh.a - -nojobs.c - - make sure that set_tty_state returns a value - -builtins/mkbuiltins.c - - use a call to rename(2) instead of a link/unlink pair - -lib/glob/glob.c - - don't #define bcopy if bcopy is already defined - -lib/readline/histfile.c - - add a call to ftruncate for BeOS, which ignores the O_TRUNC flag - to open - -lib/readline/input.c - - make rl_getc loop if read returns -1/EINTR on BeOS - -configure.in - - set ARFLAGS and substitute it into the Makefiles - -{,builtins,lib/{glob,malloc,readline,sh,termcap,tilde}}/Makefile.in - - ARFLAGS is now substituted by configure - - use ARFLAGS in rules that create libraries using $(AR) - -builtins/printf.def - - fixed bug that caused a core dump when a modifier was supplied - in the format string without a conversion character (e.g. `%h') - - 9/17 - ---- -lib/glob/glob.c - - if filenames starting with a dot don't have to be matched - explicitly (e.g., after a `shopt -s dotglob'), don't match - `.' or `..' in any case - -eval.c - - make sure that array assignments don't show up in the history list - (fix from Andreas Schwab ) - -lib/readline/complete.c - - fix to rl_menu_complete so it inserts a single completion properly - when a word matches only one filename - - 9/24 - ---- -execute_cmd.c - - difftimeval should zero out the tv_usec field if the tv_sec field - is < 0 - - addtimeval should check for tv_usec being == 1000000 and add one - to tv_sec if it is - - 9/25 - ---- -subst.c - - fix to expand_word_internal to prevent non-whitespace IFS characters - from causing word splitting if they are not the results of an - expansion (not exactly right yet, but I think it's the result of a - problem with the ${...} end-brace-matching code in the parser) - - 9/28 - ---- -parse.y - - new flag for parse_matched_pair -- P_FIRSTCLOSE -- which makes it not - count and match additional construct open characters - - change calls to parse_matched_pair when matching braces in - ${...} constructs (both unquoted and within double quotes) to - specify the P_FIRSTCLOSE flag to match POSIX.2 requirements - -subst.c - - changed fix from 9/25, now that the parser problem is fixed - - 9/30 - ---- -variables.c - - change expansion of list of words between (...) in array assignments - to include pathname generation in assign_array_var_from_string - -doc/{bash.1,bashref.texi} - - clarified behavior of the shell at startup if running setuid, with - and without the -p option supplied - - 10/7 - ---- -bashhist.c - - change default open(2) mode to 0600 instead of 0666 for `privacy - concerns' - - 10/13 - ----- -lib/readline/display.c - - fixed a problem with displaying tabs after newlines, from - - - in update_line, if we are printing over existing material, - only call space_to_eol or _rl_clear_to_eol if lendiff is non-zero - - when moving the cursor in _rl_move_cursor_relative, only call - _rl_backspace if the current cursor position is strictly greater - than the desired cursor position - - 10/14 - ----- -locale.c - - LC_ALL is no longer set automatically when LANG is assigned a value - -config.h.{top,bot} - - renamed to config-{top,bot}.h, respectively - -config.h.in - - include config-top.h and config-bot.h - -Makefile.in - - things now depend on config-top.h and config-bot.h - -subst.c - - minor changes to extract_dollar_brace_string and char_is_quoted to - allow things like "${PIP[TAB] to perform correct variable completion - - 10/15 - ----- -builtins/Makefile.in - - add $(PROFILE_FLAGS) to the make recipe that creates `mkbuiltins', - so configuring with --enable-profiling works right - - 10/20 - ----- -doc/bashref.texi - - documented the new --with-installed-readline option - -[bash-2.03-alpha1 frozen] - - 10/21 - ----- -builtins/reserved.def - - fixed help text for { ... } to make it clear that a semicolon is - required before the closing brace - - 10/22 - ----- -trap.c - - in decode_signal, don't bother calling strcasecmp if - signal_names[sig] is null or empty - - 11/2 - ---- -configure.in - - make sure RL_LIBDIR and HIST_LIBDIR are assigned values even if - readline or history is configured out of the shell, so the -L - options have arguments in the link command - -test.c - - make test_syntax_error cause test to return a status > 1, to - conform to POSIX.2 4.62.8 - -doc/readline.3 - - make sure the SYNOPSIS section indicates that programmers should - include before - - 11/9 - ---- -Makefile.in - - install with explicit mode of 0755 - - 11/10 - ----- -builtins/test.def - - make sure that a missing `]' makes `[' exit with status 2, to - conform to POSIX.2 4.62.8 - -command.h - - new word flag: W_NOGLOB, meaning to not perform globbing - -execute_cmd.c - - fix_assignment_statements now turns on the W_NOGLOB flag for - arguments to `assignment builtins' that have W_ASSIGNMENT set - -subst.c - - expand_word_internal needs to preserve the W_NOGLOB flag from - the word being expanded to the word being returned - - glob_expand_word_list does not call shell_glob_filename for a - word with W_NOGLOB set - -builtins/shopt.def - - print_shopt is now void - -configure.in - - machines running Rhapsody don't use the bash malloc - - pass host_vendor to the Makefiles with AC_SUBST - -support/config.guess - - Rhapsody is really rhapsody, not nextstep - -support/config.sub - - add rhapsody to the list of supported configurations - -Makefile.in - - pass CONF_HOSTTYPE, CONF_OSTYPE, and CONF_MACHTYPE as -D options - in SYSTEM_FLAGS, to indicate that they came from the configuration - process - - set VENDOR variable from host_vendor configuration variable - - pass CONF_VENDOR as part of SYSTEM_FLAGS - -variables.c - - define HOSTTYPE, OSTYPE, and MACHTYPE as CONF_HOSTTYPE, CONF_OSTYPE, - and CONF_MACHTYPE, respectively - - 11/11 - ----- -doc/{bashref.texi,bash.1} - - updated description of `read' to clarify the -r option and its - effect on backslash escaping - - 11/13 - ----- -examples/loadables/{ln,unlink}.c - - new loadable builtins - - 11/23 - ----- -lib/glob/fnmatch.c - - some fixes to handle extended glob patterns immediately following - a `*' - -tests/extglob.tests - - updated with cases from bug report fixed today - -support/shobj-conf - - udpated stanza for aix 4.2 with gcc, based on information from - jik@cisco.com - -configure.in - - changes to add the correct linker options to allow dynamic linking - when using gcc on AIX 4.2, instead of insisting on the AIX C - compiler - -examples/misc/aliasconv.{bash,sh} - - changes to handle aliases with embedded single quotes - - 11/25 - ----- -lib/readline/complete.c - - postprocess_matches should call compute_lcd_of_matches with an - argument of `t' instead of `text' - - postprocess_matches should never call ding(); leave that for the - callers - - postprocess_matches no longer needs `text' as the first argument - - rl_complete_internal needs to call ding() if postprocess_matches - returns 0, since postprocess_matches no longer does it - - rl_complete_internal can now free `text' immediately after calling - gen_completion_matches, since it's no longer used - - 11/30 - ----- -print_cmd.c - - make sure redirections following compound commands have a space - separating them from the command - - 12/1 - ---- -general.c - - changed canonicalize_pathname so that if the result path begins - with `//', it will be changed to `/' if and only if the original - path did not begin with `//' (there has to be a non-slash after - the leading `///' in the original path) - - 12/2 - ---- -builtins/evalstring.c - - augment the test for turning on CMD_NO_FORK to make sure that - parse_and_execute_level == 1. That takes care of things like - - bash -c 'for f in 1 2 3; do eval "/bin/echo \"$f\"" ; done' - - only printing one line of output - - 12/8 - ---- -config-top.h - - add commented-out #define for NON_INTERACTIVE_LOGIN_SHELLS so - that users may, if they choose, make things like - - #! /bin/bash --login - - work in shell scripts - - 12/10 - ----- -jobs.c - - changes to the way jobs are reaped when the shell is not - interactive: - - o notify_of_job_status no longer marks dead jobs as - notified if they did not exit due to a signal; - o changed mark_background_jobs_as_notified to take an - argument `force': if zero, we only mark enough - dead jobs as notified to keep CHILD_MAX jobs in the - jobs list, as POSIX.2 specifies. If non-zero, mark - all dead jobs as notified; - o wait_for_background_pids marks all dead jobs as - notified when it has finished waiting for everything, - since the only thing that calls it is the `wait' builtin; - o wait_for_single_pid marks a job as notified after it - has completed, since the only things that call it are - wait_for_background_pids and the `wait' builtin - o wait_for_job marks the job as notified after the last - pid completes - -execute_cmd.c - - change execute_subshell_builtin_or_function to check - subshell_environment and pipe_out to decide whether or not to fork - if builtin == jobs_builtin, since the early-forking code added in - bash-2.02 means that the piping has probably already been done - - 12/15 - ----- -parse.y - - changes to make avar=((...)) a syntax error instead of ignoring - the nested parens and treating it as an array assignment - -shell.c - - changed run_startup_files so that any shell, whether or not it is - interactive, will run the login shell startup files when given the - --login option. This happens only when not in posix mode. - -builtins/enable.def - - changes to handle Tenon's MachTen, whose dlclose() does not return - a value - -lib/glob/fnmatch.c - - changed gmatch so that when it calls extmatch, it removes FNM_PERIOD - from the flags if it's not matching at the start of the string. - This fixes the problem of `@' and `+' extended-glob subpatterns - containing bracket expressions treating `.' specially when matching - a portion of the string starting with `.' - -config-top.h - - removed define for NON_INTERACTIVE_LOGIN_SHELLS, since it's no longer - necessary - - 12/17 - ----- -lib/readline/complete.c - - change rl_complete_internal and rl_menu_complete to check - rl_filename_completion_desired to decide whether or not we're - completing filenames instead of checking whether the attempted - completion function is filename_completion_function. - filename_completion_function sets rl_filename_completion_desired, - so this shouldn't break anything -- just allow postprocessing of - matches for user-supplied filename completion functions that don't - call filename_completion_function - -lib/readline/display.c - - new function, _rl_erase_entire_line, which erases the entire line, - no matter where the cursor is, and puts the cursor at the beginning - of the (newly-empty) line - -lib/readline/readline.c - - new application-level variable, rl_erase_empty_line, which, if - non-zero, tells readline to erase the contents of the current line, - prompt and all, if the only character typed to an otherwise-blank - line is bound to rl_newline. Requested by the Cygnus GDB folks. - - change to rl_newline to suppress the call to _rl_update_final if - rl_erase_empty_line is non-zero, and rl_point == rl_end == 0, since - _rl_update_final calls crlf() - - change to readline_internal_charloop to call _rl_erase_entire_line - if newline was the only thing typed on an otherwise-empty line - -lib/readline/readline.h - - extern declaration for rl_erase_empty_line - -lib/readline/doc/rltech.texinfo - - documented new rl_erase_empty_line variable - - 12/18 - ----- -Makefile.in - - changed RELSTATUS to `beta1' - -[bash-2.03-beta1 frozen] - - 12/21 - ----- -doc/{bash.1,bashref.texi} - - added description of `test -h'; equivalent to `test -L' - - 12/22 - ----- -support/shobj-conf - - SHOBJ_LDFLAGS should be those options to ld which are common - between building dynamically loadable shared objects and shared - libraries - - added two new variables: SHOBJ_XLDFLAGS, which are ld options - specific to building dynamically loaded shared objects, and - SHLIB_LIBS, which are other libraries against which shared libraries - should be linked. These are for the benefit of AIX 4.2; other - stanzas do not need to be changed. - -configure.in - - add call to AC_SUBST for SHOBJ_XLDFLAGS - -examples/loadables/Makefile.in - - SHOBJ_XLDFLAGS is now substituted by configure - - $(SHOBJ_LDFLAGS) -> $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) in all - recipes that build loadable builtins - - 12/29 - ----- -support/config.{guess,sub} - - changes for NEC SX4 machines running SUPER-UX (?). Info from - Nicholas Clark - -lib/readline/bind.c - - new bindable variable, `isearch-terminators', which is the list of - characters that will terminate an incremental search without - subsequently executing the character as a command - -lib/readline/isearch.c - - changes to incorporate the new isearch-terminators bindable variable; - uses new private readline variable _rl_isearch_terminators - (suggested by Brian Fox) - -doc/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo - - documented new `isearch-terminators' settable variable - -lib/readline/complete.c - - new convenience function, free_match_list, called from - rl_complete_internal - - 12/30 - ----- -aclocal.m4 - - changed the calls to AC_MSG_ERROR in the cross-compiling sections - to AC_MSG_WARN, since AC_MSG_ERROR can cause configure to abort - -examples/functions/which - - new function, emulation of `which' as it appears in FreeBSD - - 12/31 - ----- -lib/readline/readline.c - - new bindable function: rl_rubout_or_delete. Does rl_rubout if - rl_point is at the end of the line, or rl_delete if not. This - is intended to mimic the Motif/Netscape/GNOME behavior of the - DEL character, and can be bound to delete to get that behavior - -lib/readline/readline.h - - new extern declaration for rl_rubout_or_delete - -lib/readline/funmap.c - - bound the name `forward-backward-delete-char' to - rl_rubout_or_delete (currently not bound to any keys) - -lib/readline/doc/manvers.texinfo - - new file with readline manual version information, to mantain - consistent numbering between readline and history manuals - -lib/readline/doc/{rlman,hist}.texinfo - - @include manvers.texinfo for version information - - moved the @dircategory and and @direntry directives inside - the @ifinfo block - - changed copyrights to 1988-1999 - -doc/Makefile.in, lib/readline/doc/Makefile.in - - texi2html is now called with -menu (to handle the texinfo menus) - and -monolithic (to include the table of contents in the generated - HTML file instead of putting it in a separate file - - changed recipes to remove references to TOC html files - -lib/glob/fnmatch.c - - include or as appropriate for strchr() - declaration - - 1/4/1999 - -------- -print_cmd.c - - don't print bare words when printing conditional expressions in - print_cond_node, use cprintf("%s", cond->op->word) - -subst.c - - in separate_out_assignments, if VARLIST is non-null on function - entry, free it up to clean up after a previous error longjmp - - 1/5 - --- -configure.in - - make sure the case clause that disables the bash malloc on alpha - machines catches things like `alphaev56' as well as `alpha' - - 1/12 - ---- -lib/readline/histlib.h - - new error message code: NO_PREV_SUBST - -lib/readline/histexpand.c - - handle NO_PREV_SUBST with appropriate error message in hist_error - - in history_expand_internal, if the `s' or `&' case results in a - null or empty LHS, return NO_PREV_SUBST - -error.c - - new interface: command_error(func, code, e, flags); intended to - collect command-related errors in one place - - new interface: command_errstr(code); returns a string describing - command error CODE - -error.h - - extern declarations for command_error and command_errstr - -command.h - - possible values for CODE in calls to command_error and command_errstr - -{shell,print_cmd,make_cmd,execute_cmd,dispose_cmd,eval}.c ,builtins/evalstring.c - - changed some calls to programming_error to use command_error - - 1/13 - ---- -configure.in - - if --enable-profiling is specified on a solaris2 machine, don't - turn on enable-static-link, since it's very hard to build a - static binary on solaris2 and gprof does not (apparently) require it - -builtins/getopts.def - - add calls to sh_getopt_restore_state so the state is restored each - time getopts is called. This protects us against the behavior of - some mallocs, which causes `nextchar' to be set to garbage in - getopt.c when a function is called between calls to getopts - - 1/14 - ---- -lib/readline/complete.c - - if postprocess_matches returns 0 in rl_complete_internal, reset - completion_changed_buffer to 0 before returning, since nothing - has been changed - - 1/20 - ---- -subst.c - - fixed pat_subst so that null patterns with a `#' specifier prefix - the string to be substituted on with the replacement, and null - patterns with a `%' specifier append the replacement to the string - to be substituted on - -doc/{bash.1,bashref.texi} - - corrected a small error in the description of parameter pattern - substitution - -support/mksignames.c - - SIGINFO means something else on sequent systems - - 1/26 - ---- -execute_cmd.c - - fix to execute_simple_command to keep a child process from getting - a bad value of last_asynchronous_pid when the shell forks early - - 2/1 - --- -Makefile.in - - changed RELSTATUS to `beta2' - - 2/2 - --- -[bash-2.03-beta2 released] - - 2/3 - --- -tests/{cprint.{tests,right},run-cprint} - - new test to exercise the command printing and copying code -- - hopefully this will avoid things like the `conditional commands - in functions make the shell abort' problem - - 2/4 - --- -version.c - - if MACHTYPE is not defined, use CONF_MACHTYPE if it's defined - - 2/5 - --- -builtins/read.def - - if READLINE is defined, we need an extra pair of braces around - the `while' loop that reads from fd 0 if the -e option is - supplied, otherwise the code erroneously tests the value of - `retval', which is not set when using readline - - 2/15 - ---- -builtins/fc.def - - make sure that fc closes `stream' before calling fc_execute_file - - 2/17 - ---- -builtins/fc.def - - don't bother opening and closing the file of commands before - calling fc_execute_file, since parse_and_execute will write the - commands to the history file for us - -Makefile.in - - changed release status to `release' - - 2/18 - ---- -parse.y - - change to special_case_tokens so that `time' is not recognized - as a reserved word while the parser is parsing a case statement - pattern list (if `time' is the first pattern, the last read - token will be newline, which time_command_acceptable says is OK - to start a pipeline) - -pathexp.c - - some changes to the POSIX_GLOB_LIBRARY code (often unused) - -shell.c - - a couple of changes for Interix (nee OPENNT) - - added code that handles systems without a third argument to main(); - initializing `env' from `environ', conditionalized on a cpp define - NO_MAIN_ENV_ARG - -configure.in, config.h.in - - check for the presence of sbrk(2); define HAVE_SBRK if found - -xmalloc.c - - don't do the space allocated computation when malloc or realloc - fails if HAVE_SBRK is not defined - -configure.in - - new configure variable, MAKE_SHELL, defaults to /bin/sh - -Makefile.in,{builtins,doc,support,lib/{glob,malloc,readline,sh,termcap,tilde},examples/loadables}/Makefile.in - - set SHELL from @MAKE_SHELL@ - -lib/posixheaders/posixjmp.h - - Don't override defines for setjmp and longjmp in on - Internix (nee OPENNT) - -lib/readline/complete.c - - Interix (OPENNT) doesn't do username completion - -configure.in - - on Interix/OPENNT ($host_os == interix* or opennt*), add - -DNO_MAIN_ENV_ARG to LOCAL_CFLAGS - - on Interix/OPENNT, set MAKE_SHELL to $OPENNT_ROOT/bin/sh rather - than a straight /bin/sh - -cross-build/opennt.cache - - a `configure' cache file for Interix/OPENNT; not necessarily - for cross-compiling, but this is where the other system cache - files are - -[bash-2.03 released] - - 2/19 - ---- -configure.in - - changed OPENNT_ROOT to INTERIX_ROOT for building on Interix - -support/config.guess - - added two stanzas for Interix running on alpha and intel hardware - - 2/22 - ---- -config-bot.h - - if PROMPT_STRING_DECODE is not defined, #undef PPROMPT before - redefining it, to avoid warning messages - -execute_cmd.c - - set jobs_hack in execute_subshell_builtin_or_function only if - JOB_CONTROL is defined - - 2/24 - ---- -trap.c - - fixed an obscure bug caused by a race condition in run_pending_traps. - Read the comments in the source code for a full description of the - problem and solution - - 3/1 - --- -aclocal.m4 - - new test, BASH_STRUCT_TIMEVAL, which tries to compile a code - fragment that includes and as appropriate - and defines HAVE_TIMEVAL if the compile succeeds - -configure.in - - call BASH_STRUCT_TIMEVAL rather than running a pair of - AC_HEADER_EGREPs on sys/time.h and time.h - -lib/readline/histfile.c - - include "posixstat.h" rather than - - in history_truncate_file, only try to truncate if the history file - is a regular file - - 3/2 - --- -aclocal.m4 - - changed BASH_STRUCT_TIMEVAL back to using a pair of - AC_EGREP_HEADERs instead of compiling a program fragment - -lib/readline/readline.c - - readline_internal_charloop should cast the first argument to - _rl_dispatch to `unsigned char' to avoid problems with negative - array indices on systems where signed chars are the default - -lib/readline/kill.c - - instead of doing a sequence of next_history() calls in - rl_yank_nth_arg_internal, save and restore the history - position explicitly after finding the correct entry. This - attempts to ensure that rl_yank_nth_arg leaves the history - pointer set to the same position as when it was called. - Fix from Vasco Pedro - - 3/5 - --- -redir.c - - broke code that opens file for redirection in do_redirection_internal - into a separate function: redir_open(path, flags, mode, ri) - -general.h - - changed STREQN so that it evaluates to 1 (strings are equivalent) - if N == 0, to match the behavior of strncmp - -lib/sh/zwrite.c - - new file, zwrite() from builtins/evalstring.c - -builtins/evalstring.c - - removed private definition of zwrite - -builtins/common.c - - double_quote needs to protect newlines with backslashes as well - - new function, un_double_quote, to remove backslashes proctecting - characters that are special in double quotes - -builtins/common.h - - new extern declaration for un_double_quote - -parse.y - - changed read_token_word to requote the expanded value of $'...' - using single_quote - - added a new flag to parse_matched_pair: P_ALLOWESC. It allows - backslashes to quote embedded single quotes, and is used by - the $'...' translation code for better ksh93-compatibility - - changed localeexpand to call mk_msgstr on the string passed - before displaying it if all we're doing is displaying translatable - strings in `po' format. mk_msgstr quotes backslashes and double - quotes in the string passed with backslashes, and encloses the - result in double quotes. If only -D is supplied, the string is - not changed at all -- this is what ksh93 does - -lib/readline/rlconf.h - - removed PAREN_MATCHING #define, paren matching is always compiled - into readline - -lib/readline/parens.c - - removed code that was active if PAREN_MATCHING was not defined - - added _rl_enable_paren_matching, which is called when the readline - variable `blink-matching-paren' is assigned a value and changes - the appropriate key bindings in emacs_standard_keymap - -lib/readline/bind.c - - no more PAREN_MATCHING defines, `blink-matching-paren' is always - available - - if `blink-matching-paren' is assigned a value, call - _rl_enable_paren_matching (rl_blink_matching_paren) - -lib/readline/emacs_keymap.c - - removed PAREN_MATCHING defines; the default key bindings for - ), ], and } are self-insert - - 3/7 - --- -stringlib.c - - added an extra argument to ansicstr so that `echo -e' will not - convert \' to ' - -externs.h - - changed extern declaration for ansicstr - -parse.y, builtins/{echo,printf}.def - - changed calls to ansicstr() appropriately - -eval.c - - in parse_string_to_word_list, if an unexpected token is encountered - that causes the string to not parse to a simple command, or to - completely consume the string, display an error message and jump - back to the top level after restoring the parsing environment, - returning an error status from the attempted assignment - - 3/8 - --- -lib/glob/fnmatch.c - - fixed patscan and extmatch to handle embedded [...](...) patterns - better - -tests/{extglob2.{tests,right},run-extglob2} - - an additional set of ksh extended globbing tests, cribbed from zsh - - 3/10 - ---- -general.c - - changed unset_nodelay_mode slightly to make sure it handles both - O_NDELAY and O_NONBLOCK if they have different values; it now - returns a value of 0 on success (or no action); -1 on failure - -general.h - - changed extern declaration for unset_nodelay_mode - - -lib/readline/shell.c - - new function: unset_nodelay_mode; identical to definition in - general.c - -lib/readline/input.c - - changed rl_getc to call unset_nodelay_mode if the read fails with - errno == EWOULDBLOCK || errno == EAGAIN - - 3/11 - ---- -lib/termcap/termcap.c - - minor changes from termutils-2.0 - - minor change to MS-DOS version of valid_filename_p so MS-DOS-specific - code from tgetent() can be removed (from Michel@smr.nl) - -lib/readline/bind.c - - in _rl_read_file, null-terminate the buffer at the number of - characters actually read, not what stat() says the file size is - - use ~/_inputrc as a last-ditch inputrc filename on MS-DOS - -lib/readline/complete.c - - change printable_part to handle MS-DOS `drive-letter:' pathname - prefixes - - removed __GO32__ code, since it's for DJGPP 1.x, which is not - supported any more, and they don't work for DJGPP 2.x - - added code to support MS-DOS drive letter prefixes and //X/... - to filename_completion_function - - _rl_completion_case_fold defaults to 1 on MS-DOS - -lib/readline/{display,input,readline,rltty,signals,terminal}.c - - removed __GO32__ code - -lib/readline/histfile.c - - make read_history_range and history_truncate_file work with the - actual number of characters read from the file, not the file size - as reported by stat() - -lib/readline/readline.c - - change bind_arrow_keys_internal to bind MS-DOS arrow keys to the - appropriate functions if __MSDOS__ is defined - -lib/readline/rltty.c - - make sure set_winsize is always defined, with a null body if - TIOCGWINSZ is not defined - -lib/readline/shell.c - - include , since this file uses sprintf - -support/shobj-conf - - MS-DOS does not support shared objects - -lib/tilde/tilde.c - - change tilde_find_suffix and isolate_tilde_prefix to understand - backslash as a pathname separator on MS-DOS - - 3/12 - ---- -lib/readline/{bind,readline,terminal}.c - - no longer need to include - -lib/readline/terminal.c - - don't need to include - -builtins/history.def - - broke the code than handles deleting a particular history entry - from the history list out into a separate function: delete_histent - - added `-d offset' option to delete the history entry at position - OFFSET, as displayed when the history is listed - -jobs.c, nojobs.c - - new function, count_all_jobs(), returns the number of active jobs - in the jobs list - -jobs.h - - extern declaration for count_all_jobs() - -configure.in - - check for C library function ttyname() - -config.h.in - - define HAVE_TTYNAME if configure finds ttyname(3) - -parse.y - - two new escape sequences for decode_prompt_string: - - \j number of active jobs in jobs list - \l basename of shell's tty device name - -doc/{bash.1,bashref.texi}, lib/readline/doc/hsuser.texi - - documented new `history -d' option - - documented new \j and \l prompt string expansion sequences - -lib/readline/bind.c - - new static state variable, currently_reading_init_file, set to - 1 while _rl_read_init_file is operating on a file - - changed _rl_init_file_error to include the name and line number - from the init file only if currently_reading_init_file is non-zero - (this is needed since applications like bash can call - rl_parse_and_bind, and error messages from those calls would be - misleading if they referred to the last inputrc file read - -bashline.c - - support for a `extended command keymap', which will allow - readline key sequences to be bound to unix commands using an - auxiliary keymap and a special function that knows how to execute - commands from it - - bind_keyseq_to_unix_command supports `bind -x' - - bash_execute_unix_command is the readline callback that looks in - an auxiliary keymap to find the shell command to execute for a - particular key sequence - - new variable, no_empty_command_completion, which suppresses $PATH - searching for command completion when TAB is typed on an empty - line - -bashline.h - - extern declaration for new function bind_keyseq_to_unix_command - -builtins/bind.def - - added `-x' option to bind a key sequence to a shell command - -builtins/help.def - - added `-s' option to just print a builtin's short_doc - -builtins/shopt.def - - added new shell option, no_empty_cmd_completion', mirroring value - of no_empty_command_completion - -doc/{bash.1,bashref.texi} - - documented new `bind -x' option - - documented new shopt `no_empty_cmd_completion' option - - documented new `help -s' option - -Makefile.in - - changed RELSTATUS to `devel' - -_distribution - - changed to `2.04' - - 3/15 - ---- -support/shobj-conf - - add `-h $@' to linking options on Solaris 2 with gcc - -expr.c - - changes to add {pre,post}-{inc,dec}rement operators (++id, --id, - id++, id--). These are somewhat more liberal than ksh93, and - may require more strict syntax checking down the line - -tests/arith.{tests,right} - - additional tests for {pre,post}-{inc,dec}rement operators - - 3/16 - ---- -command.h - - structures and types for ksh-93-style arithmetic `for' command - -configure.in - - new `--enable-arith-for-command' option to compile arithmetic for - command code into the shell - -config.h.in - - new define, ARITH_FOR_COMMAND, turned on by configure - -parse.y - - changed read_token_word to parse a set of arithmetic for expressions - between (( and )) as long as the last token read before the `((' - was FOR - - added grammar rules to build arithmetic for commands - -make_cmd.c - - functions to parse (( ... )) into the three sub-expressions needed - for the arithmetic for command and create the command structures - (done this way instead of in the grammar rules to avoid forcing - users to quote special characters between the (( and )) ) - -make_cmd.h - - extern declaration for make_arith_for_command - -copy_cmd.c - - code to copy arithmetic for commands - -dispose_cmd.c - - code to dispose of arithmetic for commands - -print_cmd.c - - code to print arithmetic for commands - -execute_cmd.c - - code to execute arithmetic for commands and note that they are - shell control structures for the piping code - -doc/{bash.1,bashref.texi} - - documented new arithmetic for command - -doc/bashref.texi - - documented new configure --enable-arith-for-command option - - 3/17 - ---- -builtins/read.def - - added `-t timeout' option and code to support it - - 3/18 - ---- -examples/loadables/Makefile.in - - various clean targets need to descend into perl - -examples/loadables/perl/Makefile.in - - added mostlyclean and maintainer-clean targets - -include - - new directory, with files from lib/posixheaders - -lib/posixheaders - - removed - -{posixwait,unionwait,maxpath}.h - - moved from top src directory to include subdir - -Makefile.in,builtins/Makefile.in,lib/{glob,malloc,sh,tilde}/Makefile.in - - updated dependencies and file lists for new include directory - - added BASHINCDIR variable, added -I${BASHINCDIR} to cc's include path - -MANIFEST,support/SYMLINKS - - updated for new include directory - -lib/readline/{ansi_stdlib,posixdir,posixjmp,posixstat,rlstdc}.h - - changed symlinks to point to ../../include rather than - ../posixheaders - -builtins/common.h - - changed `#include "../stdc.h"' to `#include "stdc.h"' - -builtins/{cd,exec,fc,history,pushd,source,type,umask,printf}.def -builtins/{mkbuiltins,common,evalfile,evalstring,getopt}.c - - changed include specifications: - ../posixstat.h -> posixstat.h - ../filecntl.h -> filecntl.h - ../maxpath.h -> maxpath.h - ../memalloc.h -> memalloc.h - -include/shtty.h - - new file, contents of bashtty.h and code from jobs.c that includes - the appropriate terminal file - -lib/sh/shtty.c - - new file with some tty manipulation utility functions - -bashtty.h - - removed - -jobs.c, nojobs.c - - include shtty.h instead of bashty.h and other code that includes - the correct system-dependent tty include file - -lib/sh/Makefile.in - - added shtty.o as part of libsh.a - -MANIFEST - - added include/shtty.h and lib/sh/shtty.c, removed bashtty.h - - 3/19 - ---- -lib/readline/display.c - - some more __MSDOS__ code to make readline work better with DJGPP: - output \r instead of tputs(term_cr, ...) - -lib/readline/terminal.c - - some changes for __DJGPP__ (one is of dubious value -- doesn't - DJGPP have a termcap library?) - - 3/23 - ---- -configure.in - - make sure that the $CC argument to shobj-conf is quoted - -support/shobj-conf - - changes to SGI SHOBJ_LDFLAGS from David Kaelbling - - 3/24 - ---- -lib/sh/zread.c - - interface to read(2) that restarts automatically if errno == EINTR - -externs.h - - new declarations for functions in lib/sh/{zread,zwrite}.c - -lib/sh/Makefile.in, Makefile.in - - add zread.c, zread.o to appropriate file lists - -{subst,input}.c, builtins/{evalstring.c,read.def} - - converted some loops around read() to call zread() instead - -lib/readline/rltty.h - - new struct _rl_tty_chars to save tty special characters - -lib/readline/rltty.c - - new function save_tty_chars to save tty special characters - (currently they're only saved -- nothing looks at them yet) - - two new internal library functions, _rl_disable_tty_signals () - and _rl_restore_tty_signals (), intended to disable tty driver - signal processing for readline's literal-next code, so users - can do stuff like ^V^C and have ^C end up in the readline - buffer even if ^C is the terminal's interrupt character - -lib/readline/readline.c - - changed rl_quoted_insert to disable and restore tty signal - handling around the call to rl_read_key (), so users can put - tty special chars into the readline buffer - - 3/25 - ---- -expr.c - - added `,' operator (expr1 , expr2) -- both expr1 and expr2 are - evaluated and the return value is the value of expr2. Precedence - is higher than assignment (which makes it highest) - - make `lasttp' (pointer to last token) part of the expression - context that is saved and restored by {push,pop}_context. This - is used only in error reporting - -doc/{bash.1,bashref.texi} - - documented new `,' arithmetic operator - - cleaned up some of the language concerning variables referenced - by name within an arithmetic expression - -lib/readline/readline.c - - new application-settable variable, rl_num_chars_to_read, which, if - set to a non-zero value, causes readline to return after reading - that many characters (or at least that many characters, if - rl_startup_hook is used to prime the input buffer) rather than - when reading a character bound to accept-line - -lib/readline/readline.h - - extern declaration for rl_num_chars_to_read - -builtins/read.def - - added new `-n nchars' option to read NCHARS from stdin rather than - a complete line. Works both with and without using readline - -doc/{bash.1,builtins.texi} - - documented new `read -n nchars' option - - 3/26 - ---- -execute_cmd.c - - make sure all uses of PIDs are of type pid_t - -redir.c - - broke stdin_redirects into two functions: stdin_redirection, which - checks a single redirection specification, and a new stdin_redirects, - which does what it did before but calls stdin_redirection for each - redirection in the chain - - 3/29 - ---- -aclocal.m4 - - new test, BASH_CHECK_DEV_STDIN, checks for /dev/stdin. If it's - present HAVE_DEV_STDIN is defined and it's assumed that /dev/stdout - and /dev/stderr are present as well - -configure.in - - call BASH_CHECK_DEV_STDIN - -config.h.in - - add HAVE_DEV_STDIN, initially undefined - -test.c - - add /dev/std{in,out,err} to the special filenames that are handled - by test_stat() if HAVE_DEV_STDIN is not defined - -doc/{bash.1,bashref.texi} - - documented conditional expressions' handling of /dev/std{in,out,err} - -stringlib.c - - new function, find_string_in_alist, to find (or match as an extended - glob pattern) a string in a STRING_INT_ALIST and return the - associated token value - -externs.h - - extern declaration for find_string_in_alist - -redir.c - - new STRING_INT_ALIST list of filenames the redirection code handles - specially (_redir_special_filenames) - - new function, redir_special_open () to handle filenames found in - _redir_special_filenames (framework for /dev/tcp and /dev/udp, but - those are not implemented get) - -doc/{bash.1,bashref.texi} - - documented special filename handling in redirections - - 3/30 - ---- -builtins/read.def - - added `-d delim' option, like ksh93, to read until delim rather - than newline - -doc/{bash.1,bashref.texi} - - documented new read `-d delim' option - -configure.in - - look for gethostbyname(3), inet_aton(3) - - look for and - - call BASH_FUNC_GETHOSTBYNAME if gethostbyname(3) is not in libc - - check for u_int and u_long types, default to `unsigned int' and - `unsigned long' respectively - - new enable option `--enable-net-redirections' to compile in the - /dev/tcp and /dev/udp redirection code - -aclocal.m4 - - new macro, BASH_FUNC_GETHOSTBYNAME, looks for gethostbyname(3) in - the socket libraries if it's not found in libc - -config.h.in - - new defines: HAVE_GETHOSTBYNAME, HAVE_INET_ATON, HAVE_NETDB_H, - HAVE_NETINET_IN_H, NETWORK_REDIRECTIONS - - new defines: u_int, u_long - -lib/sh/inet_aton.c - - new file, from GNU libc, slightly modified to remove inet_addr() - -lib/sh/netopen.c - - new file, functions to create tcp/udp network connections. Exports - a single function: netopen(pathname) - -externs.h - - extern declaration for netopen() - -lib/sh/Makefile.in, Makefile.in, MANIFEST - - added appropriate references to inet_aton.c and netopen.c - -config-bot.h - - if HAVE_SYS_SOCKET_H, HAVE_GETPEERNAME, and HAVE_NETINET_IN_H are - all defined, define HAVE_NETWORK - -redir.c - - call netopen for pathnames of the form /dev/(tcp|udp)/host/port - if HAVE_NETWORK is defined; print a warning message otherwise - - /dev/tcp and /dev/udp code is only compiled in if - NETWORK_REDIRECTIONS is defined - - 3/31 - ---- -lib/sh/zread.c - - new function, zsyncfd(fd) which syncs the kernel's seek pointer on - FD with the last character returned by zreadc() - -externs.h - - extern declaration for zsyncfd - -builtins/read.def - - use zreadc if the input is not unbuffered (this cuts the number - of read(2) calls *way* down) - - if input is not unbuffered, call zsyncfd before returning to make - sure zreadc's buffering doesn't consume too much input - - 4/1 - --- -Makefile.in - - install bashbug with mode 555 - - 4/2 - --- -shell.c - - make want_pending_command and read_from_stdin global rather than - local variables - -flags.c - - change which_set_flags to insert `c' and `s' if the `-c' and `-s' - invocation options, respectively, were supplied at shell startup - -bashline.c - - change bash_directory_completion_hook to change the logic for - deciding whether or not to parameter expand the directory name -- - now we expand only if there's a `$' (still has problems if the - user quoted the `$') or a `` pair. Fixes bug reported by - chuckjr@sinclair.net. To fix the `$' problem, could possibly - check what the user typed with rl_line_buffer and start, end - parameters to gen_completion_matches - - changed attempt_shell_completion to slightly adjust the logic for - deciding whether or not a word is in a command position: if the - word being completed has a single opening single or double quote - before the command separator, treat it as a candidate for (quoted) - command word completion - - now that we understand partially-quoted strings as completion - candidates, we can do command completion on certain unclosed - uses of $(... - -subst.c - - change extract_delimited_string to not return an error for an - unclosed construct if DOING_COMPLETION is non-zero - - 4/5 - --- -expr.c - - fixed `ss=09 ; let ss=10' bug by introducing one-token lookahead - after a string token is parsed. If the next token is `=', we - don't evaluate the variable's value as an expression, since it's - not going to be used - -variables.h - - added new member to struct variable: exportstr -- for the future - caching of strings to be placed into the environment - - extern declaration for bind_variable_value - -variables.c - - make sure that the `exportstr' member of a struct variable is - initialized correctly, and put code in to free it where appropriate - (if non-null) - - new function, bind_variable_value(VAR, VALUE); make shell variable - VAR have value VALUE - - make sure var->exportstr is invalidated when a variable or function - is assigned a value - -builtins/declare.def - - call bind_variable_value instead of duplicating some of bind_variable - inline - - 4/6 - --- -variables.h - - new macros, VSETATTR and VUNSETATTR to set and clear variable - attributes - -builtins{read,set,setattr,declare}.def,{execute_cmd,expr,shell,subst,variables}.c - - change to use VSETATTR and VUNSETATTR - - 4/7 - --- -doc/Makefile.in - - if htmldir is set by configure, install the html files into that - directory with `make install' and remove them with `make uninstall' - -Makefile.in,doc/Makefile.in - - htmldir is set by configure and passed from the Makefile to the - install in the doc subdirectory - -configure.in - - substitute `htmldir' into Makefiles - -support/config.guess - - some small changes for Apple's Rhapsody - -lib/termcap/Makefile.in - - make the `distclean' and `maintainer-clean' targets remove Makefile - -lib/termcap/ltcap.h - - new private library include file, for Rhapsody __private_extern__ - define - -lib/termcap/{termcap,tparam}.c - - include "ltcap.h" - - if HAVE_CONFIG_H is defined, include if HAVE_STDLIB_H is - defined, otherwise declare getenv, malloc, realloc as extern - - add __private_extern__ qualifier for extern data that Rhapsody - requires - -shell.c - - don't run the startup files in the rshd case if shell_level is >= 2 - This should catch the case of - rsh machine bash -c 'echo a' - running the .bashrc twice, once for the shell started by rshd and - one for the shell running -c command - - 4/8 - --- -variables.c - - in initialize_shell_variables, unset the export attribute from - SSH_CLIENT if it exists and we got it from the initial environment - -shell.c - - don't bother unsetting export attribute from SSH_CLIENT, since we - now do it in initialize_shell_variables - -lib/readline/display.c - - don't check prompt_this_line[-2] in rl_redisplay if prompt_this_line - isn't at least 2 characters after the start of rl_display_prompt - -lib/readline/histfile.c - - change the name of the default history file to _history on MS-DOS - -lib/readline/histlib.h - - add an extern declaration for history_offset - -lib/readline/hist{expand,search}.c - - remove extern declaration for history_offset; now in histlib.h - -lib/readline/xmalloc.h - - new file, extern declarations for xmalloc, xrealloc, xfree - -lib/readline/rlprivate.h - - new file, with extern declarations for `readline private' global - variables and functions - -lib/readline/rlshell.h - - new file, with extern function declarations for stuff in shell.c - -lib/readline/Makefile.in - - add dependencies on xmalloc.h, rlshell.h - - add xmalloc.h, rlprivate.h to list of header files - -MANIFEST - - add lib/readline/xmalloc.h, lib/readline/rlprivate.h, - lib/readline/rlshell.h - -Makefile.in - - add $(RL_LIBSRC)/xmalloc, $(RL_LIBSRC)/rlprivate.h, - $(RL_LIBSRC)/rlshell.h to READLINE_SOURCE variable - -lib/readline/{bind,complete,display,funmap,histexpand,histfile,history,input, -isearch,keymaps,kill,macro,readline,search,shell,util,vi_mode}.c - - include "xmalloc.h" rather than extern declarations for xmalloc, - xrealloc, xfree - -lib/readline/terminal.c - - new function, used in two places, _emx_get_screensize for EMX - -lib/readline/readline.c - - EMX apparently no longer needs _emx_build_environ - -lib/readline/signals.c - - support for __EMX__ in rl_signal_handler - - don't set the old handler passed to rl_set_sighandler to - rl_signal_handler, because that would cause infinite recursion if - that signal were generated - -lib/readline/xmalloc.c - - no longer the same as lib/malloc/xmalloc.c, which is no longer - used by anyone - - changes to include xmalloc.h, define READLINE_LIBRARY, change - some of the argument types - -lib/tilde/tilde.c - - add prototypes for extern function declarations if __STDC__ - defined - -lib/readline/{terminal,bind,readline,nls,histexpand}.c - - include "rlshell.h" for function prototypes - - 4/9 - --- -lib/readline/{bind,callback,complete,display,input,isearch,kill,macro,nls, -parens,readline,rltty,search,signals,terminal,util,vi_mode}.c - - include "rlprivate.h" - - remove extern declarations already in rlprivate.h - -xmalloc.c - - xfree should take a PTR_T as its argument - -general.h - - change prototype for xfree to use void * instead of char * - -lib/malloc/malloc.c - - define PTR_T like it is defined in general.h - - malloc() returns a PTR_T - - free() takes a PTR_T as its argument - - realloc() returns a PTR_T and takes a PTR_T as its first argument - - memalign returns a PTR_T - - valloc returns a PTR_T - - calloc returns a PTR_T - - cfree() takes a PTR_T - -variables.c - - new function: char **all_variables_matching_prefix (char *prefix) - -variables.h - - extern declaration for all_variables_matching_prefix - -bashline.c - - converted variable_completion_function to use - all_variables_matching_prefix - -stringlib.c - - new function, char **alloc_array(n), allocates an argv-style - array of strings with room for N members - -externs.h - - extern declaration for alloc_array - - 4/13 - ---- -lib/readline/keymaps.c - - include "readline.h" - - remove extern function declarations - -include/stdc.h - - break the definition of __P out from a strict __STDC__ block, - since __GNUC__ and __cplusplus also indicate that prototypes - are available - -lib/readline/readline.h - - adjust conditional declaration of rl_message, since __cplusplus - indicates that prototypes are available - -lib/readline/rlstdc.h - - private copy, modified, no longer symlinked to ../../include/stdc.h - - __P is defined if __GNUC__ or __cplusplus is defined - - removed defines for __STRING, const, inline, signed, volatile, since - readline does not use them - -lib/readline/{search,readline}.c - - extern declaration for _rl_free_history_entry with prototypes, - since it's not in rlprivate.h - -lib/readline/history.h - - added some missing `extern's in function declarations - -lib/readline/undo.c - - include "rlprivate.h" - -lib/readline/shell.c - - include "rlshell.h" - -lib/readline/Makefile.in - - update dependencies for undo.c, shell.c - -lib/tilde/tilde.h - - add #define for __P if not already defined - - use prototypes in extern function declarations with __P() - -lib/readline/doc/rluserman.texinfo - - new file, derived from rlman.texinfo - -{bashline,findcmd,general,pathexp}.c, builtins/getopts.def - - call alloc_array(N) instead of (char **)xmalloc (N * sizeof (char *)) - -subst.c - - added code to implement ksh-93 ${!prefix*} expansion - -doc/{bash.1,bashref.texi} - - documented new ${!prefix*} expansion - - 4/15 - ---- -execute_cmd.c - - new variable, this_shell_function, points to SHELL_VAR of currently - executing shell function - -variables.c - - new dynamic variable, FUNCNAME -- invisible when not executing shell - function - -doc/{bash.1,bashref.texi} - - documented new FUNCNAME variable - - 4/16 - ---- -support/rlvers.sh - - add -T option to specify correct termcap library - -configure.in - - Irix 4.x still needs to link with -lsun if it contains a replacement - getpwent function that works with NIS - - if we're configuring with an already-installed readline library, - call BASH_CHECK_LIB_TERMCAP and pass the resulting $TERMCAP_LIB to - support/rlvers.sh - -lib/readline/readline.c - - in rl_forward, if rl_point ends up being < 0, set it to 0 - -lib/readline/exammples/excallback.c - - new callback example code, from `Jeff Solomon ' - -lib/sh/getcwd.c - - define NULL as 0 if not defined by one of the standard include files - - cast result of malloc and realloc to (char *) where appropriate - -variables.c - - new functions for use by dynamic variables: null_assign and - null_array_assign. Used as assign_func for a particular variable, - they cause assignments to that variable to be silently ignored - - FUNCNAME and GROUPS are no longer readonly - - FUNCNAME changed to use null_assign - - GROUPS changed to use null_array_assign. This means that the - variable can be unset if desired (like for Oracle startup scripts), - but cannot be assigned to - -doc/{bash.1,bashref.texi} - - added text about assignments being silently discarded to descriptions - of FUNCNAME and GROUPS - - removed text saying that GROUPS is readonly - - added standard text about GROUPS being unset and losing its special - properties, even if reset - -command.h - - new command type, cm_subshell, actually causes the shell to fork - and then executes the command in the SUBSHELL_COM struct - -parse.y - - ( ... ) now creates a command of type cm_subshell, with the same - flag CMD_WANT_SUBSHELL as previous - -make_cmd.c - - new function make_subshell_command - -make_cmd.h - - extern declaration for make_subshell_command - -dispose_cmd.c - - code to destroy a SUBSHELL_COM - -copy_cmd.c - - code to duplicate a SUBSHELL_COM - -print_cmd.c - - code to print a SUBSHELL_COM - -execute_cmd.c - - broke the code that handles executing commands in subshells out of - execute_command_internal into a new function, execute_in_subshell, - with the same arguments - - executing a command of type cm_subshell is just a slightly special - case, handled in execute_in_subshell - - 4/18 - ---- -execute_cmd.c - - changed code in execute_command_internal that executes subshell - commands to check for command->type == cm_subshell in addition to - checking that commmand->flags & CMD_WANT_SUBSHELL is non-zero - - changed execute_in_subshell to set the CMD_NO_FORK flag on the - command to be executed by a command of type cm_subshell - (command->value.Subshell->command), if that command is a simple - command (type == cm_simple) or a nested subshell (type == cm_subshell) - and is not being timed - - changed execute_command_internal to just call and return the value - returned by execute_in_subshell if it gets a command of type - cm_subshell with flags including CMD_NO_FORK - -lib/malloc/malloc.c - - morecore() should always return through morecore_done, not with a - simple `return' - - 4/20 - ---- -variables.c - - new function, quote_array_assignment_chars, backslash quotes all - `[' and `]' before an `=' in a word that's part of the body of a - compound array assignment. Needed because we run the list through - the globbing code now. Don't bother if `=' does not appear in - the string or if the first char is not `[' - - call quote_array_assignment_chars from assign_array_var_from_string - now - -eval.c - - moved parse_string_to_word_list to parse.y - -parse.y - - moved parse_string_to_word_list here. Much simpler -- no longer - tries to parse a command, but just reads tokens using read_token(). - Any token but a WORD or ASSIGNMENT_WORD causes a syntax error. - Don't have to mess around with saving global_command or calling - parse_command, but do need to save and restore the history stuff, - so the array assignment doesn't get saved on the history list - - 4/21 - ---- -nojobs.c - - changed to use functions in lib/sh/shtty.c (tt{get,set}attr) for - the terminal attributes - - added a `flags' field to struct proc_status, flags are PROC_RUNNING - and PROC_NOTIFIED (status has been returned to `wait') - - functions check flags & PROC_RUNNING to check whether or not a - particular process is still alive; PROC_RUNNING is reset by - set_pid_status - - new function, mark_dead_jobs_as_notified, same function as the one - in jobs.c - - cleanup_dead_jobs reaps jobs only if they're dead and not marked - as notified - - wait_for_background pids marks all pids as notified and reaps them - before it returns, since it's called by the `wait' builtin - - wait_for_single_pid marks the pid being waited for as notified so - its slot can be reclaimed -- it's only called by the `wait' builtin - - new function, process_exit_status, to turn what wait(2) takes into - an exit status - - 4/22 - ---- -nojobs.c - - add_pid takes a new second argument, async_p, which is non-zero if - the process is in the background - - new flag, PROC_ASYNC, set by add_pid - - set_pid_status now sets the PROC_NOTIFIED flag if PROC_ASYNC is unset, - so foreground jobs get cleaned up right away - - changed mark_dead_jobs_as_notified to take a `force' argument; if - non-zero, it marks only enough dead jobs to make the number of - un-notified dead jobs < CHILD_MAX - - new function, reap_dead_jobs, same as in jobs.c - -execute_cmd.c - - don't need separate cases for REAP any more - - 4/23 - ---- -builtins/printf.def - - new function, tescape, which processes a single backslash - escape sequence and returns the number of characters consumed by - the argument string (code taken from bexpand) - - changed bexpand to call tescape rather than do backslash-escape - sequence conversion itself - - changed occurrences of `illegal' in error messages to `invalid' - - printf no longer calls ansicstr to translate backslash-escape - sequences; the mainline printf code now calls tescape whenever it - hits a backslash - - 4/26 - ---- -subst.c - - new variable, garglist, set to list of words to be expanded after - leading assignment statements are removed - - command_substitute now calls maybe_make_exported_env before making - the child process if there are no variable assignments preceding - the command currently being expanded, or if the command currently - being expanded consists only of variable assignments - -execute_cmd.c - - the `early fork' code in execute_simple_command now calls - maybe_make_export_env before forking because execute_disk_command - would do that in the vast majority of cases, and this will obviate - the need to do it for subsequent commands if the environment does - not change - - 4/27 - ---- -variables.h - - more macros to manipulate the exportstr member of a SHELL_VAR - - changed initialize_shell_variables to cache the value from the - environment as the initial exportstr for all imported variables - - changed make_var_array to use exportstr if it exists, instead - of computing the value - - changed make_var_array to cache exportstr for exported functions, - so they don't have to be deparsed every time the export env is - remade - - 4/28 - ---- -lib/readline/{histlib,rldefs}.h - - changed STREQN macro to evaluate to 1 if the third argument is 0 - -lib/readline/search.c - - changed rl_history_search_{for,back}ward so they leave point at - the end of the line when the string to search for is empty, like - previous-history and next-history - - broke common code out of rl_history_search_{for,back}ward into - a new function, rl_history_search_reinit - - rewrote rl_history_search_internal to be more like the - non-incremental search functions, use noninc_search_from_pos, - and leave the last history line found in the current line buffer - if the search fails - - new function, make_history_line_current, takes care of making - the current line buffer a copy of the history entry passed as an - argument; used by rl_history_search_internal and noninc_dosearch - -subst.c - - make ${!prefix@} be the same as ${!prefix*} for (undocumented) - ksh93 compatibility - - 4/30 - ---- -lib/readline/doc/rltech.texinfo - - added note about including , and that - should be included before readline.h - -lib/readline/doc/hstech.texinfo - - added note about including - -lib/readline/doc/manvers.texinfo - - updated version to 4.1 - -lib/readline/{bind,complete,display,isearch,nls,parens,readline,signals,tilde, -histexpand}.c - - added prototypes with __P((...)) for forward static function - declarations - -lib/readline/display.c - - broke the code that initializes VISIBLE_LINE and INVISIBLE_LINE out - of rl_redisplay into a new function, init_line_structures, which - takes an argument giving the minimum number of characters that the - line must hold - - new function for use by applications that want to display the - initial prompt themselves rather than having the first call to - readline do it: rl_on_new_line_with_prompt (modified from code in - the CLISP distribution) - -lib/readline/readline.c - - new external variable, rl_already_prompted, to let readline know - that the prompt string has already been displayed on the screen - before the first call to readline - - test rl_already_prompted before displaying the prompt in - readline_internal_setup - - if rl_already_prompted is non-zero, readline_internal_setup calls - rl_on_new_line_with_prompt instead of rl_on_new_line - -lib/readline/readline.h - - extern declaration for rl_on_new_line_with_prompt - - extern declaration for rl_already_prompted - -lib/readline/doc/rltech.texinfo - - documented rl_on_new_line_with_prompt and rl_already_prompted - -builtins/read.def - - new -s option (silent mode). Input from a terminal is not echoed - -doc/{bash.1,bashref.texi} - - documented new `-s' option to read builtin - - 5/3 - --- -lib/readline/vi_mode.c - - replaced references to rl_getc with (*rl_getc_function) - -[bash-2.04-devel frozen] - - 5/5 - --- -subst.c - - make sure that verify_substring_values always passes malloc'd - memory to maybe_expand_string as the string to be expanded, - since it gets freed on errors - -support/shobj-conf - - don't need -R option for shared libraries on Solaris - - new stanza for OSF/1 machines with gcc - -lib/readline/readline.c - - new variable, rl_gnu_readline_p, always 1. Available to allow - readline users to test whether or not they're linking against - the true readline, rather than some bogus replacement (from CLISP) - -lib/readline/readline.h - - extern declaration for rl_gnu_readline_p - -hashlib.h, hashcmd.h - - added prototypes to extern function declarations - -pcomplete.h - - new file, declarations for the programmable completion stuff - -pcomplib.c - - new file, library functions for programmable completion - - 5/6 - --- -builtins/complete.def - - new file, interface to programmable completion management - -configure.in - - new enable argument --enable-progcomp, defines - PROGRAMMABLE_COMPLETION - -config.h.in - - #define for PROGRAMMABLE_COMPLETION - -config-bot.h - - if PROGRAMMABLE_COMPLETION is defined and READLINE is not, - #undef PROGRAMMABLE_COMPLETION - -pcomplete.c - - new file, placeholder for programmable completion generators and - associated functions - -Makefile.in, builtins/Makefile.in - - changes to add pcomplete.c, builtins/complete.def - - 5/7 - --- -subst.c - - new function, #ifdef READLINE, skip_to_delim (s, i, delims). - Starting at s[i], return the index of the first character in s - that is contained in delims. Understands shell quoting. - - added two arguments to list_string_with_quotes: an index to - watch for, and a pointer to int to return the index into the - created word list of the word containing the sentinel. Now - compiled in all the time. The returned index starts at 1. - -subst.h - - extern declarations for char_is_quoted, unclosed_pair, and - skip_to_delim - - changed extern declaration for list_string_with_quotes, moved - it out of the #ifdef ARRAY_VARS section - -bashline.c - - removed extern declarations for char_is_quoted and unclosed_pair - -variables.c - - new function, SHELL_VAR **all_exported_variables() - = new function, SHELL_VAR **all_array_variables(), #ifdef ARRAY_VARS - -variables.h - - extern declaration for all_exported_variables, all_array_variables - -lib/sh/strpbrk.c - - replacement if we don't have strpbrk(3) - -configure.in, config.h.in - - check for strpbrk(3), define HAVE_STRPBRK if found - -builtins/shopt.def - - new function, char **get_shopt_options (), returns an array of - shopt option names - -builtins/set.def - - new function, char **get_minus_o_opts (), returns an array of - `set -o' option names - -builtins/common.h - - extern declarations for get_shopt_options, get_minus_o_opts - - 5/10 - ---- -pathexp.c - - make the POSIX_GLOB_LIBRARY code implement the GLOBIGNORE stuff - - 5/11 - ---- -array.c - - new convenience function, char **array_to_argv (ARRAY *), - converts an array to a list of string values - -array.h - - extern declaration for array_to_argv - -execute_cmd.c - - new convenience function, int execute_shell_function (SHELL_VAR *, - WORD_LIST *) - -execute_cmd.h - - extern declaration for execute_shell_function - -builtins/evalstring.c - - make parse_and_execute unwind_protect current_prompt_string - if the shell is interactive - - 5/12 - ---- -variables.c - - moved bind_int_variable from expr.c to here; it now returns a - SHELL_VAR *, like the other variable binding functions - -variables.h - - extern declaration for bind_int_variable - - 5/14 - ---- -bashline.c, parse.y, general.c, make_cmd.c, subst.c, braces.c, execute_cmd.c - - replaced some common code sequences with calls to substring() - -lib/readline/doc/rltech.texinfo - - fixed small typo in description of rl_completion_entry_function - - 5/18 - ---- -stringlib.c - - new function, strcreplace(char *string, int c, char *text, int do_glob) - replaces all occurrences of C in STRING with TEXT. Backslash may - be used to quote C. If DO_GLOB is non-zero, the replacement TEXT - is quoted to protect globbing characters. - -externs.h - - extern declaration for strcreplace - -bashhist.c - - use strcreplace in expand_histignore_pattern - -pcomplete.c - - finished initial implementation of programmable completion - -alias.c - - code to set the aliases itemlist to dirty when an alias is added - or removed, if PROGRAMMABLE_COMPLETION is defined - -variables.c - - code to set the functions itemlist to dirty when a shell function - is added or removed, if PROGRAMMABLE_COMPLETION is defined - -builtins/enable.def - - code to set the builtins itemlist to dirty when a shell builtin - is added or removed, if PROGRAMMABLE_COMPLETION is defined - - code to set the enabled and disabled itemlists to dirty when a - builtin is enabled or disabled, if PROGRAMMABLE_COMPLETION is - defined - -builtins/shopt.def - - new shell option, `progcomp', on if programmable_completion_enabled - (from pcomplete.c) is non-zero - -doc/{bash.1,bashref.texi} - - note that `${' is not eligible for brace expansion to avoid - conflicts with parameter expansion - - 5/19 - ---- -builtins/complete.def - - added a new `compgen' builtin for use by completion functions - - 5/21 - ---- -bashline.c - - new function, void clear_hostname_list(void), to delete all the - entries in the hostname completion list - -bashline.h - - extern declaration for clear_hostname_list - -variables.c - - changed sv_hostfile to clear the hostname list if $HOSTFILE is - unset - -doc/{bash.1,bashref.texi} - - documented new behavior of HOSTFILE when it's unset - - added some awkwardly-worded text to make it clear that an - interactive shell cannot be started with non-option arguments - or with the -c option - -shell.c - - restored NON_INTERACTIVE_LOGIN_SHELLS test, so that if it is - defined, shells with argv[0][0] == '-' and not in posix mode - run the startup files even if non-interactive - -config-top.h - - added commented-out #define for NON_INTERACTIVE_LOGIN_SHELLS - - 5/24 - ---- -subst.c - - make sure the characters in IFS are cast to unsigned before being - indexed in ifscmap (expand_word_internal) - - 5/25 - ---- -parse.y - - change grammar rule for arithmetic for expressions to handle a - list_terminator after the `))' instead of requiring a newline_list - -subst.c - - fix so that variable indirection can reference the shell's special - variables (like $0...$9, $$, $#, etc.) - -pcomplete.c - - changed gen_wordlist_matches to use split_at_delims to split the - string at $IFS first, then expand each individual word - - 5/27 - ---- -lib/readline/histfile.c - - change things so that O_BINARY mode is used when reading and writing - the history file on cygwin32 as well as OS/2 (__EMX__) - -parse.y - - add calls to push_delimiter and pop_delimiter around the call - to parse_matched_pair when parsing $'...' and $"..." so the - history entry is added correctly - - 5/28 - ---- -doc/{bash.1,bashref.texi}, lib/readline/doc/rluser.texinfo - - documented new programmable completion facilities - -doc/bashref.texi - - documented new configure `--enable-progcomp' option - - 6/1 - --- -variables.c - - if make_local_variable is being asked to make a local shadow - variable of a read-only variable, print an error message and - return NULL - - if make_local_variable returns NULL to make_local_array_variable, - just return it - -builtins/declare.def - - if we're making local variables, and make_local_array_variable or - make_local_variable returns NULL, just flag an error and go on - - 6/2 - --- -Makefile.in - - changed release status to `alpha1' - -[bash-2.04-alpha1 frozen] - - 6/18 - ---- -bashline.c - - fixed find_cmd_start so that it doesn't spin-loop on commands with - a command separator like `;' or `&'. Problem was not incrementing - `os' past the delimiter found - - 6/21 - ---- -variables.c - - cosmetic change: introduced two macros to encapsulate initialization - of dynamic variables - - 6/23 - ---- -pcomplib.c - - new function: num_progcomps(void), returns the number of entries in - the programmable completions hash table - -pcomplete.h - - extern declaration for num_progcomps - -bashline.c - - make sure some programmable completions have been defined before - diving into the programmable completion code - -shell.c - - in open_shell_script, move the fd opened to the script to a high - one with move_to_high_fd in all cases -- the buffered input code - still has problems if fd == 0 and later on fd 0 is closed or - redirected (cf. input.c:check_bash_input()) - -builtins/printf.def - - getlong() now calls strtol directly with a third argument of 0 so - it can handle 0x (hex) and 0 (octal) prefixes, which legal_number - does not -- this has implications for arguments to %d that begin - with `0' - -lib/sh/getenv.c - - make sure that the variable found in the temporary environment has - a non-null value before calling savestring() on it - -subst.c - - make sure split_at_delims returns 0 in *nwp and *cwp if handed a - null or empty string - -pcomplete.c - - make sure build_arg_list handles lwords == 0, as it will be if an - empty command line is handed to the programmable completion code - (like compgen -C xyz) - -execute_cmd.c - - make sure execute_shell_function passes a non-null bitmap of fds to - close to execute_function, allocating and deallocating it locally - -sig.c - - don't mess with SIGPROF in initialize_terminating_signals - -jobs.c, nojobs.c - - if the user has requested it with checkwinsize, check for a new - window size after a job exits due to a signal as well as being - stopped - -lib/readline/kill.c - - changed rl_kill_region to set the point to the beginning of the - region after the kill is performed - - 6/24 - ---- -configure.in - - make sure ranges ([1-9]*) are protected with [...] for m4 quoting - -variables.c - - make sure that bind_variable_value honors `set -a' and that it - marks the environment for recreation if necessary - - 6/25 - ---- -lib/readline/complete.c - - if we're completing at the end of the line, find_completion_word - shouldn't test whether the character is a special word break - char and (possibly) advance rl_point past the end of the buffer - -parse.y - - change mk_msgstr to write embedded newlines as `\n""', as the - PO file format apparently requires - - 6/28 - ---- -lib/readline/display.c - - code to manage the growth of the inv_lbreaks and vis_lbreaks arrays - beyond 256, since there are pathalogical command lines that can - have more than 256 line breaks for redisplay - - 6/30 - ---- -stringlib.c - - include pathexp.h for extern declaration of quote_globbing_chars - -variables.h - - change CACHE_EXPORTSTR to savestring() the value and not set the - att_importstr flag - - 7/6 - --- -support/bashbug.sh - - bashbug now accepts --help and --version options - -bashline.c - - change bash_quote_filename to use single quotes if the user - does not specify an opening quote character and the filename being - completed contains newlines - - 7/8 - --- -configure.in, aclocal.m4, config.h.in - - BASH_TYPE_INT32_T --> BASH_TYPE_BITS32_T; int32_t --> bits32_t - - BASH_TYPE_U_INT32_T --> BASH_TYPE_U_BITS32_T; u_int32_t --> u_bits32_t - -lib/malloc/{malloc,gmalloc}.c, lib/sh/inet_aton.c - - int32_t --> bits32_t; u_int32_t --> u_bits32_t - -aclocal.m4 - - new tests: BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T - -configure.in - - add check for sizeof short, sizeof char - - call BASH_TYPE_BITS16_T, BASH_TYPE_U_BITS16_T - -config.h.in - - new #defines for bits16_t, u_bits16_t - -lib/malloc/malloc.c - - use u_bits16_t for type of mi_magic2 - - - 7/16 - ---- -lib/readline/display.c - - new private library function, _rl_strip_prompt, to remove instances - of RL_PROMPT_{START,END}_IGNORE from the passed prompt string - -lib/readline/rlprivate.h - - extern declaration for _rl_strip_prompt - -lib/readline/readline.c - - call _rl_strip_prompt before outputting the prompt if we're not - doing any echoing of input chars (readline_echoing_p == 0) - -Makefile.in - - tentative change to rule for parser-built: use $< instead of - `y.tab.h' in recipe - - 7/19 - ---- -support/config.{guess,sub} - - add code to handle all versions of Mac OS (e.g., Mac OS X) - - 7/26 - ---- -lib/readline/bind.c - - on cygwin32, treat \r\n as a line terminator when reading the - inputrc file - - 7/29 - ---- -lib/sh/netopen.c - - fixed problem in _getaddr with copying the address returned from - gethostbyname to the `struct in_addr *' argument -- hostnames - now work in /dev/(tcp|udp)/host/port - - 8/2 - --- -configure.in - - on Apple Rhapsody systems, set LOCAL_CFLAGS to -DRHAPSODY - -variables.h - - changes from Apple for building fat binaries on Rhapsody, - setting HOSTYPE, OSTYPE, VENDOR, and MACHTYPE - -lib/readline/terminal.c - - some work on the `dumb terminal' setup code in _rl_init_terminal_io - to make sure it's complete for use by the redisplay code and some - stuff in {readline,complete}.c - -lib/readline/display.c - - new function, _rl_current_display_line, returns the number of - lines down from the first `screen line' of the current readline - line the cursor is - -lib/readline/readline.c - - make rl_refresh_line call _rl_current_display_line - -lib/readline/rlprivate.h - - extern declaration for _rl_current_display_line - - 8/3 - --- -doc/bashref.texi - - reorganized slightly: - o a new shell builtins chapter - o a new shell variables chapter - o a new special builtins section - o bourne shell features chapter removed - o alias builtins moved to the bash builtins section - o bourne shell differences moved to appendix - o order of readline and history chapters swapped - o indices are now unnumbered appendices - o some text cleaned up and some explanatory text added - -lib/readline/terminal.c - - if a calling application is using a custom redisplay function, - don't call tgetent to get the terminal attributes, since those - are used only by the redisplay code. Still get the window - size, though - -lib/glob/fnmatch.c - - range comparisons in bracket expressions no longer use strcoll(3), - since in some locales (de, for example), [A-Z] matches all - characters - -parse.y, print_cmd.c - - some changes to make sure the shell compiles when - DPAREN_ARITHMETIC is not defined but ARITH_FOR_COMMAND is - - 8/5 - --- -redir.c - - in the here document code in do_redirection_internal, check - that the file descriptor returned by here_document_to_fd is not - the same as a file descriptor specified as the redirector - before closing it - - 8/6 - --- -parse.y - - make sure the pipline rule for `timespec BANG pipeline' sets the - CMD_INVERT_RETURN flag for the pipeline command - -builtins/wait.def - - use setjmp with a special jump buffer to take longjmps in the - case that a SIGINT is received while waiting for jobs or processes - it makes wait return with a status > 128, as POSIX.2 specifies - -{jobs,nojobs}.c - - changed wait_sigint_handler to longjmp to wait_intr_buf if it's - executing the wait builtin and SIGINT is trapped. It calls - trap_handler to make sure a pending trap for SIGINT is set also, - so the trap is taken when the wait builtin returns - - 8/9 - --- -jobs.c - - save and restore the value of errno in sigchld_handler - -trap.c - - save and restore the value of errno in trap_handler - - 8/10 - ---- -Makefile.in - - changed release status to beta1 - - 8/13 - ---- -include/posixtime.h - - new file to encapsulate the and mess - -Makefile.in - - add posixtime.h to list of include files in BASHINCFILES - - update dependencies for general.o, execute_cmd.o - -general.c, execute_cmd.c, builtins/times.def - - include posixtime.h instead of , - -general.c - - protect inclusion of with HAVE_SYS_TIMES_H check - -builtins/Makefile.in - - update dependencies for times.o - - 8/16 - ---- -lib/sh/timeval.c - - moved functions dealing with struct timevals here from general.c - and execute_cmd.c - -lib/sh/clock.c - - moved functions dealing with clock_ts here from general.c - (print_time_in_hz renamed to print_clock_t) - -externs.h - - moved extern declarations for timeval_to_secs and print_timeval - here from general.h - - moved extern declarations for clock_t_to_secs and print_clock_t - here from general.h - -builtins/times.def - - calls to print_time_in_hz changed to print_clock_t - -Makefile.in - - added references for lib/sh/timeval.c and lib/sh/clock.c - -lib/sh/Makefile.in - - clock.o and timeval.o are now included in libsh.a - - 8/23 - ---- -execute_cmd.c - - make sure last_command_exit_value is updated before running a - DEBUG trap in the cm_simple case of execute_command_internal - -lib/readline/display.c - - new function, static void redraw_prompt (char *), used to - redraw the last line of a multiline prompt that possibly - contains terminal escape sequences - - call redraw_prompt from _rl_redisplay_after_sigwinch - - 8/24 - ---- -lib/readline/bind.c - - new struct with names of string-valued readline variables and - handler functions to call when the variable is set - - changed rl_variable_bind to use functions to find boolean vars - and string vars in their respective lists - - new function, bool_to_int, to translate a boolean value that may - appear as an argument to `set ' to 1 or 0 - - new function, hack_special_boolean_var, called if the element in - the boolean_vars struct has the V_SPECIAL flag set, to provide - any necessary other action when a boolean variable is set - - new functions to be called when each string variable is set; - called by rl_variable_bind - -execute_cmd.c - - do_piping no longer sets pipes to O_TEXT mode if __CYGWIN32__ - is defined - - 8/25 - ---- -subst.c - - parameter_brace_patsub now mallocs a local copy of `patsub', because - if it starts with a `/' we increment it, and functions down the call - chain will free that on an error (and if we pass the incremented - value, will try to free unallocated memory) - - pos_params now short-circuits and returns a null string immediately - if start == end, meaning we want 0 positional parameters - - 8/26 - ---- -subst.c - - fixed pat_subst to correctly handle a null replacement string with - a null pattern string prefixed with `%' or `#' - - 9/3 - --- -variables.c - - don't import shell functions from the environment if the shell was - started with -n - - 9/8 - --- -subst.c - - if a command substitution is being performed inside a shell function, - catch `return' in command_substitute so that a return inside the - command substitution doesn't jump back to execute_function (or one - of its brethren) and go on with the command - -parse.y - - in history_delimiting_chars, if the first line is `for var' and - command_oriented_history is active, we don't want a semicolon if - the next token to be read is `in', but we do want one otherwise. - All we can do is check shell_input_line and see if the next chars - are `in' -- if so, we return " " - - 9/16 - ---- -builtins/hash.def - - don't allow `hash -p /pathname/with/slashes name' if the shell - is restricted - -doc/{bash.1,bashref.texi} - - updated description of restricted shell mode - -lib/readline/display.c - - fixed a bug in _rl_update_final which used the inv_lbreaks array - to index into visible_line - -jobs.c - - waitchld() need not go through the pain of setting up an environment - to execute traps on SIGCHLD if children_exited == 0 - - waitchld returns -1 if waitpid() returns -1 with errno == ECHILD, - indicating that there are no unwaited-for child processes, and it - has not yet reaped any dead children - - wait_for, wait_for_single_pid return -1 if waitchld() returns -1 - - new function, mark_all_jobs_as_dead - - wait_for_background_pids calls mark_all_jobs_as_dead if - wait_for_single_pid returns -1 with errno == ECHILD, since there are - no unwaited-for child processes - -subst.c - - tentative change: subshells started for command substitution no - longer unconditionally disable job control - - 9/17 - ---- -parse.y - - new function: save_token_state(). Saves the value of last_read_token - and the two previous tokens in an allocated array and returns the - array - - new function: restore_token_state(ts). TS is an array returned by - save_token_state. last_read_token and the two previous tokens are - set from the values in TS - -trap.c - - run_pending_traps calls save_token_state and restore_token_state - around the call to parse_and_execute, which will call the parser - and possibly leave it in a state where reserved words will not be - recognized (_run_trap_internal, too) - - 9/20 - ---- -support/bashbug.sh - - if sendmail is used as $RMAIL, pass `-i -t' as arguments so changes - made by the user to the recipient headers in the message are - honored - - 9/21 - ---- -bashhist.c - - if histverify has been set, make sure a `:p' modifier to a history - expansion prints the result - -builtins/echo.def - - new extern variable, xpg_echo, set to 1 if DEFAULT_ECHO_TO_USG is - defined and 0 otherwise - - echo_builtin now sets the initial value of do_v9 from xpg_echo - -builtins/shopt.def - - new shopt option, `xpg_echo', turns backslash escape expansion by - `echo' on and off at runtime - -builtins/{bash.1,bashref.texi} - - documented new `xpg_echo' shell option - -tests/{builtins.tests,builtins2.sub,shopt.tests} - - changes for new `xpg_echo' shell option - -configure.in - - changes for FreeBSD-3.x ELF to add `-rdynamic' to LOCAL_LDFLAGS. - This allows dynamic loading of builtins - -support/shobj-conf - - changes to handle FreeBSD-3.x elf or a.out object file formats - - 9/23 - ---- -[bash-2.04-beta1 released] - - 9/24 - ---- -jobs.c - - wait_for returns -1 only if the shell is currently executing the - `wait' builtin, since that's the only thing that cares - -execute_cmd.c - - moved cases of close_fd_bitmap to before calls to do_piping to - handle some pathological cases - - 9/29 - ---- -execute_cmd.c - - save the command line in execute_simple_command before making the - export environment, since maybe_make_export_env clobbers - the_printed_command if there are exported functions - - 9/30 - ---- -configure.in,config.h.in - - check explicitly for setvbuf; define HAVE_SETVBUF if found - -configure.in - - change opt_gnu_malloc to opt_bash_malloc, since the bash malloc - is not really the gnu malloc anymore - - new argument, --with-bash-malloc, identical to --with-gnu-malloc - - AC_DEFINE(USING_BASH_MALLOC) if opt_bash_malloc is enabled - -config.h.in - - new #define for USING_BASH_MALLOC - -doc/bashref.texi - - updated installation section to add --with-bash-malloc and - change description of --with-gnu-malloc - -lib/sh/setlinebuf.c - - change name of function to sh_setlinebuf, just returns 0 if - HAVE_SETVBUF and HAVE_SETLINEBUF are undefined - - prefer setvbuf to setlinebuf if we have both - - if we're using setvbuf, use a local buffer for stdin and stdout - local buffer is BUFSIZ unless we're using the bash malloc - (USING_BASH_MALLOC is defined), in which case it's 1008 (which - the bash malloc rounds up to 1024) - - 10/4 - ---- -input.c - - if USING_BASH_MALLOC is defined, set the max buffer size to 8176, - which the bash malloc rounds up to 8192 - - 10/5 - ---- -pcomplete.c - - new function, pcomp_filename_completion_function, a wrapper for - filename_completion_function that dequotes the filename first - -bashline.c - - changed bash_directory_completion_matches to dequote the filename - before passing it (indirectly) to filename_completion_function - -execute_cmd.c - - change execute_command to defer calling unlink_fifo_list until any - shell function has finished executing (variable_context == 0) - -configure.in - - added AC_CYGWIN, AC_MINGW32, AC_EXEEXT - - 10/8 - ---- -subst.c - - expand_word_internal(): changes some things to avoid small (2 or 3 - byte) calls to xmalloc -- added a label and some gotos (BEWARE) - - changed make_dev_fd_filename so it doesn't call sprintf anymore - - 10/27 - ----- -execute_cmd.c - - make execute_select_command handle the effects of the `continue' - builtin correctly - - 11/5 - ---- -Makefile.in - - RELSTATUS changed to `beta2' - - 11/8 - ---- -[bash-2.04-beta2 released] - - 11/9 - ---- -shell.c - - make run_startup_files check for ssh2 as well as ssh1 - - 11/19 - ----- -parse.y - - make sure parsing conditional commands isn't confused by unexpected - tokens (like `[[)]]') - -builtins/common.c - - fix get_job_spec to return NO_JOB for numeric job specs that are - beyond the size of the jobs table - -builtins/type.def - - change describe_command to report `not found' if a path search - returns the same string as the command name and the command name - does not match an executable file. This has implications for - `type' and `command -[vV]'. - - if a command is not found in $PATH, but an executable file with the - name supplied exists in the current directory, make the command - into a full pathname for the `command' builtin. This has - implications for `type' and `command -[vV]' - -subst.c - - new function, expand_prompt_string, expands prompt string and - returns the string passed if an error occurs - -subst.h - - extern declaration for expand_prompt_string - -parse.y - - decode_prompt_string calls expand_prompt_string instead of - expand_string_unsplit - - 11/22 - ----- -builtins/echo.def - - return EXECUTION_FAILURE if ferror(stdout) is true - - 11/23 - ----- -locale.c - - if LC_ALL is unset, call setlocale(LC_ALL, lc_all), because lc_all - holds the default locale - - 11/29 - ----- -lib/readline/shell.c - - define NULL as 0 if it's not defined - - change single_quote to allocate 4 characters in new string for - each character in the old one (like builtins/common.c:single_quote) - -locale.c - - when a locale variable (LC_*) is unset, pass "" to setlocale() - to get the default locale set, since value is NULL - -lib/sh/makepath.c - - new function, sh_makepath(char *path, char *dir, int flags) - -Makefile.in - - changed version to beta3 - -builtins/type.def - - changed describe_command to use sh_makepath() - -builtins/cd.def - - removed private declaration of mkpath(), changed to use sh_makepath - -general.c - - changed make_absolute to use sh_makepath - - changed full_pathname to use sh_makepath - -findcmd.c - - removed private definition of make_full_pathname, changed to use - sh_makepath - -doc/{bashref.texi,bash.1} - - added text to description of `getopts' to make it clear that getopts - may be used to parse option characters other than letters, and - that `:' and `?' may not be used as option characters - -eval.c - - when processing a jump_to_top_level(EXITPROG), make sure the shell - doesn't think it's still in a function by setting variable_context - to 0 - -doc/rbash.1 - - a skeletal man page for rbash, adapted from debian - -support/bashbug.sh - - try to find a default editor if EDITOR is unset, rather than blindly - using `emacs' - - 11/30 - ----- -support/config.{guess,sub} - - many changes from the latest `automake' distribution, from the - Debian folks - - 12/2 - ---- -lib/readline/keymaps.h, lib/tilde/tilde.h - - added support for C++ compilation (`extern "C" {...}') - - 12/3 - ---- -subst.c - - in process_substitute, make sure the child resets the O_NONBLOCK - flag on the file descriptor opened for read to a named pipe - -jobs.c - - new function, raw_job_exit_status, returns exit status of last job - in pipeline - - change job_exit_status to call raw_job_exit_status and pass the - result to process_exit_status - - in notify_of_job_status, get termination status from call to - raw_job_exit_status, rather than the first job in the pipeline - (fixes debian bug #15165) - -bashhist.c - - changed bash_history to not add shell comment lines to the history - file (fixes debian bug #21901). Uses new function shell_comment(L) - which returns 1 if L is a shell comment line. Doesn't handle - comments embedded in lines yet - -redir.c - - when running in POSIX.2 mode, bash no longer performs word splitting - on the expanded value of the word supplied as the filename argument - to a redirection operator (fixes debian bug #30460) - -doc/bashref.texi - - added new redirection stuff to POSIX Mode section (from previous fix) - - 12/6 - ---- -hashlib.h - - removed extra semicolon at end of HASH_ENTRIES define - -redir.c - - replaced toggling of disallow_filename_globbing flag with setting - flags in redirection word to include W_NOGLOB if the shell is in - POSIX mode and not interactive when expanding the filename argument - to a redirection - - 12/7 - ---- -builtins/common.c - - new function, backslash_quote_for_double_quotes(char *), quotes - characters special when in double quotes in the string passed as - an argument. - #ifdef PROMPT_STRING_DECODE; called by decode_prompt_string - -builtins/common.h - - extern declaration for backslash_quote_for_double_quotes - -parse.y - - call backslash_quote_for_double_quotes instead of backslash_quote - in decode_prompt_string - - 12/9 - ---- -parse.y - - before expanding the \u prompt string escape sequence, make sure - current_user.user_name is non-null and call get_current_user_info - if it is - - 12/10 - ----- -support/mkversion.sh - - changes to avoid relying on floating point output format, which - can be locale-specific - - 12/14 - ----- -print_cmd.c - - changes to named_function_string (for normal function printing) - and print_function_def (for printing function definitions embedded - in other commands) to print redirections that should be attached - to the function as a whole after the closing brace - -tests/func1.sub - - tests for printing functions with attached redirections, called by - func.tests - - 12/16 - ----- -lib/readline/complete.c - - if we're completing files in the root directory and executing the - visible-stats code, don't pass an empty pathname to - rl_directory_completion_hook, because, for bash, that will be - expanded to the current directory. Just pass `/' instead. - -lib/tilde/tilde.c - - fix to tilde_expand_word for Cygwin to avoid creating pathnames - beginning with `//' if $HOME == `/' - -variables.c - - don't bother with the exportstr validation on cygwin systems, - or even using exportstr at all, since that system has weird - environment variables - - 12/17 - ----- -configure.in - - new option, --enable-xpg-echo-default, new name for - --enable-usg-echo-default (which is still present for backwards - compatibility) - -configure.in, config.h.in, builtins/echo.def - - DEFAULT_ECHO_TO_USG -> DEFAULT_ECHO_TO_XPG - - 12/29 - ----- -aclocal.m4 - - changed a couple of tests to avoid creating files with known - names in /tmp - -support/rlvers.sh - - changed to create files in /tmp/rlvers - -support/mksignames.c - - now understands the POSIX.1b real-time signal names on systems - that support them - - 12/30 - ----- -[bash-2.04-beta3 released] - - 12/31 - ----- -redir.c - - try some more things to avoid race file replacements in - here_document_to_fd - -parse.y - - two new functions: - get_current_prompt_level: returns 2 if current prompt is $PS2, - 1 otherwise - set_current_prompt_level: sets current prompt to $PS2 if arg - is 2, $PS1 otherwise - -copy_cmd.c - - make sure to copy the `line' member in copy_arith_for_command - -pcomplete.c - - free up `lwords' and `line' after evaluating any command or shell - function in gen_compspec_completions - - after filtering any matches specified by cs->filterpat in - gen_compspec_completions, free ret->list (the members have - already been copied or freed by filter_stringlist) - -bashline.c - - free what find_cmd_name returns after calling the programmable - completion code - - 1/4/2000 - -------- -subst.c - - make call_expand_word_internal set w->word to NULL if either - expand_word_error or expand_word_fatal is returned - - 1/7 - --- -parse.y - - two new functions: set_current_prompt_level(int) and - get_current_prompt_level() to set and get the `level' of - current_prompt_string (1 if $PS1, 2 if $PS2) - -externs.h - - extern declarations for {get,set}_current_prompt_level - -builtins/evalstring.c - - add an unwind_protect to save and restore the current prompt - string pointers using {get,set}_current_prompt_level - - 1/9 - --- -Makefile.in - - changed release status to `beta4' - - 1/18 - ---- -[bash-2.04-beta4 released] - - 1/19 - ---- -configure.in - - moved checks for non-unix variants to beginning of tests - -Makefile.in, {builtins,support}/Makefile.in - - added some $(EXEEXT) suffixes to generated programs for non-Unix - systems - - 1/20 - ---- -parse.y - - make get_current_prompt_level return 1 if current_prompt_string is - NULL (as it would be while sourcing startup files) - -support/rlvers.sh - - rmdir $TDIR in the exit trap - - move the exit trap after we successfully create $TDIR - - 1/21 - ---- -subst.c - - several changes to split_at_delims to make non-whitespace - delimiters create separate fields containing those delimiters, - like the shell parser does with meta characters. This allows - redirection operators, for example, to be treated as separate - words by the programmable completion code - -examples/complete/complete-examples - - added new function: _redir_op, which return true if the word - passed as an argument contains a redirection operator (just - bare-bones for now) - - changed set completion function to use _redir_op as an example - -parse.y - - make parse_string_to_word_list save and restore the value of - shell_input_line_terminator, since an assignment like - COMPREPLY=() inside a shell function called by the programmable - completion code can change shell_input_line_terminator out from - underneath shell_getc(). shell_getc will set the input line - terminator to EOF when it gets EOF from the getter function, and - the string getter function returns EOF at EOS. parse_and_execute - tests for EOS directly and never gets EOF from shell_getc, so it - does not have this problem. - - 1/24 - ---- -lib/readline/funmap.c - - #define QSFUNC like in complete.c - - cast _rl_qsort_string_compare to a QSFUNC * in the call to qsort - -lib/readline/terminal.c - - correct a typo in usage of the __EMX__ preprocessor define - - fix a reversed usage of `#if defined (__DJGPP__)' in - _rl_control_keypad - - remove extern declarations for _rl_in_stream and _rl_out_stream - -lib/readline/rlprivate.h - - add extern declaration for _rl_in_stream, since there's already - one for _rl_out_stream - -builtins/ulimit.def - - if bash is using ulimit(2), make sure that getfilesize() returns - the value multiplied by 512 to convert it from a number of blocks - to a number of bytes - - 1/25 - ---- -execute_cmd.c - - make sure execute_command_internal sets last_command_exit_value - correctly when inverting the return value of a (...) subshell - command - -tests/{run-invert,invert.{tests,right}} - - new tests for return value inversion - -configure.in - - compile without bash malloc on m68k-motorola-sysv due to a file - descriptor leak in closedir(3) -- the motorola implementation - requires that freed memory be readable so it can free the dirent - and then look back at it to find the file descriptor - -expr.c - - fix negative exponents in v**e to return an eval error - - 2/1 - --- -Makefile.in - - changed status to beta5 - -jobs.c - - fixed a problem with checking the wrong process when checking to - see whether or not we need to reset the tty state. The old code - checked the first process in a pipeline; the new code checks all - processes in the pipeline to see whether any of them exited due - to a signal or was stopped. If none were signalled or stopped, - the code uses the exit status of the last process in the job's - pipeline - - 2/4 - --- -[bash-2.04-beta5 released] - -eval.c - - call set_current_prompt_level instead of setting prompt_string_pointer - directly - - 2/10 - ---- -[bash-2.04-beta5 re-released to net] - - 2/11 - ---- -sig.c - - make sure SIGCHLD is defined in initialize_shell_signals before - trying to use it in sigdelset() (DJGPP fix) - - 2/14 - ---- -lib/sh/shtty.c - - include before - - separate tests for ONLCR, ONOCR, ONLRET to cope with systems like - DJGPP that don't implement the full POSIX termios option set - -builtins/psize.sh - - set TMPDIR only if it's not already set - -lib/glob/glob.c - - if a system doesn't define _POSIX_SOURCE but has a `struct dirent' - without a d_ino member, define REAL_DIR_ENTRY to 1 so all entries - are read - -configure.in - - check for header file - -config.h.in - - add HAVE_ARPA_INET_H define - -lib/sh/inet_aton.c - - don't compile unless HAVE_NETWORK, HAVE_NETINET_IN_H, and - HAVE_ARPA_INET_H are all defined in config.h or config-bot.h - - 2/16 - ---- -subst.c - - if we have a construct like "${@:-}", we need to note that we're - not using whatever is in $@ (we're using the rhs), so the special - double-quoting $@ rules do not apply - - 2/21 - ---- -lib/readline/signals.c - - declare SigHandler before using it on non-POSIX systems - -lib/sh/{zread,zwrite}.c - - include unconditionally - -configure.in - - m68k-motorola-sysv should be m68k-sysv in the section that sets - opt_bash_malloc to no for certain systems - -builtins/complete.def - - fixed a typo (stoppped) when printing out completion actions - - 2/22 - ---- -lib/sh/netopen.c - - include if it's present - -aclocal.m4 - - new macro, BASH_FUNC_INET_ATON, checks for inet_aton(3) including - and , which some systems require to - resolve the function - -configure.in - - if autoconf can't fund inet_aton on its own, try BASH_FUNC_INET_ATON - -pcomplete.c - - fixed a memory leak in gen_wordlist_completions - - changed gen_wordlist_completions to do prefix-matching against the - word being completed - -doc/bash.1, lib/readline/doc/rluser.texinfo - - documented the change in behavior of the -W option to complete and - compgen - -builtins/umask.def - - if parse_symbolic_mode() returns -1, symbolic_umask needs to return - -1 as well, otherwise the umask will be changed inappropriately - -input.c - - always compile in getc_with_restart and ungetc_with_restart - -parse.y - - yy_stream_get and yy_stream_unget now call getc_with_restart and - ungetc_with_restart, respectively, to avoid problems with some - systems not restarting the read(2) when signals that bash handles - are received during the read (since bash installs its signal - handlers without the SA_RESTART flag) - -lib/readline/complete.c - - don't default rl_completion_case_fold to 1 if __DJGPP__ is defined - - 2/25 - ---- -subst.c - - renamed `varlist' to `subst_assign_varlist' and made it global - -jobs.c - - when running a SIGCHLD trap, need to unwind-protect - subst_assign_varlist and set it to NULL before running the trap - command (fix from ericw@bestnet.org and doogie@debian.org) - - 2/28 - ---- -lib/readline/doc/rltech.texinfo - - document rl_funmap_names() - - 2/29 - ---- -subst.c - - change split_at_delims to set the current word more appropriately - when the cursor is between two words. Should probably change this - again to set the current word like this only when the cursor is at - whitespace or another delim just before the word start - - 3/1 - --- -lib/sh/shtty.c - - more checks for flag bits being defined before using them - - 3/7 - --- -variables.h - - fix typo in COPY_EXPORTSTR definition - - 3/14 - ---- -subst.c - - changed split_at_delims so that if the cursor is at whitespace - between words, and we're interested in the current word (cwp != NULL), - make a new empty word and set the cwp to that word - -locale.c - - support for setting LC_NUMERIC locale category based on value of - LC_NUMERIC shell variable - -variables.c - - LC_NUMERIC is now treated specially - -doc/{bash.1,bashref.texi} - - LC_NUMERIC updates - - 3/15 - ---- -pcomplete.c - - fix to avoid freeing memory twice - - 3/17 - ---- -[bash-2.04 released] - - 3/20 - ---- -doc/bash.1 - - minor typo fix to description of `xpg_echo' option in `echo' - description - - 3/23 - ---- -parse.y - - minor fix to parse_string_to_word_list to allow newlines in - compound array assignments - - 3/27 - ---- -lib/readline/rltty.c - - fixed a missing-semicolon syntax error in the old 4.3 BSD tty code - -support/mksignames.c - - if SIGRTMAX is >= 2*NSIG, just #undef SIGRTMIN and SIGRTMAX. This - is an issue on AIX 4.3 (only, so far) -- checked by configure, which - #defines UNUSABLE_RT_SIGNALS if this is the case - -aclocal.m4 - - new macro, BASH_CHECK_RTSIGS, checks whether or not real-time - signals are defined with large values and defines UNUSABLE_RT_SIGNALS - if they are - -config.h.in - - place marker for UNDEF_RT_SIGNALS (initially undefined) - -configure.in - - call BASH_CHECK_RTSIGS in the `bash miscellaneous' section - - 3/29 - ---- - -subst.c - - fixed a problem in match_pattern_char, where `string' was checked - for a paren following a [?+!@], rather than `pat' - - the code that checks whether or not to exit after a failed - ${word?msg} substitution needs to check interactive_shell rather - than interactive to avoid exiting if such a construct appears in - a sourced file - - 3/31 - ---- - -bashline.c - - add `{' to the list of characters that need to be quoted by the - completion code when appearing in a filename - - 4/1 - --- -lib/glob/fnmatch.c - - fixed an error in brackmatch() while skipping the rest of a bracket - expression after a character matched. When `c' was a backslash and - *p was a backslash, as in a pattern like [/\\], the old code didn't - take both backslashes into account and ended up skipping the `]' - after erroneously concluding that it was quoted. Report and fix - from akim@epita.fr - - 4/3 - --- -lib/readline/rltty.c - - slight change to the BSD tty interface code, so that if the first - ioctl fails, get_tty_settings returns -1 immediately - - better checking of ioctl return values in BSD tty version of - get_tty_settings - - 4/5 - --- -doc/{bash.1,bashref.texi} - - documented use of LINES and COLUMNS variables - - 4/12 - ---- -lib/readline/rltty.c - - change the SETATTR define for the termio tty driver to use - TCSETAW (the analog of the termios TCSADRAIN) - -lib/glob/fnmatch.c - - fix for posix-style bracket expressions ([:xxx:], [=x=]) broken - by fix of 4/1 for quotes in bracket expressions - - 4/26 - ---- -subst.c - - fix to list_string and get_word_from_string to make a non-whitespace - IFS character preceded by IFS whitespace part of the current field - delimiter, not a separate delimiter that would result in a separate - null field when splitting. cf POSIX.2, 3.6.5, (3)(b). Bug reported - by amc@cs.berkeley.edu - - changed the behavior of the (currently undocumented) ${!prefix@} - expansion to be analogous to the expansion of $@ in other contexts - when double-quoted. ksh93 seems to do this. Bug reported by - Ken Pizzini - - changed read_comsub to ignore NUL bytes in the command substitution - output, printing a warning message for now - -parse.y - - changed shell_getc to ignore NUL bytes in the input, printing a - warning message for now - - changed read_a_line to print a warning when a NUL byte is encountered, - like shell_getc does - - 5/18 - ---- -subst.c - - make sure split_at_delims uses d2 only if it's non-null - - make split_at_delims skip leading newlines in the string to split, - if newline is a delimiter - -jobs.c - - prevent hanging processes by marking a child process as not running - (even if the shell thinks it is) when waitpid() returns -1/ECHILD -- - this indicates that waitpid never returned a reasonable status - for that child though, which may be a symptom of another problem - -builtins/cd.def - - make `pwd' print an error message if the write fails when displaying - the current directory - -lib/readline/histexpand.c - - return NULL from history_find_word if history_tokenize_internal - returns (char **)NULL rather than attempting to dereference a - possibly-NULL pointer - - change history_tokenize_internal to set *indp to -1 before any - processing if indp is non-null - - 5/19 - ---- -builtins/trap.def - - when in POSIX.2 mode and printing trap dispositions, print the - signal name without the leading `SIG', as POSIX.2 requires - - 5/23 - ---- -lib/readline/readline.c - - readline_initialize_everything now assigns $TERM to rl_terminal_name - if the application has left it unset, and calls _rl_init_terminal_io - with the resultant value - -lib/readline/doc/rltech.texinfo - - updated the description of rl_terminal_name to note initialization - -parse.y - - change parse_string_to_word_list to save and restore the value of - current_command_line_count before calling back into the parser -- - it will screw up history if the string extends over one line. Bug - reported by Jan.Djarv@mbox200.swipnet.se - - 6/7 - --- -unwind_prot.h - - change unwind_protect_string to pass the address of the variable to - unwind_protect_var on machines where ints and char *s are not the - same size - -unwind_prot.c - - make sure we save the value of a variable in unwind_protect_var on - machines where sizeof(char *) != sizeof(int), not the contents the - value points to. Fix from Andreas Schwab - - 6/8 - --- -configure.in - - auto-configure MacOS X without bash malloc (like Rhapsody) - - 6/12 - ---- -configure.in - - replace `cygwin32' with `cygwin' - -builtins/evalfile.c - - in _evalfile, change all instances of \r to \n in the file to be - sourced and evaluated if __CYGWIN__ is defined - -input.c - - change \r to \n in the buffer argument to make_buffered_stream and - after calling zread() from b_fill_buffer if __CYGWIN__ is defined - - 6/29 - ---- -lib/sh/Makefile.in - - add rest of dependency rules for makepath.o - - 7/3 - --- -jobs.c - - changed `int' to `WAIT' in a couple of places for non-POSIX - environments - - 7/5 - --- -locale.c - - try to avoid an unnecessary memory allocation in localetrans() in - the case that a translation for the string exists - -lib/readline/doc/rluserman.texinfo - - change the `direntry' information to make it use rluserman instead - of readline - - 7/6 - --- -execute_cmd.c - - changes to execute_in_subshell so it honors a `!' prefixing a command - inside a user subshell (...) - -support/config.{guess,sub} - - add cases for Apple Darwin (Mac OS X) - -configure.in - - Apple Darwin (MacOS X) uses its own malloc - -lib/readline/readline.h - - removed bogus extern declaration of savestring - - 7/7 - --- -builtins/common.c - - in get_working_directory, don't count on getcwd returning anything - useful in the buffer passed as the first argument on failure; just - use bash_getcwd_errstr in the error message - -examples/loadables/cut.c - - loadable version of cut(1), from the FreeBSD source tree - - 7/18 - ---- -lib/readline/vi_mode.c - - changed two instances of (*rl_getc_function) (rl_instream) to calls - to rl_read_key(), which works better when using the readline - callback interface - -builtins/evalfile.c - - added FEVAL_CHECKBINARY flag for _evalfile; controls whether a check - for a binary file is performed - - FEVAL_CHECKBINARY is not set by source_file or maybe_execute_file, - which means that the startup file execution and the `.' builtin will - not check for binary files - - FEVAL_CHECKBINARY is not set by fc_execute_file, so that files - composed of history commands run by the `fc' builtin will not check - for binary files - - 7/21 - ---- -shell.c - - added `--init-file' as a synonym for `--rcfile' - - 7/26 - ---- -support/shobj-conf - - added commented-out stanzas for hpux 10 and hpux 11 when the HP - unbundled ANSI C compiler is being used - - 7/27 - ---- -shell.c - - don't call end_job_control() from exit_shell if subshell_environment - is non-zero, even if the shell is interactive - - 8/1 - --- -bashhist.c - - change maybe_add_history to remember if we saved the first line of - a command and don't save the second and subsequent lines of a - multi-line command if we didn't save the first line - -configure.in, config.h.in - - add autoconf check for getservbyname() - -lib/sh/netopen.c - - add support for named services in /dev/(tcp|udp)/host/service - translation - - make sure _netopen sets errno to something other than 0 if something - goes wrong, so the redirection functions behave - - 8/3 - --- -parse.y - - changes to shell_getc so that history saving of blank lines in - multi-line commands does a better job of syntactic correctness - -bashline.c - - bind ^O to operate-and-get-next in emacs_standard_keymap explicitly, - rather than letting rl_add_defun do it in whatever keymap is current - - 8/4 - --- -builtins/ulimit.def - - removed some of the special handling of RLIM_INFINITY -- the old - code would let people use RLIM_INFINITY as a shorthand for setting - the soft limit to the hard limit. Now, the code just passes - RLIM_INFINITY through if the hard limit is being set, so any kernel - errors will get through - - 8/10 - ---- -parse.y - - change the grammar rule for group_command so that it's composed of - a compound_list instead of a list, which requires a terminator - This means that you can now do (legal) things like - - { { echo a b c ; } } - - since the second close brace will be recognized as such because a - reserved word is legal in that context - - 8/23 - ---- -subst.c - - fix parameter_brace_substring to free all memory allocated by - get_var_and_type in the VT_ARRAYMEMBER case (returned parameter - `val') - - 8/30 - ---- -variables.c - - now that we have dynamic array variables, remove the check for - array_p in bind_variable and let array variables with assignment - functions call the assignment function - -subst.c - - change cond_expand_word to perform tilde expansion (like it should - have done all along) - -lib/readline/complete.c - - don't allow backslash to quote anything inside a single-quoted - string in find_completion_word - -doc/{bash.1,bashref.texi} - - note that `set -a' will cause functions to be exported - -lib/readline/parens.c - - changed the blink timeout so it's settable by the application. A - new function, int rl_set_paren_blink_timeout (int u), (still - undocumented) will set the timeout to U usec - -variables.c - - at startup of an interactive login shell, if the current directory - is $HOME, and $HOME and $PWD are not the same, set the current - directory (and $PWD) to $HOME - - break code that initializes $PWD and $OLDPWD into set_pwd function - -variables.h - - new extern declaration for set_pwd() - - 9/6 - --- -lib/readline/{readline,callback}.c - - allocate memory for rl_prompt instead of simply using what's passed - as the `prompt' argument to readline() or - rl_callback_handler_install(). This will allow constant strings to - be passed to readline(), since the prompt processing code wants to - write to rl_prompt - -lib/sh/pathcanon.c - - new file, does pathname canonicalization - -externs.h - - extern declarations for stuff in lib/sh/pathcanon.c - -general.c - - canonicalize_pathname now simply calls sh_canonpath() - - 9/7 - --- -pcomplete.h - - new member in a `struct compspec': options - - define some flag values for options field - -pcomplib.c - - make sure options field is allocated and copied by compspec utility - functions - -builtins/complete.def - - add struct for completion options. These control the `meta-behavior' - of the compspec. Initially, there are three: - - default - perform bash default completion if programmable - completion produces no matches - dirnames - perform directory name completion if programmable - completion produces no matches - filenames - tell readline that the compspec produces filenames, - so it can do things like append slashes to - directory names and suppress trailing spaces - - - add `-o option' to complete and compgen, setting new options field - in a compspec - - add code to display any -o options when a compspect is printed - with the `-p' option to complete - -pcomplete.c - - programmable_completions now passes back to the caller in the last - argument any options associated with the active compspec (from the - options field) - - change gen_compspec_completions to re-call gen_action_completions - with a CA_DIRECTORY action if the rest of the compspec actions - generate no matches and the COPT_DIRNAMES option is present - -bashline.c - - if a programmable completion was specified to return filenames with - the `-o filenames' option, set rl_filename_completion_desired to 1 - so readline does its special filename-specific things - - if a compspec was defined to fall back to the readline default with - the `-o default' option, suppress setting the - rl_attempted_completion_over variable in attempt_shell_completion - so readline will go on and do filename completion - -include/ansi_stdlib.h - - add extern declarations for atof and strtod - -builtins/printf.def - - change getdouble() to use strtod (since we provide a version in - libsh if the C library doesn't have one), and change the calling - convention to match the other getXXX functions (take value pointer - as argument, return success or failure). This makes printf handle - invalid floating point numbers better - -doc/bash.1, lib/readline/doc/rluser.texinfo - - documented new `-o' option to complete and compgen; described the - arguments and their effects - -lib/readline/{macro,util}.c - - renamed _rl_executing_macro to rl_executing_macro; made it public - -lib/readline/readline.h - - new extern declaration for rl_executing_macro - -lib/readline/rltech.texinfo - - documented rl_executing_macro - - 8/8 - --- -lib/readline/readline.c - - new state variable, rl_readline_state - -lib/readline/readline.h - - extern declaration for rl_readline_state - - define some flag bits for rl_readline_state and macros to test and - set them - -lib/readline/{readline,complete,isearch,macro,rltty,search,signals,undo,vi_mode}.c - - added calls to the macros that set and unset various readline states - -lib/readline/readline.c - - new private function, _rl_free_saved_history_line, to free up the - history entry saved in saved_line_for_history - -lib/readline/search.c - - free any saved history entry in rl_history_search_reinit(), because - rl_get_previous_history makes a call to maybe_save_line without - freeing up the saved line when it returns (so rl_get_next_history - can use it) - - fix up noninc_search_from_pos to deal with invalid history indices - better - - 9/12 - ---- -support/shobj-conf - - HPUX 11.0 needs the `-fpic' flag passed to the linker as well as - the compiler - -execute_cmd.c - - on MS-DOS systems, let the #! checking stuff in execute_shell_script - treat \r as EOL (identical to \n) - -input.c - - on DJGPP systems, allow buffered_getchar to ignore \r. Change - suggested by snowball3@bigfoot.com - - 9/13 - ---- -lib/sh/tmpfile.c - - new file, with functions for creating and (hopefully safely) opening - temporary files for the shell - -externs.h - - extern declarations for functions in tmpfile.c - -variables.c - - new function, get_random_number, returns random values from the - shell's (lame) RNG to the rest of the shell - -variables.h - - new extern declaration for get_random_number() - -subst.c - - changed make_named_pipe to call sh_mktmpname instead of mktemp - -redir.c - - changed here_document_to_fd to call sh_mktmpfd instead of using - inline code - -builtins/fc.def - - changed fc_builtin to call sh_mktmpfp instead of using inline code - -builtins/common.h - - new extern declaration for fc_execute_file() - -bashline.c - - if RL_ISSTATE(RL_STATE_INITIALIZED) is 0 in initialize_readline, - call rl_initialize to bind the defaults before setting up our - custom shell functions and key bindings - -lib/readline/doc/{rluser,hsuser}.texinfo - - some markup changes proposed by dima@chg.ru - -lib/readline/rlstdc.h, lib/tilde/tilde.h - - to get ready for some `const' changes to the source, define const - as either `__const' (gcc -traditional) or nothing if __STDC__ and - __cplusplus are not defined - -lib/readline/readline.c - - upped the default readline version to `4.2-alpha' - -lib/readline/readline.[ch] - - readline now takes a `const char *' as an argument - -lib/readline/history.h - - read_history(), read_history_range(), write_history(), - append_history(), history_truncate_file() now take `const char *' - filename arguments - -lib/readline/histfile.c - - history_filename(), read_history(), read_history_range(), - write_history(), append_history(), history_truncate_file(), - history_do_write() now take `const char *' filename arguments - -lib/readline/readline.h - - rl_read_init_file() now takes a `const char *' filename argument - -lib/readline/bind.c - - current_readline_init_file is now a `const char *' - - _rl_read_init_file(), rl_read_init_file() now take `const char *' - filename arguments - -lib/tilde/tilde.c - - tilde_expand(), tilde_expand_word() now take a `const char *' - as their first argument - -lib/readline/chardefs.h - - fixed CTRL_CHAR macro to be right on systems where chars are unsigned - by default - - 9/14 - ---- -lib/readline/doc/{rl,hs}tech.texinfo - - documented new `const char *' function arguments where appropriate - -lib/readline/vi_mode.c - - clamp the numeric argument in vi mode at 999999, just like in emacs - mode - -lib/readline/doc/rltech.texinfo - - documented rl_readline_state and its possible bit values - -builtins/source.def - - in maybe_pop_dollar_vars, don't overwrite a shell function's - argument list even if the sourced script changes the positional - parameters - -lib/readline/{util.c,rlprivate.h} - - made _rl_strindex() and _rl_savestring() take `const char *' - arguments - - 9/15 - ---- -subst.c - - renamed `doing_completion' to `no_longjmp_on_fatal_error', a more - accurate description of its current behavior - -pcomplete.[ch], externs.h, lib/sh/stringlist.c - - moved the stringlist code from pcomplete.c to lib/sh/stringlist.c - - moved the type declaration and extern function declarations from - pcomplete.h to externs.h - -stringlib.c, externs.h, lib/sh/stringvec.c - - moved the char array code from stringlib.c to lib/sh/stringvec.c - - 9/18 - ---- -subst.c - - new static variable, expand_no_split_dollar_star, to ensure that - $* isn't `split and rejoined' when expanded via a call to - expand_string_unsplit or expand_word_no_split - - 9/19 - ---- -subst.[ch], execute_cmd.c - - renamed expand_word_no_split to expand_word_unsplit - -copy_cmd.c - - in copy_word, just assign w->flags to new_word->flags rather than - bcopying the entire structure - -configure.in, config.h.in - - add autoconf check for pathconf(3) - -lib/sh/tmpfile.c - - test for systems with short filenames using pathconf and - _PC_NAME_MAX, so generated temp file names don't exceed that length - (only do this if the file name length is less than 32, since the - current code doesn't generate filenames longer than about 17 chars) - - 9/20 - ---- -command.h - - added `W_NOSPLIT2' word flag to prepare for supporting weird $@ - expansion on the rhs of assignment statements (inspecting the ksh93 - behavior, it seems like nothing except $@ is split, and $@ is split - on $IFS and rejoined as a single string) - - 9/21 - ---- -subst.c - - since verify_substring_values looks for arithmetic expressions - bounded by `:', do some ad-hoc parsing of the substring passed as - the argument to avoid cutting the expression off at the wrong `:' - (since the inclusion of conditional expressions, expressions may - contain a `:'). Do some paren balancing, too. - - 9/22 - ---- -command.h - - new #define, CLOBBERING_REDIRECT, evaluates to true for any redirect - that will clobber a file and should be subject to `noclobber' - -redir.c - - changed redir_open to use CLOBBERING_REDIRECT instead of - OUTPUT_REDIRECT. This means that <> no longer tests the value of - noclobber, as POSIX.2 specifies - -parse.y - - made a change to cond_term so that expressions like [[ (x) ]] are - parsed correctly - - 9/25 - ---- -parse.y - - small change to grammar for arith_for_command and special_case_tokens - to allow `do...done' or {...} after ((...)) without an intervening - list_terminator (for ksh93 compatibility) - -builtins/printf.def - - `printf' now treats \E and \e the same when performing backslash - escape expansion for the %b format character for compatibility with - $'...' quoting (for ksh93 compatibility) - - 9/26 - ---- -builtins/source.def - - new variable, source_searches_cwd, initially 1. If non-zero, `.' - searches $PWD for the filename argument if it's not found in $PATH - -general.c - - changed posix_initialize to turn off source_searches_cwd if posix - mode is being enabled; turn it on if posix mode is being disabled - - changed things so interactive_comments is not turned off if posix - mode is disabled, since that's rarely what is desired - -variables.c - - changed uidset() to set UID and EUID only if they are not already - set when the shell starts up - - changed things to HOSTNAME is set only if it's not set when the - shell starts up - -execute_cmd.c - - changed execute_builtin_or_function so that if a command like - `command exec 4 as appropriate - -lib/readline/{display.c,readline.h} - - rl_redisplay_func is now of type rl_voidfunc_t * - -lib/readline/{callbacks.c,readline.h} - - the `linefunc' argument to rl_callback_handler_install and the - rl_linefunc variable are now of type rl_vcpfunc_t * - -lib/readline/{complete.c,readline.h} - - rl_completion_display_matches_hook is now of type - rl_compdisplay_func_t * - - rl_directory_completion_hook is now of type rl_icppfunc_t * - -lib/readline/{history.h,histexpand.c} - - history_inhibit_expansion_function is now of type - rl_linebuf_func_t * - -lib/readline/histexpand.c - - new private type, _hist_search_func_t, used to indirect through - the various history search functions - -lib/tilde/tilde.h - - new typedef, tilde_hook_func_t, which takes a char * and returns - a char * - -lib/tilde/tilde.[ch] - - tilde_expansion_preexpansion_hook and tilde_expansion_failure_hook - are now of type tilde_hook_func_t * - -[THERE ARE NO LONGER ANY REFERENCES TO Function *, CPFunction *, or -CPPFunction * IN THE READLINE SOURCE, WHICH INCLUDES THE TILDE LIBRARY] - -{bashline,bracecomp}.c, bashline.h - - changes for changed type of rl_completion_entry_func and other - changed types (rl_compentry_func_t, rl_completion_func_t, - const changes for prototypes, etc.) - -pathexp.[ch] - - shell_glob_filename now takes a `const char *' argument - - quote_string_for_globbing now takes a `const char *' argument - - 10/31 - ----- -lib/sh/zwrite.c - - fix zwrite() to update the buffer pointer in the case of a - partial write, in addition to decreasing the count of bytes to - be written - -support/config.{guess,sub} - - added entries for MIPS-based Compaq machines running NonStopUX - - 11/1 - ---- -lib/readline/undo.c - - renamed free_undo_list to be rl_free_undo_list, made a dummy - replacement function free_undo_list that just calls - rl_free_undo_list - -lib/readline/readline.h - - extern declaration for rl_free_undo_list - -lib/readline/{readline,signals}.c - - changed calls to free_undo_list to rl_free_undo_list - -lib/readline/doc/rltech.texinfo - - changed all function types and arguments for new typedefs - - 11/2 - ---- -lib/readline/{rlprivate.h,terminal.c,display.c} - - term_clreol, term_clrpag, term_cr, term_backspace, term_goto, - term_pc, term_im, term_ei, term_ic, term_ip, term_IC, term_dc, - term_DC, term_forward_char, term_up, term_mm, term_mo, term_ku, - term_kd, term_kr, term_kl, term_ks, term_ke, term_kh, term_kH, - terminal_can_insert variables all now have a _rl_ prefix - -lib/readline/{rlprivate.h,terminal.c,display.c, readline.c} - - screenheight, screenwidth, screenchars now have an _rl_ prefix - -lib/readline/{terminal,complete,isearch,kill,macro,readline,search,undo,util,vi_mode}.c - - changed calls to ding to calls to rl_ding - -lib/readine/{isearch,readline,search}.c - - saved_line_for_history now has an _rl_ prefix - -lib/readline/readline.[ch] - - renamed maybe_{replace,save,unsave} line to have an rl_ prefix - -lib/readline/{readline,search,isearch}.c - - changed calls to maybe_{replace,save,unsave} line to call the - rl_-prefixed equivalents - -lib/readline/{rlprivate.h,readline.c,util.c} - - renamed alphabetic to rl_alphabetic; changed calls - -lib/readline/{bind.c,funmap.c,rlprivate.h} - - possible_control_prefixes -> _rl_possible_control_prefixes - - possible_meta_prefixes -> _rl_possible_meta_prefixes - -lib/readline/compat.c - - new file for entry points for backwards compatibility functions - - moved free_undo_list here from undo.c - - maybe_{replace,save,unsave}_line function that call their rl_ - counterparts - - moved ding() here; it just calls rl_ding() - - moved alphabetic here; it just calls _rl_alphabetic() - -lib/readline/Makefile.in - - make sure compat.o is built and linked appropriately - -bashline.c,pcomplete.c - - changed calls to ding() to call rl_ding() - -support/shobj-conf - - changed linux stanza SHLIB_XLDFLAGS to make the `soname' in a - shared library have only the major version number, rather than - major and minor numbers - - made analogous changes for bsd/os-4 - - changed freebsd 3.x stanza to match `freebsdelf[3-9]*' for - FreeBSD elf systems and `freebsdaout[3-9]*' for FreeBSD - a.out systems (are there any?) - -lib/readline/doc/{rluser,hsuser}.texinfo - - changed uses of @samp to @option where appropriate - -doc/bashref.texi - - changed uses of @samp to @option where appropriate - - 11/3 - ---- -lib/readline/{readline.h,complete.c,compat.c} - - completion_matches, username_completion_function, - filename_completion_function all have an rl_ prefix - -{bashline,bracecomp,pcomplete}.c - - changed calls to completion_matches, username_completion_function, - and filename_completion_function - -lib/sh/shquote.c - - single_quote, double_quote, un_double_quote, backslash_quote, - backslash_quote_for_double_quotes, contains_shell_metas all now - have an sh_ prefix - -externs.h - - changed extern declarations for functions from shquote.c - -{array,bashline,pcomplete,print_cmd,variables}.c, parse.y -builtins/{alias,complete,trap,type}.def - - changed callers of single_quote - -{array,bashline}.c, builtins/setattr.def - - changed callers of double_quote - -{bashline,bracecomp}.c, parse.y, builtins/printf.def - - changed callers of backslash_quote - -parse.y - - changed callers of backslash_quote_for_double_quotes - -{print_cmd,variables}.c - - changed callers of contains_shell_metas - -lib/readline/{rlshell.h,shell.c,histexpand.c} - - single_quote -> sh_single_quote - -lib/readline/{rlshell.h,shell.c,input.c} -general.[ch],shell.c,subst.c - - unset_nodelay_mode -> sh_unset_nodelay_mode - -lib/readline/{rlshell.h,shell.c}, lib/tilde/tilde.c, variables.c - - get_home_dir -> sh_get_home_dir - -lib/readline/rlshell.h,lib/readline/bind,histfile,nls,readline,shell,terminal}.c, lib/tilde/tilde.c, variables.c - - get_env_value -> sh_get_env_value - -lib/readline/rlshell.h,lib/readline/{shell,terminal}.c -variables.h,{jobs,nojobs,variables}.c - - set_lines_and_columns -> sh_set_lines_and_columns - - 11/6 - ---- -configure.in - - bash can only link with an already-installed readline library whose - version is 4.2 or greater - -variables.h - - new variable attribiute, noassign, with its accompanying test macro, - noassign_p. Completely internal, not user-settable - -execute_cmd.c - - treat noassign variables like readonly variables, except an attempt - to assign to them does not cause a non-interactive shell in POSIX - mode to abort - -{subst,variables}.c,builtins/declare.def - - attempts to assign to `noassign' variables return an error status, - but no error messages -- almost identical to readonly variables - -variables.c - - GROUPS and FUNCNAME are `noassign' variables, meaning assignment to - them is disallowed, but that they may be unset (in which case they - lose their special properties) - -doc/{bash.1,bashref.texi} - - documented that assignments to GROUPS and FUNCNAME are disallowed - and return an error status - - 11/8 - ---- -lib/readline/{funmap.c,bind.c,rlprivate.h} - - _rl_possible_{control,meta}_prefixes are now arrays of `const char *' - and are defined in bind.c, since that's where they're used - -lib/readline/rltty.c - - changed prepare_terminal_settings to take an `oldtio' argument - instead of `otio', which shadows the global declaration - -lib/readline/bind.c - - the `name' member of a parser_directive element is now a - `const char *' - - the `name' member of a boolean_varlist element is now a - `const char *' - - the `name' member of a string_varlist element is now a - `const char *' - - the `name' member of an assoc_list element is now a - `const char *' - - the `name' member of an keymap_names element is now a - `const char *' - -lib/readline/display.c - - changed scope-local char * variable `temp' to `vtemp' because - there's already a function local variable named `temp' of a - different type (int) in rl_redisplay - -lib/readline/util.c - - pathname_alphabetic_chars is now `const char *' - -lib/readline/terminal.c - - the `tc_var' member of a _tc_string element is now a - `const char *' - -lib/readline/histexpand.c - - changed history_expand_internal to remove the duplicate local - declaration of `t' in the `s'/`&' case - -lib/readline/histfile.c - - in history_filename, `home' is now a `const char *' - -lib/tilde/tilde.c - - default_prefixes and default_suffixes are now arrays of - `const char *' - -lib/readline/vi_mode.c - - vi_motion and vi_texmod are now `const char *' - -lib/readline/complete.c - - simplified the conditional declaration of getpwent() - -variables.[ch] - - get_string_value now takes a `const char *' argument - - 11/10 - ----- -display.c - - changes to expand_prompt and rl_redisplay to keep track of the number - of invisible characters on the first line of the prompt, in case it - takes up more than one physical line, and not all invisible chars are - on the first line - - the code that determines the index into the line at which to wrap the - first line if the visible prompt length exceeds the screen width was - changed to use the number of invisible chars in the first physical - prompt line rather than the total number of invisible characters - - changed redraw_prompt to save and restore prompt_invis_chars_first_line - -subst.c - - changed expand_string_internal to savestring() the string argument - to avoid possible doubly-freed memory on substitution errors - - fixed expand_word_list_internal so that commands with assignment - statements preceding words that expand to nothing return a failure - status if one of the assignments fails; for example - - readonly TVAR - TVAR=7 $ECHO $ABCDE - - made sure that all cases of jump_to_top_level set - last_command_exit_value to something non-zero before jumping, since - they are by definition errors - -builtins/evalstring.c - - changed parse_and_execute to set last_result to EXECUTION_FAILURE - along with last_command_exit_value in the `DISPOSE' case of a - jump_to_top_level, since we can return this value in most - (interactive) circumstances - - 11/14 - ----- -general.c - - fix legal_number so that it skips any trailing whitespace in its - string argument after strtol returns, since strtol does not - -lib/readline/{complete.c,readline.h} - - new function pointer, rl_directory_rewrite_hook, identical in effect - to rl_directory_completion_hook except that it does not modify what - is displayed when the possible completions are listed or inserted - -bashline.c - - changed tcsh_magic_space to try and insert a space closer to where - the point was originally, rather than always inserting it at the - end of the line - - 11/16 - ----- -jobs.c - - fixed a bug that happened on cygwin systems that caused the jobs - table to fill up if a file sourced from an interactive shell ran - lots of jobs -- notify_and_cleanup() never called notify_of_job_status - -subst.c - - fixed pat_match to avoid infinite recursion on zero-length matches - from match_pattern - - 11/17/2000 - ---------- -[bash-2.05-alpha1 released] - - 11/18 - ----- -support/shobj-conf - - added GNU Hurd support, identical to linux - -variables.c - - cygwin systems don't use the exportstr stuff at all, so call - INVALIDATE_EXPORTSTR before testing var->exportstr, since just - blindly using the value_cell will break exported functions that - already have an exportstr set - - when recomputing the exported value because valid_exportstr fails, - make sure to call named_function_string if the variable is a shell - function - - 11/20 - ----- -variables.c - - removed call to valid_exportstr; the exportstr code has been - adequately debugged - -lib/glob/fnmatch.c - - reverted to the POSIX.2 behavior of using the current locale and - strcoll() to evaluate range expressions in bracket expressions - -doc/{bash.1,bashref.texi} - - added note to Pattern Matching section emphasizing that the current - locale plays a part in evaluating range expressions within [...] - -aclocal.m4 - - added an #include to the test for posix sigaction - restarting interrupted system calls - -support/config.guess - - changes from Tim Mooney to support `letter version' releases of - Tru 64 Unix on the Alpha (e.g., 5.1a) - - 11/21 - ----- -lib/sh/pathphys.c - - make sure MAXSYMLINKS is defined - -aclocal.m4 - - changed BASH_CHECK_PWFUNCS to just use AC_EGREP_CPP on a file - that includes pwd.h and other header files, checking for getpwuid. - It #defines HAVE_GETPW_DECLS if the egrep succeeds - -lib/readline/complete.c - - provide extern declaration of getpwent if _POSIX_SOURCE is defined, - since most systems don't declare it in unless _POSIX_SOURCE - is undefined - - 11/22 - ----- -input.c - - fixed a small typo in the cygwin-specific code - -doc/{bashref.texi,bash.1} - - added some more explanatory text about the effect of the current - locale's collating order on range expressions within bracket - expressions - -doc/bashref.texi, lib/readline/doc/{rltech,rluser,hstech}.texinfo - - changed to use @env instead of @code for the names of environment - and shell variables in text (not in tables yet) - - 11/27 - ----- -configure.in - - configure without the bash malloc on Interix - -lib/readline/doc/rltech.texinfo - - changed completion_matches() to rl_completion_matches() - - changed filename_completion_function() to - rl_filename_completion_function() - - changed username_completion_function() to - rl_username_completion_function() - -lib/readline/rlprivate.h - - changed declaration of _rl_alphabetic to rl_alphabetic, since that's - what's used in the C files - -support/bashbug.sh - - Debian has /usr/bin/editor as a link to the system default editor; - make that one of the alternatives if $EDITOR is not set - - if the OS provides mktemp(1) or tempfile(1), use those to create - the temp file for the bug report - -lib/readline/{readline.[ch], callback.c} - - new function, rl_set_prompt, called with prompt string as argument, - sets and, if necessary, expands rl_prompt - -lib/readline/{complete.c,compat.c,readline.h} - - rl_completion_matches now takes a `const char *' as its first - argument - - compute_lcd_of_matches now takes a `const char *' as its third - argument - -lib/readline/rltypedefs.h - - a rl_completion_func_t now takes a `const char *' as its first - argument - -lib/readline/Makefile.in - - added dependencies on rltypedefs.h - -bashline.c - - attempt_shell_completion now takes a `const char *' as its first - argument - - removed bogus cast when assigning to rl_attempted_completion_function - and rl_completion_entry_function - - bash_directory_completion_matches takes a `const char *' argument +expr.c + - fixed strlong() to correct the values of `@' and `_' when + translating base-64 constants (64#@ == 62 and 64#_ == 64), for + compatibility with ksh -pcomplete.c - - gen_matches_from_itemlist, pcomp_filename_completion_function, - gen_action_completions, gen_globpat_matches, gen_wordlist_matches, - gen_compspec_completions now take `const char *' arguments as - appropriate - - programmable_completions now takes `const char *' first and - second arguments +lib/sh/itos.c + - added a slightly more flexible fmtlong() function that takes a + base argument and flags (for future use) + - rewrote itos and inttostr in terms of fmtlong -pcomplib.c - - find_compspec now takes a `const char *' argument +lib/sh/fmtulong.c + - new file, converts unsigned long to string. hooks for `unsigned + long long' in the future. unused as yet - 11/29 + 10/15 ----- -shell.c - - in open_shell_script, if we have /dev/fd, don't perform the check - for a binary file if isatty(fd) (where fd is opened on the script - name) returns non-zero - - in open_shell_script, don't call init_noninteractive again, since it - can undo changes made by the startup files ($BASH_ENV) +lib/readline/rltty.c + - change the SET_SPECIAL macro to avoid possible (but highly + unlikely) negative array subscripts -input.c - - in fd_to_buffered_stream, make sure buffer size (and hence size - arg passed to read(2)) is greater than zero. This makes - bash /dev/stdin work right. - - return -1 from sync_buffered_stream immediately if buffers is NULL - (can happen when running `bash -i /dev/stdin' and executing a - command that requires a fork) - - 11/30 - ----- -jobs.c - - renamed cont_signal_handler to sigcont_sighandler for consistency - - renamed stop_signal_handler to sigstop_sighandler for consistency - - if there is no jobs list or no outstanding jobs, return immediately - from notify_of_job_status, before fussing with the signal state - - change map_over_jobs to not fuss with the signal state unless there - are jobs +error.h + - add __attribute__ to extern declaration of itrace (even though the + function isn't defined in released versions of bash) -lib/malloc/malloc.c - - encapsulated the code to block and unblock signals during morecore() - execution into two functions: block_signals and unblock_signals - - only block signals in morecore() if interrupt_immediately is non-zero - or SIGINT or SIGCHLD is trapped +bashansi.h + - include if HAVE_STRINGS_H is defined, to get any extra + function declarations provided therein - 12/1 - ---- -lib/readline/readline.c - - fix to rl_forward to make sure that lend doesn't get set < 0, since - that will result in rl_point being < 0 +copy_cmd.c + - fix typo in forward declaration for copy_arith_for_command - 12/5 - ---- -parse.y - - fix to parse_matched_pair to allow backslash to escape a ' inside a - $'...' construct inside another grouping construct like ${...} - - translate $'...' and $"..." in parse_matched_pair, because nothing - else will do it if such a construct appears inside a grouping - construct +lib/malloc/stats.c + - make the accumulators in _print_malloc_stats be `unsigned long' + instead of `int' - 12/6 - ---- -configure.in - - make sure all bracket tests for pattern matching in case statements - are appropriately quoted, so autoconf doesn't swallow the brackets - - add -rdynamic to LOCAL_LDFLAGS for freebsd-4.x +externs.h, sig.h + - add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level + declarations -examples/loadables/realpath.c - - new loadable builtin, canonicalizes pathnames and expands symlinks +lib/sh/mailstat.c, support/bashversion.c + - include for some string function declarations -builtins/ulimit.def - - added undocumented -w option for setting RLIMIT_SWAP, if it's defined +lib/malloc/shmalloc.h + - added extern declarations of functions that do malloc debugging - 12/7 - ---- -bashline.c - - reordered code in initialize_readline so all of the rl_add_defun - calls are made before the call to rl_initialize, and all of the - rl_{bind,unbind}_key_in_map calls are made after initializing - readline. This allows the bash-specific function names to be used - in ~/.inputrc +lib/readline/{isearch,readline,vi_mode}.c + - make sure we index into _rl_keymap with a non-negative index - 12/12 - ----- -lib/readline/callback.c - - in rl_callback_read_char, loop after returning from - readline_internal_char and test rl_pending_input in case some - function (like the incremental search functions and digit argument - functions) pushed input back with rl_execute_next +parse.y + - make sure we index into sh_syntaxtab with a non-negative index -lib/readline/readline.h - - new rl_state flag: RL_STATE_INPUTPENDING, indicating that - rl_execute_next has pushed input back for rl_get_key to read +lib/readline/vi_mode.c + - bound the vi_mark_chars array with the number of characters between + 'a' and 'z' rather than using a fixed amount + - don't use _rl_lowercase_p when deciding whether the char read by + rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z' -lib/readline/input.c - - new function to clear rl_pending_input: rl_clear_pending_input() +lib/readline/chardefs.h + - conditionally include memory.h and strings.h as in general.h + - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software + - add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c) + - fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, + _rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower, + and _rl_isident to work on systems with signed chars -lib/readline/{input,readline,signals}.c - - when rl_pending_input is set, set state RL_STATE_INPUTPENDING; - unset that state when rl_read_key returns the pending input - - call rl_clear_pending_input at appropriate points +include/chartypes.h + - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software - 12/15 - ----- -lib/readline/histfile.c - - don't leak file descriptors while attempting to truncate a non-regular - file +lib/sh/{strcasecmp,strtod,strtol}.c + - don't pass possibly-negative characters to tolower() or toupper() -input.c - - make sure check_bash_input sets the close-on-exec flag for the file - descriptor used to save the bash input fd +lib/glob/strmatch.c + - don't bother testing for isupper in FOLD; rely on TOLOWER macro + from to do it + - don't use local definitions of isblank, et al.; rely on macros + from -parse.y - - if default_buffered_input gets changed while it's on the saved - stream stack, make sure it gets set to close-on-exec when it's - restored by pop_stream() +lib/readline/{display,readline}.c, mksyntax.c + - use new ISPRINT macro instead of isprint() - 12/18 - ----- -builtins/ulimit.def - - change set_limit to account for Cygwin's setdtablesize() being - declared as a void function +builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c + - don't assume that a pid_t fits into an int for printing and other + uses -support/config.{guess,sub} - - change cygwin32 to cygwin +variables.[ch] + - the unused put_gnu_argv_flags_into_env now takes a `long' pid + argument - 12/20 - ----- -nojobs.c - - make wait_sigint_handler handle the case of interrupt_immediately - being non-zero when it's called, and jump out appropriately +configure.in, config.h.in + - call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found + - check for strtoull(), define HAVE_STRTOULL if found + - check for uintmax_t, define to `unsigned long' if not found + +lib/sh/mailstat.c + - don't use st_blocks member of struct stat unless + HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink + field to return the total number of messages in a maildir-style + mail directory + +general.h,{alias,expr,general,subst,variables}.c +builtins/{printf,read}.def +lib/readline/{bind,complete,nls}.c +lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c + - cast args to ctype macros to unsigned char for systems with signed + chars; other fixes for signed chars + +lib/sh/{fmtullong,strtoull.c} + - new files, more support for `long long' -jobs.c - - new function to run sigchld traps: run_sigchld_trap(); called from - waitchld - - broke the code that computes the printable job status messages for - pretty_print_job out into a separate function - - rearranged some code eliminating a useless `else' branch in wait_for - - shell_tty_info is now a TTYSTRUCT, using defines from shtty.h - - broke the code that sets a job's status after waitpid says its state - has changed and cleans up after a received SIGINT out into a separate - function: set_job_status_and_cleanup - - last_stopped_job() -> job_last_stopped() to avoid collision with a - variable name - - last_running_job() -> job_last_running() for consistency - - 12/21 - ----- -variables.c - - new function, print_func_list (SHELL_VAR **list); prints shell - functions from list in a form that may be re-used as input to - redefine the functions +Makefile.in, lib/sh/Makefile.in + - make fmtullong.o and strtoull.o part of libsh -variables.h - - new extern declaration for print_func_list +lib/sh/itos.c + - remove local copy of fmtlong; use fmtulong instead + - new functions: uitos, uinttostr work on `unsigned long' -builtins/set.def - - set without options now calls print_func_list to have functions - printed in a way that can be reused as input (this affects - `declare' and `declare -p' also) +lib/sh/snprintf.c + - fixes to make `unsigned long long' work (%llu) + - fixes to make unsigned formats not print the sign when given + an unsigned long that is greater than LONG_MAX - 12/27 - ----- -general.h - - add an ISOCTAL define +externs.h + - extern declarations for fmtulong, fmtulloing, strtoull + - extern declarations for uitos, uinttostr -builtins/common.h - - use ISOCTAL in read_octal function + 10/16 + ----- +configure.in + - move header checks before function checks + - move c compiler tests before header checks + - check for with BASH_HEADER_INTTYPES + - change type checks for intmax_t, uintmax_t to not attempt to + include + - check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul + with BASH_CHECK_DECL (for declarations in header files) and + AC_REPLACE_FUNCS (for availability and LIBOBJS substitution) + - remove check for have_long_long around sizeof check for long long + (since autoconf will give it a size of 0 if the type isn't found) -parse.y - - in decode_prompt_string, don't just skip STRING forward by 3 if an - octal sequence is translated; handle sequences of fewer than three - characters by checking each character +config.h.in + - add a define for HAVE_INTTYPES_H + - add a define for HAVE_UNSIGNED_LONG_LONG + - add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL - 12/28 - ----- -doc/{bash.1,bashref.texi} - - make sure `vi-move' is a documented keymap argument to bind's - `-m' option +aclocal.m4 + - new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS + on ; separate so it can be AC_REQUIREd + - AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE + - include in BASH_CHECK_TYPE if HAVE_INTTYPES_H is + defined + - change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE + - new `long long' checking macros: BASH_TYPE_LONG_LONG and + BASH_TYPE_UNSIGNED_LONG_LONG + - new BASH_CHECK_DECL - 12/29 - ----- -variables.c - - change print_assignment so that functions are printed in a way that - may be reused as input (without the `=') +lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in + - new files - 1/2/2001 - -------- -test.c - - fix test_command to print an error message if `[' is supplied a - single argument that is not `]' +externs.h + - extern declarations for strtoll, strtoimax, strtoumax -support/shobj-conf - - change test of $SHOBJ_CC from `gcc*' to `*gcc*' to handle full - pathnames +lib/malloc/alloca.c + - include for size_t - 1/11 - ---- -execute_cmd.c - - in initialize_subshell, zero out builtin_env, since those aren't - supposed to be exported +builtins/printf.def + - new functions: getllong, getullong, getintmax, getuintmax; return + long long, unsigned long long, intmax_t, uintmax_t respectively + - builtin printf now handles `ll' and `j' length modifiers directly -variables.c - - new function: shell_var_from_env_string, creates a SHELL_VAR from - a `name=value' style environment string and returns it - - new function: bind_name_in_env_array(name, value, array), makes - NAME have VALUE in ARRAY, a temporary environment - - new function: bind_tempenv_variable (name, value), makes NAME have - VALUE in one of the temporary environments -- temporary_env, - builtin_env, or function_env - - changed bind_variable to call bind_tempenv_variable if one of the - temporary environments is non-null before modifying the - shell_variables table. This fixes a problem with sourced scripts - modifying variables in a temporary environment, but not seeing the - updated values - - 1/12 - ---- -variables.c - - changed things so OSTYPE, HOSTTYPE, and MACHTYPE are set only if - they don't have a value at shell startup +lib/sh/Makefile.in + - use LIBOBJS to decide whether or not the strto* functions are + needed - 1/17 - ---- -builtins/fc.def - - create temp file with MT_USETMPDIR + 10/17 + ----- +configure.in + - call AC_REPLACE_FUNCS(rename) + - move getcwd, strpbrk, strcasecmp, strerror, strtod + from AC_CHECK_FUNCS to AC_REPLACE_FUNCS + - only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes" + - call BASH_CHECK_SYS_SIGLIST + - if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint) -variables.c - - allow function local readonly variables to overwrite (or shadow) - other (calling) function readonly variables, but not global - readonly ones +lib/sh/Makefile.in + - remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror, + strtod, vprint from OBJECTS; picked up from LIBOBJS -builtins/wait.def - - replace unwind_protect of interrupt_immediately, since that's a - variable that you cannot unwind-protect (the unwind-protect code - uses it) +aclocal.m4 + - change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc + getcwd(3) calls popen(3) + - change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's + not found in libc or as a #define even with the special includes + - BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT + - BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR + - BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING + - BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS + - BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE + - BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK + - BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC + - BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT + - BASH_FUNC_PRINTF -> BASH_DECL_PRINTF + - BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK + - BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T + - BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET + - new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for + sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to + siglist.o if appropriate - 1/22 - ---- Makefile.in - - changed RELSTATUS to `beta1' + - use SIGLIST_O variable to decide whether or not we need siglist.o -lib/readline/terminal.c - - added rl_set_screen_size function, wrapper around - _rl_set_screen_size so bash doesn't call _rl_ functions +{execute_cmd,subst}.c + - change a couple of instances of ISDIGIT to DIGIT, where we really, + really only want ascii digits -lib/readline/{rlprivate,readline}.h - - moved rl_explicit_arg to readline.h - - moved rl_numeric_arg to readline.h - - moved rl_editing_mode to readline.h - - moved rl_last_func to readline.h - - added rl_set_screen_size to readline.h +ansi_stdlib.h + - don't need a declaration for atol() -lib/readline/doc/rltech.texinfo - - documented rl_explicit_arg, rl_editing_mode, rl_numeric_arg, - rl_last_func - - documented rl_set_screen_size + 10/18 + ----- -{jobs,nojobs}.c - - _rl_set_screen_size -> rl_set_screen_size +aclocal.m4 + - new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support + for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT + if successful -{bashline,pcomplete}.c, builtins/set.def - - removed extern declarations of variables defined in readline.h +configure.in + - call AC_CHECK_FUNCS for isascii + - call BASH_FUNC_PRINTF_A_FORMAT - 1/23 - ---- -support/rlvers.sh - - use $TMPDIR if it's defined - - use $RL_INCDIR (set by -I option, /usr/local/include by default) - as the directory containing the installed readline header files - - cd to the temp directory before attempting compilation +config.h.in + - add a define for HAVE_ISASCII + - add a define for HAVE_PRINTF_A_FORMAT + +lib/sh/snprintf.c + - for long double output, fall back to sprintf using ldfallback() + function for floating point formats + - support %a, %A using dfallback() or ldfallback() if + HAVE_PRINTF_A_FORMAT is defined + - fix bug in vasprintf that returned wrong value in its first + argument if the buffer holding the result string got reallocated + - fixed PUT_CHAR macro to increment the counter even if we've + exceeded the buffer size, for the return value from + vsnprintf/snprintf + - fix vsnprintf_internal to not use counter < length as a loop + condition, but always process the entire format string (for + the return value from vsnprintf/snprintf) -configure.in - - pass `-I ${includedir}' to rlvers.sh +builtins/printf.def + - support %a, %A if HAVE_PRINTF_A_FORMAT is defined - 1/29 - ---- -subst.c - - fixed parameter_brace_expand to only throw away the state of - quoted dollar-at if we're going to be using the rhs of the - brace expansion, since whatever parameter_brace_expand_rhs sets - should be what goes (corrects bad fix of 2/16/2000) - - fixed param_expand to only free temp after calling - parameter_brace_expand if it's a quoted null and we *did not* - have a quoted $@, since in that case we want to keep it and - do the $@ special handling (fixes real problem from 2/16/2000) - - 1/30 - ---- -variables.c - - remove export attribute from SSH2_CLIENT, like SSH_CLIENT +include/typemax.h + - new file, with the TYPE_MAXIMUM stuff that's duplicated in several + files in lib/sh - 2/1 - --- -unwind_prot.c - - added new function, clear_unwind_protect_list, to zero out the - unwind_protect list, optionally freeing the elements +lib/sh/{fmtulong,strtol,snprintf}.c + - include instead of having the definitions in each file -unwind_prot.h - - new extern declaration for clear_unwind_protect_list +lib/sh/Makefile.in + - updated dependencies for typemax.h -execute_cmd.c - - call clear_unwind_protect_list in initialize_subshell. This fixes - the problem of core dumps when calling a shell script without a - leading `#!' from a shell function or other context with an - unwind-protect list - - set variable_context and return_catch_flag to 0 in - initialize_subshell, since a new subshell is no longer in a shell - function - - 2/2 - --- -doc/readline.3 - - updated the text; clarified several points - - changed the usage synopsis to include and - + 10/22 + ----- +configure.in + - call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines + in chartypes.h -lib/readline/doc/hstech.texinfo - - made sure all function prototypes are valid ANSI C (mostly - changing () to (void)) +config.h.in + - defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT} -lib/readline/doc/rluser.texinfo - - a few clarifications +include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h + - don't redefine some is* ctype macros/functions if HAVE_ISXXX is + defined (meaning that an appropriate function, but not a macro, + exists) -lib/readline/doc/rltech.texinfo - - a few clarifications - - added two new subsections for character input and terminal - management - - changed all function prototypes to be valid ANSI C (mostly - replacing () with (void)) - - documented some variables in readline.h but previously not in - the reference manual (rl_num_chars_to_read, rl_dispatching, - rl_gnu_readline_p, rl_completion_type) - - documented some functions in readline.h but previously not in - the reference manual (rl_clear_pending_input, rl_prep_terminal, - rl_deprep_terminal, rl_tty_set_default_bindings, rl_alphabetic, - rl_crlf) +lib/sh/strtrans.c + - new function, ansic_shouldquote, returns 1 if argument string + contains non-printing chars that should be quoted with $'...' -lib/readline/readline.h - - added extern declaration for rl_clear_pending_input() - - added extern declaration for rl_alphabetic - - changed rltty_set_default_bindings to rl_tty_set_default_bindings - - changed crlf() -> rl_crlf() +externs.h + - new declaration for ansic_shouldquote() -lib/readline/rltty.c - - new function, rl_tty_set_default_bindings, just calls - rltty_set_default_bindings (needed `rl_' prefix) +variables.c + - change print_var_value to ansi C quote the string if we're not in + posix mode and the variable's value contains non-printing chars, + to use the regular shell single quoting if the value contains + shell meta-characters, and to just output the string otherwise -lib/readline/readline.c - - readline_default_bindings now calls rl_tty_set_default_bindings +lib/sh/shquote.c + - add `break' to `case '~':' to avoid fallthrough and extra test -lib/readline/terminal.c - - renamed crlf() to rl_crlf(); crlf() is still defined for backwards - compatibility +doc/bashref.texi + - note that in POSIX mode, `set' displays variable values that + include nonprinting characters without quoting, unless they + contain shell metacharacters -bashline.c, lib/readline/{complete,display}.c - - changed all calls to crlf() to rl_crlf() +builtins/printf.def, lib/sh/snprintf.c + - handle `F' conversion specifier as equivalent to 'f' -test.c - - fix filecomp() so that `test file1 -nt file2' doesn't fail if file1 - exists but file2 does not +parse.y, {nojobs,variables}.c + - a couple of cleanups for when building a minimal configuration - 2/5 - --- -lib/readline/{terminal,compat}.c - - move crlf() backwards-compatibility definition to compat.c +nojobs.c + - new function: stop_making_children(), just sets + already_making_children to 0 (like stop_pipeline) -execute_cmd.c - - if we're running a command `( command ) &' from a non-interactive - shell, don't unconditionally disable expand_aliases. Only do it - when running such a command from an interactive shell, since then - we're changing to a non-interactive shell +subst.c + - call stop_making_children from subst.c:command_substitute if + JOB_CONTROL is not defined. This fixes the bug where the wrong + process is waited for (and its status returned) when using + command substitution in a null command in a shell function - 2/6 - --- -[bash-2.05-beta1 released] +builtins/printf.def + - new variable `tw' used to keep track of the total number of + characters written by a single call to `printf' -- to be + used for the `%n' conversion, which will be added later. It + gets reset each time we reuse the format string, which is what + ksh93 seems to do -lib/readline/compat.c - - add extern declaration for rl_crlf() + 10/23 + ----- +variables.c + - new function, bind_var_to_int (char *var, long val) -lib/readline/undo.c - - initialize start and end in rl_do_undo to avoid bogus gcc compiler - warning with -Wall +variables.h + - extern declaration for bind_var_to_int -lib/readline/rlprivate.h - - fix typo in extern declaration of _rl_current_display_line() - - add extern declaration of _rl_free_saved_history_line() +lib/sh/netopen.c + - use gai_strerror() for error messages when getaddrinfo() fails + - use PF_INET if DEBUG is defined, since IPv6 doesn't work for me -lib/readline/terminal.c - - return immediately from _rl_set_screen_size if one of the args is 0 - - new function, rl_get_screen_size (int *rows, int *cols) to return - readline's idea of the screen dimensions +Makefile.in + - pass DEBUG=${DEBUG} down to makes in some subdirectories -lib/readline/doc/rltech.texinfo - - documented rl_get_screen_size +{builtins,lib{glob,sh}}/Makefile.in + - append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile - 2/7 - --- -pathexp.c - - a couple of fixes for the POSIX_GLOB_LIBRARY version of the globbing - code +builtins/printf.def + - added support for %n format conversion char (number of chars printed + so far from current format string) -expr.c - - fixed omission of ^= from the special assignment operators + 10/24 + ----- +variables.c + - if posixly_correct is set, the default value of $MAILCHECK is 600 + - use legal_number instead of atoi in adjust_shell_level + - treat non-numeric assignments to SECONDS as 0 in assign_seconds + - new function, init_funcname_var; sets FUNCNAME as a dynamic variable + if it's not set in the initial environment + - new function, init_groups_var; sets GROUPS as a dynamic array + variable if it's not set in the initial environment + - new function, init_dirstack_var; sets DIRSTACK as a dynamic array + variable if it's not set in the initial environment + - new function, init_seconds_var; sets SECONDS as a dynamic + variable using any valid integer value in the initial environment + as the initial value, as if an assignment had been performed + - call init_funcname_var, init_groups_var, init_dirstack_var, + init_seconds_var from initialize_dynamic_variables + - non-numeric values assigned to LINENO are treated as 0 + - change initialize_shell_variables to not auto-export PATH or TERM + - change set_home_var to not auto-export HOME + - change set_shell_var to not auto-export SHELL + - broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE + out into a separate function, set_machine_vars; none of those + variables are auto-exported + - bash no longer un-exports SSH_CLIENT or SSH2_CLIENT shell.c - - change logic for setting `posixly_correct' at shell startup: if - $POSIXLY_CORRECT or $POSIX_PEDANTIC is found in the environment, - set it to 1, otherwise retain the previous value (which is - initialized to 0) + - changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if + SSH_SOURCE_BASHRC is defined in config-top.h - 2/10 - ---- -builtins/evalstring.c - - since subshell_environment is now a flags word, test for the - SUBSHELL_COMSUB bit being set when decided whether or not to - evaluate $(flag: B_WASBASHINPUT +doc/{bash.1,bashref.texi} + - document what bash does with $POSIXLY_CORRECT -redir.c - - in add_undo_redirect, if FD is 0, make the undo redirect be of type - r_duplicating_input instead of r_duplicating_output, since that fd - requires special handling in the presence of buffered streams (fixes - problem with scripts reading input through a pipe restoring bash - input buffered stream correctly after a `read' with an input - redirection - - 2/14 - ---- -lib/readline{complete,util}.c - - moved rl_strpbrk to util.c with rest of string utility functions, - renamed to _rl_strpbrk +doc/builtins.1 + - some updates -lib/readline/rlprivate.h - - extern declaration for _rl_strpbrk +builtins/psize.sh + - some mktemp(1) changes -lib/readline/input.c - - make the timeout in rl_gather_tyi() be a variable - (_keyboard_input_timeout) rather than a constant - - new function, rl_set_keyboard_input_timeout (int u) to set - _keyboard_input_timeout. The argument is in microseconds; returns - the old value of _keyboard_input_timeout - - _rl_input_available uses _keyboard_input_timeout also +lib/readline/readline.c + - change rl_backward to check for rl_point < 0 and reset to 0 if so -lib/readline/readline.h - - extern declaration for rl_set_keyboard_input_timeout +lib/readline/util.c + - don't compile in _rl_strpbrk if HAVE_STRPBRK is defined -lib/readline/doc/rltech.texinfo - - documented rl_variable_bind(), rl_macro_bind(), rl_macro_dumper(), - rl_variable_dumper(), rl_push_macro_input(), rl_show_char() +lib/readline/rlprivate.h + - remove extern declaration of _rl_strpbrk - 2/20 - ---- -findcmd.c - - new function, executable_or_directory(name), returns 1 if NAME is - an executable file or a directory +lib/readline/rldefs.h + - #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise + add extern declaration of _rl_strpbrk from rlprivate.h -findcmd.h - - extern declaration for executable_or_directory() +{mailcheck,shell,variables}.c + - make sure to include posixtime.h to get any prototype for time(3) + in scope -bashline.c - - call executable_or_directory() from command_word_completion_function, - which requires a single stat(2), instead of executable_file() and - is_directory(), each of which requires a stat(2) +{array,eval,execute_cmd,mksyntax,subst}.c, parse.y +builtins/common.c +lib/sh/pathcanon.c + - a few changes as the result of `gcc -Wall' patches from solar + designer - 2/21 - ---- -execute_cmd.c - - changed execute_builtin to handle `return' with a preceding variable - assignment list specially when in POSIX mode. POSIX says that the - variable assignments should persist after the builtin returns, since - `return' is a special builtin. Since `return' does a longjmp and - doesn't go through the normal cleanup path, we need to do special - things +builtins/read.def, parse.y + - change some calls to free() to xfree() -variables.c - - new function, merge_function_env(), merges the function_env into - the shell_variables table +builtins/set.def + - make sure unset_builtin() resets unset_array to 0 each time through + the loop, because it's set (and used) depending on the current + argument -variables.h - - extern declaration for merge_function_env() +shell.h + - new define, USE_VAR, to force the compiler to not put a particular + variable in a register -- helpful if registers are not restored + by setjmp/longjmp -execute_cmd.c - - changed execute_function to merge any variable assignments preceding - the function call into shell_variables if the shell is running in - POSIX mode +builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c + - use USE_VAR for some variables subst.c - - changed parameter_brace_expand_error to do tilde expansion on the - rhs of the expansion, if it's not null - - changed command_substitute so that the subshell begun to execute - the command substitution inherits the setting of the `-e' option - when in POSIX mode - -builtins/break.def - - changed check_loop_level to not print a complaining message when - the shell is running in POSIX mode, even if BREAK_COMPLAINS is - defined. This affects `break' and `continue' - - changed `break' and `continue' to return success even if the shell - is not executing a loop, as POSIX specifies + - fixed a case in expand_word_internal where a NULL pointer could + have been passed to free() (though free() should ignore it) + - fixed a case at the end of expand_word_internal where LIST could + have been used uninitialized (it makes gcc happy, though it + doesn't happen in practice) -builtins/set.def - - changed reset_shell_options() to not clear posixly_correct, so - subshells spawned to execute shell scripts without a leading `#!' - inherit posix mode from their parent shell - -variables.c - - changed make_new_variable to create the shell_variables hash table - if it hasn't been done yet. This is needed because bind_variable - may be called before initialize_shell_variables (e.g., when - `bash -o posix' calls bind_variable("POSIXLY_CORRECT", "y") from - parse_shell_options -> set_minus_o_option -> set_posix_mode - This makes `bash --posix' and `bash -o posix' equivalent, as they - should always have been - - changed maybe_make_export_env to merge the contents of `builtin_env' - into export_env after function_env and before temporary_env. This - fixes the problems with variable assignments preceding `eval' or - `source' not making it into the environment passed to executed disk - commands (var=20 eval printenv var) +test.c + - give test_syntax_error(), beyond(), and integer_expected_error() + the `__noreturn__' attribute for gcc -doc/bashref.texi - - noted that variable assignments preceding shell function calls - persist in the shell environment after the function returns when - the shell is running in POSIX mode - - noted that when the shell is running in POSIX mode, subshells - spawned to execute command substitutions inherit the value of - the `-e' option from the parent shell - - 2/26 - ---- -doc/bashref.texi - - augmented description of bash non-posix behavior in posix mode - with information from running the vsc-lite test suite +unwind_prot.c + - in clear_unwind_protect_list(), convert `flags' to `long' (via + assignment to a `long' variable) before casting to `char *', in + case pointers and longs are 64 bits and ints are 32 (makes no + difference on 32-bit machines) - 2/28 - ---- -general.c - - since POSIX.2 says that aliases should be expanded even in - non-interactive shells, enable alias expansion in - posix_initialize() when posix mode is enabled, and set it to the - value of interactive_shell if posix mode is disabled + 10/30 + ----- +print_cmd.c + - fixed cprintf to avoid gcc warning about assigning const pointer + to non-const (discarding type qualifier) -shell.c - - before running the startup scripts, set expand_aliases to - posixly_correct, since we don't want alias expansion in startup - files unless we've been given the --posix invocation option +{make_cmd,pcomplete,test}.c,parse.y + - some minor changes to shut up gcc warnings -doc/bashref.texi - - added item in BASH Posix Mode section noting that alias expansion - is always enabled when in posix mode +lib/sh/tmpfile.c + - fixed sh_mktmpfp to avoid file descriptor leaks in the case that + sh_mktmpfd succeeds but fdopen fails for some reason + - change sh_mktmpfd to use the same scheme for computing `filenum' + as sh_mktmpname + - change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined + - changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to + `nameroot' if `nameroot == 0' (duh) + - add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined + - add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined + +support/{fixlinks,mkclone} + - use mktemp if it's available for the symlink test + - use $TMPDIR instead of hardcoding /tmp; default to /tmp + - use a better filename for the symlink test instead of `z' -Makefile.in - - changed release level to `beta2' +support/bashbug.sh + - more changes inspired by a patch from solar designer - 3/1 - --- -jobs.c - - expanded retcode_name_buffer to 64 - - changed printable_job_status to conform to posix.2 for text of - stopped job status: `Stopped(SIGTSTP)' or `Stopped(SIGSTOP)' +lib/malloc/Makefile.in + - new target `alloca', which builds libmalloc.a with alloca.o only + (for systems without alloca that are configured --without-bash-malloc) -doc/bashref.texi - - Noted above change in posix mode section +configure.in + - if we don't have a working alloca and are not configured to build + the bash malloc library, make a malloc library containing only + alloca.o - 3/5 - --- -lib/readline/bind.c - - changed rl_get_keymap_by_name to work case-insensitively +aclocal.m4 + - slight change to RL_LIB_READLINE_VERSION to deal with minor version + numbers with a letter appended (like 4.2a) - 3/6 - --- -doc/readline.{0,3,ps} - - removed from distribution; moved to readline distribution + 10/31 + ----- +doc/{bash.1,bashref.texi} + - slight change to note that only interactive shells resend a SIGHUP + to all jobs before exiting -lib/readline/doc/history.3 - - man page for history library; neither built nor installed - (part of the standalone readline distribution) +externs.h + - declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined. This + keeps picky compilers from choking because intmax_t is not defined + (MacOS X 10.1) -lib/readline/histfile.c - - changed history_truncate_file to return 0 on success, errno - on failure - - changed history_do_write to return errno on a write error. This - affects write_history and append_history +builtins/printf.def + - #define NEED_STRTOIMAX_DECL before including shell.h -lib/readline/history.c - - max_input_history is now history_max_entries; the old variable is - maintained for backwards compatibility + 11/1 + ---- +general.c + - check in bash_tilde_expand() for an unquoted tilde-prefix; don't + bother passing the string to tilde_expand unless the prefix is + unquoted -lib/readline/histexpand.c - - the list of delimiters that separate words for history_tokenize - is now a variable: history_word_delimiters; default value is as - before - - changed history_expand to return 0 immediately if its second - argument is NULL +shell.c + - fix a problem with $LINENO when executing commands supplied with + the -c invocation option when ONESHOT is defined -bashline.c - - changed to use history_max_entries +[bash-2.05a-rc1 frozen] -lib/readline/history.h - - extern declaration for history_max_entries - - extern declaration for history_word_delimiters +builtins/printf.def + - fix the %n conversion to require that the variable name supplied + be a valid shell identifier - 3/8 - --- -test.c - - changed unary_operator() to return FALSE for non-numeric arguments - to `-t' +variables.c + - improve random number generator slightly by using the upper 16 + bits of the running random number instead of the lower 16, which + are incrementally more random - 3/9 - --- -[bash-2.05-beta2 released] + 11/2 + ---- +configure.in + - if RL_INCLUDEDIR ends up being /usr/include, don't put + -I$(RL_INCLUDEDIR) into CFLAGS - 3/12 + 11/5 ---- -lib/readline/doc/rltech.texinfo - - documented rl_set_paren_blink_timeout() - - moved the example function to its own info node +doc/{bash.1,bashref.texi} + - correct description of POSIXLY_CORRECT to note that the shell enters + posix mode *before* the startup files are read if POSIXLY_CORRECT + is in the initial environment -lib/readline/{hstech.texinfo,history.3} - - `$' is not in the default value of history_word_delimiters +variables.c + - fix function prologues for init_dirstack_var and init_groups_var + to agree with caller (no arguments) - 3/13 - ---- -bashline.c - - in maybe_add_history, if the tests for HISTCONTROL succeed, but - the HISTIGNORE check fails, set first_line_saved to 0 +jobs.c + - fix forward function declarations for pipe_read and pipe_close - 3/15 - ---- +subst.c + - removed `inline' attribute from skip_double_quoted because it can + potentially be called recursively -lib/glob/fnmatch.c - - fixed a bug in patscan that caused `[' to be treated as special - even inside a nested bracket expression. It's supposed to lose - it's special handling inside [] - - fixed a bug in patscan that caused `]' to end an embedded bracket - expression even if it was the first character after the `[' (or - a leading `!' or `^') - - 3/22 - ---- -execute_cmd.c - - made a small change to shell_execve to report a more user-friendly - error if execve(2) fails because of a `#! interpreter' error with - `interpreter' - - in shell_execve, if HAVE_HASH_BANG_EXEC is not defined, make sure - the file length is > 2 characters before attempting to execute an - interpreter - - 3/26 - ---- -jobs.c, nojobs.c - - give_terminal_to now takes a second argument, FORCE. If that - second argument is non-zero, give the terminal away no matter - what job_control is set to +bashline.c + - quick fix to bashline.c:attempt_shell_completion programmable + completion code to just punt if the end of the command word found + by find_cmd_end is <= the start found by find_cmd_start (the bug + is probably in find_cmd_start -- fix later) -jobs.h - - changed extern declaration of give_terminal_to +pcomplete.c + - fix gen_matches_from_itemlist to return if the stringlist is null + after any cleaning or initialization, before trying to use it + - fix GEN_COMPS to only bother to try to append the STRINGLIST + returned by gen_matches_from_itemlist to `glist' if it's non-NULL -{jobs,sig,subst}.c,parse.y - - changed all calls to give_terminal_to to add a second argument - of 0 +lib/sh/stringlist.c + - make copy_stringlist return NULL if the STRINGLIST * passed as an + argument is NULL + - make append_stringlist call copy_stringlist only if M2 is non-NULL; + otherwise just return NULL if m1 is NULL + - make word_list_to_stringlist return 0 immediately if the passed + LIST argument is NULL + - make realloc_stringlist call alloc_stringlist if the passed + STRINGLIST argument (`sl') is 0, just like realloc calls malloc + +subst.c + - in skip_to_delim(), if we have an unclosed ${, and it's at the end + of the string (string[i] == '{', string[i+1] == '{' and + string[i+2] == 0, return si (i +2) immediately without bothering + to call extract_dollar_brace_string or extract_delimited_string + - in skip_to_delim(), if string[i] is 0 after a call to + extract_dollar_brace_string or extract_delimited_string (meaning we + have an unclosed ${ or other expansion, return i immediately without + doing a `continue' (which will increment i past the end of string) + - in split_at_delims, don't increment te by 1 if it's pointing to a + delimiter. this has the effect of skipping the first delimiter + char in a possibly multi-character delimiter, and ignoring + single-char delimiters like `>' + +configure.in + - use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to + AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test + fails -jobs.c - - changed second argument of call to give_terminal_to in - end_job_control to 1, to force this even if job_control is 0. - This fixes the problem of `exec other-job-control-shell' in a - startup file hanging, since run_startup_files sets job_control to 0 +general.c + - introduce two new variables: bash_tilde_{prefixes,suffixes}, set + to the additional prefixes and suffixes bash wants to pass to the + tilde expansion code (reserved for post-bash-2.05a fix) -subst.c - - fixed test of subshell_environment in command_substitute to test the - bit SUBSHELL_ASYNC rather than test equality, since it's now a - bitmask +aclocal.m4 + - add missing `test' in BASH_CHECK_SYS_SIGLIST - 3/27 + 11/7 ---- -shell.c - - changed posix initialization calls to set POSIXLY_CORRECT=y and - then call sv_strict_posix, so $SHELLOPTS includes `posix' and - POSIXLY_CORRECT is set, for both the posix command line options - and when act_like_sh is non-zero +lib/readline/vi_mode.c + - fix rl_vi_goto_mark to explicitly check that the desired mark is + between 'a' and 'z', since some locales have lowercase letters + outside that range, which could cause a negative subscript -redir.c - - the `>& filename' redirection now works in posix mode, redirecting - stdout and stderr, since POSIX.2 leaves it unspecified +include/chartypes.h + - remove superfluous `#undef ISASCII' -doc/bashref.texi - - removed item about `>& filename' from Bash POSIX Mode section +lib/sh/strto[iu]max.c + - changes from Paul Eggert to work around buggy compilers and catch + configuration errors at compile time -parse.y - - fixed a problem in decode_prompt_string with `\W' not printing - anything if PWD == "//" +aclocal.m4 + - new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but + with a fix for Irix 5.3 (not called, since I'm not sure it's the + right thing to do -- the C standard allows double and long double + to be the same size) -lib/readline/input.c - - in rl_read_key, after calling (*rl_event_hook), check for rl_done - being set, and return '\n' if it is +lib/sh/snprintf.c + - only try to write the trailing NUL in vsnprintf_internal if + data->length is >= 0, since if it's not, we probably don't have + a buffer Makefile.in - changed RELSTATUS to `release' - 3/28 + 11/8 ---- -support/bashbug.sh - - replace use of $(...) with `...` for the benefit of old versions - of sh - -builtins/set.def - - changed print_all_shell_variables to not print shell function names - and definitions when in posix mode - -doc/bashref.texi - - noted change in `set' behavior in posix mode section +lib/sh/strtol.c + - make sure chars passed to toupper are cast to unsigned - 4/2 - --- -lib/readline/readline.c - - changed default value of RL_LIBRARY_VERSION to `4.2' +unwind_prot.c + - change clear_unwind_protect_list to not require a cast from `int' + to `char *' - 4/5 - --- -[bash-2.05-release frozen] +lib/readline/chardefs.h + - make _rl_digit_p succeed only for ascii digits, since that's what + most callers assume diff --git a/CWRU/empty-for-wordlist b/CWRU/empty-for-wordlist deleted file mode 100644 index 2dd21d67..00000000 --- a/CWRU/empty-for-wordlist +++ /dev/null @@ -1,25 +0,0 @@ -This patch is from Brian Fox, in reply to an email message from -"Marcin 'Qrczak' Kowalczyk" , who wrote: - - I think that bash should accept such a syntax: - - for var in ; do command; done - - Of course it should do nothing. It would simplify some scripts. - -Here is a patch for those who wish it: - -*** parse.y.~1~ Wed Mar 4 09:39:46 1998 ---- parse.y Mon Jul 13 14:40:23 1998 -*************** -*** 495,500 **** ---- 495,504 ---- - { $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9); } - | FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' - { $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9); } -+ | FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE -+ { $$ = make_for_command ($2, (WORD_LIST *)NULL, $8); } -+ | FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' -+ { $$ = make_for_command ($2, (WORD_LIST *)NULL, $8); } - ; - diff --git a/CWRU/maildir-patch b/CWRU/maildir-patch deleted file mode 100644 index 1fcb3b6f..00000000 --- a/CWRU/maildir-patch +++ /dev/null @@ -1,175 +0,0 @@ -# DP: From: Miquel van Smoorenburg -# DP: A patch that adds support for Maildir type mailboxes. - ---- ./mailcheck.c.orig Wed Feb 4 21:30:33 1998 -+++ ./mailcheck.c Sun Nov 14 15:35:07 1999 -@@ -21,8 +21,10 @@ - #include "config.h" - - #include -+#include - #include "bashtypes.h" - #include "posixstat.h" -+#include "posixdir.h" - #ifndef _MINIX - # include - #endif -@@ -37,6 +39,8 @@ - #include "mailcheck.h" - #include - -+#include "mailstat.c" -+ - #ifndef NOW - #define NOW ((time_t)time ((time_t *)0)) - #endif -@@ -131,7 +135,7 @@ - struct stat finfo; - - file = mailfiles[i]->name; -- if (stat (file, &finfo) == 0) -+ if (mailstat (file, &finfo) == 0) - { - mailfiles[i]->access_time = finfo.st_atime; - mailfiles[i]->mod_time = finfo.st_mtime; -@@ -155,7 +159,7 @@ - i = find_mail_file (filename); - if (i >= 0) - { -- if (stat (filename, &finfo) == 0) -+ if (mailstat (filename, &finfo) == 0) - { - mailfiles[i]->mod_time = finfo.st_mtime; - mailfiles[i]->access_time = finfo.st_atime; -@@ -221,7 +225,7 @@ - file = mailfiles[i]->name; - mtime = mailfiles[i]->mod_time; - -- if ((stat (file, &finfo) == 0) && (finfo.st_size > 0)) -+ if ((mailstat (file, &finfo) == 0) && (finfo.st_size > 0)) - return (mtime != finfo.st_mtime); - - return (0); -@@ -239,7 +243,7 @@ - file = mailfiles[i]->name; - atime = mailfiles[i]->access_time; - -- if ((stat (file, &finfo) == 0) && (finfo.st_size > 0)) -+ if ((mailstat (file, &finfo) == 0) && (finfo.st_size > 0)) - return (atime != finfo.st_atime); - - return (0); -@@ -257,7 +261,7 @@ - file = mailfiles[i]->name; - size = mailfiles[i]->file_size; - -- return ((stat (file, &finfo) == 0) && (finfo.st_size > size)); -+ return ((mailstat (file, &finfo) == 0) && (finfo.st_size > size)); - } - - /* Take an element from $MAILPATH and return the portion from - - -diff -ruN bash-2.01.1.b4/mailstat.c bash-2.01.1/mailstat.c ---- bash-2.01.1.b4/mailstat.c Thu Jan 1 01:00:00 1970 -+++ bash-2.01.1/mailstat.c Wed Jun 2 12:05:04 1999 -@@ -0,0 +1,98 @@ -+/* -+ * Stat a file. If it's a maildir, check all messages -+ * in the maildir and present the grand total as a file. -+ * The fields in the 'struct stat' are from the mail directory. -+ * The following fields are emulated: -+ * -+ * st_nlink always 1 -+ * st_size total number of bytes in all files -+ * st_blocks total number of messages -+ * st_atime access time of newest file in maildir -+ * st_mtime modify time of newest file in maildir -+ * st_mode S_IFDIR changed to S_IFREG -+ * -+ * This is good enough for most mail-checking applications. -+ */ -+int -+mailstat(char *path, struct stat *st) -+{ -+ DIR *dd; -+ struct dirent *fn; -+ struct stat st_ret, st_tmp; -+ static struct stat st_new_last, st_ret_last; -+ char dir[PATH_MAX * 2]; -+ char file[PATH_MAX * 2]; -+ int i, l; -+ time_t atime = 0, mtime = 0; -+ -+ /* First see if it's a directory. */ -+ if ((i = stat(path, st)) != 0 || !S_ISDIR(st->st_mode)) -+ return i; -+ if (strlen(path) > sizeof(dir) - 5) { -+ errno = ENAMETOOLONG; -+ return -1; -+ } -+ -+ st_ret = *st; -+ st_ret.st_nlink = 1; -+ st_ret.st_size = 0; -+ st_ret.st_blocks = 0; -+ st_ret.st_mode &= ~S_IFDIR; -+ st_ret.st_mode |= S_IFREG; -+ -+ /* See if cur/ is present */ -+ sprintf(dir, "%s/cur", path); -+ if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0; -+ st_ret.st_atime = st_tmp.st_atime; -+ -+ /* See if tmp/ is present */ -+ sprintf(dir, "%s/tmp", path); -+ if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0; -+ st_ret.st_mtime = st_tmp.st_mtime; -+ -+ /* And new/ */ -+ sprintf(dir, "%s/new", path); -+ if (stat(dir, &st_tmp) || !S_ISDIR(st_tmp.st_mode)) return 0; -+ st_ret.st_mtime = st_tmp.st_mtime; -+ -+ /* Optimization - if new/ didn't change, nothing else did. */ -+ if (st_tmp.st_dev == st_new_last.st_dev && -+ st_tmp.st_ino == st_new_last.st_ino && -+ st_tmp.st_atime == st_new_last.st_atime && -+ st_tmp.st_mtime == st_new_last.st_mtime) { -+ *st = st_ret_last; -+ return 0; -+ } -+ st_new_last = st_tmp; -+ -+ /* Loop over new/ and cur/ */ -+ for (i = 0; i < 2; i++) { -+ sprintf(dir, "%s/%s", path, i ? "cur" : "new"); -+ sprintf(file, "%s/", dir); -+ l = strlen(file); -+ if ((dd = opendir(dir)) == NULL) -+ return 0; -+ while ((fn = readdir(dd)) != NULL) { -+ if (fn->d_name[0] == '.' || -+ strlen(fn->d_name) + l >= sizeof(file)) -+ continue; -+ strcpy(file + l, fn->d_name); -+ if (stat(file, &st_tmp) != 0) -+ continue; -+ st_ret.st_size += st_tmp.st_size; -+ st_ret.st_blocks++; -+ if (st_tmp.st_atime != st_tmp.st_mtime && -+ st_tmp.st_atime > atime) -+ atime = st_tmp.st_atime; -+ if (st_tmp.st_mtime > mtime) -+ mtime = st_tmp.st_mtime; -+ } -+ closedir(dd); -+ } -+ -+ if (atime) st_ret.st_atime = atime; -+ if (mtime) st_ret.st_mtime = mtime; -+ -+ *st = st_ret_last = st_ret; -+ return 0; -+} - -- cgit v1.2.1