i-bash/CWRU/changelog
2009-09-12 16:46:49 +00:00

8399 lines
252 KiB
Text

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
shell.c
- fixed a typo in the test for a restricted shell
builtins/exec.def
- need to include flags.h
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 `&'
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
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
print_cmd.c
- fixed a problem with undefined variables when HAVE_VARARGS_H is
not defined
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/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
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
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 $<
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
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
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
shell.c
- make maybe_execute_file check for directories and print an
appropriate error message, since it's doing an fstat anyway
support/mksysdefs
- added support for a `-s srcdir' option so it can find
cpp-Makefile if ansi-Makefile is to be created
Makefile
- call mksysdefs with -s $(srcdir)
jobs.c
- add the magic #undef lines to avoid redefinition warnings on
SunOS 4 only
6/20
----
cpp-Makefile
- install `bashbug' with `make install'
trap.c
- make sure that `interactive' is set to 0 when running trap
commands
builtins/umask.c
- fixed typo in usage error message
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
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
----
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
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
lib/readline/bind.c, general.c, general.h
- use strcasecmp, strncasecmp instead of str[n]icmp if
HAVE_STRCASECMP is defined
cpp-Makefile
- pass -DHAVE_STRCASECMP to builds in the libraries, primarily
readline
machines.h
- add HAVE_STRCASECMP to the entries for BSD/386, NetBSD, FreeBSD,
and 4.4 BSD
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)
execute_cmd.c
- call remember_filename with an initial value of 1 for times_found
builtins/wait.def
- handle a null argument with an error message
builtins/common.c
- parse_and_execute now takes a third parameter: the value for
`interactive' while it is executing commands
bashline.c, jobs.c, parse.y, shell.c, subst.c, trap.c, variables.c
- set the new third argument to parse_and_execute appropriately
builtins/eval.def, builtins/fc.def, builtins/source.def
- set the new third argument to parse_and_execute appropriately
builtins/help.def
- changed a call to strnicmp to strncmp when trying to find what
to give help on; it seems more correct
6/27
----
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/mksysdefs
- define SYSDEF to be SunOS4 or SunOS5 depending on the output
of uname rather than looking for ld.so
6/29
----
machines.h
- minor change to the ardent titan machine description
- move the ardent and stardent descriptions before the
mips riscos description
print_cmd.c
- ardent machines also need the extern declaration for printf
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
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
6/30
----
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.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
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)
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
support/mksysdefs
- added a -i option to specify an alternate set of directories to
search for include files
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
machines.h
- SCOv4 has a `robust' opendir that checks that you're actually
opening a directory
7/11
----
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
portbash/libc.sh
- add a test for OPENDIR_NOT_ROBUST
support/getcppsyms.c
- output __svr4__ if we find __uxps__ (this makes the Fujitsu port of
SVR4 to the sparc build OK)
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
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)
7/13
----
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
7/14
----
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
general.h, variables.h
- moved declaration of `qsort_string_compare' from variables.h
to general.h
alias.c, lib/readline/funmap.c
- moved qsort auxiliary functions after their use and added
forward declarations to avoid warnings from ANSI C compilers
memalloc.h
- hpux_9 needs alloca declared as `extern void *' if __STDC__
is defined
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
machines.h
- new descriptions: Intel i860 running SVR4, Tahoe running 4.3 BSD
- changed descriptions: Mips/RiscOS, DG AViiON, unknown machine
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
7/18
----
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
support/mksysdefs
- added a -A flag to force creation of ansi-Makefile
machines.h
- new entry for Tandem machines running SVR3
7/19
----
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/doc/Makefile
- fixed up to create the readline and history manuals in dvi and
ps format
lib/readline/Makefile
- changes inspired by the standalone readline-2.0 distribution
7/20
----
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)
lib/readline/complete.c
- efficiency improvement for compare_strings
7/21
----
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
7/22
----
bashline.c
- fixed up command_word_completion_function so that filenames with
leading tildes are completed correctly
7/26
----
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
lib/readline/doc/rluser.texinfo
- added description of yank-last-arg
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
7/28
----
lib/readline/display.c
- fixes to the display code for single-line-display in the presence
of prompts containing invisible characters
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
7/31
----
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
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
lib/readline/rltty.c
- remove declaration and references to output_was_flushed
support/getcppsyms.c
- if __uxps__ is defined, define __uxps__ and __svr4__
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
test.c
- fixed an off-by-one error in test_stat when testing /dev/fd/n.
cpp-Makefile
- add -I$(incdir) to CPPFLAGS
- add `incdir = $(prefix)/include' assignment
8/11
----
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
lib/readline/vi_keymap.c
- new vi command-mode bindings to set the mark (`m') and to go to
a saved mark (``')
documentation/readline.3
- added vi-set-mark and vi-goto-mark to list of key bindings for
vi command mode
lib/readline/{readline.c,display.c}
- renamed term_xn to _rl_term_autowrap
lib/readline/display.c
- new function _rl_redisplay_after_sigwinch to encapsulate the
necessary redisplay code after a SIGWINCH is received
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[]
8/12
----
lib/readline/rltty.c
- don't try to use FLUSHO unless FLUSHO is defined
cpp-Makefile
- make sure to pass $(CC) to the make in the lib/malloc subdirectory
lib/readline/readline.c
- don't declare PC, UP, and BC as extern; it causes too many problems
8/13
----
machines.h
- add -DNO_SBRK_DECL to SYSDEP_CFLAGS for SVR4.2 on i386
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'
lib/readline/memalloc.h
- removed from the library; not needed since readline does not use
alloca
lib/readline/{history.c,isearch.c,search.c,rldefs.h}, lib/tilde/tilde.c
- no longer include memalloc.h
lib/readline/Makefile
- remove dependencies on memalloc.h
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
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
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
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
8/22
----
lib/readline/readline.c
- don't try to expand a null prompt string
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
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
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
variables.c
- more new convenience array functions: make_new_array_variable and
convert_var_to_array
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
builtins/setattr.def
- made set_or_show_attributes understand array variables and `-a'
builtins/set.def
- changes to make `unset name' work, where name is an array variable
- changes to make `unset name[xxx]' work
8/25
----
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
error.c
- make sure <sys/types.h> is included before <fcntl.h>
machines.h
- new entry for Bull DPX2
lib/tilde/tilde.c
- include <sys/types.h> before <pwd.h>
variables.c
- PS1 and PS2 are no longer non-unsettable
8/26
----
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
builtins/exit.def
- remove references to `bye'
8/28
----
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
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
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
builtins/echo.def
- ifdefs for ANSI-C for \a and \v rather than just expanding to
literal ASCII values
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)
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
9/8
---
input.h
- added a new `input type': st_stdin, for use when using readline,
since readline is not properly a string
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
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")
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
documentation/{bash.1,features.texi}
- documented new enable -f option to dynamically load builtins
9/16
----
test.c
- added `==' as a synonym for `='
9/18
----
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
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
documentation/bash.1, documentation/features.texi
- doeumented new set -B option
- removed -nobraceexpansion shell startup option
9/19
----
builtins/reserved.def
- made `help select' work
cpp-Makefile
- removed references to the nonexistant `load.def'
- removed conditionals based on GETOPTS_BUILTIN
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/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
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
endian.c
- renamed to support/endian.c
9/21
----
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
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
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
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)
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
documentation/bash.1
- documented the new options to `exec'
9/28
----
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
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'
cpp-Makefile
- add $(CPPFLAGS) to the compilation flags when making `mksignames'
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
general.c
- make xfree only try to call free on non-null strings
10/4
----
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
subst.c
- set startup_state to 2 in child of command substitution to try to
avoid some unneeded forks
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
----
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
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
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
----
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
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'
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
execute_cmd.c
- split the code that writes out here documents to files out into
a separate function
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
12/1
----
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'
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
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
----
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
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]
builtins/set.def
- changed `hashcmds' to `hashall'
documentation/{bash.1,features.texi}
- changed `hashcmds' to `hashall'
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]
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
----
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
builtins/bashgetopt.c
- added option modifiers `;' (argument is optional) and `#'
(argument is optional, but if present must be numeric)
builtins/hash.def
- converted to use builtin_getopt
- broke code out into a new function: add_hashed_command
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/getopts.def
- call function to restore sh_getopt state when parsing explicitly
supplied arguments rather than the positional parameters [in 1.14.4]
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
---
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
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
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
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]
lib/readline/readline.c
- call rl_expand_prompt unconditionally [in 1.14.4]
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]
lib/readline/doc/rltech.texinfo
- documented the callback code and functions
- documented rl_getc_function and rl_redisplay_function
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.h
- make rl_term_prep_function and rl_term_deprep_function available
to callers
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
builtins/exec.def
- changed to use word_list_to_argv
builtins/{getopts,test}.def
- changed to use make_builtin_argv
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
3/3
---
jobs.c
- renamed flush_child to sigchld to capture the functionality better
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
3/6
---
parse.y
- <>filename now dups filename to file descriptor 0 for both input
and output even when not in posix.2 mode
bashline.c
- add the globbing characters to the list of characters that need
to be quoted by filename completion
jobs.h
- new convenience macros:
RUNNING, STOPPED, DEADJOB - to test a job's state
IS_FOREGROUND, IS_NOTIFIED, IS_JOBCONTROL - flags
jobs.c, builtins/{kill,fg_bg}.def
- changed to use new jobs.h macros
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
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
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
parse.y, bashhist.c, builtins/bind.def, subst.c, sig.c
- include bashline.h
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
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
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
documentation/Makefile
- adopted the BSD convention of a suffix of `.0' for formatted
manual pages
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
sig.c
- don't call initialize_siglist if HAVE_SYS_SIGLIST is defined, no
longer use INITIALIZE_SIGLIST
machines.h, lib/malloc/malloc.c
- change NO_SBRK_DECL to SBRK_DECLARED
3/22
----
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
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
builtins/common.c
- include <signal.h> for NSIG
sig.h
- don't define SIGABRT as SIGIOT unless SIGIOT is defined
jobs.c
- check for ultrix instead of Ultrix
3/23
----
general.c, general.h
- new function check_dev_tty, which makes sure we can open
/dev/tty
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
jobs.c, nojobs.c
- use the general.h code to define the tty driver types
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]
3/28
----
[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
test.c
- set up a new `getmaxgroups' define, moving the code out of inline
- eliminate use of GETGROUPS_T
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
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
lib/readline/readline.c
- new variable Keymap rl_executing_keymap, which is set to the
keymap the last function was invoked out of
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
4/17
----
general.c
- removed xmalloc, xrealloc, xfree to xmalloc.c
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/malloc/gmalloc.c
- new file, GNU libc malloc code
Makefile.in
- new source file, xmalloc.c, new object file, xmalloc.o
general.h
- changed type of size argument to xmalloc, xrealloc to `size_t'
configure.in
- changes for new argument `--with-glibc-malloc' that includes
gmalloc.o in libmalloc.a
4/18
----
xmalloc.c
- if malloc or realloc return null, report in the error message
how many bytes have been allocated
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
[Bash-1.14.4 released to net]
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
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
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
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
----
builtins/fc.def
- fixed problem with `fc -l' that occurred when fewer than 16 lines
were in the history list [in 1.14.5]
5/1
---
Makefile.in, {builtins,documentation}/Makefile.in, lib/*/Makefile.in
- fixed up the various `clean' targets to agree with Gnu coding
standards
5/2
---
lib/readline/complete.c
- made insert_all_matches correctly quote each of the filenames
inserted into the line, if necessary
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
builtins/set.def
- changed set -o allenv to set -o keyword for ksh88 compatibility
documentation/{bash.1,features.texi}
- changed set -o allenv to set -o keyword
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/declare.def
- changed calls to set_or_show_attributes, and show_var_attributes
accordingly
5/3
---
Makefile.in
- LIBPATH -> LIBSUBDIR
5/4
---
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
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
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]
Makefile.in
- removed instances of doc-support/texindex
5/9
---
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
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
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
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)
6/2
---
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
6/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
6/7
---
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
6/8
---
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
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
---
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
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
builtins/fc.def
- if history_list() returns a null pointer, immediately return
[in 1.14.6]
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
8/1
---
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
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
configure.in
- look for the `gettext' library function
config.h.in
- define HAVE_GETTEXT if gettext(3) exists in a findable library
10/5
----
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
lib/termcap
- upgraded to GNU termcap version 1.3
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)
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
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
----
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
pathexp.c
- rewrote ignore_globbed_names to be more like _ignore_completion_names
lib/readline/doc/rltech.texinfo
- updated documentation for rl_filename_dequoting_function
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
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 `&'
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]
configure.in
- change to define WAITPID_BROKEN on SCO 3.2v5
12/6
----
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
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
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
builtins/common.c
- change to parse_and_execute to call push_stream with an argument
12/29
-----
subst.c
- set subshell_environment in command_substitute and process_substitute
for the child process
1/2
---
trap.c
- made decode_signal recognize signal names case insensitively
shell.c
- make the shell exit on a longjmp (DISCARD, ...) if
subshell_environment is non-zero
1/16
----
lib/readline/histexpand.c
- let the `!' in ${!xxx} pass through without error
shell.c
- new --help long option
- new function show_shell_usage() for use by --help
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
1/24
----
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
1/25
----
parse.y, general.c, subst.c, bashhist.c, alias.c, array.c, variables.c
- use RESIZE_MALLOCED_BUFFER where appropriate
1/26
----
support/config.{guess,sub}
- merged in latest changes from GNU master copies
1/30
----
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
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/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
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
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
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
2/14
----
doc/bash.{1,html}, doc/features.texi
- documented the `--verbose' startup option
lib/readline/complete.c
- fix to gen_completion_matches to fix a memory leak
- fix to rl_complete_internal to fix a memory leak
2/15
----
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
2/16
----
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]
2/23
----
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
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
----
parse.y
- changed the occurrences of `list' in the while and until command
productions to use `compound_list'
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 `~/'
3/12
----
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
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>
3/15
----
jobs.c
- fix to wait_for_background_pids to keep `wait' from hanging
3/19
----
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
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
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
----
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
3/29
----
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
4/1
---
lib/readline/funmap.c
- made `vi-fetch-history' a bindable command name
doc/readline.3
- many cleanups, updated the list of default bindings
4/4
---
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
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
4/8
---
parse.y
- another small change to localeexpand to handle backslash-escaped
double quotes in the double-quoted string
4/9
---
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
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
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]
4/18
----
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
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
----
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/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
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
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
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
bashhist.c
- new functions: last_history_entry (static), last_history_line
bashhist.h
- extern declarations for new functions in bashhist.c
error.c
- have programming_error() report the last command in the history
before aborting
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()
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.
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
----
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
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
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
----
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
memalloc.h
- made some small changes suggested by the autoconf documentation
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]
7/16
----
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
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
----
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
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
---
parse.y
- new function debug_parser(int) to toggle the value of yydebug
if YYDEBUG != 0
8/9
---
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
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
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
builtins/read.def
- fix for bug that caused core dump if line read had leading white
space and IFS was set to ''
[bash-2.0-release frozen]