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