summaryrefslogtreecommitdiff
path: root/CWRU
diff options
context:
space:
mode:
authorJari Aalto <jari.aalto@cante.net>1997-06-05 14:59:13 +0000
committerJari Aalto <jari.aalto@cante.net>2009-09-12 16:46:50 +0000
commitd166f048818e10cf3799aa24a174fb22835f1acc (patch)
tree1ca27f9243900f8b236d0cde6a3862002aea9e19 /CWRU
parentccc6cda312fea9f0468ee65b8f368e9653e1380b (diff)
downloadbash-d166f048818e10cf3799aa24a174fb22835f1acc.tar.gz
Imported from ../bash-2.01.tar.gz.
Diffstat (limited to 'CWRU')
-rw-r--r--CWRU/PLATFORMS7
-rw-r--r--CWRU/POSIX.NOTES3
-rw-r--r--CWRU/changelog9140
3 files changed, 1238 insertions, 7912 deletions
diff --git a/CWRU/PLATFORMS b/CWRU/PLATFORMS
index e479a296..4d2b4844 100644
--- a/CWRU/PLATFORMS
+++ b/CWRU/PLATFORMS
@@ -6,10 +6,13 @@ By chet:
SunOS 4.1.4
SunOS 5.5
BSDI BSD/OS 2.1
-Motorola SVR3.2
-FreeBSD 2.1.5
+FreeBSD 2.1.7
+NetBSD 1.2
AIX 4.2
+AIX 4.1.4
HP/UX 9.05, 10.01, 10.10, 10.20
+Linux 2.0.29 (libc 5.3.12)
+Linux 2.0.4 (libc 5.3.12)
By other testers:
diff --git a/CWRU/POSIX.NOTES b/CWRU/POSIX.NOTES
index 304289e1..af3acbcc 100644
--- a/CWRU/POSIX.NOTES
+++ b/CWRU/POSIX.NOTES
@@ -77,6 +77,9 @@ The following list is what's changed when `POSIX mode' is in effect:
20. Assignment statements preceding POSIX.2 `special' builtins persist
in the shell environment after the builtin completes.
+ 21. The `export' and `readonly' builtin commands display their output
+ in the format required by POSIX.2.
+
There is other POSIX.2 behavior that Bash does not implement.
Specifically:
diff --git a/CWRU/changelog b/CWRU/changelog
index d09a5b5a..331c9e60 100644
--- a/CWRU/changelog
+++ b/CWRU/changelog
@@ -1,8399 +1,1719 @@
- 6/2
- ---
-lib/readline/readline.c
- - fixed an off-by-one error in the kill ring reallocation code
- in rl_kill_text
-
-Makefile
- - replaced instances of /bin/sh with $(SHELL)
-
-Makefile, cpp-Makefile, documentation/Makefile
- - added a working `uninstall' target
-
-[1.14.0 FCS release made available for FTP]
-
- 6/3
- ---
-README
- - added note about building with gcc, same as in Makefile
-
-documentation/Makefile
- - some versions of make don't understand `$*' in a regular recipe;
- replace with features.dvi in the recipe for features.ps
-
- 6/4
- ---
-subst.c
- - fix up the calls to string_extract_double_quoted and
- string_extract_single_quoted in char_is_quoted so the initial
- value of the index is *after* the opening quote character
- - make sure we only return 1 from char_is_quoted if the index
- into the string after a call to string_extract_double_quoted or
- string_extract_single_quoted is *greater than* `eindex'
-
-lib/readline/complete.c
- - change the order and sense of the quoting tests in
- rl_complete_internal so that the expensive char_is_quoted
- is only called if `scan' actually is a word break character
+ 12/23/1996
+ ----------
+[bash-2.0 released]
-shell.c
- - fixed a typo in the test for a restricted shell
+ 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)
builtins/exec.def
- - need to include flags.h
+ - check that full_pathname(command) doesn't return NULL because of
+ inaccessible parent directories
- 6/6
- ---
-make_cmd.c
- - make sure that we don't try to walk down a null command tree
- in connect_async_list (tickled by `(command &) &')
- - if a command has the CMD_WANT_SUBSHELL bit set in its flags,
- don't even try to walk the command tree and move the `&';
- just connect the command with a null command using `&'
+support/config.sub
+ - recognize OpenBSD
execute_cmd.c
- - make sure we don't try to reference a command struct without
- first checking it (case '&')
-
- 6/7
- ---
-machines.h
- - fix a typo in the NeXT/i386 description; change the NeXT description
- to #define HAVE_RESOURCE if not already defined rather than putting
- -DHAVE_RESOURCE into the SYSDEP_CFLAGS
+ - 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)
- 6/9
- ---
-Makefile
- - make sure all of the rules that reinvoke `make' have the
- `-f bash-Makefile' before the assignment statements; some
- versions of make like it that way
-
-variables.c
- - make sure that `interactive' is set to 0 before evaluating the
- string containing an exported function obtained from the
- environment, so that it does not try to execute PROMPT_COMMAND
- (this may not be the best fix)
-
- 6/13
- ----
-documentation/Makefile
- - make sure all of the directories exist before trying to install
- doc files into them
-
-lib/readline/history.c
- - add a missing O_TRUNC to the open call for writing in
- history_truncate_file
-
-trap.c
- - run_interrupt_trap should only try to run the trap command if
- the value is not IMPOSSIBLE_TRAP_HANDLER
-
-Makefile
- - add `realclean'
-
-lib/readline/complete.c
- - do the same kind of double-quoting a replacement string if the
- user supplies the opening double quote as we would if we were
- adding both quotes ourselves
-
-variables.c
- - fixed the variable initialization so that history_control/HISTCONTROL
- can be inherited from a parent shell
-
-INSTALL, README, cpp-Makefile, documentation/bash.1, documentation/readline.3
- - ai.mit.edu -> prep.ai.mit.edu
-
-shell.c
- - fixed a problem with setting no_line_editing to the result of the
- check for running inside emacs, thereby losing any value
- initialized by the `-nolineediting' flag
-
-cpp-Makefile
- - `make distclean' will now remove the `installed-bash' link
+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
-print_cmd.c
- - fixed a problem with undefined variables when HAVE_VARARGS_H is
- not defined
+ 12/30
+ -----
+doc/Makefile.in
+ - don't install readline.3 by default
- 6/14
- ----
-lib/readline/history.c
- - fixed an error in the csh history expansion code so that the
- `-y' word designator now expands to `0-y' rather than `1-y'
+lib/tilde/tilde.c
+ - removed an unnecessary check for string[i] being non-null in
+ tilde_find_suffix
-lib/readline/isearch.c
- - changed an absolute check for a character falling within the
- ASCII 32-126 range (printable chars) with checks for CTRL_P
- and META_CHAR and a check against the value RUBOUT
- - changed a `break' to a `continue' so that the first non-matching
- character in the search string does not cause the search to
- end abruptly
- - initialize prev_line_found to 0 at the top of rl_search_history
- to avoid duplicate history lines being saved across searches
-
-lib/readline/rltty.c
- - consolidated repeated code for setting special characters into
- `SET_SPECIAL' defines
+ 12/31
+ -----
+support/config.{sub,guess}
+ - merged in changes from config.sub in autoconf-2.12 distribution
lib/readline/readline.c
- - include <sys/ioctl.h> if VSTATUS is defined
- - add bindable command rl_tty_status (unbound by default)
-
-lib/readline/funmap.c
- - assign bindable command name `tty-status' to rl_tty_status
-
-INSTALL
- - add note about compiling with gcc, same text as README
+ - in rl_newline, only call _rl_vi_done_inserting and _rl_vi_reset_last
+ if readline is currently in vi mode
lib/readline/display.c
- - many changes and tweaks to make redisplay work better when the
- prompt has invisible characters. These changes are non-optimal
- in that the prompt is redrawn more than it needs to be, but
- things are a hell of a lot better than they were
-
- 6/15
- ----
-documentation/Makefile
- - make a variable NROFF that people can set to `groff -Tascii' if
- they don't have real nroff
- - changed the suffix rules to use $<
+ - 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
+ 1/2
+ ---
support/bashbug.sh
- - if rmail doesn't exist or fails, save the bug report in
- ~/dead.bashbug
-
-execute_cmd.c
- - in setup_async_signals, only ignore SIGINT and SIGQUIT if job
- control is not active. If it is active and the job is restarted,
- SIGINT remains ignored, and the now-foregrounded job is not
- interruptible
+ - fixed a typo, thanks to eggert@twinsun.com
-subst.c
- - fixed up a problem with char_is_quoted that caused backslash-
- escaped characters to cause incorrect results
-
-tests/run-dollars, tests/dollar-at.sh, tests/dollar-star.sh
- - since the error messages produced by `cat' vary, changed `cat'
- to `recho' and updated the correct answers file
-
-machines.h
- - fixes to CRAY_STACKSEG_END definitions for different versions of
- Unicos on the YMP (from Bill Jones)
- - Motorola SVR4 machines have getcwd() and should not undef
- HAVE_GETCWD
- - on hpux 9.x, don't try to link with -lPW if compiling with gcc
- (for alloca)
-
-parse.y
- - an ugly fix for a compiler problem with structure assignment on
- the cray
-
- 6/16
- ----
-builtins/wait.def
- - replaced a call to sscanf with a validity check using all_digits()
- and a call to atoi, since a pid_t is not necessarily an int, and
- the sscanf clobbered the stack frame on systems where it is shorter
- than an int (e.g., SCO)
-
-lib/readline/display.c
- - since META_CHAR and the other macros only work with unsigned
- chars, make rl_character_len convert its argument to an unsigned
- char before testing it
-
-documentation/Makefile
- - use $(INSTALL_DATA) instead of $(CP) to install the man pages and
- info files
-
-cpp-Makefile
- - use INSTALL_PROGRAM and INSTALL_DATA to install binaries and
- documentation; pass both values to installs in subdirectories
+aclocal.m4
+ - new test, BASH_STRUCT_DIRENT_D_FILENO, testing for d_fileno member
+ of struct dirent
- 6/18
- ----
-builtins/ulimit.def
- - compensate for systems which define RLIMIT_OFILE instead of
- RLIMIT_NOFILE, or don't provide such a compatibility define
- themselves
+configure.in
+ - call BASH_STRUCT_DIRENT_D_FILENO
-shell.c
- - make maybe_execute_file check for directories and print an
- appropriate error message, since it's doing an fstat anyway
+config.h.in
+ - new #define for STRUCT_DIRENT_HAS_D_FILENO
-support/mksysdefs
- - added support for a `-s srcdir' option so it can find
- cpp-Makefile if ansi-Makefile is to be created
+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
-Makefile
- - call mksysdefs with -s $(srcdir)
+ 1/3
+ ---
+lib/readline/complete.c
+ - fix a memory-used-after-freed bug reported by Andreas Schwab
-jobs.c
- - add the magic #undef lines to avoid redefinition warnings on
- SunOS 4 only
+configure.in
+ - call BASH_CHECK_SOCKLIB only if getpeername is not found in libc
+ (ac_cv_func_getpeername = no)
- 6/20
+ 1/13
----
-cpp-Makefile
- - install `bashbug' with `make install'
-trap.c
- - make sure that `interactive' is set to 0 when running trap
- commands
+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)
-builtins/umask.c
- - fixed typo in usage error message
+variables.h
+ - fix assign_array_from_string so that it rejects attempts to assign
+ to readonly variables
subst.c
- - fix process_substitute to set subshell_environment
-
-jobs.c, nojobs.c
- - only mess with the terminal settings for an interactive shell
- that is not in a subshell environment
-
- 6/21
- ----
-lib/readline/history.h
- - add extern declaration of history_get
-
-builtins/fc.def
- - make history replacement when using `r' or `fc -s' obey the
- setting of HISTCONTROL
-
-general.c
- - in canonicalize_pathname, preserve a double // at the start
- of an absolute pathname, since that means something special
- for the network directory system
+ - 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
-README, INSTALL
- - updated information about submitting bug reports
-
-lib/readline/vi_mode.c, lib/readline/isearch.c
- - make sure unistd.h is included before rldefs.h, if
- HAVE_UNISTD_H is defined
-
- 6/24
- ----
-lib/readline/complete.c
- - add `#' to the list of characters which cause a completed filename
- to be quoted
-
-execute_cmd.c
- - be more careful about closing pipe file descriptors in do_piping;
- don't want to have `dup2(i, i); close(i);' problem
-
-lib/readline/{keymaps,readline}.h
- - include local copies of include files if READLINE_LIBRARY is
- defined, otherwise include the `official, installed' versions
- using #include <readline/xxx.h>
-
-lib/readline/*.c
- - define READLINE_LIBRARY before including any files
- - include only `local' copies of include files using #include "xxx.h"
- rather than #include <readline/xxx.h>
-
- 6/26
+ 1/14
----
-execute_cmd.c
- - check for clobbering the bash input stream before closing a file
- descriptor due to an r_close_this redirection
-
-lib/readline/history.c
- - made history_expand inhibit history expansion if the history
- expansion char is set to 0
+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
-lib/readline/chardefs.h
- - moved savestring() definition to rldefs.h
- - changed lowercase_p, uppercase_p, to_lower, to_upper defines to
- use <ctype.h> macros rather than assume ASCII
+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
-lib/readline/bind.c, general.c, general.h
- - use strcasecmp, strncasecmp instead of str[n]icmp if
- HAVE_STRCASECMP is defined
+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
-cpp-Makefile
- - pass -DHAVE_STRCASECMP to builds in the libraries, primarily
- readline
+jobs.h
+ - new extern declaration for get_job_by_pid
-machines.h
- - add HAVE_STRCASECMP to the entries for BSD/386, NetBSD, FreeBSD,
- and 4.4 BSD
+builtins/jobs.def
+ - call get_job_by_pid if an argument appears to be a pid rather
+ than a jobspec
-builtins/hash.def
- - add a fourth parameter to remember_filename, the initial value
- of times_found (0 if we're just looking it up for `hash', 1
- for the command execution code)
+configure.in
+ - configure --without-gnu-malloc automatically on MachTen 4.x
-execute_cmd.c
- - call remember_filename with an initial value of 1 for times_found
+builtins/cd.def
+ - change to mindist() so that a best guess of `.' returns 3,
+ which means not reasonable
-builtins/wait.def
- - handle a null argument with an error message
+lib/posixheaders/memalloc.h
+ - changed hpux_9 to __hpux, since the new config stuff doesn't
+ define hpux_9
-builtins/common.c
- - parse_and_execute now takes a third parameter: the value for
- `interactive' while it is executing commands
+subst.c
+ - fix parameter_brace_patsub to handle null patterns (doesn't
+ do anything)
-bashline.c, jobs.c, parse.y, shell.c, subst.c, trap.c, variables.c
- - set the new third argument to parse_and_execute appropriately
+oslib.c
+ - slight change to bzero replacement
-builtins/eval.def, builtins/fc.def, builtins/source.def
- - set the new third argument to parse_and_execute appropriately
+support/bashbug.sh
+ - changed TEMP to be /tmp/bbug.$$ as a sop to systems with 14-char
+ file names
-builtins/help.def
- - changed a call to strnicmp to strncmp when trying to find what
- to give help on; it seems more correct
+doc/bashref.texi
+ - add note to POSIX Mode section that the output of `set' when
+ invoked without arguments is sorted when in POSIX mode
- 6/27
+ 1/15
----
-machines.h
- - cleaned up the SunOS section so it no longer relies on
- HAVE_SHARED_LIBS being defined; it uses SunOS4 and SunOS5
- instead
+support/recho.c
+ - a couple of changes prompted by a `gcc -Wall'
-support/mksysdefs
- - define SYSDEF to be SunOS4 or SunOS5 depending on the output
- of uname rather than looking for ld.so
+subst.c
+ - changed ASSIGN_RETURN macro to use the do...while(0) idiom to
+ avoid problems with its multiple statements
- 6/29
- ----
-machines.h
- - minor change to the ardent titan machine description
- - move the ardent and stardent descriptions before the
- mips riscos description
+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)
-print_cmd.c
- - ardent machines also need the extern declaration for printf
+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
-make_cmd.c
- - connect_async_list should do its work only if the lists to be
- backgrounded are connected with `;'. This makes `;' bind tighter
- than `&', so only the last job in the list is backgrounded. All
- other lists should have the entire thing put in the background
+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
-parse.y
- - added a function `print_prompt' to take care of displaying the
- prompt string if readline is not being used. This fixes problems
- with the prompt being displayed before the status of completed
- jobs is printed
+test.c
+ - began removing the remains of the STANDALONE code, since test is
+ included in GNU shellutils
- 6/30
+ 1/16
----
-builtins/fg_bg.def
- - `fg' and `bg' now print error messages if invoked when job control
- is disabled
-
-lib/readline/rltty.c
- - if not compiled into the shell, make get_tty_settings get and set
- the window size. This noop stops the process if it is started in
- the background
+lib/readline/{readline,display}.c
+ - a couple of slight changes to build on Win95 using djgpp (reported
+ by x-aes@telelogic.se)
-lib/readline/readline.c
- - provide a function version of savestring, if not being compiled
- into the shell, since the macro has been removed from the
- `public' header files
-
-lib/readline/readline.h
- - provide all extern function declarations without checking whether
- VI_MODE or PAREN_MATCHING are defined. It does not hurt to define
- them if they are not used and not in the library, and other
- applications using readline can't tell whether or not VI_MODE was
- defined when the library was compiled anyway
-
- 7/1
- ---
-machines.h
- - add #undef HAVE_DIRENT_H to the ardent titan description
-
- 7/2
- ---
-lib/readline/chardefs.h
- - removed META_P define, renamed CTRL_P to CTRL_CHAR
-
-lib/readline/bind.c, lib/readline/isearch.c
- - changed instances of CTRL_P to CTRL_CHAR
-
-lib/readline/search.c
- - include <unistd.h> before rldefs.h, if HAVE_UNISTD_H is defined
-
-lib/readline/readline.c
- - declare PC, UP, and BC as extern rather than `local' to the
- readline library
+Makefile.in
+ - changed TERMCAP_LIBDIR to TERM_LIBDIR, so building the termcap
+ library (if necessary) should work now
- 7/5
- ---
bashline.c
- - implement command word completion inside of command substitution
- with a new function: `command_subst_completion_function'
-
-subst.c
- - new function to help with command subst completion: unclosed_pair
-
-lib/readline/complete.c
- - new variable rl_filename_quoting_desired, which can be set to 0
- to inhibit the quoting of filenames after completion
-
-lib/readline/readline.h
- - declare rl_filename_completion_desired and
- rl_filename_quoting_desired
-
-builtins/bind.def
- - don't save the old value of rl_outstream before initializing
- readline -- it saves garbage values and screws up readline
-
-parse.y
- - don't have private state telling whether or not readline has
- been initialized -- use bash_readline_initialized like other
- functions in bashline.c
-
-lib/readline/readline.c
- - make the default 8-bit behavior be based on whether LC_CTYPE is
- defined and its value (accept iso-8859-1 or iso_8859_1)
-
- 7/6
- ---
-variables.c
- - fix up the declaration of getenv() for convex machines
-
- 7/7
- ---
-lib/readline/readline.c
- - fixed up typos in the declaration of `savestring'
-
-lib/readline/history.c
- - fixed an off-by-one error in the ADD_CHAR macro which caused one
- extra character to be overwritten, causing the gnu malloc to abort
- when that one character was at the end of an allocated block
- - changed the ADD_STRING macro to avoid some unnecessary xreallocs
-
-lib/readline/display.c
- - fixed a problem with move_cursor_relative -- function now returns
- immediately if it has nothing to do
- - fixed another problem with displaying prompts with invisible chars
-
-lib/readline/chardefs.h
- - fixed the CTRL macro to be right (agree with the BSD kernel, for
- example)
+ - 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
-cpp-Makefile
- - fixed typo in the `install' recipe
-
- 7/8
- ---
-support/srcdir
- - fixed to handle srcdir when it begins with ./ or ../ to handle
- $(srcdir) being a relative path better
-
-cpp-Makefile
- - changed some include paths to $(BUILTIN_ABSSRC) when building in
- `builtins' to handle $(srcdir) being a relative path
- - change the `chmod' on bashbug to turn on read and execute for all
- - added a couple of definitions to make it easier for a later
- `configure' program
+bashjmp.h
+ - include "posixjmp.h" for possible redefinitions of setjmp/longjmp
+ and procenv_t
-support/mksysdefs
- - added a -i option to specify an alternate set of directories to
- search for include files
+ 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/readline/bind.c
- - in rl_read_init_file, when skipping whitespace at the start of
- the line, decrement `i' so that we don't jump past the start
- of the next line
+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
-machines.h
- - SCOv4 has a `robust' opendir that checks that you're actually
- opening a directory
+examples/bashdb/bashdb.{pre,fns}
+ - a couple of minor fixes; it actually has a chance of working now
- 7/11
+ 1/21
----
-lib/readline/complete.c
- - make sure a word break character is unquoted before using it to
- separate out the current word for completing
-
-machines.h
- - new machine description: NetBSD on motorola m68k machines like
- the hp300
- - undef HAVE_GETWD in the generic svr4 machine description, like
- other svr4 descriptions
-
-lib/readline/rltty.c
- - make sure to fflush (rl_outstream) after toggling the setting
- of the keypad and meta key
+config.h.in
+ - add a define for <dlfcn.h>, HAVE_DLFCN_H
-portbash/libc.sh
- - add a test for OPENDIR_NOT_ROBUST
+configure.in
+ - look for <dlfcn.h>, define HAVE_DLFCN_H if found
-support/getcppsyms.c
- - output __svr4__ if we find __uxps__ (this makes the Fujitsu port of
- SVR4 to the sparc build OK)
+builtins/enable.def
+ - include <dlfcn.h> only if HAVE_DLFCN_H is defined
- 7/12
- ----
lib/readline/display.c
- - more display-related fixes when the prompt has invisible chars;
- this time for screen updates when moving between screen lines
+ - 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
-lib/readline/readline.c, lib/readline/display.c
- - changes to make readline work with terminals that have auto-wrap
- from Per Bothner (new function _rl_update_final, term_xn changes,
- some efficiency speedups, new function space_to_eol)
+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
- 7/13
+ 1/22
----
-lib/readline/display.c
- - after moving up screen lines using term_up in _rl_move_vert, if
- the new screen line is 0, _rl_last_c_pos needs to be adjusted
- to take invisible characters into account. This was the source
- of many bugs
+mailcheck.c
+ - fixed a problem in make_default_mailpath() where a slash was not
+ added between the default mail directory and the username
-
- 7/14
+ 1/23
----
-documentation/Makefile
- - change instances of `groff' to `${GROFF}', GROFF is set to
- `groff' by default
-
-general.c, variables.c
- - moved `qsort_string_compare' from variables.c to general.c
+stringlib.c
+ - added a fourth parameter to ansicstr: the length of the returned
+ string
-general.h, variables.h
- - moved declaration of `qsort_string_compare' from variables.h
- to general.h
+externs.h
+ - changed declaration of ansicstr
-alias.c, lib/readline/funmap.c
- - moved qsort auxiliary functions after their use and added
- forward declarations to avoid warnings from ANSI C compilers
+parse.y
+ - changed call to ansicstr -- saves a call to strlen
-memalloc.h
- - hpux_9 needs alloca declared as `extern void *' if __STDC__
- is defined
+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
-support/mksysdefs
- - removed HAVE_SHARED_LIBS entirely
- - make a call to /bin/uname -X for SCO machines to avoid running
- a different uname from the $PATH
+doc/{bash.1,bashref.texi}, builtins/trap.def
+ - modified the `trap' documentation to make it clearer that trap
+ takes multiple signal specs as arguments
-machines.h
- - new descriptions: Intel i860 running SVR4, Tahoe running 4.3 BSD
- - changed descriptions: Mips/RiscOS, DG AViiON, unknown machine
+jobs.c, nojobs.c, jobs.h
+ - renamed initialize_jobs to initialize_job_control, added an
+ argument (force)
jobs.c
- - changes to how the shell handles foreground jobs dying of SIGINT:
- an interactive shell using job control will no longer
- act as if it received a SIGINT if the foreground job
- dies from a SIGINT
-
- a non-interactive shell or shell without job control tries
- to differentiate between SIGINTs it has seen (in
- wait_sigint_handler) and a foreground job dying of a SIGINT
- not sent from the keyboard, and runs the normal SIGINT code
- only in the former case
-
- 7/15
- ----
-support/mksysdefs
- - check for ${UNAME}${RELEASE} expanding to `SunOS4*' or `SunOS5*'
- to set SYSDEF to SunOS4 or SunOS5, respectively. Apparently
- this does not work for Solbourne
+ - 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
- 7/18
- ----
+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
-lib/readline/rltty.c
- - if output is being flushed on termios systems, loop until the
- FLUSHO bit is no longer set in the termios struct
+sig.h
+ - new extern declaration for initialize_terminating_signals
-support/mksysdefs
- - added a -A flag to force creation of ansi-Makefile
+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
-machines.h
- - new entry for Tandem machines running SVR3
+execute_cmd.c
+ - save and restore command->flags in time_command, so you can use
+ `time command' in a loop
- 7/19
+ 1/24
----
-lib/readline/rldefs.h
- - include <termcap.h> if HAVE_TERMCAP_H is defined
- - use <termio.h> stuff if HAVE_TERMIO_H is defined and _POSIX_VERSION
- is not defined
-
-lib/readline/rldefs.h, lib/readline/history.c
- - include "config.h" if HAVE_CONFIG_H is defined
-
-lib/readline/{rldefs.h,signals.c,readline.c}
- - WINSIZE_IN_IOCTL_H -> GWINSZ_IN_SYS_IOCTL for compatibility with
- other GNU programs
+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)
-lib/readline/doc/Makefile
- - fixed up to create the readline and history manuals in dvi and
- ps format
+lib/readline/undo.c
+ - don't include <setjmp.h>, it's not needed
+
+lib/readline/{util,readline}.c
+ - include "posixjmp.h" instead of <setjmp.h>
+ - 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)
+
+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 `('
-lib/readline/Makefile
- - changes inspired by the standalone readline-2.0 distribution
+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
- 7/20
+ 1/27
----
-lib/readline/history.c
- - new function, history_is_stifled (), returns history_stifled
- - set history_state flags member in the history state functions
-
-lib/readline/history.h
- - reorganized the function declarations, added missing declarations
- - history_stifled is no longer exported by the library
- - added a `flags' member to the HISTORY_STATE structure
-
-bashline.c
- - use history_is_stifled () instead of history_stifled
-
-lib/readline/readline.c, lib/readline/vi_mode.c
- - filled in correct argument declarations for functions called via
- keymaps (count, key)
+support/bashbug.sh
+ - ask for confirmation before sending the bug report
-lib/readline/complete.c
- - efficiency improvement for compare_strings
+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
- 7/21
+ 1/28
----
-examples/dirfuncs
- - new directory functions from ksh book, contributed by
- Ken Konecki (kenk@wfg.com)
-
-machines.h
- - hpux_8 and hpux_9 should both #undef HAVE_ALLOCA unless gcc is
- being used
+lib/readline/readline.h
+ - added a couple of extern declarations for variables described in
+ the documentation but heretofore undeclared
- 7/22
- ----
-bashline.c
- - fixed up command_word_completion_function so that filenames with
- leading tildes are completed correctly
+builtins/ulimit.def
+ - try to catch some classes of integer overflows before calling
+ set_limit
- 7/26
+ 1/29
----
-builtins/read.def
- - if -r not given, make sure CTLESC is removed from input string
- when reading \<newline>
-
-lib/readline/readline.c
- - new function bind_arrow_keys, which binds vt100/ansi arrow key
- escape sequences after reading the termcap definition and the
- inputrc file
- - new function rl_yank_last_arg, which does what insert-last-arg
- does in bash
-
-lib/readline/emacs_keymap.c
- - remove default bindings to rl_arrow_keys for M-[ and M-O
- - rl_yank_last_arg is now bound to `M-.' and `M-_' in
- emacs_meta_keymap
-
-subst.c
- - when performing process substitution on systems with /dev/fd,
- make sure the child clears the slot in dev_fd_list it gets
- from its parent so the file descriptor does not get closed
- inappropriately if reallocated by, e.g., pipe(2)
-
-bashline.c
- - removed insert_last_arg and the calls to bind in to `M-.' and `M-_'.
- `insert-last-argument' is now bound to rl_yank_last_arg for
- backwards compatibility
-
-lib/readline/funmap.c
- - `yank-last-arg' is now a named command for rl_yank_last_arg
-
-
-documentation/bash.1, documentation/readline.3
- - add description of yank-last-arg as one of the readline user
- commands
+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 `...'
-lib/readline/doc/rluser.texinfo
- - added description of yank-last-arg
+aclocal.m4
+ - new macro, BASH_STRUCT_WINSIZE, which looks for `struct winsize'
+ in <sys/ioctl.h> (or one of the files it includes)
-builtins/getopts.def
- - fixed a typo in the int-to-string code computing the value to set
- OPTIND to: had '\0' instead of '0'
- - made getopts handle the case where there are more than 9 dollar
- variables (where rest_of_args is non-null) correctly
+configure.in
+ - call BASH_STRUCT_WINSIZE
+ - slightly reorganized the calls to bash-specific macros
- 7/28
- ----
-lib/readline/display.c
- - fixes to the display code for single-line-display in the presence
- of prompts containing invisible characters
+config.h.in
+ - add an `#undef STRUCT_WINSIZE_IN_SYS_IOCTL'
-lib/readline/readline.c
- - if we are using horizontal scrolling and we have term_xn, decrement
- the screenwidth by 1, since we won't be doing any line wrapping
+jobs.c, nojobs.c
+ - only look in sys/ptem.h for struct winsize if
+ STRUCT_WINSIZE_IN_SYS_IOCTL is not defined to cpp
- 7/31
+ 1/30
----
-jobs.c
- - new variable `freeze_jobs_list' to set when changes to the jobs
- list or status of jobs in the list (other than calling something
- like `jobs -n') are undesirable. This is set when execuing traps
- on SIGCHLD
-
- 8/1
- ---
-subst.c
- - check that `~' is unquoted before performing tilde expansion in
- an assignment statement
+.{distribution,patchlevel}
+ - renamed to _{distribution,patchlevel}
- 8/3
- ---
-bracecomp.c
- - keep brace completion from dumping core if there is only one
- match
-
-lib/readline/chardefs.h
- - add a define for digit_p, which returns the value of isdigit()
-
-lib/readline/readline.c
- - added function equivalents for uppercase_p, lowercase_p, to_upper,
- to_lower, pure_alphabetic, digit_p, and digit_value
- - replaced calls to numeric () with calls to digit_p, removed
- definition of numeric ()
-
-lib/readline/history.c
- - digit -> digit_p
-
-lib/readline/vi_mode.c
- - replaced uses of the `isletter' define to use pure_alphabetic
- from chartypes.h
- - replaced uses of `numeric' with calls to digit_p
- - added do...while(0) to `exchange' define
-
-
- 8/4
- ---
-execute_cmd.c
- - make sure execute_function saves and restores the current loop
- count with unwind_protect_int
-
-documentation/features.texi
- - change the `Shell Command Line Options' section to `Invoking
- Bash' to be closer to the GNU coding standards
-
- 8/5
- ---
-builtins/read.def
- - fixed up a memory leak and made behavior correct when no
- variables given and backslash escaped at least one input char
- - if we added CTLESC anywhere while reading the input string,
- make sure we call dequote_string on each word of the input
- before calling bind_variable with that string
-
- 8/6
- ---
-lib/readline/readline.h
- - removed definition of rl_show_star -- the variable no longer
- exists
-
-lib/readline/readline.h, lib/readline/history.h
- - reorganized to follow texinfo manual structure
-
-lib/readline/bind.c
- - rl_function_dumper is now static
- - rl_list_funmap names does not take any arguments
-
-builtins/bind.def
- - rl_list_funmap names does not take any arguments
-
-lib/readline/readline.c, lib/readline/signals.c
- - rl_init_argument ->_rl_init_argument
+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
-lib/readline/rltty.c
- - remove declaration and references to output_was_flushed
+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
-support/getcppsyms.c
- - if __uxps__ is defined, define __uxps__ and __svr4__
+support/mkversion.sh
+ - new shell script to handle updating version.h, replaces mkversion.c
+ (which is now overkill)
- 8/9
- ---
support/mkdist
- - added a -r option to set the `root name' of the distribution
- (e.g., `bash' or `readline')
-
- 8/10
- ----
-input.c
- - if check_bash_input sees that default_buffered_input is about
- to be the target of a redirection, but the buffered input stream
- is not the current input stream (e.g. as the result of an
- `eval' while in a script, change default_buffered_input to a
- new fd and use a new variable `bash_input_fd_changed' to note
- the change
-
-parse.y
- - if pop_stream sees that default_buffered_input has changed while
- a buffered stream was on the save stack (because
- bash_input_fd_changed is non-zero), then make the popped stream
- and the corresponding buffer use the new fd
+ - don't bother with writing .distribution and .patchlevel files,
+ since they're no longer distributed
-test.c
- - fixed an off-by-one error in test_stat when testing /dev/fd/n.
+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
-cpp-Makefile
- - add -I$(incdir) to CPPFLAGS
- - add `incdir = $(prefix)/include' assignment
+doc/Makefile.in
+ - added support for the `install-info' command to update the info
+ directory file after installing bash.info
- 8/11
+ 1/31
----
-lib/readline/signals.c
- - changed some calls to signal () to call rl_set_sighandler()
- - call _rl_redisplay_after_sigwinch from the sigwinch handler
- to do better redisplay of wrapped command lines and multi-line
- prompts
-
-builtins/suspend.def
- - changed some calls to signal () to call set_signal_handler()
-
-lib/readline/*.c
- - include config.h before anything else if HAVE_CONFIG_H is defined
-
-lib/readline/readline.c
- - renamed rl_set_mark to _rl_set_mark_at_pos
- - call _rl_vi_initialize_line from rl_initialize if the current
- editing mode is vi mode
- - only output a term_cr in crlf if term_cr is non-null
-
-lib/readline/readline.h
- - added declarations for rl_vi_set_mark and rl_vi_goto_mark
-
-lib/readline/readline.c, lib/readline/readline.h
- - added a new bindable command to set the mark, rl_set_mark
-
-lib/readline/funmap.c
- - new bindable function with name `set-mark', bound to rl_set_mark
- - new bindable vi-mode functions with names `vi-set-mark' and
- `vi-goto-mark'
-
-documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
- - added documentation for `set-mark' (unbound)
-
-lib/readline/vi_mode.c
- - new vi-command mode commands to save marks (the vi `m' command)
- and go to saved marks (the ``' command)
- - new function _rl_vi_initialize_line called from rl_initialize
- to set up the line state in vi mode. Right now this just resets
- all the marks
+builtins/help.def
+ - fix core dump with `help --'
-lib/readline/vi_keymap.c
- - new vi command-mode bindings to set the mark (`m') and to go to
- a saved mark (``')
+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
-documentation/readline.3
- - added vi-set-mark and vi-goto-mark to list of key bindings for
- vi command mode
+test.c, general.c
+ - moved group_member from test.c to general.c
-lib/readline/{readline.c,display.c}
- - renamed term_xn to _rl_term_autowrap
+externs.h, general.h
+ - moved extern declaration of group_member from externs.h to general.h
-lib/readline/display.c
- - new function _rl_redisplay_after_sigwinch to encapsulate the
- necessary redisplay code after a SIGWINCH is received
+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
variables.c
- - only call find_user_command on the shell name in shell_initialize
- if shell_name is not an absolute program name
- - call canonicalize_pathname on the full shell pathname after
- calling make_absolute on it if the shell name starts with a `.'
-
-siglist.h
- - FreeBSD does not need a definition of sys_siglist[]
+ - new dynamic array variable: GROUPS, expands to the group set as
+ obtained with getgroups() (or whatever initialize_group_array()
+ makes)
- 8/12
- ----
-lib/readline/rltty.c
- - don't try to use FLUSHO unless FLUSHO is defined
+doc/{bash.{1,html},bashref.texi}
+ - added description of GROUPS variable
-cpp-Makefile
- - make sure to pass $(CC) to the make in the lib/malloc subdirectory
+test/test-tests
+ - before modifying the setgid bit on /tmp/setgid, try to change its
+ group to ${GROUPS[0]}
-lib/readline/readline.c
- - don't declare PC, UP, and BC as extern; it causes too many problems
+ 2/3
+ ---
+aclocal.m4
+ - new autconf macro, BASH_MISC_SPEED_T, to see if speed_t is defined
+ in <sys/types.h>
- 8/13
- ----
-machines.h
- - add -DNO_SBRK_DECL to SYSDEP_CFLAGS for SVR4.2 on i386
+configure.in
+ - call BASH_MISC_SPEED_T
-support/mksysdefs
- - new variable UNAME_S for the output of `uname -s'
- - if uname -s does not output the same thing as uname, and uname -s
- outputs UNIX_SV, then set UNAME to UNIX_SV. Some versions of i386
- SVR4.2 make `uname' equivalent to `uname -n'
+config.h.in
+ - add `#undef SPEED_T_IN_SYS_TYPES'
-lib/readline/memalloc.h
- - removed from the library; not needed since readline does not use
- alloca
+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 <termcap.h>
-lib/readline/{history.c,isearch.c,search.c,rldefs.h}, lib/tilde/tilde.c
- - no longer include memalloc.h
+support/mksignames.c, siglist.c
+ - add support for 4.4 BSD SIGLOST
-lib/readline/Makefile
- - remove dependencies on memalloc.h
+support/config.guess
+ - add support for recognizing QNX based on `uname' output
-lib/readline/signals.c
- - overhauled signal handling based on ideas from Bruno Haible
- (haible@ma2s2.mathematik.uni-karlsruhe.de) so that readline
- saves and restores the signal mask and flags on Posix systems
- - don't include fcntl.h, sys/file.h, errno.h, or stdlib.h
- - ignore SIGALRM during rl_signal_handler like SIGINT until the
- old handler is installed, on non-Posix or non-BSD systems
- - new define SIGHANDLER_RETURN, dependent on the value of
- VOID_SIGHANDLER
- - use RETSIGTYPE instead of `sighandler' as the signal handler
- return type; it's the name autoconf uses. If not defined,
- set up from VOID_SIGHANDLER
-
-lib/readline/rltty.c
- - call control_meta_key and control_keypad from rl_deprep_terminal
- before putting the terminal back into ICANON mode to avoid
- messing up the tty driver
-
- 8/15
- ----
-cpp-Makefile
- - changes so that fewer -Idir arguments are passed to the make
- in ./builtins
+Makefile.in
+ - make sure recho and zecho are compiled with the same set of CC
+ options as the rest of the sources
- 8/16
- ----
lib/readline/bind.c
- - use KEYMAP_SIZE instead of 128 in rl_invoking_keyseqs_in_map
-
-lib/readline/complete.c
- - qsort the array of matches omitting matches[0], which must stay
- in place no matter what, even if strcmp doesn't compare unsigned
- chars correctly
- - some fixes to the loop that prints the list of completions
-
-lib/readline/keymaps.c
- - run the loop up to 127 when creating a new keymap in rl_make_keymap
-
-input.h, general.h, lib/readline/keymaps.h, lib/readline/tilde.h
- - use _FUNCTION_DEF instead of __FUNCTION_DEF
-
-lib/readline/parens.c
- - include "config.h" if HAVE_CONFIG_H is defined
- - include <sys/select.h> if HAVE_SYS_SELECT_H is defined
- - use HAVE_SELECT instead of FD_SET as the `configuring define';
- define HAVE_SELECT if it is not already defined but FD_SET is
+ - change calls to rl_generic_bind to cast the third argument to
+ (char *) where necessary
-lib/readline/readline.c, lib/readline/rltty.c
- - the __GO32__ include file is <pc.h>
-
-lib/tilde/tilde.c
- - rewrote tilde_expand_word, eliminated static u_name array in
- favor of using xmalloc
-
-lib/tilde/tilde.h
- - use single leading underscore for file inclusion guard
-
-lib/readline/vi_mode.c
- - use KEYMAP_SIZE rather than a literal 127 as the loop limit when
- creating the overstrike keymap
-
-support/install.sh
- - new file, from the make-3.71 distribution
-
- 8/17
- ----
-lib/readline/complete.c, lib/readline/readline.h
- - new variable, rl_basic_quote_characters, used to see
- if a word break character was a quoting character, so we can
- do appropriate quoting after the completion
-
-lib/readline/parens.c
- - use rl_basic_quote_characters when trying to find a matching
- open paren
-
-lib/readline/doc/rltech.texinfo
- - description of rl_basic_quote_characters
-
- 8/18
- ----
-newversion.c
- - renamed to support/mkversion.c, which builds to mkversion
-
-cpp-Makefile
- - changed to use support/mkversion
- - removed instances of $< except in suffix rules -- some makes don't
- handle those right
-
-lib/readline/rldefs.h
- - make sure to #undef HAVE_DIRENT_H on NeXT machines
-
-
- 8/19
- ----
-lib/readline/readline.h
- - removed some duplicate function declarations
-
-trap.h
- - define DEBUG_TRAP as NSIG for the last slot in trap_list
- - define EXIT_TRAP as 0
- - declare trap_list as array of unknown size, since this is just a
- header file
-
-trap.c
- - extend trap_list and sigmodes to NSIG+1
- - initialize DEBUG_TRAP to do nothing; changes to functions to handle
- DEBUG_TRAP
- - let decode_signal return OK if NSIG is given, even though this will
- vary between systems, for DEBUG_TRAP
- - make reset_signal_handlers and restore_original_signals loop from
- 1 to NSIG, not 0 to NSIG
- - change GET_ORIGINAL_SIGNAL to try to get the original signal handler
- only if `sig' is less than NSIG
- - restore_default_signal just frees the trap string for both EXIT_TRAP
- and DEBUG_TRAP
- - run_debug_trap: new function to run traps on DEBUG
- - free_trap_command: new function to free a trap string if it is
- really a command and not one of the special trap values
- - if a SIGINT trap resets the SIGINT trap string, free the old string
- - new function: set_debug_trap(char *), which will reset the DEBUG
- trap string, suitable for calling from an unwind-protect handler
-
-signames.c
- - arrange things so that signal_names[NSIG] == "DEBUG"
-
-builtins/trap.def
- - make sure traps on DEBUG are printed
+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
execute_cmd.c
- - call run_debug_trap at the end of the `cm_simple' case in
- execute_command_internal
- - change execute_function so that traps on DEBUG do not propagate
- into the function
-
-documentation/bash.1, documentation/features.texi
- - documented the new DEBUG trap
-
- 8/20
- ----
-shell.c, config.h
- - made the name of the restricted shell configurable in config.h;
- the option is RESTRICTED_SHELL_NAME
-
-shell.c
- - if the shell is invoked as `sh', enter Posix.2 mode after running
- /etc/profile and ~/.profile
-
-builtins/read.def
- - added a -p option for a prompt string, which is displayed before
- trying to read anything
-
-documentation/bash.1
- - description of `read -p'
- - description of new -r and -s options to `jobs'
-
-documentation/features.texi
- - description of new -r and -s options to `jobs'
-
-jobs.c
- - new functions: list_running_jobs, list_stopped_jobs
- - list_jobs -> list_all_jobs
- - new function `print_job' to do the work for all of the list*jobs
- functions
- - list_one_job type now void, calls print_job to do the work
-
-jobs.h
- - new declarations for list_running_jobs, list_stopped_jobs
- - list_one_job now void
- - list_jobs -> list_all_jobs
-
-builtins/jobs.def
- - new options: -r to print only running jobs, -s to print only
- stopped jobs
+ - 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
- 8/22
- ----
-lib/readline/readline.c
- - don't try to expand a null prompt string
+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
-subst.c
- - remove special handling of hostname_completion_file and
- history_control; HOSTFILE and HISTCONTROL are the acceptable
- names
- - new function sv_histignore; call if HISTIGNORE variable is
- assigned to
+ 2/4
+ ---
+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
bashhist.c
- - new functions and declarations for handling HISTIGNORE variable
- and its specifications for command lines to ignore
- - change maybe_add_history to call history_should_ignore if the
- HISTCONTROL tests are passed
-
-documentation/bash.1, documentation/features.texi
- - removed mention of history_control and hostname_completion_file
- - added description of HISTIGNORE
-
- 8/23
- ----
-array.c, array.h
- - promoted to the shell mainline code; the `array' subdir is now
- gone
-
-variables.h
- - include `array.h' for the ARRAY typedef
+ - pre_process_line needs to protect all occurrences of hist_verify
+ with #ifdef READLINE
-variables.c
- - changes to assignment() to handle array assignments a[x]=b
- - split off the creation of new variables into a new function:
- make_new_variable
- - split off the construction of variable values for assignments and
- bindings into a new function: make_variable_value
- - new function: bind_array_variable, to handle the addition of
- new array variables and indices
-
-subst.c
- - changes to do_assignment_internal to handle a[x]=b:
- parse the subscript out of the name and call evalexp() on it
- call bind_array_variable to do the value assignment
- - change the printing of assignment statements when -x is in effect
- to before the variable binding is attempted, so any error messages
- look better
- - new functions for referencing indexed arrays and to find the length
- of arrays or array indices
-
- 8/24
- ----
-expr.c
- - fixed up error reporting to use get_name_for_error if not executing
- a builtin
-
-subst.c
- - everywhere evalexp() is called, use maybe_expand_string to expand
- the expression (calls expand_string if necessary)
-
-subst.h
- - extern declarations for array convenience functions exported to the
- rest of the shell
+builtins/shopt.def
+ - hist_verify needs to be protected with #ifdef READLINE, not
+ #ifdef HISTORY
-variables.c
- - more new convenience array functions: make_new_array_variable and
- convert_var_to_array
+ 2/5
+ ---
+support/config.{guess,sub}, configure.in
+ - chages to better support the Harris Night Hawk
-builtins/declare.def
- - additions to declare_internal to add a -a flag which makes array
- variables, and the requisite semantics (declare +a does not work,
- declare -a name=value does not work, etc.)
- - code to support the ksh-like declare a[] syntax to make array
- variables
+[many files]
+ - changes for things pointed out by gcc -Wall
-builtins/setattr.def
- - made set_or_show_attributes understand array variables and `-a'
+lib/glob/Makefile.in
+ - make sure -DSHELL is included in CCFLAGS so that globbing is
+ interruptible
-builtins/set.def
- - changes to make `unset name' work, where name is an array variable
- - changes to make `unset name[xxx]' work
+lib/malloc/malloc.c
+ - extern declaration for botch: if botch is #defined, it should be
+ the name of a void function
- 8/25
- ----
+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
lib/readline/readline.c
- - make sure meta characters are added to a keyboard macro as
- ESC-char if we are converting meta chars to ascii
- - change rl_unix_word_rubout to handle repeat counts
- - move the check of LC_CTYPE from rl_initialize to
- readline_initialize_everything, where it should have been
- all along
+ - 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
-error.c
- - make sure <sys/types.h> is included before <fcntl.h>
+doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
+ - changed description of `universal-argument' to describe how
+ to terminate a numeric argument
-machines.h
- - new entry for Bull DPX2
+ 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
-lib/tilde/tilde.c
- - include <sys/types.h> before <pwd.h>
+ 2/7
+ ---
+unwind_prot.c
+ - changed bcopy to FASTCOPY
-variables.c
- - PS1 and PS2 are no longer non-unsettable
+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
- 8/26
+ 2/10
----
-variables.c
- - PPID, UID, and EUID, since they are read-only, need not appear on
- the `non-unsettable' list
- - PATH and IFS now have the `nounset' attribute set rather than use
- a separate `non-unsettable' list
- - the non-unsettable list and non_unsettable() are gone
-
-variables.h
- - new define `non_unsettable_p' to test nounset attribute
-
-builtins/set.def
- - `unset' now uses non_unsettable_p to tell whether a variable can
- be unset even if it's not readonly
-
-builtins/read.def
- - read -a arrayname will read a list of values from stdin and assign
- them to the array `arrayname', splitting on " \t\n" (honoring
- backslash quoting if -r is not supplied)
-
-builtins/declare.def
- - print values of arrays when `display -a' is invoked
+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
-builtins/exit.def
- - remove references to `bye'
+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'
- 8/28
+ 2/11
----
-lib/readline/rltty.c
- - removed calls to control_keypad; they cause problems on some
- machines and should not really be performed by an application
-
-cpp-Makefile
- - support for optionally linking array.o into the shell
-
-lib/glob/glob.c
- - when returning an error after glob_filename on the directory name
- returns an error result, make sure to free `result'. This fixes
- a memory leak for names passed to glob_filename which contain
- globbing characters before the first `/' but do not match any
- existing files
+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
- 8/29
- ----
execute_cmd.c
- - the `for' and `select' commands should expand their word lists
- using expand_words_no_vars
-
-command.h, execute_cmd.c, general.c, make_cmd.c, print_cmd.c, subst.c,parse.y
- - changed the `dollar_present', `quoted', and `assignment' members
- of WORD_DESC to a single flags word
-
- 8/30
- ----
-variables.c
- - make get_string_value return array[0] if called with a variable
- that is an array
+ - don't put the gnu_argv_flags into the environment any more; it's
+ proven to be a bad idea
- 8/31
- ----
-lib/readline/display.c
- - don't take the value of _rl_term_autowrap into account when
- computing which screen line the cursor should be on; it screws
- up wrapping on terminals without the `xn' capability
-
-lib/readline/examples/rltest.c
- - new file, test code moved here from readline.c
-
-documentation/features.texi, lib/readline/doc/hsuser.texinfo
- - fixed up printing of some of the shell options and the history
- commands and modifiers
-
-subst.c
- - make sure $name, where `name' is an array variable, returns
- ${name[0]}
-
-variables.c
- - convert a variable to an array even if index 0 is being assigned to,
- instead of leaving it a `normal' variable
-
- 9/1
- ---
-
-builtins/setattr.def
- - make sure that array variables printed by `declare' single-quote
- the value after the `=' so the statement can be reused as input
-
-variables.c
- - make sure array variables can be exported (name=(assignments)), and
- that the export code works. The code is commented out because of
- the possible confusion between an array and a regular string that
- looks like an array assignment string.
-
- 9/2
- ---
-variables.c
- - make sure there is an executable file with the same name as
- `shell' name in the current directory before assigning it to
- $BASH at startup. If there is not, just make $BASH the login
- shell name
-
- 9/3
- ---
-parse.y
- - removed a reduction from the `list0' production that could cause
- statements which require semicolons to be allowed without error
- (like before a `}' in a group command)
-
-lib/readline/display.c
- - new functions: _rl_save_prompt and _rl_restore_prompt to save and
- restore prompt invisible character info
- - if the redisplay code encounters a line shorter than the old one
- and containing invisible characters, make sure that the cursor is
- at the end of the new text before calling clear_to_eol
- - new variable last_invisible containing the index in the prompt
- string of the last invisible character. We only have to redraw
- the prompt string of _rl_last_c_pos is < last_invisible
- - new function _rl_make_prompt_for_search to take care of setting
- up the prompt string for a non-incremental search when the prompt
- contains invisible characters
- - fix so that a prompt string with invisible characters is not
- redrawn each time through update_line (don't tputs term_cr unless
- the cursor is before the last invisible character in the prompt
- and will be moving past the last invisible char of the prompt
-
-lib/readline/isearch.c
- - call _rl_save_prompt and _rl_restore_prompt when changing the prompt
- to do i-search
-
- 9/4
- ---
-lib/readline/readline.c
- - doing_an_undo -> _rl_doing_an_undo for use by the vi-mode code
- - rewrote rl_do_undo to reformat and eliminate a clumsy goto
- - new split the add-to-kill-ring code off into a separate function,
- _rl_copy_to_kill_ring
- - added a new bindable function rl_copy_region_as_kill
- - added a new bindable function rl_kill_region
- - moved _rl_char_search_internal to here from vi_mode.c
- - new bindable function rl_char_search
-
-lib/readline/vi_mode.c
- - made `.' work for the `cw' and `[Ss]' commands, which implicitly
- put the editor into insertion mode after they run
- - split rl_vi_char_search code that actually searches for a character
- into a new function, _rl_char_search_internal
-
-lib/readline/emacs_keymap.c
- - bind M-= to possible-completions for ksh compatibility
- - bind M-* to insert-completions
- - bind C-x C-x to exchange-point-and-mark
- - bind C-] to character-search
- - bind C-@ to set-mark
-
-lib/readline/funmap.c
- - new bindable function names: exchange-point-and-mark, kill-region,
- copy-region-as-kill, character-search
-
-lib/readline/readline.h
- - declare rl_exchange_point_and_mark, rl_copy_region_to_kill,
- rl_kill_region, and rl_char_search externally
-
-documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
- - document new exchange-point-and-mark bindable command
- - documented M-* default emacs-mode binding to insert-completions
- - documented new copy-region-as-kill and kill-region commands
- - documented new character search emacs-mode command
- - documented new binding for set-mark
-
-lib/readline/rldefs.h
- - moved values for `dir' when searching for characters in the line
- from vi_mode.c to here
-
- 9/6
- ---
-general.c
- - new function ansicstr, which decodes ANSI-C backslash-escaped
- characters (with the addition of \e and \E to mean escape) and
- returns a new string
-
-subst.c
- - new expansion $'...' which translates ANSI-C backslash escapes
- in `...' and expands to the result
+configure.in
+ - set LOCAL_CFLAGS to `-DSunOS5' on Solaris 5.5[.x]
builtins/echo.def
- - ifdefs for ANSI-C for \a and \v rather than just expanding to
- literal ASCII values
+ - 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
-documentation/bash.1
- - documented new $'...' expansion
-
- 9/7
- ---
-builtins/enable.def
- - fixed up the help text
- - added a -s flag to restrict operation to Posix.2 `special' builtins
- - removed -all option; -a is the way to do it now
- - converted to use the builtin getopt
-
-builtins/common.c
- - changed builtin_address_internal to return a pointer to a
- struct builtin, which makes it much more useful. Changed
- find_shell_builtin and builtin_address accordingly
- - new function find_special_builtin, which returns special builtins
- ((flags & SPECIAL_BUILTIN) != 0)
+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
+ 2/12
+ ----
execute_cmd.c
- - in Posix.2 mode, find special builtins before shell functions
- when performing command lookup
- - in find_user_command_internal, return NULL if there is no $PATH
- - in Posix.2 mode, failure of a special builtin causes a non-
- interactive shell to exit
-
-variables.c
- - allow $PATH to be unset
+ - 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
- 9/8
- ---
-input.h
- - added a new `input type': st_stdin, for use when using readline,
- since readline is not properly a string
+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
parse.y
- - surgery on the grammar:
- o added new `compound_list' production: a list that can end
- without a newline, `;' or `&' (used in subshell commands
- and case clause commands)
- o removed shell_command_1, folded rules into command
- o eliminated pattern_list_1; changed case_clause_sequence to
- directly incorporate the SEMI_SEMI token (a pattern_list_1
- was just a pattern_list with a trailing SEMI_SEMI)
- o new `for_command' and `case_command' productions
- o redirections -> redirection_list
- o newlines -> newline_list
- o redid the code that attaches redirections to the function
- command rather than the function definition and eliminated
- all of the shift/reduce conflicts
- - changed with_input_from_stdin in the readline case to set
- bash_input.type to st_stdin
-
-print_cmd.c
- - a couple of changes to the way functions are printed
-
-shell.c
- - only execute the PROMPT_COMMAND if input is not coming from a
- string (bash_input.type != st_string). This fixes the problem
- of PROMPT_COMMAND being executed by `eval' commands in an
- interactive shell
-
- 9/12
- ----
-shell.c
- - all interactive shells SIGHUP running jobs when exiting due to
- a SIGHUP, not just login shells
-
- 9/13
- ----
-config.h, config.h.mini
- - changed the default primary prompt (PPROMPT) to "\s\$ "
- - removed the INTERACTIVE_COMMENTS define
-
-flags.c
- - interactive comments are now enabled by default, regardless of the
- INTERACTIVE_COMMENTS define
+ - changed the type of the `type' argument to init_yy_io() to be
+ `enum stream_type', since that's what's always passed
input.h
- - a new enum: stream_type, used in the BASH_INPUT struct
-
-parse.y
- - bash_input.type is now initialized to st_none
-
-bashhist.c
- - command_oriented_history is now the default
-
-documentation/bash.1
- - removed description of `nolinks' variable, updated set -P
- description
- - removed description of `notify' variable, updated set -b
- description
- - removed description of `noclobber' variable, updated set -C
- description
-
-variables.c
- - IFS may now be unset
-
-builtins/read.def
- - now does the right thing if IFS is unset (acts as if it is
- set to " \t\n")
+ - changed the function prototype for init_yy_io so the third arg is
+ type `enum stream_type'
-builtins/cd.def
- - added a new parameter to change_to_directory () which says
- whether or not to follow symlinks, instead of using the
- global no_symbolic_links
- - changed cd_builtin to accept a -P option to disable symlink
- following temporarily
-
-builtins/ulimit.def
- - instead of using a hardcoded `long' for the return type of the
- rlimit functions, use RLIMTYPE, which defaults to long
- - new defines string_to_rlimtype -> string_to_long and
- print_rlimtype for systems which do not need `RLIMTYPE' defined
- to something other than long
-
-general.c
- - function replacements for string_to_rlimtype and print_rlimtype
- for machines which have RLIMTYPE defined in the machine description
-
-general.h
- - extern declarations for string_to_rlimtype and print_rlimtype
-
-shell.c
- - don't source file named by $ENV at script startup if act_like_sh
- is turned on
-
-machines.h
- - new entry for amiga/netbsd
- - change all the netbsd entries to add -DRLIMTYPE=quad_t to
- SYSDEP_CFLAGS
-
-siglist.h
- - define sys_siglist as _sys_siglist on the amiga only if USGr4 is
- defined
-
-print_cmd.c
- - change so that printf is not prototyped on LynxOS with gcc
-
-lib/readline/Makefile
- - changed the `installdirs' target to not fail if the directories
- do not need creating
-
-lib/readline/history.c
- - fixed a bug in history_arg_extract which manifested itself when
- !* was used after a command without arguments (e.g., pwd ; echo !*)
-
- 9/15
- ----
-subst.c
- - expand_word_internal should preserve the flags (other than
- W_QUOTED) from the word passed as a parameter on the word it returns
- - expand_words_internal renamed to expand_word_list_internal
- - expand_word_list_internal does not perform word splitting or
- globbing on words with the W_ASSIGNMENT bit set
- - removed special treatment of `notify', `command_oriented_history',
- `history_control', and `nolinks'
- - rewrote some of the sv_* functions to remove or avoid calls to
- sscanf, one of the most expensive C library functions
-
-variables.c
- - don't look for $command_oriented_history at startup, since it now
- defaults to `on'
-
-general.h, general.c
- - new function posix_initialize to do whatever is necessary to enable
- `Posix mode'
-
-shell.c, subst.c
- - call posix_initialize
-
-general.c
- - rewrote replacements for strchr, strrchr to make them faster
-
-builtins/enable.def
- - new -f option and necessary support to load builtins from a shared
- object file on systems supporting both dlopen() and dlsym(). New
- builtins loaded this way can replace existing shell builtins or
- add completely new functionality
-
-builtins.h
- - mkbuiltins.c creates `static_shell_builtins', which is a fixed
- array, `shell_builtins' points to this array initially
- - extern declaration for current_builtin
-
-builtins/mkbuiltins.c
- - change to creat static_shell_builtins[] and declare shell_builtins
- as a pointer to it
- - change to declare `current_builtin' in created builtins.c
-
-builtins/source.def
- - print an error message and return failure if no filename argument
- is supplied
-
-builtins/common.c
- - current_builtin is set by find_shell_builtin, find_special_builtin,
- and builtin_address_internal
- - new function builtin_usage, which prints the contents of
- current_builtin->short_doc
-
-builtins/{bind,declare,enable,fc,getopts,hash,history,jobs,kill,read,set,
- setattr,trap,ulimit,umask}.def
- - changed the builtins in these files to use builtin_usage() to
- print usage messages
-
-cpp-Makefile
- - support for the HAVE_DLOPEN and HAVE_DLSYM defines
-
-machines.h
- - added -ldl and -Bdynamic to the SunOS4 entry
+externs.h
+ - added a prototype for getcwd, if HAVE_GETCWD is not defined
-documentation/{bash.1,features.texi}
- - documented new enable -f option to dynamically load builtins
+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
- 9/16
+ 2/13
----
-test.c
- - added `==' as a synonym for `='
+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()
- 9/18
+ 2/14
----
-bashline.c
- - include readline/rlconf.h so that VI_MODE is defined if
- appropriate
-
-shell.c
- - removed `-nobraceexpansion' option
-
-flags.c, flags.h
- - added new -B flag; enabled if brace expansion is turned on
-
-subst.c
- - use brace_expand instead of !no_brace_expand
-
-builtins/set.def
- - change set -o braceexpand to be equivalent to set -B
+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)
-parse.y
- - in with_input_from_stdin, do nothing if bash_input.type already
- is st_stdin or if there is already a stream with type st_stdin
- on the saved stream stack
- - new function stream_on_stack to find out if there is a saved
- stream of a specified type
+aclocal.m4
+ - in BASH_CHECK_LIB_TERMCAP, don't return -ltermcap if $prefer_curses
+ is non-empty
-documentation/bash.1, documentation/features.texi
- - doeumented new set -B option
- - removed -nobraceexpansion shell startup option
+lib/readline/Makefile.in
+ - redid the dependencies
- 9/19
+ 2/17
----
-builtins/reserved.def
- - made `help select' work
+hashlib.c, getcwd.c
+ - include `bashansi.h' instead of stdlib.h and string.h
-cpp-Makefile
- - removed references to the nonexistant `load.def'
- - removed conditionals based on GETOPTS_BUILTIN
+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 <sys/types.h>
-builtins/getopts.def
- - no longer $DEPENDS_ON GETOPTS_BUILTIN
-
-config.h, config.h.mini, builtins/help.def
- - made the `help' builtin dependent on the HELP_BUILTIN define
- - removed GETOPTS_BUILTIN
+builtins/fc.def
+ - include ../bashtypes.h and ../posixstat.h instead of bashtypes.h
+ and posixstat.h
builtins/mkbuiltins.c
- - made the `$DEPENDS_ON' clause work for reserved words and
- shell control structures in reserved.def by writing out
- dependencies to builtext.h even if there is no `function'
- - made the long_doc for each builtin and reserved word get
- written out to builtins.c with #ifdef HELP_BUILTIN surrounding
- the doc strings -- this makes the minimal shell much smaller
-
-shell.c, documentation/bash.1
- - removed `-quiet' long option
-
-parse.y
- - make sure that word splitting is not performed on the prompt
- string after expanding in prompt_string_decode by calling
- expand_string_unsplit instead of expand_string
-
-lib/readline/bind.c
- - new readline variable `mark-directories': if set, completed
- directory names have a slash appended
-
-lib/readline/complete.c
- - support for `mark-directories'
-
-documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
- - documented the new `mark-directories' variable
-
-builtins/bind.def
- - new option `-r' to remove a binding for a specified key sequence
- - make sure that a failure return from bind resets the keymap
- correctly if a -m option was supplied
-
-documentation/{bash.1,features.texi}
- - documented new bind -r option
-
- 9/20
- ----
-builtins/jobs.def
- - new `disown' builtin
-
-documentation/{bash.1,features.texi}
- - documented new `disown' builtin
+ - include ../posixstat.h instead of <sys/stat.h>
-cpp-Makefile
- - removed support for `MAKE_SHELL' cpp variable
- - renamed endian.aux to mkendian, look for endian.c in support dir
- - link in array.o, alias.o, braces.o, bracecomp.o
- unconditionally, rely on cpp defines in the files to exclude code
- - pass -DHAVE_SYS_SIGLIST if sys_siglist is defined
- - pass -DHAVE_GETCWD if HAVE_GETCWD is defined in machines.h
- - pass -DHAVE_VFPRINTF_EMUALTION through from machines.h to
- compilation
-
-array.c
- - don't compile in body of file unless ARRAY_VARS is defined
-
-braces.c
- - don't compile in body of file unless BRACE_EXPANSION is defined
-
-alias.c
- - don't compile in body of file unless ALIAS is defined
-
-bracecomp.c
- - don't compile in body of file unless BRACE_EXPANSION and READLINE
- are defined
-
-bashline.c
- - don't compile in body of file unless READLINE is defined
-
-bashhist.c
- - don't compile in body of file unless HISTORY is defined
-
-siglist.c
- - don't compile in body of file unless HAVE_SYS_SIGLIST is not
- defined
-
-getcwd.c
- - don't compile in body of file unless HAVE_GETCWD is not defined
-
-vprint.c
- - don't compile in body of file unless USE_VFPRINTF_EMULATION
- is defined
-
-support/mksysdefs
- - for SCO machines, define SYSDEF as SCO or SCOv4
-
-lib/readline/readline.[ch]
- - new function rl_push_macro_input (s), which makes s the current
- macro input string
+general.h
+ - include `bashtypes.h' if RLIMTYPE is defined, so we can fetch
+ a definition of quad_t (or whatever) from <sys/types.h> before
+ using it in a function prototype
-endian.c
- - renamed to support/endian.c
+Makefile.in, builtins/Makefile.in
+ - updated dependencies
- 9/21
+ 2/18
----
-lib/readline/complete.c
- - more file types for the VISIBLE_STATS code:
- | FIFOs
- % character special devices
- # block special devices
-
-lib/readline/isearch.c
- - made RETURN an alternate search string terminator
-
-builtins/read.def
- - removed use of stdio -- unbuffered stdio on a dup of fd 0 is
- a big loss
-
builtins/set.def
- - new function: minus_o_option_value, returns 1, 0, or -1 given
- a -o option name (-1 means a bad name)
- - reorganized list_minus_o_options to be more efficient
+ - 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
-execute_cmd.c
- - when expanding a here document, use maybe_expand_string rather
- than a simple expand_string to try a speed things up a bit
-
-input.c
- - don't compile in the body of the file unless BUFFERED_INPUT
- is defined in config.h
-
- 9/22
- ----
-jobs.h, siglist.h
- - replaced instances of Solaris with SunOS5
+subst.c
+ - in sv_strict_posix, call posix_readline_initialize only if
+ the shell is interactive (interactive_shell != 0)
shell.c
- - changed long option parsing code so that --arg is equivalent
- to -arg, when `arg' is one of the recognized multichar options
-
-builtins/history.def
- - rewrote to regularize the option parsing and use internal_getopt
- - now allows only one of -awrn to be specified
- - added a new -p option that adds each of its arguments to the
- end of the history list, and deletes the `history -p' history
- entry
-
-builtins/trap.def
- - added new -p option to display specified trap values, or all
- trap values if no other arguments supplied
-
-documentation/{bash.1,features.texi}
- - documented new history -p option
- - documented new trap -p option
-
- 9/25
- ----
-lib/readline/display.c
- - fixed up the calcluation of the correct cursor line number (a `+'
- and `-' were transposed in the calculation of `nleft')
-
- 9/26
- ----
-general.c
- - moved isint() here from test.c, renamed to legal_number
-
-general.h
- - extern declaration of legal_number
-
-test.c
- - only compile isint() if SHELL is not defined, define it as
- legal_number otherwise
-
-trap.c
- - use legal_number in decode_signal instead of sscanf()
-
-builtins/common.c
- - moved list_sigs to here from trap.def, renamed to
- display_signal_list
- - changed get_numeric_arg to use legal_number instead of doing
- the parsing and calculation itself
-
-builtins/common.h
- - extern declaration for display_signal_list
+ - 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
-builtins/{trap.def
- - changed to use display_signal_list for trap -l
-
-builtins/kill.def
- - changed to use display_signal_list for kill -l
- - added new kill -n signum option
-
-documentation/bash.1
- - added description of new kill -l signame functionality
- - added description of new kill -n signum feature
- - added description of new enable -d option
-
-builtins.h
- - added a char *handle member to `struct builtin' for later use
- - new flags value: BUILTIN_DELETED
-
-builtins/mkbuiltins.c
- - added code to inintialize the `handle' member to null in the
- static builtin array definition
-
-builtins/common.c
- - don't `find' a builtin if the BUILTIN_DELETED flag is set in the
- flags word of the struct builtins array
-
-builtins/enable.def
- - new option -d to remove a builtin loaded with -f, depends on
- HAVE_DLCLOSE
-
-cpp-Makefile
- - pass -DHAVE_DLCLOSE through from machines.h to compilation
-
-machines.h
- - change SunOS4 machine description to define HAVE_DLCLOSE
-
- 9/27
- ----
-shell.c
- - split shell exit code off into a separate function: exit_shell(status)
+bashwait.h
+ - renamed to unionwait.h, since that is what it defines
-builtins/exec.def
- - rewrote for clarity and speed and to use the builtin getopt()
- - added new -a, -c, and -l options
- - now calls exit_shell if shell_execve fails and the shell is not
- interactive
+posixwait.h
+ - moved the POSIX 1003.1 job control defines here from jobs.h
-documentation/bash.1
- - documented the new options to `exec'
+jobs.h
+ - include `posixwait.h'
- 9/28
+ 2/19
----
-builtins/exec.def
- - if the execve fails and the shell is not going to exit, reinitialize
- traps and signals
- - only call end_job_control if subshell_environment != 0
- - exec should exit unconditionally if the execve fails and
- subshell_environment != 0
+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
subst.c
- - if valid_brace_expansion_word fails, make sure `temp' is set to
- NULL before trying to free it after the `goto bad_substitution'
+ - when brace-expanding words, preserve the flags (word->flags) if
+ brace expansion does not change the word. This fixes the problem
+ of things like
-cpp-Makefile
- - add $(CPPFLAGS) to the compilation flags when making `mksignames'
+ local -a avar=( ${PATH//: } );
-documentation/features.texi
- - fixed a typo in the tilde expansion section
-
- 9/29
- ----
-machines.h
- - DEC OSF/1 has the dlopen/dlsym/dlclose set of library functions
-
-shell.c
- - don't execute /etc/profile if -noprofile given
-
-builtins/pushd.def
- - new file, pushd/popd/dirs split off from cd.def
- - replaced calls to sscanf with calls to legal_number
-
-builtins/Makefile, cpp-Makefile
- - changes for pushd.def
-
-config.h, config.h.mini
- - ALLOW_RIGID_POSIX_COMPLIANCE is no longer used
-
-subst.c, variables.c
- - GETOPTS_BUILTIN is no longer used
-
-variables.c
- - if the first character of argv[0] is not a `/', search the path
- and canonicalize the result to find out how to set $BASH
-
- 10/2
- ----
-builtins/enable.def
- - changed enable_shell_builtin to use builtin_address_internal to find
- the builtin rather than searching the list itself
- - list_some_builtins skips a builtin if flags & BUILTIN_DISABLED != 0
- - rewrote dyn_load_builtin to take a list of names to load from a
- single filename
- - don't dlclose the shared object in dyn_unload_builtin unless its
- reference count drops to 0
-
-builtins/test.def
- - don't bother making new copies of everything in the argument list
- when constructing the argc and argv for test_command; just make
- sure not to free anything but ARGV
-
- 10/3
- ----
bashline.c
- - remove C-e binding in vi movement mode which switches into emacs
- mode
+ - 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
-general.c
- - make xfree only try to call free on non-null strings
-
- 10/4
+ 2/20
----
-builtins/read.def
- - new `-e' option that uses readline to read the line
- - if one of the arguments is not a legal variable name, print an
- error message and return failure
-
-builtins/reserved.def
- - changed the `Variables' to `variables' so `help variables' works
+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
subst.c
- - set startup_state to 2 in child of command substitution to try to
- avoid some unneeded forks
+ - 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
-trap.c
- - removed call to reset_terminating_signals in restore_original
- signals; callers are now required to take care of that themselves,
- if necessary
-
-execute_cmd.c, subst.c
- - added necessary calls to reset_terminating_signals before calls
- to restore_original_signals
-
-execute_cmd.c
- - when executing a null command in a subshell, don't bother passing
- a string to make_child; just pass NULL
- - in execute_builtin_or_function, don't add so many unwind-protects
- if `subshell' == 1
- - in command_substitute, call cleanup_the_pipeline to discard the
- old pipeline, so pipeline_pgrp does not get set to 0 in
- start_pipeline, which is called by make_child via making_children
-
-jobs.c, nojobs.c
- - new function, ignore_tty_job_signals, to set SIGTTIN, SIGTTOU, and
- SIGTSTP to SIG_IGN
- - new function, default_tty_job_signals, to set those signals
- to SIG_DFL
- - new function, cleanup_the_pipeline to free up the_pipeline and
- set it to NULL
-
- 10/5
+ 2/21
----
-builtins/history.def
- - the history -p option is now -s (to sort of parallel the ksh
- print -s option)
- - the -s option now combines all of its arguments into a single
- string and appends the string to the history list
- - new history -p option to history expand each argument and print
- the result without modifying the history list
-
-documentation/bash.1, documentation/features.texi
- - documented the new -e option to read
- - documented the new history -s and -p options
- - documented the new cd and pwd -L options
-
-builtins/cd.def
- - changed cd and pwd to use internal_getopt
- - added the -L option to cd and pwd to follow symlinks (like if
- set +P were issued)
-
-builtins/pushd.def
- - added text for dirs +N and dirs -N to the dirs builtin long doc
- - added -v option to dirs to print dirstack one dir per line with
- stack index prepended
+flags.c
+ - if `set -r' is executed, call maybe_make_restricted so that $PATH
+ and $SHELL are made read-only
- 10/6
- ----
execute_cmd.c
- - split the command searching code into a new function:
- search_for_command
- - removed a bunch of dead code from shell_execve
- - removed call to reset_terminating_signals when executing a function
- or builtin in a subshell (either via (xxx) or xxx &)
- - don't add unwind protects at all in execute_function if subshell == 1
+ - 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.
-lib/readline/chardefs.h
- - new macro ALPHABETIC(c), returns 1 if c is a letter or digit
-
-lib/readline/readline.c
- - don't call abort() in rl_change_case(); it's impolite in a
- library function
- - new macro, SWAP, used to swap values of two integers
- - changed alphabetic to use ALPHABETIC, made it slightly faster
- - modified rl_change_case() so that word capitalization is the
- same as GNU Emacs
-
-lib/readline/search.c
- - in noninc_dosearch, don't reset the history positition to what
- it was if we're currently in vi editing mode (as per Posix.2
- `/' and `?' vi-mode editing commands)
-
- 10/7
- ----
-builtins/common.c
- - changed single_quote and double_quote to use char pointers
- rather than string indexing
- - new function backslash_quote(string), which quotes special
- characters in STRING using backslashes
-
- 10/8
+ 2/24
----
-alias.h
- - added an extern declaration for alias_expand_word
-
-parse.y
- - broke the alias expansion code off into a function
- alias_expand_token; its return value says whether to re-read
- a token or go on
- - changed the alias expansion code to handle aliases that expand
- to nothing better
- - broke the code that does special-case token recognition off into
- a function: special_case_tokens
- - used the new functions to make sure that the special-case tokens
- can be the expansion of an alias
- - made sure that if in `posix mode' that reserved words cannot be
- aliased and that all reserved words can be the values of aliases
- and be recognized after expansion
-
- 10/10
- -----
-lib/readline/complete.c
- - replaced #ifdef SHELL code with two new exported readline interfaces:
- rl_filename_quoting_function and rl_filename_dequoting_function.
- Both return a pointer to char.
- - new extern variable rl_filename_quote_characters, containing a list
- of characters that cause a word to be quoted by the completer if
- they appear in a file name
-
-bashline.c
- - new functions for rl_filename_quoting_function and
- rl_filename_dequoting_function.
- - initialize rl_filename_quoting_function and rl_filename_dequoting_function
- in initialize_readline
- - initialize rl_filename_quote_characters
-
-lib/readline/readline.h
- - extern declarations for new public interfaces
- rl_filename_quoting_function and rl_filename_dequoting_function
- - added declarations for NO_MATCH, SINGLE_MATCH, and MULT_MATCH for
- use by the filename quoting functions
- - new extern declaration for rl_filename_quote_characters
-
-lib/readline/history.c
- - made a version of single_quote be compiled in if SHELL is not
- defined
- - the `q' and `x' modifiers are now compiled in by default, not
- just if SHELL is defined
-
- 10/11
- -----
-subst.c
- - string_quote_removal was being a little overzealous in stripping
- things within embedded quoted strings when `quoted' was == 1.
- Only remove one level of quotes each time through the function
- This fixes the problem of quotes being stripped incorrectly in
- var="The text \"hello\" should show up inside double quotes."
-
-lib/readline/history.c
- - made the behavior of single quotes inhibiting history expansion
- configurable with a variable: history_quotes_inhibit_expansion,
- not just shell-specific
- - added a new variable: history_search_delimiter_chars, which is a
- list of characters that can also delimit a history search string
-
-lib/readline/history.h
- - extern declaration of history_quotes_inhibit_expansion
- - extern declaration of history_search_delimiter_chars
-
-bashhist.c
- - set history_quotes_inhibit_expansion to 1 in bash_initialize_history
- - initialize history_search_delimiter_chars to ";&()|<>"
-
-lib/readline/doc/{rltech,hstech}.texinfo
- - documented new readline and history library interfaces
-
-parse.y
- - split the part of read_token that reads a single word off into
- a new function: read_token_word
-
-lib/readline/chardefs.h
- - include <string.h> by default; only check HAVE_STRING_H if
- HAVE_CONFIG_H is defined
-
- 10/12
- -----
-parse.y
- - moved the `RESET' code out of read_token into reset_parser
- - rewrote some of decode_prompt_string to make it more efficient
- - rewrote more of read_token_word to make it more efficient
- - make shell_getc cast its result to `unsigned char' before
- returning it. This fixes the problem of \255 appearing in a
- line
-
-machines.h
- - new entry for m68k machines running Linux
-
- 10/13
- -----
-builtins/exec.def
- - use search_for_command rather than find_user_command to look up
- the path to exec, so the hash table and temp environment are used
-
-variables.c
- - don't rebuild the export environment after binding a shell
- function unless that function is exported
- - make sure that copy_variable copies arrays correctly, using
- dup_array()
- - in assign_in_env, only call tilde_expand if a `~' appears somewhere
- in the value
-
-execute_cmd.c
- - if we found $PATH in the temp environment in search_for_command,
- call find_user_command_in_path instead of find_user_command, so
- we don't try to search the temporary env again. Call
- find_user_command as normal if PATH is not in the temp environment
-
-subst.c
- - char_is_quoted should not be compiled in if READLINE is not
- defined
-
-lib/readline/complete.c
- - add a new external interface: Function *rl_char_is_quoted_p,
- which is called to find out whether a word break character is
- quoted and should be skipped over when breaking words for
- the completer
-
-lib/readline/readline.h
- - extern declaration for rl_char_is_quoted_p
-
-bashline.c
- - initialize rl_char_is_quoted_p to char_is_quoted
-
-lib/readline/doc/rltech.texinfo
- - documented rl_char_is_quoted_p
-
-lib/readline/readline.c
- - extend the undo records so that a `start' or `end' value of -1
- means rl_point and a value of -2 means rl_end. This is a start
- to better support for undoing vi-mode commands like `C'
-
-lib/readline/vi_mode.c
- - don't save what's entered in insert mode after a `C' command
- for later insertion when doing a `redo'
-
- 10/16
- -----
-test.c
- - rewrote unop() to use a switch statement instead of a call to
- strchr
- - remove #ifdef SHELL blocks by defining getuid, geteuid, getgid
- and getegid as references to current_user.{uid,euid,gid,egid}
- respectively
- - change group_member to only fetch the group list once and to use
- NGROUPS_MAX or NGROUPS to find the maximum number of groups
-
-documentation/bash.1
- - fixed description of ${#@} expansion
-
- 10/17
- -----
-support/bashbug.sh
- - add a `From:' line to the mail message handed to rmail
-
- 10/18
- -----
-test.c
- - rewrote binary_operator for speed and clarity
- - removed age_of, added arithcomp(), filecomp() to support new
- binary_operator
- - removed support for `-l string'
-
-documentation/bash.1
- - removed mention of `-l string' from `test' description
-
- 10/19
- -----
-cpp-Makefile
- - pass PROGRAM as the double-quoted shell name to compilation of
- shell.c and error.c
-
- 10/20
- -----
-support/bashbug.sh
- - don't try to use ${word:-expansion}; ultrix sh doesn't understand it
-
-hash.c
- - new function: flush_hash_table (table, free_data) to delete the
- contents of a given hash table. *free_data is called to free
- each item's data, if free() is inappropriate
-
builtins/hash.def
- - new functions free_hashed_filenames and free_filename_data to
- flush the table of hashed filenames
-
-subst.c
- - change sv_path to call flush_hashed_filenames directly
-
-variables.c
- - only sort arrays of variables or functions for the environment or
- `set' output if `posixly_correct' is set. sh does it; ksh does
- not, and there's no real requirement to do so
- - rewrote delete_all_variables so it looks like flush_hash_table
-
-trap.c
- - two new flag values for the `sigmodes' array: SIG_INPROGRESS,
- which is set for sigmodes[sig] while a trap handler for sig
- is executing, and SIG_CHANGED, which is set if a new trap
- value is set when SIG_INPROGRESS is set. This should obviate
- the need to set the trap value to IMPOSSIBLE_TRAP_HANDLER while
- the trap handler is executing
-
-alias.c
- - rewrote delete_all_aliases so it looks like flush_hash_table
-
- 10/21
- -----
-alias.c
- - changed delete_all_aliases to call flush_hash_table directly
- and use free_alias_data as the `free function' argument
-
-variables.c
- - changed delete_all_variables to call flush_hash_table directly
-
-tests/run-test, tests/test-tests
- - new scripts to run tests of the `test' builtin as part of the
- regression test
-
- 10/24
- -----
-bashline.c
- - initialize_hostname_list needs to look for HOSTFILE first
- - hostname list is no longer sorted
- - replaced binary search in hostnames_matching with a simple
- linear search
- - made the code that reads hostnames skip over the first word on
- a line only if its first character is a digit, assuming it's
- an Internet address
-
-copy_cmd.c
- - removed copy_select_command; overload copy_for_command, since the
- select and for command structs are exactly the same
-
-make_cmd.c
- - combined make_for_command and make_select_command into a new
- function, make_for_or_select
- - rewrote make_here_document to remove the unneeded `switch' statement
-
-builtins/common.c, builtins/hash.def
- - moved remove_hashed_filename from common.c to hash.def
-
-builtins/common.c
- - remove the \r from error message printed by get_working_directory
- - change parse_and_execute to call dispose_fd_bitmap directly then
- discard the `pe_dispose' unwind-protect frame rather than running
- the frame
-
-builtins/set.def
- - changed how set -o options are set and retrieved, using set and get
- functions to avoid all that special-case inline code
-
- 10/26
- -----
-test.c
- - added unary operator `-o', which returns true of the shell option
- name given as an argument is set
-
-lib/readline/readline.c
- - added a definition of set_lines_and_columns to be called if the
- library is not compiled -DSHELL
-
-shell.c
- - added a --verbose startup long option
- - renamed `--nolineediting' to `--noediting'
-
- 10/27
- -----
-lib/readline/util.c
- - new file, for readline utility functions
-
-lib/readline/readline.c
- - moved a bunch of functions to util.c
-
-subst.c
- - make sure set_sigint_handler is called only by the subshells doing
- command and process substitution
-
-builtins/read.def
- - make sure that rlbuf is initialized to null
-
-trap.c
- - new flag for sigmodes[] members: SIG_IGNORED, set when signal is
- ignored, even if it's special or untrappable
- - new function: signal_is_ignored (sig), which returns 1 if SIG
- has been ignored with trap ''
-
-builtins/trap.def
- - changed to use the builtin getopt
-
-shell.c
- - added a check to sigint_sighandler for whether or not SIGINT has
- been ignored with trap '' in an interactive shell. This fixes
- the problem with `read' being interruptible in an interactive
- shell even if SIGINT is being ignored
-
- 11/8
- ----
-lib/readline/Makefile
- - added definition of INSTALLED_HEADERS, just in case
-
- 11/11
- -----
-variables.c
- - change assign_in_env so that it doesn't use savestring ("") to
- set `value' to a dummy value; don't call strcpy if there's
- nothing to copy
+ - add a missing argument of 0 to add_hashed_command
- 11/15
- -----
-general.h
- - new defines, legal_variable_starter and legal_variable_char
- - new define SIGRETURN(n) which encapsulates the VOID_SIGHANDLER
- differences when returning from a signal handler
-
-general.c, variables.c, subst.c, expr.c
- - use legal_variable_starter and legal_variable_char
-
-shell.c, nojobs.c, trap.c, jobs.c, builtins/suspend.def
- - change to use SIGRETURN macro
-
-subst.c
- - massive changes to clean up the code and remove unused code and
- variables
- - expanded the ${#param} code so that all of the shell special
- variables may have their length taken
-
-tests/run-tilde
- - new test for tilde expansion
-
-bashline.c
- - fix a bug in command_subst_completion_matches: make sure that
- `matches' is static
-
-parse.y
- - don't print a prompt when not using readline if the current
- input type is st_string
-
-machines.h
- - add -DINT_GROUPS_ARRAY to SYSDEP_CFLAGS on ultrix
- - fixes to the cray machine description from Bill Jones
-
-braces.c
- - fixed a bug in brace_gobbler that prevented a backslash from
- escaping an open brace
-
- 11/16
- -----
-tests/braces-tests, tests/run-braces
- - new regression tests for brace expansion
-
-builtins/pushd.def
- - new -p option for `dirs' that prints dirstack on per line
- without numbers
-
- 11/17
- -----
-command.h
- - move redirection error values here from execute_cmd.c
- - new defines INPUT_REDIRECT and OUTPUT_REDIRECT
-
-shell.c
- - make the default MAINTAINER `bash-maintainers@prep.ai.mit.edu'
-
-execute_cmd.c
- - many changes to clean up the code and remove unused variables and
- functions
- - new functions: redirection_error, find_in_path_element,
- find_absolute_program
- - fixes to redirection error reporting, so things like exec 4<&y*
- and exec 4<&$FOO are displayed correctly
- - removed the `lexical_scoping' code
-
-flags.c, flags.h
- - removed the lexical_scoping code and variable
-
-documentation/{bash.1,features.texi}
- - removed the description of the `-l' option to `set'
+builtins/kill.def
+ - job identifiers can be used in non-interactive shells as long as
+ job control has been turned on with `set -m'
jobs.c
- - don't try to open /dev/tty to get the controlling tty, use
- fd 2 like other job control shells
-
-lib/readline/vi_mode.c
- - when using `d%', make sure the matching character found by
- the `%' is deleted by the `d'. Ditto for `c%'.
- - stub function for vi undo: rl_vi_undo. Right now it just
- calls rl_undo_command
-
-lib/readline/vi_keymap.c
- - change to call rl_vi_undo instead of rl_undo_command
-
-lib/readline/readline.h
- - extern declaration for rl_vi_undo
-
- 11/21
- -----
-execute_cmd.c
- - fix to print_select_list to avoid a possible divide-by-zero error
- and subsequent core dump
- - fix to execute_select_command to just return 0 if there is no
- select list
-
-parse.y
- - remove `in' from the list of tokens that cannot take trailing
- semicolons
-
-builtins/read.def
- - make sure that leading IFS whitespace is removed before calling
- get_word_from_string the first time. This matters when IFS is
- not " \t\n" but non-null
- - make sure the array code uses IFS to split the input string
- before assigning it to the array
-
- 11/22
- -----
-parse.y
- - make sure that if \nnn expands to CTLESC or CTLNUL, the char
- is protected by a CTLESC
- - new variable `promptvars', which, if non-zero, causes all the
- variable expansions to be performed in decode_prompt_string.
- If zero, only quote removal is performed.
-
-builtins/source.def
- - new variable: `source_uses_path', set to 1 by default. If
- non-zero, the `.' builtin uses $PATH to find the script to
- source
-
-builtins/getopt.h
- - cut out everything not needed by bash
-
-builtins/getopt.c
- - cut out everything not needed by bash
-
-builtins/getopts.def
- - removed the call to getopt_set_posix_option_order, which is no
- longer necessary
+ - we want to be notified of stopped jobs if job_control is non-zero,
+ even if the shell is not interactive
execute_cmd.c
- - split the code that writes out here documents to files out into
- a separate function
+ - 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
- 11/23
- -----
-builtins/getopt.c, builtins/getopt.h, builtins/getopts.def, subst.c
- - prefix all of the getopt variables and functions with `sh_'
- (that is, optind becomes sh_optind and getopt becomes sh_getopt)
- to avoid confusion with a system's getopt(3) implementation
-
-subst.c
- - new functions: parameter_brace_substring and verify_substring_values
- and changes to expand_word_internal to support the ksh-93
- ${var:exp1:exp2} substring syntax
-
-documentation/bash.1
- - documented the new ${var:exp1[:exp2]} syntax
-
- 11/25
- -----
-builtins/setattr.def
- - don't allow readonly -n at all
-
-array.c
- - split array_to_string into two parts; a new function
- array_to_string_internal does the real work
- - new function array_subrange () to return a subset of the elements
- in an array
-
-subst.c
- - augmented the substring code to handle the positional parameters
- and array variables
- - made quote_list and dequote_list return their WORD_LIST *
- arguments so they can be used like
-
- z = string_list ((quoted ? quote_list (l) : l), xxx);
-
- - augmented the ${xxx} expansion code to do indirect variable
- references if the first character of the variable name is `!'
-
-tests/new-exp.tests
- - added regression tests for substring expansion
- - added regression tests for indirect variable references
-
- 11/28
- -----
-builtins/set.def
- - added set -o hashfunc and set -o onecmd, synonyms for set -h
- and set -t, respectively
-
-builtins/shift.def
- - changed shift so that the positional parameters are not changed
- if the argument is > $# (this is ksh and Posix.2, unlike sh)
-
-documentation/bash.1
- - documented true behavior of `shift'
-
-lib/readline/kill.c
- - split the kill ring management code and the kill commands out
- from readline.c into this file
-
-lib/readline/undo.c
- - split the code that does undoing out of readline.c into this file
-
-shell.c
- - force the shell to exit with status 127 if a longjmp back to
- run_one_command occurs with bash -c
- - force the last command exit status to 1 if a
- longjmp (top_level, DISCARD) is performed
-
-builtins/read.def
- - don't throw away partial lines after reading EOF
-
-subst.c
- - command substitution should not inherit the -e flag
-
-builtins/source.def
- - make sure to set the exit status correctly when in posix mode
- and the filename argument to `.' does not exist
-
- 11/29
- -----
-lib/readline/input.c
- - split the input buffering and character input code out of
- readline.c to here
-
-lib/readline/macro.c
- - moved the keyboard macro management code to here from readline.c
-
-lib/readline/readline.c
- - removed the STATIC_MALLOC code
-
-lib/readline/rltty.c
- - return -1 in POSIX get_tty_settings if tcgetattr returns -1 and
- errno != EINTR, even if output is being flushed
+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'
- 12/1
+ 2/25
----
-machines.h
- - fixes to the hpux_8 and hpux_9 machine descriptions
-
trap.c
- - make run_exit_trap return the right exit status
- (last_command_exit_value)
- - run_exit_trap no longer preserves the value of last_command_exit_value
- around the execution of the trap commands
- - run_exit_trap now turns off SIG_TRAPPED and sets SIG_INPROGRESS
- and will not try to run anything if SIG_INPROGRESS is set
-
-trap.h
- - change definition for run_exit_trap
-
-shell.c
- - call run_exit_trap only if trap[0] is set and not ignored
-
-builtins/exit.def
- - make sure we only source the .bash_logout file once, even if it
- contains a call to `exit'
+ - save line number before executing trap command, because
+ parse_and_execute resets it to 1 and the trap command might
+ want it
execute_cmd.c
- - if we run an exit trap in a (...) user subshell, allow it to
- override the exit status of the subshell
-
-lib/readline/readline.c
- - made rl_delete_text bounds check its `to' argument, and limit
- it at rl_end
-
-lib/readline/vi_mode.c
- - make rl_vi_subst call `rl_delete_text' directly for the `s'
- command
-
-support/mksysdefs
- - define a new variable for the sysdefs.h file for ISC machines:
- ISC_release, which can be ISC_2, ISC_3, or ISC_4
-
-machines.h
- - don't `#undef' HAVE_GETCWD on ISC 4.x machines
- - `#undef' HAVE_RESOURCE on ISC 4.x machines
-
-support/mkversion.c
- - include "posixstat.h" rather than <sys/stat.h> for the benefit
- of ISC machines
+ - change to executing_line_number to return trap_line_number if
+ the shell is currently running a trap
- 12/5
- ----
-lib/readline/complete.c
- - changed username_completion_function so that a null username
- generates a list of all users as possible completions
-
-lib/readline/readline.h
- - added definitions for STREQ, STREQN
-
-lib/readline/{search.c,isearch.c,kill.c}
- - removed private definitions of STREQ, STREQN
-
-execute_cmd.c
- - in find_user_command_internal, just return a copy of the pathname
- passed as an argument if there is no PATH
-
- 12/6
- ----
-siglist.h
- - NetBSD 1.0 does not need a define for strsignal()
-
- 12/8
- ----
-subst.c
- - removed assignment_name, word_list_quote_removal, word_quote_removal,
- and sub_append_number -- unused functions
- - removed some unexecuted code from expand_word_internal
-
- 12/9
+ 2/26
----
execute_cmd.c
- - if PATH is set to the empty string, find executables in the
- current directory
-
-shell.c, parse.y, trap.c
- - before setting the SIGINT sighandler unconditionally to one of
- sigint_sighandler or termination_unwind_protect, check that it
- is not ignored. Now trap '' 2 really sets the SIGINT signal
- handler to SIG_IGN. [In 1.14.3]
-
-trap.c
- - rewrote set_sigint_handler to use SIG_IGNORED rather than checking
- against IGNORE_SIG
- - changed ignore_signal, run_exit_trap, maybe_call_trap_handler, and
- run_trap_internal to check SIG_IGNORED
-
-shell.c
- - removed the check for signal_is_ignored(SIGINT) in sigint_sighandler
-
- 12/11
- -----
-sig.c, sig.h
- - new files, moved signal-related definitions and code here from
- shell.c, general.h, general.c, jobs.c, jobs.h, externs.h
-
-unwind_prot.c, shell.h, nojobs.c
- - include sig.h
-
- 12/12
- -----
-jobs.c
- - only break out of loops if SIGTSTP was used to stop a job in the
- loop, the shell is currently interactive, and job control is on.
- SIGSTOP does not break loops. [In 1.14.3]
-
- 12/13
- -----
-expr.c
- - bases < 2 or > 36 are now accepted without silently being reset
- to 10
-
-braces.c
- - make sure array_concat copies the array it returns if one of
- the arguments is null [In 1.14.3]
-
- 12/14
- -----
-subst.c
- - split the ${...} expansion code out into a separate function,
- static char *parameter_brace_expand()
- - changes to array_value so that any variable can be referred to
- as an array with an integer subscript. The value will be
- returned if a non-array variable is referred to as ${var[0]};
- if the subscript is > 0 a null string is returned
-
- 12/15
- -----
-machines.h
- - fixes to freebsd description for FreeBSD 2 [In 1.14.3]
-
-support/bashbug.sh
- - changed to use /usr/lib/sendmail if present or /usr/sbin/sendmail
- if present, defaulting to rmail [In 1.14.3]
-
-bashhist.c
- - HISTFILESIZE now controls how large the history file is after
- it is written. After saving the shell history, sv_histfilesize
- will truncate it if necessary. history -w can override this.
-
-documentation/bash.1
- - documented change to treatment of HISTSIZE when saving history
-
-lib/malloc/malloc.c
- - removed the calls to sigsetmask() in malloc(). This should
- result in a speed improvement
-
- 12/19
- -----
-builtins/enable.def
- - don't allow -f or -d in a restricted shell
-
-builtins/alias.def
- - rewrote alias and unalias to use the internal getopt
- - added -p option to print the alias list to alias
- - fixed up the documentation for `alias'
-
-documentation/{bash.1,features.texi}
- - updated the documentation for `alias'
- - updated the documentation for $_
-
-array.c,array.h
- - new function `empty_array (ARRAY *a)' removes all of the
- elements in a without destroying the array variable in
- preparation for overwriting it. Used by read -a.
-
-builtins/read.def
- - call empty_array() before assigning list of values with read -a
- - changed dispose_array to use empty_array to destroy the
- array elements
-
-variables.c
- - set $_ to argv[0] at variable initialization time
-
- 12/20
- -----
-subst.c
- - broke the pattern removal code into a few separate functions:
- getpatspec to get the pattern specifier, getpattern to do the
- necessary word expansions and return the pattern to be matched
- - new function: parameter_list_remove_pattern(), which implements
- the ${param[#%][[%#]]pattern} where param is `@' or `*'
-
-documentation/bash.1
- - documented new pattern removal functionality for the positional
- paramters
-
-general.c
- - new function strsub (s, pat, rep, gflag) replaces PAT with REP
- in S. All occurrences are replaced if GFLAG != 0; the first is
- replaced otherwise
- - changed strindex() to avoid multiple calls to strnicmp by
- checking first character of the string
-
-builtins/fc.def
- - changed to use builtin_getopt with a check for fc numbers as
- arguments
- - some code rearranging for efficiency and clarity
- - fc_dosubs now just calls strsub(); fc_replace is gone
-
- 12/21
- -----
-subst.c
- - new function, match_pattern, which matches a shell globbing
- pattern anywhere in a string and returns the boundaries of the
- match
-
-lib/readline/readline.h
- - declarations for rl_insert_command and rl_backward_char_search
-
-lib/readline/readline.c
- - new function rl_insert_comment, no longer vi-mode-specific
- - new function rl_backward_char_search
-
-lib/readline/bind.c
- - comment-begin now sets the comment char for emacs and vi modes
- - variable holding the value is now _rl_comment_begin
-
-lib/readline/vi_mode.c
- - move the `comment-begin' stuff to readline.c and bind.c
-
-lib/readline/funmap.c
- - vi-comment is now insert-comment
- - new bindable command character-search-backward
-
-lib/readline/vi_mode.c
- - command mode `#' now invokes rl_insert_comment
-
-lib/readline/emacs_keymap.c
- - M-# now bound to insert-comment
- - M-space now bound to set-mark
- - M-^] now bound to character-search-backward
-
-bashline.c
- - posix_readline_initialize now calls rl_variable_bind to set the
- value of comment-begin rather than directly modifying
- _rl_comment_begin
-
-documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
- - added description of new bindable `insert-comment' command
- - documented new M-space emacs mode binding
- - documented new character-search-backward command and default
- emacs mode binding to M-C-]
-
-shell.c
- - only call posix_initialize if posixly_correct is set
-
- 12/22
- -----
-cpp-Makefile
- - make $(Program) depend on $(srcdir)/.distribution, for the
- benefit of systems where `make' does not have VPATH support
- [In 1.14.3]
-
-jobs.c
- - if a foreground job is killed by SIGINT while job control is
- active, print a newline to compensate for the kernel printing
- ^C without one [in 1.14.3]
-
-bashline.c
- - make sure bashline_reinitialize resets rl_completion_entry_function
- to NULL, as the comment says it should [In 1.14.3]
-
- 12/23
- -----
-test.c
- - fix a problem that caused core dumps if a `)' was missing in a
- parenthesized expression [In 1.14.3]
-
-jobs.c
- - broke the code the manages the manipulation of the job table and
- process status out of flush_child into a new function waitchld()
- - flush_child now just calls waitchld() with a parameter that tells
- it not to block
- - wait_for calls waitchld() with the pid it's looking for and tells
- it to block (don't call it with WNOHANG)
- - cleaned up wait_for considerably -- turned the wait_loop: label
- stuff into a do-while loop and removed the setting of job status
- (that's now done only by waitchld). wait_for now calls
- waitchld continuously until the job it is interested in is
- marked JDEAD.
-
- 12/28
- -----
-subst.c
- - fixed expand_word_internal so that any word that expands into
- nothing and contains a double-quoted $@ is removed, like sh
- and ksh
- - new function: expand_string_for_rhs, which calls expand_word_internal
- with a variable that lets it find out whether or not a $@ appeared
- in the WORD in ${paramOPword} when expanding it, so that "$@"
- and various other things are handled correctly on the rhs
- - added params for parameter_brace_expand to tell expand_word_internal
- if a quoted $@ was processed as part of the rhs (or even the lhs);
- these new params are passed along to parameter_brace_expand_rhs
- - pass the right value of quoted to parameter_brace_expand_rhs from
- parameter_brace_expand. expand_string_for_rhs doesn't need to know
- whether the brace expression is quoted
-
- 12/31
- -----
-support/printenv
- - now an official part of the distribution, moved from CWRU/misc
- [in 1.14.3]
-
-cpp-Makefile
- - copy support/printenv into the `tests' directory when making tests
- [in 1.14.3]
- - change to understand GCC_STANDARD [in 1.14.3]
-
-support/bashbug.sh
- - fixed a typo that caused it to not parse correctly [in 1.14.3]
-
-machines.h
- - define GCC_STANDARD if the standard `cc' is gcc and you don't want
- to use the compiler named `gcc' for some reason [in 1.14.3]
-
- 1/2
- ---
-general.h
- - added FS_DIRECTORY to the list of flags that file_status returns
-
-execute_cmd.c
- - changed find_in_path_element to return null if the flags argument
- specifies FS_EXEC_ONLY and the file is not executable
- - return FS_DIRECTORY from file_status if the argument specifies a
- directory
- - new function, is_directory (char *), which returns non-zero if the
- filename argument is a directory
-
-execute_cmd.h
- - extern declaration for is_directory
-
-flags.c, flags.h
- - hashing_disabled and locate_commands_in_functions were removed,
- hashing_enabled added
-
-execute_cmd.c, builtins/common.c. builtins/hash.def
- - use hashing_enabled instead of hashing_disabled, and reverse
- the sense of tests of it
-
-documentation/bash.1, documentation/features.texi
- - changed description of `set -h/set -o hashcmds', removed
- set -d/set -o nohash
-
-bashline.c
- - changed command_word_completion_function to return matches if names
- are directories as well as if they are executable files
-
-support/mksysdefs
- - look for `ranlib' in $PATH before searching the file system;
- look in /usr/gnu/bin for it; default to `:' if not found
-
-general.c
- - change ansicstr to accept a second argument telling it whether to
- recognize \c and to pass back a non-zero value in it if \c is
- seen
-
-general.h
- - changed extern declaration of ansicstr
-
-subst.c
- - call ansicstr with an extra argument
+ - change to time_command so that a `real' value of 0 does not
+ cause a divide-by-zero error when computing cpu percentage
- 1/3
- ---
-builtins/echo.def
- - rewrote to use ansicstr() with the new argument
-
- 1/4
- ---
-trap.c
- - changed instances of signal() to set_signal_handler() [in 1.14.4]
- - combined reset_signals and restore_signals into a single function,
- since they were essentially identical
-
-subst.c
- - if set -u is set, references to the positional parameters now
- generate errors if that parameter is not set [in 1.14.4]
-
-lib/*/Makefile, builtins/Makefile
- - since RANLIB can be just `ranlib', just try to run it without
- checking that the file exists [in 1.14.4]
+lib/readline/signals.c
+ - if MUST_REINSTALL_SIGHANDLERS is defined, reinstall the SIGWINCH
+ handler in rl_handle_sigwinch
builtins/set.def
- - changed `hashcmds' to `hashall'
-
-documentation/{bash.1,features.texi}
- - changed `hashcmds' to `hashall'
+ - `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
- 1/5
- ---
-trap.c
- - make the loop that restores signal handlers run from signal 0 to
- make sure user subshells don't inherit traps on `exit' (to fix
- for 1.14.3, change restore_original_signals so that the loop
- starts from 0) [in 1.14.4]
-
-variables.c
- - don't import exported function definitions at startup if the
- shell is restricted
-
-builtins/source.def
- - don't allow use of pathname arguments containing `/' in a
- restricted shell
-
-execute_cmd.c
- - when a shell is spawned to execute a shell script without a
- #! line, turn off the -r flag if the shell is restricted
-
-shell.c
- - added a new long option `--restricted'
-
-documentation/bash.1
- - added a section on the restricted shell, and documented the
- new `--restricted' long invocation option
-
- 1/7
- ---
-shell.c
- - when using bash -c command, make run_one_command return
- last_command_exit_value if a throw_to_top_level with value
- EXITPROG occurs [in 1.14.4]
-
-print_cmd.c
- - make sure to initialize arg_index in the non-varargs implementation
- of cprintf [in 1.14.4]
-
-jobs.c
- - don't try to change the state of the SIGCHLD handler before
- calling waitchld() from wait_for, since SIGCHLD is blocked
- while this code is executing [in 1.14.4]
-
- 1/11
- ----
-lib/readline/rltty.c
- - call control_keypad iff the value of a new variable,
- _rl_enable_keypad, is non-zero
-
-lib/readline/bind.c
- - new readline variable `enable-keypad' to control whether readline
- tries to manipulate the application keypad
-
-documentation/{bash.1,readline.3}, lib/readline/doc/rluser.texinfo
- - documented new `enable-keypad' variable
-
- 1/12
- ----
-lib/readline/search.c
- - make sure to call rl_unix_word_rubout and rl_unix_line_discard
- with the correct arguments [in 1.14.4]
-
-make_cmd.h
- - make sure make_select_command is declared even if SELECT_COMMAND
- is not defined
-
-parse.y
- - make sure the \[ and \] escape sequences are not recognized if
- READLINE is not defined [in 1.14.4]
-
-config.h
- - make sure HISTORY is defined if READLINE is; code moved here
- from bashhist.c [in 1.14.4]
-
-bashhist.c
- - removed check for READLINE being defined without HISTORY; now
- in config.h
- - new function, bash_history_reinit
-
-flags.h, flags.c, builtins/set.def
- - the -H/-o histexpand flag should be compiled into the shell
- only if BANG_HISTORY is defined [in 1.14.4]
-
-subst.c
- - don't include sv_histchars unless BANG_HISTORY is defined
- [in 1.14.4]
- - if QUOTED is true in parameter_brace_expand_rhs, pre-process the
- word on the rhs of the parameter expansion by a call to
- string_extract_double_quoted with the STRIPDQ parameter set to 1
- - new arg for string_extract_double_quoted; causes it to strip
- double quotes and alter its backslash handling behavior; designed
- to be called from parameter_brace_expand_rhs
- - changed all other instances of string_extract_double_quoted to
- call it with STRIPDQ set to 0, to get old behavior
-
-shell.c
- - call bash_history_reinit rather than manipulating history
- variables directly
-
-variables.c
- - don't auto-export $BASH [in 1.14.4]
-
-tests/rhs-exp.tests
- - new test script to check for behavior fixed by changes to
- string_extract_double_quoted and parameter_brace_expand_rhs
-
-parse.y
- - `for' and `select' must now take non-empty lists between
- `in' and `;'
-
- 1/16
- ----
-subst.c
- - fixed string_quote_removal to do double-quoted string processing
- itself rather than call string_extract_double_quoted, which
- assumes that a call to expand_word_internal or the equivalent
- will follow immediately and leaves some backslashes in place,
- inappropriately for quote removal
-
- 1/23
- ----
-subst.c
- - make sure to set `temp' to NULL after it's freed by sub_append_string
- in expand_word_internal to keep it from pointing to newly-allocated
- memory that will be subsequently freed, causing a `memory freed
- twice' error [in 1.14.4]
-
-trap.c
- - handle the EXIT_TRAP specially in reset_or_restore_signal_handlers,
- since in both cases we simply want to free up the trap string and
- mark the signal as not trapped
-
-shell.h
- - added \n to the list of characters in slashify_in_double_quotes
-
- 1/26
- ----
-subst.c
- - make string_extract_single_quoted and string_extract_double_quoted
- `inline'
- - new function skip_single_quoted, used when we used to call
- string_extract_single_quoted and just throw the returned string
- away
- - new function skip_double_quoted for the same purpose
-
- 1/28
- ----
subst.c
- - fixed expand_word_internal so that if an assignment word
- is expanded, no word splitting is performed [in 1.14.4]
+ - 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
-builtins/ulimit.def
- - some systems lack RLIMIT_CPU; so `#ifdef' its use [in 1.14.4]
- - some versions of cpp expand parameters like \n if `n' is an
- argument to the macro; change `n' to `num' in the definition
- of print_rlimtype to compensate [in 1.14.4]
-
-builtins/read.def
- - make sure the read loop sets `saw_escape' to note that an
- escape character was read if CTLESC or CTLNUL is read [in 1.14.4]
-
-shell.c, sig.c
- - only test interactive_shell before calling maybe_save_shell_history
- [in 1.14.4]
-shell.c
- - include <locale.h> if HAVE_LOCALE_H is defined
- - call setlocale(LC_ALL, "") at the beginning of main() if
- either _POSIX_VERSION or HAVE_SETLOCALE is defined
-
-support/mksysdefs
- - look for <locale.h>, define HAVE_LOCALE_H if found
-
-cpp-Makefile
- - pass HAVE_LOCALE_H through from sysdefs.h to the build process
-
-bashhist.c
- - remove test against interactive_shell in maybe_save_shell_history
- [in 1.14.4]
-
-variables.c
- - moved definition of DEFAULT_MAIL_PATH to config.h
-
-config.h, config.h.mini
- - now has definition of DEFAULT_MAIL_PATH [in 1.14.4]
- - changed default value of PATH to
- `/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.'
- [in 1.14.4]
-
-documentation/bash.1
- - updated the example of the default path in the description of
- the PATH variable
-
-lib/readline/readline.c
- - set up a table of `legal' LC_CTYPE values and match the value of
- $LC_CTYPE against it when deciding whether or not to default to
- eight-bit input and output
- - check for LC_ALL, LC_CTYPE, and LANG, in that order, for names to
- check against the legal_lc_ctype_values table
-
-lib/readline/bind.c
- - moved strindex, stricmp, and strnicmp to lib/readline/util.c,
- added _rl_ prefix to names
- - some miscellaneous code cleanups and speedups
-
-lib/readline/rldefs.h
- - define _POSIX_VDISABLE as _SVR4_VDISABLE if there is a define
- for the latter and not the former [in 1.14.4]
- - moved defining _rl_stricmp and _rl_strnicmp as strcasecmp and
- strncasecmp, respectively, here from bind.c, since the functions
- are now defined in util.c and used in two files
-
-builtins/common.c
- - removed the \n case in double_quote, so a backslash is not added
- before an existing newline. The \<newline> pair is removed by
- the parser before anything else in the shell gets hold of it
- except within single quotes [in 1.14.4]
-
- 1/30
+ 2/28
----
-general.c
- - make sure the string index in canonicalize_pathname never goes
- < 0 (it can, in some cases, result in `start' being -1, and `i'
- being set to that) [in 1.14.4]
-
- 2/1
- ---
execute_cmd.c
- - fix a typo in a call to `access' in AFS-specific code [in 1.14.4]
-
- 2/3
- ---
-builtins/shopt.def
- - finally added new `shopt' builtin
-
-builtins/umask.def
- - converted to use builtin_getopt
-
-bashhist.c
- - support for storing literal newlines in the history list when
- command_oriented_history is enabled, rather than using semicolons
-
-builtins/Makefile
- - changed rule to make a .o file from a .def file to remove the
- .c file if the compilation fails
-
- 2/6
- ---
-bashhist.c
- - added new variable `force_append_history' that will force the
- history list to be appended to the history file at shell exit
- - new function, maybe_append_history, to append any history lines
- from the current session to the history file. Used by history -a
-
-builtins/bind.def
- - changed the `-d' option to -p
-
-builtins/set.def
- - added `allenv' as a -o synonym for `set -k'. Now all of the
- single-letter shell options have -o equivalents
-
-builtins/shopt.def
- - added -p option to display shell options, like other builtins
- - added `interactive_comments' as a shell option, like set -o
-
-builtins/bind.def, builtins/history.def, builtins/enable.def
- - changed use of multiple variables to hold option flag settings to
- one variable with bits representing flag values
-
-documentation/bash.1, documentation/features.texi
- - changed the description of the `bind' builtin for the new -p option
- - changed the description of the `set' builtin for the new
- `-o allenv' option
- - updated the description of the `shopt' builtin
-
-builtins/history.def
- - changed -a option to use maybe_append_history
-
-subst.c
- - changed the substring/subarray code to make negative offsets
- count backwards from the end of the string or array
+ - if execute_for_command finds that the iteration variable is readonly,
+ decrement loop_level before returning
-builtins/bashgetopt.c
- - added option modifiers `;' (argument is optional) and `#'
- (argument is optional, but if present must be numeric)
+builtins/break.def
+ - if the break count is <= 0, display an error message and break out
+ of all loops
-builtins/hash.def
- - converted to use builtin_getopt
- - broke code out into a new function: add_hashed_command
+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
- 2/7
- ---
-builtins/getopt.c
- - changed to save state to avoid relying on `nextchar' staying the
- same across calls to sh_getopt [in 1.14.4]
- - added a function to restore `nextchar' from this saved state
- [in 1.14.4]
- - removed some dead code
+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
builtins/getopts.def
- - call function to restore sh_getopt state when parsing explicitly
- supplied arguments rather than the positional parameters [in 1.14.4]
+ - when invoked without any arguments, `getopts' now prints a usage
+ message
-lib/readline/vi_mode.c
- - fixed an off-by-one error in _rl_vi_done_inserting that put the
- \0 in vi_insert_buf at offset `len' instead of `len - 1'
-
-lib/readline/complete.c
- - print_filename now filters out control characters and displays
- them in printable format, rather than relying on the tty driver
- to do the right thing [in 1.14.4]
-
- 2/8
+ 3/3
---
-lib/posixheaders/stdc.h
- - test for each special keyword being defined individually, rather
- than just testing on `const' [in 1.14.4]
-
-lib/readline/util.c
- - new function _rl_abort_internal; rl_abort just calls this
-
-nojobs.c
- - include error.h for extern function definitions [in 1.14.4]
-
-builtins/ulimit.def
- - include <unistd.h> if HAVE_UNISTD_H is defined
- - use HAVE_LIMITS_H to decide whether or not to include <limits.h>
-
-variables.c, subst.c, builtins/set.def
- - removed special handling of `noclobber' variable
-
-builtins/set.def
- - new function set_shellopts to set up the $SHELLOPTS variable
- based on the values of the set -o options; `set' calls this
- function whenever one of the options is changed
- - new function parse_shellopts to take the value of SHELLOPTS and
- turn on each option found therein
- - new function initialize_shell_options to parse any inherited
- value of $SHELLOPTS and set up $SHELLOPTS
-
-shell.c
- - call initialize_shell_options at the end of shell_initialize()
-
-execute_cmd.c, general.c
- - moved extract_colon_unit from execute_cmd.c to general.c
-
-execute_cmd.h, general.h
- - moved extern declaration of extract_colon_unit from
- execute_cmd.h to general.h
-
-documentation/{bash.1,features.texi}
- - documented SHELLOPTS
-
- 2/18
- ----
-builtins/{shopt,pushd,jobs,umask}.def
- - removed the `longjobs', `longdirs', `pushd_home' and `symbolic_umask'
- options
-
-lib/readline/{histexpand,histsearch,histfile}.c, lib/readline/histlib.h
- - new files, split off from old history library history.c
-
-lib/readline/history.c, lib/readline/history.h
- - new function clear_history() to clear the history list
-
-lib/readline/doc/hstech.texinfo
- - documented clear_history ()
-
-builtins/pushd.def
- - new function clear_directory_stack() to delete all elements of
- the dir stack
- - new -c option for `dirs' to clear directory stack
- - new function get_dirstack_index for dirs -N and dirs +N to use
- - new function get_dirstack_element(i, dir) for use by other parts of
- the shell that want the functionality of dirs -N and dirs +N
- (dir is 1 for dirs +N, -1 for dirs -N)
- - new function set_dirstack_element(i, dir, val) for use by other
- parts of the shell to change values in the dirstack (dir is -1
- for dirs -N, +1 for dirs +N). Used when assigning to $DIRSTACK.
-
-builtins/history.def
- - new -c option to clear the history list
-
-documentation/bash.1, documentation/features.texi
- - removed no-longer-valid shopt options
- - documented new dirs -c option
- - documented new history -c option
- - documented new \T and \H prompt escape sequences
- - documented new $DIRSTACK dynamic array variable
- - documented the new expand-glob and list-glob readline commands
-
-variables.c
- - set PS4 to its default value of `+ ', so that unsetting it will
- disable the tracing characters [in 1.14.4]
- - new framework for dynamic array variables -- each place an
- array index is assigned to, a test is made. if a dynamic
- assignment function exists, it is called with args `self',
- the index being assigned to, and the new value
- - new variable `$DIRSTACK', a dynamic array variable that holds
- the current contents of the directory stack. You can even
- change the stack by assigning to thie variable
-
-shell.c
- - changed indirection_level_string to return the null string if
- $PS4 is unset or null [in 1.14.4]
-
-parse.y
- - new \H prompt escape for hostname up to first `.'; changed \h
- to return full hostname (like \w/\W)
- - new \T prompt escape for 12-hour time
-
-bashline.c
- - new readline functions to expand glob patterns and insert or
- list the expansions (special completion functions)
-
-
- 2/20
- ----
-builtins/pushd.def
- - new code for `pushd -n' and `popd -n' to inhibit cd when
- adding or removing directories from the stack
- - broke functionality off into separate functions for use by the
- $DIRSTACK manipulation functions
-
- 2/21
- ----
-lib/readline/kill.c
- - new functions to copy words to the kill ring, backward or
- forward
-
-lib/readline/readline.h
- - extern declarations for rl_copy_{backward,forward}_word
+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/{break,exit,history,return,shift}.def
+ - change calls to get_numeric_argument
lib/readline/funmap.c
- - new bindable readline commands: copy-backward-word and
- copy-forward-word to copy portions of the line to the kill
- ring without deleting them
-
-documentation/{bash.1,readline.3}, lib/readline/doc/hsuser.texinfo
- - documented the new copy-backward-word and copy-forward-word
- readline commands
-
-mailcheck.c, config.h
- - the declaration of DEFAULT_MAIL_PATH is now only in config.h
- and used by mailcheck.c and variables.c. There is no need to
- use DEFAULT_MAIL_PATH_LEN; `sizeof' does the job [in 1.14.4]
-
- 2/22
- ----
-support/mksysdefs
- - changes to fix `RELEASE' if it ends up being set to the empty string
- [in 1.14.4]
- - check for amdahl UTS [in 1.14.4]
- - check for SGI Irix version 6.x [in 1.14.4]
-
-machines.h
- - new entry for Amdahl UTS [in 1.14.4]
- - changes to the SGI entry for Irix 6.x [in 1.14.4]
-
- 2/23
- ----
-machines.h
- - changes for BSD/OS 2.0 (M_OS now set to `BSD_OS') [in 1.14.4]
-
-support/mksysdefs
- - change to recognize BSD/OS 2.0 and set SYSDEF to BSDI2 [in 1.14.4]
-
-siglist.h
- - don't declare sys_siglist on BSD/OS 2.0 [in 1.14.4]
-
- 2/24
- ----
-parse.y
- - if reset_parser is called while the prompt command is being
- executed because of a syntax error in $PROMPT_COMMAND, an
- infinite loop results. set token_to_read back to 0 at the
- end of execute_prompt_command to stop the looping [in 1.14.4]
-
- 2/25
- ----
-mailcheck.h
- - new header file for mail-checking and related definitions
- - declaration of DEFAULT_MAIL_PATH is now here
-
-mailcheck.c
- - new function, make_default_mailpath, which constructs a default
- $MAILPATH string from DEFAULT_MAIL_PATH [in 1.14.4]
- - change remember_mail_dates to call make_default_mailpath
- [in 1.14.4]
-
-externs.h
- - moved function declarations for functions in mailcheck.c to
- mailcheck.h
-
-variables.c
- - change initialize_shell_variables to call make_default_mailpath
- [in 1.14.4]
- - removed some unneeded variables in initialize_shell_variables
-
- 2/26
- ----
-lib/readline/callback.c
- - new file with readline callback function interface
-
-lib/readline/rlconf.h
- - new READLINE_CALLBACKS define for the readline callback code to
- be compiled in and available
-
-lib/readline/readline.c
- - broke readline_internal into three functions: readline_internal_setup,
- readline_internal_charloop, and readline_internal_teardown
- - changes for READLINE_CALLBACKS
+ - add `dump-macros' to list of bindable names
lib/readline/readline.h
- - extern declarations for the readline callback code
-
-cpp-Makefile
- - added lib/readline/callback.c to the list of readline files
-
-lib/readline/input.c
- - added a layer of indirection to allow the user to specify the
- function that reads a character from rl_instream. The variable
- name is rl_getc_function, set by default to rl_getc
-
- 2/27
- ----
-lib/readline/display.c
- - added a variable rl_redisplay_function to allow an application-
- specified redisplay function, for those apps that want to control
- redisplay
+ - added extern declaration for rl_prompt (it was apparently missing)
lib/readline/readline.c
- - extern declarations for rl_getc_function and rl_redisplay_function
-
-lib/readline/{readline,display,isearch,search,parens}.c
- - changed to call through rl_redisplay_function rather than
- rl_redisplay directly
-
-parse.y
- - try to avoid some work in reset_readline_prompt and prompt_again
- if the prompt is the empty or null string [in 1.14.4]
+ - 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/readline.c
- - call rl_expand_prompt unconditionally [in 1.14.4]
+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
-lib/readline/display.c
- - short-circuit out of rl_expand_prompt if the prompt string is null
- after clearing out the saved local prompt values. This allows
- $PS2 to be set to "" [in 1.14.4]
+ 3/4
+ ---
+alias.c
+ - made the readline support functions #ifdef READLINE, so they're
+ not compiled into the shell unless readline is
-lib/readline/doc/rltech.texinfo
- - documented the callback code and functions
- - documented rl_getc_function and rl_redisplay_function
+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
-lib/readline/{callback,readline,rltty,signals}.c
- - added layer of indirction for terminal prep and deprep, with
- rl_term_prep_function and rl_term_deprep_function. These are
- set by default to rl_prep_terminal and rl_deprep_terminal,
- respectively
+lib/readline/readline.c
+ - new variable, rl_dispatching, set to 1 when we call a function
+ from _rl_dispatch
lib/readline/readline.h
- - make rl_term_prep_function and rl_term_deprep_function available
- to callers
+ - extern declaration for rl_dispatching
- 3/1
- ---
lib/readline/complete.c
- - broke the (long, complicated) rl_complete_internal code into a
- number of separate functions:
-
- find_completion_word
- gen_completion_matches
- remove_duplicate_matches
- display_matches
- insert_text
- insert_match
- append_to_match
- insert_all_matches
-
- - made some efficiency improvments to filename_completion_function
- - the completion ignore function is now called no matter what type
- of completion is being performed (as it should have been all along)
-
-lib/readline/rldefs.h
- - use #defines for the possible values ORed into `found_quote' by
- the completion code
-
- 3/2
- ---
-make_cmd.c, general.c
- - moved make_word_array from make_cmd.c to general.c, renamed to
- word_list_to_argv, extended it to optionally not malloc all of
- the strings and to reserve space at the start of the array
-
-execute_cmd.c
- - changed to use word_list_to_argv, not mallocing space for the
- strings
-
-builtins/common.c, builtins/common.h
- - new function make_builtin_argv, which uses word_list_to_argv
- and reserves 1 slot at the beginning for the command name
+ - make sure S_ISCHR and S_ISBLK are defined before using them
-builtins/exec.def
- - changed to use word_list_to_argv
+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
-builtins/{getopts,test}.def
- - changed to use make_builtin_argv
+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
-subst.c
- - new function match_pattern_char, to see if the first char of
- a string has a chance to match a given pattern (test against
- the first char of the pattern); used by match_pattern in the
- MATCH_ANY case
+builtins/set.def
+ - fixed a bug in set_shellopts that caused the shell to crash if
+ there were no shell options set
- 3/3
+ 3/5
---
-jobs.c
- - renamed flush_child to sigchld to capture the functionality better
+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
-array.c
- - new function array_pat_subst, to do pattern substitution on each
- element in an array
-
-array.h
- - extern declaration for array_pat_subst
-
-subst.c
- - new function pat_subst to do pattern matching and substitution on
- a string
- - new function parameter_brace_pat_subst to implement
- ${v/[/]pat[/sub]}; calls pat_subst for simple vars,
- pos_params_pat_subst to do substitution on the positional params,
- and array_pat_subst for things like ${v[@]/p/r}
-
-subst.h
- - extern declaration for pat_subst so array.c can find it
+builtins/setattr.def
+ - fixed `export -p' and `readonly -p' so that they output `export'
+ or `readonly' when in POSIX mode, as POSIX.2 specifies
3/6
---
-parse.y
- - <>filename now dups filename to file descriptor 0 for both input
- and output even when not in posix.2 mode
+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
-bashline.c
- - add the globbing characters to the list of characters that need
- to be quoted by filename completion
+jobs.c, nojobs.c
+ - don't report status for processes killed by SIGPIPE if
+ DONT_REPORT_SIGPIPE is defined
-jobs.h
- - new convenience macros:
- RUNNING, STOPPED, DEADJOB - to test a job's state
- IS_FOREGROUND, IS_NOTIFIED, IS_JOBCONTROL - flags
+config.h.top
+ - added a commented-out define for DONT_REPORT_SIGPIPE
-jobs.c, builtins/{kill,fg_bg}.def
- - changed to use new jobs.h macros
+execute_cmd.c
+ - `time' can now be used to time background pipelines, and reports
+ the timing statistics when the pipeline completes
- 3/7
- ---
-array.c, array.h
- - new function dup_array_subrange(a, s, e) to make a new array
- out of the elements of array A between S and E, inclusive
- - add `quoted' parameters to array_subrange and array_pat_subst
- to preserve proper quoting of elements when expanding things
- like "${av[@]/xx/yy}"
- - new function array_quote to quote the members of an array like
- the functions in subst.c
+[bash-2.01-alpha1 frozen]
+ 3/12
+ ----
subst.c
- - pass the quoted flag to array_subrange and array_pat_subst
- - quote_string is no longer static
-
-subst.h
- - extern declaration for quote_string
-
-builtins/hash.def
- - added a -p pathname option to specify a pathname for the command
- name to be hashed. With -p, no path search is performed.
-
-lib/readline/histexpand.c
- - broke history_tokenize off into history_tokenize_internal and
- added two arguments: a character index and a word index. If
- the char index is >= 0, the word index will be modified to point
- into the returned array of strings to the word surrounding that
- particular character index
- - new function history_find_word(line, ind) to return the word
- containing the character at index IND in LINE
- - new variable search_match, found by history_find_word, to hold the
- word last matched by a !?string? search
- - corrected a problem with the `%' modifier: it should insert the
- word last matched, not the last search string
-
- 3/8
- ---
-cpp-Makefile
- - changed INSTALL_PROGRAM and INSTALL_DATA to use support/install.sh
- - changed `install' target to not explicitly save the old version of
- bash in `bash.old'; let install take care of it
+ - 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
-shell.c
- - new static variable `running_under_emacs', set to 1 if the
- variable `EMACS' is in the startup environment, and to 2 if
- we're running under the `eterm' terminal emulator
- - send an escape sequence to eterm if running_under_emacs is 2
- after executing any $PROMPT_COMMAND to tell it the current
- directory
-
- 3/9
- ---
-builtins/ulimit.def
- - made getting -u work for systems that have a MAXUPRC define.
- it still cannot be set without RLIMIT_NPROC
-
-shell.c
- - include trap.h for sig definitions
-
-builtins/common.h, subst.h, general.h, externs.h
- - more extern function declarations
-
-bashhist.c
- - new function, bash_history_disable(), to turn off history and
- history expansion
- - bash_history_disable now sets history_expansion_inhibited
-
-bashline.h
- - new file with extern declarations from bashline.c
+configure.in
+ - added a `--with-curses' argument so curses can be forcibly chosen
+ over libtermcap (some Unix versions ship lousy termcap databases)
-parse.y, bashhist.c, builtins/bind.def, subst.c, sig.c
- - include bashline.h
+support/mkconffiles
+ - new script to create _distribution and _patchlevel from values
+ contained in `configure'
- 3/10
- ----
-lib/glob/glob.h
- - new file with extern declarations for local glob library
-
-shell.c
- - include glob.h, mailcheck.h
-
-cpp-Makefile
- - changes to dependencies due to mailcheck.h, bashline.h, glob.h
+doc/bashref.texi
+ - updated installation instructions
3/13
----
-execute_cmd.c
- - new function execute_connection to execute commands of type
- cm_connection
- - new function execute_pipeline, to execute pipelines
-
-lib/readline/rltty.c
- - add a `tty' argument to the set_winsize function/macro, the
- non-shell version needs it
+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
----
-parse.y
- - added \a (bell) and \e (escape) prompt string escape sequences
-
- 3/16
- ----
-lib/readline/display.c
- - fixed bug in update_line that caused stray characters to be left on
- lines after the first if characters are deleted so that the first
- line becomes exactly as long as the screen width [in 1.14.4]
-
-lib/readline/doc-support
- - brought in the GNU getopt because texindex needs it
+builtins/cd.def
+ - spelling correction is no longer enabled by default
-documentation/Makefile
- - adopted the BSD convention of a suffix of `.0' for formatted
- manual pages
+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
3/17
----
-support/inpath
- - a script to find out if a particular command name appears in
- a directory in $PATH [in 1.14.4]
-
-support/mksysdefs
- - changed to use inpath to find `ranlib' [in 1.14.4]
-
- 3/18
- ----
-bashline.c
- - include bashline.h
- - removed the DYNAMIC_HISTORY_COMPLETION define; that code is now
- included unconditionally
- - renamed ETCHOSTS to DEFAULT_HOSTS_FILE; moved definition to
- bashline.h
- - moved definition of BRACE_COMPLETION to config.h
-
-config.h
- - conditional definition of BRACE_COMPLETION is now here
-
-pathnames.h
- - new file with defines that are absolute pathnames
-
-shell.h
- - include pathnames.h
-
-mailcheck.h
- - def of DEFAULT_MAIL_PATH now moved to pathnames.h
-
-shell.c
- - def of SYS_PROFILE moved to pathnames.h
-
-alias.h
- - removed a bunch of extra definitions
-
-lib/readline/{vi_mode.c,bind.c}
- - removed superfluous STATIC_MALLOC code
-
-variables.c
- - removed SHADOWED_ENV code
-
- 3/20
- ----
-machines.h
- - don't define USG or USGr3 for linux machines [in 1.14.4]
- - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
- compatibility
-
-shell.c
- - change REVERSED_SETVBUF_ARGS to SETVBUF_REVERSED for autoconf
- compatibility
-
-support/mksysdefs, maxpath.h
- - change HAVE_SYS_PARAM to HAVE_SYS_PARAM_H for autoconf
- compatibility
-
-support/mksysdefs, jobs.h
- - use HAVE_SYS_WAIT_H
-
-machines.h, error.c
- - change HAVE_VFPRINTF to HAVE_VPRINTF for autoconf compatibility
-
-test.c
- - replace UID_T and GID_T with GETGROUPS_T, the size of the elements
- of the array returned by getgroups
-
-general.c
- - define HAVE_KILLPG if killpg() is present; compile in a replacement
- killpg if not
-
-machines.h, jobs.c
- - change BSD_GETPGRP to HAVE_BSD_PGRP
+configure.in
+ - configure --without-gnu-malloc by default on *-sgi-irix6* because
+ their code needs 8-byte alignment
-sig.c
- - don't call initialize_siglist if HAVE_SYS_SIGLIST is defined, no
- longer use INITIALIZE_SIGLIST
+support/bashbug.sh
+ - ``' needs to be quoted with a backslash in double-quoted strings
-machines.h, lib/malloc/malloc.c
- - change NO_SBRK_DECL to SBRK_DECLARED
+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)
- 3/22
+ 3/18
----
-machines.h
- - BSD/OS 2.0 does not need INT_GROUPS_ARRAY in SYSDEP_CFLAGS
-
-lib/readline/rldefs.h
- - don't check `Linux'; just include <termcap.h> if HAVE_TERMCAP_H
- is defined
-
-builtins/command.def
- - changed get_standard_path to use HAVE_CONFSTR
+command.h
+ - new redirection error code: HEREDOC_REDIRECT
execute_cmd.c
- - execute_simple_command no longer uses alloca
- - don't check RISC6000 anymore when deciding whether to use
- #pragma alloca
-
-execute_cmd.c, shell.c
- - check for ultrix instead of Ultrix when calling alloca(0)
-
-jobs.h
- - check HAVE_UNISTD_H to see whether to declare fork, getpid,
- and getpgrp
+ - 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)
-builtins/common.c
- - include <signal.h> for NSIG
-
-sig.h
- - don't define SIGABRT as SIGIOT unless SIGIOT is defined
+ 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
-jobs.c
- - check for ultrix instead of Ultrix
+lib/glob/fnmatch.c
+ - some changes from glibc-2.0.1 posix/fnmatch.c
- 3/23
+ 3/21
----
-general.c, general.h
- - new function check_dev_tty, which makes sure we can open
- /dev/tty
+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
shell.c
- - call check_dev_tty instead of having the code inline
-
-posixstat.h
- - removed references to isc386
-
-general.h
- - code to define one of TERMIOS_TTY_DRIVER, TERMIO_TTY_DRIVER,
- or NEW_TTY_DRIVER
+ - 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
-jobs.c, nojobs.c
- - use the general.h code to define the tty driver types
+externs.h
+ - new extern declaration for get_current_user_info(), so variables.c
+ can use it
3/24
----
-builtins/declare.def
- - new -p option to display variables and their values and attributes
- `declare -p xxx' displays attribs and value of var `xxx'
-
-builtins/setattr.def
- - new function to display the attributes and value of a particular
- variable; used by set_or_show_attributes
- - new function to look up a variable by name and show that name's
- attributes and value
-
-builtins/common.c
- - declarations for new functions in setattr.def
-
-variables.c
- - don't set a default value for MAILPATH in initialize_shell_variables;
- let remember_mail_dates take care of it [in 1.14.4]
-
-mailcheck.c
- - fixed an off-by-one bug in make_default_mailpath [in 1.14.4]
+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
- 3/28
+ 3/25
----
-[changes for autoconf-generated config files]
-
-lib/malloc/malloc.c
- - use HAVE_GETPAGESIZE, HAVE_BSD_SIGNALS, HAVE_POSIX_SIGNALS
-
-trap.c
- - remove tests for USG and USGr4
- - test on HAVE_POSIX_SIGNALS rather than _POSIX_VERSION
- - use MUST_REINSTALL_SIGHANDLERS define to decide whether trap_handler
- should call signal again
-
-getcwd.c
- - redid the directory includes for autoconf compatibility
- - use HAVE_LSTAT instead of testing for S_ISLNK
- - use STRUCT_DIRENT_HAS_D_INO
- - include memalloc.h for alloca define
-
-general.h
- - cleaned up strchr, strrchr definitions
- - removed tests against USG
- - use HAVE_MEMMOVE instead of MEMMOVE_MISSING
-
-jobs.c
- - use HAVE_WAIT3, MUST_REINSTALL_SIGHANDLERS, GETPGRP_VOID
-
-mailcheck.h
- - removed definition of DEFAULT_MAIL_DIRECTORY; now set by
- autoconf in config.h
-
-shell.c
- - remove checks on USG, just check for HAVE_GETPW_DECLS
- - use C_ALLOCA define
- - redid the isnetconn() code using HAVE_SYS_SOCKET_H,
- HAVE_GETPEERNAME, SVR4 and SVR4_2
-
-general.c
- - use HAVE_KILLPG, HAVE_RESTARTABLE_SYSCALLS, HAVE_UNAME,
- ULIMIT_MAXFDS, HAVE_TIMEVAL, HAVE_TIMES
-
-lib/readline/rldefs.h
- - redid the tty driver definitions using HAVE_TERMIOS_H, etc.
- - don't define anything having to do with signal type
-
-lib/glob/glob.c
- - redid the DIRENT defines and includes
- - redid other includes to remove dependencies on USG and system
- type (e.g., NeXT)
-
-builtins/times.def
- - changed to use HAVE_GETRUSAGE, HAVE_TIMEVAL, HAVE_TIMES, and
- the autoconf way to include <sys/time.h> and <time.h>
-
-builtins/ulimit.def
- - changed to use HAVE_GETRLIMIT
- - removed test of USG being defined
-
-siglist.h
- - changed to use SYS_SIGLIST_DECLARED, HAVE_UNDER_SYS_SIGLIST, and
- HAVE_STRSIGNAL
-
-print_cmd.c
- - use PRINTF_DECLARED
-
-builtins/command.def
- - use HAVE_CONFSTR along with _CS_PATH to get the standard path
-
-execute_cmd.c
- - only compile in execute_shell_script if HAVE_HASH_BANG_EXEC is not
- defined
-
nojobs.c
- - use HAVE_SIGINTERRUPT, HAVE_KILLPG, HAVE_POSIX_SIGNALS,
- MUST_REINSTALL_SIGHANDLERS, HAVE_WAITPID, *_TTY_DRIVER defines
+ - 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
-test.c
- - set up a new `getmaxgroups' define, moving the code out of inline
- - eliminate use of GETGROUPS_T
+general.c
+ - open /dev/tty with the O_NONBLOCK flag
variables.c
- - use CAN_REDEFINE_GETENV
-
-sig.c, sig.h
- - use HAVE_POSIX_SIGNALS, MUST_REINSTALL_SIGHANDLERS
-
-pathnames.h
- - removed the default mail directory defines; now set by autoconf
-
-oslib.c
- - new file, functions from general.c that are unix-version variable
-
-general.h
- - slightly changed function declarations for use by oslib.c
-
-support/bashbug.sh
- - changed @xxx@ to !xxx! for sed substitutions to avoid conflicts
- with autoconf substitutions in the Makefile
- - added MACHTYPE variable
-
-mailcheck.c
- - changed DEFAULT_MAIL_PATH to DEFAULT_MAIL_DIRECTORY, since that
- more clearly defines its function
-
-lib/readline/rltty.h
- - new file, to include the correct tty driver #include file
-
-lib/readline/rltty.c
- - include rltty.h
-
-lib/malloc/malloc.c
- - make systems with Posix signals block all signals while malloc
- is executing
-
- 3/29
- ----
-input.c
- - use off_t as the type of a seek offset, rather that int or long
-
-variables.c, oslib.c
- - moved `getenv' from variables.c to oslib.c
-
- 3/31
- ----
-sig.c, sig.h
- - new function, jump_to_top_level, which just calls longjmp with
- top_level as an argument -- here to isolate calls to longjmp
-
-subst.c
- - replaced calls to longjmp with jump_to_top_level
-
-bashjmp.h
- - new file with setjmp/longjmp defines and declarations
-
-shell.h, nojobs.c
- - include bashjmp.h in place of setjmp.h
-
-shell.c, sig.c, execute_cmd.c, unwind_prot.h, expr.c,
-builtins/{return,source}.def
- - change to use new defs in bashjmp.h
-
-subst.c
- - make sure PAT and REP in pattern substitution are run through
- expand_string_unsplit
+ - 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
builtins/set.def
- - don't try to blindly dereference the value returned by
- find_flags in set_shellopts
-
- 4/2
- ---
-aclocal.m4, config.h.in, config.h.top, config.h.bot, configure.in,
-support/install.sh, support/config.guess, support/config.sub
- - new files for (now official) autoconf-based configuration
-
-Makefile.in, builtins/Makefile.in,
-lib/{doc-support,malloc,glob,termcap,tilde,readline}/Makefile.in
- - new Makefiles for autoconf
-
-[additionally, all source files now include config.h]
-
- 4/3
- ---
-array.c, array.h
- - index_t --> arrayind_t, because some systems define index_t in
- <sys/types.h>
-
- 4/4
- ---
-aclocal.m4
- - fix test for broken dup2
-
-lib/*/Makefile.in
- - make all object files depend on $(BUILD_DIR)/config.h
-
- 4/5
- ---
-array.c
- - fixed problems in empty_array: need to reset max_index
- and max_size, and remove the links in the element chain
- after freeing them
-
-jobs.c
- - new functions to save an array of status values for each
- foreground job that exits (degenerate case is to have a
- single-process job exit and have a 1-element array)
- - new function to set a shell array variable `PIPESTATUS'
- which holds the status values from each member of the
- last-executed pipeline that spawned children
-
-documentation/bash.1
- - documented $PIPESTATUS
-
- 4/6
- ---
-configure.in
- - added new --with-afs argument to #define AFS for execute_cmd.c
-
- 4/10
- ----
-builtins/ulimit.def
- - use sysconf(_SC_CHILD_MAX) to find the maximum number of child
- proceeses per user if HAVE_SYSCONF and _SC_CHILD_MAX are both
- defined and RLIMIT_NPROC is not
-
- 4/12
- ----
-lib/readline/undo.c
- - new variable, local to library, to keep track of the number of
- `open' undo groups (UNDO_BEGIN without corresponding UNDO_END)
- - new function _rl_fix_last_undo_of_type to modify start and end
- bounds of last undo record of a specified type
-
-lib/readline/vi_mode.c
- - _rl_vi_done_inserting now calls rl_end_undo_group if the count
- of unclosed groups is > 0
- - fixed rl_vi_change_to to save an undo record when redoing and
- to fix the buffer corruption when doing `u' undo after a `.'
- redo of `C'
-
- 4/13
- ----
-unwind_prot.h
- - changed to use a union { char *s; int i; } when unwind-protecting
- integers to force correct alignment on machines where ints and
- pointers differ in size
+ - 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
lib/readline/readline.c
- - new variable Keymap rl_executing_keymap, which is set to the
- keymap the last function was invoked out of
+ - make sure that digit arguments don't change the state of
+ rl_last_func
-lib/readline/bind.c
- - new variable Keymap rl_binding_keymap, which is set to the last
- keymap a function and key sequence were bound in
+support/printenv.c
+ - new file, printenv(1) clone, used to avoid environment variables
+ that might be set automatically when using printenv.sh
- 4/17
+lib/tilde/tilde.c
+ - if SHELL is defined, don't call getenv to get the value of $HOME,
+ call get_string_value () directly
+
+ 3/26
----
-general.c
- - removed xmalloc, xrealloc, xfree to xmalloc.c
+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
-lib/malloc/Makefile.in
- - MALLOC and ALLOCA are both set by autoconf
- - need to provide some empty stub file to make up the library
- in case neither malloc.c and alloca.c are compiled into the
- shell
+lib/readline/history.h
+ - extern declaration for history_inhibit_expansion_function
-lib/malloc/gmalloc.c
- - new file, GNU libc malloc code
+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
-Makefile.in
- - new source file, xmalloc.c, new object file, xmalloc.o
+lib/readline/doc/hstech.texinfo
+ - documented history_inhibit_expansion_function
-general.h
- - changed type of size argument to xmalloc, xrealloc to `size_t'
+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
- - changes for new argument `--with-glibc-malloc' that includes
- gmalloc.o in libmalloc.a
+lib/readline/histexpand.c
+ - moved single_quote() to shell.c
- 4/18
- ----
-xmalloc.c
- - if malloc or realloc return null, report in the error message
- how many bytes have been allocated
+lib/readline/util.c
+ - moved savestring() to shell.c
-lib/readline/display.c
- - changed redisplay code to use an array of positions in the visible
- and invisible lines at which to break lines instead of simply
- calculating based on the screenwidth and number of invisible
- characters. In the future, this will allow newlines embedded in
- the lines to display to be handled better
+lib/readline/terminal.c
+ - moved set_lines_and_columns() to shell.c
-[Bash-1.14.4 released to net]
+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
- 4/19
- ----
lib/readline/signals.c
- - changed last call to signal() to call rl_set_sighandler()
-
- 4/20
- ----
-lib/readline/display.c
- - changed some ascii-specific code to use CTRL_CHAR and UNCTRL
- - finished up the changes that keep an array of line breaks
-
-shell.h
- - moved #define constants for parameter pattern substitution here
- from subst.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
-subst.c
- - changed the pattern substitution functions to take a `flags'
- parameter, which subsumes the match type, global replacement
- flag, and quoted variables
- - changed the pattern substitution functions to handle the `#'
- and `%' match qualifiers, which anchor the match at the
- beginning and end of the string, respectively
+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
shell.c
- - moved the code that turns off privileged mode into a function
- named `disable_priv_mode'
- - if the shell is running setuid or setgid and `-p' is not
- supplied, turn off privileged mode and reset the effective
- uid/gid
+ - 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
- 4/21
- ----
-subst.c
- - added a `quoted' paramter to parameter_brace_remove_pattern;
- Posix.2 says that the pattern is parsed differently if the
- entire expression is double-quoted
- - `getpattern' now takes a second argument, `quoted'
- - fixed `getpattern' to correctly handles a pattern spec when
- the whole expression is double-quoted. Posix.2 says that
- quote characters inside the pattern spec don't quote any
- special pattern chars if the whole thing is double-quoted.
- For example, the `*' in "${foo#'*'}" is not quoted, and the
- single quotes must appear literally.
-
-Makefile.in
- - add `documentation' as a dependency of `.made'
-
- 4/24
- ----
-Makefile.in
- - added `installdirs' target that makes bindir, infodir, mandir,
- and man3dir [in 1.14.5 cpp-Makefile]
-
- 4/25
+ 3/28
----
-builtins/fc.def
- - fixed problem with `fc -l' that occurred when fewer than 16 lines
- were in the history list [in 1.14.5]
+builtins/ulimit.def
+ - change RLIM_INFINITY to the hard limit only if the hard limit is
+ greater than the current (soft) limit
- 5/1
- ---
-Makefile.in, {builtins,documentation}/Makefile.in, lib/*/Makefile.in
- - fixed up the various `clean' targets to agree with Gnu coding
- standards
+hashlib.c
+ - return immediately from flush_hash_table if the hash table passed
+ is NULL
- 5/2
+ 4/1
---
-lib/readline/complete.c
- - made insert_all_matches correctly quote each of the filenames
- inserted into the line, if necessary
+shell.c
+ - remove call to initialize_filename_hashing -- initialize the hash
+ table the first time a hashed command has to be remembered
-config.h.top
- - surround definitions of DEFAULT_PATH_VALUE and STANDARD_UTILS_PATH
- with #ifndef/#endif to allow them to be overridden from the command
- line
+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
-builtins/set.def
- - changed set -o allenv to set -o keyword for ksh88 compatibility
+hashcmd.h
+ - new file, mostly from builtins/hashcom.h, with extern function
+ declarations added
-documentation/{bash.1,features.texi}
- - changed set -o allenv to set -o keyword
+execute_cmd.c, builtins/{hash,type}.def
+ - include hashcmd.h for hash function and type definitions
-builtins/setattr.def
- - added a `nodefs' attribute to set_or_show_attributes,
- show_var_attributes, and show_name_attributes to inhibit printing
- of definition as well as name
+builtins/{common.{c,h},hash.def}
+ - moved hashing functions and declarations to hashcmd.c/hashcmd.h
-builtins/declare.def
- - changed calls to set_or_show_attributes, and show_var_attributes
- accordingly
+Makefile.in, builtins/Makefile.in
+ - changed source and object file definitions and dependencies because
+ of addition of hashcmd.h and hashcmd.c
- 5/3
- ---
-Makefile.in
- - LIBPATH -> LIBSUBDIR
+builtins/hash.def
+ - return immediately from print_hashed_commands if hashed_commands
+ is empty, indicating that the hash table has not been initialized
- 5/4
+ 4/2
---
lib/readline/bind.c
- - renamed readline variable meta-flag to be input-meta
-
-documentation/bash.1, lib/readline/doc/rluser.texinfo
- - changed meta-flag to input-meta
-
-documentation/Makefile.in
- - use groff -Tascii to convert .1 -> .0
-
-subst.c
- - new function, strip_trailing_ifs_whitespace, does the obvious
-
-builtins/read.def
- - call strip_trailing_ifs_whitespace before assigning last
- variable to remainder of input string [in 1.14.5]
-
- 5/5
- ---
-builtins/hashcom.h
- - changed check_dot member of the PATH_DATA struct to flags, and
- added a HASH_CHKDOT define to replace the check_dot semantics
- - add HASH_RELPATH define for flags value
+ - fixed translation of ESC in rl_untranslate_keyseq and
+ rl_untranslate_macro_value
-builtins/hash.def, builtins/common.c
- - instead of xxx->check_dot, use (xxx->flags & HASH_CHKDOT)
-
-builtins/hash.def
- - if the full pathname to which a command is being hashed does
- not begin with a `/', set the HASH_RELPATH flag for it
-
-builtins/common.c
- - if a hashed filename as HASH_RELPATH set, check ./filename,
- returning null if that filename is not executable
-
-execute_cmd.c, general.c, execute_cmd.h, general.h
- - moved same_file and check_binary_file from execute_cmd.c to
- general.c
-
-hashlib.c, Makefile.in
- - renamed hash.c to hashlib.c
-
-hashlib.h, Makefile.in, builtins/Makefile.in, alias.h, variables.h,
-execute_cmd.c, hashlib.c, builtins/hashcom.h
- - renamed hash.h to hashlib.h
-
-variables.c, alias.c
- - removed inclusion of `hash.h'; header files already include
- correct file
+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
Makefile.in
- - new rule to remake all the Makefiles (`make Makefiles')
- - more changes to adhere to GNU coding standards for the various
- flavors of `clean' targets
-
- 5/8
- ---
-documentation/Makefile.in
- - use `texi2dvi' to make dvi files rather than tex and texindex
- [in 1.14.5]
- - don't install `bash_builtins.1' [in 1.14.5]
+ - changed the substitution delimiter in the `sed' commands that
+ create bashbug from `:' to `%' to avoid conflicts with options
+ containing `:'
-Makefile.in
- - removed instances of doc-support/texindex
-
- 5/9
+ 4/3
---
-make_cmd.c
- - new function make_bare_word, to make a WORD_DESC from a string but
- not to set any of its flags
- - broke make_word into make_bare_word and make_word_flags
- - fixed a bug in make_word_flags to make backslash-quoting a quoting
- character work right to not set the W_QUOTED flags
-
-subst.c, array.c, execute_cmd.c
- - call make_bare_word instead of make_word in situations where we
- don't want the flags set inadvertently
-
- 5/11
- ----
-subst.c
- - removed special handling of $POSIX_PEDANTIC
-
- 5/12
- ----
-shell.c
- - broke the code that fetches the uids and gids into a new
- function, uidget()
-
-subst.c
- - EUID and UID are no longer handled specially, since they're
- readonly
- - removed sv_uids function
- - merge sv_histfilesize into sv_histsize
-
-variables.c
- - instead of calling sv_uids from initialize_shell_variables,
- call uidset() instead
- - sv_uids -> uidset with mods to make it faster and avoid an
- extra call to free, malloc, and itos
-
-bashhist.c
- - call sv_histsize instead of sv_histfilesize
-
- 5/13
- ----
-pathexp.c
- - moved setup_ignore_patterns here from bashline.c, so GLOBIGNORE
- works even when readline is compiled out of the shell
- - changed the ignore data structure to a `struct ignorevar',
- defined in pathexp.h
- - added functions to implement GLOBIGNORE
-
-bashline.c
- - setup_ignore_patterns now in pathexp.c
- - renamed _ignore_names to ignore_completion_names
-
-subst.c
- - new function sv_globignore to be called when GLOBIGNORE changes
- value
-
-documentation/{bash.1,features.texi}
- - documented GLOBIGNORE
-
- 5/15
- ----
-documentation/texinfo.tex
- - upgraded to version 2.145 from autoconf-2.3 distribution
-
- 5/16
- ----
-lib/readline/display.c
- - delicate surgery on rl_redisplay, update_line, and _rl_update_final
- to convert to using the line breaks array instead of assuming that
- lines wrap because they're too long and using absolute buffer
- positioning calculated from the screen width. Now the `lithist'
- shopt option works right
-
-lib/readline/complete.c
- - make sure insert_match doesn't double an opening quote character
- after make_quoted_replacement adds an opening quote [in 1.14.5]
- - make sure append_match doesn't double a closing quote character
- [in 1.14.5]
-
-quit.h
- - new macros: SETINTERRUPT, CLRINTERRUPT, ADDINTERRUPT, DELINTERRUPT
- to manipulate the value of interrupt_state
-
-trap.c, sig.c, jobs.c
- - changes to use the new macros from quit.h
-
-jobs.c
- - make an a job that exits due to SIGINT make the shell act as if
- it received the interrupt itself, but only if SIGINT is not
- trapped [in 1.14.5]
-
- 5/18
- ----
-builtins/common.c
- - fix up find_hashed_filename and the HASH_RELPATH code. still need
- to use `shopt -s checkhash' to check the hashed pathnames. could
- fix this up more to make that unnecessary in the HASH_RELPATH case
-
-subst.c
- - new function get_array_value that does array subscripting for
- things like aa[1], for use by other parts of the shell like the
- expression evaluator
-
-expr.c
- - changes to make things like $(( aa[1] + aa[2])) work without
- using ${aa[1]}
-
-bashhist.c
- - converted the HISTIGNORE code to use the `struct ignorevar'
- framework, with a callback function histignore_item_func to
- set the HIGN_EXPAND flag if needed
-
-pathexp.c
- - made the `globignore' variable static
- - redid the code that removes ignored names from the `names' array
- in ignore_globbed_names to make it more efficient
-
-bashline.c
- - made the `fignore' variable static
-
- 5/20
- ----
-Makefile.in
- - made the `distclean' target remove the Makefiles in subdirectories
- created by autoconf
-
- 5/22
- ----
-builtins/command.def
- - don't allow `command -p' if the shell is restricted
-
-documentation/bash.1
- - documented the restriction on command -p for rbash
-
- 5/23
- ----
-aclocal.m4
- - add a new macro BASH_CHECK_TYPE, based on AC_CHECK_TYPE, that
- allows the caller to specify the header files to be included
- in the test program and provides for a default value to be
- defined if the type is found in the system files
-
-configure.in
- - check for getrusage and gettimeofday functions/syscalls
- - use BASH_CHECK_TYPE to check for clock_t in sys/types.h and
- sys/times.h
- - use BASH_CHECK_TYPE to check for sigset_t instead of a special
- BASH_TYPE_SIGSET_T
- - use BASH_CHECK_TYPE to check for quad_t instead of BASH_QUAD_T
- - new argument --enable-command-timing to compile in the `time'
- reserved word and command timing
-
-general.c
- - print_time_in_hz takes a `clock_t', not a `time_t'
-
-execute_cmd.c
- - support for timing pipelines with a new function time_command
- - execute_command_internal calls time_command if it is passed a
- command with the CMD_TIME_PIPELINE bit set in command->flags
- - new functions difftimeval and addtimeval to do arithmetic on
- timeval structs with overflow
-
-parse.y
- - new production: pipeline_command, used by list1 and simple_list1
- - pipeline_command includes rules to handle `!' and time
- - code to recognize `time' as a reserved word
-
print_cmd.c
- - new code to print `time ' before a command if the CMD_TIME_PIPELINE
- flag bit is turned on
-
-builtins/test.def
- - added description of string1 < string2 and string1 > string2 to
- the long doc
-
-test.c
- - added `<' and `>' string binary operators
-
-documentation/bash.1
- - documented the `time' reserved word and command timing
- - documented the new test `<' and `>' binary operators
-
-documentation/features.texi
- - documented the `time' reserved word and command timing
- - added more to the section detailing the differences between bash
- and sh
- - added descriptions of LINENO and ENV to the Ksh variables section
- - added description of echo to bash builtins section
- - added PPID, BASH, SHLVL to the Bash variables section
+ - 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
-subst.c
- - added a `quoted' parameter to extract_dollar_brace_string; changed
- all calls to it
-
- 5/24
- ----
-builtins/let.def
- - wrote code for an `exp' builtin that treats all of its arguments
- as an expression, concatenates them like `eval', and runs the
- expression evaluator
-
-expr.c
- - added code to do the Posix.2 conditional operator: expr?expr:expr
- - added a `noeval' flag to suppress evaluation. currently it only
- suppresses assignment
- - added code to the && and || functions so that evaluation is
- suppressed in the part of the statement that is not supposed to
- be executed (a && b: set noeval if a is false; a || b; set
- noeval if a is true)
-
- 5/25
- ----
-documentation/{bash.1,features.texi}
- - documented new `expr?expr:expr' conditional expression syntax
- now arithmetic evaluation is Posix.2-conformant
-
-lib/readline/readline.c
- - added several more locale names to the list of legal $LANG
- values
+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
subst.c
- - fixed a bug in parameter_brace_patsub: when replacing a string
- with nothing, rep was set to "", and the code attempted to
- free "", which the GNU malloc upchucked on
-
-bashhist.c
- - just add a line to the history if command_oriented_history is
- set to 1 and the current line in the command is > 1; don't
- even bother checking history_ignore
+ - change call to strip_trailing in command_substitute to add the
+ new second argument
-parse.y
- - new variable `two_tokens_ago' to remember the token read before
- `token_before_that'
- - fix to history_delimiting_chars to make sure that no semicolon
- is added after `()' (assume its a function definition), but that
- a semicolon is added after other `)' (assume its a parenthesized
- command)
-
- 5/31
- ----
-tests/run-all
- - put `.' first in $PATH and don't export ENV
- - set THIS_SH to ../bash if it's unset
-
-lib/readline/complete.c
- - only try to find a word break character in rl_complete_internal
- if we hit the end of the input string and found_quote == 0
- (the opening quote could have been the last character in the
- string)
+externs.h
+ - changed extern declaration for strip_trailing
- 6/2
+ 4/4
---
-subst.c
- - changed make_quoted_char to return CTLNUL\0 if passed a \0
- (this is what quote_string does, too) [in 1.14.5]
- - changed list_string to use make_quoted_char when adding a quoted
- null argument due to a null field when ifs != ' \t\n'
- - added an `expandpat' argument to getpattern, which tells it to
- call string_extract_double_quoted if the pattern expression is
- double-quoted, and changed all calls to initially pass `1' as
- its value
-
-jobs.c
- - changed start_job so that an attempt to start a job marked as
- JDEAD elicits an error message [in 1.14.5]
-
-Makefile.in
- - fixed `distclean' target so that it removes Makefiles in subdirs
- *after* descending into them to do submakes (!)
- - fixed `realclean' target to remove everything that distclean does
+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
- 6/5
+ 4/5
---
-builtins/declare.def
- - fixed a typo that made `declare +r var' turn off read-only status
- for a variable [in 1.14.5]
- - added -p option to short doc and long doc
- - added code to allow `declare -f -options name' to set and unset
- attributes for the named functions. Only when no other options
- are supplied will the named and value of the function be displayed
- [in 1.14.5]
-
-variables.h
- - new SETVARATTR macro to set or unset attributes for a specific
- SHELL_VAR *
-
-builtins/setattr.def
- - use SETVARATTR
+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
- 6/7
+ 4/6
---
-execute_cmd.c
- - moved the retrieval of $PS3 inside the loop in execute_select_command
- so that PS3 can be modified in the select command's body
- [in 1.14.5]
-
-execute_cmd.c
- - changed execute_builtin and execute_function to not set
- builtin_env and function_env, respectively, to NULL if there is
- no temporary env. This makes the temp env persist across calls
- to functions from other functions [in 1.14.5]
-
-configure.in
- - Linux needs LOCAL_LDFLAGS set to -rdynamic
+execute_cmd.c, print_cmd.c
+ - use #include <y.tab.h> 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
- 6/8
+ 4/7
---
-general.c
- - canonicalize_pathname should not attempt to interpret backslash
- quoting `/', since Unix doesn't really allow it [in 1.14.5]
-
-bashline.c
- - added `\', `!', and `)' to the list of characters which
- cause filenames to be quoted
- - changed bash_quote_filename to use any of the three shell
- quoting styles based on the value of a variable,
- completion_quoting_style
- - if *qcp is not 0 when passed to bash_quote_filename, adjust the
- type of completion we're doing based on its value (i.e.,
- *qcp == '"' forces double quoting, *qcp == '\'' forces single)
- - bash_quote_filename now leaves the quotes intact in the filename
- it returns. The readline completion code takes care of avoiding
- doubled open quotes
- - if a filename containing a `!' is passed to bash_quote_filename
- without an opening quote character, and we are performing history
- expansion, use single quoting as the quoting style
-
-bashhist.c
- - changed bash_history_disable to not call bash_history_reinit(0),
- but do what it needs to directly
- - new function bash_history_enable
- - make history_expansion_inhibited exist only if BANG_HISTORY
- is defined
-
-bashhist.h
- - extern declaration for bash_history_enable
-
-lib/readline/complete.c
- - make make_quoted_replacement set should_quote to 1 if the quote
- character is `'' as well as if it's `"'
-
-test.c
- - added the csh-like `=~' and `!~' pattern-matching binary operators
- which match the string on the lhs against the shell pattern on
- the rhs. PATTERN_MATCHING must be defined for this to work; it is
- undefined and undocumented by default
-
-jobs.c
- - broke the code that gets the new window size and sets $LINES and
- $COLUMNS out of sigwinch_sighandler into a new function,
- get_window_size, which sigwinch_sighandler calls
-
- 6/12
- ----
-parse.y
- - new function, pop_expansion, to remove the top string on the
- expanded token stack
- - renamed save_expansion to push_expansion
-
-lib/readline/complete.c
- - fixed a bug in find_completion_word that tested found_quote
- instead of quote_char when trying to decide if we have an unclosed
- quoted string [in 1.14.6]
-
- 6/26
- ----
-subst.c
- - fixed expand_word_internal to remove all traces of $*, even if
- it's quoted, if there are no positional parameters and there are
- other characters in the expansion
-
bashline.c
- - don't attempt hostname completion if multiple consecutive `@'
- characters appear
+ - fixed another problem with `pwd`/[TAB] thinking that the `/
+ started an unclosed command substitution, generating errors
- 6/27
- ----
-shell.c
- - initialize top_level early, and exit if a longjmp sends us there
- before we reinitialize
-
-subst.c
- - more fixes to expansion of quoted $* when no positional parameters
- - broke the code that assigns a value to an array element (and parses
- the array element reference) into a new function,
- do_array_element_assignment
-
-builtins/read.def
- - new function, bind_read_variable, to allow binding simple variables
- and array elements to strings read (uses do_array_element_assignment)
- - changed occurrences of bind_variable to bind_read_variable where
- it matters
-
-variables.c
- - tentative change to bind_variable to make x=y the same as x[0]=y
- if x is already an array variable. This works for `read' as well.
- This is what ksh does.
-
- 6/28
- ----
-alias.h
- - added a `flags' member to the ASSOC struct and renamed it to
- `alias_t'
-
-alias.c, bashline.c, builtins/alias.def, builtins/type.def
- - changed ASSOC to alias_t
-
-alias.c
- - changed add_alias to set the AL_EXPANDNEXT flag when the alias is
- inserted into the hash table
-
-parse.y
- - added a third parameter to push_string: a pointer to the alias_t
- that is being expanded
- - push_string marks the alias it's passed as being expanded
- (AL_BEINGEXPANDED)
- - pop_string marks the alias being popped as no longer being
- expanded
- - changed shell_getc to defer popping an alias expansion until
- the parser has had a chance to catch up, since the parser reads
- ahead and would cause the expansion to be popped before it
- fully parsed the expanded string
- - changed alias_expand_word to check the AL_BEINGEXPANDED flag
- instead of the expanded_token_stack when checking whether an
- alias is already being expanded
-
-oslib.c
- - make the definition of bzero be surrounded by #ifdef HAVE_BZERO
- rather than lumping it in with bcopy
-
-configure.in
- - add a test for bzero
-
-config.h.in
- - add a template for HAVE_BZERO
-
- 7/3
- ---
-builtins/set.def
- - added new meaning for `set +o' without options, as per the latest
- draft of Posix.2. It means to list -o options as a series of set
- commands to recreate the current settings
-
-documentation/bash.1
- - augmented description of the `set' builtin
-
- 7/6
- ---
-jobs.c
- - make sure that temp_handler is not set to SIG_DFL before calling
- it from waitchld
-
-builtins/cd.def
- - rewrote cd_builtin to make the code flow clearer
- - broke full directory name construction out into a separate
- function: mkpath
- - cd_builtin now tests that a directory constructed from a $CDPATH
- entry is actually a directory before trying to chdir to it
- - added an error message if $HOME is not set
- - added a descriptive error message if `cd -' used and OLDPWD unset
- - changed the error messages to use builtin_error, not file_error
- - moved the code at the bind_and_exit label into a function,
- bindpwd (no_symlinks)
- - Posix.2 says that when using $CDPATH, the resultant value of PWD
- should have no symlinks
-
- 7/7
- ---
-input.c
- - if fd_to_buffered_stream fails in some way and returns a NULL
- buffered stream, with_input_from_buffered_stream uses a function
- that does nothing but return EOF as the `getter'. This keeps
- the shell from crashing if invoked with fd 0 closed
-
-subst.c
- - made the `quoted' parameter to expand_word_internal into a flags
- word with flag values defined in shell.h. Each place where
- `quoted' is tested for a non-zero value was changed to test
- (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 instead
-
-mailcheck.c, shell.c, parse.y
- - change calls to the expand_string* functions to pass an explicit
- Q_DOUBLE_QUOTES where appropriate
-
- 7/9
+ 4/8
---
-subst.c
- - getpattern now passes Q_NOQUOTE to expand_word_internal, indicating
- that quotes in the pattern spec are not to be treated specially
-
- 7/12
- ----
-jobs.c
- - fixed up the MUST_UNBLOCK_CHILD code in wait_for so that it now
- unblocks all signals and sets the signal handler for SIGCHLD to
- SIG_DFL. pre-v4 SCO machines seem to require this [in 1.14.5]
-
-[Bash-1.14.5 released to net 7/16]
-
- 7/17
- ----
-documentation/features.texi
- - changed the Bourne Shell builtins section to have the same format
- as the bash builtins section, with usage synopses
- - added a section on the restricted shell
-
- 7/18
- ----
-documentation/features.texi
- - changed the name of this document to the Bash Reference Manual
- - added sections on POSIX mode and restricted shell
-
-lib/readline/doc/hsuser.texinfo
- - added the text from the bash manual page about the bash history
- facilities if BashFeatures is set
-
- 7/19
- ----
-documentation/features.texi
- - added more stuff to the bash basics section
-
-lib/readline/doc/rluser.texinfo
- - added a sample inputrc file
-
- 7/20
- ----
-documentation/features.texi
- - added section on shell expansions to bash basics section
-
-builtins/Makefile.in, lib/glob/Makefile.in, lib/malloc/Makefile.in,
-lib/readline/Makefile.in, lib/termcap/Makefile.in, lib/tilde/Makefile.in
- - ar is now called with flags `cr' when building libraries
-
- 7/21
- ----
-lib/readline/complete.c
- - fixed a bug in find_completion_word that resulted in the found_quote
- flag and the delimiter character not being passed back to the
- caller (tested (*fp) instead of (fp) before assigning found_quote;
- similarly for dp). With this fix, the filename dequoting function
- is properly called
-
- 7/25
- ----
general.c
- - renamed bash_tilde_expand to bash_tilde_expansion_failure_hook
- - new function, bash_tilde_expand, that just sets interrupt_immediately
- and calls tilde_expand, returning what tilde_expand returns
+ - 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
-subst.c, general.c, shell.c, execute_cmd.c, variables.c, bashline.c,
-builtins/cd.def
- - changed calls to tilde_expand to calls to bash_tilde_expand instead
-
- 7/27
- ----
-builtins/set.def
- - added a -o history option to enable and disable command history
- saving. This uses bash_history_enable() and bash_history_disable()
- It's keyed off of remember_on_history. With this, shell scripts
- can use the command history
-
-bashhist.c
- - bash_history_enable now calls sv_history_control and sv_histignore
+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
-builtins/fc.def
- - if history_list() returns a null pointer, immediately return
- [in 1.14.6]
+lib/tilde/tilde.h
+ - extern declaration for tilde_expansion_preexpansion_hook
-documentation/{bash.1,features.texi}, lib/readline/doc/hsuser.texinfo
- - added a description of the `set -o history' option and changed
- text to refer to it rather than strictly interactive shells
+doc/{bash.{1,html},bashref.texi}
+ - added optional open paren to description of `case' command syntax
- 8/1
+ 4/9
---
variables.c
- - new builtin variable $HOSTNAME, initialized to current_host_name
- as set in shell.c
-
-documentation/bash.1, documentation/features.texi
- - documented $HOSTNAME
-
- 8/3
- ---
-support/texi2html
- - new program, a texinfo-html converter
-
-documentation/Makefile.in
- - added directives to produce features.html from features.texi
-
-MANIFEST.doc
- - added features.html and features_toc.html to the doc distribution
-
- 8/10
- ----
-lib/readline/bind.c
- - new functions rl_variable_dumper and rl_dump_variables to print
- readline variables and their values to rl_outstream
- - new functions rl_get_keymap_name and rl_get_keymap_name_from_edit_mode
- to get the name of the current keymap for the variable dumper
-
-lib/readline/readline.h
- - extern declarations for rl_variable_dumper, rl_dump_variables, and
- rl_get_keymap_name
-
-builtins/bind.def
- - added -V flag to print variable names and bindings
- - added -P flag to print variable names and bindings in the syntax
- of the inputrc file
-
-lib/readline/funmap.c
- - added new bindable `dump-variables' readline command
-
-documentation/{bash.{1,html},readline.3,features.html},
-lib/readline/doc/rluser.texinfo
- - documented new `dump-variables' readline command
-
-documentation/{bash.{1,html},features.{texi,html}
- - documented new bind -P and -V options
-
-documentation/bashbug.1
- - new manual page
-
-documentation/Makefile.in
- - changes to build and install bashbug.1
-
- 8/15
- ----
-print_cmd.c
- - new function `xprintf' that just calls vfprintf(stdout, ...)
- to avoid having to declare printf
-
-parse.y
- - slight change in how read_token_word computes `all_digits'
-
- 8/21
- ----
-
-subst.c
- - new function dequote_escapes to remove CTLESC escaping
- CTLESC and CTLNUL in a string, returning a new string
+ - on qnx, set and export a variable `NODE' which contains the QNX
+ `node id'
- 8/25
- ----
-shell.c
- - execute the file SYS_BASHRC for interactive shells if SYS_BASHRC
- is defined, before executing ~/.bashrc
-
-config.h.top
- - add a dummy commented definition for SYS_BASHRC, defaulting to
- /etc/bash.bashrc
-
-lib/readline/input.c
- - added code to call select() in rl_gather_tyi() and return
- immediately if it indicates that there is nothing to read on
- the readline input fd (#ifdef HAVE_SELECT)
-
-lib/posixheaders/posixdir.h
- - new file to localize the <dirent.h>/<sys/dir.h> and dirent/direct
- mess
-
-posixdir.h, lib/readline/posixdir.h
- - symlinks to lib/posixheaders/posixdir.h
-
-lib/readline/rldefs.h
- - removed the posix dir includes and defines
-
-lib/readline/complete.c, getcwd.c
- - include posixdir.h rather than having the code inline
-
-builtins/cd.def
- - new code to do spelling correction on the directory name
- modified from patch sent by Neil Russell (caret@c-side.com)
-
- 8/29
- ----
-builtins/shopt.def
- - new option `cdspell' to toggle cd directory name spelling
- correction
-
-documentation/{bash.{1,html},features.texi}
- - documented new shopt `cdspell' option
-
- 9/5
- ---
-subst.c
- - $'' should expand to the same thing as '' (a quoted null string)
-
-shell.h
- - changed CTLNUL to '\177'; some scripts use ^B for things like IFS
- [in 1.14.6]
-
- 9/7
- ---
-support/config.guess
- - added code to identify a PPC running Solaris 2
-
-doc
- - new directory replacing documentation
-
-Makefile.in, MANIFEST, MANIFEST.doc, configure.in
- - replaced `documentation' with `doc'
-
- 9/8
- ---
-lib/readline/display.c
- - fixed the code in _rl_update_final that decides whether or not the
- cursor is at character position 0 on an otherwise-empty line and
- adjusts _rl_vis_botlin accordingly
-
- 9/13
- ----
general.c
- - fixed canonicalize_pathname to make sure that intermediate
- results correspond to directories before blindly chopping
- off the last component when we see a `..'. This fixes the
- `cd ../.../..' being equivalent to `cd ..' problem
-
-subst.c
- - fixed make_named_pipe so that mkfifo is called with mode 0600
- for security reasons [in 1.14.6]
- - changed the /dev/fd version of add_fifo_list to zero out new
- entries to the fifo_list when it resizes it larger [in 1.14.6]
- - changed make_dev_fd_filename to use DEV_FD_PREFIX
-
-aclocal.m4
- - changed BASH_HAVE_DEV_FD to check for /proc/self/fd and define
- DEV_FD_PREFIX to either "/dev/fd/" or "/proc/self/fd/" as
- appropriate
-
- 9/14
- ----
-lib/readline/display.c
- - when displaying the first line of a multiline prompt, make sure
- that the final \n is followed by a \r (outputting one if necessary)
- so that we know we are starting at column 0
-
-variables.h
- - new attribute: att_local
-
-variables.c
- - changed make_local_variable to set the att_local attribute
- - changed makunbound to just make variables marked as `local' in
- the current context invisible. This makes the local variable
- persist throughout the function even if it is unset, so a
- subsequent assignment preserves the `local' attribute
- - changed kill_all_local_variables to unset the att_local attribute
- before calling makunbound
-
- 9/18
- ----
-lib/readline/complete.c
- - make sure the cursor is on the last line of a possibly-multiple-
- line command line before listing the completions in
- display_matches
-
- 9/19
- ----
-braces.c
- - fixed the non-SHELL case in brace_gobbler so the loop exits when
- it should
-
-lib/readline/bind.c, lib/readline/readline.h
- - added functions to dump key sequences bound to macros and their
- values
-
-builtins/bind.def
- - added -S and -s options to dump the readline macros and their values
- - changed the options so that -p and -P dump functions, -v and -V
- dump variables, and -s and -S dump macros (s for string)
-
-doc/{bash.{1,html},readline.3,features.texi}, lib/readline/doc/rluser.texinfo
- - added documentation for the new `bind' options
- - added documentation for the new readline functions to dump macros
- and the key sequences that output them
-
- 9/22
- ----
-print_cmd.c
- - new function xtrace_print_word_list (WORD_LIST *) to print the
- words of a simple command when set -x is on. This prints ''
- when it encounters an empty string
-
-externs.h
- - new extern declaration for xtrace_print_word_list
-
-execute_cmd.c
- - call xtrace_print_word_list in execute_simple_command
-
- 9/25
- ----
-builtins/getopts.def
- - make sure that the loop counter stops at 10 when stepping through
- the dollar_vars array to count the number of positional parameters
- [in 1.14.6]
-
- 9/30
- ----
-lib/readline/histsearch.c
- - fixed history_search_internal to bail immediately if it gets a
- null or empty search string. This fixes the !? core dumps.
- [in 1.14.6]
-
- 10/3
- ----
-lib/readline/histexpand.c
- - if there is a null string given with a !? search specifier, use
- a previous search string if one exists, else fail immediately
-
-trap.c
- - made run_exit_trap preserve $? around the call to execute the
- trap string, unless the trap string contains an `exit'
- command, in which case it can set the shell's exit status
- [in 1.14.6]
-
- In other words:
-
- touch /tmp/z
- trap 'rm /tmp/z ; exit 5' 0
- exit 1
-
- exits with status 5; while
-
- touch /tmp/z
- trap 'rm /tmp/z' 0
- exit 1
-
- exits with status 1
-
-subst.c, parse.y
- - moved the $'...' code from subst.c to parse.y, more like ksh
- does it
-
-doc/bash.1, doc/bash.html, doc/features.texi
- - moved the description of $'...' from the expansion section to
- the quoting section
-
- 10/4
- ----
-command.h
- - added a `line' member to the function struct for the source line
- the function definition starts on
-
-make_cmd.c
- - initialize the `line' member in Function_def to 0
- - make_function_def takes a third parameter telling which line the
- function definition started on and a fourth telling which line
- the function body started on
-
-make_cmd.h
- - changed prototype for make_function_def
-
-parse.y
- - new variable `function_dstart', set by read_token and read_token_word
- to keep track of where a function definition begins
- - new variable `function_bstart' to keep track of where function
- body begins
- - pass function_dstart and function_bstart to make_function_def
- - new function strtrans to do the $"..." locale-specific translation
- of `...'
- - call strtrans() to translate $"string". The translated string is
- double-quoted
-
-doc/bash.{1,html}
- - updated the description of LINENO now that line numbers within
- functions are correct
+ - QNX system can now handle pathnames with a leading `//'
configure.in
- - look for the `gettext' library function
+ - added `-Dqnx' to LOCAL_CFLAGS on QNX machines
-config.h.in
- - define HAVE_GETTEXT if gettext(3) exists in a findable library
+lib/malloc/getpagesize.h
+ - some systems need sysconf(_SC_PAGE_SIZE) to obtain the page size;
+ added code to check for it
- 10/5
+ 4/10
----
-builtins/common.c
- - changed backslash_quote so that `#' is only quoted at the start
- of a word
- - new function contains_shell_metas returns 1 if the argument
- string contains one or more shell meta-characters that require
- quoting
-
-builtins/common.h
- - extern declaration for contains_shell_metas
-
print_cmd.c
- - changed xtrace_print_word_list to print words containing
- shell metacharacters within single quotes
+ - include the prototype for cprintf only if PREFER_STDARG is defined,
+ otherwise just have a K&R-style forward function declaration
-lib/termcap
- - upgraded to GNU termcap version 1.3
+hashlib.h
+ - reduced the default number of buckets in a hash table to 53
- 10/9
- ----
-lib/readline/readline.c
- - call setlocale(LC_CTYPE, ...) after finding a legal value for
- one of LC_ALL, LC_CTYPE, or LANG
-
- 10/11
- -----
-lib/readline/search.c
- - make rl_history_search_internal just do previous-history or
- next-history as appropriate when given a null search string
- (rl_point == 0)
+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
- 10/24
- -----
subst.c
- - fixed an off-by-one error in char_is_quoted that skipped a
- characters after calling skip_single_quoted or skip_double_quoted
- [in 1.14.6]
- - fixed an off-by-one error in string_extract_verbatim so it
- leaves *sindex at the separator character if the separator
- character is "'" [in 1.14.6]
-
- 10/27
- -----
-parse.y
- - in CHECK_FOR_RESERVED_WORD, make sure that reading a `}'
- decrements open_brace_awaiting_satisfaction if it is non-zero
- [in 1.14.6]
-
-shell.c
- - don't run the shell startup files if the shell is running
- setuid
- - don't source $ENV if the shell is running setuid
-
-variables.c
- - new parameter to initialize_shell_variables: no_functions. If
- non-zero, don't import functions from the environment
+ - 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
-variables.h
- - change to function prototype for initialize_shell_variables
-
-lib/readline/complete.c
- - fix for the code that decides whether or not a char is quoted for
- applications that don't supply a value for rl_char_is_quoted_p
- - fixed insert_match to not remove a user-supplied opening quote
- character if make_quoted_replacement does not return a string
- beginning with that quote character
-
- 11/2
- ----
-general.c
- - new function ungetc_with_restart that handles the local buffering
- [in 1.14.6]
-
-parse.y
- - changed yy_stream_unget to call ungetc_with_restart if the OS
- does not have restartable syscalls [in 1.14.6]
-
- 11/3
- ----
-bashline.c
- - rewrote _ignore_completion_names to actually free and remove
- names from the array if more than one names in the array
- passed is acceptable, instead of just bailing [in 1.14.6]
-
- 11/7
+ 4/11
----
-bashline.c
- - if no matches are acceptable to _ignore_completion_names,
- free the entries in NAMES, set NAMES[0] == 0, and let the
- caller clean up [in 1.14.6]
- - fixed a problem with backslash-quoted characters in
- bash_dequote_filename that caused the character after the
- backslash to be interpreted
- - bash_dequote_filename now takes a quote_char parameter that,
- if non-zero, gives the quote character (`'' or `"') that
- delimits the filename. Used to initialize the quoting state
-
-lib/readline/complete.c
- - if the completion ignore function returns with MATCHES == 0
- or MATCHES[0] == 0, ring the bell and quit the completion
- attempt [in 1.14.6]
- - pass quote_char to gen_completion_matches so it can pass it
- along to the app-specific filename dequoting function
- - have gen_completion_matches pass quote_char to whatever function
- is pointed to by rl_filename_dequoting_function
+execute_cmd.c
+ - some systems need both <sys/time.h> and <time.h>, so include both
+ if it's possible, otherwise include <sys/time.h> (if present)
-pathexp.c
- - rewrote ignore_globbed_names to be more like _ignore_completion_names
+lib/readline/rl{tty,defs}.h
+ - moved includes of <sys/stream.h>, <sys/ptem.h>, etc. to rltty.h
-lib/readline/doc/rltech.texinfo
- - updated documentation for rl_filename_dequoting_function
+lib/readline/terminal.c
+ - include rltty.h after rldefs.h
- 11/10
- -----
-subst.c
- - fixed remove_quoted_nulls so that it is now a full function that
- removes unquoted CTLNUL chars from the string it is passed
- [in 1.14.6]
- - fixed expand_word_internal to avoid generating some unneeded
- quoted nulls (if the string is partially quoted, note that we
- have seen a quoted null and add one if the rest of the string
- doesn't expand to anything)
-
- 11/13
- -----
variables.c
- - bind HOSTTYPE, OSTYPE, and HOSTNAME unconditionally
-
-pathexp.c
- - new function quote_globbing_chars, adds `\' before globbing
- chars in its string argument, returns new string
-
-pathexp.h
- - extern declaration for quote_globbing_chars
+ - 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
-bashhist.c
- - if the previous line contains globbing chars, run it through
- quote_globbing_chars before trying to match. This affects
- only HISTIGNORE patterns containing `&'
+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
- 11/14
- -----
bashhist.c
- - if the history line to be added contains globbing chars, quote
- them with backslashes by calling quote_globbing_chars in
- history_should_ignore before comparing them against the
- patterns in HISTIGNORE
-
-bashline.c
- - make sure that we erase the current readline line after running
- fc on it and executing the resultant commands in
- vi_edit_and_execute_command, so the original readline line
- doesn't get returned [in 1.14.6]
-
-jobs.h
- - added a new job listing format: JLIST_NONINTERACTIVE -- like
- JLIST_LONG, but does not print the job number
-
-jobs.c
- - added code to pretty_print_job to handle JLIST_NONINTERACTIVE
- - call notify_and_cleanup() from wait_for even if the shell is
- running a script (interactive_shell == 0)
- - changed notify_and_cleanup to call notify_of_job_status if
- interactive or interactive_shell == 0, so scripts report
- about jobs they run
- - changed notify_of_job_status to call pretty_print_job with a
- JLIST_NONINTERACTIVE format if interactive_shell is 0 and a
- job is marked JDEAD, after printing the script name and line
- number. This message is printed only if the job dies due to
- a fatal signal
-
-support/mkversion.c
- - added support for a `-status status' argument to set the
- `release status' of the shell (alpha, beta, or release). It
- defines `RELSTATUS' in version.h and changes the definition
- of SCCSVERSION, if present
-
-Makefile.in
- - set a RELSTATUS variable that is included when printing the build
- message and passed to mkversion with the -status option
- - make RELSTATUS one of the variables sed sets when it creates
- bashbug from support/bashbug.sh
-
-version.c
- - added a `release_status' variable that's set to RELSTATUS if
- it's defined
-
-support/bashbug.sh
- - added the `RELSTATUS' variable to the report with heading
- `Release Status'
- - set the bug address to chet@po.cwru.edu if the release status
- is `alpha' or `beta'
-
- 11/15
- -----
-
-shell.c, execute_cmd.c
- - new variable expand_aliases to control alias expansion. For now,
- this is set to the same value as interactive_shell when that is
- set
-
-parse.y
- - perform alias expansion if expand_aliases is non-zero rather than
- checking the value of interactive_shell
-
- 11/16
- -----
-builtins/shopt.def
- - new option `expand_aliases' to control the value of expand_aliases
-
-doc/bash.1, doc/bash.html
- - updated the description of `shopt' with the `expand_aliases' option
-
- 11/28
- -----
-bashline.c
- - if there is only one completion in _ignore_completion_names, see
- if it is acceptable and return right away [in 1.14.6]
+ - pre_process_line now returns its argument if it did not make
+ any changes to it
-configure.in
- - change to define WAITPID_BROKEN on SCO 3.2v5
+alias.c
+ - free the bucket entry holding the alias to be removed in
+ remove_alias, as well as the data
- 12/6
+ 4/14
----
-parse.y
- - call prompt_again in read_token_word if a newline is read in an
- interactive shell and bash_input.type is either st_stdin or
- st_stream
- - remove superfluous call to reset_readline_prompt in yy_readline_get
+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
- 12/7
- ----
parse.y
- - combine delimiters, delimiter_depth, and delimiter_space into a
- single structure of type `struct dstack'
- - replace all references to delimiter* with dstack.delimiter*
- - include parser.h for struct dstack
- - new define pop_delimiter(), analogous to push_delimiter
- - current_delimiter, push_delimiter, and pop_delimiter defines now
- include the delimiter stack struct as the first parameter
-
-parser.h
- - now includes definition of struct dstack
-
-bashline.c
- - include parser.h for struct dstack
- - refer to dstack.delimiter_depth instead of delimiter_depth
-
- 12/12
- -----
-execute_cmd.c
- - before doing a longjmp(subshell_top_level,...) when executing a
- shell script without a leading #!, set history_lines_this_session
- to 0 to forget about the history and not save it on an exec
- (we don't free the memory with clear_history(), though -- that
- would slow bash down)
-
- 12/14
- -----
-jobs.c, nojobs.c
- - cause the sigwinch handling code to be compiled into the shell
- even if READLINE is defined
- - new functions: set_sigwinch_handler and unset_sigwith_handler
- to enable and disable catching of SIGWINCH and adjusting $LINES
- and $COLUMNS
- - changed initialize_job_signals to install a signal handler for
- SIGWINCH with set_sigwinch_handler
-
-jobs.h
- - extern declarations for set_sigwinch_handler and
- unset_sigwinch_handler
-
- 12/20
- -----
-doc/bash.{1,html}, doc/readline.3, lib/readline/doc/rluser.texinfo
- - documented the readline `visible-stats' variable
+ - need to free memory allocated by parse_arith_cmd if it is an
+ arithmetic command, after using it to make a new word
- 12/21
- -----
-trap.c
- - new global variable `running_trap' incremented and decremented
- around running a trap command in _run_trap_internal
-
-execute_cmd.c
- - new variable currently_executing_command, set to the COMMAND *
- currently being processed by execute_command_internal, unless a
- trap command is being run (running_trap != 0)
- - new function executing_line_number, which returns the line number
- of the currently executing command (which may not be the same as
- line_number)
- - don't run the debug trap if it was not set before the current
- simple command was executed, since we don't want to run it after
- the trap command that sets the DEBUG trap
-
-variables.c
- - new function assign_lineno, to assign a value to line_number
- when LINENO is set
- - changed get_lineno to call executing_line_number() rather than
- returning line_number
-
-parse.y
- - new argument for push_stream telling it whether or not to reset
- line_number to 0
+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
-builtins/common.c
- - change to parse_and_execute to call push_stream with an argument
+hashlib.c, hashlib.h
+ - new function, dispose_hash_table (table), which frees the
+ table's bucket array and the table itself
- 12/29
- -----
-subst.c
- - set subshell_environment in command_substitute and process_substitute
- for the child process
+alias.c
+ - call dispose_hash_table from delete_all_aliases instead of just
+ freeing the table
- 1/2
- ---
-trap.c
- - made decode_signal recognize signal names case insensitively
+pathexp.c
+ - make sure to free `newnames' (but *not* its contents) before
+ returning from ignore_globbed_names
-shell.c
- - make the shell exit on a longjmp (DISCARD, ...) if
- subshell_environment is non-zero
+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
- 1/16
- ----
-lib/readline/histexpand.c
- - let the `!' in ${!xxx} pass through without error
+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
-shell.c
- - new --help long option
- - new function show_shell_usage() for use by --help
+externs.h
+ - changed extern declaration for evalexp
- 1/19
- ----
-parse.y
- - changes to shell_getc to make sure that lines consisting of only a
- newline get added to the history correctly when they are part of
- a quoted string
+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)
- 1/24
+ 4/16
----
-aclocal.m4, configure.in
- - added a check for -lsocket (and -lnsl) to fix solaris problems
- with isnetconn()
-
shell.c
- - rearranged the code in isnetconn to check for a socket using
- getpeername() first, before any SVR4 or SVR4.2-specific checks
- - added checks for ttys (isatty) and FIFOs (S_ISFIFO) to the
- SVR4/SVR4.2 case of isnetconn()
-
-general.h
- - new macro RESIZE_MALLOCED_BUFFER to check and see whether there
- is enough room in a string to add a given number of characters
- and to resize it if there is not
+ - make sure to free dollar_vars[0] before assigning it the first
+ argument following `-c command'
- 1/25
- ----
-parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c
- - use RESIZE_MALLOCED_BUFFER where appropriate
+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
- 1/26
- ----
-support/config.{guess,sub}
- - merged in latest changes from GNU master copies
+lib/readline/terminal.c
+ - rearrange the includes so <sys/ioctl.h> is included before rltty.h,
+ as it is in rltty.c
- 1/30
+ 4/17
----
+flags.c
+ - new function: reset_shell_flags, which resets all of the flags
+ back to their initial values
-jobs.c
- - make sure to freeze the jobs list when calling a trap handler
- for SIGINT
- - added code to waitchld() so that a SIGINT trap handler is called
- if the shell is running a shell script and a SIGINT is received
- while waiting for a foreground job, even if that job does not
- die from the SIGINT
+flags.h
+ - extern declaration for reset_shell_flags
-jobs.c, nojobs.c
- - make get_tty_state reset $LINES and $COLUMNS after each process
- exits if the variable `check_window_size' is non-zero
+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
builtins/shopt.def
- - new variable `checkwinsize', which controls the value of
- check_window_size
-
-doc/{bash.{1,html},features.texi}
- - updated description of `shopt' to include `checkwinsize'
-
-execute_cmd.c, lib/readline,complete.c
- - some changes from the GNU WIN32 project for the bash port to
- Windows NT and Windows 95
-
-bashwait.h
- - new file, with `union wait' defines from jobs.h
-
-jobs.h
- - include `bashwait.h' if <sys/wait.h> is not present and
- _POSIX_VERSION is not defined
- - removed define of pid_t for non-Posix systems; now provided by
- autoconf in config.h
-
- 1/31
- ----
-parse.y
- - new temporary delimiter stack, used when decoding prompt strings.
- This is needed so command substitutions in the prompt strings
- (especially PS2) don't screw up the parser's quoting state
+ - 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
-lib/readline/complete.c
- - new variable for readline library users:
- rl_completion_append_character. The value of this variable is
- the character appended to a completion when it occurs at the
- end of a line. Setting it to '\0' causes nothing to be
- appended.
-
-lib/readline/readline.h
- - declaration for rl_completion_append_character
-
-lib/readline/doc/rltech.texinfo
- - documented rl_completion_append_character as int variable available
- to library users
-
-subst.c
- - new code for maintaining a string array saying which words in the
- output of expand_word_list_internal are the result of globbing
-
-variables.c
- - new function put_gnu_argv_flags_into_env (pid, flags_string)
- to put Roland's GNU getopt helper variable into the export_env
+builtins/common.h
+ - extern declarations for reset_shell_options and reset_shopt_options
execute_cmd.c
- - in execute_disk_command, after forking the child, put the GNU
- getopt helper environment variable into the child's export_env
-
-unwind_prot.c
- - changed unwind_protect_var and restore_variable to do the
- bcopy of the variable's value if it's shorter than the size of
- an int, as well as if it's longer. This keeps stray data
- from being copied if a short is being unwind-protected
-
-unwind_prot.h
- - new define, unwind_protect_short, to protect variables smaller
- than an int
+ - 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
-jobs.c
- - in the code that handles SIGCHLD traps, call unwind_protect_short
- if that is the size of a pid_t (for last_made_pid)
-
- 2/5
- ---
-Makefile.in
- - only try make distclean in HIST_LIBDIR if Makefile exists -- could
- have already been removed if HIST_LIBDIR is the same as RL_LIBDIR
-
-general.c
- - make canonicalize_pathname be more careful about what it checks
- for being a directory name when processing a full pathname
-
-Makefile.in, configure.in, doc/Makefile.in
- - small changes to get bash to build better in a directory not the
- source directory
-
- 2/12
- ----
-Makefile.in
- - added `install-strip' target
+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)
- 2/14
- ----
-doc/bash.{1,html}, doc/features.texi
- - documented the `--verbose' startup option
+jobs.c, shell.c, subst.c
+ - changed calls to move_to_high_fd appropriately
-lib/readline/complete.c
- - fix to gen_completion_matches to fix a memory leak
- - fix to rl_complete_internal to fix a memory leak
+[bash-2.01-beta1 frozen]
- 2/15
+ 4/18
----
-bashwait.h
- - changed to use WORDS_BIGENDIAN instead of LITTLE_ENDIAN or
- BIG_ENDIAN
-
-configure.in, config.h.in
- - call AC_C_BIGENDIAN, define WORDS_BIGENDIAN
-
-Makefile.in
- - remove all references to mkendian.c, mkendian, and bash_endian.h
- - added a `symlinks' target that just runs support/fixlinks
-
-MANIFEST
- - mkendian.c is no longer in the distribution
+general.c
+ - itos now uses a local char buffer to do its conversion, but still
+ returns newly-allocated memory
- 2/16
+ 4/21
----
-execute_cmd.c
- - include <sys/times.h> if HAVE_SYS_TIMES_H and HAVE_TIMES are
- defined
-
-bashline.c
- - fix to bash_directory_completion_hook to compensate for
- canonicalize_pathname returning NULL
-
variables.c
- - fix to initialize_shell_variables to compensate for
- canonicalize_pathname returning NULL
-
- 2/22
- ----
-tests/test-tests, tests/test.right
- - changes to avoid writing in the source directory -- all temp files
- are created in /tmp
-
-[First alpha release at Thu Feb 22 15:59:51 EST 1996]
+ - be a little more careful when checking for backwards-compatibility
+ with exported function definitions
- 2/23
+ 4/22
----
-lib/readline/rldefs.h
- - work around SVR4.2 bug including <sys/ptem.h> and <termios.h>
-
-lib/readline/chardefs.h
- - fix to CTRL_CHAR macro for chars > 128 on systems with signed
- characters
-
builtins/ulimit.def
- - protect more of the RLIMIT_* defines with checks
- - new macro RETINVALID() to set errno and return the correct
- value for an invalid request
-
-doc/Makefile.in
- - add a definition for INSTALL, set by autoconf
-
- 2/26
- ----
-support/bashbug.sh
- - if USER is unset, assign it the value of $LOGNAME or `whoami`
-
-Makefile.in,{lib/*,doc,builtins}/Makefile.in
- - use `test' instead of `[' to conform to GNU coding standards
- - `incdir' -> `includedir' as per latest GNU coding standards
-
-lib/readline/Makefile.in, lib/glob/Makefile.in
- - use $(srcdir)/ instead of $(srcdir) in the CSOURCES variable
-
-general.h
- - new define, FS_NODIRS, to not find directory names when searching
- $PATH
-
-execute_cmd.c
- - fix to find_in_path_element so it does not return directories
- - executable_file() no longer returns directories as executable
+ - 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)
- 2/27
- ----
-jobs.h
- - new flag value: J_NOHUP
-
-jobs.c
- - new function: nohup_job(job). Sets J_NOHUP flag for specified
- job
- - change hangup_all_jobs so that jobs marked J_NOHUP are not
- sent SIGHUP. If stopped, the job still gets SIGCONT.
- - changed calls to report_error to call internal_error, which will
- not exit the shell
- - changed FIND_CHILD define to call internal_error, restore the
- SIGINT handler, set termination_state to 127 and return, rather
- than aborting the shell
-
-builtins/jobs.def
- - new option for disown: `-h'. Marks the specified jobs J_NOHUP.
-
-doc/{bash.{1,html},features.texi}
- - added description of `disown -h'
-
-jobs.c, nojobs.c
- - include some files needed for struct winsize by SCO
-
-lib/readline/input.c
- - added some #ifdefs to avoid including <sys/time.h> on systems
- with select but without <sys/select.h>
-
-configure.in
- - check for <stdarg.h>, define HAVE_STDARG_H in config.h if found
-
-config.h.bot
- - define USE_VARARGS and either PREFER_STDARG or PREFER_VARARGS
- if one of <stdarg.h> or <varargs.h> is present
-
-aclocal.m4
- - moved default mail directory check here from configure.in, macro
- name is BASH_DEFAULT_MAIL_DIR
- - rewrote BASH_CHECK_DEV_FD to cache the value
- - minor fixes from Bruno Haible
-
-shell.c
- - no longer includes <varargs.h>
-
-builtins/Makefile.in
- - add -I$(topdir)/builtins to list of includes
-
-execute_cmd.c, lib/glob/glob.c
- - include memalloc.h for correct alloca definitions
-
-error.[ch], print_cmd.c, builtins/common.[ch]
- - changes to include new ANSI-C stdargs code if PREFER_STDARG is
- defined
-
- 2/28
- ----
-aclocal.m4
- - more minor fixes from Andreas Schwab
-
-doc/Makefile.in
- - change TEXINPUTS makefile variables to TEXINPUTDIR to avoid
- conflict with shell variable of the same name
-
-builtins/pushd.def
- - fix to avoid a bad call to free after a call to
- polite_directory_format does not change its argument string
-
-lib/readline/bind.c
- - fixes to _rl_macro_dumper_internal so that it prints whatever
- prefix it's passed, if any
-
- 2/29
- ----
-Makefile.in
- - slight change to the rule for `stamp-h': it should be created by
- running `config.status', not explicitly by the makefile rule
-
-builtins/Makefile.in
- - replace `..' in the dependencies with `$(topdir)'
- - replace `.' in the dependencies with `$(srcdir)'
-
- 3/1
- ---
-Makefile.in
- - add a rule to build builtins/builtext.h for the benefit of
- deficient makes like the SunOS one
-
-variables.c
- - fix to assign_in_env so that values in the environment are
- properly null-terminated
-
-builtins/Makefile.in
- - added dependencies for object files made from .c files in this
- directory: common.o, getopt.o, bashgetopt.o. SunOS /bin/make
- doesn't seem to be able to handle anything else
-
-support/mkclone
- - new script to replace clone-bash that works from MANIFEST to link
- only those files contained in a distribution
-
-support/mkversion.c
- - change so that it doesn't try to get `.build' from the source
- directory when that's different from the build directory
-
- 3/4
- ---
-bashjmp.h
- - #undef setjmp and longjmp before redefining them as sigsetjmp and
- siglongjmp, respectively
-
-bashhist.c
- - fixed an uninitialized variable problem in expand_histignore_pattern
-
-builtins/set.def
- - used `on_or_off' where `value' was needed in minus_o_option_commands
-
-builtins/common.h
- - added extern declaration for set_var_attribute
-
-print_cmd.c
- - include `bashansi.h' instead of just string.h or strings.h
-
-builtins/*.def, builtins/common.c
- - include `../bashansi.h' where appropriate
-
-parse.y
- - fixed a parenthesization problem in alias_expand_token
-
-general.h
- - added extern declaration for `ungetc_with_restart'
-
-lib/readline/readline.c
- - renamed LibraryVersion to rl_library_version, made it extern,
- assigned `2.1' to it
-
-lib/readline/readline.h
- - extern declaration for `rl_library_version'
-
-lib/readline/doc/rltech.texinfo
- - added description of `rl_library_version'
-
-lib/glob/glob.c
- - changed call to sprintf in glob_dir_to_array to a couple of
- calls to strcpy, since we keep the length of the first string
- we copy
-
- 3/7
- ---
-aclocal.m4
- - added new macro `BASH_FUNC_LSTAT' to check for lstat on Linux,
- which defines it as an inline function in <sys/stat.h>
-
-configure.in
- - call BASH_FUNC_LSTAT if $ac_cv_func_lstat has value `no'
-
- 3/8
- ---
-parse.y
- - changed the occurrences of `list' in the if command productions
- to use `compound_list' instead
-
- 3/11
+ 4/23
----
-parse.y
- - changed the occurrences of `list' in the while and until command
- productions to use `compound_list'
+oslib.c
+ - fixed definition of to_lower on machines without strcasecmp
-lib/readline/complete.c
- - fix to filename_completion_function -- off-by-one error when
- expand-tilde is enabled and a filename to be completed begins
- with `~/'
+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
- 3/12
+ 4/24
----
-builtins/cd.def
- - made the POSIX.2 behavior of PWD not containing symlinks after
- using $CDPATH part of `posix mode', not default shell behavior
-
-lib/readline/display.c
- - fix to update_line to handle update problems when using
- horizontal scroll mode. This is a dumb update solution -- it
- should use a better one
+aclocal.m4,configure.in
+ - removed BASH_CC_WORKS, since AC_PROG_CC now has the functionality
- 3/14
- ----
-examples/functions/csh-compat
- - replaced the defintion for `alias' with a better one posted to
- usenet by Mohit Aron <aron@cs.rice.edu>
+shell.c, externs.h
+ - get_current_user_info is now a void function
- 3/15
- ----
-jobs.c
- - fix to wait_for_background_pids to keep `wait' from hanging
+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
- 3/19
+ 4/25
----
-lib/readline/input.c
- - new function `_rl_input_available()' returns > 0 if there is
- input available on the readline input file descriptor. Only
- works if select(2) or FIONREAD are available
+Makefile.in, lib/malloc/malloc.c
+ - changed the define that turns on malloc range checking from
+ `rcheck' to `RCHECK'
lib/readline/isearch.c
- - slight change to the isearch termination behavior -- ESC still
- terminates the search, but if there is pending input or if input
- arrives within 0.1 seconds (on systems with select(2)) it is
- used as a prefix character with rl_execute_next
-
-shell.c
- - the GNU coding standards say to write the output generated by
- the --help command line option to stdout, not stderr
- - show_shell_version now takes an `extended' option that displays
- copyright information if non-zero
- - show_shell_version now prints the value of `MACHTYPE' by default
- - the `--version' option now causes the shell to exit successfully
- after printing the extended version information
-
-externs.h
- - changed prototype for show_shell_version
-
-shell.c, bashline.c, builtins/help.def
- - changed calls to show_shell_version to add appropriate argument
-
-Makefile.in
- - pass a `MACHTYPE' define to the compiler
-
- 3/22
- ----
-general.c
- - changed print_timeval() and print_time_in_hz() to output three
- fractional digits after the decimal point
-
-examples/loadables/sleep.c
- - changed to an implementation that will sleep fractional portions
- of seconds if select() is available
-
- 3/25
- ----
-builtins/shopt.def
- - fixes to shopt -o from Andreas Schwab. Use FLAG_ON/FLAG_OFF
- instead of SETOPT/UNSETOPT
-
- 3/26
- ----
-Makefile.in, builtins/Makefile.in
- - use `@includedir@' instead of `@incdir' for autoconf 2.9
+ - fixed a couple of places where rl_search_history would try to
+ free a NULL pointer
-Makefile.in
- - the `info', `dvi', and `ps' targets do not depend on `texindex'
- - add a `dist' target that just prints a message describing how
- distributions are constructed
-
-support/mkdirs
- - replace uses of [...] with `test'
-
- 3/28
+ 4/29
----
-parse.y
- - fix for a problem with \@ prompt expansion from Tim Mooney
-
-jobs.c
- - broke the code that prints a pipeline out into a separate
- function: print_pipeline(). This gets called by
- pretty_print_job and can be used for debugging
- - two new functions to save and restore the_pipeline around calls
- to make_child that you don't want to disturb the current pipeline,
- for example in process substitution
-
-subst.c
- - changed process_substitute to call save_pipeline and
- restore_pipeline in the appropriate places
+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
- 3/29
+ 4/30
----
-general.c
- - ansicstr now takes an additional parameter, the length of the
- string to be translated. It's the second paramter.
-
-builtins/echo.def
- - changed call to ansicstr to pass strlen(list->word->word)
-
-parse.y
- - redid the $'...' expansion so it works like it's supposed to:
- the quoted strings may appear anywhere in a token, and multiple
- ansi-c quoted strings may appear in a token
- - redid the $"..." expansion so it works like it's supposed to
-
-tests/nquote.{tests,right}, tests/run-nquote
- - tests for the $'...' and $"..." quoting stuff -- simple-minded
-
-subst.c
- - on systems without /dev/fd, open the named pipe for a `reading
- in child' process substitution (>(...)) with O_NONBLOCK
-
-lib/posixheaders/filecntl.h
- - add code to make sure the O_NONBLOCK is defined to O_NDELAY if
- it is present and O_NONBLOCK is not defined by <fcntl.h>
-
-general.c
- - don't bother handling both O_NONBLOCK and O_NDELAY in
- unset_nodelay_mode, since filecntl.h defines O_NONBLOCK as
- O_NDELAY for non-Posix systems
+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
- 4/1
+ 5/2
---
-lib/readline/funmap.c
- - made `vi-fetch-history' a bindable command name
-
-doc/readline.3
- - many cleanups, updated the list of default bindings
+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
- 4/4
+ 5/5
---
-doc/bash.1, doc/readline.3
- - fixed up use of \-; now it is not used unless the text is being
- printed in bold or italic
+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
-configure.in, config.h.in
- - add a configuration option, --enable-usg-echo-default, to turn
- on DEFAULT_ECHO_TO_USG and make `echo' expand backslash-escaped
- characters by default
+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)
- 4/8
+ 5/6
---
-parse.y
- - another small change to localeexpand to handle backslash-escaped
- double quotes in the double-quoted string
+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)
- 4/9
+ 5/8
---
-shell.c
- - add the value of MACHTYPE to the text output by `--help'
-
- 4/11
- ----
-parse.y
- - more changes to the $"..." and $'...' code to move it into
- read_token
- - don't try to check token[token_index - 1] unless token_index
- is greater than 0
-
- 4/12
- ----
-trap.c
- - new function run_trap_cleanup to clean up after _run_trap_internal
- in the event that parse_and_execute does not return normally
- (e.g., if a `return' is executed in the trap command)
- - set running_trap to the number of the signal whose trap is being
- run plus one in _run_trap_internal
-
-trap.h
- - extern declaration for run_trap_cleanup
-
jobs.c
- - new function `unfreeze_jobs_list' to set freeze_jobs_list back to 0.
- called from parse_and_execute_cleanup so a `return' while running
- an interrupt trap does not leave the jobs list frozen
+ - new function: nohup_all_jobs(), calls nohup_job for each entry in
+ the jobs list
+ - delete_all_jobs is now global
jobs.h
- - new extern declaration for unfreeze_jobs_list
-
-builtins/common.c
- - if running_trap is non-zero in parse_and_execute_cleanup, indicating
- that parse_and_execute was running a trap command when it got a
- `return', call run_trap_cleanup (running_trap - 1)
- - parse_and_execute_cleanup now calls unfreeze_jobs_list
-
- 4/16
- ----
-Makefile.in
- - don't try to make `doc' as a dependency of `install'
-
-doc/Makefile.in
- - make `info' a dependency of `install' to make sure the info
- document is present and up to date before installing it
- - make the `install' target install the documents with a $(srcdir)/
- prefix in case we're building in another directory
-
-lib/glob/glob.c
- - fixed an off-by-one error in glob_dir_to_array
-
-shell.c
- - removed an extra increment of arg_index when setting up the
- arguments for -c command
-
- 4/17
- ----
-pathexp.c
- - made quote_globbing_chars backslash-quote backslashes as well as
- `?*[]'; changed it to be a little faster
+ - new extern declarations for delete_all_jobs() and nohup_all_jobs()
-bashhist.c
- - call quote_globbing_chars to quote backslashes in the previous
- history line even if no other globbing chars are present. This
- is done only if we're matching against a HISTIGNORE pattern of `&'
- - don't bother quoting globbing characters in the current history
- line in history_should_ignore -- fnmatch ignores special chars in
- its `string' argument
-
-[bash-2.0-alpha2 frozen]
+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
- 4/18
+ 5/12
----
-command.h
- - new flag value for a word: W_NOSPLIT. A word with this bit set
- in its flags will not have word splitting performed
-
-parse.y
- - turn on the W_NOSPLIT flags for assignment statements appearing
- where an assignment statement is acceptable (words that would
- return ASSIGNMENT_WORD rather than WORD). This means that, for
- the time being, assignment statement arguments to builtins like
- `declare' or `alias' will be split unless they are quoted
-
subst.c
- - don't split a word in expand_word_internal if the W_NOSPLIT flag
- is set, rather than checking W_ASSIGNMENT; do the same thing in
- expand_word_list_internal
-
-builtins.h
- - a new flag, ASSIGNMENT_BUILTIN, indicating that this builtin takes
- assignment statements as arguments
- - rearranged the values of the builtin flags, so the BUILTIN_* flags
- come first, then the *_BUILTIN flags
+ - process an expansion like $((foo); bar) as a command substitution,
+ not as an arithmetic expansion. An arithmetic expansion must have
+ a closing `))'
-builtins/makebuiltins.c
- - added code for an array of `assignment builtins' -- builtins that
- take assignment statements as arguments -- and to add the
- ASSIGNMENT_BUILTIN flag for those builtins
-
-execute_cmd.c
- - added a hack function `fix_assignment_words', which checks the
- first word of a builtin command to see if it is a builtin that
- has the ASSIGNMENT_BUILTIN flag set, and adds W_NOSPLIT to the
- flags for all words with the W_ASSIGNMENT bit set. This means
- that word splitting is not done for any of the assignment
- statements in commands like `declare z=$a'
-
- 4/19
+ 5/14
----
-execute_cmd.c
- - fixed a memory-freed-twice error in find_in_path_element
-
-lib/readline/rltty.c
- - include <sys/ioctl.h> if GWINSZ_IN_SYS_IOCTL is defined and
- SHELL is not defined
-
-lib/readline/input.c
- - changed a stray HAVE_FIONREAD to FIONREAD
- - include <sys/ioctl.h> if FIONREAD_IN_SYS_IOCTL is defined
-
-aclocal.m4
- - new macro, BASH_HAVE_FIONREAD, to check for a #define of
- FIONREAD in <sys/ioctl.h> or one of the files it includes;
- defines FIONREAD_IN_SYS_IOCTL if present
-
-config.h.in
- - new line for FIONREAD_IN_SYS_IOCTL
-
-configure.in
- - call BASH_HAVE_FIONREAD
-
- 4/22
- ----
-builtins/cd.def
- - fixed a memory-freed-twice error in mkpath()
-
-jobs.c
- - don't print a job termination message for a non-interactive shell
- with startup_state == 2 (those shells are started to run commands
- when bash is invoked with `-c command')
-
- 4/23
- ----
-general.h
- - definition for a `generic pointer' type PTR_T -- `void *' on ANSI
- C systems, `char *' otherwise
-
-jobs.h
- - new members of job struct: `j_cleanup', a function to call when the
- job is marked JDEAD, and `cleanarg', argument to pass to j_cleanup
-
-jobs.c
- - initialize j_cleanup and cleanarg to NULL in stop_pipeline
- - call j_cleanup from waitchld() when a job is marked JDEAD
-
-test.c
- - fixed binop() so it recognizes `<' and `>' as binary operators
- - fixed a bug in binary_operator so `<' works correctly
-
-tests/test-tests
- - fixed the tests so they no longer rely on the modes of files in
- the file system to test -u, -g, -r, -x, -w, and so on, except
- for a few `standard' files like /dev/tty and /dev/null
- - added tests for string < string and string > string
-
-xmalloc.c
- - include <unistd.h> if HAVE_UNISTD_H is defined for a prototype
- for sbrk
- - add an extern declaration for sbrk if SBRK_DECLARED is not defined
- - use PTR_T to cast the return value of sbrk() when finding out where
- the break is and how many bytes of memory have been allocated
-
-lib/malloc/malloc.c
- - added code to write 0xcf into memory as it's freed, to uncover
- callers that try to refer to freed memory, and writes 0xdf into
- newly-allocated memory, to uncover callers that assume something
- about new allocations (e.g., that newmem[0] == 0)
-
-lib/malloc/gmalloc.c
- - latest version from GNU sources
-
- 4/25
- ----
-doc/bash.1
- - changed the description of `unset' to include a description of
- the `-v' option
-
-parse.y
- - fixed a problem with conversion to 12-hour time in
- decode_prompt_string that made 12:00pm show up as 00:00pm
-
- 4/26
- ----
-builtins/common.c, subst.c
- - a couple of fixes from Andreas Schwab
-
-configure.in
- - set up the minimal configuration after checking for
- --enable-minimal-config with AC_ARG_ENABLE, before checking any
- of the other options, instead of after checking all options.
- This makes `--enable-minimal-config --enable-prompt-string-decoding'
- work as documented
- - changed AC_PREREQ to require autoconf version 2.8 or higher
- - added some code to disable gnu malloc by default on the systems
- listed in NOTES
- - set MALLOC_SRC to have the $(ALLOC_LIBSRC)/ prefix to avoid having
- a directory in the dependencies when making without the gnu
- malloc
-
-lib/malloc/Makefile.in
- - make gmalloc.o depend on $(BUILD_DIR)/config.h
-
- 4/30
- ----
-COMPAT
- - new file listing user-visible incompatibilites between bash-1.14
- and bash-2.0
-
-parse.y
- - new prompt expansions, \v (version) and \V (version + patchlevel)
-
-config.h.top
- - the default value of PS1 is now '\s-\v\$ '
-
-doc/{bash.{1,html},features.texi}
- - added descriptions of \v and \V prompt expansions
- - changed default value of PS1
-
-Makefile.in
- - added dependencies on config.h.top for files that use definitions
- included there
-
-builtins/exec.def
- - removed reference to `no_exit_on_failed_exec' from the help text
-
- 5/3
- ---
-builtins/cd.def
- - fixed a typo in fix from 4/22
-
- 5/7
- ---
-builtins/common.c
- - new function `no_options (WORD_LIST *)' to be called by builtins
- that do not take options to check for options and -?. It returns
- 0 on success, non-zero if an unwanted option is supplied
+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
builtins/common.h
- - extern declaration for no_options
-
-builtins/return.def
- - corrected the error message to include returning from a sourced
- script
-
-builtins/{getopts,eval,wait,source,fg_bg,help}.def
- - changed the following builtins to either call no_options or test
- explicitly for options and return EX_USAGE if any are found:
-
- getopts eval wait source . fg bg help
-
-builtins/help.def
- - error messages are now printed using builtin_error
-
- 5/8
- ---
-builtins/jobs.def
- - fixed an unitialized variable problem
-
-tests/more-exp.tests
- - added additional tests for IFS problem uncovered by `iffe'
-
- 5/9
- ---
-lib/malloc/Makefile.in
- - use $(ALLOCA_SOURCE) instead of $< in rule that builds alloca.o.
- Some makes don't expand the $< in non-suffix rules
-
-lib/readline/rldefs.h
- - fix workaround for SVR4.2 bug
-
-shell.c
- - even though SVR4.2 has getpeername(), isnetconn() should not use it
-
-maxpath.h
- - rework to make sure PATH_MAX and NAME_MAX are defined, and remove
- the BUILDING_MAKEFILE code
-
-general.c, parse.y, oslib.c, jobs.c, builtins/common.c, builtins/cd.def
- - change uses of MAXPATHLEN to PATH_MAX
-
-examples/loadables/{{log,base,dir}name,tty,pathchk,tee}.c
- - new loadable builtins:
-
- logname basename dirname tty pathchk tee
-
-configuure.in, config.h.in
- - look for tzset(3), define HAVE_TZSET if found
-
-subst.c
- - new special variable function, sv_tz, which calls tzset when
- TZ is changed, if tzset(3) exists and the shell is compiled
- to do prompt string decoding
-
-subst.h
- - extern declaration for sv_tz
-
- 5/10
- ----
-builtins/echo.def
- - only call printf if the string to print is non-null
- - add an fflush(stdout) after the printf call to work around a
- bug in SunOS 5.5
-
- 5/16
- ----
-shell.c
- - moved some variable declarations out of this file to more
- logical places
-
-support/config.guess
- - small fixes from rfg@monkeys.com
-
-version.c
- - moved functions for getting, setting, and displaying shell version
- information here from shell.c
-
-general.c
- - moved set_lines_and_columns to variables.c
- - moved getc_with_restart and ungetc_with_restart to input.c
- - new function argv_to_word_list(), converts an array of strings
- into a WORD_LIST
- - renamed find_name_in_list to find_name_in_array to match rest
- of functions that operate on arrays of strings
+ - new #defines for the flag values for parse_and_execute()
-configure.in, Makefile.in, jobs.c, nojobs.c
- - changes so that jobs.c no longer includes nojobs.c, and the correct
- object file (jobs.o or nojobs.o) is selected by configure
- and substituted into the Makefile
+{bashline,jobs,shell,subst,trap,variables}.c, parse.y, builtins/evalfile.c,
+builtins/{eval,fc}.def
+ - changed calls to parse_and_execute appropriately
-list.c
- - new file, list manipulation functions from general.c
-
-externs.h, general.h
- - moved extern declarations for functions defined in oslib.c and
- list.c to externs.h from general.h
-
- 5/17
- ----
-locale.c
- - new file, with locale code from parse.y and shell.c
-
-shell.c
- - don't turn off job control if act_like_sh is set
- - if an unknown option is supplied at startup or if -c is
- supplied without an argument, exit with EX_USAGE
- - call posix_initialize after parsing all the options, to
- catch `bash -o posix'
- - new functions: init_interactive(), init_noninteractive()
- - exit with EX_NOTFOUND if a script argument is not found
- - exit with EX_NOINPUT if a script file cannot be opened for
- some reason
-
-shell.h
- - new define for EX_NOINPUT exit status (126)
-
- 5/18
- ----
-lib/readline/bind.c
- - fixed _rl_get_keyname() so that it properly handles C-\ and outputs
- it as \C-\\ and C-" as \C-\". This fixes the improper binding
- commands written by `bind -p' that caused weird things to happen
- when people used the output of `bind -p' as a start for their
- own inputrc files
- - new function _rl_init_file_error to print error messages encountered
- while parsing the inputrc file
- - print out an error message if parsing an inputrc line and no closing
- double quote is found for a key binding
-
-lib/readline/complete.c
- - in rl_complete_internal, if the completion function results in
- multiple matches, but none match up to even the first character,
- use what the user typed in (which is presumably a glob pattern
- that expanded into multiple files) as matches[0]. This makes
- things like show-all-if-ambiguous work right, too
-
-oslib.c
- - if we are providing our own version of getenv(), provide a function
- _getenv() as well, which just calls getenv()
-
-builtins/ulimit.def
- - #define _KERNEL before including <sys/resource.h> if HPUX is
- defined. This makes the full set of limits available on hpux
- version 8 and above
+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()
bashline.c
- - new function, enable_hostname_completion, sets up readline to
- perform or not perform hostname completion. Hostname completion
- is on by default.
- - don't attempt hostname completion in attempt_shell_completion()
- unless perform_hostname_completion is set
-
-builtins/shopt.def
- - add a `set_func' member to the shopt options structure, to provide
- a hook for those variables that require a little more than just
- toggling a variable on or off
- - new shopt variable `hostcomplete', turns hostname completion on and
- off
-
-doc/{bash.{1,html},features.texi}
- - added description of new shopt `hostcomplete' variable
-
- 5/21
- ----
-sig.c
- - don't try to save the shell history in termination_unwind_protect
- if we're dying due to SIGABRT
+ - 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
bashhist.c
- - new functions: last_history_entry (static), last_history_line
+ - bash_add_history is now global
bashhist.h
- - extern declarations for new functions in bashhist.c
-
-error.c
- - have programming_error() report the last command in the history
- before aborting
+ - extern declaration for bash_add_history
builtins/fc.def
- - if the editor returns a non-zero exit status when using `fc -e',
- return immediately without trying to execute the commands, as
- per Posix.2, 5.12.2
- - when using `fc -s', echo the command to be executed to stderr,
- not stdout
-
-lib/readline/terminal.c
- - new file, with all code related to termcap/terminfo
-
-lib/readline/{readline,rltty,display,util}.c
- - moved functions dealing with termcap to terminal.c
-
-lib/readline/readline.c
- - readline_initialize_everything now calls _rl_enable_meta_key()
- to turn on the meta key, based on the value of _rl_enable_meta
- (on by default)
-
-lib/readline/rltty.c
- - do not enable and disable the meta key each time readline is
- called; do it once at initialization
-
- 5/23
- ----
-bashhist.c
- - when `hist_verify' is set, call re_edit with the expanded line,
- not the original one, and do not print the results of the
- expansion before re-editing
-
- 5/24
- ----
-support/config.guess
- - recognize linux/sparc
-
-configure.in
- - don't use GNU malloc on linux/sparc
-
-variables.c
- - initialize a new $MACHTYPE variable to the value of MACHTYPE as
- set by autoconf
-
-doc/{bash.{1,html},features.texi}
- - documented $MACHTYPE
-
- 5/30
- ----
-builtins/ulimit.def
- - allow the max vm size to be set via setrlimit() if RLIMIT_VMEM
- is defined
-
- 5/31
- ----
-shell.h
- - changed EX_USAGE to 258, EX_BADUSAGE is now 2
- - added a number of execution failure statuses, so that builtins
- can indicate various failures. All are greater than 256, so
- they cannot be returned by other utilities
-
-execute_cmd.c
- - new function, builtin_status(), to translate the new return
- status codes to something the shell can export
- - changed execute_simple_command to call builtin_status after
- execute_builtin_or_function to translate error codes if a
- builtin is invoked. If a function or regular builtin is
- invoked, all return values greater than EX_SHERRBASE get
- translated to EXECUTION_FAILURE, with the exception that
- EX_USAGE gets translated to EX_BADUSAGE. If a special
- builtin failed with a status > EX_SHERRBASE, special_builtin_failed
- is set to cause the shell to exit in POSIX mode
- - changed execute_builtin_or_function to return EX_REDIRFAIL if
- redirections fail
- - changed execute_subshell_builtin_or_function to translate
- EX_USAGE to EX_BADUSAGE if a builtin is executed
- - set this_command_name to NULL in execute_for_command before binding
- each member of the word list to the loop variable, to avoid
- garbled error messages if the variable has the integer attribute
-
-builtins/{set,unset}.def
- - return EX_USAGE instead of EXECUTION_FAILURE if a bad option is
- supplied
-
-builtins/source.def
- - return EX_USAGE instead of EXECUTION_FAILURE if the required
- filename argument is missing
-
-builtins/setattr.def
- - return EX_BADASSIGN if any assignment statements given as arguments
- to readonly, export, etc. return failures (assignment to
- non-identifier, assignment to readonly variable)
-
-builtins/declare.def
- - don't allow `declare var=value' to assign value to a readonly
- variable
-
-lib/readline/rldefs.h
- - include <stdarg.h> if we're going to be using stdarg instead of
- varargs
-
-lib/readline/display.c
- - added `stdarg' version of rl_message
-
-lib/readline/readline.h
- - changed extern declaration for rl_message to be in ANSI-C format
- if __STDC__ is defined and we're using stdarg
-
-variables.c
- - make sure this_command_name is set to null before calling
- make_variable_value in assign_array_var_from_string so any
- error messages are not garbled
-
- 6/2
- ---
-builtins/common.c
- - don't execute the command in parse_and_execute if -n has been
- enabled and the shell is not interactive
- - include flags.h for read_but_dont_execute
-
-[bash-2.0-alpha3 released]
-
- 6/5
- ---
-subst.c
- - array_length_reference and parameter_brace_expand_length now
- return -1 on errors
- - parameter_brace_expand now returns &expand_param_error if
- paramter_brace_expand_length returns something < 0
-
-variables.c
- - assign_in_env now checks for assignments to readonly shell
- variables and disallows them
-
- 6/6
- ---
-xmalloc.c
- - only do pointer arithmetic on pointers cast to (char *), since
- it's not required that compilers support arithmetic on void *
-
-shell.c
- - make sure <sys/socket.h> is included with the same conditions
- used to call getpeername(2) in isnetconn()
+ - 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.
parse.y
- - added a new function, paren_match, to parse the contents of $(...)
- constructs. This function correctly handles embedded quoted
- strings, embedded command substitutions, embedded command
- substitutions with embedded quoted strings, etc. The implementation
- is much closer to that described in POSIX.2, section 3.6.3.
- - changed read_token_word to call paren_match where appropriate
-
-subst.c
- - rewrote extract_delimited_string so that it correctly understands
- quoted strings inside command substitutions, a la paren_match
- in parse.y. Corrected the description of the function's output
- in the code. extract_delimited_string is now very recursive, and
- does not try to do everything in one pass without recursion
-
- 6/7
- ---
-test.c
- - fixed three_arguments() to test the second argument for a valid
- binary operator before checking whether or not the first argument
- is `!'. This is what POSIX.2 says to do.
-
-lib/malloc/malloc.c
- - don't compile in the memory scrambling code (#define MEMSCRAMBLE)
- if NO_MEMSCRAMBLE is defined.
+ - 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
-configure.in
- - define NO_MEMSCRAMBLE in LOCAL_CFLAGS for SCO 3.2v[45]
-
- 6/9
- ---
-parse.y
- - renamed paren_match to parse_matched_pair
- - call parse_matched_pair to parse <(...) and >(...) constructs,
- since those should be treated the same as $(...) for the purposes
- of matching parens and skipping embedded quoted strings
-
- 6/13
+ 5/19
----
-parse.y
- - augmented parse_matched_pair
- o fixed up backslash quoting and CTLESC handling after
- backslashes
- o match pairs of ${...} and $[...] inside double-quoted
- strings or `` strings
- o keep track of line number quoted string starts on for
- better error messages
- o push and pop delimiters when parsing quoted strings
- inside $(...), ${...}, and $[...] for use by the
- history code
- o set EOF_Reached to 1 if we get an EOF before finding the
- match closer
- - rewrote read_token_word from scratch to use parse_matched_pair:
- o shell quote characters use parse_matched_pair to find
- the matching quote
- o fixed up backslash parsing code
- o compound array assignments use parse_matched_pair
- o corrected all_digits and dollar_present computations, so,
- for instance, 2''>/dev/null is no longer accepted as
- identical to 2>/dev/null
- o converted ${...} parsing to use parse_matched_pair
- o removed printing of error messages about unmatched quotes;
- now handled by parse_matched_pair
- o converted $'...' and $"..." to use parse_matched_pair
- o removed all of the delimited_xxx and dollar_xxx variables
- and embedded_quoted_string
- - modified report_syntax_error to regularize error messages:
- o non-interactive shells and interactive shells running
- scripts with `.' now always report line numbers
- o unexpected EOF is always reported when EOF_Reached is true
- o non-interactive shells no longer duplicate the script name
- in error messages (e.g., `./z3: ./z3: line 3: syntax error')
-
-bashline.c
- - make sure `newnames' is freed in _ignore_completion_names
-
lib/readline/complete.c
- - don't insert the first match on TAB completion in
- rl_complete_internal() if matches[0] is the empty string --
- that will overwrite whatever the user has typed, if dequoting
- what the user typed results in the empty string
+ - 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
-execute_cmd.c
- - include <limits.h> if HAVE_LIMITS_H is defined for ARG_MAX
- - only put the special environment variable for GNU getopt into
- the environment if ARG_MAX exceeds 10240
+[bash-2.01-beta2 frozen]
-subst.c
- - rewrote extract_dollar_brace_string so that it fully obeys
- the POSIX.2 rules for finding the closing `}' and uses
- skip_{single,double}_quoted rather than trying to do it with
- inline delimiters
- - removed the INC_NEST and DEC_NEST defines
-
- 6/14
- ----
-jobs.c
- - don't print status messages for background jobs that complete
- successfully when running shell scripts
-
-builtins/shopt.def
- - when using shopt -o as a synonym for set -o, make sure $SHELLOPTS
- is updated
- - make sure to update $SHELLOPTS when using shopt to set or unset
- interactive comments
-
-execute_cmd.c
- - fixed find_in_path_element to not return non-executable files
- when FS_EXEC_PREFERRED is one of the flags, after saving such
- a file as file_to_lose_on (fix from william@nscs.fast.net)
-
- 6/17
- ----
-lib/readline/complete.c
- - after printing possible completions, all lines of a multi-line
- prompt are redisplayed using rl_forced_update_display()
-
-subst.c
- - in expand_word_internal, only do tilde expansion on words where
- (flags & (W_ASSIGNMENT|W_QUOTED)) == W_ASSIGNMENT (unquoted
- assignment statements) and contain unquoted `=~' or `:~', and
- only if posixly_correct is off. POSIX.2 says that only the
- assignments preceding the command name should be tilde-expanded.
-
- 6/18
- ----
-support/config.guess
- - recognize the new Pyramid DC-OSx as `mips-pyramid-sysv4'
-
-configure.in
- - set LOCAL_CFLAGS to -Xa for mips-pyramid-sysv4 as per
- Peter Chubb
-
-subst.c
- - variable assignment errors when there is not a command name
- after the assignments now causes a non-interactive shell to
- exit in POSIX.2 mode
-
-execute_cmd.c
- - if the iteration variable in a for statement is a read-only
- variable, a variable assignment error occurs. This causes
- non-interactive shells to exit in posix mode, and a failure
- status to be returned for other non-interactive shells and
- interactive shells
- - if the selection variable in a select statement is a read-only
- variable, a variable assignment error occurs, with the same
- consequences as a for statement variable assignment error
-
-doc/bashref.*
- - renamed features.* to bashref.*, since that more accurately
- reflects the current contents
-
- 6/19
- ----
-test.c
- - changed three_arguments() to do one-argument tests on $1 and
- $3 and return the appropriate values if -a or -o is given as
- the second argument
- - changed three_arguments() to perform a one-argument test on
- $2 if $1 == '(' and $3 == ')' and return that result
- - make sure test_stat translates /dev/fd/xx to DEV_FD_PREFIX/xx
- so /dev/fd/0 always means the same thing, even on linux,
- which uses /proc/self/fd
-
-aclocal.m4
- - added a check for libncurses in BASH_CHECK_LIB_TERMCAP
-
-configure.in
- - added an initial message saying we're configuring for bash-2.0
-
-lib/glob/fnmatch.c
- - made a small change to fnmatch() to fix a bug matching patterns
- with multiple consecutive `*'s
-
- 6/20
- ----
-parse.y
- - inhibit history expansion when calling pre_process_line() from
- shell_getc() if the current delimiter is a single quote, even
- if we're on a different line than the opening quote
- - make sure read_a_line prints a prompt if we're interactive and
- not using readline, and make sure we call clearerr() if we
- get EOF when interactive and not using readline
-
-bashhist.c
- - new function history_expansion_p(char *) returns 1 if the string
- passed contains the history expansion or history substitution
- characters
- - pre_process_line() now calls history_expansion_p and calls
- the history expansion code only if that returns 1
-
- 6/26
- ----
-lib/readline/isearch.c
- - swap the behavior of ^J and ^M when i-searching. ^J now terminates
- the search without accepting the line. ^M terminates the search
- and accepts the line, executing the command
-
-examples/loadables/sprintf.c
- - new `sprintf' builtin: sprintf var format [args...]
-
-lib/readline/readline.c
- - added a line in _rl_dispatch that sets _rl_suppress_redisplay if
- the function is rl_insert and there is input available
-
- 6/27
- ----
-builtins/getopts.def
- - new function, getopts_bind_variable(), used when assigning a value
- to the user-supplied variable passed to getopts(). It makes sure
- that that variable name is legal and prints an error message if it
- is not
-
-builtins/getopt.c
- - don't increment sh_optind until after we've checked whether or not
- the current option character appears in the list of options passed
- to getopts by the user
-
- 6/28
- ----
-variables.c
- - added a new parameter to print_var_value: QUOTE. If it's non-zero
- and the variable's value contains shell metacharacters, quote the
- value so it can be read back in
-
-variables.h
- - changed extern declaration for print_var_value
-
-siglist.h
- - if SYS_SIGLIST_DECLARED is not defined, but HAVE_UNDER_SYS_SIGLIST
- is, only declare sys_siglist as extern char *sys_siglist[] if
- sys_siglist is not `#define'd
-
-parse.y
- - make sure a reserved word is acceptable before returning `}' as
- a token from special_case_tokens, even if the token read so far
- is "}"
- - make reset_parser set allow_open_brace to 0
-
- 7/1
- ---
-test.c
- - fixed binop to not try to read s[3] if s[2] == '\0'. There are
- no one-character binary operators that begin with `-'
-
-variables.c
- - fixed kill_all_local_variables to do nothing if variable_context
- is >= local_variable_stack_size (indicating that we do have some
- local variables, but not at this level of function nesting, and
- we are beyond the end of the array allocated the last time we
- had local variables)
-
- 7/2
- ---
-execute_cmd.c
- - non-interactive shells in posix mode should exit if the variable
- in a for command is not a valid identifier. This should really
- be caught by the parser
- - non-interactive shells in posix mode should exit if a function
- name is not a valid identifier. This should also be caught by
- the parser
-
- 7/3
- ---
-jobs.c
- - non-interactive shells should ignore stopped children, so
- waitchld() should set waitpid_flags to WUNTRACED only if the
- shell is interactive and it's not a subshell environment
-
-lib/readline/signals.c
- - if not being compiled as part of the shell, readline should
- catch SIGTERM and clean up
-
-shell.c
- - change to isnetconn: on Solaris 2.5, getpeername() can return
- EINVAL rather than ENOTSOCK if the fd passed as the first
- argument is not a socket
-
- 7/5
- ---
-lib/readline/complete.c
- - new variable, available to library users, to inhibit completion
- and cause the completion character to be inserted into the
- line with self-insert: rl_inhibit_completion. Set to 0 by default.
-
-lib/readline/readline.h
- - extern declaration for rl_inhibit_completion
-
-lib/readline/doc/rltech.texinfo
- - documented rl_inhibit_completion
-
-lib/readline/bind.c
- - new readline user variable: disable-completion. This provides
- users a way to toggle the value of rl_inhibit_completion
-
-doc/{bash.{1,html},readline.3}, lib/readline/doc/rluser.texinfo
- - documented disable-completion variable
-
-lib/readline/doc/Makefile
- - added `html' target to create html from rlman.texinfo and
- hist.texinfo
-
- 7/8
- ---
-builtins/cd.def
- - only try cd spelling correction if the shell is currently
- interactive, regardless of value of `cdspell' option
-
-lib/posixheaders/alloca.h
- - AIX 4.2 needs `#pragma alloca' if gcc is not being used
-
- 7/9
- ---
-builtins/getopts.def
- - return EXECUTION_FAILURE from getopts if it's trying to assign
- to a read-only variable
- - reset sh_badopt to zero in getopts_reset()
-
-builtins/getopt.c
- - new variable, sh_badopt, set to 1 if we find an illegal option
- - do the increment of sh_optind if sh_badopt is non-zero and we're
- at the end of the option string at the beginning of sh_getopt().
- The increment is deferred until the next call so $OPTIND is
- correct
-
-builtins/getopt.h
- - extern declaration of sh_badopt
-
- 7/10
+ 5/27
----
Makefile.in
- - don't pass ALLOCA_SOURCE or ALLOCA_OBJECT to the make in lib/malloc
- - don't make libmalloc.a depend on ALLOCA_DEP -- it causes some
- compilers to build alloca.o in the top directory, and if ALLOCA
- is not defined, makes the malloc library depend on a directory
-
-aclocal.m4
- - some small changes to make the output look better
+ - make sure that `make distclean' (and other clean targets) remove
+ the `printenv' executable
-memalloc.h
- - made some small changes suggested by the autoconf documentation
+tests/execscript, tests/redir.tests
+ - make sure to set LANG=C and LC_ALL=C so the messages show up in
+ English
- 7/11
- ----
-parse.y
- - swapped meanings of \h and \H in prompt_string_decode for
- bash-1.14.6 compatibility
-
-doc/{bash.{1,html},bashref.texi}
- - updated prompt string decoding section with swap of \h and \H
-
-general.c
- - print_timeval and print_time_in_hz now accept a FILE * as the
- first argument, so `times' can print to stdout while `time'
- prints to stderr
-
-execute_cmd.c
- - changed time_command to print the timing statistics to stderr
-
-builtins/times.def
- - added the FILE * argument to the calls to print_timeval and
- print_time_in_hz
-
-support/texi2html
- - upgraded to version 1.50
-
-error.c
- - include bashhist.h if HISTORY is defined for declarations of
- last_history_line() and remember_on_history
-
-lib/glob/glob.c
- - add a `#pragma alloca' as the first thing in the file if we're
- not using gcc and _AIX is defined
-
-lib/posixheaders/memalloc.h
- - remove the `#pragma alloca' stuff; it is done in the C source
- files now, to avoid problems with other AIX header file
- declarations
-
- 7/12
- ----
-lib/readline/rltty.c
- - some changes to work around AIX 4.2 bugs (sometimes OPOST is unset
- in termios, sometimes FLUSHO is inexplicably set in termios, etc.)
-
- 7/15
- ----
-lib/readline/rltty.c
- - make SETATTR use TCSADRAIN on POSIX machines. This setting is
- supposed to be used for changes that affect output
-
-[bash-2.0-alpha4 released]
+tests/run-func
+ - add a warning about exported functions in the environment
- 7/16
+ 5/29
----
-trap.c
- - changed reset_or_restore_signal_handlers to honor traps before
- special signals, so that `trap "" 2' works right and causes
- children to ignore SIGINT
-
-locale.c
- - added lc_all variable to track the value of LC_ALL
- - added new functions: set_default_locale_vars, set_locale_var,
- set_lang, get_locale_var, removed get_current_messages_locale
-
-subst.h
- - added extern declaration for sv_locale
-
-subst.c
- - LC_ALL, LC_CTYPE, LC_MESSAGES, and LANG are now special variables;
- sv_locale() is called when they are assigned a value
-
-shell.c
- - call set_default_locale_vars after initializing the shell variables
- in main(), so LC_CTYPE and LC_MESSAGES (if present) have values
- - shell.c does not need to include <locale.h>
-
-general.c
- - changed print_timeval and print_time_in_hz to format their output
- as Posix.2 specifies for `time -p' if the new POSIX_TIME argument
- is non-zero
-
-parse.y
- - new grammar production: timespec, to handle `time' and `time -p'
- - change to special_case_tokens so that -p after `time' returns
- TIMEOPT
-
-execute_cmd.c
- - set posix_time in time_command if the command's flags include
- CMD_TIME_POSIX
- - call print_timeval and print_time_in_hz with posix_time as
- the new third argument
- - use a space to separate the word (`real') and the time if we're
- in posix mode. This is what POSIX.2 defines for `time -p'
-
-builtins/times.def
- - call print_timeval and print_time_in_hz with 0 as the new third
- argument
-
-command.h
- - new flag: CMD_TIME_POSIX, used to handle `time -p'
-
-doc/{bash.{1,html},bashref.texi}
- - documented `time -p'
-
- 7/17
- ----
-support/mkversion.c
- - include `config.h' before any other include files
-
-parse.y
- - initialize was_dollar to 0 in parse_matched_pair
-
-configure.in
- - removed duplicate check for <sys/file.h> from call to
- AC_HAVE_HEADERS
-
-sig.c
- - include siglist.h so we can find out if it defines HAVE_SYS_SIGLIST
-
-siglist.h
- - define HAVE_SYS_SIGLIST if we end up defining sys_siglist as
- _sys_siglist (Solaris 2.[45])
-
-siglist.c
- - include "siglist.h" before testing whether or not HAVE_SYS_SIGLIST
- is defined; it may be defined in there (Solaris 2.[45])
-
- 7/19
- ----
-examples/misc/alias-conv.sh
- - updated, now uses code from examples/functions/csh-compat to do
- the alias conversion, uses `command' builtin in functions it
- creates, does some substitution of csh special variables to
- bash equivalents
-
-examples/misc/cshtobash
- - a more ambitious script that attempts to convert csh aliases,
- environment variables, and local variables to bash equivalents
-
- 7/22
- ----
-bashline.c
- - added `:' to the set of completion word break characters so that
- individual directories in $PATH assignments can be completed
-
-aclocal.m4
- - added a new macro, BASH_CC_WORKS, that aborts configuration if
- ${CC} can't compile a simple program successfully
-
-configure.in
- - call BASH_CC_WORKS before doing anything else
-
- 7/23
- ----
-execute_cmd.c
- - fixed select_query to print the prompt ($PS3) to stderr
-
-support/bashbug.sh
- - workaround for bug in SunOS 5.x /bin/sh that causes it to
- not ignore interrupts while waiting for a foreground process
- to exit
-
- 7/24
- ----
-general.c
- - added new functions to decompose `timeval's and `clock_t's into
- seconds and thousandths of seconds: timeval_to_secs and
- clock_t_to_secs
- - changed print_timeval and print_time_in_hz to call timeval_to_secs
- and clock_t_to_secs, respectively
- - removed no-longer-used third argument for print_timeval and
- print_time_in_hz -- `time' output is now done in execute_cmd.c
-
-general.h
- - new extern declarations for timeval_to_secs and clock_t_to_secs
-
-builtins/times.def
- - changed calls to print_timeval and print_time_in_hz, removing the
- no-longer-used third argument
+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
-execute_cmd.c
- - changed the way time_command prints its output: it now interprets
- a format string, replacing several escape sequences prefixed with
- a `%' with the real, user, and system times. There are options in
- the format string to ask for the `long' format that `times' uses
- as well as to specify the number of places after the decimal point,
- and whether to output fractional seconds at all
- - time_command now uses the value of the `TIMEFORMAT' variable, if
- present, to format the timing output. This is flexible enough to
- encompass the bash default, posix `time -p', BSD, and SV time
- formats
-
- 7/25
+ 5/30
----
-Makefile.in
- - `make clean' should delete the files listed in $(CREATED_SUPPORT);
- `make mostlyclean' should not
-
-doc/{bash.{1,html},bashref.texi}
- - fixed an error in the description of the effect that setting and
- unsetting GLOBIGNORE has on the setting of the `dotglob' option
-
-doc/bashref.texi
- - updated the section listing the major differences between bash
- and the SVR4.2 shell
-
-lib/readline/readline.c
- - removed the setting of _rl_suppress_redisplay, since it doesn't
- really do anything yet
-
-oslib.c
- - new function get_clk_tck (void), returns the value of _SC_CLK_TCK
- if sysconf(3) is available, otherwise returns the value of
- CLOCKS_PER_SEC (default 60)
-
general.c
- - moved CLOCKS_PER_SEC defines to oslib.c
- - changed clock_t_to_secs to call get_clk_tck once to get the
- right value to use
+ - change canonicalize_pathname to leave a leading `/' alone, as
+ POSIX requires
-externs.h
- - extern declaration for get_clk_tck
-
-execute_cmd.c
- - changed print_formatted_time so that a `%' at the end of the string
- is output literally
- - changed print_formatted_time to output a newline after the
- translated format string, so it does not need to be included in
- the format
- - changed BASH_TIMEFORMAT (the default time format) to have a leading
- newline to match ksh93
-
-configure.in
- - use `shlicc2' on BSD/OS machines
-
- 7/26
- ----
-doc/bash.html
- - major overhaul, cleaned up text, corrected some minor HTML errors
-
-variables.c
- - call sv_optind and sv_opterr to initialize the getopts stuff in
- initialize_shell_variables
-
- 7/29
- ----
-shell.c
- - don't let maybe_execute_file try to read files that are not
- `regular files'
-
- 7/30
- ----
-parse.y
- - cast `string' in yy_string_get() to unsigned char * to avoid
- sign extension bugs. For example, bash -c $'ls\377who'
-
-
-builtins/reserved.def
- - add help text for the `time' reserved word
- - deleted description of `HISTCONTROL'
- - added descriptions for HISTIGNORE, PWD, HOSTNAME, GLOBIGNORE,
- MACHTYPE
-
- 7/31
- ----
-builtins/common.c
- - parse_and_execute saves and restores the line number around
- calls, and resets it to 0 when pushing the string onto the
- input stack
-
-parse.y
- - added code that parses `` within a double-quoted string as a
- single word
-
- 8/6
- ---
-configure.in, config.h.in
- - look for `textdomain' as well as `gettext' for internationalization
-
-locale.c
- - when LC_MESSAGES is set, call textdomain as well as setlocale
- - new variable `default_domain', used to track the value of
- $TEXTDOMAIN
-
-subst.c
- - call sv_locale when TEXTDOMAIN changes
-
- 8/7
- ---
-error.c
- - new function, sys_error(), which prints a formatted string followed
- by a colon and strerror(errno) to stderr
-
-error.h
- - extern declaration for sys_error
-
-jobs.c, nojobs.c, input.c, execute_cmd.c, subst.c
- - changes to use sys_error()
-
-[many files]
- - changes to many of the literal strings in the code for consistency
- and easier potential translation
-
- 8/8
+ 6/2
---
-parse.y
- - new function debug_parser(int) to toggle the value of yydebug
- if YYDEBUG != 0
+support/xenix-link.sh
+ - shell script for linking bash under Xenix
- 8/9
+ 6/3
---
-oslib.c
- - don't use CLOCKS_PER_SEC, just try to get CLK_TCK (60 by default)
-
bashline.c
- - set saved_history_line_to_use to -1 when it's not going to be used
- rather than 0. A value of 0 can be confused with the first
- history line
-
-builtins/evalstring.c
- - moved parse_and_execute and auxiliary functions here from
- builtins/common.c
-
-builtins/evalfile.c
- - moved maybe_execute_file here from shell.c
-
-Makefile.in, builtins/Makefile.in
- - changes necessitated by the new files
-
- 8/12
- ----
-builtins/common.c
- - fixed an off-by-one bug in single_quote that could make bash
- run off the end of a string if it consisted entirely of single
- quotes
-
- 8/13
- ----
-shell.c
- - moved code from main() to a new function: open_shell_script
- - don't try to fclose(default_input) if BUFFERED_INPUT is defined
- - moved argument binding code out of two places in main() and
- open_shell_script() to a new function: bind_args(). This takes
- an additional argument telling whether to bind starting at $0
- or $1
- - moved the code that calls the with_input_from_* functions into
- a new function: set_bash_input
- - moved the normal shell command-line option parsing code out of
- main() into a new function: parse_shell_options
- - moved the long option parsing code out of main() into a new
- function: parse_long_options()
-
-general.c
- - new function: move_to_high_fd(fd), which tries to move FD to a
- file descriptor close to the allowed maximum, returning the new
- fd and closing the old one (or returning the old one if something
- goes wrong)
-
-general.h
- - new extern declaration for move_to_high_fd
-
-variables.c
- - moved indirection_level_string() here from shell.c
-
-jobs.c
- - change initialize_jobs to use move_to_high_fd() instead of the
- inline code to do the same thing
-
- 8/14
- ----
-lib/readline/readline.c
- - add `en_US.ISO8859-1' to the list of legal LANG values that turns
- on readline's 8-bit mode
-
- 8/15
- ----
-builtins/evalfile.c
- - combined source_file and maybe_execute_file into a new function
- _evalfile(fname, flags), where the flags select the appropriate
- behavior
-
-eval.c
- - moved the functions that perform the read-eval loop here from
- shell.c
-
-execute_cmd.c
- - changed CPU calculation for printing timing statistics using
- ideas and code from Deven Corzine (deven@ties.org)
-
-eval.c, builtins/evalstring.c
- - make sure we dispose of global_command if set -n is on and the
- shell is not interactive
-
- 8/16
- ----
-variables.c
- - make a new array variable, BASH_VERSINFO, with version information:
-
- BASH_VERSINFO[0] = release (2)
- BASH_VERSINFO[1] = version (00)
- BASH_VERSINFO[2] = patch level (0)
- BASH_VERSINFO[3] = build version (1058)
- BASH_VERSINFO[4] = release status (beta1)
- BASH_VERSINFO[5] = $MACHTYPE (sparc-sun-sunos4.1.4)
-
-doc/{bash.{1,html},bashref.texi}
- - Documented BASH_VERSINFO
-
-configure.in, config.h.in
- - look for bindtextdomain(), set HAVE_BINDTEXTDOMAIN if found
-
-subst.c
- - call sv_locale if TEXTDOMAINDIR is set or changes
-
-locale.c
- - handle TEXTDOMAINDIR in set_locale_var; call bindtextdomain if
- it is present
-
-tests/array.tests
- - added calls to egrep to filter out BASH_VERSINFO and PIPESTATUS,
- which can vary from system to system
-
- 8/19
- ----
-shell.c
- - moved line_buffer_stream from here to oslib.c, made it into a
- replacement for setlinebuf() if that is not available
-
-externs.h
- - extern declaration for setlinebuf()
-
-lib/readline/input.c
- - in rl_gather_tyi, punt if chars_avail < 0 after checking input fd
-
- 8/20
- ----
-builtins/suspend.def
- - send SIGSTOP instead of SIGTSTP
-
- 8/21
- ----
-builtins/colon.def
- - added true and false as builtins (undocumented)
-
-CWRU/POSIX.NOTES, doc/bashref.texi
- - note that process substitution is not available in posix mode
-
-bashintl.h
- - new header file for internationalization, included by locale.c
-
- 8/22
- ----
-subst.c
- - in command_substitute, set istring to NULL before trying to
- make the pipe, so if that fails, the code at error_exit:
- doesn't try to free it
-
-execute_cmd.c
- - when executing a shell script without a leading `#!' internally,
- and the shell is not interactive, close the fd to the script
- we're reading. If this is called by the exec builtin, the shell
- will not have forked, and the fd will not have been closed, even
- though it's marked close-on-exec
- - if subshell_argv is non-null, free its members (except 0) and
- subshell_argv in shell_execve before reassigning it
- - dispose of currently_executing_command before jumping back to
- subshell_top_level
-
-builtins/hash.def
- - use a sentinel variable so we only initialize the hash table
- once in initialize_filename_hashing
-
-shell.c
- - don't flush the filename hash table in shell_reinitialize
- - free dollar_vars[0] in set_shell_name before assigning it
- - don't fetch the current hostname more than once
- - don't fetch the current user information more than once unless
- the uid changes
-
-parse.y
- - initialize_bash_input should free bash_input.name if it is
- non-null before zeroing it
+ - fixed a memory leak in command_word_completion_function, courtesy
+ of a.pfaller@pop.gun.de
- 8/23
- ----
-aclocal.m4
- - changed BASH_CHECK_SOCKLIB: if -lsocket is present, check for
- and cache the existence of -lnsl. Define LIBS appropriately
- based on the values of the cache variables rather than relying
- on the autoconf tests to do it
-
- 8/26
- ----
-parse.y
- - fix up yy_readline_get and yy_stream_get to fix the sign
- extension problem
-
-shell.c
- - move the setjmp(top_level) that catches early SIGINTs to the
- first statement in main()
-
-Makefile.in
- - added a `strip' target to strip the binary
-
-[bash-2.0-beta1 frozen]
-
- 8/27
- ----
-parse.y
- - replaced several static state variables with a single flags word:
- parser_state
-
- 8/28
- ----
-parse.y
- - in read_token_word, combined the ${...} case with the other
- expansion cases -- the code was identical
- - added code to handle ksh-style ((...)) -- equivalent to
- `let "..."'. In fact, the above construct is translated internally
- into `let "..."', so error messages output by the evaluator
- will contain `let'
-
-expr.c
- - changed evalerror to call internal_error so the name of the
- shell script is prefixed to the message, if necessary
-
-Makefile.in
- - changed RELSTATUS to `beta2'
-
-tests/{arith,new-exp}.{tests,right}
- - changed the expected error message because of the change in format
- of the arithmetic evaluation error messages in expr.c
-
-builtins/pushd.def
- - changed pushd_builtin so `pushd -' is equivalent to `pushd $OLDPWD'
-
-externs.h
- - changed the extern declaration for setlinebuf() to avoid having
- to include stdio.h before externs.h everywhere
-
- 8/29
- ----
-error.c
- - new function, parser_error, for use by parts of the parser that
- don't want to call report_syntax_error
-
-error.h
- - extern declaration for parser_error
-
-parse.y
- - changed some parts of the parser to use parser_error
- - made the ((...)) code #ifdef'd on DPAREN_ARITHMETIC
-
-shell.c
- - added a line to the --help output saying to use `bashbug' to
- report bugs
-
-configure.in
- - added new option: --enable-dparen-arithmetic; it controls
- the DPAREN_ARITHMETIC define in config.h
- - changed $host_os check for SCO to only enable -DWAITPID_BROKEN
- for sco3.2v5; all other SCO versions enable -DMUST_UNBLOCK_CHILD
-
-config.h.in
- - added line for DPAREN_ARITHMETIC, modified by configure
-
-doc/{bash.{1,html},bashref.texi}
- - documented new ((...)) command and new configuration option
-
-execute_cmd.c
- - shell_execve should not try to close default_buffered_input unless
- it is >= 0. Other code that closes it and deallocates the buffer
- should set default_buffered_input to -1
-
- 8/30
- ----
-configure.in
- - more changes to LOCAL_CFLAGS for sco machines
-
-error.c
- - changed parser_error to handle all cases of the shell being
- interactive, not interactive, reading from a script, and reading
- from some other file
-
-parse.y
- - changed report_syntax_error to call parser_error for consistent
- messages
-
-dispose_cmd.c
- - change dispose_command to use programming_error instead of
- report_error
-
-execute_cmd.c, input.c, general.c
- - changed calls to report_error to internal_error, since we don't
- want to possibly exit in any of those cases
-
- 9/3
- ---
-input.c
- - changed the `localbuf' type to `unsigned char'
-
-parse.y
- - changed yy_stream_get to use feof to test for end of file when
- not using getc_with_restart
-
- 9/6
- ---
-config.h.top
- - added a commented-out define for SYS_BASH_LOGOUT, which is a
- system-wide .bash_logout file, run when a login shell exits
- - added /sbin to STANDARD_UTILS_PATH
-
-builtins/exit.def
- - added support for SYS_BASH_LOGOUT
-
- 9/10
- ----
-lib/readline/{{chardefs,histlib}.h,{bind,histexpand,readline,util,vi_mode}.c}
- - changed to_upper to _rl_to_upper and to_lower to _rl_to_lower
- - changed digit_value to _rl_digit_value
- - changed digit_p to _rl_digit_p
- - changed uppercase_p and lowercase_p to _rl_uppercase_p and
- _rl_lowercase_p respectively
- - changed pure_alphabetic to _rl_pure_alphabetic
-
-support/zecho.c
- - new file, implements a bare-bones echo (no -n, no \-escapes),
- to be used by tests
-
-tests/rhs-exp.tests
- - changed calls to echo to use recho to avoid errors when bash is
- configured with --enable-usg-echo-default
-
-tests/more-exp.tests
- - changed some calls to echo to use zecho to avoid errors when bash
- is configured with --enable-usg-echo-default
-
- 9/11
- ----
-lib/readline/histexpand.c
- - fixed a possible off-by-one error in history_expand_internal when
- deciding whether or not to reallocate `result'
-
-expr.c
- - fixed expcond() so that an assignment may be supplied as the
- token after the `?'
- - illegal bases now cause an evaluation error
- - multiple base specifications now cause an evaluation error
-
-tests/arith.tests
- - added more tests for conditional operator and associativity
-
-tests/{run-heredoc,heredoc.{tests,right}}
- - new set of tests for here-documents
-
-builtins/common.c
- - print out the name returned by get_name_for_error in
- builtin_error()
-
-subst.c
- - set this_command_name to NULL before processing command-line
- assignment statements so arithmetic evaluation errors don't
- print garbage
- - according to POSIX.2, echo ${foo?$x} should print the expanded
- value of $x, even when it doesn't expand into anything
-
- 9/12
- ----
-shell.c
- - changed the execution of startup files so that $ENV is never
- run by a non-interactive shell and an interactive shell begun
- as `sh' reads and executes $ENV, as posix specifies
-
-doc/{bash.{1,html},bashref.texi}
- - updated description of startup file behavior
-
-doc/Makefile.in
- - make sure references to bashref.texi are preceded by $(srcdir)/
- so we can build the documentation in another directory just by
- typing `make'; e.g. after giving configure the --srcdir option
-
-subst.c
- - change to array_remove_pattern to avoid evaluating the `param'
- part of the ${param#word} spec twice when doing things like
- echo ${A[x=(i+=1)]#${A[y=(i+=2)]}}
-
- 9/13
- ----
-builtins/bashgetopt.c
- - fixed a problem with `;' option specifier (optional argument)
-
-support/config.{sub,guess}
- - added cases to recognize CRAY C90 and T90
-
-builtins/ulimit.def
- - rewritten almost from scratch to use internal_getopt and to not
- mask the return value from getrlimit/setrlimit, and to make it
- easier to maintain
- - added `-l' option for systems with RLIMIT_MEMLOCK (4.4 BSD)
-
-doc/{bash.{1,html},bashref.texi}
- - documented new `-l' option to `ulimit'
-
- 9/24
- ----
-parse.y
- - added `in' to the list of tokens that should not be followed by
- a semicolon when combining history lines
- - removed the special-case code in history_delimiting_chars that
- tried to be smart about `()'
-
- 9/25
- ----
-print_cmd.c
- - fixes to print_group_command from Andreas Schwab
- - rewrote indent() to use a single malloced string for the spaces
- to print, rather than calling cprintf multiple times
-
-shell.c
- - make sure to set the strings in current_user to NULL after freeing
- their contents in uidget().
-
-parse.y
- - make sure decode_prompt_string quotes the values inserted by the
- \w and \W escape sequences using backslashes if the string will be
- expanded later because promptvars is set
-
-support/mkdirs
- - removed leading `^' from regular expressions to be matched by
- `expr' on the advice of meyering@appaloosa.asic.sc.ti.com
-
- 9/26
- ----
-parse.y
- - added a few more possible flag values for parser_state
- - changed history_delimiting_chars to not add a semicolon after a
- right paren if we're parsing a case statement
-
- 9/27
- ----
-builtins/ulimit.def
- - a few minor cleanups
-
- 10/1
- ----
-builtins/trap.def
- - make sure first_arg is non-empty before calling signal_object_p()
-
-[bash-2.0-beta2 frozen]
-
- 10/2
- ----
-bashintl.h
- - if we have setlocale(), but don't have a definition for LC_ALL,
- undefine HAVE_SETLOCALE
-
-configure.in
- - set LOCAL_LDFLAGS on AIX 4.2 to allow dynamic loading of builtins
-
-builtins/enable.def
- - use correct flags for AIX 4.2 in dlopen call if _AIX is defined
-
-examples/loadables/Makefile
- - add sample commands for AIX 4.2
-
- 10/3
- ----
-variables.c
- - new functions: merge_temporary_env(), merge_builtin_env(), to
- take temporary_env and builtin_env, respectively, and create
- shell variables from them
-
-variables.h
- - new extern declarations for merge_temporary_env() and
- merge_builtin_env()
-
-execute_cmd.c
- - if variable assignments preceds a posix special builtin, and the
- shell is in posix mode, those assignments should persist in the
- shell environment after the builtin completes
-
-doc/bashref.texi
- - modified description of what's changed by posix mode to include
- the persistance of assignment statements preceding special builtins
-
-doc/mkposix
- - new script to create CWRU/POSIX.NOTES directly from the `Bash
- POSIX Mode' node of bashref.texi, like INSTALL is created
-
- 10/4
- ----
-lib/{malloc,glob,readline}/Makefile.in, builtins/Makefile.in
- - don't have autoconf substitute LOCAL_CFLAGS into the CFLAGS
- assignment so people on SCO 3.2v[45] can still build with
- NO_MEMSCRAMBLE even when they run `make CFLAGS=...'
-
-test.c
- - renamed eaccess() to test_eaccess() to avoid conflict with SCO
-
-config.h.bot
- - #undef HAVE_GETCWD if GETCWD_BROKEN is defined, so we use the
- replacement in getcwd.c
-
-general.c
- - fixed a small memory leak in full_pathname that occurs if
- getcwd() returns NULL
-
-oslib.c
- - new constant string variable: bash_getcwd_errstr, to use when
- getcwd() returns NULL
-
-{general,jobs}.c, parse.y, builtins/{cd.def,common.c}
- - change calls to getwd() to use getcwd() instead
-
-general.c, builtins/common.c, builtins/cd.def
- - changed error behavior when getcwd() returns NULL to use
- bash_getcwd_errstr, sys_error(), and strerror(errno) where
- appropriate
-
-sig.c
- - change a couple of calls to signal to set_signal_handler
-
-aclocal.m4
- - added definitions of _popen and _pclose to the BASH_FUNC_GETCWD
- macro
-
-configure.in
- - added -DPATH_MAX=1024 to LOCAL_CFLAGS for sco3.2v[45] on the
- advice of <grog@lemis.de>
- - removed check for getwd(3)
-
-externs.h
- - removed extern declaration for getwd(), added extern declaration
- for getcwd() if HAVE_GETCWD is not defined
-
-oslib.c
- - removed definition of getwd(); it is no longer used
-
-lib/readline/rltty.c
- - changed SETATTR macro for SCO POSIX systems to call tcsetattr
- with TCSANOW, on advice of <wbader@nacs.fast.net>
-
- 10/7
- ----
-support/mkdirs
- - slight change to work around a bug in the HP-UX `expr'
-
- 10/8
- ----
-lib/readline/vi_mode.c
- - changes so that the text inserted with an `i' command is available
- to be reinserted with `.'
-
-examples/functions/autoload.v2
- - new implementation: uses arrays, keeps a list of autoloaded
- functions, allows autoloaded functions to be removed, allows
- autoloaded functions to be listed
-
-execute_cmd.c
- - when freeing the members of subshell_argv in shell_execve(), free
- only the members up to subshell_argc
-
- 10/9
- ----
-configure.in
- - replaced calls to AC_HAVE_FUNCS with AC_CHECK_FUNCS
- - replaced calls to AC_FUNC_CHECK with AC_CHECK_FUNC
- - replaced calls to AC_HAVE_HEADERS with AC_CHECK_HEADERS
- - added additional code to check for libintl.{a,so} for the
- internationalization functions if bindtextdomain is not found
- in libc
- - define HAVE_WAIT3 if AC_FUNC_CHECK(wait3,...) succeeds, rather
- than HAVE_FUNC_WAIT3, which is not used in the source
- - added a call to AC_FUNC_STRCOLL to check for the presence of a
- working strcoll(3)
-
-config.h.in
- - removed HAVE_FUNC_WAIT3
- - added HAVE_STRCOLL
-
-variables.c, stringlib.c
- - move sort_char_array from variables.c to stringlib.c
-
-variables.h, externs.h
- - move extern declaration of sort_char_array from variables.h to
- externs.h
-
-variables.c
- - don't sort the exported environment, even when we're not in
- posix mode
-
-stringlib.c
- - changed qsort_string_compare to use strcoll(3) if it is available
- (HAVE_STRCOLL is defined). This means that the results of glob
- expansions are now sorted in the per-locale collation order
-
-locale.c
- - track the value of $LC_COLLATE and call setlocale(LC_COLLATE,...)
- when it changes. Also, set its default value
-
-subst.c
- - LC_COLLATE is now a special variable; call sv_locale when it is
- assigned to or unset
-
-lib/readline/util.c
- - move compare_strings here from complete.c; renamed it
- _rl_qsort_string_compare; made it use strcoll(3) if it's
- available; made it global so other library files can use it
-
-lib/readline/complete.c
- - use _rl_qsort_string_compare instead of static compare_strings.
- This means that completions are now sorted in a locale-specific
- collation order
-
-lib/readline/funmap.c
- - removed static declaration of qsort_string_compare; qsort now
- uses _rl_qsort_string_compare instead
-
-oslib.c
- - rewrote stricmp, strnicmp; renamed them strcasecmp and
- strncasecmp, since they're only compiled in if HAVE_STRCASECMP
- is not defined
-
-externs.h
- - removed extern declarations of strnicmp, stricmp, replacing them
- with declarations of strcasecmp and strncasecmp if HAVE_STRCASECMP
- is not defined; removed #defines of stricmp and strnicmp to
- strcasecmp and strncasecmp
-
-trap.c
- - changed calls to stricmp to direct calls to strcasecmp
-
-Makefile.in
- - bumped RELSTATUS to `beta3'
-
-doc/bash.{1,html}
- - added mention of LC_COLLATE
-
-doc/bashref.texi
- - removed item about sorting environment from the section on posix
- mode
-
- 10/16
- -----
-subst.c
- - fixed array_length_reference to return 0 for an unbound variable
- and 1 for a variable that is not an array
-
-examples/scripts.v2/cdhist.bash
- - package with functions to replace cd and maintain a cd directory
- stack
+hashcmd.c
+ - fixed find_hashed_filename to always return a newly-allocated
+ string
-examples/scripts.v2/pmtop
- - a `poor man's top' for SunOS 4.x and BSD
-
-examples/scripts.v2/bashrand
- - a script to return a random number within a specified range, with
- an optional seed
-
-examples/scripts/zprintf
- - printf(1) replacement that uses gawk to do the output
-
-doc/{bash.{1,html},bashref.texi}, lib/readline/doc/hsuser.texinfo
- - several small corrections
-
- 10/17
- -----
-variables.c
- - changed the calls to list_string_with_quotes and then
- expand_words_no_vars in assign_array_var_from_string to a single
- call to expand_string. This behaves more rationally, and closer
- to ksh93
-
-subst.c
- - commented out list_string_with_quotes -- it is no longer used
-
-lib/readline/terminal.c
- - new function, _rl_set_screen_size(int rows, int cols), to set
- readline's idea of the screen size
-
-jobs.c, nojobs.c
- - make sure that window size changes are propagated back down to
- the readline code, by calling _rl_set_screen_size with the
- new sizes. This happens when bash gets a SIGWINCH or if
- `checkwinsize' is set with `shopt'
-
- 10/18
- -----
-support/config.guess
- - added code to recognize the various NetBSD ports
-
-lib/readline/signals.c
- - don't install a handler for SIGALRM if the containing application
- has installed a handler with SA_RESTART as part of the flags.
- This is in effect, obviously, only for systems with POSIX signals.
-
-subst.c
- - make parameter_brace_expand_length expand variables in a double-
- quoted environment so it takes spaces in the variable value into
- account
-
- 10/21
- -----
-command.h
- - flags for possible values of subshell_environment telling what
- caused the subshell
-
-builtins/command.def
- - the `command' builtin should not be setting CMD_NO_FORK at all;
- it doesn't know enough about the execution context to do so
-
-execute_cmd.c, subst.c
- - set subshell_environment to one of the values in command.h rather
- than to `1', so we know what kind of subshell it is (just for
- informational purposes; nothing actually uses this yet)
-
-
- 10/22
- -----
execute_cmd.c
- - just return EXECUTION_SUCCESS immediately in execute_command_internal
- if read_but_dont_execute is set
-
- 10/23
- -----
-general.c
- - fixed check_dev_tty to return immediately if ttyname() returns NULL
-
-builtins/suspend.def
- - SIGSTOP cannot be caught, so there's no reason to try to do so
-
-examples/loadables/{finfo,pathchk,print}.c
- - minor fixes
-
-pathexp.c
- - fix to off-by-one error in setup_ignore_patterns
-
-jobs.c
- - try to set the tty pgrp to our pgrp if we change our pgrp to our
- pid and become a process group leader. If it doesn't work,
- reset our pgrp to what it was originally and disable job control
-
-aclocal.m4
- - new test, BASH_STRUCT_TERMIO_LDISC, to test for a c_line member
- of struct termio
-
-config.h.in
- - add a new preprocessor variable, TERMIO_LDISC, undefined by default
-
-configure.in
- - call BASH_STRUCT_TERMIO_LDISC after BASH_STRUCT_TERMIOS_LDISC
-
- 10/25
- -----
-lib/readline/terminal.c
- - increased the size of the termcap buffers to 4096
-
- 10/29
- -----
-parse.y
- - include memalloc.h for uses of alloca that the code in the
- generated bison parser does not catch (e.g., HP-UX 10.10)
-
-aclocal.m4
- - new test, BASH_KERNEL_RLIMIT_CHECK, to check whether a given
- HP-UX machine needs _KERNEL defined for the RLIMIT_* defines in
- <sys/resource.h> (9.05, 10.01 yes, 10.10,10.20 no)
-
-configure.in
- - call BASH_KERNEL_RLIMIT_CHECK if $host_os begins with `hpux'
-
-config.h.in
- - new #undef for RLIMIT_NEEDS_KERNEL
-
-builtins/ulimit.def
- - only define _KERNEL before including <sys/resource.h> if HPUX
- and RLIMIT_NEEDS_KERNEL are both defined
-
-[bash-2.0-beta3 frozen]
-
- 11/1
- ----
-locale.c
- - if setting LC_ALL to a null value (as is done when `unset LC_ALL'
- is run), call setlocale() to set LC_ALL back to default_locale
-
-lib/readline/readline.c
- - moved i18n code from here to nls.c
-
-lib/readline/Makefile.in, Makefile.in
- - new readline library member, nls.c
-
-lib/readline/nls.c
- - new file, with internationalization code from readline.c (such as
- it is)
- - updated legal_lang_values to just contain a list of codesets
- - added code modified from a diff sent by Ulrich Drepper
- <drepper@cygnus.com> to parse a locale specification and isolate
- and normalize the codeset part, for checking against the values
- in legal_lang_values
-
- 11/4
- ----
-builtins/setattr.def, locale.c, aclocal.m4, oslib.c
- - minor cleanups
-
- 11/5
- ----
-lib/readline/complete.c, test.c, trap.c
- - more minor cleanups
-
- 11/6
- ----
-parse.y
- - added a `flags' parameter to parse_matched_pair, currently unused
-
- 11/7
- ----
-configure.in, config.h.in
- - add a check for time_t, defaulting to `long' if it's not
- defined in <sys/types.h>
-
-builtins/fc.def
- - use `time_t *' instead of `long *' in call to time()
-
- 11/8
- ----
-configure.in
- - removed check for getpwent in libsun.a; it's not necessary for
- recent versions of irix (irix[56].?)
-
- 11/11
- -----
-test.c
- - used `&&' where `||' was needed when testing if HAVE_LSTAT and
- S_IFLNK are both defined
-
-[bash-2.0-beta3 net release version frozen]
-
- 11/12
- -----
-builtins/getopt.c
- - when sh_getopt detects that a required argument is not present,
- set sh_optarg to "" so that getopts does the right thing
-
- 11/15
- -----
-builtins/ulimit.c
- - made the default (without -H or -S) report the soft limit and set
- both soft and hard limits (like sh and ksh)
-
-expr.c
- - changed the maximum base in base#num constants to 64, implemented
- just like ksh93
-
-doc/{bash.{1,html},bashref.texi}
- - updated description of ulimit builtin to new behavior when
- neither -H nor -S is supplied
- - updated arithmetic evaluation section with new maximum base and
- explanation of how numbers between 10 and 63 are represented
-
-lib/readline/vi_mode.c
- - in rl_vi_done_inserting, don't try to save the text entered while
- in insert mode unless rl_undo_list is non-null (indicating that
- there was actually some text to be saved)
-
- 11/19
- -----
-lib/readline/tcap.h
- - new file, for termcap library definitions. Uses <termcap.h> if
- it is available
-
-lib/readline/rldefs.h
- - remove inclusion of termcap.h; now included in tcap.h
-
-lib/readline/{terminal,display,readline}.c
- - include tcap.h
-
-lib/readline/Makefile.in
- - update dependencies to include tcap.h
-
- 11/21
- -----
-lib/readline/complete.c
- - broke the code that computes the lcd of the list of completion
- matches out into a separate function, compute_lcd_of_matches()
-
-lib/readline/complete.c
- - call compute_lcd_of_matches after calling the application-specific
- completion ignore function, since it may have eliminated some
- names from the match list
-
-builtins/cd.def
- - replaced instances of MAXNAMLEN in the spelling correction code
- with PATH_MAX
-
-lib/readline/terminal.c
- - new termcap capabilities: kh (sent by Home key) and kH (sent by
- End key) automatically bound to beginning-of-line and end-of-line
- respectively in emacs_standard and vi_movement maps
-
-mailcheck.c
- - fix to remember_mail_dates so any message following the
- filename is saved correctly
-
- 11/22
- -----
-lib/readline/bind.c
- - fixed extern declaration of _rl_parsing_coditionalized_out
- to match declaration in readline.c
-
- 11/25
- -----
-doc/{bash.{1,html},bashref.texi}
- - fixed a gross documentation error in the description of
- ${parameter:offset:length} (offset and length were transposed)
- - slight changes to the description of output redirection
-
-subst.c
- - new function, quoted_substring, to return substrings of variables
- when the expression is within double quotes and the value has
- CTLESC characters embedded within it. Called by
- parameter_brace_substring
- - get_var_and_type should return VT_POSPARMS if `*' is passed as
- the variable name
- - added a new first parameter for pos_params -- the variable name
- - changed pos_params to obey the rules for "$*" wrt using the
- first character of IFS as the separator in the result
- - if an unquoted $* or $@ is expanded, call quote_escapes on the
- result to protect any special characters from inadvertently
- causing quoting
-
- 12/3
- ----
-builtins/ulimit.def
- - corrected a misspelling of `unlimited'
- - added support for linux RLIMIT_AS resource limit for -v option
- and changed the block multiplier to 1024 if we have RLIMIT_VMEM
- or RLIMIT_AS
-
- 12/5
- ----
-lib/readline/readline.c
- - fix rl_insert to handle a count of exactly 1024
-
-shell.c
- - new function: unbind_args(), which removes all the positional
- parameters. Just calls remember_args(NULL, 1)
-
-execute_cmd.c
- - call unbind_args when executing a subshell, after setting up
- subshell_argX
-
-bashintl.h
- - include <libintl.h> if HAVE_LIBINTL_H defined
-
-config.h.in
- - add HAVE_LIBINTL_H define
-
-configure.in
- - add call to AC_CHECK_HEADERS for libintl.h
-
-doc/Makefile.in
- - added infodir and various mandir defines for completeness
-
-Makefile.in
- - changed some of the *dir defines to use the autoconf values
- (e.g., bindir = @bindir@)
- - changed manroot to mandir, removed old mandir and manext variables
- - added `manpfx' variable; should be either `man' or `cat'
-
- 12/6
- ----
-lib/readline/readline.c
- - fixed rl_digit_loop so it once again displays the argument count
- as it's being entered (added calls to _rl_save_prompt and
- _rl_restore_prompt)
-
- 12/7
- ----
-support/config.guess
- - recognize netbsd/vax
- - recognize openbsd on all supported platforms
- - recognize tenon's machten running on powerpc and macintosh
-
- 12/9
- ----
-support/config.guess
- - added all sorts of systems from config.guess distributed with
- autoconf-2.12
-
- 12/10
- -----
-subst.c
- - new function quoted_strchr(); does the same thing as strchr but
- honors shell backslash and CTLESC quoting conventions
- - parameter_brace_patsub now calls quoted_strchr
-
- 12/11
- -----
-shell.c
- - if the shell is named `-su', run the normal login shell startup
- files, even if the shell is not interactive. This handles the
- case of `su - username -c command' compatibly
-
-lib/readline/readline.c
- - minor change to rl_digit_loop so that M-- and M--1 are equivalent,
- as the prompt for digit arguments has always implied
-
-lib/malloc/malloc.c
- - added definitions of calloc() and cfree(), compiled in unless
- NO_CALLOC is defined to cpp
-
-
- 12/16
- -----
-parse.y
- - protect uses of history_expansion_inhibited with #ifdef
- BANG_HISTORY
-
-[bash-2.0-release candidate frozen]
-
-builtins/common.c
- - changed backslash_quote to quote a tilde if it's the first
- character in the string
-
- 12/17
- -----
-aclocal.m4
- - changed BASH_CC_WORKS to provide a cross-compiling default for
- better error messages
-
-configure.in
- - generated configure using autoconf-2.12
- - changed the default value of CFLAGS to `-g -O2'
-
- 12/18
- -----
-aclocal.m4
- - look for /var/spool/mail before /usr/spool/mail when checking
- for the default mail directory
-
-jobs.c, builtins/shopt.def
- - fixed a couple of `macro replacement within a string literal'
- problems
-
-Makefile.in
- - removed `realclean' target
-
-shell.c
- - changed the first line ouput by bash --version to conform to
- the latest GNU coding standards (replace space between version
- and machtype with a hyphen)
-
- 12/19
- -----
-execute_cmd.c
- - when looking at the debug trap in execute_function and
- execute_command_internal, make sure it's trapped and not
- ignored before trying to save the value of the trap string
-
- 12/20
- -----
-trap.c
- - changed set_signal and ignore_signal to handle EXIT_TRAP and
- DEBUG_TRAP specially, so we don't try to fetch signal handlers
- or do other unnecessary things
-
- 12/22
- -----
-builtins/ulimit.def
- - if the current euid is not 0, and we're trying to set the hard
- limit of a resource to RLIM_INFINITY, set it to the current hard
- limit to avoid error messages
+ - 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
-builtins/read.def
- - fix for bug that caused core dump if line read had leading white
- space and IFS was set to ''
+builtins/type.def
+ - free the value returned by find_hashed_filename
-[bash-2.0-release frozen]
+[bash-2.01-release frozen]