13730 lines
450 KiB
Text
13730 lines
450 KiB
Text
4/9/2001
|
|
--------
|
|
[bash-2.05 released]
|
|
|
|
4/10
|
|
----
|
|
redir.c
|
|
- check return value of fclose() in write_here_document() for error
|
|
returns; don't just rely on fwrite() failing
|
|
|
|
support/bashbug.sh
|
|
- set TMPDIR to /tmp if it's null or unset
|
|
- use $TMPDIR in the TEMP tempfile name template
|
|
- fixed the call to `mktemp', if it exists, to make it more portable
|
|
|
|
jobs.c
|
|
- if WCONTINUED is not defined, define it to 0 and add a define for
|
|
WIFCONTINUED(wstatus) which expands to 0
|
|
- add WCONTINUED to the flags passed to waitpid(2) in waitchld()
|
|
- don't increment children_exited if waitpid's status is WIFCONTINUED,
|
|
since we don't want to call a SIGCHLD trap handler in this case
|
|
- in waitchld(), we set child->running to 1 if WIFCONTINUED(status)
|
|
is non-zero
|
|
- make sure pretty_print_job doesn't check for the core dump bit if
|
|
the process has been continued; it's only valid if the job is dead
|
|
- in set_job_status_and_cleanup, set the job to JRUNNING if job_state
|
|
is non-zero and the job was previously marked as JSTOPPED
|
|
|
|
configure.in
|
|
- add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS
|
|
|
|
lib/glob/glob.c
|
|
- if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1
|
|
|
|
jobs.c
|
|
- in kill_pid, we only need to block and unblock SIGCHLD if the
|
|
`group' argument is non-zero, since otherwise we just call `kill'
|
|
on the pid argument
|
|
|
|
version.c
|
|
- update copyright date to 2001
|
|
|
|
bashline.c
|
|
- prog_complete_return needs to take a `const char *' as its first
|
|
argument
|
|
- history_completion_generator needs to take a `const char *' as
|
|
its first argument, and `text' needs to be a `const char *'
|
|
|
|
4/11
|
|
----
|
|
redir.c
|
|
- fixed a weird typo in redir_special_open, case RF_DEVFD, added
|
|
call to all_digits before call to legal_number
|
|
- fixed do_redirection_internal to call legal_number instead of atol(3)
|
|
when translating r_duplicating_{in,out}put_word, so it handles
|
|
overflow better
|
|
- produce an error message in redirection_error for out-of-range
|
|
file descriptors
|
|
- change allocation strategy in redirection_error so we don't have to
|
|
malloc scratch memory if redirection_expand() fails
|
|
|
|
jobs.h
|
|
- added defines for `running' member of a struct process
|
|
|
|
general.c
|
|
- fix legal_number to return 0 when strtol(3) reports overflow or
|
|
underflow
|
|
|
|
parse.y
|
|
- changed read_token_word to call legal_number instead of atoi(3)
|
|
|
|
input.c
|
|
- return -1/EBADF from close_buffered_fd if fd is < 0
|
|
|
|
command.h
|
|
- fixed bogus comment about IS_DESCRIPTOR in description of the
|
|
REDIRECTEE struct
|
|
|
|
print_cmd.c
|
|
- change cprintf's 'd' modifier code to display negative numbers as
|
|
an out-of-range value. We can do this only because the only use
|
|
of %d is to output file descriptor numbers in redirections
|
|
|
|
support/mksignames.c
|
|
- need to include config.h to get a possible value for
|
|
UNUSABLE_RT_SIGNALS
|
|
|
|
4/16
|
|
----
|
|
lib/readline/doc/rluser.texinfo
|
|
- corrected a small error in one description of M-DEL
|
|
|
|
4/17
|
|
----
|
|
stringlib.c
|
|
- need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER
|
|
in strcreplace()
|
|
|
|
support/bashversion.c
|
|
- new file, prints bash version information
|
|
|
|
Makefile.in
|
|
- rules for building bashversion and linking it to version.o
|
|
|
|
4/24
|
|
----
|
|
conftypes.h
|
|
- new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from
|
|
variables.h
|
|
|
|
variables.h, version.c
|
|
- include conftypes.h
|
|
|
|
patchlevel.h
|
|
- new file, contains define for PATCHLEVEL. Doing away with the old
|
|
scheme of having the information in configure.in
|
|
|
|
version.c
|
|
- include patchlevel.h
|
|
|
|
Makefile.in
|
|
- run bashversion -p to find patch level rather than have configure
|
|
substitute in a value
|
|
- pass -S ${top_srcdir} to support/mkversion.sh
|
|
|
|
support/mkversion.sh
|
|
- don't put PATCHLEVEL define into version.h, but accept and ignore
|
|
a -p option
|
|
- take a new -S srcdir option
|
|
- find the patch level by parsing it out of patchlevel.h
|
|
|
|
configure.in
|
|
- hard-code BASHVERS assignment instead of reading it from a file
|
|
- remove BASHPATCH; don't substitute it
|
|
|
|
_distribution,_patchlevel
|
|
- removed
|
|
|
|
4/26
|
|
----
|
|
shell.c
|
|
- call init_noninteractive() in open_shell_script if forced_interactive
|
|
is non-zero (the shell was started with -i) and fd_is_tty is 0
|
|
(the script file is a real file, not something like /dev/stdin),
|
|
since it wasn't done earlier
|
|
|
|
builtins/printf.def
|
|
- change for POSIX.2 compliance when conversion errors are encountered
|
|
when processing %d, %u, and floating point conversion operators
|
|
(print a warning message, return the value accumulated at the time
|
|
of the error -- which is always 0 -- and exit with a non-zero status)
|
|
|
|
command.h
|
|
- added CMD_COMMAND_BUILTIN for use by the `command' builtin and the
|
|
code in execute_cmd.c
|
|
|
|
builtins/command.def
|
|
- add CMD_COMMAND_BUILTIN to the created command's flags
|
|
|
|
5/1
|
|
---
|
|
configure.in
|
|
- add call to AC_C_CONST to test `const' compiler behavior
|
|
- add call to AC_C_INLINE to test `inline' compiler behavior
|
|
- add call to AC_C_STRINGIZE to test cpp #x stringizing operator
|
|
|
|
config.h.in
|
|
- add `#undef const' for configure to substitute
|
|
- add `#undef inline' for configure to substitute
|
|
- add `#undef HAVE_STRINGIZE' for configure to substitute
|
|
|
|
include/stdc.h
|
|
- remove code that defines or undefines `const' and `inline'
|
|
- change the __STRING macro to be defined depending on the value
|
|
of HAVE_STRINGIZE
|
|
|
|
lib/malloc/malloc.c
|
|
- change the __STRING macro to be defined depending on the value
|
|
of HAVE_STRINGIZE
|
|
|
|
lib/readline/{readline,rlprivate}.h
|
|
- moved rl_get_termcap to readline.h, making it a public function
|
|
|
|
lib/readline/readline.h
|
|
- new #define, RL_READLINE_VERSION, hex-encoded library version
|
|
number, currently set to 0x0402
|
|
- new public int variable, rl_readline_version
|
|
|
|
lib/readline/readline.c
|
|
- #define RL_READLINE_VERSION if it is not already defined (which it
|
|
should be in readline.h)
|
|
- initialize rl_readline_version to RL_READLINE_VERSION
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- documented rl_get_termcap
|
|
- documented rl_readline_version
|
|
|
|
jobs.c
|
|
- job_exit_status should return an int, not a WAIT (undetected
|
|
before because on most POSIX-like systems a WAIT is really an int)
|
|
|
|
builtins/evalfile.c
|
|
- added FEVAL_REGFILE (file must be a regular file) to accepted
|
|
_evalfile flags
|
|
- fc_execute_file() adds FEVAL_REGFILE to _evalfile flags. This
|
|
means that startup files and files read with `.' no longer need
|
|
to be regular files
|
|
|
|
5/2
|
|
---
|
|
|
|
lib/termcap/Makefile.in
|
|
- fix target for installed termcap library (normally unused)
|
|
|
|
lib/tilde/Makefile.in
|
|
- fix install target to install in $(libdir) (normally unused)
|
|
|
|
Makefile.in
|
|
- don't make $(man3dir) since there's nothing installed there
|
|
|
|
Makefile.in,doc/Makefile.in
|
|
- change `man1ext' to `.1', `man3ext' to `.3'
|
|
- change appropriate install targets to use new values of man[13]ext
|
|
- use `test ...' instead of `[...]'
|
|
- add support for DESTDIR root installation prefix, for package
|
|
building (installdirs, install, install-strip, uninstall targets)
|
|
|
|
builtins/common.c
|
|
- new function int get_exitstat(WORD_LIST *list) returns an eight-bit
|
|
exit status value for use in return, exit, logout builtins
|
|
|
|
builtins/common.h
|
|
- extern declaration for get_exitstat()
|
|
|
|
builtins/{exit,return}.def
|
|
- call get_exitstat where appropriate
|
|
|
|
builtins/printf.def
|
|
- add support for "'" flag character as posix 1003.2-200x d6 says
|
|
- fix core dump when user-supplied field width or precision is 0
|
|
- fix to printstr() to handle zero-length precision with `%b' format
|
|
specifier (printf '%.0b-%.0s\n' foo bar)
|
|
- fix to printstr() to treat a negative field width as a positive
|
|
field width with left-justification
|
|
- fix to mklong to avoid static buffers, which can always be overrun
|
|
by someone sufficiently motivated
|
|
|
|
bashline.c
|
|
- change var in add_host_name to type `size_t' for passing to xrealloc
|
|
|
|
5/3
|
|
---
|
|
execute_cmd.c
|
|
- change restore_signal_mask to accept a sigset_t *, since a sigset_t
|
|
may not fit into a pointer, change call
|
|
|
|
unwind_prot.c
|
|
- use a union UWP in restore_variable when restoring a variable whose
|
|
size is the same as sizeof(int), the reverse of the method used to
|
|
store it in unwind_protect_int
|
|
|
|
builtins/printf.def
|
|
- use a #define LENMODS containing the length modifiers instead of
|
|
testing against each possible modifier character, save any mod
|
|
character found
|
|
- add support for ISO C99 length specifiers `j', `t', and `z'
|
|
- if `L' modifier is supplied with a floating point conversion char,
|
|
pass a `long double' to printf if HAVE_LONG_DOUBLE is defined
|
|
|
|
configure.in,config.h.in
|
|
- call AC_C_LONG_DOUBLE to check for `long double'; define
|
|
HAVE_LONG_DOUBLE if supported
|
|
|
|
bashline.c
|
|
- fix an inadvertantly-unclosed comment in attempt_shell_completion
|
|
- make set_saved_history return a value
|
|
- make dynamic_complete_history return a useful value
|
|
|
|
{make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test,
|
|
pcomplete}.c
|
|
- removed some declared-but-unused variables
|
|
|
|
builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def
|
|
- removed some declared-but-unused variables
|
|
|
|
lib/sh/{zread,netopen}.c
|
|
- removed some declared-but-unused variables
|
|
|
|
execute_cmd.c
|
|
- in execute_arith_command, use a long variable to hold the result
|
|
of evalexp(), since that's what it returns
|
|
|
|
builtins/evalstring.c
|
|
- make cat_file return -1 on a read or write error
|
|
|
|
lib/sh/stringlib.c
|
|
- make merge_stringlists() return the right value
|
|
|
|
5/7
|
|
---
|
|
pcomplete.c
|
|
- remove typo that caused empty declaration (;;)
|
|
|
|
parse.y
|
|
- fix yyerror() to accept a single string argument; fix callers
|
|
|
|
trap.c
|
|
- cast pointer to long instead of int when printing message with
|
|
internal_warning() in run_pending_traps()
|
|
|
|
subst.c
|
|
- fix process_substitute to handle stdin being closed
|
|
|
|
test.c
|
|
- change `while' to `if' in and() and or(), since the loop isn't
|
|
actually performed -- there's an unconditional `return' in the
|
|
loop body
|
|
- check for integer overflow of arguments to `-t'
|
|
|
|
lib/sh/netopen.c
|
|
- change _getserv() to reject negative port/service numbers
|
|
|
|
expr.c
|
|
- fix strlong() to not convert the base specification from long to
|
|
int before checking for overflow, since truncation on machines
|
|
where sizeof(int) != sizeof(long) may mask errors
|
|
|
|
builtins/{jobs,kill,wait}.def
|
|
- use legal_number instead of atoi when converting strings to pid_t;
|
|
check for numeric overflow
|
|
|
|
input.c
|
|
- fix for cygwin in b_fill_buffer -- off-by-one error when checking
|
|
buffer for \r\n termination
|
|
|
|
general.h
|
|
- new #define INT_STRLEN_BOUND(t), computes max length of string
|
|
representing integer value of type T, possibly including a sign
|
|
character
|
|
- include <limits.h> if it's present
|
|
|
|
{execute_cmd,findcmd,test}.c
|
|
- don't include <limits.h>, since general.h does it now
|
|
|
|
{execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c
|
|
- use INT_STRLEN_BOUND instead of static array sizes when converting
|
|
various strings to integer values
|
|
|
|
shell.h
|
|
- struct fd_bitmap now uses an `int' size, since it's bounded by
|
|
the number of file descriptors, which must fit into an `int'
|
|
|
|
execute_cmd.c
|
|
- FD_BITMAP_DEFAULT_SIZE is now 32, not 32L
|
|
- new_fd_bitmap takes an `int' size parameter, not a `long'
|
|
|
|
execute_cmd.h
|
|
- change prototype for new_fd_bitmap()
|
|
|
|
test.c
|
|
- fix test_stat to check for overflow when parsing the integer file
|
|
descriptor number; return ENOENT instead of EBADF for files that
|
|
are not open
|
|
|
|
hashlib.c
|
|
- don't discard the upper 32 bits of the random value, if present
|
|
|
|
lib/readline/shell.c
|
|
- use the same INT_STRLEN_BOUND mechanism to decide how much space to
|
|
allocated in sh_set_lines_and_columns
|
|
|
|
5/8
|
|
---
|
|
aclocal.m4
|
|
- add check for libtinfo (termcap-specific portion of ncurses-5.2) to
|
|
BASH_CHECK_LIB_TERMCAP
|
|
- new macro, RL_LIB_READLINE_VERSION, checks version of installed
|
|
readline library and (optionally) writes version #defines to
|
|
config.h. Bash doesn't use the version defines
|
|
|
|
configure.in
|
|
- call RL_LIB_READLINE_VERSION instead of support/rlvers.sh
|
|
|
|
execute_cmd.c
|
|
- fix execute_shell_script and the WHITECHAR and STRINGCHAR macros
|
|
to check array bounds before indexing into the sample string
|
|
|
|
unwind_prot.[ch]
|
|
- import new versions submitted by Paul Eggert <eggert@twinsun.com>
|
|
with a couple of changes for backwards compatibility, so the rest
|
|
of the source doesn't need to be changed yet
|
|
|
|
jobs.c
|
|
- use unwind_protect_var on last_made_pid in run_sigchld_trap
|
|
|
|
builtins/bind.def
|
|
- use unwind_protect_var on rl_outstream
|
|
|
|
general.c
|
|
- rework print_rlimtype to use INT_STRLEN_BOUND and handle the
|
|
most negative number correctly
|
|
|
|
expr.c
|
|
- `tokval' should have been a `long', since all arithmetic is done
|
|
as longs
|
|
|
|
builtins/history.def
|
|
- consolidate tests for valid history position in one block to
|
|
avoid duplicate code and strings
|
|
|
|
builtins/ulimit.def
|
|
- fix check for overflow when setting limit to work when int is 32
|
|
bits and RLIMTYPE is 64
|
|
|
|
lib/sh/tmpfile.c
|
|
- don't truncate the result of time(3) to int; just use time_t,
|
|
since it's being assigned to an `unsigned long'
|
|
|
|
mailcheck.c
|
|
- use legal_number instead of atoi in time_to_check_mail() to catch
|
|
more numeric errors; consolidate error checking in one block
|
|
- last_time_mail_checked should be a time_t
|
|
|
|
5/9
|
|
---
|
|
builtins/set.def
|
|
- recognize `set [-+]o nolog' if HISTORY is defined
|
|
|
|
bashline.c
|
|
- new variable `dont_save_function_defs', set by `set -o nolog';
|
|
currently ignored
|
|
|
|
command.h
|
|
- the `dest' member of a REDIRECTEE is now an `int'
|
|
|
|
parse.y,redir.c
|
|
- changed uses of `redir.test' (where redir is a REDIRECTEE) since
|
|
it's now an int
|
|
|
|
lib/readline/rlstdc.h
|
|
- don't mess around with `const', rely on configure to supply a
|
|
proper definition if the compiler doesn't support it
|
|
|
|
lib/tilde/tilde.h
|
|
- include <config.h> if HAVE_CONFIG_H is defined
|
|
- don't mess around with `const', rely on configure
|
|
|
|
builtins/shopt.def
|
|
- new read-only `shopt' option, login_shell, non-zero if shell is a
|
|
login shell (as decided by shell.c)
|
|
- new function set_login_shell(), sets shopt private value of
|
|
login_shell
|
|
|
|
builtins/common.h
|
|
- new extern declaration for set_login_shell
|
|
|
|
shell.c
|
|
- call set_login_shell after setting value of login_shell (in
|
|
main() and set_shell_name())
|
|
|
|
parse.y
|
|
- added new `\A' prompt string escape sequence: time in 24-hour
|
|
HH:MM format
|
|
|
|
configure.in, config.h.in
|
|
- check for <grp.h>, define HAVE_GRP_H if found
|
|
|
|
builtins/complete.def
|
|
- add new `-A group/-g' option to complete group names
|
|
|
|
pcomplete.h
|
|
- new define for CA_GROUP, used with group name completion
|
|
|
|
pcomplete.c
|
|
- add code to support CA_GROUP group name completion
|
|
|
|
bashline.c
|
|
- new function, bash_groupname_completion_function(), supports
|
|
programmable completion of group names
|
|
|
|
bashline.h
|
|
- extern declaration for bash_groupname_completion_function
|
|
|
|
lib/readline/bind.c
|
|
- new inputrc variable, `match-hidden-files', controls completion
|
|
matching files beginning with a `.' (on Unix)
|
|
|
|
lib/readline/complete.c
|
|
- new variable, _rl_match_hidden_files, mirrors `match-hidden-files'
|
|
inputrc variable
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declaration for _rl_match_hidden_files
|
|
|
|
builtins/hash.def
|
|
- new `-t' option to list hash values for each filename argument
|
|
|
|
builtins/read.def
|
|
- alarm(3) takes an `unsigned int' argument, not int
|
|
- check for arithmetic overflow with -t and -n options
|
|
|
|
input.c
|
|
- check for read error before doing \r\n translation on cygwin in
|
|
b_fill_buffer
|
|
- reset bp->b_used to 0 instead of leaving it at -1 on read error
|
|
in b_fill_buffer
|
|
|
|
builtins/shopt.def
|
|
- new functions, shopt_setopt(name, mode) and
|
|
shopt_listopt(name, mode) to give the rest of the shell an easy
|
|
interface
|
|
|
|
builtins/common.h
|
|
- extern declarations for shopt_setopt and shopt_listopt
|
|
|
|
shell.c
|
|
- new invocation options -O and +O, to list or set/unset shopt
|
|
options like +o/-o sets and unsets `set -o' options
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document `set -o nolog'
|
|
- document `login_shell' shopt option
|
|
- document new `\A' prompt string escape sequence
|
|
- document new `-t' option to `hash'
|
|
- document new `[+-]O' invocation option
|
|
|
|
doc/bashref.texi
|
|
- add text to `Invoking Bash' section defining a login shell; text
|
|
taken from man page
|
|
|
|
doc/bash.1, lib/readline/doc/rluser.texinfo
|
|
- documented new complete/compgen `-A group/-g' option
|
|
|
|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
|
|
- documented new `match-hidden-files' inputrc variable
|
|
|
|
5/10
|
|
----
|
|
configure.in
|
|
- fix AC_CHECK_PROG(ar, ...)
|
|
- add AC_CHECK_TYPE for ssize_t
|
|
|
|
config.h.in
|
|
- new #undef for ssize_t
|
|
|
|
lib/sh/zread.c
|
|
- int -> ssize_t fixes to mirror modern declarations of read and write
|
|
- the `off' variable in zsyncfd should be an off_t since it computes
|
|
a file offset
|
|
- the local buffer `lbuf' is now char, since it's not nice to pass
|
|
unsigned char * to read(2), and the values from it are assigned to
|
|
a char anyway
|
|
- lind and lused are now size_t, since they index into a buffer
|
|
- set lused to 0 on read error
|
|
|
|
lib/sh/zwrite.c
|
|
- change second argument to type `char *', since ISO C says you have
|
|
to pass a `char *' to `write'
|
|
|
|
externs.h
|
|
- fix extern declarations of zread, zread1, zreadc, and zwrite
|
|
- prototype extern declaration of qsort_string_compare
|
|
- add extern declaration for history_delimiting_chars() from parse.y
|
|
|
|
input.h
|
|
- b_used and b_inputp members ofr struct BSTREAM are now size_t
|
|
|
|
builtins/evalstring.c
|
|
- the number of chars read with zread in cat_file should be assigned
|
|
to a variable of type ssize_t
|
|
|
|
input.c
|
|
- the number of chars read with zread in b_fill_buffer should be
|
|
assigned to a variable of type ssize_t
|
|
- `localbuf' is now type char[], since POSIX says you shouldn't pass
|
|
unsigned char * to read(2)
|
|
- in getc_with_restart(), use a variable of type unsigned char to
|
|
get a value from the local buffer and return it
|
|
- in ungetc_with_restart, explicitly return the character arg passed
|
|
to avoid relying on localbuf being unsigned char
|
|
|
|
subst.c
|
|
- the number of chars read with zread in read_comsub should be
|
|
assigned to a variable of type ssize_t
|
|
|
|
mksyntax.c
|
|
- instead of casting to unsigned char * in addcstr, use a variable
|
|
of type unsigned char and let the compiler do the work
|
|
|
|
parse.y
|
|
- instead of casting to unsigned char * in yy_readline_get, use a
|
|
variable of type unsigned char and let the compiler do the work
|
|
- ditto for yy_string_get and shell_getc (cast to unsigned char)
|
|
|
|
subst.c
|
|
- instead of casting to unsigned char when assigning to ifscmap in
|
|
expand_word_internal, use a variable of type unsigned char and
|
|
let the compiler do the work
|
|
|
|
lib/sh/strtrans.c
|
|
- instead of casting to unsigned char in ansic_quote, use a variable
|
|
of type unsigned char and let the compiler do the work
|
|
|
|
builtins/evalstring.c
|
|
- remove extern declarations for zwrite and run_trap_cleanup; they're
|
|
in externs.h
|
|
- prototype cat_file forward declaration
|
|
|
|
Makefile.in
|
|
- remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES
|
|
|
|
aclocal.m4
|
|
- change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR,
|
|
and RL_INCLUDEDIR to what it used to test the installed readline
|
|
library version for use by the caller
|
|
- change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if
|
|
the caller has already assigned it a value
|
|
- rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir,
|
|
_rl_includedir -> ac_cv_rl_includedir
|
|
|
|
configure.in
|
|
- change testing of whether to use the value of
|
|
$opt_with_installed_readline to be != no, to allow the user to
|
|
specify a prefix where the installed readline library may be found
|
|
- if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix
|
|
to PREFIX before calling RL_LIB_READLINE_VERSION
|
|
- if --with-installed-readline[=PREFIX] is supplied, don't set
|
|
RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care
|
|
of it, set RL_INCLUDE=-I${RL_INCLUDEDIR}
|
|
- if --with-installed-readline[=PREFIX] is supplied, and we're
|
|
linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR
|
|
so we use the same version of the installed readline and history
|
|
libraries
|
|
|
|
Makefile.in, builtins/Makefile.in
|
|
- have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable
|
|
|
|
doc/bashref.texi
|
|
- updated description of --with-installed-readline configure option
|
|
|
|
general.c
|
|
- moved QSFUNC typedef here from builtins/common.c
|
|
|
|
{alias,bashline,variables,lib/sh/stringvec}.c
|
|
- cast fourth argument to qsort to (QSFUNC *)
|
|
|
|
alias.c
|
|
- prototype forward declaration of qsort_alias_compare
|
|
|
|
bashhist.c
|
|
- include <glob/glob.h> for extern declaration of glob_pattern_p
|
|
- remove extern declaration of history_delimiting_chars; it's now
|
|
in externs.h
|
|
- prototype forward declarations of histignore_item_func,
|
|
maybe_add_history, and bash_add_history
|
|
|
|
bracecomp.c
|
|
- remove extern declaration for sh_backslash_quote; it's in externs.h
|
|
|
|
braces.c
|
|
- remove extern declaration for extract_command_subst; it's in subst.h
|
|
- prototype forward declarations for expand_amble, array_concat, and
|
|
brace_gobbler
|
|
|
|
error.c
|
|
- prototype extern declaration of give_terminal_to, fix bad call
|
|
|
|
{execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir,
|
|
shell}.c
|
|
- prototype all static forward function declarations
|
|
|
|
pcomplete.c
|
|
- changed some function parameters to `const char *' to avoid discarding
|
|
const qualifier
|
|
|
|
make_cmd.c
|
|
- make_bare_word, make_word_flags, and make_word now take a
|
|
`const char *' string argument
|
|
|
|
make_cmd.h
|
|
- changed extern declarations for make_bare_word and make_word
|
|
|
|
print_cmd.c
|
|
- cprintf now takes a `const char *' as its first argument, like
|
|
xprintf and printf
|
|
- the conditional define for xprintf should have been HAVE_VPRINTF,
|
|
not HAVE_VFPRINTF
|
|
|
|
shell.c
|
|
- in isnetconn(), the return value of sizeof() is size_t
|
|
|
|
aclocal.m4
|
|
- add inclusion of stddef.h if STDC_HEADERS is defined to 1 in
|
|
BASH_CHECK_TYPE
|
|
|
|
configure.in
|
|
- add a call to BASH_CHECK_TYPE for socklen_t (type of third argument
|
|
to getpeername(2))
|
|
|
|
5/11
|
|
----
|
|
lib/readline/bind.c
|
|
- make `useq' a char array to pass to rl_macro_bind in
|
|
rl_parse_and_bind
|
|
|
|
lib/readline/{{bind,isearch}.c,rlprivate.h}
|
|
- _rl_isearch_terminators is now a char *, not unsigned char *
|
|
|
|
{subst,variables,lib/sh/tmpfile}.c
|
|
- dollar_dollar_pid is now a `pid_t' instead of `int'
|
|
|
|
variables.c
|
|
- sbrand() now takes an `unsigned long' to set the seed value
|
|
- changed last_random_value to type int, since it's always between
|
|
0 and 32767
|
|
- use strtoul to convert the value in assign_random instead of atoi
|
|
- take out casts in any arguments to sbrand()
|
|
- take out cast to int in call to inttostr in set_ppid()
|
|
|
|
subst.c
|
|
- don't cast last_asynchronous_pid when passing to itos()
|
|
|
|
{sig,subst}.c
|
|
- prototype all static forward function declarations
|
|
|
|
5/14
|
|
----
|
|
{test,trap,variables}.c
|
|
- prototype all static forward function declarations
|
|
|
|
variables.c
|
|
- free_variable_hash_data() now takes a PTR_T, a `generic pointer'
|
|
|
|
builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help,
|
|
history,jobs,pushd,read,set,trap,umask,
|
|
- prototype all static forward function declarations
|
|
|
|
builtins/read.def
|
|
- reset_eol_delim now takes a `char *' arg, since that's what the
|
|
unwind_protect functions pass it, and it ignores its arguments
|
|
anyway
|
|
|
|
lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c
|
|
- prototype all static forward function declarations
|
|
|
|
lib/tilde/tilde.c
|
|
- prototype all static forward function declarations
|
|
- tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and
|
|
glue_prefix_and_suffix now take `const char *' arguments where
|
|
appropriate
|
|
|
|
configure.in,config.h.in
|
|
- check for vsnprintf, define HAVE_VSNPRINTF if found
|
|
|
|
lib/readline/display.c
|
|
- use vsnprintf() in rl_message if it's available; if we don't, at
|
|
least set the last character in msg_buf to 0 to avoid overrun --
|
|
we really can't do anything about overflow at this point. if it's
|
|
available, this fixes buffer overflow problems in rl_message
|
|
|
|
5/15
|
|
----
|
|
lib/readline/histexpand.c
|
|
- in get_history_word_specifier, allow any character to terminate
|
|
a `:first-' modifier, not just `:' and null. This is what csh
|
|
appears to do. This allows things like `!:0- xyzzy' to replace the
|
|
last argument with xyzzy
|
|
|
|
5/18
|
|
----
|
|
configure.in, config.h.in
|
|
- check for <stdint.h>, define HAVE_STDINT_H if found
|
|
- check for intmax_t in <stdint.h>, define intmax_t as long if not
|
|
found
|
|
|
|
5/21
|
|
----
|
|
builtins/kill.def
|
|
- change to use strerror() for error message when kill(2) fails
|
|
|
|
aclocal.m4
|
|
- new macro, BASH_C_LONG_LONG, check for `long long'
|
|
|
|
configure.in, config.h.in
|
|
- call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found
|
|
|
|
lib/sh/snprintf.c
|
|
- new file, with implementations of snprintf, vsnprintf, asprintf,
|
|
and vasprintf, derived from inetutils version
|
|
|
|
Makefile.in, lib/sh/Makefile.in
|
|
- add snprintf.c/snprintf.o
|
|
|
|
configure.in, config.h.in
|
|
- add checks for snprintf, asprintf, vasprintf, with appropriate
|
|
cpp defines
|
|
|
|
lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c
|
|
- xmalloc and xrealloc now take `size_t' arguments, like their bash
|
|
counterparts
|
|
|
|
externs.h,lib/sh/itos.c
|
|
- inttostr and itos now take `long' arguments
|
|
- inttostr takes a `size_t' argument for the buffer size
|
|
|
|
{expr,lib/malloc/malloc,variables,general}.c
|
|
- fixed calls to itos() by removing casts, etc.
|
|
|
|
subst.[ch]
|
|
- get_dollar_var_value now takes a long, not an int
|
|
- sub_append_number now takes a long, not an int
|
|
|
|
subst.c
|
|
- in parameter_brace_expand_word, use a long and legal_number to
|
|
translate ${N}, to avoid overflow
|
|
- in parameter_brace_expand_length, use a long and legal_number to
|
|
translate ${#N}, to avoid overflow
|
|
- in do_array_element_assignment, array_expand_index,
|
|
array_value_internal, use arrayind_t instead of int
|
|
- let verify_substring_values take long * arguments for the return
|
|
value of evalexp()
|
|
- pass long * arguments to verify_substring_values in
|
|
parameter_brace_substring
|
|
- parameter_brace_expand_length now returns `long'
|
|
- parameter_brace_expand now uses a long variable for the return
|
|
value of parameter_brace_expand_length
|
|
- param_expand now uses a long variable for the return value from
|
|
evalexp
|
|
- array_length reference now returns an `arrayind_t', since it can
|
|
return the num_elements member of an array, which is of type
|
|
arrayind_t
|
|
|
|
subst.h
|
|
- array_expand_index now returns an `arrayind_t'
|
|
|
|
array.[ch]
|
|
- array_subrange now takes arrayind_t arguments, not `int'
|
|
- dup_array_subrange now uses arrayind_t local variable to do
|
|
array indexing
|
|
- use long to print array indices in print_element
|
|
|
|
variables.c
|
|
- null_array_assign, assign_dirstack, bind_array_variable
|
|
now take arrayind_t arguments as array indices
|
|
- assign_array_var_from_word_list, assign_array_var_from_string,
|
|
unbind_array_element now use arrayind_t local variables for
|
|
array indexing
|
|
|
|
variables.h
|
|
- change extern declaration of bind_array_variable
|
|
|
|
builtins/common.[ch]
|
|
- get_numeric_arg now returns a `long', since it usually returns
|
|
the value of legal_number()
|
|
|
|
builtins/{shift,break}.def
|
|
- use long variables for the return value of get_numeric_arg
|
|
|
|
builtins/history.def
|
|
- convert string argument to int only if it's in range
|
|
|
|
builtins/pushd.def
|
|
- set_dirstack_element and get_dirstack_element now take `long'
|
|
index arguments
|
|
- get_dirstack_index now takes a `long' index argument, since it's
|
|
passed the converted value from legal_number
|
|
|
|
lib/sh/timeval.c
|
|
- in print_timeval, don't assume that the number of minutes fits into
|
|
an int, since it's just seconds/60.
|
|
|
|
lib/sh/clock.c
|
|
- ditto for print_clock_t
|
|
|
|
5/22
|
|
----
|
|
shell.c
|
|
- since the -O option settings may possibly be overridden by the
|
|
normal shell initialization or posix initialization, save the
|
|
invocation options on an alist (with add_shopt_to_alist) and
|
|
process them after basic initialization (with run_shopt_alist)
|
|
|
|
5/23
|
|
----
|
|
trap.h
|
|
- new define, BASH_NSIG, all system signals plus special bash traps
|
|
|
|
trap.c, builtins/trap.def
|
|
- use BASH_NSIG for array bounds and loops where appropriate
|
|
|
|
trap.c
|
|
- change decode_signal to disallow numeric signal numbers above
|
|
NSIG -- this means you can only reference special traps like
|
|
DEBUG by name
|
|
- new SPECIAL_TRAP(s) macro to test whether s is one of the special
|
|
bash traps (currently DEBUG and EXIT)
|
|
- change reset_or_restore_signal_handlers so command substitution
|
|
doesn't inherit the debug trap (like ksh93), and child processes
|
|
don't have to rely on initialize_traps being run to get rid of
|
|
any debug trap
|
|
|
|
support/mksignames.c
|
|
- add extra "ERR" signal name, value NSIG+1, allocate space for it
|
|
and write it out in signal_names[]
|
|
|
|
trap.h
|
|
- new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2
|
|
- extern declarations for set_error_trap, run_error_trap
|
|
- new define: TRAP_STRING(s), expands to trap_list[s] if signal S
|
|
is trapped and not ignored, NULL otherwise
|
|
|
|
trap.c
|
|
- add ERROR_TRAP to SPECIAL_TRAPS define
|
|
- initialize ERROR_TRAP stuff in initialize_traps
|
|
- new function: set_error_trap(command), sets the ERR trap string
|
|
- new function: run_error_trap(command), runs the ERR trap string
|
|
- set trap string for ERROR_TRAP to NULL in free_trap_strings
|
|
- change reset_or_restore_signal_handlers so child processes don't
|
|
inherit the ERR trap
|
|
- add case to call run_error_trap in maybe_call_trap_handler
|
|
|
|
execute_cmd.c
|
|
- in execute_command_internal, keep track of ERR trap and call it if
|
|
necessary
|
|
- use TRAP_STRING to get the value of debug and error traps
|
|
- in execute_function, arrange things so the ERR trap is not inherited
|
|
by shell functions, and is saved and restored like the DEBUG trap
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new ERR trap
|
|
|
|
tests/{trap.{tests,right},trap2.sub,trap2a.sub}
|
|
- added ERR trap tests
|
|
|
|
subst.c
|
|
- on machines without /dev/fd, change the named pipe fifo list to a
|
|
list of structs containing pathname and proc information
|
|
- change unlink_fifo_list to kill the proc in the fifo list with
|
|
signal 0 and not remove the fifo if the proc is still alive. This
|
|
should fix the problem on those backward systems without /dev/fd
|
|
where fifos were removed when a job using process substitution was
|
|
suspended
|
|
|
|
5/24
|
|
----
|
|
examples/loadables/getconf.h
|
|
- new file, with basic defines needed to make getconf work minimally
|
|
on POSIX systems without the necessary definitions
|
|
|
|
examples/loadables/getconf.c
|
|
- replacement functions for confstr, sysconf, pathconf for systems
|
|
that lack them, providing a minimal posix interface
|
|
- heavily augmented getconf, now supports all POSIX.1-200x,
|
|
POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables
|
|
|
|
5/29
|
|
----
|
|
builtins/setattr.def
|
|
- make `readonly', `export', and `declare' print `invisible' variables
|
|
as just a command and variable name, without a value, when listing
|
|
all variables (as POSIX.2-200x d6 requires)
|
|
|
|
5/30
|
|
----
|
|
|
|
configure.in
|
|
- upgraded to autoconf-2.50 on main development machine, so require
|
|
autoconf-2.50 in preparation for using some if its new features
|
|
- call AC_C_PROTOTYPES
|
|
- remove call to AC_EXEEXT, which now does the wrong thing
|
|
- changed AC_INIT to new flavor
|
|
- added call to AC_CONFIG_SRCDIR
|
|
- AC_CONFIG_HEADER -> AC_CONFIG_HEADERS
|
|
- AC_RETSIGTYPE -> AC_TYPE_SIGNAL
|
|
|
|
configure.in, aclocal.m4, config.h.in
|
|
- removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE
|
|
standard support, with new macros _FILE_OFFSET_BITS and
|
|
_LARGE_FILES
|
|
- removed definition of BASH_LARGE_FILE_SUPPORT
|
|
|
|
doc/bashref.texi
|
|
- document new `--enable-largefile' configure option
|
|
|
|
lib/readline/readline.c
|
|
- change rl_set_prompt to call rl_expand_prompt unconditionally, so
|
|
local_prompt and local_prompt_prefix get set correctly
|
|
|
|
6/6
|
|
---
|
|
lib/readline/complete.c
|
|
- don't append `/' or ` ' to a match when completing a symlink that
|
|
resolves to a directory, unless the match doesn't add anything
|
|
to the word. This means that a tab will complete the word up to
|
|
the full name, but not add anything, and a subsequent tab will add
|
|
a slash. Change to append_to_match; callers changed
|
|
|
|
hashlib.c
|
|
- new function, hash_table_nentries (table), returns the number of
|
|
items in TABLE
|
|
|
|
hashlib.h
|
|
- extern declaration for hash_table_nentries
|
|
|
|
configure.in
|
|
- configure without bash malloc on openbsd; they claim it needs
|
|
eight-bit alignment (which the bash malloc provides, but...)
|
|
|
|
7/2
|
|
---
|
|
stringlib.c
|
|
- only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement
|
|
string length is > 0, avoid possible hangs if replacement is null
|
|
|
|
subst.c
|
|
- don't include input.h; no longer needed
|
|
|
|
configure.in
|
|
- remove calls to AC_SYS_RESTARTABLE_SYSCALLS and
|
|
BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used
|
|
|
|
config.h.in
|
|
- remove define for HAVE_RESTARTABLE_SYSCALLS
|
|
|
|
aclocal.m4
|
|
- removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used
|
|
|
|
execute_cmd.c
|
|
- changed select command so `return' no longer terminates the select
|
|
command, so it can be used to return from an enclosing function.
|
|
This is as ksh (88 and 93) does it
|
|
|
|
lib/readline/vi_mode.c
|
|
- fix trivial typo in declaration of vi_motion; `t' appears twice;
|
|
the second instance should be `T'
|
|
|
|
7/3
|
|
---
|
|
configure.in
|
|
- don't add -static to LDFLAGS on Solaris 2.x. This means that the
|
|
auxiliary programs will be built as dynamic executables, but that
|
|
should do no harm
|
|
|
|
7/5
|
|
---
|
|
lib/glob/fnmatch.c
|
|
- fix the code that processes **(pattern) to short-circuit if the
|
|
pattern is ill-formed or lacks a trailing `)' -- this fixes the
|
|
segfault on **(/*)
|
|
|
|
Makefile.in, builtins/Makefile.in
|
|
- split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in
|
|
cross-compilation
|
|
- build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD)
|
|
|
|
configure.in, config.h.in
|
|
- check for getaddrinfo(3), define HAVE_GETADDRINFO if found
|
|
|
|
lib/sh/netopen.c
|
|
- implemented a version of _netopen (_netopen6) that uses
|
|
getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined.
|
|
old _netopen is _netopen4; _netopen now calls either _netopen6
|
|
or _netopen4 as appropriate
|
|
|
|
7/9
|
|
---
|
|
builtins/exit.def
|
|
- don't source ~/.bash_logout if subshell_environment is non-zero
|
|
|
|
execute_command.c
|
|
- in execute_until_or_while, handle the case where `breaking' is
|
|
set in the loop test (e.g., by the job control code when a job
|
|
is stopped with SIGTSTP), but the return value from the test is
|
|
something that would cause the loop to break. Need to decrement
|
|
`breaking' in this case
|
|
|
|
7/10
|
|
----
|
|
execute_cmd.c
|
|
- in execute_in_subshell, make sure a command of type cm_subshell
|
|
inherits its `enclosing' command's CMD_IGNORE_RETURN flag
|
|
|
|
variables.c
|
|
- in maybe_make_export_env, don't allow restricted shells to put
|
|
exported functions in the export environment
|
|
|
|
7/11
|
|
----
|
|
lib/glob/strmatch.h
|
|
- renamed old fnmatch.h
|
|
- changed guard #ifdef to _STRMATCH_H
|
|
- include system <fnmatch.h> if HAVE_LIBC_FNM_EXTMATCH is defined
|
|
|
|
lib/glob/strmatch.c
|
|
- renamed old fnmatch.c
|
|
- include "strmatch.h"
|
|
- if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of
|
|
strmatch() that just calls fnmatch(3)
|
|
|
|
lib/glob/glob.c
|
|
- include "strmatch.h"
|
|
- fnmatch -> strmatch
|
|
|
|
Makefile.in, lib/glob/Makefile.in
|
|
- fnmatch -> strmatch
|
|
|
|
{bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c,
|
|
pathexp.h,builtins/help.def
|
|
- include <glob/strmatch.h>
|
|
- fnmatch -> strmatch
|
|
|
|
execute_cmd.c
|
|
- broke the code that parses the interpreter name from a #! line
|
|
out from execute_shell_script to a new function, getinterp()
|
|
- call getinterp from execute_shell_script
|
|
- use return value from getinterp in error message about bad
|
|
#! interpreter in shell_execve
|
|
|
|
7/12
|
|
----
|
|
lib/readline/isearch.c
|
|
- the last isearch string is now remembered in a new static variable,
|
|
last_isearch_string
|
|
- if ^R^R is typed, readline now searches for the remembered isearch
|
|
string, if one exists
|
|
|
|
7/24
|
|
----
|
|
pcomplete.h
|
|
- extern declaration for completions_to_stringlist()
|
|
|
|
7/25
|
|
----
|
|
builtins/complete.def
|
|
- make compgen handle -o default option
|
|
- make compgen return success only if sl->list_len is non-zero,
|
|
indicating that there are items on the list
|
|
|
|
7/31
|
|
----
|
|
execute_cmd.c
|
|
- in execute_connection, force stdin to /dev/null for asynchronous
|
|
commands if job control is not active, not just if the shell is
|
|
running a shell script (since you can run `set -m' in a script)
|
|
|
|
lib/readline/rltty.c
|
|
- make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on
|
|
successful restoration of the terminal modes
|
|
- make sure _rl_tty_disable_signals turns off IXON so that ^S and
|
|
^Q can be read by rl_quoted_insert
|
|
|
|
8/1
|
|
---
|
|
aclocal.m4
|
|
- new check for FNM_EXTMATCH being defined in <fnmatch.h>, as Ullrich
|
|
Drepper intends to do for new versions of GNU libc
|
|
|
|
config.h.in
|
|
- new definition for HAVE_LIBC_FNM_EXTMATCH
|
|
|
|
configure.in
|
|
- check for fnmatch, but don't define anything in config.h
|
|
- call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH
|
|
|
|
8/2
|
|
---
|
|
alias.h
|
|
- remove bogus extern declaration for xmalloc()
|
|
- include "stdc.h"
|
|
- add prototype declarations for all extern function declarations
|
|
|
|
xmalloc.c,lib/readline/xmalloc.c
|
|
- fix xmalloc to return a PTR_T
|
|
- fix xrealloc to return a PTR_T and take a PTR_T as first argument
|
|
|
|
include/ansi_stdlib.h
|
|
- extern declarations for malloc and realloc have them return PTR_T
|
|
|
|
xmalloc.h
|
|
- new file, with extern declarations for functions in xmalloc.c
|
|
|
|
general.h
|
|
- removed extern declarations for functions in xmalloc.c
|
|
- include xmalloc.h
|
|
|
|
Makefile.in,builtins/Makefile.in
|
|
- update dependencies to include xmalloc.h
|
|
|
|
parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general,
|
|
hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib,
|
|
subst,unwind_prot,variables}.c
|
|
builtins/{common,evalfile}.c
|
|
builtins/{cd,command,enable,exec,printf,read,set}.def
|
|
lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist,
|
|
strtrans,tmpfile}.c
|
|
lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input,
|
|
histfile,histexpand,display,complete,bind}.c
|
|
- make sure all calls to xmalloc are cast to the right return value
|
|
|
|
siglist.c
|
|
- include xmalloc.h
|
|
|
|
parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c
|
|
builtins/{fc,printf,read}.def
|
|
lib/sh/snprintf.c, lib/tilde/tilde.c
|
|
lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c
|
|
- make sure all calls to xrealloc are cast to the right return value
|
|
|
|
lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c
|
|
- include xmalloc.h, remove extern declaration of xmalloc
|
|
|
|
lib/readline/xmalloc.h
|
|
- xmalloc and xrealloc should return PTR_T
|
|
|
|
lib/readline/rldefs.h
|
|
- don't include an extern declaration for xmalloc
|
|
|
|
8/7
|
|
---
|
|
support/shobj-conf
|
|
- fixed up commented-out stanzas for HP's unbundled C compiler on
|
|
HP/UX
|
|
|
|
support/bashbug.sh
|
|
- force the subject to be changed from the default
|
|
|
|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
|
|
- document that transpose-words swaps the last two words on the line
|
|
if point is at the end of the line
|
|
|
|
8/9
|
|
---
|
|
stringlib.c
|
|
- fix possible infinite recursion problem with null pattern in
|
|
strsub()
|
|
|
|
hashlib.c
|
|
- new function copy_hash_table to copy a hash table using a caller-
|
|
supplied function to copy item data (defaults to savestring())
|
|
|
|
hashlib.h
|
|
- new extern declaration for copy_hash_table
|
|
|
|
builtins/declare.def
|
|
- changes so that declare [-a] var=value assigns `value' to element 0
|
|
of array variable `var' like ksh93
|
|
- change so that declare [-a] var[N]=value assigns `value' to element
|
|
N of array variable `var' like ksh93
|
|
|
|
8/13
|
|
----
|
|
arrayfunc.c
|
|
- new file, for miscellaneous array functions
|
|
|
|
arrayfunc.h
|
|
- new file, extern declarations for functions in arrayfunc.c
|
|
|
|
variables.c
|
|
- move convert_var_to_array, bind_array_variable,
|
|
assign_array_from_string, assign_array_var_from_word_list,
|
|
assign_array_var_from_string, quote_array_assignment_chars,
|
|
skipsubscript, unbind_array_element, print_array_assignment
|
|
to arrayfunc.c
|
|
|
|
shell.h
|
|
- include arrayfunc.h after variables.h
|
|
|
|
variables.h
|
|
- remove above extern function declarations moved to arrayfunc.h
|
|
- add extern declaration for var_lookup
|
|
|
|
Makefile.in
|
|
- add arrayfunc.c, arrayfunc.h in appropriate places
|
|
- add arrayfunc.h to dependencies
|
|
|
|
subst.c
|
|
- move valid_array_reference, array_expand_index, array_variable_part,
|
|
array_value_internal, array_value (now global), get_array_value,
|
|
do_array_element_assignment to arrayfunc.c
|
|
|
|
subst.h
|
|
- extern declarations for functions above moved to arrayfunc.h
|
|
|
|
arrayfunc.h
|
|
- extern declarations for above functions from subst.c
|
|
|
|
subst.[ch]
|
|
- string_list_dollar_star and string_list_dollar_at are now global
|
|
functions
|
|
- quote_escapes is now a global function
|
|
|
|
subst.c
|
|
- maybe_expand_string -> expand_string_if_necessary
|
|
- expand_string_to_string -> expand_string_to_string_internal
|
|
- new functions: expand_string_to_string and
|
|
expand_string_unsplit_to_string, which call
|
|
expand_string_to_string_internal with expand_string and
|
|
expand_string_unsplit as the FUNC arguments, respectively
|
|
|
|
arrayfunc.c
|
|
- change array_expand_index to call expand_string_to_string instead
|
|
of maybe_expand_string
|
|
|
|
8/14
|
|
----
|
|
shell.c
|
|
- in execute_env_file, call expand_string_unsplit_to_string
|
|
|
|
mailcheck.c
|
|
- in check_mail, call expand_string_to_string
|
|
|
|
variables.c
|
|
- in assign_in_env, call expand_string_unsplit_to_string
|
|
|
|
arrayfunc.c
|
|
- new function, array_variable_name, splits an array reference into
|
|
a name (which is returned as a new string) and subscript
|
|
- change array_variable_part to just call array_variable_name and
|
|
look up the string returned with find_variable
|
|
- new function, find_or_make_array_variable (name, flags) which will
|
|
look up an array variable and convert a string variable to an
|
|
array if necessary. The FLAGS argument, if non-zero, says to
|
|
check the readonly and noassign attributes and fail if either is set
|
|
|
|
builtins/read.def
|
|
- make `read -a aname' honor any readonly status of `aname'
|
|
- read -a now calls find_or_make_array_variable with FLAGS value 1
|
|
|
|
arrayfunc.[ch], subst.c, builtins/{declare,read}.def
|
|
- do_array_element_assignment -> assign_array_element
|
|
|
|
8/20
|
|
----
|
|
parse.y
|
|
- changed `for' command grammar to allow missing word list after `IN'
|
|
token, like latest POSIX drafts require
|
|
|
|
lib/sh/tmpfile.c
|
|
- in sh_mktmpname(), check for filenum == 0 and init to non-zero number
|
|
in this case. it can happen on arithmetic overflow
|
|
|
|
support/mkversion.sh
|
|
- added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a
|
|
distribution to allow for intermediate versions, like 2.05a
|
|
|
|
support/config.guess
|
|
- removed the addition of the output of `/usr/bin/objformat' when
|
|
creating the canonical name on FreeBSD machines, so the canonical
|
|
name is once again `freebsd4.2' instead of `freebsdelf4.2'
|
|
|
|
8/22
|
|
----
|
|
lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell,
|
|
rltypedefs,xmalloc}.h
|
|
lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch,
|
|
input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode
|
|
- changed __P to PARAMS
|
|
|
|
lib/tilde/tilde.[ch]
|
|
- changed __P to PARAMS
|
|
|
|
{Makefile,configure}.in
|
|
- changed the version number to 2.05a
|
|
- changed the release status to `alpha1'
|
|
|
|
8/23
|
|
----
|
|
support/shobj-conf
|
|
- support for building shared libraries on Darwin/MacOS X
|
|
|
|
siglist.h
|
|
- extern declaration for strsignal() to compensate for lack of
|
|
a definition in some system include files
|
|
|
|
jobs.c
|
|
- remove casts from strsignal() calls
|
|
|
|
[bash-2.05a-alpha1 frozen]
|
|
|
|
8/27
|
|
----
|
|
[bash-2.05a-alpha1 released]
|
|
|
|
8/27
|
|
----
|
|
execute_cmd.c
|
|
- fix eval_arith_for_expr to handle the case where the expanded
|
|
word list is NULL, returning 0 in this case
|
|
|
|
print_cmd.c
|
|
- in print_function_def, make sure that func_redirects is assigned
|
|
a value before being used
|
|
|
|
8/28
|
|
----
|
|
alias.c
|
|
- include <ctype.h> for definition of isalpha()
|
|
|
|
bashhist.h
|
|
- add prototypes for extern function declarations
|
|
|
|
flags.c
|
|
- include bashhist.h for extern function declarations
|
|
|
|
mksyntax.c
|
|
- include <unistd.h> if HAVE_UNISTD_H is defined in config.h
|
|
|
|
parse.y
|
|
- include test.h for extern function declarations
|
|
|
|
externs.h
|
|
- change extern declaration for setlinebuf to sh_setlinebuf
|
|
|
|
stringlib.c
|
|
- include <glob/glob.h> for extern function declarations
|
|
|
|
variables.h
|
|
- add function prototypes for all of the sv_* functions
|
|
|
|
builtins/common.h
|
|
- add extern declarations for set_shellopts() and parse_shellopts()
|
|
from builtins/set.def
|
|
|
|
variables.c
|
|
- include "hashcmd.h" for extern declaration for flush_hashed_filenames
|
|
- include "pathexp.h" for extern declaration for setup_glob_ignore
|
|
|
|
lib/malloc/malloc.c
|
|
- cast to `long' instead of `int' in memalign for 64-bit machines
|
|
|
|
{pcomplete,trap}.c
|
|
- changed printf escape sequences used to print pointers to %p
|
|
|
|
lib/readline/undo.c
|
|
- include "xmalloc.h" for extern function declaration
|
|
|
|
input.h
|
|
- add function prototypes to extern declarations for getc_with_restart
|
|
and ungetc_with_restart
|
|
|
|
variables.[ch]
|
|
- changed type of `function' member of `struct name_and_function' to
|
|
`sv_func_t', which is defined and prototyped in variables.h
|
|
- map_over now takes an `sh_var_map_func_t *'
|
|
|
|
shell.h
|
|
- start of a set of function pointer typedefs like those in
|
|
lib/readline/rltypedefs.h
|
|
|
|
hashlib.[ch]
|
|
- second paramter to flush_hash_table is now an `sh_free_func_t *'
|
|
|
|
trap.c
|
|
- parameter to reset_or_restore_signal_handlers is now an
|
|
`sh_resetsig_func_t *'
|
|
|
|
pcomplete.h, pcomplib.c
|
|
- function pointer argument to print_all_compspecs is now an
|
|
`sh_csprint_func_t *'
|
|
- function pointer `list_getter' element of an `ITEMLIST' is now
|
|
prototyped with __P((...)) instead of using `Function *'
|
|
|
|
jobs.[ch]
|
|
- `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *'
|
|
|
|
alias.c
|
|
- map_over_aliases now takes an `sh_alias_map_func_t *'
|
|
- free_alias_data now takes a `PTR_T'
|
|
|
|
pathexp.c
|
|
- function pointer argument to ignore_globbed_names is now an
|
|
`sh_ignore_func_t *'
|
|
|
|
bashline.c
|
|
- function pointer argument to _ignore_completion_names is now an
|
|
`sh_ignore_func_t *'
|
|
|
|
pathexp.h,{bashhist,bashline.c
|
|
- `item_func' member of a `struct ignorevar' is now an
|
|
`sh_iv_item_func_t *'
|
|
|
|
builtins/evalfile.c
|
|
- `errfunc' is now an `sh_vmsg_func_t *'
|
|
|
|
jobs.c
|
|
- map_over_job now takes an `sh_job_map_func_t *' as its first argument
|
|
|
|
array.[ch]
|
|
- function pointer argument to array_walk is now an
|
|
`sh_ae_map_func_t *'
|
|
|
|
general.c
|
|
- tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *',
|
|
and so the assignment in tilde_initialize doesn't need a cast
|
|
|
|
list.c
|
|
- map_over_words now takes an `sh_icpfunc_t *' as its second argument
|
|
|
|
input.h
|
|
- the `getter' and `ungetter' function pointer members of a
|
|
BASH_INPUT are now of types `sh_cget_func_t *' and
|
|
`sh_cunget_func_t *' respectively
|
|
- init_yy_io now takes an `sh_cget_func_t *' as its first argument and
|
|
an `sh_cunget_func_t *' as its second
|
|
|
|
parse.y
|
|
- init_yy_io now takes an `sh_cget_func_t *' as its first argument and
|
|
an `sh_cunget_func_t *' as its second
|
|
- initialize_bash_input casts bash_input.getter and bash_input.ungetter
|
|
appropriately
|
|
|
|
builtins/mkbuiltins.c
|
|
- make the extern function definitions written to builtext.h have
|
|
prototypes with __P((...))
|
|
- include "stdc.h"
|
|
- change Function to mk_handler_func_t
|
|
- fixed comment_handler to take the right number of args
|
|
- prototyped all the handler functions with __P((...))
|
|
|
|
builtins.h
|
|
- the `function' member of a struct builtin is now of type
|
|
`sh_builtin_func_t *'
|
|
|
|
builtins/common.[ch]
|
|
- last_shell_builtin, this_shell_builtin are now of type
|
|
`sh_builtin_func_t *'
|
|
- find_shell_builtin, builtin_address, find_special_builtin now return
|
|
`sh_builtin_func_t *'
|
|
|
|
builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y
|
|
- changed all declarations of last_shell_builtin and this_shell_builtin
|
|
|
|
execute_cmd.c
|
|
- execute_builtin, execute_builtin_or_function,
|
|
execute_subshell_builtin_or_function now take an
|
|
`sh_builtin_func_t *' instead of a `Function *' for argument
|
|
- changed appropriate variables from `Function *' to
|
|
`sh_builtin_func_t *'
|
|
|
|
builtins/{bind,builtin,enable,read,setattr}.def
|
|
- replaced uses of `Function *' in variable declarations with
|
|
appropriate types (sh_builtin_func_t * or rl_command_func_t *)
|
|
|
|
builtins/set.def
|
|
- set_func and get_func members of binary_o_options are now of types
|
|
`setopt_set_func_t *' and `setopt_get_func_t *', which are
|
|
prototyped
|
|
|
|
builtins/shopt.def
|
|
- set_func member of shopt_vars is now of type `shopt_set_func_t *'
|
|
|
|
bashline.c
|
|
- enable_hostname_completion now returns `int' (the old value of
|
|
perform_hostname_completion)
|
|
|
|
[The only use of Function and VFunction now is for unwind-protects]
|
|
|
|
9/4
|
|
---
|
|
lib/sh/getcwd.c
|
|
- use const define from config.h rather than `CONST'
|
|
- use PTR_T define from xmalloc.h rather than `PTR'
|
|
- include xmalloc.h for PTR_T
|
|
- remove PATH_MAX define, rely on value from maxpath.h
|
|
|
|
{general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c
|
|
- don't include maxpath.h directly; it's already included by shell.h
|
|
|
|
lib/sh/mailstat.c
|
|
- new `mailstat()' implementation, to stat a mailbox file for
|
|
mail checking. handles maildir-style mail directories with one
|
|
file per message and creates a dummy stat struct from them
|
|
|
|
lib/sh/Makefile.in
|
|
- add mailstat.c and mailstat.o in the appropriate places
|
|
|
|
lib/malloc/malloc.c
|
|
- augmented implementation with wrapper functions that pass in file
|
|
and line number information from cpp. currently unused, but a
|
|
placeholder for future debugging and use tracking
|
|
|
|
lib/malloc/shmalloc.h
|
|
- new file, extern declarations for allocation wrapper functions for
|
|
use by the shell (and others, I guess)
|
|
|
|
xmalloc.[ch]
|
|
- wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that
|
|
pass cpp line number information through to the malloc functions,
|
|
if USING_BASH_MALLOC is defined
|
|
|
|
9/5
|
|
---
|
|
lib/malloc/gmalloc.c
|
|
- removed; no longer part of distribution
|
|
|
|
lib/malloc/Makefile.in
|
|
- removed references to gmalloc.[co]
|
|
|
|
configure.in, doc/bashref.texi
|
|
- removed references to `--with-glibc-malloc' configure option
|
|
|
|
{configure,Makefile}.in
|
|
- changed the way bash malloc is configured into the Makefile, making
|
|
it more like how readline is configured. If the bash malloc is
|
|
not configured in, nothing in lib/malloc will be built
|
|
|
|
9/6
|
|
---
|
|
lib/malloc/imalloc.h
|
|
- new file, some internal malloc definitions
|
|
|
|
lib/malloc/mstats.h
|
|
- new file, definitions for malloc statistics structs and functions
|
|
|
|
lib/malloc/trace.c
|
|
- new file, malloc tracing functions (currently just print messages
|
|
to stderr), code is #ifdef MALLOC_TRACE
|
|
|
|
lib/malloc/stats.c
|
|
- new file, moved malloc stats code from malloc.c to here
|
|
|
|
lib/malloc/malloc.c
|
|
- moved some definitions to imalloc.h
|
|
- moved stats code to stats.c
|
|
- malloc tracing calls added to internal_{malloc,realloc,free}, all
|
|
#ifdef MALLOC_TRACE
|
|
|
|
lib/malloc/Makefile.in, Makefile.in
|
|
- added {imalloc,mstats}.h, {trace,stats}.c
|
|
|
|
parse.y
|
|
- changed decode_prompt_string to save and restore $?
|
|
(last_command_exit_value) around calls to expand_prompt_string(),
|
|
so command substitutions in PS1, etc. don't change $?
|
|
|
|
{array,subst}.c
|
|
- a couple more arrayind_t fixes from Paul Eggert
|
|
|
|
configure.in
|
|
- remove redundant check for wait3(2)
|
|
|
|
redir.h
|
|
- fixed a typo (stdin_redirs -> stdin_redirects)
|
|
|
|
9/10
|
|
----
|
|
execute_cmd.c
|
|
- remove check for \n and \r from WHITESPACE macro, since those
|
|
chars are not whitespace as returned by the whitespace(c) macro
|
|
- getinterp now takes a `char *' as first arg, not unsigned char *
|
|
- execute_shell_script now takes a `char *' as first arg, not
|
|
unsigned char *
|
|
- fix typo in forward declaration for `initialize_subshell'
|
|
|
|
general.[ch]
|
|
- check_binary_file now takes a (char *) argument, not unsigned char *
|
|
- pass unsigned char to isspace and isprint because of ISO C fuckup
|
|
- bash_tilde_expand now takes a `const char *' as its argument
|
|
|
|
builtins/evalfile.c, shell.c
|
|
- buffer passed to check_binary_file is char, not unsigned char
|
|
|
|
parse.y
|
|
- fix extern declaration for yyerror()
|
|
- yyerror now takes a `const char *' as first arg
|
|
|
|
{error,jobs}.c
|
|
- fixes to printf-style functions to handle pids wider than an int
|
|
|
|
lib/readline/{isearch,vi_mode}.c
|
|
- fix call to rl_message in rl_display_search (remove extra arg)
|
|
|
|
variables.c
|
|
- fix missing argument to builtin_error in make_local_variable
|
|
|
|
builtins/getopts.def
|
|
- since getopts takes no options, change while loop calling
|
|
internal_getopts to a simple `if' check
|
|
|
|
builtins/printf.def
|
|
- since printf takes no options, change while loop calling
|
|
internal_getopts to a simple `if' check
|
|
|
|
lib/readline/bind.c
|
|
- remove _SET_BELL macro, expand code inline
|
|
|
|
lib/readline/input.c
|
|
- change _rl_input_available to use either select or FIONREAD,
|
|
but not both
|
|
|
|
lib/readline/readline.c
|
|
- fix rl_digit_loop to remove unreachable code at end of loop
|
|
|
|
{bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c
|
|
- bracket unused functions with #ifdef INCLUDE_UNUSED/#endif
|
|
- remove some unused variables
|
|
|
|
execute_cmd.c
|
|
- remove #ifdef'd code that allowed `return' to terminate a select
|
|
statement
|
|
|
|
expr.c
|
|
- remove some extraneous tests from strlong()
|
|
|
|
array.h
|
|
- arrayind_t is now a long, since shell arithmetic is performed as
|
|
longs
|
|
- remove second declaration of new_array_element
|
|
|
|
builtins/printf.def
|
|
- in mklong, xrealloc cannot return NULL, so don't check for it
|
|
- remove some #if 0 code
|
|
- fix core dump triggered by a format specification with more than
|
|
one `*'
|
|
- remove `foundmod', since its value mirrors `modchar != 0'
|
|
- include "common.h" for builtin_{error,usage} declarations
|
|
|
|
Makefile.in,builtins/Makefile.in
|
|
- updated some dependencies due to new include files
|
|
|
|
pcomplete.c
|
|
- include "execute_cmd.h" for declaration of execute_shell_function
|
|
|
|
arrayfunc.c
|
|
- include <stdio.h> for printf
|
|
- include "builtins/common.h" for builtin_error declaration
|
|
|
|
builtins/evalstring.c
|
|
- include "../trap.h" for run_trap_cleanup declaration
|
|
|
|
builtins/help.def
|
|
- include "common.h" instead of locally declaring builtin_error
|
|
and builtin_usage
|
|
|
|
error.h
|
|
- add extern declaration for itrace()
|
|
- add prototype to extern declaration of get_name_for_error
|
|
- file_error now takes a `const char *' as first argument
|
|
|
|
externs.h
|
|
- added prototype for sh_setlinebuf declaration, bracketed with
|
|
NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere
|
|
- add extern declaration for parse.y:return_EOF()
|
|
|
|
shell.c
|
|
- add NEED_SH_SETLINEBUF_DECL before including shell.h
|
|
|
|
lib/readline/callback.c
|
|
- include <stdlib.h> or "ansi_stdlib.h" for abort declaration
|
|
|
|
quit.h
|
|
- remove declaration of throw_to_top_level
|
|
|
|
subst.c
|
|
- remove unused extern declaration for getopts_reset
|
|
|
|
lib/sh/netopen.c
|
|
- include <shell.h> for legal_number, etc.
|
|
- add prototype for inet_aton extern declaration
|
|
|
|
lib/sh/clock.c
|
|
- include <stdc.h> for __P declaration
|
|
- add extern declaration for get_clk_tck
|
|
|
|
support/mkversion.sh
|
|
- changed so that extern function declarations for functions in
|
|
version.c (moved from externs.h) are in the generated version.h
|
|
|
|
shell.h
|
|
- include version.h
|
|
|
|
version.c
|
|
- various `char *' version variables are now `const char *'
|
|
|
|
general.h
|
|
- add prototype for same_file, bracketed with _POSIXSTAT_H
|
|
#ifdef, since that's what include/posixstat.h defines
|
|
|
|
builtins/common.[ch]
|
|
- _evalfile, maybe_execute_file, source_file, and fc_execute_file
|
|
now take a `const char *' as their first argument
|
|
|
|
eval.c
|
|
- removed extern declaration of yyparse; it's in externs.h
|
|
|
|
parse.y
|
|
- added prototypes to static forward function declarations
|
|
- changed local `all_digits' variable in read_token_word () to
|
|
all_digit_token to avoid clash with all_digits() function in
|
|
general.c
|
|
|
|
{bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c
|
|
- added prototypes for static function declarations
|
|
|
|
shell.h
|
|
- add extern declarations for interactive, interactive_shell,
|
|
changed c files with extern declarations
|
|
|
|
pcomplete.c
|
|
- changed it_init_aliases to avoid shadowing global variable
|
|
`aliases'
|
|
|
|
bashline.c,pathexp.c,general.h
|
|
- sh_ignore_func_t is now a pointer to a function taking a
|
|
`const char *'; users changed
|
|
|
|
configure.in
|
|
- test for <strings.h>
|
|
|
|
config.h.in
|
|
- add #undef HAVE_STRINGS_H
|
|
|
|
bashansi.h
|
|
- change like recommended in autoconf manual
|
|
|
|
9/11
|
|
----
|
|
[a date which will live in infamy. prayers for the victims.]
|
|
|
|
execute_cmd.c
|
|
- don't use an absolute index into abuf in mkfmt, use
|
|
sizeof(abuf) to compute last index
|
|
|
|
builtins/common.c
|
|
- fix read_octal to do a better job of detecting overflow while
|
|
iterating through the string
|
|
|
|
builtins/umask.def
|
|
- change octal-print mode to print 4 digits, like other shells
|
|
- cast umask to unsigned long to avoid problems on systems where
|
|
it's wider than an int (POSIX doesn't guarantee that mode_t is
|
|
no wider than an int, but real-world systems use int)
|
|
|
|
builtins/printf.def
|
|
- mklong can never return NULL (it uses xrealloc), so the mainline
|
|
doesn't need to check for NULL returns
|
|
- new function, getldouble (long double *), to get long doubles
|
|
- mklong now takes a `char *' as its second argument, the modifier(s)
|
|
to use
|
|
- changed use of `modchar' to handle more than a single modifier
|
|
character
|
|
- changed to handle `long double' and `L' formats better, rather
|
|
than discarding long double information
|
|
- since printf now follows the POSIX.2 rules for conversion errors,
|
|
we can dispense with the status returns from the get* functions
|
|
- make the get* functions as similar in structure as possible,
|
|
removing type casts, etc.
|
|
|
|
lib/sh/timeval.c,execute_cmd.c
|
|
- change some instances of `long' to `time_t', for systems where
|
|
a time_t is bigger than a long
|
|
|
|
jobs.c
|
|
- include "posixtime.h" instead of <sys/time.h>
|
|
|
|
config.h.in
|
|
- add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD,
|
|
HAVE_DECL_SBRK, HAVE_DECL_PRINTF
|
|
- remove defines for SBRK_DECLARED and PRINTF_DECLARED
|
|
- add _GNU_SOURCE define
|
|
|
|
configure.in
|
|
- add AC_CHECK_DECLS for strtold, confstr, sbrk, printf
|
|
- remove call to BASH_FUNC_SBRK_DECLARED
|
|
- remove call to BASH_FUNC_PRINTF
|
|
|
|
xmalloc.c, lib/malloc/malloc.c
|
|
- change check of SBRK_DECLARED to HAVE_SBRK_DECL
|
|
|
|
print_cmd.c
|
|
- change PRINTF_DECLARED to HAVE_DECL_PRINTF
|
|
|
|
builtins/evalstring.c, builtins/common.h
|
|
- parse_and_execute now takes a `const char *' as its second argument
|
|
|
|
input.h,parse.y
|
|
- with_input_from_* functions now take a `const char *' as their
|
|
second argument
|
|
- init_yy_io now takes a `const char *' as its fourth argument
|
|
|
|
parse.y,externs.h
|
|
- parse_string_to_word_list now takes a `const char *' as its second
|
|
argument
|
|
|
|
tests/builtins.right
|
|
- change output to account for extra digit in umask output
|
|
|
|
pcomplib.c
|
|
- free_progcomp now takes a PTR_T argument
|
|
|
|
builtins/bashgetopt.h
|
|
- include <stdc.h>
|
|
- add prototypes to extern declarations
|
|
|
|
builtins/shopt.def
|
|
- add prototypes to static function declarations
|
|
|
|
builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c
|
|
- include <ctype.h> for isdigit macro (referenced by `digit(x)')
|
|
|
|
lib/readline/complete.c
|
|
- added more static function declarations with prototypes
|
|
|
|
9/12
|
|
----
|
|
lib/sh/tmpfile.c
|
|
- use `^' instead of `*' in sh_mktmpname to make filenames a bit
|
|
more random
|
|
|
|
include/stdc.h,lib/readline/rldstdc.h
|
|
- add __attribute__ definition
|
|
|
|
builtins/common.h
|
|
- add printf __attribute__ to declaration of builtin_error
|
|
|
|
error.h
|
|
- add printf __attribute__ to declaration of programming_error,
|
|
report_error, parser_error, fatal_error, sys_error, internal_error,
|
|
internal_warning
|
|
|
|
lib/readline/readline.h
|
|
- add printf __attribute__ to declaration of rl_message
|
|
|
|
pcomplete.c
|
|
- add printf __attribute__ to declaration of debug_printf
|
|
|
|
print_cmd.c
|
|
- add printf __attribute__ to declarations of cprintf, xprintf
|
|
|
|
include/chartypes.h
|
|
- new file, includes <ctype.h> and defines macros that check for
|
|
safe (ascii) arguments before calling the regular ctype macros
|
|
|
|
{alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c
|
|
parse.y
|
|
builtins/{bashgetopt,common}.c
|
|
builtins/{fc,printf,umask,wait}.def
|
|
lib/glob/strmatch.c
|
|
lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c
|
|
examples/loadables/{head,sleep}.c
|
|
- include "chartypes.h" or <chartypes.h> instead of <ctype.h>
|
|
|
|
Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in
|
|
- update dependencies to include chartypes.h
|
|
|
|
lib/sh/inet_aton.c
|
|
- use `unsigned char' instead of `char' to pass to ctype.h functions
|
|
|
|
lib/sh/netopen.c
|
|
- check for '0' <= host[0] <= '9' in _getaddr instead of using
|
|
isdigit
|
|
|
|
subst.c,lib/sh/shquote.c
|
|
- change array subscripts into sh_syntaxtab from `char' to
|
|
`unsigned char'
|
|
|
|
{alias,bashline,execute_cmd,expr,general,subst}.c, parse.y
|
|
builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c
|
|
lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c
|
|
examples/loadables/{head,sleep}.c
|
|
- change to use some of the new macros in chartypes.h
|
|
- remove old local macro definitions now provided by chartypes.h
|
|
|
|
general.h
|
|
- remove definition of isletter, ISOCTAL, digit, digit_value
|
|
- change legal_variable_starter and legal_variable_char to use
|
|
chartypes.h macros
|
|
- change ABSPATH to use chartypes.h macros
|
|
|
|
lib/readline/util.c
|
|
- change to use Paul Eggert's FUNCTION_FOR_MACRO define to define
|
|
function replacements for macros in chardefs.h
|
|
|
|
lib/readline/chardefs.h
|
|
- added some of the same macros as in chartypes.h
|
|
- change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
|
|
_rl_to_upper, _rl_to_lower to use new IS* macros
|
|
- added _rl_isident macro from vi_mode.c:isident
|
|
|
|
lib/readline/{bind,complete,nls}.c
|
|
- change to use some of the new macros from chardefs.h
|
|
|
|
lib/readline/vi_mode.c
|
|
- isident -> _rl_isident
|
|
- remove local defines of macros in chardefs.h
|
|
|
|
lib/sh/strtol.c
|
|
- updated to new version, modified from glibc 2.2.4 and sh-utils-2.0.
|
|
This one can do strtoll and strtoull, if necessary
|
|
|
|
9/13
|
|
----
|
|
builtins/ulimit.def
|
|
- changed get_limit so it retrieves both hard and soft limits
|
|
instead of one or the other
|
|
- changed callers of get_limit
|
|
- changed getmaxvm to take soft limit, hard limit as arguments
|
|
- changed getmaxuprc to just take a single argument, the value
|
|
- changed calls to printone() to pass soft limit or hard limit
|
|
depending on `mode' instead of using old current_limit variable
|
|
- moved check for out-of-range limits in ulimit_internal into the
|
|
block that converts a string argument to a value of type rlim_t
|
|
- changed RESOURCE_LIMITS struct to break the description into a
|
|
description string and separate scale factor string
|
|
- changed print_all_limits to print a single error message if
|
|
get_limit fails, including limits[i].description now that the
|
|
scale factor has been removed from the description string
|
|
- removed DESCFMT define, since it's now used only in printone()
|
|
- changed printone to print the option character associated with a
|
|
particular limit if we're printing multiple limits
|
|
- changed calls to builtin_error to print the description associated
|
|
with a limit if setting or getting the limit fails
|
|
- added support for new POSIX 1003.1-200x rlim_t values:
|
|
RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current
|
|
soft and hard limits, whatever they are
|
|
- changed printone to print `hard' or `soft' if the current limit is
|
|
RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively
|
|
- changed ulimit_internal to handle new `hard' and `soft' arguments
|
|
- changed help text do describe the special limit arguments `hard',
|
|
`soft', and `unlimited'
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new `hard' and `soft' limit arguments to `ulimit'
|
|
|
|
hashlib.[ch]
|
|
- find_hash_item now takes a `const char *' is its first argument
|
|
- hash_string now takes a `const char *' is its first argument
|
|
- remove_hash_item now takes a `const char *' as its first argument
|
|
|
|
pcomplib.c
|
|
- removed cast from first argument to find_hash_item in find_compspec
|
|
|
|
general.[ch]
|
|
- absolute_program now takes a `const char *' as its argument
|
|
- absolute_pathname now takes a `const char *' as its argument
|
|
|
|
lib/glob/glob.[ch]
|
|
- glob_pattern_p now takes a `const char *' as its argument
|
|
|
|
bashline.c
|
|
- removed cast from first argument to absolute_program in
|
|
command_word_completion_function
|
|
- removed cast from first argument to glob_pattern_p in
|
|
attempt_shell_completion
|
|
|
|
findcmd.[ch]
|
|
- find_absolute_program, find_user_command, find_path_file,
|
|
search_for_command, user_command_matches now take a
|
|
`const char *' as their first argument
|
|
- file_status, executable_file, is_directory, executable_or_directory
|
|
now take a `const char *' as their argument
|
|
- _find_user_command_internal, find_user_command_internal,
|
|
find_user_command_in_path
|
|
|
|
lib/sh/makepath.c, externs.h
|
|
- changed sh_makepath so it takes `const char *' for its first
|
|
two arguments
|
|
|
|
hashcmd.[ch]
|
|
- find_hashed_filename now takes a `const char *' as its first arg
|
|
- remove_hashed_filename now takes a `const char *' as its first arg
|
|
|
|
variables.[ch]
|
|
- new_shell_variable, var_lookup, shell_var_from_env_string,
|
|
find_name_in_env_array, bind_function, makunbound,
|
|
bind_name_in_env_array, bind_tempenv_variable, bind_variable
|
|
now take a `const char *' as their first arg
|
|
- find_function, make_new_variable, find_tempenv_variable,
|
|
find_variable_internal, find_variable, set_func_read_only,
|
|
set_func_auto_export, all_variables_matching_prefix, assign_in_env,
|
|
assignment, kill_local_variable, make_local_variable, unbind_variable
|
|
now take a `const char *' as their arg
|
|
- mk_env_string now takes `const char *' arguments
|
|
|
|
arrayfunc.[ch]
|
|
- skipsubscript now takes a `const char *' as its argument
|
|
|
|
9/17
|
|
----
|
|
lib/readline/complete.c
|
|
- attempt to preserve case of what the user typed in
|
|
compute_lcd_of_matches if we're ignoring case in completion
|
|
|
|
builtins/{let,pushd}.def,{execute_cmd,expr}.c
|
|
- change some 0L constants to 0 and let the compiler sort it out
|
|
|
|
9/18
|
|
----
|
|
lib/malloc/alloca.c
|
|
- alloca now takes a `size_t' argument
|
|
|
|
include/memalloc.h
|
|
- if we're providing an extern function declaration for alloca,
|
|
use `void *' and prototype if __STDC__ is defined
|
|
- if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't
|
|
define HAVE_ALLOCA
|
|
|
|
9/19
|
|
----
|
|
subst.c
|
|
- do_assignment_internal, do_assignment, and do_assignment_no_expand
|
|
now take a `const char *' as their first argument
|
|
|
|
general.h
|
|
- a `sh_assign_func_t' is now a function taking a `const char *' and
|
|
returning int
|
|
|
|
hashcmd.c
|
|
- free_filename_data now takes a `PTR_T' argument to agree with the
|
|
typedef for `sh_free_func_t'
|
|
|
|
lib/sh/snprintf.c
|
|
- use TYPE_MAXIMUM define like strtol.c instead of huge constants
|
|
|
|
9/20
|
|
----
|
|
lib/sh/snprintf.c
|
|
- don't bother to compile the bulk of the body unless HAVE_SNPRINTF
|
|
or HAVE_ASPRINTF is not defined
|
|
|
|
9/24
|
|
----
|
|
flags.c
|
|
- ignore `set -n' if the shell was started interactively
|
|
|
|
lib/readline/readline.c
|
|
- initialize readline_echoing_p to 0; let the terminal-specific code
|
|
in rltty.c set it appropriately
|
|
|
|
lib/malloc/malloc.c
|
|
- changed internal_memalign() slightly to avoid compiler warnings about
|
|
negating an unsigned variable (-alignment -> (~alignment + 1))
|
|
|
|
9/27
|
|
----
|
|
lib/readline/readline.c
|
|
- changed rl_newline to set _rl_history_saved_point appropriately
|
|
for the {previous,next}_history code
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declaration for _rl_history_preserve_point
|
|
|
|
lib/readline/bind.c
|
|
- new bindable variable, `history-preserve-point', sets value of
|
|
_rl_history_preserve_point
|
|
|
|
10/1
|
|
----
|
|
lib/malloc/table.c
|
|
- new file, with a map of allocated (and freed) memory for debugging
|
|
multiple frees, etc. Indexed by hash on values returned by
|
|
malloc(); holds size, file and line number info for last alloc or
|
|
free and a couple of statistics pointers
|
|
|
|
lib/malloc/malloc.c
|
|
- a few cleanups; added calls for registering allocations and frees
|
|
if MALLOC_REGISTER is defined
|
|
- replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define
|
|
- reordered fields in `struct...minfo' in `union mhead' to restore
|
|
eight-byte alignment
|
|
- added explicit checks for underflow in free and realloc since
|
|
checking mh_magic2 is not sufficient to detect everything (it's
|
|
no longer the last field in the struct, and thus not the bytes
|
|
immediately preceding what's returned to the user)
|
|
- new function, xbotch, for printing file and line number info for
|
|
the failed assertion before calling botch() (programming_error())
|
|
|
|
configure.in
|
|
- replaced call to BASH_C_LONG_LONG with call to
|
|
AC_CHECK_TYPES([long long])
|
|
- moved the C compiler tests before the tests for various
|
|
system types, so we can know whether we have `long long'
|
|
before testing for 64-bit types
|
|
- if we have `long long', check for sizeof(long long) and save value
|
|
|
|
aclocal.m4
|
|
- changed BASH_TYPE_BITS64_T to check `long long' before `long', but
|
|
after `double'
|
|
|
|
10/2
|
|
----
|
|
lib/malloc/malloc.c
|
|
- made malloc and realloc both agree on the rounding for a request of
|
|
size N (round up to nearest multiple of 8 after adjusting for
|
|
malloc overhead); uses new ALLOCATED_BYTES macro
|
|
- realloc and free now use new IN_BUCKET macro for underflow checks
|
|
|
|
execute_cmd.c
|
|
- fixed time_command() to use `time_t' instead of `long' to hold
|
|
time stamps
|
|
|
|
lib/sh/clock.c
|
|
- clock_t_to_secs now takes a `time_t *' second argument
|
|
- fixed print_clock_t to call clock_t_to_secs with right arguments
|
|
|
|
lib/sh/timeval.c
|
|
- fixed print_timeval to make `minutes' a `long' and make its
|
|
structure identical to print_clock_t
|
|
|
|
redir.c
|
|
- changed redirection_error to check for EBADF and use the file
|
|
descriptor being redirected from in the error message if it
|
|
is >= 0
|
|
|
|
Makefile.in
|
|
- changed release status to `beta1'
|
|
|
|
lib/glob/collsyms.h
|
|
- added a few ASCII symbols to the posix_collsyms array
|
|
|
|
10/3
|
|
----
|
|
aclocal.m4
|
|
- fixed typo in BASH_TYPE_BITS64_T
|
|
|
|
configure.in
|
|
- added check for unsigned chars with AC_C_CHAR_UNSIGNED
|
|
|
|
config.h.in
|
|
- added PROTOTYPES and __CHAR_UNSIGNED__ #defines
|
|
|
|
general.h
|
|
- if CHAR_MAX is not define by <limits.h>, provide a definition
|
|
|
|
builtins/printf.def
|
|
- change tescape() to mask \0 and \x escape sequences with 0xFF
|
|
- change tescape() to process at most two hex digits after a `\x'
|
|
|
|
lib/sh/strtrans.c
|
|
- change strtrans() to mask \0 and \x escape sequences with 0xFF
|
|
- change strtrans() to process at most two hex digits after a `\x'.
|
|
This affects `echo -e' and $'...' processing
|
|
|
|
lib/readline/bind.c
|
|
- changed rl_translate_keyseq() to process at most two hex digits
|
|
after a `\x'
|
|
|
|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
|
|
- changed documentation for key binding escape sequences to specify
|
|
that at most two hex digits after \x are translated
|
|
- changed documentation for key binding to specify that the result
|
|
of \nnn or \xhh escapes is an eight-bit value, not just ASCII
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- changed documentation of $'...' to specify that at most two hex
|
|
digits after \x are translated
|
|
- changed `echo' documentation to specify that at most two hex
|
|
digits after \x are translated
|
|
- changed documentation for `echo' and $'...' to specify that the
|
|
result of \nnn or \xhh escapes is an eight-bit value, not just ASCII
|
|
|
|
10/4
|
|
----
|
|
lib/malloc/malloc.c
|
|
- changed interface for xbotch to pass memory address and error code
|
|
as two additional arguments
|
|
- call mregister_describe_mem from xbotch to get the last allocation
|
|
or free before the botch
|
|
|
|
configure.in
|
|
- call AC_CHECK_DECLS([strsignal])
|
|
|
|
config.h.in
|
|
- add HAVE_DECL_STRSIGNAL
|
|
|
|
siglist.h
|
|
- make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL
|
|
|
|
10/5
|
|
----
|
|
support/texi2html
|
|
- upgraded to version 1.64
|
|
|
|
10/9
|
|
----
|
|
aclocal.m4
|
|
- added check for `long long' to BASH_TYPE_PTRDIFF_T
|
|
|
|
configure.in
|
|
- replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ
|
|
|
|
aclocal.m4
|
|
- replaced body of BASH_STRUCT_TERMIOS_LDISC with call to
|
|
AC_CHECK_MEMBER(struct termios.c_line, ...)
|
|
- replaced body of BASH_STRUCT_TERMIO_LDISC with call to
|
|
AC_CHECK_MEMBER(struct termios.c_line, ...)
|
|
|
|
[bash-2.05a-beta1 frozen]
|
|
|
|
10/10
|
|
-----
|
|
lib/sh/snprintf.c
|
|
- fixed exponent() to not smash the trailing zeros in the fraction
|
|
when using %g or %G with an `alternate form'
|
|
- fixed exponent() to handle the optional precision with %g and %G
|
|
correctly (number of significant digits before the exponent)
|
|
|
|
10/11
|
|
-----
|
|
expr.c
|
|
- fixed strlong() to correct the values of `@' and `_' when
|
|
translating base-64 constants (64#@ == 62 and 64#_ == 64), for
|
|
compatibility with ksh
|
|
|
|
lib/sh/itos.c
|
|
- added a slightly more flexible fmtlong() function that takes a
|
|
base argument and flags (for future use)
|
|
- rewrote itos and inttostr in terms of fmtlong
|
|
|
|
lib/sh/fmtulong.c
|
|
- new file, converts unsigned long to string. hooks for `unsigned
|
|
long long' in the future. unused as yet
|
|
|
|
10/15
|
|
-----
|
|
lib/readline/rltty.c
|
|
- change the SET_SPECIAL macro to avoid possible (but highly
|
|
unlikely) negative array subscripts
|
|
|
|
error.h
|
|
- add __attribute__ to extern declaration of itrace (even though the
|
|
function isn't defined in released versions of bash)
|
|
|
|
bashansi.h
|
|
- include <strings.h> if HAVE_STRINGS_H is defined, to get any extra
|
|
function declarations provided therein
|
|
|
|
copy_cmd.c
|
|
- fix typo in forward declaration for copy_arith_for_command
|
|
|
|
lib/malloc/stats.c
|
|
- make the accumulators in _print_malloc_stats be `unsigned long'
|
|
instead of `int'
|
|
|
|
externs.h, sig.h
|
|
- add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level
|
|
declarations
|
|
|
|
lib/sh/mailstat.c, support/bashversion.c
|
|
- include <bashansi.h> for some string function declarations
|
|
|
|
lib/malloc/shmalloc.h
|
|
- added extern declarations of functions that do malloc debugging
|
|
|
|
lib/readline/{isearch,readline,vi_mode}.c
|
|
- make sure we index into _rl_keymap with a non-negative index
|
|
|
|
parse.y
|
|
- make sure we index into sh_syntaxtab with a non-negative index
|
|
|
|
lib/readline/vi_mode.c
|
|
- bound the vi_mark_chars array with the number of characters between
|
|
'a' and 'z' rather than using a fixed amount
|
|
- don't use _rl_lowercase_p when deciding whether the char read by
|
|
rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z'
|
|
|
|
lib/readline/chardefs.h
|
|
- conditionally include memory.h and strings.h as in general.h
|
|
- replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
|
|
- add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c)
|
|
- fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p,
|
|
_rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower,
|
|
and _rl_isident to work on systems with signed chars
|
|
|
|
include/chartypes.h
|
|
- replace ISASCII with IN_CTYPE_DOMAIN like other GNU software
|
|
|
|
lib/sh/{strcasecmp,strtod,strtol}.c
|
|
- don't pass possibly-negative characters to tolower() or toupper()
|
|
|
|
lib/glob/strmatch.c
|
|
- don't bother testing for isupper in FOLD; rely on TOLOWER macro
|
|
from <chartypes.h> to do it
|
|
- don't use local definitions of isblank, et al.; rely on macros
|
|
from <chartypes.h>
|
|
|
|
lib/readline/{display,readline}.c, mksyntax.c
|
|
- use new ISPRINT macro instead of isprint()
|
|
|
|
builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c
|
|
- don't assume that a pid_t fits into an int for printing and other
|
|
uses
|
|
|
|
variables.[ch]
|
|
- the unused put_gnu_argv_flags_into_env now takes a `long' pid
|
|
argument
|
|
|
|
configure.in, config.h.in
|
|
- call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found
|
|
- check for strtoull(), define HAVE_STRTOULL if found
|
|
- check for uintmax_t, define to `unsigned long' if not found
|
|
|
|
lib/sh/mailstat.c
|
|
- don't use st_blocks member of struct stat unless
|
|
HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink
|
|
field to return the total number of messages in a maildir-style
|
|
mail directory
|
|
|
|
general.h,{alias,expr,general,subst,variables}.c
|
|
builtins/{printf,read}.def
|
|
lib/readline/{bind,complete,nls}.c
|
|
lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c
|
|
- cast args to ctype macros to unsigned char for systems with signed
|
|
chars; other fixes for signed chars
|
|
|
|
lib/sh/{fmtullong,strtoull.c}
|
|
- new files, more support for `long long'
|
|
|
|
Makefile.in, lib/sh/Makefile.in
|
|
- make fmtullong.o and strtoull.o part of libsh
|
|
|
|
lib/sh/itos.c
|
|
- remove local copy of fmtlong; use fmtulong instead
|
|
- new functions: uitos, uinttostr work on `unsigned long'
|
|
|
|
lib/sh/snprintf.c
|
|
- fixes to make `unsigned long long' work (%llu)
|
|
- fixes to make unsigned formats not print the sign when given
|
|
an unsigned long that is greater than LONG_MAX
|
|
|
|
externs.h
|
|
- extern declarations for fmtulong, fmtulloing, strtoull
|
|
- extern declarations for uitos, uinttostr
|
|
|
|
10/16
|
|
-----
|
|
configure.in
|
|
- move header checks before function checks
|
|
- move c compiler tests before header checks
|
|
- check for <inttypes.h> with BASH_HEADER_INTTYPES
|
|
- change type checks for intmax_t, uintmax_t to not attempt to
|
|
include <stdint.h>
|
|
- check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul
|
|
with BASH_CHECK_DECL (for declarations in header files) and
|
|
AC_REPLACE_FUNCS (for availability and LIBOBJS substitution)
|
|
- remove check for have_long_long around sizeof check for long long
|
|
(since autoconf will give it a size of 0 if the type isn't found)
|
|
|
|
config.h.in
|
|
- add a define for HAVE_INTTYPES_H
|
|
- add a define for HAVE_UNSIGNED_LONG_LONG
|
|
- add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL
|
|
|
|
aclocal.m4
|
|
- new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS
|
|
on <inttypes.h>; separate so it can be AC_REQUIREd
|
|
- AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE
|
|
- include <inttypes.h> in BASH_CHECK_TYPE if HAVE_INTTYPES_H is
|
|
defined
|
|
- change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE
|
|
- new `long long' checking macros: BASH_TYPE_LONG_LONG and
|
|
BASH_TYPE_UNSIGNED_LONG_LONG
|
|
- new BASH_CHECK_DECL
|
|
|
|
lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in
|
|
- new files
|
|
|
|
externs.h
|
|
- extern declarations for strtoll, strtoimax, strtoumax
|
|
|
|
lib/malloc/alloca.c
|
|
- include <bashtypes.h> for size_t
|
|
|
|
builtins/printf.def
|
|
- new functions: getllong, getullong, getintmax, getuintmax; return
|
|
long long, unsigned long long, intmax_t, uintmax_t respectively
|
|
- builtin printf now handles `ll' and `j' length modifiers directly
|
|
|
|
lib/sh/Makefile.in
|
|
- use LIBOBJS to decide whether or not the strto* functions are
|
|
needed
|
|
|
|
10/17
|
|
-----
|
|
configure.in
|
|
- call AC_REPLACE_FUNCS(rename)
|
|
- move getcwd, strpbrk, strcasecmp, strerror, strtod
|
|
from AC_CHECK_FUNCS to AC_REPLACE_FUNCS
|
|
- only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes"
|
|
- call BASH_CHECK_SYS_SIGLIST
|
|
- if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint)
|
|
|
|
lib/sh/Makefile.in
|
|
- remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror,
|
|
strtod, vprint from OBJECTS; picked up from LIBOBJS
|
|
|
|
aclocal.m4
|
|
- change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc
|
|
getcwd(3) calls popen(3)
|
|
- change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's
|
|
not found in libc or as a #define even with the special includes
|
|
- BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT
|
|
- BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR
|
|
- BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING
|
|
- BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS
|
|
- BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE
|
|
- BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK
|
|
- BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC
|
|
- BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT
|
|
- BASH_FUNC_PRINTF -> BASH_DECL_PRINTF
|
|
- BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK
|
|
- BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T
|
|
- BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET
|
|
- new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for
|
|
sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to
|
|
siglist.o if appropriate
|
|
|
|
Makefile.in
|
|
- use SIGLIST_O variable to decide whether or not we need siglist.o
|
|
|
|
{execute_cmd,subst}.c
|
|
- change a couple of instances of ISDIGIT to DIGIT, where we really,
|
|
really only want ascii digits
|
|
|
|
ansi_stdlib.h
|
|
- don't need a declaration for atol()
|
|
|
|
10/18
|
|
-----
|
|
|
|
aclocal.m4
|
|
- new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support
|
|
for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT
|
|
if successful
|
|
|
|
configure.in
|
|
- call AC_CHECK_FUNCS for isascii
|
|
- call BASH_FUNC_PRINTF_A_FORMAT
|
|
|
|
config.h.in
|
|
- add a define for HAVE_ISASCII
|
|
- add a define for HAVE_PRINTF_A_FORMAT
|
|
|
|
lib/sh/snprintf.c
|
|
- for long double output, fall back to sprintf using ldfallback()
|
|
function for floating point formats
|
|
- support %a, %A using dfallback() or ldfallback() if
|
|
HAVE_PRINTF_A_FORMAT is defined
|
|
- fix bug in vasprintf that returned wrong value in its first
|
|
argument if the buffer holding the result string got reallocated
|
|
- fixed PUT_CHAR macro to increment the counter even if we've
|
|
exceeded the buffer size, for the return value from
|
|
vsnprintf/snprintf
|
|
- fix vsnprintf_internal to not use counter < length as a loop
|
|
condition, but always process the entire format string (for
|
|
the return value from vsnprintf/snprintf)
|
|
|
|
builtins/printf.def
|
|
- support %a, %A if HAVE_PRINTF_A_FORMAT is defined
|
|
|
|
include/typemax.h
|
|
- new file, with the TYPE_MAXIMUM stuff that's duplicated in several
|
|
files in lib/sh
|
|
|
|
lib/sh/{fmtulong,strtol,snprintf}.c
|
|
- include <typemax.h> instead of having the definitions in each file
|
|
|
|
lib/sh/Makefile.in
|
|
- updated dependencies for typemax.h
|
|
|
|
10/22
|
|
-----
|
|
configure.in
|
|
- call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines
|
|
in chartypes.h
|
|
|
|
config.h.in
|
|
- defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT}
|
|
|
|
include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h
|
|
- don't redefine some is* ctype macros/functions if HAVE_ISXXX is
|
|
defined (meaning that an appropriate function, but not a macro,
|
|
exists)
|
|
|
|
lib/sh/strtrans.c
|
|
- new function, ansic_shouldquote, returns 1 if argument string
|
|
contains non-printing chars that should be quoted with $'...'
|
|
|
|
externs.h
|
|
- new declaration for ansic_shouldquote()
|
|
|
|
variables.c
|
|
- change print_var_value to ansi C quote the string if we're not in
|
|
posix mode and the variable's value contains non-printing chars,
|
|
to use the regular shell single quoting if the value contains
|
|
shell meta-characters, and to just output the string otherwise
|
|
|
|
lib/sh/shquote.c
|
|
- add `break' to `case '~':' to avoid fallthrough and extra test
|
|
|
|
doc/bashref.texi
|
|
- note that in POSIX mode, `set' displays variable values that
|
|
include nonprinting characters without quoting, unless they
|
|
contain shell metacharacters
|
|
|
|
builtins/printf.def, lib/sh/snprintf.c
|
|
- handle `F' conversion specifier as equivalent to 'f'
|
|
|
|
parse.y, {nojobs,variables}.c
|
|
- a couple of cleanups for when building a minimal configuration
|
|
|
|
nojobs.c
|
|
- new function: stop_making_children(), just sets
|
|
already_making_children to 0 (like stop_pipeline)
|
|
|
|
subst.c
|
|
- call stop_making_children from subst.c:command_substitute if
|
|
JOB_CONTROL is not defined. This fixes the bug where the wrong
|
|
process is waited for (and its status returned) when using
|
|
command substitution in a null command in a shell function
|
|
|
|
builtins/printf.def
|
|
- new variable `tw' used to keep track of the total number of
|
|
characters written by a single call to `printf' -- to be
|
|
used for the `%n' conversion, which will be added later. It
|
|
gets reset each time we reuse the format string, which is what
|
|
ksh93 seems to do
|
|
|
|
10/23
|
|
-----
|
|
variables.c
|
|
- new function, bind_var_to_int (char *var, long val)
|
|
|
|
variables.h
|
|
- extern declaration for bind_var_to_int
|
|
|
|
lib/sh/netopen.c
|
|
- use gai_strerror() for error messages when getaddrinfo() fails
|
|
- use PF_INET if DEBUG is defined, since IPv6 doesn't work for me
|
|
|
|
Makefile.in
|
|
- pass DEBUG=${DEBUG} down to makes in some subdirectories
|
|
|
|
{builtins,lib/{glob,sh}}/Makefile.in
|
|
- append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile
|
|
|
|
builtins/printf.def
|
|
- added support for %n format conversion char (number of chars printed
|
|
so far from current format string)
|
|
|
|
10/24
|
|
-----
|
|
variables.c
|
|
- if posixly_correct is set, the default value of $MAILCHECK is 600
|
|
- use legal_number instead of atoi in adjust_shell_level
|
|
- treat non-numeric assignments to SECONDS as 0 in assign_seconds
|
|
- new function, init_funcname_var; sets FUNCNAME as a dynamic variable
|
|
if it's not set in the initial environment
|
|
- new function, init_groups_var; sets GROUPS as a dynamic array
|
|
variable if it's not set in the initial environment
|
|
- new function, init_dirstack_var; sets DIRSTACK as a dynamic array
|
|
variable if it's not set in the initial environment
|
|
- new function, init_seconds_var; sets SECONDS as a dynamic
|
|
variable using any valid integer value in the initial environment
|
|
as the initial value, as if an assignment had been performed
|
|
- call init_funcname_var, init_groups_var, init_dirstack_var,
|
|
init_seconds_var from initialize_dynamic_variables
|
|
- non-numeric values assigned to LINENO are treated as 0
|
|
- change initialize_shell_variables to not auto-export PATH or TERM
|
|
- change set_home_var to not auto-export HOME
|
|
- change set_shell_var to not auto-export SHELL
|
|
- broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE
|
|
out into a separate function, set_machine_vars; none of those
|
|
variables are auto-exported
|
|
- bash no longer un-exports SSH_CLIENT or SSH2_CLIENT
|
|
|
|
shell.c
|
|
- changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if
|
|
SSH_SOURCE_BASHRC is defined in config-top.h
|
|
|
|
config-top.h
|
|
- added a commented-out definition for SSH_SOURCE_BASHRC
|
|
|
|
10/25
|
|
-----
|
|
|
|
Makefile.in
|
|
- changed RELSTATUS to `rc1' (release candidate 1)
|
|
|
|
10/29
|
|
-----
|
|
locale.c
|
|
- fixed an `=' vs. `==' typo in set_locale_var when parsing
|
|
LC_NUMERIC
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document what bash does with $POSIXLY_CORRECT
|
|
|
|
doc/builtins.1
|
|
- some updates
|
|
|
|
builtins/psize.sh
|
|
- some mktemp(1) changes
|
|
|
|
lib/readline/readline.c
|
|
- change rl_backward to check for rl_point < 0 and reset to 0 if so
|
|
|
|
lib/readline/util.c
|
|
- don't compile in _rl_strpbrk if HAVE_STRPBRK is defined
|
|
|
|
lib/readline/rlprivate.h
|
|
- remove extern declaration of _rl_strpbrk
|
|
|
|
lib/readline/rldefs.h
|
|
- #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise
|
|
add extern declaration of _rl_strpbrk from rlprivate.h
|
|
|
|
{mailcheck,shell,variables}.c
|
|
- make sure to include posixtime.h to get any prototype for time(3)
|
|
in scope
|
|
|
|
{array,eval,execute_cmd,mksyntax,subst}.c, parse.y
|
|
builtins/common.c
|
|
lib/sh/pathcanon.c
|
|
- a few changes as the result of `gcc -Wall' patches from solar
|
|
designer
|
|
|
|
builtins/read.def, parse.y
|
|
- change some calls to free() to xfree()
|
|
|
|
builtins/set.def
|
|
- make sure unset_builtin() resets unset_array to 0 each time through
|
|
the loop, because it's set (and used) depending on the current
|
|
argument
|
|
|
|
shell.h
|
|
- new define, USE_VAR, to force the compiler to not put a particular
|
|
variable in a register -- helpful if registers are not restored
|
|
by setjmp/longjmp
|
|
|
|
builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c
|
|
- use USE_VAR for some variables
|
|
|
|
subst.c
|
|
- fixed a case in expand_word_internal where a NULL pointer could
|
|
have been passed to free() (though free() should ignore it)
|
|
- fixed a case at the end of expand_word_internal where LIST could
|
|
have been used uninitialized (it makes gcc happy, though it
|
|
doesn't happen in practice)
|
|
|
|
test.c
|
|
- give test_syntax_error(), beyond(), and integer_expected_error()
|
|
the `__noreturn__' attribute for gcc
|
|
|
|
unwind_prot.c
|
|
- in clear_unwind_protect_list(), convert `flags' to `long' (via
|
|
assignment to a `long' variable) before casting to `char *', in
|
|
case pointers and longs are 64 bits and ints are 32 (makes no
|
|
difference on 32-bit machines)
|
|
|
|
10/30
|
|
-----
|
|
print_cmd.c
|
|
- fixed cprintf to avoid gcc warning about assigning const pointer
|
|
to non-const (discarding type qualifier)
|
|
|
|
{make_cmd,pcomplete,test}.c,parse.y
|
|
- some minor changes to shut up gcc warnings
|
|
|
|
lib/sh/tmpfile.c
|
|
- fixed sh_mktmpfp to avoid file descriptor leaks in the case that
|
|
sh_mktmpfd succeeds but fdopen fails for some reason
|
|
- change sh_mktmpfd to use the same scheme for computing `filenum'
|
|
as sh_mktmpname
|
|
- change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined
|
|
- changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to
|
|
`nameroot' if `nameroot == 0' (duh)
|
|
- add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined
|
|
- add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined
|
|
|
|
support/{fixlinks,mkclone}
|
|
- use mktemp if it's available for the symlink test
|
|
- use $TMPDIR instead of hardcoding /tmp; default to /tmp
|
|
- use a better filename for the symlink test instead of `z'
|
|
|
|
support/bashbug.sh
|
|
- more changes inspired by a patch from solar designer
|
|
|
|
lib/malloc/Makefile.in
|
|
- new target `alloca', which builds libmalloc.a with alloca.o only
|
|
(for systems without alloca that are configured --without-bash-malloc)
|
|
|
|
configure.in
|
|
- if we don't have a working alloca and are not configured to build
|
|
the bash malloc library, make a malloc library containing only
|
|
alloca.o
|
|
|
|
aclocal.m4
|
|
- slight change to RL_LIB_READLINE_VERSION to deal with minor version
|
|
numbers with a letter appended (like 4.2a)
|
|
|
|
10/31
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- slight change to note that only interactive shells resend a SIGHUP
|
|
to all jobs before exiting
|
|
|
|
externs.h
|
|
- declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined. This
|
|
keeps picky compilers from choking because intmax_t is not defined
|
|
(MacOS X 10.1)
|
|
|
|
builtins/printf.def
|
|
- #define NEED_STRTOIMAX_DECL before including shell.h
|
|
|
|
11/1
|
|
----
|
|
general.c
|
|
- check in bash_tilde_expand() for an unquoted tilde-prefix; don't
|
|
bother passing the string to tilde_expand unless the prefix is
|
|
unquoted
|
|
|
|
shell.c
|
|
- fix a problem with $LINENO when executing commands supplied with
|
|
the -c invocation option when ONESHOT is defined
|
|
|
|
[bash-2.05a-rc1 frozen]
|
|
|
|
builtins/printf.def
|
|
- fix the %n conversion to require that the variable name supplied
|
|
be a valid shell identifier
|
|
|
|
variables.c
|
|
- improve random number generator slightly by using the upper 16
|
|
bits of the running random number instead of the lower 16, which
|
|
are incrementally more random
|
|
|
|
11/2
|
|
----
|
|
configure.in
|
|
- if RL_INCLUDEDIR ends up being /usr/include, don't put
|
|
-I$(RL_INCLUDEDIR) into CFLAGS
|
|
|
|
11/5
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- correct description of POSIXLY_CORRECT to note that the shell enters
|
|
posix mode *before* the startup files are read if POSIXLY_CORRECT
|
|
is in the initial environment
|
|
|
|
variables.c
|
|
- fix function prologues for init_dirstack_var and init_groups_var
|
|
to agree with caller (no arguments)
|
|
|
|
jobs.c
|
|
- fix forward function declarations for pipe_read and pipe_close
|
|
|
|
subst.c
|
|
- removed `inline' attribute from skip_double_quoted because it can
|
|
potentially be called recursively
|
|
|
|
bashline.c
|
|
- quick fix to bashline.c:attempt_shell_completion programmable
|
|
completion code to just punt if the end of the command word found
|
|
by find_cmd_end is <= the start found by find_cmd_start (the bug
|
|
is probably in find_cmd_start -- fix later)
|
|
|
|
pcomplete.c
|
|
- fix gen_matches_from_itemlist to return if the stringlist is null
|
|
after any cleaning or initialization, before trying to use it
|
|
- fix GEN_COMPS to only bother to try to append the STRINGLIST
|
|
returned by gen_matches_from_itemlist to `glist' if it's non-NULL
|
|
|
|
lib/sh/stringlist.c
|
|
- make copy_stringlist return NULL if the STRINGLIST * passed as an
|
|
argument is NULL
|
|
- make append_stringlist call copy_stringlist only if M2 is non-NULL;
|
|
otherwise just return NULL if m1 is NULL
|
|
- make word_list_to_stringlist return 0 immediately if the passed
|
|
LIST argument is NULL
|
|
- make realloc_stringlist call alloc_stringlist if the passed
|
|
STRINGLIST argument (`sl') is 0, just like realloc calls malloc
|
|
|
|
subst.c
|
|
- in skip_to_delim(), if we have an unclosed ${, and it's at the end
|
|
of the string (string[i] == '{', string[i+1] == '{' and
|
|
string[i+2] == 0, return si (i + 2) immediately without bothering
|
|
to call extract_dollar_brace_string or extract_delimited_string
|
|
- in skip_to_delim(), if string[i] is 0 after a call to
|
|
extract_dollar_brace_string or extract_delimited_string (meaning we
|
|
have an unclosed ${ or other expansion, return i immediately without
|
|
doing a `continue' (which will increment i past the end of string)
|
|
- in split_at_delims, don't increment te by 1 if it's pointing to a
|
|
delimiter. this has the effect of skipping the first delimiter
|
|
char in a possibly multi-character delimiter, and ignoring
|
|
single-char delimiters like `>'
|
|
|
|
configure.in
|
|
- use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to
|
|
AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test
|
|
fails
|
|
|
|
general.c
|
|
- introduce two new variables: bash_tilde_{prefixes,suffixes}, set
|
|
to the additional prefixes and suffixes bash wants to pass to the
|
|
tilde expansion code (reserved for post-bash-2.05a fix)
|
|
|
|
aclocal.m4
|
|
- add missing `test' in BASH_CHECK_SYS_SIGLIST
|
|
|
|
11/7
|
|
----
|
|
lib/readline/vi_mode.c
|
|
- fix rl_vi_goto_mark to explicitly check that the desired mark is
|
|
between 'a' and 'z', since some locales have lowercase letters
|
|
outside that range, which could cause a negative subscript
|
|
|
|
include/chartypes.h
|
|
- remove superfluous `#undef ISASCII'
|
|
|
|
lib/sh/strto[iu]max.c
|
|
- changes from Paul Eggert to work around buggy compilers and catch
|
|
configuration errors at compile time
|
|
|
|
aclocal.m4
|
|
- new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but
|
|
with a fix for Irix 5.3 (not called, since I'm not sure it's the
|
|
right thing to do -- the C standard allows double and long double
|
|
to be the same size)
|
|
|
|
lib/sh/snprintf.c
|
|
- only try to write the trailing NUL in vsnprintf_internal if
|
|
data->length is >= 0, since if it's not, we probably don't have
|
|
a buffer
|
|
|
|
Makefile.in
|
|
- changed RELSTATUS to `release'
|
|
|
|
11/8
|
|
----
|
|
lib/sh/strtol.c
|
|
- make sure chars passed to toupper are cast to unsigned
|
|
|
|
unwind_prot.c
|
|
- change clear_unwind_protect_list to not require a cast from `int'
|
|
to `char *'
|
|
|
|
lib/readline/chardefs.h
|
|
- make _rl_digit_p succeed only for ascii digits, since that's what
|
|
most callers assume
|
|
|
|
11/13
|
|
-----
|
|
doc/bashref.texi
|
|
- added `ERR' trap and [-+]O invocation option to section listing
|
|
differences from the Bourne shell
|
|
|
|
11/15
|
|
-----
|
|
[bash-2.05a released]
|
|
|
|
11/19
|
|
-----
|
|
include/stdc.h
|
|
- new define, INLINE, defined as `inline' for gcc and empty otherwise
|
|
|
|
subst.c
|
|
- make skip_double_quoted, sub_append_string have INLINE attribute
|
|
|
|
trap.c
|
|
- use BASH_NSIG as upper limit for signal names in signal_name()
|
|
|
|
lib/readline/bind.c
|
|
- use RL_COMMENT_BEGIN_DEFAULT in output for rl-comment-begin value
|
|
|
|
error.c
|
|
- fix sys_error to save value of errno around calls to fprintf
|
|
|
|
doc/Makefile.in
|
|
- added rules to create PDF files from postscript and dvi input
|
|
|
|
MANIFEST.doc
|
|
- added {article,bash,bashref,rose94}.pdf
|
|
|
|
doc/bash.1
|
|
- rearranged some `.PD 0' and `.TP' directives so man2html will
|
|
handle them better (shouldn't affect groff output)
|
|
|
|
support/man2html.c
|
|
- small fix to handle quoted string arguments to directives like
|
|
`.BR' without mangling the output
|
|
|
|
11/20
|
|
-----
|
|
{arrayfunc,variables}.c
|
|
- changed calling sequence for dynamic array variable `assign'
|
|
functions to (SHELL_VAR *self, char *value, arrayind_t ind)
|
|
- changed calling sequence for dynamic variable assign functions
|
|
to the same as array variable assign_func. Now this can be
|
|
prototyped
|
|
|
|
variables.h
|
|
- the assign_func member of a `struct variable' is now of type
|
|
`sh_var_assign_func_t', which is prototyped
|
|
- the dynamic_value member of a `struct variable' is now of type
|
|
`sh_var_value_func_t', which is prototyped
|
|
|
|
variables.c
|
|
- changed to use `sh_var_assign_func_t' and `sh_var_value_func_t'
|
|
|
|
builtins/cd.def
|
|
- when in posix mode, if the new directory name formed by PWD and
|
|
the argument passed by the user cannot be canonicalized, and the
|
|
-P option has not been supplied, return failure immediately
|
|
- if canonicalization failed, but the fallback to the directory
|
|
name specified by the user succeeds, reset the current working
|
|
directory
|
|
|
|
lib/readline/{input.c,rlprivate.h}
|
|
- renamed rl_unget_char to _rl_unget_char; made library global
|
|
|
|
lib/readline/{{bind,readline}.c,{keymaps,rlprivate}.h}
|
|
- support for `key subsequences'; allows a key sequence and a function
|
|
mapped to a subsequence of that key sequence. Primarily to allow
|
|
arrow keys to be bound in readline vi insert mode, while preserving
|
|
the ESC function to switch to command mode.
|
|
|
|
lib/readline/{input.c,rlprivate.h}
|
|
- new function, _rl_input_queued(T), does a check with select or
|
|
FIONREAD with a timeout of `T' (which is generally 0)
|
|
|
|
lib/readline/readline.c
|
|
- change _rl_dispatch_subseq to test for input in the queue if we
|
|
get ESC while in vi insertion mode if the keymap entry type for
|
|
ESC is ISKMAP. If _rl_input_queued returns non-zero, we assume
|
|
that an arrow key sequence has been pressed and go ahead with the
|
|
subsequence. If it returns zero, we assume that the user pressed
|
|
ESC to switch into command mode, and dispatch to that right away.
|
|
This avoids forcing the user to press another key before switching
|
|
into command mode
|
|
|
|
11/21
|
|
-----
|
|
lib/readline/readline.c
|
|
- bind common arrow key sequences in vi insertion keymap
|
|
|
|
lib/readline/terminal.c
|
|
- bind termcap definition's arrow keys in vi insertion keymap
|
|
|
|
lib/readline/bind.c
|
|
- check for rl_vi_movement_mode in _rl_bind_if_unbound, so
|
|
binding the arrow keys can work
|
|
|
|
lib/readline/readline.c
|
|
- since _rl_bind_if_unbound does the check of what's currently
|
|
bound to the key sequence, the check in bind_arrow_keys_internal
|
|
was redundant
|
|
- bind_arrow_keys_internal now takes a Keymap argument and handles
|
|
saving and restoring _rl_keymap; changed bind_arrow_keys
|
|
accordingly
|
|
|
|
builtins/fc.def
|
|
- fix from Paul Eggert to substitute the nearest history number in
|
|
range if an out-of-range value is supplied. POSIX requires this
|
|
|
|
lib/sh/pathcanon.c
|
|
- fix from Corrina Vinschen for the special `cygdrive' prefix on
|
|
Cygwin
|
|
|
|
bashhist.c
|
|
- split the history adding code into more pieces:
|
|
check_history_control (char *line) checks LINE against the value
|
|
of HISTCONTROL, returning 1 if LINE should be saved and 0 if not
|
|
|
|
check_add_history (char *line) calls check_history_control and
|
|
history_should_ignore (line) and saves the line with
|
|
bash_add_history if the checks indicate that it should be saved
|
|
|
|
maybe_add_history just calls check_add_history to set the value
|
|
of first_line_saved
|
|
|
|
bashhist.h
|
|
- extern declaration for check_add_history()
|
|
|
|
shell.c
|
|
- don't call load_history() from the interactive shell startup
|
|
code if history_lines_this_session is > 0, indicating that we've
|
|
already saved some lines in the history and that we probably
|
|
don't want to overwrite them
|
|
|
|
builtins/history.def
|
|
- call check_add_history from push_history, so `history -s xx'
|
|
works even when in a compound command whose first line has not
|
|
been saved. (Caveat: in a compound command when the first
|
|
line has been saved, the line supplied to history -s will become
|
|
part of the compound command's history entry. Of course, the
|
|
delete_history call could remove the compound command from the
|
|
history entirely)
|
|
|
|
bashline.c
|
|
- use sh_makepath instead of xmalloc/sprintf in
|
|
command_word_completion_function
|
|
|
|
lib/readline/complete.c
|
|
- get_y_or_n now takes an int FOR_PAGER argument; caller changed
|
|
If FOR_PAGER is non-zero, get_y_or_n returns appropriate values
|
|
for a more-like pager: `newline' or `return' return 2; `q' or
|
|
`Q' return 0
|
|
- there is now a mini internal more-like pager for displaying a
|
|
list of completions that exceeds the screen height (new function
|
|
_rl_internal_pager, called from rl_display_match_list)
|
|
|
|
11/24
|
|
-----
|
|
command.h
|
|
- new flag, W_TILDEEXP, says to do tilde expansion on an
|
|
assignment word
|
|
|
|
execute_cmd.c
|
|
- fix_assignment_words now sets W_TILDEEXP for assignment word
|
|
arguments to `assignment builtins'
|
|
|
|
general.c
|
|
- bash_tilde_expand now takes a second argument indicating whether
|
|
or not it's being invoked in an `assignment context'
|
|
|
|
general.h
|
|
- change extern declaration for bash_tilde_expand
|
|
|
|
{bashline,execute_cmd,findcmd,general,variables}.c
|
|
builtins/evalfile.c
|
|
lib/sh/makepath.c
|
|
- fix callers of bash_tilde_expand appropriately
|
|
|
|
subst.c
|
|
- fix callers of bash_tilde_expansion appropriately
|
|
- add (currently commented-out) code that would tilde expand assignment
|
|
statement arguments to assignment builtins (W_TILDEEXP flag set)
|
|
even when the shell is in posix mode
|
|
|
|
bashline.c
|
|
- fix attempt_shell_completion to turn off
|
|
rl_filename_completion_desired when doing command name completion,
|
|
so no slash gets appended to the name if there happens to be a
|
|
directory with the same name in the current directory
|
|
|
|
11/26
|
|
-----
|
|
lib/readline/rltech.texinfo
|
|
- a couple of additions to the rl_stuff_char description
|
|
|
|
parse.y
|
|
- turn off echo_input_at_read in parse_string_to_word_list, so `set -v'
|
|
doesn't give extra lines of output when doing compound array
|
|
assignment
|
|
|
|
subst.c
|
|
- fix split_at_delims to handle skipping over a `\n' if it's a
|
|
delimiter (use spctabnl(c) instead of whitespace(c))
|
|
|
|
11/27
|
|
-----
|
|
support/config.{guess,sub}
|
|
- updated (with bash changes) to latest version from gnu.org
|
|
|
|
sig.h
|
|
- add prototype for set_signal_handler declaration
|
|
|
|
builtins/setattr.def
|
|
- add prototype to extern declaration of declare_builtin
|
|
|
|
builtins/times.def
|
|
- add no_options call, since times takes no options
|
|
|
|
lib/sh/spell.c
|
|
- add prototypes to forward declarations for midist and spdist
|
|
|
|
lib/sh/strtrans.c
|
|
- add explicit int return type to ansic_shouldquote declaration
|
|
|
|
lib/readline/rldefs.h, lib/readline/{macro,readline,util,undo}.c
|
|
- move define for SWAP to rldefs.h, removed from various C files
|
|
|
|
lib/readline/vi_mode.c
|
|
- removed define for exchange(), changed to use SWAP instead
|
|
|
|
lib/readline/bind.c
|
|
- added some static forward function declarations
|
|
- find_boolean_var, find_string_var now take a `const char *' argument
|
|
|
|
lib/readline/signals.c
|
|
- added static forward declaration for rl_maybe_set_sighandler
|
|
|
|
lib/readline/readline.c
|
|
- add some common key bindings for the HOME and END keys in
|
|
bind_arrow_keys_internal
|
|
|
|
lib/readline/terminal.c
|
|
- fetch the `@7' termcap string; it's sent by the END key
|
|
- attempt to bind the terminal's END key to rl_end_of_line in
|
|
bind_termcap_arrow_keys; I don't know why I was using `kH'
|
|
instead of `@7'
|
|
|
|
doc/builtins.1
|
|
- remove `case', `for', `if', `until', `while' from NAME section;
|
|
those are not shell builtins
|
|
|
|
11/28
|
|
-----
|
|
stringlib.c
|
|
- new function, find_token_in_alist, takes a token value and an
|
|
ALIST argument, and returns the string correspoinding to the
|
|
token if found in the alist
|
|
|
|
externs.h
|
|
- new extern declaration for find_token_in_alist()
|
|
|
|
subst.c
|
|
- string_list_internal is no longer static
|
|
|
|
subst.h
|
|
- new extern declaration for string_list_internal()
|
|
|
|
parse.y
|
|
- new alist array of other tokens returned by read_token which are
|
|
not reserved words in word_token_alist[]
|
|
- reworked error reporting: new functions print_offending_line,
|
|
which prints the line containing the syntax error,
|
|
error_token_from_token, which takes the current token and tries to
|
|
figure out its textual representation, and error_token_from_text,
|
|
which does the old job of finding the bad token by analyzing the
|
|
text of shell_input_line at the current index
|
|
- report_syntax_error now tries to figure out the token that caused
|
|
the syntax error by first looking at current_token and falling
|
|
back to the old method of textual analysis if that fails
|
|
- report_syntax_error doesn't say the token resulting from the textual
|
|
analysis of the input line is an `unexpected token'; it just
|
|
says there is a `syntax error near xxx'
|
|
- changed conditional command error reporting to use the value
|
|
returned by error_token_from_token if it's not null instead of
|
|
just using the token value in the message, since current_token
|
|
ends up being set to -1, and the text of the message from
|
|
report_syntax_error might not be exactly right
|
|
- change parse_string_to_word_list to set current_token to the
|
|
offending token returned by read_token before calling yyerror()
|
|
to make the error reporting do the right thing
|
|
|
|
aclocal.m4
|
|
- fixed typo in BASH_CHECK_LIB_TERMCAP
|
|
|
|
configure.in
|
|
- add check for isinf(3); define HAVE_ISINF_IN_LIBC if found
|
|
|
|
config.h.in
|
|
- add define for HAVE_ISINF_IN_LIBC
|
|
|
|
lib/sh/snprintf.c
|
|
- check for Inf and NaN, using isinf and isnan if they're found in
|
|
libc
|
|
- use the current locale for thousands separator and decimal point
|
|
- recognize "'" flag; not implemented yet
|
|
- fix for snprintf/vsnprintf with length of 0 and string argument of
|
|
0 with non-zero length
|
|
|
|
builtins/read.def
|
|
- TMOUT is now the default timeout for `read' (and select) if set,
|
|
like ksh93 when reading from the terminal
|
|
- edit_line (called by read -e) now just does readline's filename
|
|
completion by setting rl_attempted_completion_function to NULL,
|
|
since e.g., doing command completion for the first word on the
|
|
line wasn't really useful
|
|
|
|
execute_cmd.c
|
|
- changed select_command to return failure status if select_query
|
|
returns NULL, indicating that read_builtin returned
|
|
EXECUTION_FAILURE
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new TMOUT behavior
|
|
- slight change to the description of the test `-ef' option
|
|
|
|
doc/bashref.texi
|
|
- added item to posix mode section describing failure behavior of
|
|
cd when invoked in logical mode and the pathname formed by
|
|
combining $PWD and the directory argument does not refer to an
|
|
existing directory
|
|
|
|
11/29
|
|
-----
|
|
execute_cmd.c
|
|
- fix execute_function to call dispose_function_env after
|
|
merge_function_env if the shell is in posix mode (fixes debian
|
|
bash bug #117673)
|
|
|
|
lib/readline/readline.c
|
|
- rl_forward -> rl_forward_char; rl_forward function for compatibility
|
|
- rl_backward -> rl_backward_char; rl_forward function for
|
|
compatibility
|
|
- new functions, rl_forward_byte, rl_backward_byte, for future use
|
|
|
|
lib/readline/readline.h
|
|
- extern declarations for rl_forward_char, rl_backward_char,
|
|
rl_forward_byte, rl_backward_byte
|
|
|
|
lib/readline/{emacs_keymap,funmap,vi_keymap,vi_mode
|
|
- rl_forward -> rl_forward_char
|
|
- rl_backward -> rl_backward_char
|
|
|
|
lib/readline/funmap.c
|
|
- new bindable names, `backward-byte' and `forward-byte'
|
|
|
|
aclocal.m4
|
|
- new function, BASH_CHECK_MULTIBYTE, encapsulates checks for
|
|
multibyte code
|
|
|
|
config.h.in
|
|
- add necessary defines for multibyte include files and functions
|
|
|
|
configure.in
|
|
- add call to BASH_CHECK_MULTIBYTE
|
|
|
|
config-bot.h
|
|
- add code to define HANDLE_MULTIBYTE if prerequisites are met
|
|
|
|
lib/sh/xstrchr.c
|
|
- new file, xstrchr() is strchr(3) that handles multibyte characters
|
|
|
|
bashhist.c
|
|
- first_line_saved -> current_command_first_line_saved; variable is
|
|
now global
|
|
|
|
bashhist.h
|
|
- extern declaration for current_command_first_line_saved
|
|
|
|
11/30
|
|
-----
|
|
bashhist.c
|
|
- break the code that actually calls add_history out of
|
|
bash_add_history into a new function, really_add_history;
|
|
bash_add_history now calls really_add_history
|
|
- check_add_history takes a second `force' argument telling it
|
|
whether to call bash_add_history (force == 0) or really_add_history
|
|
(force != 0)
|
|
|
|
builtins/history.def
|
|
- in push_history, call delete_last_history if the current command
|
|
has more than one line, the first line was saved, and
|
|
command-oriented history is active. This takes care of deleting
|
|
the right history element if `history -s' is used within a
|
|
compound or multiline command
|
|
- in push_history, call check_add_history with second argument of 1
|
|
to skip check of current_command_line_count and add the arguments
|
|
to history -s as a single separate history entry
|
|
|
|
12/3
|
|
----
|
|
lib/readline/complete.c
|
|
- append a slash to completed names which are symlinks to directories
|
|
if the new variable _rl_complete_mark_symlink_dirs is non-zero
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declaration for _rl_complete_mark_symlink_dirs
|
|
|
|
lib/readline/bind.c
|
|
- new bindable variable, `mark-symlinked-directories', mirrors the
|
|
value of _rl_complete_mark_symlink_dirs
|
|
|
|
doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo}
|
|
- documented new `mark-symlinked-directories' variable
|
|
|
|
12/4
|
|
----
|
|
variables.[ch]
|
|
- set_pipestatus_array now takes a second argument with the number
|
|
of processes in the array
|
|
- changed set_pipestatus_array to just modify the value in place if
|
|
the existing array has one element and the new array has one
|
|
element, and to modify existing values in place if new array has
|
|
more elements than existing array
|
|
|
|
variables.c, jobs.c
|
|
- changed set_pipestatus_array callers
|
|
|
|
jobs.c
|
|
- moved call to setjstatus() from set_job_status_and_cleanup to
|
|
wait_for, since set_job_status_and_cleanup is part of the SIGCHLD
|
|
signal handler call path, and race conditions accessing the
|
|
PIPESTATUS array will result for things like
|
|
|
|
while true; do date; done | cat > /dev/null
|
|
|
|
12/5
|
|
----
|
|
xmalloc.h
|
|
- don't redefine xmalloc, xrealloc, and xfree if DISABLE_MALLOC_WRAPPERS
|
|
is #defined
|
|
|
|
config.h.in
|
|
- #undef for DISABLE_MALLOC_WRAPPERS
|
|
|
|
configure.in
|
|
- define DISABLE_MALLOC_WRAPPERS if the --with-purify option is
|
|
supplied
|
|
|
|
lib/malloc/trace.c
|
|
- new function, malloc_trace_bin(N), traces allocations and frees
|
|
to bucket N (uses the same type of bitmap as `busy')
|
|
|
|
lib/malloc/table.c
|
|
- fix wraparound search problem in find_entry when searching for a
|
|
free entry when the table is full
|
|
|
|
12/6
|
|
----
|
|
lib/malloc/table.c
|
|
- keep an `overflow bucket' around to use when the table is full,
|
|
so find_entry always returns a valid pointer when FIND_ALLOC
|
|
is set
|
|
- new static variable to keep a count of the number of MT_ALLOC
|
|
entries in the mem_table
|
|
|
|
lib/sh/{oslib,clktck}.c
|
|
- if HAVE_LIMITS_H is defined, include <limits.h>
|
|
|
|
lib/sh/oslib.c
|
|
- new function, getmaxgroups() returns max number of simultaneous
|
|
groups
|
|
- new function, getmaxchild(), returns max number of simultaneous
|
|
user processes
|
|
|
|
general.c
|
|
- removed forest of #defines for getmaxgroups()
|
|
|
|
externs.h
|
|
- new extern declaration for getmaxgroups()
|
|
- new extern declaration for getmaxchild()
|
|
- new extern declaration for isnetconn()
|
|
|
|
lib/sh/netconn.c,shell.c
|
|
- new file, isnetconn() from shell.c moved here
|
|
|
|
Makefile.in, lib/sh/Makefile.in
|
|
- necessary changes for netconn.c
|
|
|
|
builtins/ulimit.def
|
|
- changed getmaxuprc() to just call getmaxchild() and massage the
|
|
return value appropriately
|
|
|
|
{jobs,nojobs}.c
|
|
- use the value returned by getmaxchild() in
|
|
mark_dead_jobs_as_notified instead of static CHILD_MAX
|
|
|
|
jobs.c
|
|
- new function, compact_jobs_list, removes some number of jobs from
|
|
the jobs table and reallocates the table, copying the jobs that
|
|
are left from the old table to the new. Compaction happens from
|
|
the beginning of the list and removes dead jobs, and we make sure
|
|
to keep the last CHILD_MAX jobs as POSIX.2 requires
|
|
- call compact_jobs_list from stop_pipeline if we're in a subshell,
|
|
there are no free jobs in the jobs table, and the jobs table is
|
|
at or above some maximum limit
|
|
|
|
execute_cmd.c
|
|
- change eval_arith_for_expr to set this_command_name to `((' before
|
|
calling evalexp, since it might be changed by evaluating the
|
|
loop body between evalexp calls
|
|
|
|
trap.c
|
|
- change reset_signal to turn off the SIG_TRAPPED flag for the
|
|
given signal, so shell builtins and functions running in command
|
|
substitutions don't run the signal handlers (traps are not supposed
|
|
to be inherited by command substitutions)
|
|
|
|
parse.y
|
|
- changed parse_string_to_word_list to turn off alias expansion
|
|
while parsing the array assignment
|
|
|
|
12/9
|
|
----
|
|
alias.c
|
|
- fix add_alias so that redefining an alias's value also resets the
|
|
EXPANDNEXT flag
|
|
|
|
12/10
|
|
-----
|
|
parse.y
|
|
- new function, token_is_assignment, called to check whether the text
|
|
before `=' makes up a valid assignment token before trying to parse
|
|
a compound assignment statement
|
|
- new function, parse_compound_assignment, to parse a compound
|
|
assignment statement instead of using parse_matched_pair; handles
|
|
comments and error reporting in the parser instead of waiting until
|
|
expansion time
|
|
- changed parse_compound_assignment and parse_string_to_word_list to
|
|
allow reserved words in compound array assignments
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- changed the documentation for rl_callback_read_char and
|
|
rl_callback_handler_remove to say what happens to the terminal
|
|
settings and what needs to be done to reset them
|
|
|
|
12/11
|
|
-----
|
|
bashline.c
|
|
- add emacs_edit_and_execute_command, bound to C-xC-e, like vi-mode
|
|
`v' command
|
|
- add bindable command name `edit-and-execute-command', bound to
|
|
run emacs_edit_and_execute_command()
|
|
|
|
lib/glob/strmatch.c
|
|
- add support for ksh93-like [:word:] character class (isalnum + `_')
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- add note to section describing lists to clarify that a sequence of
|
|
one or more newlines may be used to delimit a command, equivalent
|
|
to a semicolon
|
|
- document new [:word:] pattern matching character class
|
|
|
|
doc/bash.1, lib/readline/doc/rluser.texinfo
|
|
- document `edit-and-execute-command' and its default emacs-mode
|
|
binding
|
|
|
|
include/chartypes.h
|
|
- add defines for TOCTRL and UNCTRL if they're not already defined
|
|
|
|
lib/readline/chardefs.h
|
|
- #undef UNCTRL if it's defined to avoid cpp redefinition warnings
|
|
|
|
lib/sh/strtrans.c
|
|
- add \cX (Control-X) escape for $'...' to ansicstr()
|
|
- change ansic_quote() to allocate at least four chars for each char
|
|
in the string argument, to account for \0xx octal values
|
|
- change ansic_quote() to no longer call sprintf for non-printable
|
|
characters; just translate the string to octal directly
|
|
|
|
print_cmd.c
|
|
- change xtrace_print_word_list to call ansic_quote() if
|
|
ansic_shouldquote() indicates that there are nonprinting characters
|
|
in a word
|
|
|
|
builtins/type.def
|
|
- changed deprecated long option parsing to just replace the word
|
|
in the list with the equivalent short option (-type -> -t) instead
|
|
of removing words from the list
|
|
- changed describe_command to take a single flags argument instead
|
|
of two int args; changed caller
|
|
- type now has two new options: -f suppresses function lookup (like
|
|
command), and -P forces a PATH search for the name(s)
|
|
|
|
builtins/common.h
|
|
- flags for describe_command are here
|
|
- changed extern declaration of describe_command
|
|
|
|
builtins/command.def
|
|
- changed call to describe_command to use flags from common.h, and
|
|
the right number of arguments
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new -f and -P options to `type'
|
|
|
|
12/12
|
|
-----
|
|
lib/readline/rldefs.h
|
|
- fixed prototype for _rl_strnicmp
|
|
|
|
execute_cmd.c
|
|
- select_query now takes a new argument, an int flag saying whether
|
|
or not to print the menu the first time through the loop. An
|
|
empty line in response to the prompt will always cause the menu
|
|
to be reprinted
|
|
- changed execute_select_command to cause select_query to reprint
|
|
the menu only if REPLY is set to NULL, if KSH_COMPATIBLE_SELECT
|
|
is defined
|
|
|
|
config-top.h
|
|
- define KSH_COMPATIBLE_SELECT, with a comment about its meaning
|
|
|
|
lib/readline/readline.c
|
|
- change rl_insert_comment to toggle if given an explicit numeric
|
|
argument: if the first characters on the line don't specify a
|
|
comment, insert one; if they do, delete the comment text
|
|
|
|
doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo}
|
|
- documented new behavior of insert-comment with a numeric argument
|
|
|
|
12/13
|
|
-----
|
|
lib/malloc/watch.c
|
|
- new file, implements watchpoint functions
|
|
|
|
lib/malloc/watch.h
|
|
- new file, define some `events' for watchpoints and extern function
|
|
and variable declarations for watchpoint code
|
|
|
|
lib/malloc/imalloc.h
|
|
- #define MALLOC_WATCH if MALLOC_DEBUG is defined
|
|
- add __P define as in include/stdc.h if not already defined
|
|
|
|
lib/malloc/malloc.c
|
|
- remove __P define, now in imalloc.h
|
|
- include watch.h if MALLOC_WATCH is defined
|
|
- added calls to _malloc_ckwatch in internal_malloc, internal_free,
|
|
and internal_realloc
|
|
|
|
include/stdc.h
|
|
- augment __P define to allow prototypes if PROTOTYPES is defined
|
|
|
|
lib/readline/rlstdc.h
|
|
- augment PARAMS define to allow prototypes if PROTOTYPES is defined
|
|
|
|
lib/malloc/Makefile.in, Makefile.in
|
|
necessary changes to include watch.c in libmalloc
|
|
|
|
lib/readline/readline.c
|
|
- fix rl_delete_text to make sure that the starting position is >= 0
|
|
- _rl_init_line_state (called by readline via readline_initialize)
|
|
now sets rl_mark to 0
|
|
- rl_get_{next,previous}_history set rl_mark to 0 if rl_point is at
|
|
the end of the line and rl_end otherwise in emacs mode
|
|
|
|
lib/readline/kill.c
|
|
- rl_yank_nth_arg_internal and rl_paste_clipboard now set the mark
|
|
at point before calling rl_insert_text, like rl_yank
|
|
- rl_kill_full_line now resets rl_mark to 0
|
|
- rl_kill_line and rl_backward_kill_line now set rl_mark to the
|
|
point after the kill in emacs mode
|
|
- rl_kill_word and rl_backward_kill_word now set rl_mark to the
|
|
point after the kill in emacs mode
|
|
- rl_unix_word_rubout and rl_unix_line_discard now set rl_mark to
|
|
the point after the kill in emacs mode
|
|
|
|
lib/readline/search.c
|
|
- noninc_search saves and restores the mark, since it can be changed
|
|
while reading the search string
|
|
- noninc_dosearch sets the mark at the end of the line, making the
|
|
region bound the `inserted' text since rl_point is set to 0
|
|
- rl_history_search_internal sets the mark at the end of the line,
|
|
for the same reason
|
|
|
|
lib/readline/isearch.c
|
|
- rl_search_history now saves and restores the mark
|
|
- if no matching lines are found at all when doing an isearch, leave
|
|
point where it was instead of moving it to the end of the line
|
|
|
|
12/17
|
|
-----
|
|
lib/readline/rlmbutil.h
|
|
- new file, place for multi-byte character defines and extern
|
|
declarations
|
|
|
|
lib/readline/{bind.c,readline.c,rlprivate.h}
|
|
- new bindable variable, `byte-oriented', tracks value of
|
|
rl_byte_oriented variable
|
|
|
|
lib/readline/mbutil.c
|
|
- new file, with multibyte char utility functions
|
|
|
|
lib/readline/{complete,display,readline,util,vi_mode}.c
|
|
- new code for multibyte characters, derived from IBM patch
|
|
|
|
12/18
|
|
-----
|
|
lib/sh/tmpfile.c
|
|
- include posixtime.h for time() extern declaration
|
|
|
|
support/bashversion.c
|
|
- include <unistd.h> if it's available
|
|
|
|
lib/readline/{histexpand,input,isearch,search}.c
|
|
- new code for multibyte characters, derived from IBM patch
|
|
|
|
lib/readline/readline.h
|
|
- include rltypedefs.h
|
|
|
|
12/19
|
|
-----
|
|
lib/readline/complete.c
|
|
- slight change to mark-directories code to avoid adding a slash if
|
|
point is at the end of the line (rl_line_buffer[rl_point] == '\0')
|
|
and the previous character was a slash
|
|
- change printable_part to not return empty pathnames, which could
|
|
happen when completing filenames and a filename with a trailing
|
|
slash was passed as the argument. If the portion following the
|
|
trailing slash is NULL, ignore it and look for a previous slash.
|
|
If there's no previous slash, just return the filename argument
|
|
- new variable, rl_completion_mark_symlink_dirs, mirrors the value
|
|
of (user-settable with a variable) _rl_complete_mark_symlink_dirs
|
|
but may be modified by application-specific completion functions
|
|
when appropriate (set in rl_complete_internal and rl_menu_complete)
|
|
|
|
lib/readline/readline.h
|
|
- extern declaration for rl_completion_mark_symlink_dirs
|
|
|
|
pcomplete.c
|
|
- if one of the actions is CA_DIRECTORY, set
|
|
rl_completion_mark_symlink_dirs to indicate that we want the
|
|
trailing slash (might have to relax this)
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- documented rl_completion_mark_symlink_dirs variable
|
|
|
|
lib/readline/doc/rluser.texinfo, doc/bash.1
|
|
- documented the fact that `complete -d' and `complete -o dirnames'
|
|
force readline to append a slash to symlinks to directories
|
|
|
|
builtins/enable.def
|
|
- changed enable_shell_builtin to disallow enabling disabled
|
|
builtins in a restricted shell
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new enable behavior in restricted shells
|
|
|
|
doc/Makefile.in
|
|
- new rule to make an `RBASH' file documenting the restrictions
|
|
imposed by a restricted shell
|
|
|
|
expr.c
|
|
- broke the code that evaluates variables and returns results out
|
|
of readtok() into a new function: expr_streval()
|
|
- expr_streval() now performs the standard unset variable error
|
|
behavior if `set -u' has been executed and it's asked to look
|
|
up an unset variable
|
|
- broke the code that frees up the expression context stack into
|
|
a new function: expr_unwind()
|
|
|
|
variables.c
|
|
- fixed bind_int_variable so it handles array element assignment,
|
|
so expressions like `b[7]++' and `b[0] = 42' work right
|
|
- new function, get_variable_value, returns the string value of
|
|
the SHELL_VAR * passed as an argument
|
|
- get_string_value now calls get_variable_value with a non-null
|
|
result from find_variable
|
|
|
|
12/20
|
|
-----
|
|
lib/readline/rlmbutil.h, mbutil.c
|
|
- combined _rl_find_next_mbchar and _rl_find_next_nonzero_mbchar into
|
|
a single function
|
|
- combined _rl_find_prev_mbchar and _rl_find_prev_nonzero_mbchar into
|
|
a single function
|
|
|
|
lib/readline/{display,readline,vi_mode}.c
|
|
- changed callers of _rl_find_next_mbchar and
|
|
_rl_find_next_nonzero_mbchar
|
|
|
|
lib/readline/{complete,display,histexpand,readline,vi_mode}.c
|
|
- changed callers of _rl_find_prev_mbchar and
|
|
_rl_find_prev_nonzero_mbchar
|
|
|
|
12/20
|
|
-----
|
|
lib/sh/mktime.c
|
|
- new file, from glibc/gawk, compiled in if system doesn't have a
|
|
working mktime(3)
|
|
|
|
lib/sh/strftime.c
|
|
- new file, from gawk, compiled in if system doesn't have a
|
|
working strftime(3)
|
|
|
|
lib/sh/Makefile.in, Makefile.in
|
|
- changes for mktime.c, strftime.c
|
|
|
|
configure.in
|
|
- call AC_FUNC_MKTIME, AC_STRUCT_TM, AC_STRUCT_TIMEZONE
|
|
- call AC_REPLACE_FUNC(strftime)
|
|
|
|
config.h.in
|
|
- add defines for TM_IN_SYS_TIME, HAVE_TZSET, HAVE_TM_ZONE,
|
|
HAVE_STRUCT_TM_TM_ZONE, HAVE_STRFTIME
|
|
|
|
externs.h
|
|
- provide an extern declaration for strftime if HAVE_STRFTIME is
|
|
not defined and NEED_STRFTIME_DECL is
|
|
|
|
lib/tilde/tilde.h
|
|
- header files should not include <config.h>
|
|
|
|
parse.y
|
|
- replace code in decode_prompt_string that chops up value returned
|
|
by ctime(3) with calls to strftime -- as a result, the expansion
|
|
of \@ has changed slightly (since it depends on the locale)
|
|
- added new \D{format} prompt string escape; `format' is passed to
|
|
strftime(3). Empty format is the same as `%X' (locale-specific
|
|
representation of the current time)
|
|
- combined cases for '\\', '\a', '\e', and '\r' in same case branch
|
|
in decode_prompt_string
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new \D{format} prompt string expansion
|
|
|
|
builtins/printf.def
|
|
- use ISO C PRIdMAX instead of INTMAX_CONV
|
|
- pass length of format modifiers to mklong instead of computing it
|
|
with strlen()
|
|
|
|
lib/sh/{fmtulong,fmtullong}.c
|
|
- changes from Paul Eggert to make more general
|
|
|
|
arrayfunc.c
|
|
- when converting a variable to an array, make sure to unset the
|
|
dynamic_value and assign_func members of the struct variable,
|
|
since they're not valid anymore
|
|
|
|
12/27
|
|
-----
|
|
configure.in
|
|
- use AC_HELP_STRING in AC_ARG_WITH and AC_ARG_ENABLE
|
|
- remove AC_ARG_ENABLE for largefile, since AC_SYS_LARGEFILE adds
|
|
one
|
|
|
|
1/2/2002
|
|
--------
|
|
{alias,bashline,execute_cmd,general,shell,subst,variables,arrayfunc}.c,general.h
|
|
- changed some calls to strchr to calls to xstrchr for multibyte
|
|
characters
|
|
|
|
include/shmbutil.h
|
|
- add extern declaration for xstrchr to avoid including externs.h
|
|
where it's not appropriate
|
|
|
|
{braces,make_cmd,pathexp,subst,arrayfunc}.c, lib/sh/xstrchr.c
|
|
- include shmbutil.h
|
|
|
|
{stringlib,subst}.c, {externs,subst}.h
|
|
- moved substring() from subst.c to stringlib.c, moved declaration
|
|
from subst.h to externs.h
|
|
|
|
lib/sh/xmbsrtowcs.c
|
|
- new file, replacement function for mbsrtowcs
|
|
|
|
lib/sh/Makefile.in
|
|
- add entries for xmbsrtowcs.c
|
|
|
|
Makefile.in
|
|
- add dependencies on shmbutil.h to appropriate object files
|
|
|
|
lib/glob/strmatch.c
|
|
- break character-class testing out into separate function:
|
|
is_cclass, in prep for multibyte changes
|
|
|
|
{braces,make_cmd}.c
|
|
- changes for multibyte characters
|
|
|
|
builtins/printf.def
|
|
- changes from Paul Eggert to just use intmax_t everywhere an
|
|
int/long/quad is needed and print with "%ld" if the number
|
|
fits in a long and %PRIdMAX otherwise
|
|
- remove getlong, getulong, getllong, getullong, since they're
|
|
no longer needed
|
|
- use a new type `floatmax_t' to print floating point numbers, the
|
|
widest-available floating point type (like `intmax_t'); new
|
|
function `getfloatmax' that calls strtold or strtod as appropriate
|
|
- remove getdouble, getldouble, since they're no longer needed
|
|
|
|
lib/sh/fmtumax.c
|
|
- new file, string-to-[u]intmax_t conversion, just includes
|
|
fmtulong.c with the right defines
|
|
|
|
Makefile.in, lib/sh/Makefile.in
|
|
- additions for fmtumax.c
|
|
|
|
bashtypes.h
|
|
- include <inttypes.h> if it's available
|
|
|
|
expr.c
|
|
- arithmetic is now in intmax_t instead of long
|
|
|
|
externs.h
|
|
- extern declaration for fmtumax
|
|
- change extern declarations for evalexp, itos, inttostr,
|
|
uitos, uinttostr since they now return or use intmax_t instead
|
|
of long
|
|
|
|
{execute_cmd,general,mailcheck,subst,variables}.c, parse.y
|
|
{array,general,subst,test,variables}.h
|
|
lib/sh/{itos,netopen}.c
|
|
builtins/{bashgetopt,common}.c, builtins/common.h
|
|
builtins/{break,fc,history,jobs,let,printf,pushd,read,shift,wait}.def
|
|
- changes for intmax_t shell arithmetic conversion
|
|
|
|
doc/{bashref.texi,bash.1}
|
|
- documented long->intmax_t shell arithmetic conversion
|
|
|
|
sig.c
|
|
- in initialize_terminating_signals, if we've already trapped a
|
|
terminating signal, don't reset the signal handler for it
|
|
|
|
1/3
|
|
---
|
|
{arrayfunc,pathexp}.c, parse.y
|
|
- changes for multibyte chars
|
|
|
|
parse.y, lib/sh/strtrans.c
|
|
- moved ansiexpand from parse.y to lib/sh/strtrans.c
|
|
|
|
parse.y, locale.c
|
|
- moved mk_msgstr and localeexpand from parse.y to locale.c
|
|
|
|
parse.y
|
|
- new function, yy_input_name, returns name of input file from
|
|
bash_input.name
|
|
- broke the code that parses ((...)) constructs out of read_token
|
|
into a new function, parse_dparen()
|
|
|
|
externs.h
|
|
- new extern declaration for ansiexpand(), mk_msgstr(), and
|
|
localeexpand()
|
|
|
|
input.h
|
|
- new extern declaration for yy_input_name()
|
|
|
|
{error,locale}.c
|
|
- use yy_input_name for error and other messages
|
|
|
|
execute_cmd.c
|
|
- change shell_execve to make sure that the file is executable
|
|
before looking at the interpreter to find out why the execve()
|
|
failed (avoids misleading error message)
|
|
|
|
lib/glob/glob.c
|
|
- move code that matches leading `.' and skips those filenames into
|
|
a separate function: skipname(), so there can be unibyte and
|
|
multibyte versions of that function
|
|
|
|
1/7
|
|
---
|
|
subst.c
|
|
- more changes for multibyte characters
|
|
|
|
print_cmd.c
|
|
- change semicolon() so it doesn't output a `;' immediately after a
|
|
newline, since that results in a null command, which is a syntax
|
|
error
|
|
|
|
variables.c
|
|
- fix indirection_level_string to turn off set -x while evaluating
|
|
PS4
|
|
|
|
1/8
|
|
---
|
|
builtins/set.def
|
|
- make -o options into one struct, instead of separate structs for
|
|
option names corresponding to flags and non-flag option names.
|
|
This has the side effect of sorting the option names in output
|
|
|
|
lib/glob/glob.c
|
|
- new function, mbskipname(), multibyte char version of skipname()
|
|
- removed all #ifndef SHELL code, this will never be used outside
|
|
the shell
|
|
|
|
include/posixdir.h
|
|
- move REAL_DIR_ENTRY define here from lib/glob/glob.c
|
|
|
|
lib/glob/glob_loop.c
|
|
- new file, included in glob.c for unibyte and multibyte versions of
|
|
glob_pattern_p
|
|
- added some forward static function declarations with prototypes
|
|
- more changes for multibyte character handling
|
|
|
|
lib/glob/Makefile.in
|
|
- make glob.c depend on glob_loop.c
|
|
- changes for xmbsrtowcs.[co]
|
|
|
|
lib/glob/xmbsrtowcs.c
|
|
- moved here from lib/sh, since the matching functions use it, and
|
|
libglob.a is linked after libsh.a
|
|
|
|
1/9
|
|
---
|
|
lib/glob/smatch.c
|
|
- new file, with strmatch (now xstrmatch) and associated functions,
|
|
with changes for multibyte chars
|
|
|
|
lib/glob/sm_loop.c
|
|
- new file, included by smatch.c, with `generic' versions of matching
|
|
functions that are compiled twice: once each for single-byte and
|
|
multibyte characters
|
|
|
|
lib/glob/strmatch.c
|
|
- strip out everything except strmatch(), which either calls fnmatch
|
|
(if HAVE_LIBC_FNM_EXTMATCH is defined) or xstrmatch
|
|
|
|
lib/glob/collsyms.c
|
|
- changes for multibyte chars
|
|
|
|
lib/glob/Makefile.in, Makefile.in
|
|
- changes for new source files
|
|
|
|
1/10
|
|
----
|
|
lib/readline/complete.c
|
|
- new function, rl_completion_mode (rl_command_func_t *func), returns
|
|
the appropriate value to pass to rl_complete_internal depending on
|
|
FUNC and the value of `show-all-if-ambiguous'. This allows
|
|
application completion functions to present the same interface as
|
|
rl_complete
|
|
|
|
lib/readline/readline.h
|
|
- new extern declaration for rl_completion_mode()
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- documented rl_completion_mode
|
|
|
|
lib/readline/readline.[ch]
|
|
- bumped the version number to 4.3, changing the relevant cpp defines
|
|
|
|
configure.in
|
|
- require that an installed readline version be at least readline-4.3
|
|
|
|
bashline.c
|
|
- converted bash-specific completion functions to use
|
|
rl_completion_mode instead of passing TAB unconditionally
|
|
|
|
builtins/bashgetopt.c
|
|
- the `#' option specifier now means a required numeric argument,
|
|
not an optional one
|
|
|
|
builtins/type.def
|
|
- when converting [-]-{path,type,all} to -[pta], don't bother
|
|
freeing and reallocating the option string; just change opt[1]
|
|
and null opt[2]
|
|
|
|
lib/sh/snprintf.c
|
|
- support %ls/%S and %lc/%C for wide strings and characters,
|
|
respectively, if HANDLE_MULTIBYTE is defined
|
|
|
|
mailcheck.c
|
|
- don't print a message about new mail if the file has not grown,
|
|
even if the access time is less than the modification time
|
|
|
|
1/14
|
|
----
|
|
lib/readline/readline.c
|
|
- new function, rl_replace_line, to replace the readline line buffer
|
|
with the text supplied as an argument
|
|
- new function, rl_replace_from_history, replaces readline line
|
|
buffer with text from history entry passed as argument (undocumented,
|
|
not in readline.h because it requires a definition of
|
|
HIST_ENTRY for the prototype)
|
|
|
|
lib/readline/readlne.h
|
|
- new extern declaration for rl_replace_line
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- documented rl_replace_line
|
|
|
|
lib/readline/{isearch,readline,search}.c
|
|
- use rl_replace_line and rl_replace_from_history where appropriate
|
|
|
|
lib/readline/readline.c
|
|
- broke the code that sets point after moving through the history
|
|
(_rl_history_preserve_point and _rl_history_saved_point) out
|
|
into a separate function, _rl_history_set_point()
|
|
|
|
lib/readline/{complete.c,rlprivate.h}
|
|
- find_completion_word -> _rl_find_completion_word
|
|
- free_match_list -> _rl_free_match_list
|
|
|
|
lib/readline/complete.c
|
|
- postprocess_matches and _rl_free_match_list now return immediately
|
|
if passed a null match list
|
|
|
|
variables.c
|
|
- new function, find_local_variable, finds a local variable by name
|
|
at the current variable context
|
|
- in find_variable_internal, call find_local_variable before searching
|
|
any of the temporary environments if variable_context > 0 (meaning
|
|
we're in a shell function). This lets a local variable
|
|
override a variable whose value was passed in the `function
|
|
environment'
|
|
|
|
1/15
|
|
----
|
|
variables.h, execute_cmd.c
|
|
- declare variables describing the temporary environments in
|
|
variables.h instead of in C files
|
|
|
|
findcmd.c, builtins/setattr.def
|
|
- instead of calling find_tempenv_variable, use find_variable_internal
|
|
and check whether the returned SHELL_VAR * has the tempvar
|
|
attribute
|
|
|
|
variables.c
|
|
- tentative change to lookup order in find_variable_internal so that
|
|
function local variables are found before variables in
|
|
function_env when executing a shell function
|
|
- change make_local_variable to handle making a local variable when
|
|
a variable with the same name already appears in one of the
|
|
temporary environments
|
|
- broke the body of make_var_array out into a new function:
|
|
static char **make_env_array_from_var_list (SHELL_VAR **vars)
|
|
- new function, make_var_array_internal, takes a hash table to look
|
|
in and a pointer to a mapping function and returns a char **
|
|
environment-style list
|
|
- make_var_array now just calls make_var_array_internal
|
|
- new mapping function, local_and_exported, returns all local variables
|
|
in the current variable context with the export attribute set
|
|
- new function, make_local_export_array, returns an environment-style
|
|
char ** array of exported local variables in current context
|
|
- change environment creation order in maybe_make_export_env to
|
|
add variables to the environment in opposite order that
|
|
find_variable_internal uses. This means that local variables in
|
|
shell functions override variables with the same name in the
|
|
function_env
|
|
- change make_local_variable to set the initial value of the
|
|
variable it creates to NULL to make the `is set' and `is null'
|
|
tests that the expansion code does work right
|
|
- change make_local_variable to inherit the value of a variable with
|
|
the same name from the temporary enviroment
|
|
|
|
1/16
|
|
----
|
|
Makefile.in
|
|
- link bashversion with buildversion.o instead of version.o, for
|
|
cross-compiling. version.o is for the target system;
|
|
buildversion.o is for the build system
|
|
|
|
error.c
|
|
- add line numbers to internal_error() messages if the shell is
|
|
not interactive and running a shell script or a -c command
|
|
- report_error now prints non-zero line numbers for non-interactive
|
|
shells
|
|
|
|
test.c
|
|
- test_syntax_error now calls builtin_error() instead of printing
|
|
its own messages
|
|
|
|
builtins/common.c
|
|
- builtin_error now prints line numbers if a non-interactive shell
|
|
is running a shell script or a -c command
|
|
|
|
print_cmd.c
|
|
- in cprintf, remove free_argp, since it's not used
|
|
|
|
builtins/history.def
|
|
- make `history -n' increment the number of history lines in this
|
|
session by the number of lines read from the history file
|
|
|
|
arrayfunc.c
|
|
- fix array_value_internal to expand the subscript even if the
|
|
variable is unset, so side effects produced by the arithmetic
|
|
evaluation will take place
|
|
|
|
lib/readline/doc/{rluser,rltech}.texinfo
|
|
- some fixes for printing in @smallbook format from Brian
|
|
Youmans
|
|
|
|
1/17
|
|
----
|
|
jobs.h
|
|
- new PRUNNING, PSTOPPED, PDEADPROC defines for PROCESSes, analogous
|
|
to RUNNING, STOPPED, and DEADJOB defines for jobs
|
|
|
|
jobs.c
|
|
- use PS_RUNNING, PS_DONE, PS_STOPPED values for `running' field
|
|
of a PROCESS
|
|
- find_pipeline and find_job now take an additional flags argument
|
|
that, if non-zero, means to find only running processes; changed
|
|
all callers
|
|
- changed calls to find_pipeline and find_job made from waitchld
|
|
to find only running processes
|
|
- find_pipeline takes a third argument: an int *. If it looks in
|
|
the jobs list to find the pid, and the arg is non-null, it passes
|
|
the job index back to the caller. Used to avoid calls to
|
|
find_pipeline immediately followed by find_job with the same PID
|
|
|
|
nojobs.c
|
|
- a couple of changes to make sure that set_pid_status is never
|
|
called with a pid argument of 0 or -1
|
|
|
|
trap.c
|
|
- change trap_handler to longjmp to wait_intr_buf (set by wait_builtin)
|
|
if a signal is received for which a trap has been set during
|
|
execution of the wait builtin (need to include builtins.h and
|
|
builtins/builtext.h and declare some extern variables for the
|
|
right things to check)
|
|
- new variable to keep track of which signal caused the longjmp to
|
|
wait_intr_buf, set by trap_handler (wait_signal_received)
|
|
|
|
builtins/wait.def
|
|
- set the return value of wait when a longjmp(wait_intr_buf, 1) is
|
|
done to 128 + wait_signal_received
|
|
|
|
{jobs,nojobs}.c
|
|
- set wait_signal_received to SIGINT in wait_sigint_handler before
|
|
the longjmp(wait_intr_buf, 1)
|
|
|
|
1/18
|
|
----
|
|
bashline.c
|
|
- turn off rl_filename_completion_desired when completing a command
|
|
name with a single match only if the first char of that match is
|
|
not a `/'
|
|
- if there are multiple identical matches for a command name in
|
|
attempt_shell_completion, turn off rl_filename_completion_desired
|
|
if the first char is not a `/' to avoid readline appending a
|
|
slash if there's a directory with the same name in the current
|
|
directory
|
|
|
|
1/22
|
|
----
|
|
lib/readline/complete.c
|
|
- new variable, _rl_page_completions, to control whether we want to
|
|
run the internal pager when listing completions (defaults to 1)
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declaration for _rl_page_completions
|
|
|
|
lib/readline/bind.c
|
|
- new bindable variable, `page-completions', controls value of
|
|
_rl_page_completions
|
|
|
|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
|
|
- documented `page-completions' variable
|
|
|
|
Makefile.in
|
|
- use $(INSTALL_SCRIPT) instead of $(INSTALL_PROGRAM) to install
|
|
`bashbug'
|
|
|
|
aclocal.m4
|
|
- fix small quoting problem in RL_LIB_READLINE_VERSION macro
|
|
|
|
lib/readline/terminal.c
|
|
- fetch and save terminal's `vs' and `ve' cursor control attributes
|
|
- fetch and save terminal's `kI' attribute (string sent by Insert)
|
|
- new function, _rl_set_cursor, sets cursor to normal (insert mode)
|
|
or very visible (overwrite mode)
|
|
|
|
lib/readline/readline.c
|
|
- new global variable, rl_insert_mode
|
|
- new function to toggle overwrite mode, rl_overwrite_mode
|
|
- each new line starts in insert mode
|
|
- switching to vi mode or emacs mode resets to insert mode
|
|
- reset cursor to normal before returning line
|
|
- _rl_replace_text now returns the number of characters inserted,
|
|
the return value from rl_insert_text
|
|
- new function, _rl_insert_or_replace_text (const char *string, int insert),
|
|
either inserts STRING or replaces the number of chars in STRING
|
|
with STRING starting at rl_point, depending on value of INSERT
|
|
- renamed rl_insert to _rl_insert_char, rl_insert just calls
|
|
_rl_insert_char with the same arguments when in insert mode
|
|
- new function, _rl_overwrite_char, handles self-insert in overwrite
|
|
mode. Does multibyte chars by reading an entire multibyte character
|
|
before entering overwrite loop
|
|
- new function, _rl_overwrite_rubout, handles RUBOUT when in
|
|
overwrite mode, called from rl_rubout
|
|
- new function, _rl_rubout_char, old body of rl_rubout; rl_rubout
|
|
calls this when not in overwrite mode
|
|
|
|
lib/readline/readline.h
|
|
- extern declarations for rl_insert_mode and rl_overwrite_mode()
|
|
|
|
lib/readline/rldefs.h
|
|
- define constants for values of rl_insert_mode
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declarations for _rl_set_cursor and _rl_set_insert_mode
|
|
- change type of _rl_replace_text to return int
|
|
- extern declarations for _rl_insert_char, _rl_rubout_char
|
|
|
|
lib/readline/funmap.c
|
|
- new bindable name `overwrite-mode', bound to rl_overwrite_mode
|
|
|
|
lib/readline/rlconf.h
|
|
- define CURSOR_MODE if you want the cursor to show insert or
|
|
overwrite mode (only available if both `vs' and `ve' capabilities
|
|
are present)
|
|
|
|
lib/readline/{complete,parens,readline,search,vi_mode}.c
|
|
- change calls to rl_insert to _rl_insert_char
|
|
|
|
lib/readline/{readline,search}.c
|
|
- change calls to rl_rubout to _rl_rubout_char to avoid overwrite
|
|
mode problems
|
|
|
|
lib/readline/vi_mode.c
|
|
- fix rl_vi_overstrike to just call _rl_overwrite_char, which
|
|
handles multibyte chars
|
|
|
|
lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1
|
|
- document new `overwrite-mode' command
|
|
|
|
1/23
|
|
----
|
|
lib/readline/readline.c
|
|
- return 0 immediately from rl_insert_text if the string to insert
|
|
is NULL or ""
|
|
|
|
bashline.c
|
|
- if a numeric argument is given to one of the bash-specific glob
|
|
pattern completion functions (including TAB), append a `*' to
|
|
the word before generating matches
|
|
- in attempt_shell_completion, when doing glob completion, only
|
|
set the match list to NULL if rl_completion_type == TAB and
|
|
there is more than one completion. This permits listing completions
|
|
with double tabs and displaying ambiguous completions
|
|
- new function, bash_glob_complete_word, appends a `*' to the word
|
|
to be completed and then globs it. It uses a new filename
|
|
quoting function (bash_glob_quote_filename) to avoid quoting
|
|
globbing characters in the filename if there are no matches or
|
|
multiple matches
|
|
|
|
lib/readline/complete.c
|
|
- set completion_changed_buffer to 0 in rl_complete_internal if
|
|
no matches were produced by the completion generator function
|
|
- new variable, rl_completion_suppress_append, suppresses appending
|
|
of rl_completion_append_character. Settable by application
|
|
completion functions, always 0 when application completion
|
|
functions are called (set to 0 by rl_complete_internal and
|
|
rl_menu_complete)
|
|
- broke the code that assigns default values to readline completion
|
|
variables out of rl_complete_internal and rl_menu_complete into
|
|
a new function, set_completion_defaults (int what_to_do)
|
|
|
|
lib/readline/readline.h
|
|
- extern declaration for rl_completion_suppress_append
|
|
|
|
lib/readline/doc/rluser.texinfo, doc/bash.1
|
|
- documented behavior of glob-expand-word and glob-list-expansions
|
|
when supplied a numeric argument
|
|
- documented glob-complete-word
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- documented rl_completion_suppress_append
|
|
|
|
1/24
|
|
----
|
|
lib/readline/text.c
|
|
- new file, text and character handling functions from readline.c
|
|
|
|
lib/readline/misc.c
|
|
- new file, miscellanous bindable functions and their supporting
|
|
code from readline.c
|
|
|
|
Makefile.in, lib/readline/Makefile.in
|
|
- changes for text.c, misc.c
|
|
|
|
lib/readline/bind.c
|
|
- change ISKMAP case of rl_invoking_keyseqs_in_map to output
|
|
ESC as "\M-" instead of "\e" -- it's closer to the documentation
|
|
- change _rl_get_keyname to output ESC as \e instead of \C-[
|
|
(it's easier to understand)
|
|
|
|
pcomplete.h
|
|
- new flag, COPT_NOSPACE
|
|
|
|
builtins/complete.def
|
|
- new `-o nospace' option for complete and compgen (though it doesn't
|
|
really do anything for compgen, since that doesn't hand anything
|
|
off to readline)
|
|
|
|
bashline.c
|
|
- if a programmable completion specifies COPT_NOSPACE, set
|
|
rl_completion_suppress_append = 1
|
|
|
|
lib/readline/doc/rluser.texinfo
|
|
- documented new `-o nospace' option to complete and compgen
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented $'\cX' escape sequence (forgot to before)
|
|
|
|
1/28
|
|
----
|
|
variables.c
|
|
- make_new_variable now takes the HASH_TABLE * as its second
|
|
argument; changed callers
|
|
- new function, bind_variable_in_table, takes the HASH_TABLE * as
|
|
its third paramter; bind_variable calls bind_variable_in_table
|
|
with shell_variables as third argument
|
|
|
|
variables.h
|
|
- new struct var_context, variable context (per-scope -- global,
|
|
function local, etc.)
|
|
|
|
variables.[ch],builtins/common.[ch]
|
|
- moved functions that push and pop a variable context from
|
|
builtins/common.c to variables.c; move extern function
|
|
declarations to variables.h
|
|
- new function, all_local_variables
|
|
- variable_in_context is now static, used only by all_local_variables
|
|
|
|
variables.[ch],execute_cmd.c
|
|
- push_context now takes the function name as an argument for
|
|
future use
|
|
- push_context takes an indication of whether or not the function is
|
|
executing in a subshell and saves the positional parameters only
|
|
if not in a subshell
|
|
- new functions for managing a stack of variable contexts and
|
|
scopes: new_var_context, dispose_var_context, push_var_context,
|
|
pop_var_context, push_scope, pop_scope
|
|
|
|
builtins/declare.def
|
|
- call all_local_variables instead of map_over (...) in declare_internal
|
|
- don't call make_local_variable if we're looking at functions
|
|
((flags_on & att_function) != 0), since it's wasted
|
|
- make sure VAR is set to NULL if check for variable_context fails
|
|
and we didn't just create or fetch a local variable in
|
|
declare_internal
|
|
- in non-function branch of declare_internal, only call find_variable
|
|
if VAR is NULL -- if it's not null, we just created or fetched a
|
|
local variable and don't need to do it again
|
|
|
|
1/29
|
|
----
|
|
variables.[ch]
|
|
- the temporary environments (temporary_env, builtin_env, function_env)
|
|
are now HASH_TABLEs instead of argv-style arrays of strings (this
|
|
is an intermediate step on the way to the new lcc-inspired symbol
|
|
table scope structure)
|
|
- new internal attribute for variables: att_propagate. This means
|
|
to propagate the value out of the temporary environment up the
|
|
(for now implicit) chain of variable scopes when the containing
|
|
temporary environment is deleted
|
|
|
|
variables.c
|
|
- assign_in_env now adds to the HASH_TABLE temporary_env instead
|
|
of making environment-style strings in an array of strings
|
|
- changed the way the temporary environments are merged into the
|
|
shell variable table to account for the new HASH_TABLE temp
|
|
environments
|
|
- changed the way the export environment is created due to the new
|
|
structure of the temporary environments
|
|
- new function, bind_variable_internal (name, value, table), binds
|
|
NAME to have VALUE in TABLE without searching the temporary
|
|
environments
|
|
- removed: shell_var_from_env_string, bind_name_in_env_array
|
|
- variable_in_context now checks the att_local attribute and makes
|
|
sure the variable is not invisible
|
|
- local_and_exported now makes sure the variable is not invisible
|
|
|
|
execute_cmd.c
|
|
- we no longer need to copy the temporary environment to function_env
|
|
or builtin_env, we can simply use variable assignments
|
|
|
|
{findcmd,subst,variables}.c, builtins/{declare,setattr}.def
|
|
- since variables from the temporary environments are no longer turned
|
|
into SHELL_VARs on the fly, don't dispose the SHELL_VAR returned
|
|
by find_variable or find_variable_internal
|
|
- need to savestring() the value returned by find_variable if it has
|
|
the tempvar attribute before calling bind_variable on it, because
|
|
bind_variable will search and bind into the temporary environments
|
|
and will free the old value before binding the new. For temporary
|
|
environments, these two pointers will be the same, and
|
|
bind_tempenv_variable will end up using freed memory
|
|
|
|
builtins/{declare,setattr}.def
|
|
- set the att_propagate attribute when exporting or making readonly
|
|
variables from the temp environment (i.e., `var=value declare -x var'
|
|
or `var=value export var' sets the propagate attribute on the entry
|
|
for `var' in the temporary environment HASH_TABLE)
|
|
|
|
lib/readline/isearch.c
|
|
- ^W when reading isearch string yanks the current word out of the
|
|
current line into the search string, skipping the portion already
|
|
matched
|
|
- ^Y when reading isearch string yanks the rest of the current line
|
|
into the search string, skipping the portion already matched
|
|
|
|
1/30
|
|
----
|
|
{print_cmd,variables}.c
|
|
- moved indirection_level_string() from variables.c to print_cmd.c
|
|
|
|
{externs,variables}.h
|
|
- moved extern declaration of indirection_level_string to externs.h
|
|
|
|
{general,variables}.c
|
|
- moved assignment() from variables.c to general.c
|
|
|
|
{general,variables}.h
|
|
- moved extern declaration of assignment() to general.h
|
|
|
|
{externs,input}.h
|
|
- moved extern declaration of decode_prompt_string to externs.h
|
|
|
|
print_cmd.c
|
|
- include flags.h, don't include stdc.h
|
|
|
|
variables.c
|
|
- moved some functions around to group functions better
|
|
- changed new_shell_variable to explicitly initialize each member
|
|
of the created struct variable instead of calling bzero()
|
|
- make_new_variable now just calls new_shell_variable instead
|
|
of duplicating what it does
|
|
- removed some code in bind_function that duplicated what
|
|
new_variable does on the newly-created SHELL_VAR
|
|
- since there are no local function variables (functions are always
|
|
made at the global scope), kill_all_local_variables() doesn't
|
|
need to consider functions
|
|
|
|
1/31
|
|
----
|
|
variables.c
|
|
- sort the array of special variables
|
|
- short-circuit the search in stupidly_hack_special_variables if
|
|
the passed name can't be found in the rest of the array
|
|
(that is, if name[0] < special_vars[i].name[0])
|
|
|
|
lib/readline/history.c
|
|
- unstifle_history() was returning values exactly opposite of
|
|
the documentation
|
|
|
|
lib/readline/doc/{hsuser.texinfo,history.3}
|
|
- clarified the unstifle_history() documentation a little
|
|
|
|
2/4
|
|
---
|
|
variables.c
|
|
- in bind_variable, don't call bind_tempenv_variable after a
|
|
find_tempenv_variable succeeds -- just change the value inline.
|
|
There's no reason to look it up twice
|
|
- change makunbound to only call stupidly_hack_special_variables
|
|
if we're not unsetting a function
|
|
|
|
variables.[ch]
|
|
- new function, unbind_function, like makunbound but doesn't mess
|
|
with previous contexts or calling stupidly_hack_special_variables
|
|
|
|
builtins/set.def
|
|
- change unset_builtin to call either unbind_func or unbind_variable
|
|
|
|
builtins/getopts.def
|
|
- call unbind_variable(name) instead of makunbound(name, shell_variables)
|
|
|
|
2/5
|
|
---
|
|
lib/glob/sm_loop.c
|
|
- use malloc instead of xmalloc in BRACKMATCH and handle failures
|
|
|
|
error.c
|
|
- add extern declaration of executing_line_number with prototype,
|
|
since execute_cmd.h can't be included without including other
|
|
files
|
|
|
|
lib/readline/parens.c
|
|
- include <unistd.h>
|
|
|
|
lib/malloc/stats.c
|
|
- include <unistd.h>
|
|
- add extern declaration of malloc_free_blocks() with prototype
|
|
|
|
pathexp.c
|
|
- added some forward declarations with prototypes for static functions
|
|
|
|
lib/readline/rlprivate.h
|
|
- removed declarations of rl_untranslate_keyseq, rl_discard_argument,
|
|
rl_stop_output, rl_alphabetic since they appear in readline.h
|
|
|
|
2/6
|
|
---
|
|
{arrayfunc,execute_cmd,pcomplete,shell}.c
|
|
- change calls to makunbound(name, shell_variables) to
|
|
unbind_variable (name)
|
|
|
|
2/7
|
|
---
|
|
builtins/getopt.c
|
|
- don't defer incrementing of OPTIND when an invalid option is
|
|
encountered until the next call to sh_getopt() -- what if OPTIND
|
|
is reset before that next call? This means that OPTIND is always
|
|
incremented to the next option to be handled when an option is
|
|
returned, whether it's valid or not. This is what POSIX-2002
|
|
says to do.
|
|
|
|
syntax.h
|
|
- new #define, CSUBSTOP
|
|
|
|
mksyntax.c
|
|
- add "-=?+" with value CSUBSTOP to the syntax table. These are the
|
|
valid expansion operators OP in ${param[:]OPword}
|
|
|
|
subst.c
|
|
- use table lookup for CSUBSTOP in VALID_PARAM_EXPAND_CHAR
|
|
- new flags for the string extraction functions: EX_NOALLOC. This
|
|
indicates that the functions are being used only to skip over
|
|
strings and the result won't be used, so the substring shouldn't
|
|
be allocated, copied, and freed
|
|
- new flag for string_extract: EX_VARNAME. This serves the same
|
|
purpose as the old `varname' parameter. parameter_brace_expand()
|
|
changed appropriately
|
|
- extract_delimited_string and extract_dollar_brace_string now take
|
|
an additional `flags' argument, which may include EX_NOALLOC
|
|
- changed callers of extract_delimited_string and
|
|
extract_dollar_brace_string appropriately
|
|
- string_extract now understands EX_NOALLOC; callers changed
|
|
- some smaller code cleanups
|
|
- converted char_is_quoted(), unclosed_pair(), and skip_to_delim()
|
|
to understand multibyte characters
|
|
|
|
2/11
|
|
----
|
|
variables.[ch]
|
|
- moved to a symbol organization inspired by lcc. The basic structure
|
|
is no longer a HASH_TABLE, but a VAR_CONTEXT, which includes a hash
|
|
table as one of its members. VAR_CONTEXTs are linked together to do
|
|
variable scoping. One nice thing about this is that the entire
|
|
symbol table doesn't need to be searched at function scope exit to
|
|
remove local variables. Fixes problems with only one instance of
|
|
builtin_env and function_env, even though it really is a stack
|
|
- shell_variables is now a VAR_CONTEXT *, with a global_variables
|
|
variable that points to the bottom of the stack for fast access
|
|
- function-scope local variables (assignments specified on the command
|
|
line before a function call) and function-local variables (declared
|
|
with the `local' builtin) have been unified in the same variable
|
|
context, replacing function_env
|
|
- assignment statements preceding the `.' and `eval' builtins are now
|
|
a separate variable scope VAR_CONTEXT, replacing builtin_env
|
|
- temporary_env (a HASH_TABLE) is now the only separate environment
|
|
- changes to export environment creation, variable binding, variable
|
|
lookup, local variable propagation all changed to work with the
|
|
new symbol table/scope structure
|
|
- a SHELL_VAR no longer has a `prev_context' member; it's not needed
|
|
|
|
execute_cmd.c
|
|
- changes to push_context calls to include any temporary variables in
|
|
temporary_env; pop_context takes care of propagating any temporary
|
|
variables if necessary
|
|
- calls to push_scope if `eval' or `.' is called with a list of
|
|
preceding variable assignments, and pop_scope called at end of
|
|
builtin's execution. pop_scope takes care of merging temporary
|
|
variables into the shell environment when appropriate
|
|
|
|
builtins/{setattr,declare}.def
|
|
- changes to account for variable assignments preceding `local',
|
|
`export', `readonly', `declare', etc. to work with the new
|
|
variable scoping implementation
|
|
|
|
shell.c
|
|
- since shell_variables is now a VAR_CONTEXT, call
|
|
delete_all_contexts() when the shell is reinitializing instead of
|
|
delete_all_variables()
|
|
|
|
builtins/common.c
|
|
- new function, get_job_by_name(), used by execute_simple_command()
|
|
for the `auto_resume' stuff and get_job_spec()
|
|
|
|
builtins/common.h
|
|
- new set of #defined constants for flags argument to
|
|
get_job_by_name()
|
|
|
|
2/12
|
|
----
|
|
command.h
|
|
- new redirection operator: r_reading_string for `here strings'
|
|
|
|
parse.y
|
|
- new token, LESS_LESS_LESS, for new redirection `here string'
|
|
operator: [N]<<< word
|
|
- recognize LESS_LESS_LESS and create the appropriate redirection
|
|
|
|
{dispose_cmd,copy_cmd,make_cmd,print_cmd}.c
|
|
- recognize r_reading_string and do the right thing (dispose_redirects,
|
|
copy_redirect, print_redirection, and make_redirection, respectively)
|
|
|
|
redir.c
|
|
- here_document_to_fd now takes the redirection operator as its
|
|
second argument
|
|
- new function, write_here_string, expands a here string and writes it
|
|
to the here document file descriptor
|
|
- here_document_to_fd calls write_here_string for r_reading_string
|
|
operator
|
|
- handle r_reading_string in do_redirection_internal() and
|
|
stdin_redirection()
|
|
|
|
2/18
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- documented here strings
|
|
|
|
{configure,Makefile}.in
|
|
- bumped version number up to bash-2.05b and the release status
|
|
to alpha1
|
|
|
|
expr.c
|
|
- make expr_streval understand that variables with the `invisible'
|
|
attribute are really unset, and accessing such a variable when
|
|
`set -u' is set should be an error
|
|
|
|
variables.h
|
|
- new accessor macros: var_isset(var) and var_isnull(var), test
|
|
whether var->value is NULL
|
|
|
|
{eval,subst,variables}.c, builtins/{declare,setattr}.def
|
|
- be more consistent about using value_cell(var) instead of
|
|
directly referencing var->value
|
|
- use var_isset and var_isnull where appropriate
|
|
|
|
builtins/help.def
|
|
- augmented a couple of help strings with pointers to `info' and
|
|
`man -k'
|
|
|
|
2/14
|
|
----
|
|
variables.h
|
|
- new macros to use when setting variable values directly instead of
|
|
through bind_variable and its siblings
|
|
|
|
{arrayfunc,variables}.c
|
|
- use var_setarray and other lvalue macros instead of assigning to
|
|
var->value directly
|
|
|
|
builtins/setattr.def
|
|
- change show_var_attributes to show function definitions separately
|
|
from function attributes. This allows the output of `declare -f'
|
|
(with other flags), `export -f', and `readonly -f' to be reused as
|
|
shell input, instead of the old
|
|
|
|
declare -f[flags] func()
|
|
{
|
|
foo
|
|
}
|
|
|
|
which has syntax errors. When in posix mode, `export -fp' and
|
|
`readonly -fp' still don't print function definitions
|
|
|
|
2/16
|
|
----
|
|
parse.y
|
|
- comment out calls to discard_parser_constructs; no need to call
|
|
empty functions
|
|
|
|
2/18
|
|
----
|
|
lib/sh/memset.c
|
|
- replacement function for memset(3)
|
|
|
|
lib/sh/Makefile.in, Makefile.in
|
|
- additions for memset.c
|
|
|
|
configure.in,config.h.in
|
|
- check for memset, define HAVE_MEMSET if found, add memset.o to
|
|
LIBOBJS if not
|
|
|
|
lib/malloc/malloc.c
|
|
- removed zmemset(), replaced with calls to memset(3)
|
|
|
|
{subst,execute_cmd,lib/sh/netopen}.c
|
|
- replaced calls to bzero with calls to memset
|
|
|
|
subst.c
|
|
- word_split() now takes a second argument: the value of $IFS, so
|
|
it doesn't have to look up IFS every time
|
|
- word_list_split() now calls getifs() and passes the result to
|
|
each call to word_split() as its second arg
|
|
- do a quick scan for CTLNUL in remove_quoted_nulls before allocating
|
|
new string, copying old string to it, copying over original string
|
|
and freeing new string
|
|
|
|
eval.c
|
|
- don't bother calling dispose_used_env_vars if temporary_env is NULL
|
|
|
|
execute_cmd.c
|
|
- fix fix_assignment_words to only look up the builtin corresponding
|
|
to the first word if one of the words in the list is marked as
|
|
W_ASSIGNMENT
|
|
|
|
hashlib.c
|
|
- renamed hash_string to hash_bucket, which better reflects what it
|
|
does
|
|
- extracted the portion of hash_bucket that computes the hash out
|
|
into a new hash_string()
|
|
- made new body of hash_bucket into a macro HASH_BUCKET; function
|
|
just calls the macro
|
|
- calls to hash_bucket in this file now call HASH_BUCKET macro
|
|
- in add_hash_item, just add a new item at the front of the appropriate
|
|
bucket list instead of at the end
|
|
|
|
hashcmd.h
|
|
- reduced FILENAME_HASH_BUCKETS to 53 from 107
|
|
|
|
2/19
|
|
----
|
|
hashlib.[ch]
|
|
- find_hash_item, remove_hash_item, add_hash_item all take a new
|
|
third `flags' argument
|
|
- add_hash_item doesn't call find_hash_item if HASH_NOSRCH passed in
|
|
flags arg
|
|
- find_hash_item will create a new hash table entry if HASH_CREATE is
|
|
passed in flags arg
|
|
- new function, hash_walk, takes a pointer to a function and a table
|
|
and calls the function for each item in the table. If the function
|
|
returns < 0, the walk is terminated
|
|
- fixed flush_hash_table to set table->nentries to 0 after freeing
|
|
all entries
|
|
- BUCKET_CONTENTS now has a new `khash' member, what key hashes to;
|
|
set by HASH_BUCKET macro (which calls hash_string), assigned in
|
|
find_hash_item (HASH_CREATE) and add_hash_item
|
|
- find_hash_item and remove_hash_item check `khash' against the
|
|
hash of the string argument before calling strcmp
|
|
|
|
{alias,hashlib,hashcmd,pcomplib,variables}.c
|
|
- changed all calls to {find,remove,add}_hash_item
|
|
|
|
builtins/hash.def
|
|
- return immediately from print_hashed_commands if there are no
|
|
entries in the hash table (this eliminates need for `any_printed'
|
|
variable)
|
|
- change print_hashed_commands to use hash_walk
|
|
|
|
alias.c
|
|
- short-circuit all_aliases and map_over_aliases if
|
|
HASH_ENTRIES(aliases) == 0
|
|
- simplify map_over_aliases by just allocating enough room in the
|
|
returned list for all entries in the aliases hash table, instead
|
|
of doing the check and xrealloc
|
|
- add_alias now calls add_hash_item with HASH_NOSRCH argument
|
|
|
|
pcomplete.h
|
|
- sh_csprint_func_t is no more; use hash_wfunc instead
|
|
|
|
pcomplib.c
|
|
- short-circuit print_all_compspecs if HASH_ENTRIES(prog_completes)
|
|
is 0
|
|
- print_all_compspecs now takes a `hash_wfunc *' argument
|
|
- print_all_compspecs now just calls hash_walk
|
|
|
|
builtins/complete.def
|
|
- new function, print_compitem, takes a BUCKET_CONTENTS *, extracts
|
|
the right info, and calls print_one_completion
|
|
|
|
variables.c
|
|
- short-circuit map_over_funcs if HASH_ENTRIES(shell_functions) == 0
|
|
- short-circuit flatten if the passed table has no entries
|
|
- bind_variable_internal takes a new fourth argument: `hflags',
|
|
to pass to hash table functions
|
|
- make_new_variable now passes HASH_NOSRCH flag to add_hash_item
|
|
- set_if_not now calls bind_variable_internal and passes
|
|
HASH_NOSRCH as flags argument
|
|
- bind_function now calls add_hash_item with HASH_NOSRCH argument
|
|
- fixed make_local_variable: old_var == 0 && was_tmpvar can never
|
|
be true
|
|
- if we didn't find an old variable in make_local_variable, call
|
|
bind_variable_internal with HASH_NOSRCH argument
|
|
- fix push_temp_var to reset variable context to 0 if binding into
|
|
global_variables->table
|
|
|
|
parse.y
|
|
- fix to parse_compound_assignment to avoid core dumps on empty
|
|
compound array assignments
|
|
|
|
subst.c
|
|
- getifs() is now global so read_builtin can call it
|
|
|
|
subst.h
|
|
- extern declaration for getifs()
|
|
|
|
2/20
|
|
----
|
|
hashlib.c
|
|
- changed hash_string to use a better hash function
|
|
- changed HASH_BUCKET to use masking rather than modulus to hash a
|
|
string to a bucket -- HASH TABLES MUST NOW BE SIZED BY POWERS
|
|
OF TWO
|
|
|
|
hashlib.h
|
|
- DEFAULT_HASH_BUCKETS is now 64
|
|
|
|
hashcmd.h
|
|
- FILENAME_HASH_BUCKETS is now 64
|
|
|
|
pcomplib.c
|
|
- COMPLETE_HASH_BUCKETS is now 32
|
|
|
|
variables.c
|
|
- TEMPENV_HASH_BUCKETS is now 4
|
|
|
|
alias.c
|
|
- new define, ALIAS_HASH_BUCKETS, set to 16, used to size alias table
|
|
|
|
hashlib.c
|
|
- removed initialize_hash_table; folded code into make_hash_table
|
|
- fixed copy_bucket_array to copy the `khash' member of an item
|
|
- renamed functions to be more systematic and easier for me:
|
|
make_hash_table -> hash_create
|
|
hash_table_nentries -> hash_size
|
|
copy_hash_table -> hash_copy
|
|
find_hash_item -> hash_search
|
|
remove_hash_item -> hash_remove
|
|
add_hash_item -> hash_insert
|
|
flush_hash_table -> hash_flush
|
|
dispose_hash_table -> hash_dispose
|
|
print_table_stats -> hash_pstats
|
|
get_hash_bucket -> hash_items
|
|
- changed hash_search to short-circuit if table->nentries == 0 and
|
|
HASH_CREATE has not been passed in the flags argument
|
|
|
|
{alias,variables,hashcmd,pcomplib}.c
|
|
- renamed calls to all renamed functions from hashlib.c
|
|
|
|
builtins/kill.def
|
|
- don't drop a leading `-' in a pid argument
|
|
- call kill_pid with an explicit third argument of 1 if the pid
|
|
argument to kill is < -1, rather than rely on the behavior of
|
|
kill(2)
|
|
|
|
2/21
|
|
----
|
|
subst.c
|
|
- quoted_strchr is no longer declared `inline'
|
|
- skip_double_quoted is no longer declared `inline'
|
|
- string_extract_double_quoted is no longer declared `inline'
|
|
|
|
lib/readline/input.c
|
|
- rl_gather_tyi is now an `int' valued function; returns the number
|
|
of characters read (0 or 1) or -1 on error
|
|
- if rl_gather_tyi() returns -1 to rl_read_key(), set rl_done to 1
|
|
and return a newline; something is wrong with the input fd
|
|
|
|
2/25
|
|
----
|
|
variables.[ch]
|
|
- IFS is now a special variable
|
|
- new special var function, sv_ifs(), called when IFS is set or unset
|
|
- call setifs() when IFS is first set in initialize_shell_variables
|
|
- call setifs() from make_local_variable and assign_in_env if
|
|
appropriate
|
|
- if assign_in_env() is called with a var assignment like `VAR=',
|
|
make the value in the new SHELL_VAR created be "" like
|
|
do_assignment_internal does, since certain parts of the shell use
|
|
a NULL value as evidence that the variable is unset (though
|
|
attributes may have been assigned)
|
|
- if push_temp_var pushes something up to the global_variables table,
|
|
make sure that the context is set to 0
|
|
- new function dispose_temporary_env, called by both
|
|
dispose_used_env_vars and merge_temporary_env with different `free
|
|
func' function pointers; calls sv_ifs after disposing the temporary
|
|
environment
|
|
- push_exported_var now calls bind_variable_internal instead of
|
|
bind_variable
|
|
- pop_scope and pop_context now call sv_ifs
|
|
|
|
subst.[ch]
|
|
- new global variables used to keep track of IFS state, to avoid
|
|
having to call find_variable("IFS") all the time:
|
|
|
|
ifs_var the SHELL_VAR for IFS
|
|
ifs_value ifs_var ? value_cell (ifs_var) : " \t\n"
|
|
ifs_cmap bitmap of characters in ifs_value
|
|
ifs_firstc first character in ifs_value
|
|
|
|
- new function setifs(), sets the aforementioned ifs variables each
|
|
time IFS is set or unset, and at nested scope exit
|
|
- instead of calling getifs() from inside subst.c, use ifs_value
|
|
- getifs() now just returns ifs_value
|
|
- use ifs_firstc in string_list_dollar_star()
|
|
- only call member() in issep() if separators is more than one char
|
|
- don't cache a bitmap every time expand_word_internal() is called;
|
|
use ifs_cmap instead
|
|
- new macro, isifs(c), checks whether C is in ifs_cmap
|
|
|
|
builtins/read.def
|
|
- use issep() and isifs() macros instead of looking at $IFS directly
|
|
|
|
syntax.h
|
|
- make sure macros that access sh_syntaxtab cast the argument to
|
|
`unsigned char' before array access
|
|
- new macros: issyntype(c, type) and notsyntype(c, type), check
|
|
sh_syntaxtab[c] for a particular flag value `type'
|
|
|
|
2/26
|
|
----
|
|
hashlib.h
|
|
- the `data' member of a `BUCKET_CONTENTS' is now a PTR_T
|
|
|
|
{hashlib,alias,variables,hashcmd,pcomplib}.c
|
|
- removed some casts when assigning to and using `data' member of a
|
|
`BUCKET_CONTENTS'
|
|
|
|
subst.c
|
|
- in split_at_delims, call make_word_list instead of allocating and
|
|
initializing a WORD_LIST * directly
|
|
|
|
make_cmd.[ch]
|
|
- add_string_to_list is now just a macro that calls make_word_list
|
|
- make_simple_command now calls make_word_list instead of allocating
|
|
a WORD_LIST * directly
|
|
|
|
2/27
|
|
----
|
|
copy_cmd.c
|
|
- copy_word now calls make_bare_word to allocate the copy
|
|
- copy_word_list now calls make_word_list to allocate the copy
|
|
|
|
shell.h
|
|
- include `ocache.h' for simple object caching
|
|
- call cmd_init() to initialize the WORD_DESC and WORD_LIST object
|
|
caches
|
|
|
|
{make,dispose}_cmd.c
|
|
- allocate WORD_DESC * and WORD_LIST * vars from their respective
|
|
ocaches, and return them to the cache when disposing
|
|
|
|
jobs.c
|
|
- renamed old `waiting_for_job' variable to `queue_sigchld', which
|
|
better reflects its intent: sigchld_handler does not call waitchld
|
|
if `queue_sigchld' is non-zero, it simply increments the count of
|
|
waiting children
|
|
- cleanup_dead_jobs now just sets and clears queue_sigchld instead of
|
|
blocking and unblocking SIGCHLD; it calls waitchld at the end if
|
|
`sigchld' is non-zero, but that's not really necessary
|
|
- in setjstatus, only call xrealloc if `statsize' is less than the
|
|
number of processes passed -- no reason to do it if they're the
|
|
same
|
|
|
|
2/28
|
|
----
|
|
sig.[ch]
|
|
- reinitialize_signals is no more; initialize_signals takes an
|
|
argument saying whether or not we are reinitializing
|
|
|
|
builtins/exec.def
|
|
- reinitialize_signals() -> initialize_signals(1)
|
|
|
|
test.c
|
|
- fix filecomp() to work right when one file has a non-positive
|
|
timestamp and the other file does not exist
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document what happens for test's -nt and -ot operators when one
|
|
file operand exists and the other does not
|
|
|
|
jobs.c
|
|
- if we haven't messed with SIGTTOU, just manipulate queue_sigchld
|
|
in notify_of_job_status instead of calling sigprocmask()
|
|
- list_one_job now calls pretty_print_job directly instead of going
|
|
through print_job
|
|
- pretty_print_job now must be called with SIGCHLD blocked or held
|
|
instead of blocking SIGCHLD itself
|
|
- changed start_job so that it doesn't call UNBLOCK_CHILD and then
|
|
immediately call BLOCK_CHILD again (explicitly or via last_pid()),
|
|
call find_last_pid instead of last_pid and then UNBLOCK_CHILD
|
|
- changed wait_for_job the same way
|
|
- find_last_pid now takes a second argument: block; uses BLOCK_CHILD
|
|
if `block' is 1, not otherwise. Changed existing calls:
|
|
find_last_pid(j) -> find_last_pid(j, 0)
|
|
last_pid(j) -> find_last_pid(j, 1)
|
|
`last_pid()' is now gone
|
|
- rewrote wait_for_background_pids(); it was a little strange
|
|
|
|
copy_cmd.c
|
|
- copy_if_command: don't copy null false_case commands
|
|
- copy_simple_command: don't copy a null redirection list
|
|
|
|
subst.c
|
|
- in get_word_from_string and list_string, just check for " \t\n"
|
|
directly rather than calling strcmp
|
|
- in get_word_from_string and strip_trailing_ifs_whitespace, use
|
|
isifs() instead of issep(), since they're never called with
|
|
separators != $IFS
|
|
- change issep() to call isifs if separators is longer than one
|
|
character, since it's never called with anything but "", " ",
|
|
or $IFS
|
|
|
|
3/1
|
|
---
|
|
sig.h
|
|
- enclose the BLOCK_SIGNAL macro in a do {...} while (0) loop, at it
|
|
should have been all along
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- document that readline defaults to stdin/stdout if rl_instream/
|
|
rl_outstream are NULL
|
|
|
|
lib/readline/terminal.c
|
|
- if an application is using a custom redisplay function,
|
|
rl_resize_terminal just calls rl_forced_update_display to tell
|
|
(*rl_redisplay_func) to update the display, otherwise call
|
|
_rl_redisplay_after_sigwinch
|
|
|
|
lib/readline/readline.c
|
|
- change readline_internal_setup() so the change to vi insertion mode
|
|
happens even if readline_echoing_p is 0
|
|
- don't print the prompt to rl_outstream in readline_internal_setup
|
|
if we're not echoing and the caller has defined a custom redisplay
|
|
function -- let the redisplay function deal with it
|
|
|
|
configure.in
|
|
- new option: --enable-mem-scramble, controls memory scrambling on
|
|
free() (on by default; only affects use of bash malloc)
|
|
|
|
config.h.in
|
|
- new option MEMSCRAMBLE, controlled by --enable-mem-scramble
|
|
|
|
3/5
|
|
---
|
|
parse.y
|
|
- added ksh-like behavior of [...] to read_token_word: if a `[' is
|
|
seen in an assignment context and the previous characters in the
|
|
token form a valid identifier, parse the [...] with
|
|
parse_matched_pair to allow spaces (and newlines) in the subscript
|
|
|
|
bashline.c
|
|
- new function bash_servicename_completion_function, for completing
|
|
service names from /etc/services
|
|
|
|
bashline.h
|
|
- new extern declaration for bash_servicename_completion_function
|
|
|
|
builtins/complete.def
|
|
- allow new `-s/-A service' option to complete and compgen builtins
|
|
|
|
pcomplete.h
|
|
- new CA_SERVICE define, new ITEMLIST variable it_services
|
|
|
|
pcomplete.c
|
|
- add callback to bash_servicename_completion_function to generate
|
|
list of matching service names for completion
|
|
|
|
doc/bash.1,lib/readline/doc/rluser.texinfo
|
|
- documented new `-s/-A service' option to complete and compgen
|
|
|
|
3/6
|
|
---
|
|
builtins/read.def
|
|
- change hard-coded `0' to new variable `fd' (initially 0) in
|
|
preparation for adding `-u fd' option
|
|
|
|
bashline.c
|
|
- bash_directory_completion_hook calls expand_prompt_string instead
|
|
of expand_string (it does the right thing). This keeps expansion
|
|
errors from causing a longjmp, which shouldn't happen because of
|
|
completion
|
|
- command_subst_completion_function was augmented very slightly to
|
|
do filename completion on a non-command-word in a command
|
|
substitution
|
|
- command_subst_completion_function now skips over the lcd that
|
|
rl_completion_matches puts in matches[0] if there is more than
|
|
one possible completion
|
|
|
|
3/7
|
|
---
|
|
builtins/read.def
|
|
- only add the unwind_protect to free `rlbuf' if `edit' is non-zero,
|
|
since we won't be using readline otherwise
|
|
|
|
lib/sh/zread.c
|
|
- renamed zread1 -> zreadintr
|
|
|
|
redir.c
|
|
- small change to redirection_error() to make a slightly better
|
|
guess about the invalid file descriptor if the redirection op is
|
|
r_duplicating_input or r_duplicating_output
|
|
|
|
include/stdc.h
|
|
- new macro, SH_VA_START, to encapsulate the difference between
|
|
stdarg va_start and varargs va_start
|
|
|
|
{error,pcomplete,print_cmd}.c,builtins/common.c,lib/sh/snprintf.c
|
|
- use SH_VA_START
|
|
|
|
3/8
|
|
---
|
|
builtins/read.def
|
|
- support for the ksh-like `-u fd' option
|
|
|
|
general.c
|
|
- new function sh_validfd(fd), returns 1 if fd is a valid open file
|
|
descriptor
|
|
|
|
general.h
|
|
- extern decl for sh_validfd
|
|
|
|
bashline.c
|
|
- don't call posix_readline_initialize() from initialize_readline();
|
|
sv_strict_posix() should already have taken care of it
|
|
|
|
3/11
|
|
----
|
|
{error,pcomplete,print_cmd}.c, builtins/common.c
|
|
- removed non-varargs versions of functions
|
|
|
|
builtins/printf.def
|
|
- if the string argument to %q has non-printing characters, call
|
|
ansic_quote to quote it rather than sh_backslash_quote
|
|
|
|
variables.h
|
|
- new attribute: att_trace (and corresponding trace_p() macro).
|
|
Functions with this attribute will inherit the DEBUG trap.
|
|
Currently ignored for variables
|
|
|
|
builtins/declare.def
|
|
- new `-t' option to declare/typeset toggle the `att_trace' attribute
|
|
|
|
builtins/setattr.def
|
|
- check for att_trace and output `-t' flag in show_var_attributes
|
|
|
|
execute_cmd.c
|
|
- if a function is being traced (it has the `-t' attribute set),
|
|
don't turn off the DEBUG trap when it executes
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document the new `-t' option to declare/typeset
|
|
|
|
3/12
|
|
----
|
|
execute_cmd.c
|
|
- don't execute the debug trap in the `cm_simple:' case of
|
|
execute_command_internal; run it in execute_simple_command so we
|
|
get the line number information right when executing in a shell
|
|
function
|
|
- run a DEBUG trap before executing ((...)) arithmetic commands,
|
|
like ksh93
|
|
- run a DEBUG trap before executing [[...]] conditional commands,
|
|
like ksh93
|
|
|
|
eval.c
|
|
- add a static forward declaration for alrm_catcher()
|
|
|
|
general.c
|
|
- add static forward declarations for bash_special_tilde_expansions,
|
|
unquoted_tilde_word, initialize_group_array
|
|
|
|
variables.h
|
|
- add extern declarations for sh_get_env_value, map_over_funcs,
|
|
local_exported_variables
|
|
|
|
variables.c
|
|
- add static forward declarations for dispose_temporary_env,
|
|
make_func_export_array
|
|
|
|
bashhist.c
|
|
- add static forward declaration for check_history_control
|
|
|
|
configure.in
|
|
- add a call to AC_CHECK_DECLS for strcpy
|
|
|
|
config.h.in
|
|
- add placeholder for HAVE_DECL_STRCPY define, set by configure
|
|
|
|
general.h
|
|
- don't declare strcpy if HAVE_DECL_STRCPY is defined with a non-zero
|
|
value
|
|
|
|
sig.h
|
|
- add prototype to typedef of SigHandler
|
|
|
|
lib/readline/histlib.h
|
|
- removed extern declaration of strcpy()
|
|
- include string.h/strings.h directly in histlib.h instead of source
|
|
files
|
|
|
|
lib/readline/{histexpand,histfile,history,histsearch}.c
|
|
- don't include string.h/strings.h now that histlib.h includes it
|
|
|
|
lib/tilde/tilde.c
|
|
- removed extern declaration of strcpy(), rely on string.h/strings.h
|
|
|
|
command.h
|
|
- four new redirection types: r_move_input, r_move_output,
|
|
r_move_input_word, r_move_output_word, for
|
|
[N]<&word- and [N]>&word- from ksh93
|
|
|
|
print_cmd.c
|
|
- changes to print r_move_input[_word] and r_move_output[_word]
|
|
|
|
copy_cmd.c
|
|
- changes to copy r_move_input[_word] and r_move_output[_word]
|
|
|
|
dispose_cmd.c
|
|
- changes to dispose r_move_input_word and r_move_output_word
|
|
|
|
make_cmd.c
|
|
- changes to make r_move_input[_word] and r_move_output[_word] from
|
|
r_duplicating_{input,output}_word, which is how the new redirs
|
|
are passed by the parser
|
|
|
|
redir.c
|
|
- changes to make r_move_input[_word] and r_move_output[_word] do
|
|
the right thing when executed
|
|
|
|
builtins/read.def
|
|
- print an error message and return failure immediately if zread/zreadc
|
|
return < 0
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new [n]<&word- and [n]>&word- redirections
|
|
|
|
3/13
|
|
----
|
|
lib/readline/isearch.c
|
|
- enabled code to allow chars bound to rl_rubout to delete characters
|
|
from the incremental search string
|
|
|
|
shell.c
|
|
- add `-l' invocation option to parse_shell_options; equivalent to
|
|
`--login'
|
|
- fixed set_login_shell to check first char of base pathname of argv0
|
|
for `-', like other shells
|
|
- move the check for make_login_shell after the call to
|
|
parse_shell_options because the `-l' option might set it
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new `-l' invocation option
|
|
|
|
array.c
|
|
- new function, array_shift, shifts an array left by a specified
|
|
number of elements
|
|
- array_walk is now compiled in by default
|
|
- array_to_assignment_string now takes a second argument: int quoted.
|
|
If non-zero, the result is single-quoted before being returned
|
|
- quoted_array_assignment_string has been removed
|
|
|
|
array.[ch]
|
|
- renamed most of the array functions so that all have an array_
|
|
prefix and are more systematically named
|
|
- array_slice now preserves the indicies from the original array
|
|
- change array_to_assign to use a static buffer for expanding the
|
|
array indices, instead of malloc/free
|
|
|
|
{arrayfunc,subst,variables}.c, builtins/read.def
|
|
- changed calls to various array functions to use new names
|
|
|
|
lib/sh/stringvec.c, externs.h
|
|
- renamed all of the functions to have a strvec_ prefix and to have
|
|
a more sensible name scheme
|
|
- strvec_search's arguments are now supplied in reverse order, so
|
|
the char **array is first, like the other functions
|
|
- new function, strvec_resize, xrealloc for strvecs
|
|
|
|
{alias,array,bracecomp,braces,bashline,execute_cmd,findcmd,general,pathexp,
|
|
pcomplete,variables}.c
|
|
lib/sh/stringlist.c
|
|
builtins/{bind,complete,exec,getopts,pushd,set}.def
|
|
- change calls to all functions from lib/sh/stringvec.c
|
|
- use strvec_resize where appropriate
|
|
|
|
externs.h
|
|
- only declare dup2() if HAVE_DUP2 is undefined or DUP2_BROKEN is
|
|
defined
|
|
|
|
lib/readline/{macro,readline,util}.c, lib/readline/rlprivate.h
|
|
- _rl_defining_kbd_macro is gone, use RL_ISSTATE(RL_STATE_MACRODEF)
|
|
|
|
lib/readline/readline.h
|
|
- new struct readline_state, encapsulates most of readline's internal
|
|
state in case you need reentrancy or nested calls to readline()
|
|
- extern declarations for rl_save_state, rl_restore_state
|
|
|
|
lib/readline/readline.c
|
|
- add (undocumented) int rl_save_state (struct readline_state *),
|
|
int rl_restore_state (struct readline_state *)
|
|
|
|
3/14
|
|
----
|
|
array.[ch]
|
|
- new function, array_rshift, shifts an array right by a specified
|
|
number of elements, optionally inserting a new element 0
|
|
|
|
examples/bashdb/bashdb
|
|
- new single-file version of bash debugger, originally modified from
|
|
version in bash-2.04 by Gary Vaughan (the old debugger still
|
|
appears in examples/obashdb). This version has a more gdb-like
|
|
command set
|
|
|
|
examples/bashdb/bashdb.el
|
|
- new emacs bashdb debugger mode from Masatake YAMATO <jet@gyve.org>
|
|
|
|
execute_cmd.c
|
|
- don't make $LINENO relative to function start unless the shell is
|
|
currently interactive -- this is what ksh93 does and what I
|
|
believe to be the intent of POSIX.2 (this required changing some
|
|
of the test checks because the output has changed)
|
|
- run the debug trap for each command in an arithmetic for expression,
|
|
like ksh93 does
|
|
|
|
lib/readline/vi_mode.c
|
|
- redid rl_vi_subst (binding func for `s' and `S') in terms of
|
|
rl_vi_change_to: `S' == `cc' and `s' == `c '. This makes undo
|
|
work right
|
|
|
|
3/18
|
|
----
|
|
hashlib.c
|
|
- fixed hash_walk to return if the item function returns < 0, instead
|
|
of breaking out of the current hash chain
|
|
|
|
array.c
|
|
- fixed array_walk to return if the item function returns < 0, like
|
|
hash_walk
|
|
|
|
lib/sh/stringlist.c, externs.h
|
|
- new function: strlist_walk, takes a stringlist and a pointer to an
|
|
item func. Like other _walk funcs, if item func returns < 0 the
|
|
walk is cancelled
|
|
- new function: strlist_flush, frees items in the contained list
|
|
with strvec_flush
|
|
- renamed functions to have a strlist_ prefix and be more systematic
|
|
|
|
pcomplib.c,pcomplete.h
|
|
- removed redundant `progcomp_initialized' variable
|
|
- renamed functions to have `progcomp_' or `compspec_' prefixes
|
|
like the hash library
|
|
|
|
{bashline,pcomplete}.c,builtins/complete.def
|
|
- fixed calls to stringlist functions to use new names
|
|
- fixed calls to functions in pcomplib.c to use new names
|
|
|
|
pcomplete.c
|
|
- made the debugging code #ifdef DEBUG -- it should be mature enough
|
|
|
|
builtins/hash.def,parse.y
|
|
- use REVERSE_LIST(x, t) instead of (t)reverse_list(x)
|
|
|
|
list.c,{externs,general}.h
|
|
- renamed the list functions to have a list_ prefix, changed callers
|
|
|
|
externs.h,{execute_cmd,stringlib,subst}.c,builtins/common.c,lib/sh/stringvec.c
|
|
- word_list_to_argv -> strvec_from_word_list
|
|
- argv_to_word_list -> strvec_to_word_list
|
|
- moved functions to lib/sh/stringvec.c
|
|
|
|
lib/sh/stringvec.c
|
|
- changed name of second argument to strvec_from_word_list from `copy'
|
|
to `alloc' so the use of `copy' between strvec_from_word_list and
|
|
strvec_to_word_list isn't as confusing
|
|
- changed name and sense of second argument to
|
|
strvec_to_word_list from `copy' to `alloc' for the same reason --
|
|
now both functions agree on semantics of second argument
|
|
|
|
lib/sh/stringlist.c
|
|
- ditto for strlist_from_word_list and strlist_to_word_list
|
|
|
|
subst.c
|
|
- changed callers of strvec_to_word_list
|
|
|
|
3/19
|
|
----
|
|
builtins/hash.def
|
|
- added `-l' option to list table or individual targets in reusable
|
|
format
|
|
- added `-d' option to remove one or more names from the table of
|
|
hashed commands (provides `unhash' or `unalias -t' functionality)
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new `-l' and `-d' options to `hash'
|
|
|
|
hashcmd.[ch]
|
|
- renamed functions to have a `phash_' prefix and follow new naming
|
|
convention
|
|
- phash_remove now returns an int: 1 if command not in hash table,
|
|
0 if filename removed OK
|
|
|
|
{findcmd,variables}.c, builtins/{hash,type}.def
|
|
- changed callers to use new names from hashcmd.c
|
|
|
|
builtins/common.[ch]
|
|
- new function, sh_notfound(s), prints standard `not found' message
|
|
- new function, sh_invalidid(s), prints standard `invalid identifier'
|
|
message
|
|
- new function, sh_restricted(s), prints standard `restricted' message
|
|
for restricted shells
|
|
- new function, sh_invalidnum(s), prints standard `invalid number'
|
|
message
|
|
- renamed bad_option to sh_invalidopt, changed to print
|
|
`invalid option' instead of `unknown option'
|
|
- new function, sh_invalidoptname, prints standard `invalid option
|
|
name' for long options
|
|
- new function, sh_badjob (s), prints standard `no such job' message
|
|
- new function, sh_invalidsig (s), prints standard `invalid signal
|
|
specification' message
|
|
- new function, sh_nojobs (s), prints standard `no job control' message
|
|
- new function, sh_needarg (s), prints standard `option requires an
|
|
argument' message
|
|
- new function, sh_neednumarg (s), prints standard `numeric
|
|
argument required' message
|
|
- new function, sh_badpid(s), prints standard `not a pid...' message
|
|
- new function, sh_erange (s, desc) prints standard `out of range'
|
|
message, optionally using `desc' to say what the argument is
|
|
|
|
builtins/{alias,command,declare,exec,hash,type}.def
|
|
- call sh_notfound() instead of calling builtin_error directly
|
|
|
|
builtins/{declare,getopts,read,set,setattr}.def
|
|
- call sh_invalidid() instead of calling builtin_error directly
|
|
|
|
builtins/{cd,command,enable,exec,hash,source}.def
|
|
- call sh_restricted() instead of calling builtin_error directly
|
|
|
|
builtins/{printf,read,ulimit}.def, builtins/common.c
|
|
- call sh_invalidnum instead of calling builtin_error directly
|
|
|
|
builtins/{complete,declare,pushd,set}.def, builtins/bashgetopt.c
|
|
- call sh_invalidopt instead of bad_option or builtin_error directly
|
|
|
|
builtins/{complete,set,shopt}.def
|
|
- call sh_invalidoptname instead of builtin_error directly
|
|
|
|
builtins/{fg_bg,jobs,kill,wait}.def
|
|
- call sh_badjob instead of calling builtin_error directly
|
|
|
|
builtins/common.c, builtins/{kill,signal}.def
|
|
- call sh_invalidsig instead of calling builtin_error directly
|
|
|
|
builtins/{fg_bg,suspend,wait}.def
|
|
- call sh_nojobs instead of calling builtin_error directly
|
|
|
|
builtins/{common,bashgetopt}.c, builtins/{hash,kill}.def
|
|
- call sh_neednumarg and sh_needarg where required
|
|
|
|
builtins/{kill,wait}.def
|
|
- call sh_badpid where required
|
|
|
|
builtins/{break,fc,history,pushd,shift,ulimit,umask}.def
|
|
- call sh_erange where appropriate
|
|
|
|
builtins/printf.def
|
|
- new static function, printf_erange, prints standard out-of-range
|
|
warning message
|
|
|
|
builtins/set.def
|
|
- changed so that calls to sh_invalidopt always include the leading
|
|
`+' or `-'
|
|
|
|
builtins/shopt.def
|
|
- changed SHOPT_ERROR macro to shopt_error function
|
|
|
|
builtins/bind.def
|
|
- regularized error messages to `bind: object: error string' like
|
|
other error messages
|
|
|
|
builtins.h
|
|
- the `short_doc' member of a `struct builtin' is now of type
|
|
`const char *'
|
|
- the strings in `long_doc' array of a struct builtin are now const
|
|
|
|
builtins/mkbuiltins.c
|
|
- changes for new `const' members of struct builtin
|
|
|
|
3/20
|
|
----
|
|
lib/readline/histfile.c
|
|
- use pointers instead of indexing into buffer when reading the
|
|
contents of the history file in read_history_range and
|
|
history_truncate_file
|
|
|
|
3/21
|
|
----
|
|
lib/readline/histfile.c
|
|
- new file, with code to mmap the history file for reading and
|
|
writing (depends on HAVE_MMAP, currently nothing checks for that)
|
|
|
|
3/25
|
|
----
|
|
error.[ch]
|
|
- new function, err_badarraysub(s), calls report_error with standard
|
|
`bad array subscript' message
|
|
- new function, err_unboundvar(s), calls report_error with standard
|
|
`unbound variable' message
|
|
- new function, err_readonly(s), calls report_error with standard
|
|
`readonly variable' message
|
|
|
|
{arrayfunc,subst}.c
|
|
- call err_badarraysub where appropriate
|
|
|
|
{expr,subst}.c
|
|
- call err_unboundvar where appropriate
|
|
|
|
{arrayfunc,variables}.c
|
|
- call err_readonly where appropriate
|
|
|
|
shell.c
|
|
- changed text of bad option error messages to be the same as that
|
|
printed for builtin errors
|
|
|
|
builtins/common.c
|
|
- changed sh_invalidopt to print the invalid option before the rest
|
|
of the error message (required some tests to be modified)
|
|
- new function, sh_readonly, calls builtin_error with standard
|
|
`readonly variable' message
|
|
|
|
variables.c,builtins/declare.def
|
|
- call sh_readonly where appropriate
|
|
|
|
lib/sh/stringvec.c
|
|
- added strvec_remove (sv, s), removes S from SV and shuffles rest of
|
|
elements down 1
|
|
|
|
lib/sh/stringlist.c
|
|
- added strlist_remove(sl, s), just calls strvec_remove on the
|
|
component list
|
|
|
|
externs.h
|
|
- new extern declarations for strvec_remove and strlist_remove
|
|
- fixed extern declaration for strvec_search; the arguments were
|
|
reversed (unimportant, it's not compiled into the shell)
|
|
|
|
subst.c
|
|
- change param_expand to call quote_escapes on values retrieved when
|
|
expanding the positional parameters
|
|
- change parameter_brace_expand_word to quote escapes on values
|
|
retrieved when expanding the positional parameters
|
|
- fix parameter_brace_substring to quote escape characters on unquoted
|
|
substrings extracted from variable values (needed to separate case
|
|
VT_VARIABLE from VT_ARRAYMEMBER for this, since, because
|
|
get_var_and_type calls array_value for VT_ARRAYMEMBER, we need to
|
|
skip over quoted characters in an already-appropriately-quoted
|
|
string to find the substring we want)
|
|
- fix parameter_brace_substring to quote escape characters in the
|
|
value returned by pos_params when expanding subsets of the
|
|
positional parameters and not within double quotes (in which case
|
|
pos_params() quotes the string for us)
|
|
- fix parameter_brace_substring to quote escape characters in the
|
|
value returned by array_subrange when expanding subsets of an
|
|
array and not within double quotes (in which case
|
|
array_subrange() quotes the string for us)
|
|
- new function, quoted_strlen(s), does strlen(s) while skipping over
|
|
characters quoted with CTLESC (#ifdef INCLUDE_UNUSED, since it's
|
|
not used yet)
|
|
- changed pos_params() so it always returns a list whose members are
|
|
quoted strings if (quoted&(Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0
|
|
|
|
arrayfunc.c
|
|
- fix array_value to consistently call quote_escapes, even when a
|
|
non-array variable is being subscripted with element 0, in which
|
|
case we return the variable value
|
|
|
|
lib/sh/strtrans.c
|
|
- make the for_echo parameter to ansicstr a `flags' parameter that
|
|
has its old `for echo' meaning if flags&1 is non-zero (which is
|
|
consistent with the old code)
|
|
- Added code to the `flags' parameter to ansicstr so that if flags&2
|
|
is non-zero, CTLESC and CTLNUL are escaped with CTLESC in the
|
|
expanded string
|
|
- change ansiexpand() to call ansicstr with a `flags' parameter of 2
|
|
|
|
3/26
|
|
----
|
|
lib/readline/histfile.c
|
|
- when reading and writing the history file, use malloc instead of
|
|
xmalloc and handle failures gracefully, so the application doesn't
|
|
abort if the history file or history list is too big
|
|
|
|
3/27
|
|
----
|
|
arrayfunc.c
|
|
- changed array_value_internal to take an additional `int *'
|
|
parameter, in which is returned the type of array indexing
|
|
performed (array[@] vs. array or array[index])
|
|
- changed array_value and get_array_value to take a corresponding
|
|
extra parameter and pass it to array_value_internal
|
|
- changed array_value_internal to no longer return newly-allocated
|
|
memory or quote CTLESC and CTLNUL in the returned string if
|
|
`simple' array indexing (subscript not `@' or `*') is being
|
|
performed. This makes it more like a variable lookup
|
|
|
|
arrayfunc.h
|
|
- changed prototypes for array_value and get_array_value
|
|
|
|
expr.c
|
|
- added new parameter to call to get_array_value in expr_streval
|
|
- don't need to free memory returned by get_array_value any more
|
|
|
|
subst.c
|
|
- quote_escapes now works with multibyte characters
|
|
- dequote_string now works with multibyte characters
|
|
- dequote_escapes is now needed, so it's compiled in, and it
|
|
now works with multibyte characters
|
|
- remove_quoted_escapes now just calls dequote_escapes and copies the
|
|
result over the argument string
|
|
- remove_quoted_nulls now returns its char * argument, parallels
|
|
remove_quoted_escapes
|
|
- parameter_brace_expand_word now passes the new argument to
|
|
array_value and quotes CTLESC and CTLNUL in the result if it's a
|
|
`simple' array expansion by calling quote_escapes
|
|
- get_var_and_type now returns VT_ARRAYMEMBER for references like
|
|
${array} where `array' is an array variable (just like ${array[0]}).
|
|
Documented (in comment) that a VT_VARIABLE return value means that
|
|
quote_escapes has been called at some point
|
|
- changed callers of get_var_and_type to no longer free value if
|
|
VT_ARRAYMEMBER is returned as type
|
|
- changed parameter_brace_substring and parameter_brace_patsub to
|
|
call dequote_escapes on the value from get_var_and_type if the
|
|
type is VT_VARIABLE, since the substring and pattern substitution
|
|
code doesn't understand CTLESC quoting
|
|
- parameter_brace_substring no longer needs to call quoted_substring
|
|
for the VT_ARRAYMEMBER case
|
|
- changed parameter_brace_patsub to call quote_escapes on the result
|
|
of pat_subst for the VT_VARIABLE and VT_ARRAYMEMBER cases, and to
|
|
quote the returned string in the VT_ARRAYVAR and VT_POSPARAMS cases
|
|
if the `MATCH_QUOTED' flag isn't set (if it is, the pattern
|
|
substitution functions perform any necessary quoting)
|
|
- quoted_substring is no longer used; it's now #ifdef INCLUDE_UNUSED
|
|
|
|
lib/malloc/mstats.h
|
|
- new member in _malstats: u_bits32_t bytesreq, the total number of
|
|
bytes requested by the caller via calls to malloc() and realloc()
|
|
|
|
lib/malloc/stats.c
|
|
- print bytesreq member in _print_malloc_stats
|
|
- don't print statistics for buckets for which nmal == 0 (no mallocs)
|
|
|
|
lib/malloc/malloc.c
|
|
- modified internal_malloc, internal_realloc to keep running total of
|
|
number of bytes requested by calling application
|
|
|
|
shell.c
|
|
- sh_exit is now compiled in; exit_shell calls sh_exit
|
|
|
|
error.c
|
|
- changed fatal_error, report_error, parser_error to call sh_exit
|
|
|
|
3/28
|
|
----
|
|
subst.[ch]
|
|
- changed Q_NOQUOTE to Q_PATQUOTE; it makes the intent more clear
|
|
|
|
subst.c
|
|
- moved code from parameter_brace_expand into a new function that
|
|
dispatches for pattern substitution: parameter_brace_remove_pattern
|
|
- changed structure of parameter_brace_remove_pattern to be like
|
|
parameter_brace_patsub and its ilk: call get_var_and_type to
|
|
isolate the variable name, move the pattern isolation code out of
|
|
the various *_remove_pattern functions into
|
|
parameter_brace_remove_pattern and pass the results to the various
|
|
functions, use a switch on the return value from get_var_and_type
|
|
to decide which function to call, regularized the arguments to the
|
|
separate pattern removal functions
|
|
- parameter_brace_remove_pattern now properly quotes escape chars in
|
|
the returned value
|
|
- changed get_var_and_type to call dequote_escapes on the `value'
|
|
parameter for case VT_VARIABLE and return the result in *valp,
|
|
so the calling functions don't have to do it themselves; changed
|
|
callers appropriately
|
|
- fixed getpattern() where it broke posix compliance: if you enclose
|
|
a pattern removal spec in double quotes, the outer double quotes
|
|
have no effect on the pattern (POSIX.1-200x 2.6.2). This uncovered
|
|
a bug in the test suite (!)
|
|
|
|
pathexp.c
|
|
- fixed a problem with quote_string_for_globbing where it would change
|
|
consecutive CTLESC chars all to \ instead of changing every other
|
|
quoted char
|
|
|
|
3/31
|
|
----
|
|
lib/malloc/{malloc,stats}.c
|
|
- moved declaration of _mstats to malloc.c so stats.o doesn't get
|
|
linked into the shell if the stats functions aren't called
|
|
|
|
4/2
|
|
---
|
|
lib/glob/smatch.c
|
|
- introduce `XCHAR' define, which is the type of arguments passed to
|
|
strcoll/strcmp/strlen and their wide-character equivalents, added
|
|
appropriate casts
|
|
- static arrays in single-byte version of rangecmp() are `char', not
|
|
`unsigned char', so compilers don't complain about calls to strcoll
|
|
|
|
lib/glob/sm_loop.c
|
|
- casts for `XCHAR' and `XCHAR *' arguments to libc functions
|
|
- use prototype declaration for BRACKMATCH if `PROTOTYPES' is defined
|
|
to avoid problems with type promotion (unsigned char -> int)
|
|
|
|
lib/glob/collsyms.h
|
|
- `name' member of struct _COLLSYM is now of type `XCHAR *', since
|
|
some compilers don't like `unsigned char *' initializers from
|
|
constant strings
|
|
|
|
[bash-2.05b-alpha1 released]
|
|
|
|
4/3
|
|
---
|
|
builtins/{evalstring.c,common.h}
|
|
- new flag for parse_and_execute, SEVAL_NOFREE, means to not free
|
|
the argument string when finished
|
|
|
|
lib/readline/text.c
|
|
- fixed a trivial typo in _rl_insert_char when reading multibyte
|
|
char sequences
|
|
- replace calls to ding() with rl_ding()
|
|
|
|
include/chartypes.h
|
|
- remove SIGN_EXTEND_CHAR and TOASCII macros; they're unused
|
|
|
|
make_cmd.c
|
|
- include dispose_cmd.h for extern function declarations
|
|
|
|
lib/glob/glob.c
|
|
- include `shmbutil.h' and `xmalloc.h' for extern function declarations
|
|
|
|
lib/glob/smatch.c
|
|
- include `xmalloc.h' for extern function declarations
|
|
|
|
shell.c
|
|
- fix maybe_make_restricted to use its argument instead of global
|
|
`shell_name'
|
|
|
|
version.c
|
|
- update copyright message to include this year
|
|
|
|
lib/readline/display.c
|
|
- fixes from Jiro SEKIBA <jir@yamato.ibm.com> to fix autowrapping
|
|
when using multibyte characters
|
|
|
|
lib/glob/sm_loop.c
|
|
- fixed a problem in BRACKMATCH where not enough memory was allocated
|
|
to hold a multibyte character when parsing POSIX.2 char class names
|
|
|
|
support/config.{guess,sub}
|
|
- updated via patch from Paul Eggert with latest GNU additions
|
|
|
|
variables.c
|
|
- var_lookup should use its `vcontext' argument instead of
|
|
unconditionally using `shell_variables'
|
|
|
|
4/4
|
|
---
|
|
builtins/bind.def,doc/{bash.1,bashref.texi}
|
|
- changed the usage summary and help text to make it clear that any
|
|
readline command that may appear in ~/.inputrc may be supplied as
|
|
one of the non-option arguments to `bind'
|
|
|
|
builtins/mkbuiltins.c
|
|
- added support for `-H' option, which means to write long documentation
|
|
for each builtin to a separate file in the `helpfiles' directory
|
|
|
|
builtins/Makefile.in
|
|
- new target `helpdoc', just creates long doc files in helpfiles
|
|
directory
|
|
|
|
lib/sh/zcatfd.c
|
|
- new file, with zcatfd(int fd, int ofd, char *fn); dumps data from
|
|
FD to OFD
|
|
|
|
Makefile.in,lib/sh/Makefile.in
|
|
- added zcatfd.c, zcatfd.o member of libsh.a
|
|
|
|
builtins/evalstring.c
|
|
- changed cat_file to call zcatfd(fd, 1, fn)
|
|
|
|
builtins/{shopt,colon}.def
|
|
- removed the $DOCNAME directive for `shopt', `true', and `false';
|
|
just use the names
|
|
- changed $DOCNAME for `:' to just be `colon' instead of
|
|
`colon_builtin'
|
|
|
|
builtins/reserved.def
|
|
- added help entries for ((, [[, `for (('
|
|
|
|
builtins/let.def
|
|
- add id++, id--, ++id, --id, ** to help text
|
|
|
|
4/8
|
|
---
|
|
builtins/bashgetopt.[ch]
|
|
- changed to allow options beginning with `+', enabled by a leading
|
|
`+' in the option string
|
|
- new variable, list_opttype, set to `-' or `+'
|
|
|
|
builtins/{common.c,{builtin,eval,exit,fg_bg,let,printf,pushd,return,source,wait}.def
|
|
- changes to allow a `--' option for every builtin that accepts
|
|
operands but not options, as per posix.1-2001
|
|
|
|
builtins/{declare,setattr}.def
|
|
- use internal_getopt for parsing options, now that it supports `+'
|
|
|
|
builtins/set.def
|
|
- use internal_getopt for initial option parse, now that it supports
|
|
a leading `+'
|
|
|
|
|
|
{configure,Makefile}.in, builtins/{Makefile.in,help.def,mkbuiltins.c}
|
|
- support for a new configure option, ``--enable-separate-helpfiles'',
|
|
moves the `long' help text to separate help files, installed by
|
|
default into ${datadir}/bash, one file per builtin. Off by
|
|
default -- it saves 47K, but it's only 47K, and it's in the text
|
|
segment
|
|
|
|
flags.c
|
|
- build internal_getopt() option string argument from flags array at
|
|
runtime in shell.c
|
|
|
|
shell.c
|
|
- new variable to control writing malloc stats at exit:
|
|
malloc_trace_at_exit, 0 by default
|
|
|
|
lib/malloc/malloc.c
|
|
- heavily updated:
|
|
o partial page allocated on first call to malloc to make
|
|
subsequent sbrks page-aligned no longer wasted
|
|
o begin and end range guards are now the same value: the chunk
|
|
requested
|
|
o coalescing code was changed to attempt to coalesce first two
|
|
adjacent blocks on the free list; enabled by default
|
|
o blocks of size 32 are now candidates for larger block
|
|
splitting, since 32 is the most popular size
|
|
o blocks of size 32 are now candidates for smaller block
|
|
coalescing
|
|
o the IN_BUCKET check was changed to just make sure that the
|
|
size isn't too big for the bucket, since the `busy block'
|
|
checking code may increase the bucket by one or more,
|
|
meaning that the old check would fail and cause a panic when
|
|
a chunk allocated in such a way was freed
|
|
o bin sizes are now precomputed and looked up in an array
|
|
rather than being computed at runtime
|
|
o moved the _mstats declaration here to avoid the stats code
|
|
being linked in even when no stats functions were called
|
|
(only matters if MALLOC_DEBUG is defined)
|
|
o malloc now keeps track of the address of the top of the heap
|
|
and will return large chunks to the system with calls to
|
|
sbrk with a negative argument when freeing the top chunk.
|
|
Two thresholds: LESSCORE_FRC means to unconditionally return
|
|
memory to the system; LESSCORE_MIN means to return memory if
|
|
there's at least one block already on the free list
|
|
|
|
lib/malloc/mstats.h
|
|
- stats struct now keeps track of number of block coalesces by bin,
|
|
and the number of times memory was returned to the system by bin
|
|
|
|
lib/malloc/stats.c
|
|
- trace_malloc_stats now takes a second argument: the name of the file
|
|
to write to. The first `%p' in the template file name is replaced
|
|
by the pid
|
|
|
|
4/9
|
|
---
|
|
lib/malloc/imalloc.h
|
|
- added some macros derived from dlmalloc and glibc malloc to inline
|
|
memcpy and memset if the requested size is <= 32 bytes
|
|
|
|
lib/malloc/malloc.c
|
|
- use MALLOC_MEMSET instead of memset in internal_{malloc,free}
|
|
|
|
include/ocache.h
|
|
- use OC_MEMSET (variant of MALLOC_MEMSET) in ocache_free
|
|
|
|
configure.in, config.h.in
|
|
- check for getservent(), define HAVE_GETSERVENT if found
|
|
|
|
bashline.c
|
|
- punt immediately from bash_servicename_completion_function if
|
|
HAVE_GETSERVENT is not defined (cygwin seems to not define it)
|
|
- include "input.h" for extern save_token_state() and
|
|
restore_token_state() declarations
|
|
- change bash_execute_unix_command to call parse_and_execute with
|
|
SEVAL_NOHIST flag so the command doesn't get saved on the history
|
|
list
|
|
- change bash_execute_unix_command to save and restore the current
|
|
command line count and the token state (last_read_token, etc.).
|
|
Everything else is saved by either parse_and_execute directly or
|
|
the call it makes to push_stream(). The shell_input_line stuff
|
|
doesn't need to be saved and restored; it's not computed until
|
|
readline() returns
|
|
|
|
4/10
|
|
----
|
|
lib/glob/glob.[ch]
|
|
- glob_filename and glob_vector now take an additional `flags' arg
|
|
- define GX_MARKDIRS as possible flag value for glob_filename and
|
|
glob_vector
|
|
|
|
lib/sh/snprintf.c
|
|
- fixed some bugs with handling of `g' and `G' formats
|
|
- make sure numtoa returns the fractional part correctly when passed 0
|
|
- implemented thousands grouping for `'' flag character
|
|
|
|
lib/sh/rename.c
|
|
- a few changes to make it more bulletproof
|
|
|
|
4/11
|
|
----
|
|
lib/glob/glob.c
|
|
- added the couple of dozen lines of code to glob_dir_to_array to
|
|
finish implementing GX_MARKDIRS
|
|
|
|
builtins/set.def
|
|
- changed unset builtin so that it no longer considers unsetting an
|
|
unset variable or function to be an error
|
|
|
|
lib/readline/display.c
|
|
- fix to rl_redisplay for a problem which caused display to be messed
|
|
up when the last line of a multi-line prompt (possibly containing
|
|
invisible characters) was longer than the screen width
|
|
|
|
4/15
|
|
----
|
|
aclocal.m4
|
|
- use AC_DEFINE_UNQUOTED in BASH_SYS_DEFAULT_MAIL_DIR instead of
|
|
enumerating all of the possible values and using AC_DEFINE
|
|
|
|
4/16
|
|
----
|
|
Makefile.in, {builtins,support}/Makefile.in
|
|
- new variables, CFLAGS_FOR_BUILD and CPPFLAGS_FOR_BUILD, substituted
|
|
by `configure'
|
|
- changed CCFLAGS_FOR_BUILD to BASE_CCFLAGS, removing $(CPPFLAGS);
|
|
CCFLAGS and CCFLAGS_FOR_BUILD now include $(BASE_CCFLAGS) with
|
|
(possibly) different values for CPPFLAGS and CFLAGS
|
|
- GCC_LINT_CFLAGS now includes $(BASE_CCFLAGS) and $(CPPFLAGS)
|
|
instead of CCFLAGS_FOR_BUILD
|
|
- new variable, LDFLAGS_FOR_BUILD, right now equivalent to LDFLAGS
|
|
- remove $(CPPFLAGS) from recipes for buildversion, mksignames, and
|
|
mksyntax
|
|
|
|
configure.in
|
|
- compute and substitute CFLAGS_FOR_BUILD, CPPFLAGS_FOR_BUILD, and
|
|
LDFLAGS_FOR_BUILD
|
|
- changed qnx to use LOCAL_LDFLAGS and LOCAL_LIBS instead of putting
|
|
everything in LOCAL_LDFLAGS
|
|
|
|
builtins/Makefile.in
|
|
- remove $(PROFILE_FLAGS) from recipe for building `mkbuiltins'
|
|
- use LDFLAGS_FOR_BUILD instead of LDFLAGS in recipe for building
|
|
`mkbuiltins'
|
|
|
|
Makefile.in
|
|
- use $(CC_FOR_BUILD) and $(CCFLAGS_FOR_BUILD) to build auxiliary
|
|
test programs (printenv, recho, zecho)
|
|
|
|
support/Makefile.in
|
|
- use CC_FOR_BUILD and CCFLAGS_FOR_BUILD in recipe for building
|
|
`man2html'
|
|
|
|
lib/tilde/Makefile.in
|
|
- substitute PROFILE_FLAGS, use PROFILE_FLAGS in $(CCFLAGS)
|
|
|
|
4/25
|
|
----
|
|
Makefile.in, configure.in
|
|
- moved RELSTATUS to configure.in; configure substitutes it into
|
|
the generated Makefile
|
|
|
|
lib/sh/snprintf.c
|
|
- fix wchars() to deal with systems where MB_CUR_MAX is not a
|
|
constant expression
|
|
|
|
5/2
|
|
---
|
|
lib/sh/shquote.c
|
|
- add `,' to list of chars that are backslash-quoted. It doesn't
|
|
hurt normal usage and prevents filenames with commas from being
|
|
inappropriately split by brace expansion after using
|
|
complete-into-braces
|
|
|
|
5/6
|
|
---
|
|
lib/sh/xstrchr.c
|
|
- we only need the check of MB_CUR_MAX and the slow code for a
|
|
few encodings, and even then only for a subset of the charset
|
|
|
|
arrayfunc.c
|
|
- some speedups for skipsubscript and multibyte chars from Bruno Haible
|
|
|
|
locale.c
|
|
- changed set_lang to call setlocale(LC_ALL, ...) if LC_ALL doesn't
|
|
already have a value, but doesn't change any shell variables
|
|
|
|
include/shmbutil.h
|
|
- major speedups from Bruno Haible, mostly concerned with reducing
|
|
the number of strlen(3) calls
|
|
|
|
subst.c
|
|
- change callers of macros in shmbutil.h to add extra argument as
|
|
necessary
|
|
- skip_single_quoted and skip_double_quoted take another argument:
|
|
the length of the string; mostly useful when using multibyte chars
|
|
- many speedups from precomputing string lengths at function start
|
|
- fixed a small bug in de_backslash in the midst of rewriting for
|
|
better efficiency
|
|
|
|
{braces,make_cmd,pathexp}.c
|
|
- change callers of macros in shmbutil.h to add extra argument as
|
|
necessary
|
|
|
|
pathexp.c
|
|
- fix a one-too-far problem with multibyte chars in
|
|
unquoted_glob_pattern_p
|
|
|
|
braces.c
|
|
- brace_gobbler takes a new argument, the length of the passed string
|
|
- expand_amble takes a new argument, the length of the passed string
|
|
|
|
5/7
|
|
---
|
|
subst.c
|
|
- modified remove_quoted_nulls to eliminate the memory allocation and
|
|
do the copy in place using the same strategy as de_backslash
|
|
|
|
lib/readline/{rldefs.h,complete.c}
|
|
- new define RL_QF_OTHER_QUOTE, so _rl_find_completion_word can note
|
|
that it found a quoting character other than \'" that appears in
|
|
rl_completer_quote_characters
|
|
|
|
5/9
|
|
---
|
|
jobs.c
|
|
- save and restore old value of jobs_list_frozen when calling trap
|
|
handlers from set_job_status_and_cleanup to avoid seg faults when
|
|
running recursive trap handlers
|
|
|
|
5/10
|
|
----
|
|
builtins/common.h
|
|
- new #defines to use for value of changed_dollar_vars (provides
|
|
information about the caller who wants to blow away the old dollar
|
|
variables)
|
|
|
|
builtins/common.c
|
|
- changed set_dollar_vars_changed to set changed_dollar_vars to one
|
|
of the ARGS_* values depending on the caller and environment
|
|
|
|
builtins/source.def
|
|
- source restores the positional parameters unless the `set' builtin
|
|
was called to specify a new set while not executing a shell function
|
|
|
|
5/13
|
|
----
|
|
POSIX
|
|
- new file, was in CWRU/POSIX.NOTES
|
|
|
|
doc/{Makefile.in,Makefile}
|
|
- changed `posix' rule to modify ../POSIX
|
|
|
|
doc/mkposix
|
|
- write to `POSIX' by default
|
|
|
|
lib/sh/strtrans.c
|
|
- when ansicstr is parsing a format string for `echo -e' (or the
|
|
equivalent xpg_echo option is enabled), obey the POSIX-2001/SUSv3
|
|
standard and accept 0-3 octal digits after a leading `0'
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- updated `echo' description to note that up to three octal digits
|
|
are now accepted following `\0'
|
|
|
|
5/16
|
|
----
|
|
doc/Makefile.in
|
|
- remove the generated documentation on `make distclean' if the
|
|
build directory and source directory are not the same
|
|
|
|
Makefile.in
|
|
- descend into `support' subdirectory on a `make clean' and
|
|
`make distclean'
|
|
- remove parser-built, y.tab[ch] on a `make distclean' if the build
|
|
directory and source directory are not the same
|
|
|
|
support/Makefile.in
|
|
- support various `clean' targets and remove man2html.o and man2html
|
|
|
|
{configure,Makefile}.in
|
|
- move values for DEBUG and MALLOC_DEBUG into configure.in; on by
|
|
default for development versions; off by default for releases
|
|
(off for profiling, too)
|
|
|
|
5/21
|
|
----
|
|
parse.y
|
|
- modified the grammar to allow a simple_list followed by yacc_EOF
|
|
to terminate a command. This fixes problems with things like
|
|
a backslash-newline at the end of an `eval'd string
|
|
- change handle_eof_input_unit() to reset the token state before
|
|
calling prompt_again(), in case the prompt to be evaluated contains
|
|
a command substitution
|
|
|
|
5/23
|
|
----
|
|
lib/readline/vi_mode.c
|
|
- fix `r' command (rl_vi_change_char) when HANDLE_MULTIBYTE is defined
|
|
but MB_CUR_MAX == 1
|
|
|
|
5/24
|
|
----
|
|
lib/malloc/watch.c
|
|
- don't try to print `file' argument to _watch_warn if it's null
|
|
|
|
lib/malloc/malloc.c
|
|
- changed guard checking code in internal_{malloc,free,realloc} to
|
|
access memory as (char *) and copy into a union instead of
|
|
casting and dereferencing a pointer to u_bits32_t, since that
|
|
results in unaligned accesses which will cause Sparcs to upchuck
|
|
|
|
5/30
|
|
----
|
|
[bash-2.05b-beta1 released]
|
|
|
|
lib/readline/text.c
|
|
- fixed a problem with rl_transpose_chars on systems supporting
|
|
multibyte characters with a locale that doesn't have any multibyte
|
|
chars
|
|
|
|
6/4
|
|
---
|
|
expr.c
|
|
- fix a/=0 and a%=0 to throw evaluation errors rather than core dumps
|
|
|
|
lib/readline/display.c
|
|
- fix core dump when line wrapping a multibyte character (line
|
|
accidentally dropped from the original patch)
|
|
|
|
lib/readline/mbutil.c
|
|
- fix reversed return value from _rl_is_mbchar_matched; fixes problem
|
|
with backward-char-search
|
|
|
|
6/10
|
|
----
|
|
lib/sh/getenv.c
|
|
- fix getenv to not free value returned by find_tempenv_variable
|
|
- add setenv, putenv, unsetenv for completeness
|
|
|
|
6/12
|
|
----
|
|
shell.c
|
|
- change init_noninteractive to init expand_aliases to the value of
|
|
posixly_correct
|
|
- don't initialize expand_aliases to posixly_correct anywhere else.
|
|
This allows the -O expand_aliases invocation option to work correctly
|
|
|
|
general.c
|
|
- fix move_to_high_fd to not try the dup2 unless the fd loop results
|
|
in an fd > 3; just return the passed file descriptor otherwise
|
|
- use HIGH_FD_MAX, defined in general.h, instead of hard-coded 256
|
|
as highest file descriptor to try
|
|
|
|
subst.c
|
|
- in process_substitute, call move_to_high_fd with `maxfd' parameter
|
|
of -1 instead of 64, so move_to_high_fd will use its maximum
|
|
|
|
6/21
|
|
----
|
|
lib/malloc/malloc.c
|
|
- don't bother calling MALLOC_MEMSET if the requested size is 0
|
|
|
|
builtins/setattr.def
|
|
- note in short doc that export and readonly can take assignment
|
|
statements as arguments
|
|
|
|
error.c
|
|
- new function, error_prolog(), to capture common error message
|
|
prefix code (except for parser errors)
|
|
|
|
6/25
|
|
----
|
|
aclocal.m4
|
|
- add tests for standard-conforming declarations for putenv and
|
|
unsetenv in system header files
|
|
|
|
{configure,config.h}.in
|
|
- call BASH_FUNC_STD_PUTENV and BASH_FUNC_STD_UNSETENV, define
|
|
HAVE_STD_GETENV and HAVE_STD_UNSETENV, respectively, if they
|
|
succeed
|
|
|
|
lib/sh/getenv.c
|
|
- change putenv and unsetenv to take differing prototypes in
|
|
stdlib.h into account
|
|
|
|
6/27
|
|
----
|
|
[bash-2.05b-beta2 released]
|
|
|
|
6/28
|
|
----
|
|
builtins/common.c
|
|
- fix get_job_spec so that %N works when N is the size of the jobs
|
|
list (%8 means job 8, but the 7th member of the jobs array, so
|
|
it's OK if N == job_slots because the function returns N-1)
|
|
|
|
7/1
|
|
---
|
|
shell.c
|
|
- turn off line editing if $EMACS is set to `t'
|
|
|
|
7/10
|
|
----
|
|
builtins/set.def
|
|
- remove mention of `-i' from long help doc, since it has no effect
|
|
|
|
7/17
|
|
----
|
|
[bash-2.05b released]
|
|
|
|
7/18
|
|
----
|
|
|
|
lib/malloc/malloc.c
|
|
- make sure that the `free_return' label has a non-empty statement
|
|
to branch to
|
|
|
|
7/19
|
|
----
|
|
locale.c
|
|
- only call setlocale() from set_lang() if HAVE_SETLOCALE is defined;
|
|
otherwise just return 0
|
|
|
|
lib/readline/mbutil.c
|
|
- only try to memset `ps' in _rl_get_char_len if it's non-NULL. Ditto
|
|
for _rl_adjust_point
|
|
|
|
7/23
|
|
----
|
|
execute_cmd.c
|
|
- fix for executing_line_number() when compiling without conditional
|
|
commands, dparen arithmetic or the arithmetic for command
|
|
|
|
|
|
7/24
|
|
----
|
|
support/Makefile.in
|
|
- fix maintainer-clean, distclean, mostlyclean targets
|
|
|
|
builtins/common.c
|
|
- fix bug in sh_nojobs where it doesn't pass the right number of args
|
|
to builtin_error
|
|
|
|
bashline.c
|
|
- when using command completion and trying to avoid appending a slash
|
|
if there's a directory with the same name in the current directory,
|
|
use absolute_pathname() instead of just checking whether the first
|
|
char of the match is a slash to catch things like ./ and ../
|
|
|
|
examples/complete/bashcc-1.0.1.tar.gz
|
|
- a package of completions for Clear Case, from Richard S. Smith
|
|
(http://www.rssnet.org/bashcc.html)
|
|
|
|
input.c
|
|
- fix check_bash_input to call sync_buffered_stream if the passed fd
|
|
is 0 and the shell is currently reading input from fd 0 -- all it
|
|
should cost is maybe an additional read system call, and it fixes
|
|
the bug where an input redirection to a builtin inside a script
|
|
which is being read from stdin causes the already-read-and-buffered
|
|
part of the script to be thrown away, e.g.:
|
|
|
|
bash < x1
|
|
|
|
where x1 is
|
|
|
|
hostname
|
|
read Input < t.in
|
|
echo $Input
|
|
echo xxx
|
|
|
|
execute_cmd.c
|
|
- in initialize_subshell(), call unset_bash_input (0) to not mess with
|
|
fd 0 if that's where bash thinks it's reading input from. Fixes
|
|
bug reported by jg@cs.tu-berlin.de on 17 July 2002. Should be a way
|
|
to check whether or not the current fd 0 at the time of the call has
|
|
not been redirected, like in the bug report. Also might eventually
|
|
want to throw in a sync_buffered_stream if bash is reading input
|
|
from fd 0 in a non-interactive shell into a buffered stream, so the
|
|
stream is sync'd -- might be necessary for some uses
|
|
|
|
7/25
|
|
----
|
|
lib/readline/signals.c
|
|
- make sure rl_catch_sigwinch is declared even if SIGWINCH is not
|
|
defined, so the readline state saving and restoring functions in
|
|
readline.c are always the same size even if SIGWINCH is not defined,
|
|
and undefined references don't occur when SIGWINCH is not defined
|
|
|
|
7/30
|
|
----
|
|
bashline.c
|
|
- augment patch from 7/24 to not disable rl_filename_completion_desired
|
|
if the first char of the match is `~'
|
|
|
|
lib/readline/bind.c
|
|
- when creating `shadow' keymaps `bound' to ANYOTHERKEY, don't bind
|
|
a key whose type is ISFUNC but whose function is the `fake'
|
|
rl_do_lowercase_version (fixes debian bash bug #154123)
|
|
|
|
lib/readline/readline.c
|
|
- don't call _rl_vi_set_last from _rl_dispatch_subseq if
|
|
key == ANYOTHERKEY (when truncated to `sizeof(char)', it will be 0,
|
|
which strchr will find in `vi_textmod')
|
|
|
|
7/31
|
|
----
|
|
lib/readline/input.c
|
|
- fix rl_gather_tyi to only slurp up one line of available input, even
|
|
if more than one line is available (fixes debian bash bug #144585)
|
|
|
|
8/3
|
|
---
|
|
bashline.c
|
|
- better fix for command completion problem -- test for directory
|
|
explicitly with test_for_directory before turning off
|
|
rl_filename_completion_desired, since that's the case we're trying
|
|
to protect against
|
|
|
|
8/5
|
|
---
|
|
include/shmbutil.h
|
|
- fix ADVANCE_CHAR macro to advance the string pointer if mbrlen
|
|
returns 0, indicating that the null wide character (wide string
|
|
terminator) was found (debian bash bug #155436)
|
|
|
|
lib/readline/mbutil.c
|
|
- fix _rl_adjust_point to increment the string pointer if mbrlen
|
|
returns 0
|
|
|
|
support/shobj-conf
|
|
- fix for the `-install_name' value in SHLIB_XLDFLAGS assignment for
|
|
Darwin from the fink folks
|
|
|
|
8/6
|
|
---
|
|
builtins/exit.def
|
|
- broke code that runs ~/.bash_logout out into a separate function:
|
|
bash_logout()
|
|
|
|
builtins/common.h
|
|
- extern declaration for bash_logout()
|
|
|
|
eval.c
|
|
- call bash_logout() from alrm_catcher(), so timed-out login shells
|
|
run ~/.bash_logout before processing the exit trap
|
|
|
|
lib/sh/strtrans.c
|
|
- implemented $'\x{hexdigits}' expansion from ksh93
|
|
|
|
configure.in
|
|
- define RECYCLES_PIDS in LOCAL_CFLAGS for cygwin; don't bother to
|
|
link with -luser32
|
|
|
|
examples/loadables/strftime.c
|
|
- new loadable builtin, interface to strftime(3)
|
|
|
|
8/7
|
|
---
|
|
parse.y
|
|
- parse_arith_cmd now takes a second argument, a flag saying whether
|
|
or not to add double quotes to a parsed arithmetic command; changed
|
|
callers
|
|
- changed parse_dparen so it tells parse_arith_cmd to not add the
|
|
double quotes and therefore doesn't need to remove them
|
|
- change parse_dparen to add W_NOGLOB|W_NOSPLIT|W_QUOTED flags to word
|
|
created when parsing (( ... )) arithmetic command, since the double
|
|
quotes are no longer added
|
|
|
|
make_cmd.c
|
|
- in make_arith_for_expr, set the flags on the created word to
|
|
W_NOGLOB|W_NOSPLIT|W_QUOTED
|
|
|
|
execute_cmd.c
|
|
- change execute_arith_command to expand the expression with
|
|
expand_words_no_vars, like the arithmetic for command code does
|
|
- fix execute_arith_command to handle the case where the expanded
|
|
expression results in a NULL word without crashing
|
|
|
|
tests/{arith-for,cprint}.tests
|
|
- change expected output to account for no longer adding quotes to
|
|
((...)) commands
|
|
|
|
8/8
|
|
---
|
|
print_cmd.c
|
|
- take out the space after printing the `((' and before printing the
|
|
`))' in print_arith_command, print_arith_for_command, and
|
|
xtrace_print_arith_cmd
|
|
|
|
tests/{arith-for,cprint}.tests
|
|
- change expected output to account for no longer adding leading and
|
|
trailing spaces when printing ((...)) and arithmetic for commands
|
|
|
|
8/17
|
|
----
|
|
subst.c
|
|
- fix issep() define to handle case where separators[0] == '\0', in
|
|
which case it always returns false
|
|
|
|
lib/readline/histexpand.c
|
|
- fix off-by-one error in history_expand_internal when using the `g'
|
|
modifier that causes it to skip every other match when matching a
|
|
single character (reported by gjyun90@resl.auto.inha.ac.kr)
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- make sure that the name=word form of argument to declare/typeset,
|
|
export, and readonly is documented in the description
|
|
|
|
8/30
|
|
----
|
|
lib/readline/histexpand.c
|
|
- make history_expand_internal understand double quotes, because
|
|
single quotes are not special inside double quotes, according to
|
|
our shell-like quoting conventions. We don't want unmatched
|
|
single quotes inside double-quoted strings inhibiting history
|
|
expansion
|
|
- make `a' modifier equivalent to `g' modifier for compatibility with
|
|
the BSD csh
|
|
- add a `G' modifier that performs a given substitution once per word
|
|
(tokenized as the shell would do it) like the BSD csh `g' modifier
|
|
|
|
8/31
|
|
----
|
|
braces.c
|
|
- when compiling for the shell, treat ${...} like \{...} instead of
|
|
trying to peek backward when we see a `{'. This makes it easier
|
|
to handle things like \${, which should be brace expanded because
|
|
the $ is quoted
|
|
|
|
9/7
|
|
---
|
|
aclocal.m4
|
|
- redirect stdin from /dev/null in BASH_CHECK_DEV_FD before testing
|
|
the readability of /dev/fd/0, so we're dealing with a known quantity
|
|
|
|
9/11
|
|
----
|
|
[prayers for the victims of 9/11/01]
|
|
|
|
shell.c
|
|
- fix maybe_make_restricted to handle a restricted login shell with a
|
|
base pathname of `-rbash' and skip over any leading `-'
|
|
|
|
9/13
|
|
----
|
|
builtins/evalstring.c
|
|
- in parse_and_execute, make sure we don't try to run unwind-protects
|
|
back to `pe_dispose' after a longjmp back to top_level if the
|
|
pe_dispose frame hasn't been initialized
|
|
|
|
lib/readline/display.c
|
|
- fix problem with prompt overwriting previous output when the output
|
|
doesn't contain a newline in a multi-byte locale. This also should
|
|
fix the problem of bash slowing down drastically on long lines when
|
|
using a multi-byte locale, because it no longer tries to rewrite the
|
|
entire line each time. Patch from Jiro SEKIBA <jir@yamato.ibm.com>
|
|
|
|
parse.y
|
|
- move the typedef for alias_t that is compiled in if ALIAS is not
|
|
defined up before the prototype for push_string, since that takes
|
|
an alias_t * parameter
|
|
|
|
lib/readline/terminal.c
|
|
- bind the termcap description's left and right arrow keys to
|
|
rl_backward_char and rl_forward_char, respectively, instead of
|
|
rl_forward and rl_backward (which are just there for backwards
|
|
compatibility)
|
|
|
|
aclocal.m4
|
|
- when testing readability of /dev/stdin, redirect stdin from /dev/null
|
|
to make sure it's a readable file
|
|
|
|
9/17
|
|
----
|
|
config-bot.h
|
|
- don't test __STDC__ when deciding whether or not to use stdarg.h;
|
|
just use it if it's present
|
|
|
|
tests/read2.sub
|
|
- redirect from /dev/tty when using `read -t'
|
|
|
|
9/20
|
|
----
|
|
builtins/history.def
|
|
- when reading `new' entries from the history file with `history -n',
|
|
fix increment of history_lines_this_session by taking any change
|
|
in history_base into account
|
|
|
|
lib/sh/pathphys.c
|
|
- changes to sh_physpath to deal with pathnames that end up being
|
|
longer than PATH_MAX without dumping core
|
|
|
|
lib/readline/doc/{history.3,hsuser.texinfo},doc/ bash.1
|
|
- documented new `a' and `G' history modifiers
|
|
|
|
9/25
|
|
----
|
|
lib/readline/misc.c
|
|
- when traversing the history list with arrow keys in vi insertion
|
|
mode, put the cursor at the end of the line (like in emacs mode)
|
|
|
|
mksyntax.c
|
|
- don't try to use \a and \v unless __STDC__ is defined; use the
|
|
ascii integer equivalents otherwise
|
|
- include "config.h" in the generated syntax.c file for a possible
|
|
definition of `const'
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document the meaning of a null directory in $PATH
|
|
|
|
9/26
|
|
----
|
|
parse.y
|
|
- fix set_line_mbstate to handle case where mbrlen() returns 0,
|
|
indicating the null wide character
|
|
- fix set_line_mbstate so we don't directly compare a char variable
|
|
to EOF, since char can (and is) unsigned on some machines
|
|
|
|
bashline.c
|
|
- change bash_execute_unix_command to save a little bit more state:
|
|
last_shell_builtin, this_shell_builtin, last_command_exit_value
|
|
|
|
9/27
|
|
----
|
|
execute_cmd.c
|
|
- tentative change to execute_simple_command to avoid freeing freed
|
|
memory in the case where bash forks early but still ends up calling
|
|
execute_disk_command, without passing newly-allocated memory to
|
|
make_child. This may fix the core dumps with the linux-from-scratch
|
|
folks
|
|
|
|
9/28
|
|
----
|
|
Makefile.in,{builtins,lib/sh}/Makefile.in
|
|
- fix up dependencies, mostly on ${BUILD_DIR}/version.h, so that
|
|
parallel makes work with GNU and BSD makes
|
|
|
|
shell.h
|
|
- new struct to save partial parsing state when doing things like
|
|
bash_execute_unix_command and other operations that execute
|
|
commands while a line is being entered and parsed
|
|
|
|
parse.y
|
|
- new functions, save_parser_state() and restore_parser_state(), to
|
|
save and restore partial parsing state
|
|
|
|
bashline.c
|
|
- change bash_execute_unix_command to call {save,restore}_parser_state
|
|
|
|
builtins/jobs.def
|
|
- change execute_list_with_replacements to eliminate a run_unwind_frame
|
|
in favor of calling the cleanup explicitly and discarding the frame
|
|
|
|
execute_cmd.c
|
|
- change execute_for_command to avoid a run_unwind_frame in the case
|
|
where the loop variable is readonly or otherwise not assignable
|
|
- change execute_select_command and execute_simple_command to use
|
|
discard_unwind_frame by running the cleanup code explicitly, instead
|
|
of using run_unwind_frame
|
|
- make sure execute_select_command decreases loop_level even on error
|
|
|
|
9/30
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- fixed description of `unset' now that unsetting a previously-unset
|
|
variable is no longer an error
|
|
|
|
10/3
|
|
----
|
|
{configure,config.h}.in
|
|
- augment check for strtold with additional check to detect the
|
|
horribly broken hp/ux 11.x implementation that returns `long_double';
|
|
defines STRTOLD_BROKEN if so
|
|
|
|
builtins/printf.def
|
|
- define floatmax_t as `double' if STRTOLD_BROKEN is defined
|
|
|
|
10/5
|
|
----
|
|
lib/readline/keymaps.c
|
|
- don't automatically bind uppercase keys to rl_do_lowercase_version
|
|
in rl_make_bare_keymap
|
|
|
|
lib/readline/readline.c
|
|
- explicitly check for ANYOTHERKEY binding to rl_do_lowercase_version
|
|
and dispatch to lowercase of key when a prefix is not matched
|
|
|
|
10/12
|
|
-----
|
|
bashline.c
|
|
- set COMP_WORDBREAKS in enable_hostname_completion to the value
|
|
of rl_completer_word_break_characters
|
|
|
|
variables.c
|
|
- new special variable COMP_WORDBREAKS, controls the value of
|
|
rl_completer_word_break_characters
|
|
|
|
variables.h
|
|
- new extern declaration for sv_comp_wordbreaks()
|
|
|
|
subst.c
|
|
- change split_at_delims to behave more like shell word splitting if
|
|
the passed value for the delimiters is NULL, indicating that the
|
|
function is to use $IFS to split
|
|
|
|
{execute_cmd,jobs,test,findcmd,input,make_cmd,redir,shell}.c
|
|
builtins/mkbuiltins.c,builtins/{fc,history,source,umask}.def
|
|
lib/sh/netconn.c
|
|
lib/termcap/termcap.c
|
|
lib/readline/histfile.c
|
|
- make sure all inclusions of <sys/file.h> are protected by
|
|
HAVE_SYS_FILE_H
|
|
|
|
bashline.c
|
|
- don't turn off rl_filename_completion_desired in
|
|
attempt_shell_completion if the partial pathname contains a slash.
|
|
This still doesn't solve the problem of partial pathname completion
|
|
starting with a directory in the current directory without a
|
|
leading `./'. There's no way to tell the difference between that
|
|
and a file found in $PATH (which may contain `.') at the point that
|
|
attempt_shell_completion acts
|
|
|
|
10/18
|
|
-----
|
|
locale.c
|
|
- don't set lc_all to the default locale when LC_ALL is being unset
|
|
- new function, reset_locale_vars(), called to recompute the correct
|
|
locale variable values when LC_ALL is unset
|
|
- changed set_lang to not set LC_ALL, which it never should have been
|
|
doing in the first place, and to maintain a local variable `lang'
|
|
corresponding to $LANG
|
|
- change get_locale_var to use the precedence posix.2 specifies:
|
|
LC_ALL overrides individual variables; LANG, if set, is the default
|
|
- change set_locale_var to call get_locale_var to get the appropriate
|
|
value for the variable being set or unset
|
|
- call get_locale_var instead of using passed value in set_locale_var
|
|
to get the defaulting and precedence right
|
|
|
|
lib/readline/nls.c
|
|
- new function, _rl_get_locale_var(), which does the same thing as
|
|
locale.c:get_locale_var(), with the right precedence and defaulting,
|
|
using sh_get_env_value to get the right bash variable values
|
|
- if HAVE_SETLOCALE is defined, _rl_init_eightbit first calls
|
|
_rl_get_locale_var to get the right value for LC_CTYPE, and uses
|
|
that in the call to setlocale. If _rl_get_locale_var returns NULL,
|
|
call setlocale() to get the current international environment, and,
|
|
finally, if that returns null, call setlocale with a second argument
|
|
of "" to force the implementation's `native' environment
|
|
|
|
pcomplete.c
|
|
- change gen_wordlist_completions to dequote the text before comparing
|
|
it against the expanded word list
|
|
- changed gen_matches_from_itemlist to do the same thing
|
|
|
|
bashline.c
|
|
- new global function, bash_dequote_word, calls bash_dequote_filename
|
|
on the text passed. Used by the programmable completion code
|
|
|
|
lib/readline/histfile.c
|
|
- make sure that whenever read_history_range returns a non-zero value
|
|
that it sets errno to some useful value
|
|
|
|
10/19
|
|
-----
|
|
variables.c
|
|
- COMP_WORDBREAKS is now a dynamic variable, mirroring value of
|
|
rl_completer_word_break_characters. Makes sure that the variable
|
|
always points to dynamic memory if it's not null or the readline
|
|
default
|
|
|
|
bashline.c
|
|
- change enable_hostname_completion to manage a dynamic value of
|
|
rl_completer_word_break_characters, since assignments to
|
|
COMP_WORDBREAKS can change its value unpredictably
|
|
|
|
lib/readline/{complete.c,readline.h}
|
|
- rl_completer_word_break_characters no longer has `const' attribute
|
|
|
|
bashline.c
|
|
- clean up necessary places due to rl_completer_word_break_characters
|
|
no longer being `const'
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document new COMP_WORDBREAKS variable
|
|
|
|
10/21
|
|
-----
|
|
print_cmd.c
|
|
- fix indirection_level_string to handle the case where the decoded
|
|
$PS4 is null without seg faulting
|
|
|
|
10/22
|
|
-----
|
|
builtins/shift.def
|
|
- make sure that there is actually an argument when reporting a shift
|
|
count that exceeds the number of positional paramters and
|
|
shift_verbose is enabled
|
|
|
|
lib/readline/rltty.c
|
|
- change SET_SPECIAL to call a new function, set_special_char, since
|
|
it contains a block. It's called infrequently, so the performance
|
|
impact of making it a function should be negligible, and it helps
|
|
debugging
|
|
|
|
10/29
|
|
-----
|
|
bashline.c
|
|
- make sure the editor in VI_EDIT_COMMAND and EMACS_EDIT_COMMAND is
|
|
quoted; it might contain spaces (e.g., `emacs -nw')
|
|
|
|
aclocal.m4
|
|
- cache ac_cv_rl_version in RL_LIB_READLINE_VERSION macro
|
|
|
|
configure.in
|
|
- change logic that sets RL_INCLUDEDIR so that it doesn't try to set
|
|
a bogus include path if the argument to --with-installed-readline
|
|
is `yes' -- helps with cross-compiling
|
|
|
|
lib/readline/histexpand.c
|
|
- fix history_tokenize_word so that it handles <( and >( better
|
|
|
|
10/30
|
|
-----
|
|
redir.c
|
|
- fix write_here_string so it handles the case where `herestr' expands
|
|
to NULL without seg faulting
|
|
|
|
10/31
|
|
-----
|
|
mailcheck.c
|
|
- reverse logic flip from bash-2.05 that handled systems that don't
|
|
change the atime when the mailbox is accessed; make sure the file
|
|
is bigger before we report new mail. This is the case in the vast
|
|
majority of cases. Reported by jim@jtan.com
|
|
|
|
11/5
|
|
----
|
|
parse.y
|
|
- change action for `for x; { list; }' and corresponding `select'
|
|
production to use \"$@\" instead of just $@, as it is with all the
|
|
other actions
|
|
|
|
11/9
|
|
----
|
|
parse.y
|
|
- new flag for parse_matched_pair: P_DQUOTE, indicating that the
|
|
pair of characters being matched is between double quotes
|
|
- parse_matched_pair now passes P_DQUOTE down to recursive calls:
|
|
if the open char to be matched is a `"' or the passed-in flags
|
|
include P_DQUOTE, set the local `rflags' variable to P_DQUOTE and
|
|
pass `rflags' down to recursive calls
|
|
- if `rflags' includes P_DQUOTE, don't try to ansiexpand $'...' or
|
|
locale expand $"..."; consistent with other quoting constructs
|
|
|
|
11/11
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- explicitly note that variables referenced in arithmetic expressions
|
|
without using `$' evaluate to 0 if they are null or unset
|
|
- note that a null variable value evaluates to 0 when used in an
|
|
arithmetic context, like when a variable with the `-i' attribute is
|
|
assigned a null value
|
|
- document the ${!prefix@} expansion as equivalent to ${!prefix*}
|
|
|
|
11/12
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- note that the value of an arithmetic expression is as in C
|
|
- change the wording to note that `arithmetic evaluation' (not
|
|
arithmetic expansion, which has a different meaning) is performed
|
|
on the value assigned to a variable whose integer attribute is set
|
|
|
|
11/13
|
|
-----
|
|
execute_cmd.c
|
|
- fix execute_disk_command so it calls exit() after printing the error
|
|
message in a restricted shell context if the shell has already forked
|
|
(nofork != 0 && there are no pipes)
|
|
|
|
11/19
|
|
-----
|
|
builtins/type.def
|
|
- don't report on aliases unless expand_aliases is set and the parser
|
|
is performing alias expansion; changed tests/type.tests and
|
|
tests/type.right accordingly
|
|
|
|
11/25
|
|
-----
|
|
general.c
|
|
- fix for full pathnames including drive letters on cygwin from
|
|
Corinna (convert to posix-style paths, which the rest of the
|
|
code handles much better)
|
|
|
|
lib/readline/text.c
|
|
- fixes to overwrite mode from jimmy@is-vn.bg:
|
|
o in _rl_overwrite_char, do the overwrite mode self-insert
|
|
as one group, even when overwriting more than 1 char
|
|
o in _rl_overwrite_char, do the insert before the delete so
|
|
that an undo positions the cursor on the character restored,
|
|
not to the right of it
|
|
o in _rl_overwrite_rubout, don't do rl_insert_char(' ') unless
|
|
rl_point < rl_end. Since overwrite-mode self-insert acts as
|
|
in insert-mode when at eol, make rubout behave like
|
|
insert-mode rubout
|
|
|
|
11/30
|
|
-----
|
|
lib/readline/misc.c
|
|
- call rl_replace_line with `1' as second parameter if we're going to
|
|
immediately overwrite the undo list
|
|
|
|
lib/readline/search.c
|
|
- in make_history_line_current, use _rl_replace_text to make the line
|
|
replacement an undoable operation. Affects all non-incremental
|
|
search functions.
|
|
|
|
parse.y
|
|
- make behavior introduced on 11/9 dependent on extended_quote
|
|
variable, controllable by extquote shopt option. Default setting is
|
|
on for backwards compatibility
|
|
|
|
builtins/shopt.def
|
|
- new `extquote' option to control extended_quote variable
|
|
|
|
12/3
|
|
----
|
|
jobs.c
|
|
- change message printed when attempting to put a background job in
|
|
the background with `bg' to include the job id and make the
|
|
statement declarative
|
|
|
|
12/10
|
|
-----
|
|
bashhist.h
|
|
- define explicit flag values for history_control
|
|
|
|
variables.c
|
|
- change sv_history_control to use new flag values
|
|
- change sv_history_control to parse $HISTCONTROL as a colon-separated
|
|
list of values for the history_control variable
|
|
|
|
bashhist.c
|
|
- change check_history_control to use new flag values and restructure
|
|
to remove case statement
|
|
- new function hc_erasedups(line); removes all entries matching LINE
|
|
from the history list
|
|
- call hc_erasedups() from check_add_history after we've determined
|
|
that we're saving the line
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new options available for $HISTCONTROL and that it can
|
|
be a colon-separated list of history control options
|
|
|
|
12/11
|
|
-----
|
|
subst.c
|
|
- fix pat_subst() to not increment `e' (pointer to the end of the
|
|
matched portion of the string) until after we're sure we're going
|
|
around the loop again; fixes problem with empty replacements for
|
|
a pattern that doesn't match (bug reported by Don Coleman
|
|
<don@coleman.org>)
|
|
|
|
12/17
|
|
-----
|
|
lib/readline/display.c
|
|
- fixes to multibyte redisplay from jir@yamato.ibm.com (Jiro SEKIBA):
|
|
o speed up calculation of first difference between old and new
|
|
lines in the common case
|
|
o don't try to see if we're in the middle of a multbyte char
|
|
in update_line (we'll see how this one works out)
|
|
|
|
12/18
|
|
-----
|
|
doc/bashref.texi
|
|
- make it clear that the `command-list' function definition may be
|
|
terminated by an ampersand before the closing brace
|
|
|
|
12/28
|
|
-----
|
|
redir.c
|
|
- set `expanding_redir' flag when expanding words in a redirection
|
|
|
|
subst.c
|
|
- new function, exp_jump_to_top_level(), to do any word expansion
|
|
cleanup before a call to jump_to_top_level from within that file;
|
|
sets expanding_redir back to 0 before jump_to_top_level
|
|
|
|
variables.c
|
|
- in find_variable(), don't call find_variable_internal with a second
|
|
parameter of 1 if expanding_redir is non-zero
|
|
- in find_variable_internal(), don't search the temporary env if
|
|
subshell_environment includes SUBSHELL_FORK (indicating a simple
|
|
command) and expanding_redir is non-zero
|
|
|
|
parse.y
|
|
- increment line_number when we read a \<newline> pair
|
|
|
|
array.c
|
|
- added array_unshift_element and array_shift_element (which just call
|
|
array_shift and array_rshift, respectively), for bash debugger
|
|
support
|
|
|
|
1/4/2003
|
|
--------
|
|
doc/{bash.1,bashref.texi}
|
|
- note in the section describing the execution environment passed to
|
|
children that subshells inherit shell functions marked for export
|
|
- note in the section describing shell functions the possibility
|
|
that exported functions may result in two entries in the environment
|
|
with the same name
|
|
|
|
parse.y
|
|
- when pushing an alias expansion onto the pushed_string list, append
|
|
a space to the expanded definition to make the parser's lookahead
|
|
work without using the `mustpop' hack in shell_getc
|
|
|
|
1/8
|
|
---
|
|
shell.c
|
|
- change calls to exit() with EX_USAGE as a parameter to use
|
|
EX_BADUSAGE instead, since EX_USAGE is defined as 258 and is
|
|
technically out of range
|
|
|
|
1/14
|
|
----
|
|
aclocal.m4
|
|
- check for the termcap functions in libc first: if we don't have
|
|
to link in another library, let's not do it
|
|
- change the test for mbstate_t to use AC_TRY_COMPILE instead of
|
|
AC_TRY_RUN
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document that bash turns line editing off if environment variable
|
|
EMACS is set to `t' when it starts up
|
|
|
|
doc/bash.1
|
|
- minor change to give the ftp url for the latest version of bash in
|
|
the bug reports section
|
|
|
|
lib/readline/histexpand.c
|
|
- in get_history_event, cast a couple of `const char *' variables to
|
|
`char *' in function call parameter lists to avoid compiler warnings
|
|
|
|
1/21
|
|
----
|
|
builtins/cd.def
|
|
- change `cd -' so it prints the current working directory after a
|
|
successful chdir even when the shell is not interactive
|
|
|
|
1/31
|
|
----
|
|
lib/readline/doc/rltech.texinfo
|
|
- clarified exactly what is meant by the term `application-specific
|
|
completion function', made its use consistent, and documented
|
|
what variables are changed before such a function is called
|
|
|
|
lib/readline/input.c
|
|
- new function, _rl_pushed_input_available(), returns non-zero if
|
|
there are characters in the input queue managed by rl_get_char
|
|
and _rl_unget_char
|
|
|
|
lib/readline/rlprivate.h
|
|
- new extern declaration for _rl_pushed_input_available
|
|
|
|
lib/readline/callback.c
|
|
- change rl_callback_read_char to check _rl_pushed_input_available
|
|
and loop if there's something there, so characters don't languish
|
|
until more keyboard input is read
|
|
|
|
execute_cmd.c
|
|
- new variable, last_command_exit_signal, non-zero if
|
|
last_command_exit_value result from wait_for was result of a signal
|
|
|
|
nojobs.c
|
|
- keep track of whether or not a given pid was killed by a signal with
|
|
a new flag in the pid_list array
|
|
- new function int find_termsig_by_pid(pid_t pid) to get the
|
|
terminating signal, if any, for a particular pid
|
|
- new function int get_termsig(WAIT status) returns the terminating
|
|
signal corresponding to status
|
|
- set last_command_exit_signal in wait_for and the various wait_for_xx
|
|
functions
|
|
|
|
jobs.c
|
|
- new functions, process_exit_signal and job_exit_signal, return the
|
|
signal that killed a given process or job, if a signal caused its
|
|
death
|
|
- set last_command_exit_signal in wait_for by calling job_exit_signal
|
|
or process_exit_signal appropriately
|
|
|
|
subst.c
|
|
- don't resend SIGINT to ourselves unless last_command_exit_signal is
|
|
SIGINT and last_command_exit_value == 128 + SIGINT. This fixes the
|
|
$(exit 130) bug reported by Paul Jarc
|
|
|
|
expr.c
|
|
- new function, expr_bind_variable, calls bind_int_variable and
|
|
then stupidly_hack_special_variables. This fixes the
|
|
`let OPTIND=1' bug
|
|
|
|
bashline.c
|
|
- change history_and_alias_expand_line and shell_expand_line to call
|
|
history_expand_line_internal so calls to pre_process_line are
|
|
localized
|
|
- change history_expand_line_internal and cleanup_expansion_error to
|
|
temporarily turn off hist_verify before calling pre_process_line
|
|
to avoid the effects described by teirllm@dms.auburn.edu
|
|
|
|
parse.y
|
|
- don't unconditionally turn off PST_ALEXPNEXT in push_string. This
|
|
fixes the multiple alias expansion bug reported by Paul Jarc.
|
|
|
|
lib/readline/vi_mode.c
|
|
- change rl_vi_subst to push `l' instead of ` ' -- it should be
|
|
equivalent, but this has been reported to fix a problem in multibyte
|
|
locales
|
|
|
|
lib/readline/readline.h
|
|
- new state flag value RL_STATE_TTYCSAVED, indicates that save_tty_chars
|
|
has been called. Since it's only used and visible internally, it's
|
|
undocumented
|
|
|
|
lib/readline/rltty.h
|
|
- changed all of the members of _rl_tty_chars struct to `unsigned char'
|
|
|
|
lib/readline/rltty.c
|
|
- set the RL_STATE_TTYCSAVED after save_tty_chars is called
|
|
- new function, rl_tty_unset_default_bindings(), resets bindings for
|
|
everything rl_tty_set_default_bindings() messes with back to
|
|
rl_insert, so rl_tty_set_default_bindings can be called again with
|
|
possible changes
|
|
- new function that does the bulk of the work for
|
|
rltty_set_default_bindings: _rl_bind_tty_special_chars()
|
|
- change prepare_terminal_settings so that it can track changes to the
|
|
terminal special chars made by stty(1): unset the bindings with
|
|
rl_tty_unset_default_bindings before calling save_tty_chars, and
|
|
_rl_tty_set_default_bindings after, with the new values from
|
|
get_tty_settings(). This implements a long-standing request, most
|
|
recently made by Tim Waugh of Red Hat.
|
|
|
|
lib/readline/readline.h
|
|
- extern declaration for rl_tty_unset_default_bindings()
|
|
|
|
lib/readline/readline.c
|
|
- new function, reset_default_bindings, calls
|
|
rl_tty_unset_default_bindings() to reset the terminal special chars
|
|
back to rl_insert and then read the new ones
|
|
|
|
lib/readline/doc/rltech.texinfo
|
|
- documented rl_tty_unset_default_bindings()
|
|
|
|
2/1
|
|
---
|
|
[prayers and condolences to the families of the space shuttle crew members]
|
|
|
|
aclocal.m4
|
|
- add checks for mbrtowc and mbrlen in BASH_CHECK_MULTIBYTE
|
|
- new check, BASH_FUNC_CTYPE_NONASCII, checks whether or not the ctype
|
|
functions handle non-ascii characters correctly
|
|
|
|
config.h.in
|
|
- add HAVE_MBRTOWC and HAVE_MBRLEN
|
|
- add NO_MULTIBYTE_SUPPORT for new configure argument
|
|
- add CTYPE_NON_ASCII
|
|
|
|
config-bot.h, lib/readline/rlmbutil.h
|
|
- make sure that mbrtowc, mbrlen, and wcwidth are all present before
|
|
turning on HANDLE_MULTIBYTE
|
|
- turn off multibyte chars if NO_MULTIBYTE_SUPPORT is defined
|
|
|
|
configure.in
|
|
- new argument --enable-multibyte (enabled by default), allows
|
|
multibyte support to be turned off even on systems that support it
|
|
|
|
lib/readline/chardefs.h
|
|
- define NON_NEGATIVE as 1 if CTYPE_NON_ASCII is defined
|
|
|
|
2/3
|
|
---
|
|
config.h.in
|
|
- add HAVE_WCTOMB
|
|
|
|
aclocal.m4
|
|
- check for wctomb in BASH_CHECK_MULTIBYTE
|
|
|
|
2/4
|
|
---
|
|
lib/readline/vi_mode.c
|
|
- in _rl_vi_change_mbchar_case, make sure the result from wctomb()
|
|
is NULL-terminated before trying to insert it with rl_insert_text()
|
|
|
|
2/5
|
|
---
|
|
lib/readline/display.c
|
|
- fix to update_line to avoid problems on systems with multibyte
|
|
characters when moving between history lines when the new line
|
|
has more glyphs but fewer bytes (twaugh@redhat.com)
|
|
|
|
lib/readline/vi_mode.c
|
|
- use wcrtomb() instead of wctomb() in _rl_vi_change_mbchar_case
|
|
|
|
pcomplete.c
|
|
- fix init_itemlist_from_varlist to handle the case where the
|
|
`varlist' is NULL
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- clarified when a simple command may fail without the shell exiting
|
|
when -e is set
|
|
|
|
2/13
|
|
----
|
|
parse.y
|
|
- when bash is started with --nolineediting, ignore \[ and \] when
|
|
decoding the prompt string
|
|
|
|
subst.c
|
|
- fix remove_quoted_nulls so that a string with a CTLESC appearing
|
|
after a CTLNUL (which was removed) does not leave characters in
|
|
the string inappropriately
|
|
|
|
2/14
|
|
----
|
|
builtins/common.h
|
|
- new flag value for parse_and_execute(): SEVAL_RESETLINE, which
|
|
allows the caller to specify whether or not the internal idea
|
|
of the line number should be reset to 1
|
|
|
|
builtins/evalstring.c
|
|
- parse_and_execute() now tells push_string to reset the line
|
|
number only if the SEVAL_RESETLINE flag is set by the caller
|
|
|
|
2/15
|
|
----
|
|
builtins/evalfile.c
|
|
- pass SEVAL_RESETLINE from _evalfile() to parse_and_execute()
|
|
|
|
subst.c
|
|
- if the shell is currently interactive, pass SEVAL_RESETLINE to
|
|
parse_and_execute() when doing command substitution
|
|
|
|
jobs.c
|
|
- add SEVAL_RESETLINE to parse_and_execute while running SIGCHLD trap
|
|
|
|
command.h
|
|
- add `line' members to case_com, for_com, select_com
|
|
- rearranged order of members in some of the command structs, so
|
|
`flags' and `line' are first
|
|
- added a `source_file' member to the function_def struct; keeps
|
|
track of where the function was defined
|
|
|
|
doc/Makefile.in
|
|
- add some new suffix rules: .dvi.ps
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- added text to the description of the `trap' builtin tightening up
|
|
the language describing when the ERR trap will be run
|
|
|
|
error.c
|
|
- if $BASH_SOURCE (internally-maintained) exists, use BASH_SOURCE[0]
|
|
in get_name_for_error if the shell is not interactive
|
|
|
|
array.h
|
|
- new convenience defines: array_push and array_pop
|
|
|
|
variables.c
|
|
- change get_funcname to return this_shell_function->name only if
|
|
arrays have not been compiled into the shell
|
|
- change init_funcname_var to initialize FUNCNAME as an array variable
|
|
if we have arrays
|
|
- new function: get_self(SHELL_VAR *self), a degenerate `dynamic_value'
|
|
function for dynamic variables
|
|
- new function: init_dynamic_array_var(), a generic dynamic array
|
|
variable initializer to handle the common case
|
|
- use init_dynamic_array_var() instead of explicit init_dirstack_var()
|
|
- use init_dynamic_array_var() instead of explicit init_groups_var()
|
|
- new dynamic array variables: BASH_ARGC, BASH_ARGV, BASH_SOURCE,
|
|
BASH_LINENO, initialized with init_dynamic_array_var
|
|
|
|
shell.c
|
|
- initialize BASH_LINENO, BASH_SOURCE, FUNCNAME in open_shell_script
|
|
|
|
{execute_cmd,trap}.c
|
|
- take out trap_line_number, since parse_and_execute doesn't reset the
|
|
line number any more when running the trap commands
|
|
|
|
make_cmd.c
|
|
- augment make_function_def to get source file name and call
|
|
bind_function_def to save the entire FUNCTION_DEF
|
|
|
|
variables.c
|
|
- new hash table: shell_function_defs, keeps table of shell function
|
|
definitions including source file and line number info corresponding
|
|
to shell_functions table
|
|
- new functions: find_function_def and bind_function_def to manage
|
|
the shell_function_defs hash table
|
|
- new function: unbind_function_def to remove a function definition
|
|
from the shell_function_defs table (right now uncalled)
|
|
|
|
variables.h
|
|
- extern declaration for bind_function_def, find_function_def
|
|
- new extern declaration for unbind_function_def
|
|
|
|
execute_cmd.c
|
|
- in function prologue and epilogue, push and pop FUNCNAME,
|
|
BASH_SOURCE, and BASH_LINENO information
|
|
|
|
dispose_cmd.c
|
|
- broke the code that disposes a FUNCTION_DEF out into two new
|
|
functions: dispose_function_def and dispose_function_def_contents
|
|
|
|
dispose_cmd.h
|
|
- new extern declarations for dispose_function_def_contents and
|
|
dispose_function_def
|
|
|
|
copy_cmd.c
|
|
- move body of copy_function_def (other than allocating a new
|
|
FUNCTION_DEF) to copy_function_def_contents
|
|
- make sure to copy the new source_file member of a function_def in
|
|
copy_function_def_contents
|
|
- copy_function_def is no longer static, copy_function_def_contents
|
|
is not either
|
|
|
|
command.h
|
|
- new extern declaration for copy_function_def_contents and
|
|
copy_function_def
|
|
|
|
parse.y
|
|
- keep a stack of line numbers where case, select, and for commands
|
|
start, with a maximum nesting level of 128; increment when reading
|
|
word after `for', `select' or `case' in read_token_word; decrement
|
|
in grammar actions after parsing a complete for, arith_for, select,
|
|
or case command
|
|
- create for, case, arith_for, and select commands with an extra
|
|
line number (word_lineno[word_top]) argument
|
|
|
|
make_cmd.c
|
|
- make_for_or_select, make_for_command, make_case_command, and
|
|
make_select_command all take an extra `line_number' argument
|
|
|
|
make_cmd.h
|
|
- corresponding changes to extern declarations for those functions
|
|
|
|
2/16
|
|
----
|
|
{execute_cmd,shell,variables}.c
|
|
- follow each call to remember_args with a call to push_args or
|
|
pop_args to manage the BASH_ARGV and BASH_ARGC arrays. Only set
|
|
when the shell is started to run shell script or runs a shell
|
|
function. Doesn't handle `set' or `shift' yet, nor `source'.
|
|
|
|
execute_cmd.c
|
|
- keep track of the level of subshells with a new variable, manipulated
|
|
in execute_in_subshell
|
|
- set currently_executing_command in execute_command_internal(),
|
|
even if we're running a trap
|
|
- better line number management when executing simple commands,
|
|
conditional commands, for commands in execute_command_internal()
|
|
and the various functions that implement the commands
|
|
(execute_cond_command, execute_for_command, execute_etc.)
|
|
|
|
variables.c
|
|
- new dynamic variable BASH_SUBSHELL, with new get_subshell and
|
|
assign_subshell functions to manipulate it
|
|
- new functions push_args (WORD_LIST *list) and pop_args (void) to
|
|
manage the BASH_ARGC and BASH_ARGV dynamic array variables
|
|
|
|
variables.h
|
|
- new extern declarations for push_args and pop_args
|
|
|
|
builtins/evalfile.c
|
|
- in _evalfile, do appropriate things to the FUNCNAME, BASH_ARGV,
|
|
BASH_ARGC, BASH_SOURCE, and BASH_LINENO variables
|
|
|
|
support/mksignames.c
|
|
- add another fake signal for `trap'; make NSIG+2 == `RETURN'
|
|
|
|
trap.c
|
|
- _run_trap_internal now returns an int: the exit value of the command
|
|
run as the result of the trap
|
|
- run_debug_trap now returns an int: the exit value of the command
|
|
run as the result of the trap
|
|
- RETURN is a new special trap
|
|
- new function: set_return_trap(char *command) interface for the rest
|
|
of the shell, like set_{debug,error}_trap
|
|
- new function: run_return_trap()
|
|
- command substitution and other child processes don't inherit the
|
|
return trap
|
|
|
|
trap.h
|
|
- new extern declaration for set_return_trap() and run_return_trap
|
|
- new defines for RETURN_TRAP; increment BASH_NSIG
|
|
- change extern declaration for run_debug_trap() since it now returns
|
|
an int
|
|
|
|
shell.c
|
|
- new invocation long option: --debugger, turns on debugging and
|
|
sets internal `debugging_mode' variable
|
|
|
|
execute_cmd.c
|
|
- new code to save return trap when executing a shell function, so
|
|
shell functions don't inherit it
|
|
- run debug trap before binding the variable and running the action
|
|
list in a `for' command
|
|
- run debug trap before binding the selection variable and running
|
|
the query in a `select' command
|
|
- run debug trap before running matcher in a `case' command
|
|
|
|
builtins/set.def
|
|
- new `set -o functrace' (set -T), causes DEBUG trap to be inherited
|
|
by shell functions
|
|
- new `set -o errtrace' (set -E), causes ERR trap to be inherited
|
|
by shell functions
|
|
|
|
flags.c
|
|
- new flags -E and -T, control error_trace_mode and
|
|
function_trace_mode respectively
|
|
|
|
flags.h
|
|
- new extern declarations for error_trace_mode and function_trace_mode
|
|
|
|
2/17
|
|
----
|
|
doc/bashref.texi
|
|
- changed the `dircategory' as per Karl Berry's suggestion
|
|
|
|
doc/texinfo.tex
|
|
- update to version of 2003/02/04 from texinfo.org
|
|
|
|
support/texi2dvi
|
|
- update to version 1.14 from texinfo-4.5 distribution
|
|
|
|
2/20
|
|
----
|
|
support/config.{guess,sub}
|
|
- update to versions of 2002/11/30
|
|
|
|
lib/readline/doc/manvers.texinfo
|
|
- renamed to version.texi to match other GNU software
|
|
- UPDATE-MONTH variable is now `UPDATED-MONTH'
|
|
|
|
lib/readline/doc/{hist,rlman,rluserman}.texinfo
|
|
- include version.texi
|
|
|
|
doc/version.texi
|
|
- new file, with standard stuff matching other GNU distributions
|
|
|
|
{doc,lib/readline/doc}/Makefile.in
|
|
- include right stuff for `version.texi'
|
|
|
|
lib/readline/doc/{rluserman,rlman,hist}.texinfo
|
|
- use @copying and @insertcopying and @ifnottex instead of @ifinfo
|
|
- add FDL as an appendix entitled `Copying This Manual'
|
|
|
|
lib/readline/doc/{rltech,rluser,hstech,hsuser}.texi
|
|
- changed the suffix from `texinfo' to `texi'
|
|
|
|
lib/readline/doc/{rlman,rluserman}.texinfo, doc/bashref.texi
|
|
- include rltech.texi,rluser.texi,hstech.texi, and hsuser.texi
|
|
|
|
lib/readline/doc/Makefile.in,doc/Makefile.in
|
|
- made appropriate changes for {{rl,hs}tech,{rl,hs}user}.texi
|
|
|
|
lib/readline/doc/{rlman,rluserman}.texinfo
|
|
- changed the suffix from `texinfo' to `texi'
|
|
|
|
lib/readline/doc/hist.texinfo
|
|
- renamed to history.texi
|
|
|
|
2/25
|
|
----
|
|
pathnames.h.in
|
|
- moved pathnames.h here so value of DEBUGGER_START_FILE can be
|
|
substituted by configure
|
|
|
|
aclocal.m4
|
|
- added AM_PATH_LISPDIR for debugger
|
|
|
|
configure.in
|
|
- added some variables: `bashvers', `relstatus' to use info in more
|
|
than one place
|
|
- call AM_PATH_LISPDIR
|
|
- new option: --enable-debugger, sets DEBUGGER cpp option
|
|
- new option with AC_ARG_VAR: DEBUGGER_START_FILE
|
|
- make `pathnames.h' a file generated by configure
|
|
|
|
Makefile.in
|
|
- add rule to create pathnames.h
|
|
|
|
builtins/declare.def
|
|
- added extra line number and source file name to `declare -F' output
|
|
if `--debugger' is used at startup
|
|
|
|
builtins/evalfile.c
|
|
- call run_return_trap from source_file before returning the result
|
|
from _evalfile()
|
|
|
|
execute_cmd.c
|
|
- call run_return_trap in execute_function before restoring the old
|
|
context
|
|
|
|
builtins/source.def
|
|
- arrange to save and restore DEBUG traps when sourcing files if
|
|
function_trace_mode (set -o functrace) is not set
|
|
|
|
print_cmd.c
|
|
- broke print_for_command, print_select_command, print_case_command
|
|
into two functions each: one to print the `header' and one for
|
|
the body
|
|
- print_cond_command is no longer static
|
|
- print_arith_command now takes a WORD_LIST *, since it doesn't
|
|
actually do anything with the ARITH_COM it's passed except print
|
|
the enclosed WORD_LIST
|
|
- print_arith_command is no longer static
|
|
|
|
externs.h
|
|
- extern declarations for print_{for,select,case}_command_head,
|
|
print_cond_command, print_arith_command
|
|
|
|
{.,builtins,lib/sh}/Makefile.in
|
|
- corrected dependencies on pathnames.h, since it's now created in
|
|
the build directory
|
|
|
|
3/5
|
|
---
|
|
lib/glob/glob.c
|
|
- handle alloca() failing (it's supposed to return NULL)
|
|
- use malloc() (with its attendent bookkeeping) instead of alloca()
|
|
in glob_filename()
|
|
|
|
subst.c
|
|
- check whether shell_glob_filename returns NULL in
|
|
glob_expand_word_list
|
|
- change parameter_brace_expand_rhs to handle cases like
|
|
${a[2]:=value} by properly creating the array element instead of a
|
|
variable named `a[2]' (reported by <opengeometry@yahoo.ca>)
|
|
|
|
variables.c
|
|
- change bind_int_variable to use valid_array_reference instead
|
|
of looking for `['
|
|
|
|
lib/readline/vi_mode.c
|
|
- check for `a' in _rl_vi_done_inserting so the text inserted by an
|
|
`a' command can be reinserted with a `.'
|
|
|
|
lib/readline/readline.c
|
|
- when entering vi insertion mode in readline_internal_setup(), make
|
|
sure that _rl_vi_last_key_before_insert is set to `i' so that undo
|
|
groups and redo work better (reported by <opengeometry@yahoo.ca>)
|
|
|
|
lib/glob/sm_loop.c
|
|
- handle ?(...) in a pattern immediately following a `*', instead of
|
|
ignoring the `(' and treating the `?' as a single-char match, as
|
|
long as FNM_EXTFLAG is set (reported by <anderson110@poptop.llnl.gov>)
|
|
|
|
aclocal.m4
|
|
- new test for presence of struct timezone, BASH_STRUCT_TIMEZONE
|
|
|
|
config.h.in
|
|
- add HAVE_STRUCT_TIMEZONE
|
|
|
|
configure.in
|
|
- call BASH_STRUCT_TIMEZONE
|
|
|
|
execute_cmd.c
|
|
- don't try to use `struct timezone' in calls to gettimeofday unless
|
|
HAVE_STRUCT_TIMEZONE is defined; use (void *)NULL otherwise
|
|
|
|
3/20
|
|
----
|
|
execute_cmd.c
|
|
- new variable, the_printed_command_except_trap, saves the command
|
|
being executed before a trap is executed, for the debugger
|
|
|
|
trap.c
|
|
- if in debugging mode, let command substitutions and other child
|
|
processes inherit the DEBUG and ERR traps if the `functrace'
|
|
(which is really a bad name, given this semantic) or `errtrace'
|
|
options, respectively, have been set
|
|
|
|
shell.c
|
|
- local_pending_command renamed to command_execution_string; no longer
|
|
static
|
|
|
|
variables.c
|
|
- new dynamic variable, BASH_COMMAND, set to the command string
|
|
currently executing, or the one that caused a trap to execute
|
|
(mapped to the_printed_command_except_trap)
|
|
- new variable, BASH_EXECUTION_STRING, set to the argument to the
|
|
-c invocation option, if the shell was started that way
|
|
|
|
3/22
|
|
----
|
|
execute_cmd.c
|
|
- changed execute_for_command, eval_arith_for_expr,
|
|
execute_select_command, execute_arith_command, execute_cond_command,
|
|
execute_simple_command to implement new DEBUG trap semantics
|
|
for the debugger: if the DEBUG trap commands return a non-zero
|
|
status and debugging_mode is non-zero, we skip the command to be
|
|
executed
|
|
|
|
trap.c
|
|
- change run_debug_trap for the debugger: if we're in the debugger
|
|
and the DEBUG trap returns 2 while we're in a function or sourced
|
|
script, we force a `return'
|
|
|
|
shell.c
|
|
- new function, start_debugger(), that sources the debugger start file
|
|
and turns the debugger on
|
|
|
|
builtins/shopt.def
|
|
- new settable option, `extdebug', turns on debugging_mode, as if
|
|
--debugger had been supplied at invocation (but does not source
|
|
debugger startup file)
|
|
|
|
trap.c
|
|
- make sure that run_exit_trap arranges for `returns' to come back
|
|
there, too, so a `return' executed by an `exit' invoked within a
|
|
shell function behaves correctly
|
|
|
|
support/shobj-conf
|
|
- change darwin/MacOS X stanza based on advice from mac os x developers
|
|
|
|
lib/sh/mailstat.c
|
|
- set the atime member of the synthesized stat struct to 0 if `cur/'
|
|
is empty, rather than leaving it undefined
|
|
|
|
3/24
|
|
----
|
|
builtins/caller.def
|
|
- new builtin to provide a call stack for the debugger
|
|
|
|
builtins/evalfile.c
|
|
- added a second `flags' argument to source_file()
|
|
- new flag value for flags argument to _evalfile(): FEVAL_NOPUSHARGS.
|
|
If included in flags arg, it means to not manipulate the BASH_ARGV
|
|
and BASH_ARGC arrays
|
|
|
|
builtins/common.h
|
|
- change prototype for source_file()
|
|
|
|
builtins/source.def
|
|
- add flag value to call to source_file(): set to 1 if we replaced
|
|
the positional parameters
|
|
- add call to push_args if additional arguments supplied to the
|
|
source builtin
|
|
- add call to pop_args in maybe_pop_dollar_vars
|
|
|
|
execute_cmd.c
|
|
- run the debug trap in execute_function so the debugger can stop
|
|
before the first command in a function body is executed
|
|
- modify subshell_level before executing a builtin or function in a
|
|
subshell
|
|
- print `for', `select', `case' command heads when set -x is enabled
|
|
|
|
print_cmd.c
|
|
- `xtrace_print_word_list' now takes an additional flags argument,
|
|
which, if non-zero, says to print indirection_level_string()
|
|
- new functions to print for, select, and case command heads when
|
|
set -x is enabled
|
|
- add spaces after `((' and before `))' in xtrace_print_arith_command
|
|
|
|
externs.h
|
|
- changed extern declaration for xtrace_print_word_list
|
|
- new declarations for xtrace_print_{for,case,select}_command_head()
|
|
|
|
subst.c
|
|
- modify subshell_level when executing a command substitution
|
|
|
|
3/25
|
|
----
|
|
execute_cmd.c
|
|
- use `line_number' in executing_line_number instead of looking into
|
|
the current command if it's a simple command; rearrange code to
|
|
make this simpler to compile in and out
|
|
- need to save and restore value of currently_executing_command around
|
|
calls to debug trap and return trap in execute_function
|
|
|
|
make_cmd.c
|
|
- make sure make_arith_for_command() disposes the WORD_LIST * it is
|
|
passed, since nothing else does and it's not used directly
|
|
|
|
3/28
|
|
----
|
|
Makefile.in
|
|
- fixed dependencies for `error.o' on shell.h and version.h -- makes
|
|
parallel makes (gmake -j 4) work correctly
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented all new features added to support the debugger
|
|
|
|
4/1
|
|
---
|
|
lib/sh/shquote.c
|
|
- make sure CTLESC and CTLNUL characters are escaped with CTLESC
|
|
by sh_double_quote, sh_backslash_quote and
|
|
sh_backslash_quote_for_double_quotes
|
|
Fixes vulnerability reported by svdb@stack.nl
|
|
|
|
shell.h
|
|
- new `pipestatus' member of sh_parser_state_t, to save and restore
|
|
$PIPESTATUS
|
|
|
|
parse.y
|
|
- changes to save_parser_state and restore_parser_state to save and
|
|
restore $PIPESTATUS
|
|
|
|
builtins/read.def
|
|
- add a call to word_list_remove_quoted_nulls before assigning the
|
|
word list read from standard input to an array variable. Fixes
|
|
bug reported by holzhey@ppprs1.phy.tu-dresden.de
|
|
|
|
4/3
|
|
---
|
|
execute_cmd.c
|
|
- in execute_null_command, if redirections are supplied, make sure
|
|
things like 3</etc/passwd are undone immediately, since they're
|
|
being done in the current shell
|
|
- functions now inherit the RETURN trap only if function tracing is
|
|
on for that function or globally
|
|
|
|
lib/readline/misc.c
|
|
- in rl_replace_from_history, don't force rl_replace_line to clear
|
|
the undo_list, since it might point directly at an undo list
|
|
from a history entry (to which we have no handle)
|
|
|
|
4/4
|
|
---
|
|
trap.c
|
|
- initialize RETURN_TRAP stuff appropriately in initialize_traps()
|
|
- let command substitutions inherit the RETURN trap if we're in
|
|
the debugger and function tracing has been enabled
|
|
|
|
redir.c
|
|
- do_redirections and do_redirection_internal now take a single
|
|
flags argument instead of multiple boolean flags
|
|
|
|
redir.h
|
|
- new #defines for flags argument to do_redirection{s,_internal}
|
|
|
|
execute_cmd.c
|
|
- change all calls to do_redirection to use new flag values
|
|
|
|
parse.y
|
|
- new function, free_pushed_string_input(), an external interface to
|
|
clear the pushed_string list (alias expansion)
|
|
- new define SHOULD_PROMPT to say when it's OK to call prompt_again
|
|
(if the shell is currently interactive and is reading input from
|
|
the terminal or readline)
|
|
- make sure shell_getc and read_secondary_line only call prompt_again
|
|
if SHOULD_PROMPT evaluates to true
|
|
- prompt_again shouldn't do anything if the shell is currently in the
|
|
middle of expanding a multiline alias, since we won't be printing a
|
|
prompt anyway
|
|
|
|
externs.h
|
|
- new extern declaration for free_pushed_string_input()
|
|
|
|
execute_cmd.c
|
|
- command_substitute and process_substitute now call
|
|
free_pushed_string_input because they shouldn't deal with any
|
|
partial alias expansion the parent shell may have started
|
|
|
|
4/5
|
|
---
|
|
braces.c
|
|
- added {x..y} brace expansion, shorthand for {x,x+1,x+2,...,y}:
|
|
x, y can be integers or single characters; the sequence can be
|
|
ascending or descending; increment is always 1. Beware that
|
|
something like {a..A} can lead to non-letters.
|
|
|
|
4/7
|
|
---
|
|
subst.c
|
|
- change extract_delimited_string and extract_dollar_brace_string to
|
|
return NULL on an expansion error when no_longjmp_on_fatal_error
|
|
is set, so the calling functions don't assume that the expansion
|
|
was successful (primarily the prompt expansion and completion code)
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new sequence generation feature of brace expansion
|
|
|
|
4/8
|
|
---
|
|
lib/sh/strstr.c
|
|
- replacement for strstr(3), in case the C library doesn't provide it
|
|
|
|
configure.in
|
|
- check for strstr, add to LIBOBJS if not found
|
|
|
|
array.c
|
|
- array_walk now takes a third void * argument; it's passed to `func'
|
|
as its second argument
|
|
|
|
array.h
|
|
- change sh_ae_map_func_t prototype to add void * second argument
|
|
|
|
4/10
|
|
----
|
|
array.c
|
|
- new function: array_keys_to_word_list, returns a list of indices for
|
|
a given array
|
|
|
|
array.h
|
|
- new extern declaration for array_keys_to_word_list
|
|
|
|
arrayfunc.c
|
|
3 - new function: char *array_keys(), returns a string with keys for a
|
|
given array, with the appropriate quoting
|
|
|
|
arrayfunc.h
|
|
- new extern declaration for array_keys
|
|
|
|
subst.c
|
|
- code to implement ksh93-like ${!array[@]} expansion (array[*] works,
|
|
too), which expands to all the keys (indices) of ARRAY
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new ${!array[@]} expansion
|
|
|
|
4/19
|
|
----
|
|
builtins/setattr.def
|
|
- remove any mention of the `-n' option from readonly builtin's short
|
|
and long documentation
|
|
|
|
pcomplib.c
|
|
- fix progcomp_insert to increase the refcount on the `cs' argument
|
|
before calling hash_insert -- fixes the problem of multiple calls
|
|
to progcomp_insert with the same compspec
|
|
|
|
doc/bash.1
|
|
- add mention of characters that inhibit history expansion when found
|
|
immediately following an unquoted `!'
|
|
|
|
bashline.c
|
|
- convert the code conditionally compiled in by the NO_FORCE_FIGNORE
|
|
#define to something runtime-tunable with the `force_fignore'
|
|
variable (opposite sense). force_fignore is 1 by default
|
|
|
|
builtins/shopt.def
|
|
- new tunable `shopt' option: `force_fignore', controls force_fignore
|
|
variable and behavior of FIGNORE handling
|
|
|
|
lib/readline/complete.c
|
|
- new variable, _rl_complete_show_unmodified, causes completer to list
|
|
possible completions if more than one completion and partial
|
|
completion cannot be done
|
|
- new value for what_to_do argument to rl_complete_internal, `@',
|
|
indicating that we want the show-unmodified behavior
|
|
- change rl_completion_type to return `@' when appropriate
|
|
|
|
lib/readline/bind.c
|
|
- new bindable variable, show-all-if-unmodified, which controls value
|
|
of _rl_complete_show_unmodified
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declaration for _rl_complete_show_unmodified
|
|
|
|
lib/readline/doc/rluser.texi
|
|
- documented show-all-if-unmodified
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- documented new `@' value for second argument to rl_complete_internal
|
|
- documented new return value from rl_completion_type
|
|
|
|
4/22
|
|
----
|
|
lib/readline/signals.c
|
|
- in rl_set_signal, set sa_flags to SA_RESTART for SIGWINCH, if we
|
|
have POSIX signals -- this is what most applications expect, and
|
|
they're not prepared to deal with EINTR
|
|
|
|
4/25
|
|
----
|
|
bashline.c
|
|
- take out attempts to suppress readline filename completion when
|
|
attempting command completion and there is a directory with the
|
|
same name in the current directory. #if 0'd for now; maybe make
|
|
it conditional later
|
|
|
|
error.c
|
|
- new variable, gnu_error_format, causes non-interactive errors with
|
|
line numbers to be printed in the `gnu style' (filename:lineno:)
|
|
instead of the `shell style' (filename: line lineno:) by
|
|
error_prolog and parser_error
|
|
|
|
version.h,support/mkversion
|
|
- don't put extern function declarations into created version.h any
|
|
more
|
|
|
|
version.c,externs.h
|
|
- add extern declarations for show_shell_version() and
|
|
shell_version_string(), since they're no longer in version.h
|
|
(this backs out change from 9/10/2001)
|
|
|
|
shell.h
|
|
- don't include version.h
|
|
|
|
Makefile.in
|
|
- remove unneeded dependencies on version.h -- only version.o
|
|
needs it now
|
|
|
|
builtins/shopt.def
|
|
- new option `gnu_errfmt', changes error messages with line numbers
|
|
to use the `standard' gnu format
|
|
|
|
pcomplete.h
|
|
- new COPT_BASHDEFAULT and COPT_PLUSDIRS defines
|
|
|
|
bashline.c
|
|
- if the COPT_BASHDEFAULT flag is set, try the rest of the bash
|
|
default completions if a compspec with that flag set generates
|
|
no matches
|
|
- broke bash completions out into separate function:
|
|
bash_default_completion(const char *text, int start, int end,
|
|
int qc, int in_command_position); change attempt_shell_completion
|
|
to call it
|
|
|
|
bashline.h
|
|
- new extern declaration for bash_default_completion
|
|
|
|
builtins/complete.def
|
|
- added code to compgen to call bash_default_completion if a compspec
|
|
with the COPT_BASHDEFAULT flag set generates no matches from the
|
|
programmable completion options
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document new `gnu_errfmt' shopt option
|
|
|
|
doc/bash.1,lib/readline/doc/rluser.texi
|
|
- document new `-o bashdefault' option to complete and compgen
|
|
|
|
4/26
|
|
----
|
|
pcomplete.c
|
|
- if a compspec has the COPT_PLUSDIRS flag set, generate any
|
|
directory name completions and add them to the set of possible
|
|
completions as the last thing in gen_compspec_completions
|
|
|
|
builtins/complete.def
|
|
- add new `-o plusdirs' option to complete and compgen; means to
|
|
do directory name completion in addition to other actions
|
|
specified by the compspec, and do it last
|
|
|
|
5/12
|
|
----
|
|
copy_cmd.c
|
|
- fix copy_{for,select,case}_command to copy the line member
|
|
|
|
5/13
|
|
----
|
|
lib/readline/rlmbutil.h,include/shmbutil.h
|
|
- new #define MB_INVALIDCH, evaluates to true if return value from
|
|
mbrtowc or mbrlen denotes an invalid multibyte character
|
|
- new #define MB_NULLWCH, evaluates to true if return value from
|
|
mbrtowc or mbrlen denotes a null multibyte character
|
|
|
|
lib/readline/complete.c
|
|
- new function, fnwidth(), returns printed length of a filename,
|
|
correctly handling multibyte characters
|
|
- new function, fnprint(), displays a filename on rl_outstream
|
|
correctly handling multibyte characters
|
|
- use fnwidth() instead of simple strlen() for length calculations
|
|
in display_matches
|
|
|
|
lib/readline/{display,mbutil}.c
|
|
- use MB_INVALIDCH and MB_NULLWCH as appropriate
|
|
|
|
5/21
|
|
----
|
|
configure.in
|
|
- turn off the builtin malloc on GNU/FreeBSD systems (GNU userland,
|
|
FreeBSD kernel)
|
|
|
|
5/24
|
|
----
|
|
pcomplete.c
|
|
- in programmable_completions, copy the compspec before using it to
|
|
generate the possible completions, allowing the completion for the
|
|
command to be changed by the compspec itself without causing a
|
|
core dump because the shell frees freed memory (reported by
|
|
marcus.harnish@gmx.net)
|
|
|
|
parse.y
|
|
- in shell_getc, don't call notify_and_cleanup in an interactive shell
|
|
unless the shell is currently reading from the terminal and would
|
|
print a prompt. This fixes programmable completions printing job
|
|
notifications (reported by r.d.green@lancaster.ac.uk)
|
|
- use SHOULD_PROMPT macro consistently
|
|
|
|
shell.c
|
|
- use get_string_value instead of getenv when looking up $TERM and
|
|
$EMACS to see whether the shell is running under emacs
|
|
- check for `TERM=dumb' as well as `EMACS=t' to decide whether or
|
|
not to turn off command-line editing in emacs shell windows
|
|
(reported by jik@kamens.brookline.ma.us)
|
|
|
|
5/28
|
|
----
|
|
expr.c
|
|
- save and restore the `evalbuf' context, since evalexp can be
|
|
called recursively (e.g. a[b[c]])
|
|
|
|
5/29
|
|
----
|
|
builtins/common.c
|
|
- in display_signal_list, when displaying for `kill -l' in posix mode,
|
|
display signal names without the `SIG' prefix
|
|
|
|
doc/bashref.texi
|
|
- documented changed to posix mode behavior of kill -l
|
|
|
|
builtins/kill.def
|
|
- changed the error message printed when argument is not a pid or
|
|
job id
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- fixed a slight inconsistency in the different sections describing
|
|
the `promptvars' option
|
|
|
|
doc/Makefile.in
|
|
- new rule to create `bash.info' from `bashref.info' by running sed
|
|
to change the internal references. This makes the installed
|
|
bash.info work right
|
|
- make the install target install bash.info after it's been modified
|
|
from bashref.info
|
|
|
|
5/30
|
|
----
|
|
builtins/cd.def
|
|
- after testing with ferror(), call clearerr if ferror() evaluates
|
|
to true
|
|
|
|
execute_cmd.c
|
|
- call clearerr(stdout) after executing a builtin or function,
|
|
before restoring any redirections
|
|
|
|
bashhist.c
|
|
- initialize history_comment_char in bash_history_initialize
|
|
|
|
builtins/alias.def
|
|
- if posix mode is enabled, and the `-p' option is not supplied, don't
|
|
list aliases with a preceding `alias ', as POSIX.2 specifies
|
|
|
|
doc/bashref.texi
|
|
- note new posix mode behavior of displaying alias names and values
|
|
- note new posix mode behavior of trap builtin not checking first
|
|
argument to be a possible signal specification
|
|
- note new posix mode behavior of `kill' not accepting signal names
|
|
with a leading `SIG'
|
|
|
|
include/stdc.h,lib/readline/rlstdc.h
|
|
- don't check the __STRICT_ANSI__ define when deciding whether or not
|
|
to #undef __attribute__
|
|
|
|
trap.[ch]
|
|
- decode_signal and signal_object_p take an additional flags arg to
|
|
satisfy POSIX.2 signal name translation requirements
|
|
- change decode_signal to honor the new DSIG_NOCASE (match case-
|
|
insensitively) and DSIG_SIGPREFIX (allow signal specifications
|
|
with the `SIG' prefix) flags
|
|
|
|
builtins/{common.c,{trap,kill}.def}
|
|
- change calls to decode_signal to add the new argument with
|
|
appropriate values. For kill, POSIX.2 says case-insensitive without
|
|
the `SIG' prefix. For trap, POSIX.2 says applications may decode
|
|
case-insensitively and with the SIG prefix
|
|
|
|
builtins/trap.def
|
|
- when in posix mode, don't check for the first argument being a
|
|
possible signal spec and revert the signal handling to the
|
|
original disposition
|
|
|
|
6/1
|
|
---
|
|
shell.h
|
|
- new MATCH_STARSUB define, to tell the callers of the various pattern
|
|
substitution and removal functions that call string_list to treat
|
|
"$*" and "${array[*]}" appropriately
|
|
subst.c
|
|
- if get_var_and_type encounters an array variable subscripted by `*'
|
|
or `$*', return VT_STARSUB or'd into the variable type value
|
|
- callers of get_var_and_type check for VT_STARSUB in the returned type
|
|
this will fix problems with ${*...} not being separated with the
|
|
first character of $IFS when double-quoted
|
|
- in parameter_brace_patsub, set MATCH_STARSUB if VT_STARSUB is set by
|
|
get_var_and_type
|
|
- change pos_params_pat_subst to call string_list_dollar_star if
|
|
the match flags include MATCH_STARSUB
|
|
- change parameter_brace_substring to call array_subrange with an
|
|
additional argument indicating the character indexing the array
|
|
|
|
array.c
|
|
- change array_patsub to join the modified array elements with the
|
|
first character of $IFS if MATCH_STARSUB is set in the match flags
|
|
passed in
|
|
- array_subrange now takes an additional argument indicating the
|
|
index type -- used to separate with first char of $IFS if the
|
|
index char is `*' and the expression is double-quoted
|
|
|
|
array.h
|
|
- change prototype declaration of array_subrange to add additional arg
|
|
|
|
6/2
|
|
---
|
|
doc/FAQ
|
|
- merged in some updates about POSIX from Andrew Josey
|
|
|
|
6/3
|
|
---
|
|
bashjmp.h
|
|
- new value for jump_to_top_level: ERREXIT
|
|
|
|
{eval,shell,subst,trap}.c,builtins/evalstring.c
|
|
- ERREXIT is (for now) equivalent to EXITPROG as a value from
|
|
jump_to_top_level
|
|
|
|
6/9
|
|
---
|
|
doc/bash.1,lib/readline/doc/readline.3
|
|
- documented new `show-all-if-unmodified' readline variable
|
|
|
|
6/14
|
|
----
|
|
lib/readline/history.c
|
|
- new function, histdata_t free_history_entry (HIST_ENTRY *h),
|
|
frees H and its line, returning the application-specific data
|
|
- use free_history_entry where appropriate
|
|
|
|
lib/readline/history.h
|
|
- extern declaration for free_history_entry()
|
|
|
|
lib/readline/doc/{history.3,hstech.texi}
|
|
- document free_history_entry
|
|
|
|
6/16
|
|
----
|
|
lib/readline/readline.[ch]
|
|
- changed varions defines for readline/history library versions to 5.0
|
|
|
|
subst.c
|
|
- pass information about whether or not an indirectly-expanded variable
|
|
contains ${array[@]}, ${array[*]}, $@, or $*
|
|
- new function, chk_atstar, performs checks for ${array[@]},
|
|
${array[*]}, $@, or $* for the parameter_brace_expand* functions and
|
|
sets flags (passed as args) to the results
|
|
- call chk_atstar from parameter_brace_expand_indir and
|
|
parameter_brace_expand
|
|
|
|
6/28
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- clarified that (...) commands are executed in a subshell environment
|
|
|
|
6/30
|
|
----
|
|
lib/readline/bind.c
|
|
- fix a problem with parsing nested if statements in inputrc files
|
|
(fix from dimakar@yahoo.com)
|
|
|
|
7/3
|
|
---
|
|
{jobs,nojobs}.c
|
|
- fix places that use the return value from strsignal() to check
|
|
for NULL return values using a new function, j_strsignal()
|
|
|
|
builtins/kill.def
|
|
- removed JOB_CONTROL restriction; kill is now available as a builtin
|
|
when the shell is built without job control
|
|
|
|
7/10
|
|
----
|
|
jobs.c
|
|
- some systems have WIFCONTINUED but not WCONTINUED; separate the
|
|
#defines
|
|
|
|
7/14
|
|
----
|
|
lib/readline/history.h
|
|
- new `timestamp' member of a HIST_ENTRY
|
|
- extern declarations for add_history_time and history_get_time
|
|
|
|
lib/readline/doc/{history.3,hstech.texi}
|
|
- document add_history_time and history_get_time
|
|
|
|
lib/readline/history.c
|
|
- implementations of history_get_time and add_history_time
|
|
- change add_history to initialize the timestamp information
|
|
- change free_history_entry to free the timestamp
|
|
- change replace_history_entry to duplicate the timestamp
|
|
- change history_total_bytes to add the memory taken by the time
|
|
stamps
|
|
|
|
bashhist.c,builtins/history.def
|
|
- use free_history_entry where appropriate
|
|
|
|
lib/readline/histfile.c
|
|
- changes to read_history_range to deal with new history file format
|
|
including timestamps
|
|
- changes to history_do_write to write out the timestamp information
|
|
- changes to history_truncate_file to understand the timestamp
|
|
information
|
|
|
|
7/22
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- fixed function declaration documentation to specify that any compound
|
|
command may be used as the function body, not just a group command
|
|
|
|
7/23
|
|
----
|
|
lib/readline/histfile.c
|
|
- don't allocate space for null timestamps in history_do_write, and
|
|
don't write out null timestamp entries
|
|
|
|
parse.y
|
|
- fix CHECK_FOR_RESERVED_WORD to call time_command_acceptable() and
|
|
return TIME if the token is "time" and `time' is legal in that
|
|
context
|
|
|
|
7/29
|
|
----
|
|
lib/sh/fmtulong.c
|
|
- include <inttypes.h> for possible definitions of intmax_t, uintmax_t
|
|
(reported by ro@techfak.uni-bielefeld.de)
|
|
|
|
7/30
|
|
----
|
|
parse.y
|
|
- remove checking for `time' reserved word from special_case_tokens();
|
|
use regular mechanism in CHECK_FOR_RESERVED_WORD. This allows `time'
|
|
to be aliased. (Reported by Glenn Morris
|
|
<gmorris+gmane@ast.cam.ac.uk>)
|
|
|
|
7/31
|
|
----
|
|
lib/readline/history.h
|
|
- extern declaration for history_write_timestamps
|
|
|
|
lib/readline/histfile.c
|
|
- don't write timestamps to the history file in history_do_write
|
|
unless history_write_timestamps is set to non-zero by the application
|
|
(set to 0 by default)
|
|
|
|
lib/readline/doc/{hstech.texi,history.3}
|
|
- document history_write_timestamps
|
|
|
|
variables.[ch]
|
|
- new special variable function, HISTTIMEFORMAT; special function
|
|
sets history_write_timestamps to 1 if HISTTIMEFORMAT is set
|
|
|
|
8/4
|
|
---
|
|
builtins/history.def
|
|
- added support for printing time stamps based on the value of the
|
|
HISTTIMEFORMAT variable when displaying history entries
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- added description of new HISTTIMEFORMAT variable
|
|
|
|
8/5
|
|
---
|
|
config-top.h
|
|
- remove /usr/ucb from any default paths
|
|
|
|
mailcheck.c
|
|
- make_default_mailpath now returns NULL if DEFAULT_MAIL_DIRECTORY
|
|
is not defined
|
|
- remember_mail_dates now returns if make_default_mailpath returns
|
|
NULL
|
|
|
|
config-bot.h
|
|
- reorganized the sections; provide an explicit placeholder for
|
|
builders to #undef any feature defines they don't want that
|
|
configure creates for them, like the default mail path
|
|
|
|
8/9
|
|
---
|
|
config.h.in
|
|
- add HAVE_REGEX_H, HAVE_REGCOMP, HAVE_REGEXEC for detection of POSIX.2
|
|
regular expression functions
|
|
- add COND_REGEXP define to enable and disable the =~ operator for
|
|
matching extended regular expressions in [[...]] commands
|
|
|
|
configure.in
|
|
- new option, --enable-cond-regexp, enables =~ and code to perform
|
|
regular expression matching in [[...]]
|
|
|
|
config-bot.h
|
|
- undef COND_REGEXP if the OS doesn't provide posix regexp support
|
|
|
|
doc/bashref.texi
|
|
- documnent new --enable-cond-regexp option to configure
|
|
|
|
8/18
|
|
----
|
|
support/shobj-conf
|
|
- support for shared objects on FreeBSD-gnu (from Robert Millan)
|
|
|
|
8/25
|
|
----
|
|
lib/sh/shmatch.c
|
|
- new file, shell interface to posix extended regular expression
|
|
matching
|
|
|
|
externs.h
|
|
- new extern declarations for functions in shmatch.c
|
|
|
|
execute_cmd.c
|
|
- incorporate code into execute_cond_node that does extended regular
|
|
expression matching for the =~ operator
|
|
|
|
parse.y
|
|
- add `=~' to the list of binary operators accepted by the conditional
|
|
command parser
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented =~ conditional binary operator and the BASH_REMATCH
|
|
variable
|
|
|
|
8/27
|
|
----
|
|
lib/readline/display.c
|
|
- take multibyte characters into account when looking for quoted
|
|
substrings on which to do completion (fix from jir@yamato.ibm.com)
|
|
|
|
lib/readline/util.c
|
|
- fix typo in _rl_strpbrk
|
|
|
|
lib/readline/rldefs.h
|
|
- use function version of _rl_strpbrk in multibyte locales, because
|
|
it understands to skip over special characters in multibyte
|
|
character sequences
|
|
|
|
8/28
|
|
----
|
|
jobs.c
|
|
- in wait_for, check for window size changes if a job that exits due
|
|
to a signal or is stopped was in the foreground, not just if it's
|
|
the current job
|
|
|
|
9/10
|
|
----
|
|
support/config.{guess,sub}
|
|
- add support to recognize FreeBSD running on the amd64
|
|
|
|
subst.c
|
|
- if the new `fail_glob_expansion' variable is non-zero, globbing that
|
|
fails to match anything causes an expansion error
|
|
|
|
builtins/shopt.def
|
|
- new `failglob' expansion: if enabled, failed globs cause an error
|
|
|
|
test/shopt.right
|
|
- take `failglob' into account
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented new `failglob' option and its effects
|
|
|
|
9/12
|
|
----
|
|
findcmd.c
|
|
- fix file_status to treat the mode bits and uid right -- in particular,
|
|
don't assume the `other' bits always apply. Bug reported by
|
|
<moseley@hank.org>; fix inspired by <carlo@alinoe.com>
|
|
|
|
command.h
|
|
- new word flag: W_NOCOMSUB, meaning to not perform command
|
|
substitution on a word
|
|
|
|
subst.c
|
|
- new flag for param_expand: PF_NOCOMSUB. If non-zero, $(...)
|
|
command substitutions are not expanded, but returned unchanged
|
|
- change expand_word_internal to pass through `` command substitutions
|
|
unchanged if (word->flags & W_NOCOMSUB) != 0
|
|
- change expand_word_internal to pass PF_NOCOMSUB to param_expand
|
|
if (word->flags & W_NOCOMSUB) != 0
|
|
|
|
builtins/shopt.def
|
|
- rename set_interactive_comments to set_shellopts_after_change, which
|
|
more accurately reflects its purpose
|
|
|
|
syntax.h
|
|
- add a define for isblank() in case the system doesn't provide one
|
|
|
|
jobs.c
|
|
- change raw_job_exit_status to understand `pipefail', using the new
|
|
`pipefail_opt' variable
|
|
|
|
flags.[ch]
|
|
- declare pipefail_opt
|
|
- reset pipefail_opt to 0 in reset_shell_flags
|
|
|
|
builtins/set.def
|
|
- add `set -o pipefail' and document it in help output
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document `set -o pipefail' and the effect of the pipefail option
|
|
|
|
mksyntax.c,syntax.h
|
|
- sh_syntaxtab is no longer `const'
|
|
- new generated variable, sh_syntabsiz, set to number of entries in
|
|
sh_syntaxtab, written to generated syntax.c
|
|
|
|
locale.c
|
|
- new function, locale_setblanks(), sets each member of the current
|
|
locale's <blank> class to have the CSHBRK flag in sh_syntaxtab
|
|
|
|
9/17
|
|
----
|
|
arrayfunc.c
|
|
- change convert_var_to_array to not set array[0] to a NULL value
|
|
(if the scalar variable had no value; e.g., after being created
|
|
with `local arrayvar')
|
|
|
|
lib/readline/display.c
|
|
- save and restore the value of prompt_invis_chars_first_line in
|
|
rl_{save,restore}_prompt, and reinitialize it to 0 before printing
|
|
something in the message area
|
|
|
|
lib/readline/bind.c
|
|
- new functions: rl_bind_keyseq_if_unbound_in_map(ks, func, kmap);
|
|
binds key sequence KS to function FUNC in keymap KMAP, and
|
|
rl_bind_keyseq_if_unbound (ks, func); binds key sequence KS to
|
|
function FUNC in the current keymap
|
|
|
|
lib/readline/readline.h
|
|
- extern function declarations for rl_bind_keyseq_if_unbound_in_map and
|
|
rl_bind_keyseq_if_unbound
|
|
|
|
lib/readline/{readline,terminal}.c
|
|
- _rl_bind_if_unbound -> rl_bind_keyseq_if_unbound
|
|
|
|
lib/readline/{bind.c,rlprivate.h}
|
|
- remove _rl_bind_if_unbound
|
|
|
|
9/18
|
|
----
|
|
lib/readline/doc/rltech.texi
|
|
- document rl_bind_keyseq_if_unbound and
|
|
rl_bind_keyseq_if_unbound_in_map
|
|
|
|
9/19
|
|
----
|
|
lib/readline/bind.c
|
|
- new functions rl_bind_key_if_unbound_in_map and
|
|
rl_bind_key_if_unbound; analogous to (and implemented in terms of)
|
|
keyseq functions
|
|
- rl_bind_keyseq_in_map: a new function, equivalent to rl_set_key
|
|
(which remains for backwards compatibility); changed callers to
|
|
use it
|
|
- new function, rl_bind_keyseq, equivalent to rl_bind_keyseq_in_map
|
|
with a third argument of _rl_keymap
|
|
|
|
lib/readline/readline.h
|
|
- extern declarations for rl_bind_key_if_unbound_in_map and
|
|
rl_bind_key_if_unbound
|
|
- extern declarations for rl_bind_keyseq_in_map and rl_bind_keyseq
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- document rl_bind_keyseq and rl_bind_keyseq_in_map
|
|
|
|
configure.in
|
|
- require at least readline-5.0
|
|
|
|
config-bot.h
|
|
- define SYS_SIGLIST_DECLARED if it's not defined, but
|
|
HAVE_DECL_SYS_SIGLIST is, to deal with differences between
|
|
autoconf versions
|
|
|
|
bashline.c
|
|
- use rl_bind_key_if_unbound_in_map when binding bash keybindings in
|
|
initialize_readline(), so inputrc files can override them
|
|
|
|
9/22
|
|
----
|
|
lib/readline/histsearch.c
|
|
- do better bounds checking for history_offset and history_length in
|
|
history_search_internal
|
|
|
|
builtins/history.def
|
|
- in delete_last_history(), make sure we don't leave the history
|
|
offset longer than the history length after calling delete_histent
|
|
|
|
9/23
|
|
----
|
|
jobs.c
|
|
- small change to notify_of_job_status so job status messages get
|
|
printed even if the shell was started to run `-c command'. The
|
|
old behavior was intentional, but I cannot remember why, so we'll
|
|
try it the other way for a while (debian bash bug #211693)
|
|
|
|
9/24
|
|
----
|
|
jobs.c
|
|
- slightly modify change from 9/23 so that jobs started to run
|
|
command substitutions don't print job status messages
|
|
|
|
9/25
|
|
----
|
|
lib/readline/search.c
|
|
- when reading a non-incremental search string from the terminal,
|
|
use a separate undo list rather than chaining it to the undo list
|
|
from the rest of the line, since the whole undo list will get
|
|
freed when the search string is complete
|
|
|
|
lib/readline/readline.h
|
|
- changed the defines guarding the stdarg prototype for rl_message to
|
|
match what's actually used in display.c, where it's defined
|
|
|
|
9/26
|
|
----
|
|
[bash-3.0-alpha released]
|
|
|
|
9/29
|
|
----
|
|
lib/sh/shmatch.c
|
|
- fix to build correctly when arrays are not compiled into the shell
|
|
|
|
subst.c
|
|
- fix command substitution to run any exit trap defined in the
|
|
command substitution before returning; the exit trap is not inherited
|
|
from the calling shell
|
|
|
|
lib/readline/shell.c
|
|
- change sh_set_lines_and_columns to free the memory allocated and
|
|
passed to setenv(), since setenv is specified by POSIX to allocate
|
|
new memory and copy its arguments
|
|
|
|
jobs.c
|
|
- change logic in make_child so that every child process attempts to
|
|
set the terminal's process group to the pipeline's process group
|
|
when PGRP_PIPE is defined, just like when it's undefined. This is
|
|
reported to fix some tricky synchronization problems on Red Hat
|
|
Enterprise Linux 3. Fix from Ernie Petrides <petrides@redhat.com>.
|
|
|
|
9/30
|
|
----
|
|
builtins/printf.def
|
|
- tescape no longer needs a `trans_squote' argument, since it's the
|
|
same as the `sawc' argument. The `sawc' argument now means to do
|
|
the %b argument processing if non-null
|
|
- fix processing of octal constants for %b arguments (\0 followed by
|
|
up to three octal digits) and other escape sequences (\ followed by
|
|
up to three octal digits)
|
|
- hex constants `\xHHH' are now allowed to contain any positive
|
|
number of digits; previously they were restricted to two [removed]
|
|
- allow two new escape sequences: \" and \?, for compatibility with
|
|
ksh93 and ANSI C
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- documented processing that printf performs for arguments to %b
|
|
escape sequences
|
|
|
|
lib/sh/strtrans.c
|
|
- add \" and \? to escape sequences recognized by `echo -e'
|
|
|
|
10/1
|
|
----
|
|
version.c
|
|
- use snprintf instead of sprintf if configure tells us we have it
|
|
|
|
10/3
|
|
----
|
|
subst.c
|
|
- in list_remove_pattern, take into account the fact that one of the
|
|
list elements may be NULL, and don't free the result of
|
|
remove_pattern() without checking
|
|
- in remove_pattern, return savestring(param) if *param == '\0',
|
|
since callers expect to free() non-null return values
|
|
|
|
10/4
|
|
----
|
|
subst.c
|
|
- change verify_substring_values to make it clearer that the first
|
|
offset deals with array indices and the second deals with numbers
|
|
of elements, when doing array subranges with ${a[@]:e1:e2}
|
|
|
|
array.c
|
|
- change array_subrange to make it explicit that the second offset
|
|
argument is a count of the desired number of elements, not an
|
|
ending index. This deals with sparse arrays correctly.
|
|
|
|
10/6
|
|
----
|
|
variables.c
|
|
- fix memory leak in assign_in_env
|
|
|
|
10/8
|
|
----
|
|
subst.c
|
|
- in parameter_brace_expand, check that the last characters are `]}'
|
|
before checking for ${!array[@]}
|
|
|
|
execute_cmd.c,builtins/source.def
|
|
- push and pop the args (BASH_ARGV and BASH_ARGC) when executing a
|
|
shell function or sourcing a script only when in debugging mode
|
|
|
|
10/11
|
|
-----
|
|
arrayfunc.c
|
|
- make sure array_variable_name returns values for the SUBP and LENP
|
|
arguments if they're non-null, since callers expect to use them
|
|
even if the array subscript is bad
|
|
|
|
error.c
|
|
- call exit_shell instead of sh_exit from parser_error and
|
|
report_error so the right things happen (running exit trap, doing
|
|
the right interactive cleanup, etc.)
|
|
|
|
lib/readline/complete.c
|
|
- new variable, rl_completion_quote_character, set to any quote char
|
|
readline thinks it finds before any application completion
|
|
function is called
|
|
- new variable, rl_completion_suppress_quote, settable by an
|
|
application-specific completion function. If set to non-zero, the
|
|
completion code does not append a closing quote in append_to_match
|
|
|
|
lib/readline/readline.h
|
|
- extern declarations for rl_completion_quote_character and
|
|
rl_completion_suppress_quote
|
|
|
|
bashline.c
|
|
- set rl_completion_suppress_quote in command_subst_completion_function
|
|
because that would be inserted before any closing "`" or ")", which
|
|
is somewhat disconcerting
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- documented rl_completion_suppress_quote and
|
|
rl_completion_quote_character
|
|
|
|
10/13
|
|
-----
|
|
bashhist.c
|
|
- use sv_histchars instead of setting history_comment_char directly in
|
|
bash_initialize_history so assignments to $histchars made in
|
|
~/.bashrc are honored
|
|
|
|
10/21
|
|
-----
|
|
trap.c
|
|
- make sure run_exit_trap sets `running_trap' appropriately
|
|
- new variable, trap_saved_exit_value, set to last_command_exit_value
|
|
before running any trap commands; available to the rest of the
|
|
shell; use trap_saved_exit_value to replace some function-local
|
|
variables
|
|
|
|
builtins/exit.def
|
|
- if the shell is running the exit trap, and no argument is given
|
|
to `exit', use trap_saved_exit_value as the exit status instead
|
|
of the last command exit value (which could be the previous command
|
|
run in the exit trap), as required by POSIX.2
|
|
|
|
10/25
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- add `alias' to the list of documented `assignment statement' builtins
|
|
|
|
11/1
|
|
----
|
|
doc/bash.1
|
|
- remove the `.' from the sample $PATH value
|
|
|
|
parse.y
|
|
- make sure parse_compound_assignment prompts with $PS2 if it reads
|
|
a newline while parsing the compound assignment statement. Bug
|
|
reported by Stephane Chazelas
|
|
- parse_string_to_word_list now takes a new second argument: `int flags'
|
|
- new parser state flag: PST_COMPASSIGN; indicates that the shell is
|
|
parsing a compound assignment statement
|
|
- parse_string_to_word_list turns on PST_COMPASSIGN if `flags' arg
|
|
has low bit set
|
|
- turn PST_COMPASSIGN on and off in parse_compound_assignment
|
|
|
|
externs.h
|
|
- change prototype declaration for parse_string_to_word_list
|
|
|
|
arrayfunc.c
|
|
- change call to parse_string_to_word_list to add new flags arg
|
|
|
|
general.c
|
|
- assignment() takes a new `flags' second argument
|
|
- if `flags' is non-zero, accept `[' as a legal assignment statement
|
|
starter character (for parsing compound array assignments)
|
|
|
|
general.h
|
|
- add new argument to prototype declaration for assignment()
|
|
|
|
parse.y,{subst,variables}.c, builtins/{setattr,declare}.def
|
|
- change calls to assignment() (parse.y calls with flags == 1 when
|
|
parser_state inlcudes PST_COMPASSIGN)
|
|
|
|
arrayfunc.c
|
|
- in assign_array_var_from_string(), don't treat an expanded word
|
|
of the form [ind]=value specially unless the W_ASSIGNMENT flag is
|
|
set. This means that words that are the result of expansions but
|
|
happen to have the same format as compound assignment statement
|
|
words will not be treated as such. For instance
|
|
|
|
v='[12]=foobar'
|
|
a=( $v )
|
|
|
|
will result in a[0]='[12]=foobar' instead of a[12]=foobar. This
|
|
is closer to how `regular' assignment statements are treated and
|
|
compatible with ksh93. Bug reported by Stephane Chazelas
|
|
|
|
shell.c
|
|
- new --protected argument, disables command substitution when used
|
|
with --wordexp (like --wordexp, it remains undocumented)
|
|
- change run_wordexp to turn on the W_NOCOMSUB flag in each word
|
|
to be expanded if protected_mode is set
|
|
|
|
11/7
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- clarified the language concerning inherited signal dispositions and
|
|
when traps are run
|
|
|
|
support/shobj-conf
|
|
- slight changes to the darwin (Mac OS X) stanza for MacOS X 10.3
|
|
(for the readline shared library builds, which shares this script)
|
|
|
|
lib/readline/histexpand.c
|
|
- change to make `^' behave as equivalent to word one, as csh does,
|
|
and as the documentation states
|
|
|
|
lib/readline/display.c
|
|
- in update_line, make sure to use col_lendiff in all calculations
|
|
where the cursor position is concerned (like when calculating
|
|
the value of _rl_last_c_pos). Fixes bug reported by Andreas
|
|
Schwab
|
|
|
|
11/12
|
|
-----
|
|
trap.c
|
|
- make _run_trap_internal catch `return' builtin longjmps and clean
|
|
up before longjmping on to where the return was intended to go
|
|
(fixes bug with not turning off SIG_INPROGRESS flag when `return'
|
|
executed in trap command)
|
|
|
|
11/18
|
|
-----
|
|
builtins/cd.def
|
|
- in posix mode, set errno to ENOTDIR if canonicalization fails,
|
|
unless the canonicalization functions leave it set to ENOENT
|
|
|
|
11/25
|
|
-----
|
|
make_cmd.c
|
|
- in make_simple_command, don't blindly dereference element.redirect
|
|
|
|
parse.y
|
|
- the list_terminator production now has an `int' value so it can be
|
|
used in other grammar productions
|
|
- add a rule that makes `time' on a line by itself time a null
|
|
command (this is iffy)
|
|
|
|
11/28
|
|
-----
|
|
subst.c
|
|
- change the pattern substitution code (${var//pat/rep}) to use the
|
|
same pattern expansion function (getpattern()) as the pattern
|
|
removal expansions. This has the effect of no longer performing
|
|
quote removal on the pattern before trying to match it. This
|
|
fixes an incompatibility with ksh93 reported on comp.unix.shell
|
|
|
|
nojobs.c
|
|
- add replacement function for siginterrupt on the off chance that a
|
|
system has posix signals but lacks siginterrrupt
|
|
|
|
lib/readline/display.c
|
|
- fix from Tim Waugh at Red Hat to speed up inserting characters into
|
|
long lines in a UTF-8 environment by optimizing the calculation of
|
|
the first difference between old and new lines by checking to see
|
|
whether the old line is a subset of the new
|
|
|
|
11/29
|
|
-----
|
|
lib/malloc/stats.c
|
|
- break code that opens file (and interprets %p) into separate function
|
|
_imalloc_fopen(char *s, char *fn, char *def, char *defbuf, size_t defsiz)
|
|
for use by rest of library
|
|
- default stats file is now `stats.PID'
|
|
|
|
lib/malloc/trace.c
|
|
- new function, malloc_set_tracefn (char *s, char *fn), sets tracing
|
|
to the file named by FN (with %p interpolated as the pid), using
|
|
some default if FN is NULL
|
|
|
|
lib/malloc/shmalloc.h
|
|
- new extern declaration for malloc_set_tracefn
|
|
|
|
12/4
|
|
----
|
|
execute_cmd.c
|
|
- combined several common strings from do_piping() into one
|
|
dup_error() function
|
|
|
|
builtins/common.[ch]
|
|
- new function, `sh_notbuiltin(s)' prints error message about s not
|
|
being a shell builtin
|
|
|
|
builtins/{builtin,enable}.def
|
|
- call sh_notbuiltin instead of using literal string
|
|
|
|
{arrayfunc,expr,error}.c
|
|
- use one string variable for `bad array subscript' error message; use
|
|
in calls to various error reporting functions
|
|
|
|
Makefile.in
|
|
- add variables for localedir and the PACKAGE_* variables, auto-set
|
|
by configure
|
|
|
|
configure.in
|
|
- un-cache values for gettext, textdomain, and bindtextdomain if they're
|
|
not in libc but in libintl so the right variables get set
|
|
|
|
bashintl.h
|
|
- add necessary defines for marking strings to be translated using
|
|
gettext
|
|
|
|
locale.c
|
|
- set textdomain and directory in set_default_locale
|
|
- don't call textdomain with the value of $TEXTDOMAIN, since we don't
|
|
want to override the default domain ("bash")
|
|
- don't call bindtextdomain unless default_domain already has a value
|
|
- when translating $"..." strings, use dgettext with the script's
|
|
default domain (value of $TEXTDOMAIN)
|
|
|
|
12/9
|
|
----
|
|
builtins/mkbuiltins.c
|
|
- include "bashintl.h" in the generated "builtins.c"
|
|
|
|
support/{config.rpath,mkinstalldirs}
|
|
- new files to support gettext i18n
|
|
|
|
ABOUT-NLS
|
|
- new readme file for gettext internationalization
|
|
|
|
po/{Makefile.in.in,Rules-quot,boldquot.sed,en@boldquot.header,en@quot.header,insert-header.sin,quot.sed,remove-potcdate.sin}
|
|
po/{POTFILES.in,bash.pot}
|
|
- new files for gettext
|
|
|
|
lib/intl
|
|
- new directory, with libintl stuff from gettext
|
|
|
|
aclocal.m4
|
|
- add m4 files from gettext distribution needed by libintl
|
|
|
|
configure.in
|
|
- create po/Makefile.in and lib/intl/Makefile in AC_OUTPUT
|
|
- add call to AM_GNU_GETTEXT to initialize gettext stuff
|
|
|
|
Makefile.in
|
|
- use mkinstalldirs instead of mkdirs in the `installdirs' target
|
|
- changes for intl/ and po/ subdirectories in build and install
|
|
- changes to have libintl linked in, as determined by configure
|
|
- changes to have libintl built, just in case it's used (though I'd
|
|
rather not)
|
|
|
|
12/10
|
|
-----
|
|
config.h.in
|
|
- additional #defines required by the libintl library
|
|
- add ENABLE_NLS define for AM_GNU_GETTEXT
|
|
- take out defines for HAVE_{BINDTEXTDOMAIN,GETTEXT,TEXTDOMAIN}
|
|
|
|
configure.in
|
|
- removed old tests for libintl and gettext/textdomain/bindtextdomain
|
|
|
|
locale.c
|
|
- remove HAVE_GETTEXT code; we have gettext unconditionally now
|
|
|
|
bashintl.h
|
|
- change to include "gettext.h" and remove the conditional code based
|
|
on whether or not gettext is present
|
|
|
|
12/16
|
|
-----
|
|
lib/readline/vi_mode.c
|
|
- fix problem with rl_vi_eWord that caused it to skip over the last
|
|
character of a word if invoked while point was on the next-to-last
|
|
character
|
|
|
|
12/18
|
|
-----
|
|
{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c
|
|
{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c
|
|
{subst,test,trap,variables,version,xmalloc}.c
|
|
parse.y
|
|
builtins/{common,evalfile,getopt}.c
|
|
builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def
|
|
builtins/{hash,help,history,jobs,kill,printf,pushd,read,return,set,setattr}.def
|
|
builtins/{shift,shopt,source,suspend,type,ulimit,umask}.def
|
|
lib/sh/{fmtulong,netopen}.c
|
|
- include "bashintl.h" for gettext defines
|
|
|
|
Makefile.in
|
|
- add `-DBUILDTOOL' to CFLAGS for buildversion.o
|
|
|
|
bashintl.h
|
|
- if `BUILDTOOL' is defined, define ENABLE_NLS to 0 so we don't have
|
|
to compile and link in the gettext stuff
|
|
|
|
Makefile.in,lib/sh/Makefile.in,builtins/Makefile.in
|
|
- update dependencies on bashintl.h and include/gettext.h
|
|
|
|
12/19
|
|
-----
|
|
{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c
|
|
{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c
|
|
{subst,test,trap,variables,version,xmalloc}.c
|
|
builtins/{common,evalfile,getopt}.c
|
|
builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def
|
|
builtins/{hash,help,history,jobs,kill,let,printf,pushd,read,return,set}.def
|
|
builtins/{setattr,shift,shopt,source,suspend,type,ulimit,umask}.def
|
|
lib/sh/{fmtulong,netopen}.c
|
|
lib/malloc/{malloc,stats,table,watch}.c
|
|
- mark up strings in source files for gettext processing
|
|
|
|
lib/malloc/imalloc.h
|
|
- include "bashintl.h" if SHELL is defined, otherwise make _(x) an
|
|
identity define
|
|
|
|
lib/malloc/Makefile.in
|
|
- add dependencies on ${topdir}/bashintl.h and ${BASHINCDIR}/gettext.h
|
|
|
|
12/21
|
|
-----
|
|
bashline.c
|
|
- make sure we index into rl_line_buffer with indexes > 0 in
|
|
attempt_shell_completion
|
|
|
|
12/31
|
|
-----
|
|
Makefile.in
|
|
- descend into `po' and run make recursively for the various clean
|
|
targets
|
|
|
|
1/4
|
|
---
|
|
include/shmbutil.h
|
|
- two new macros: BACKUP_CHAR(str, strsize, i), which backs up one
|
|
multibyte character in STR starting at index I, and
|
|
BACKUP_CHAR_P(str, strsize, p), which backs up one multibyte
|
|
character in STR starting at P, which is a char *
|
|
|
|
1/6
|
|
---
|
|
pcomplete.c
|
|
- in pcomp_filename_completion_function, use the quote character
|
|
readline found (and assigned to rl_complete_quote_character) when
|
|
dequoting the filename by a completion call from readline (when
|
|
rl_dispatching != 0)
|
|
|
|
bashline.c
|
|
- ditto for bash_directory_completion_matches
|
|
|
|
1/7
|
|
---
|
|
lib/readline/complete.c
|
|
- new variable, rl_completion_found_quote, set to non-zero value if
|
|
readline finds what it thinks is quoting in the word to be completed
|
|
|
|
lib/readline/readline.h
|
|
- extern declaration for rl_completion_found_quote
|
|
|
|
1/8
|
|
---
|
|
lib/readline/doc/rltech.texi
|
|
- documented rl_completion_found_quote
|
|
|
|
lib/readline/complete.c
|
|
- in compute_lcd_of_matches, if it looks like what the user typed was
|
|
dequoted before generating filename matches, dequote the user's
|
|
text again before figuring out the case-insensitive lcd
|
|
|
|
1/9
|
|
---
|
|
lib/readline/display.c
|
|
- fix from Edward Catmur <ed@catmur.co.uk> to logic that handles
|
|
invisible characters in prompt string. Original code was wrong
|
|
about local_prompt_prefix; it gave incorrect results when prompt
|
|
contained invisible characters after a line break
|
|
|
|
1/10
|
|
----
|
|
subst.c
|
|
- new function, mb_substring(), does character (possibly multibyte)
|
|
oriented rather than strictly byte-oriented substring extraction.
|
|
The passed indices, rather than strictly indexing into the string,
|
|
indicate character positions that need to be calculated. From
|
|
Tim Waugh <twaugh@redhat.com>
|
|
- change parameter_brace_substring to use mb_substring if necessary
|
|
|
|
included/shmbutil.h
|
|
- new define SADD_MBQCHAR_BODY, common code for adding a quoted
|
|
(preceded by CTLESC) multibyte character to an accumulating string
|
|
in the subst.c expansion code
|
|
|
|
subst.c
|
|
- use SADD_MBQCHAR_BODY in expand_word_internal
|
|
- new static function, mb_getcharlens, allocates and returns an array
|
|
of character lengths for (possibly multibyte) characters in the
|
|
argument string
|
|
- change pattern matching operations to use while loops instead of
|
|
for loops to handle multibyte characters better (no more simple
|
|
increment or decrement)
|
|
- change pattern matching operations to use multibyte character
|
|
operations instead of simple increments and decrements. Don't
|
|
use BACKUP_CHAR_P -- use the mblen array instead, because that
|
|
avoids the N**2 behavior of having to count from the beginning
|
|
of the string each time you want to back up one character. Changes
|
|
to remove_pattern and match_pattern
|
|
|
|
1/12
|
|
----
|
|
lib/readline/display.c
|
|
- make expand_prompt count multbyte characters in the prompt string
|
|
by using _rl_find_next_mbchar (and copying possibly more than one
|
|
byte) instead of a simple increment and single byte copy
|
|
|
|
1/13
|
|
----
|
|
lib/readline/display.c
|
|
- expand_prompt takes a new reference argument -- it returns
|
|
the actual count of (possibly multibyte) characters displayed
|
|
on the screen
|
|
- don't short-circuit in expand_prompt unless we're not going to
|
|
be using any multibyte characters
|
|
- change calls to expand_prompt to pass an argument for the
|
|
number of physical characters the prompt occupies
|
|
(prompt_physical_chars)
|
|
- initialize `lpos' (the physical cursor position) from
|
|
prompt_physical_chars in rl_redisplay
|
|
|
|
lib/readline/mbutil.c
|
|
- in _rl_find_prev_mbchar_internal, if mbrtowc returns -1 or -2, and
|
|
we assume that the character is a single-byte char, make sure we
|
|
update `prev' so it doesn't get lost. Fixes problems encountered
|
|
when a non-ascii char is the last char on the line and we're moving
|
|
back past it with ^B, and other display problems caused by the same
|
|
situation
|
|
|
|
1/15
|
|
----
|
|
lib/readline/doc/rltech.texi
|
|
- document RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE in the
|
|
description of rl_expand_prompt()
|
|
|
|
1/20
|
|
----
|
|
bashline.c
|
|
- in initialize_readline, make sure M-C-j and M-C-m are still bound to
|
|
vi-editing-mode before unbinding them -- they may have been rebound
|
|
in an inputrc
|
|
|
|
variables.c
|
|
- in unbind_variable, unset attributes other than `local' and exported
|
|
(if the variable came from a temporary environment) when unsetting a
|
|
local variable inside a function
|
|
|
|
1/21
|
|
----
|
|
configure.in
|
|
- add libintl build directory to the list of include directories if
|
|
it's being built (using INTL_BUILDDIR)
|
|
|
|
Makefile.in,{builtins,lib/{sh,malloc}}/Makefile.in
|
|
- substitute LIBBUILD as ${BUILD_DIR}/${LIBSUBDIR}
|
|
- define INTL_BUILDDIR as ${LIBBUILD}/intl
|
|
|
|
{builtins,lib/sh}/Makefile.in
|
|
- make sure INTL_INC is added to the list of include directories
|
|
- make sure INTL_LIBSRC is defined with the correct value
|
|
|
|
{configure,Makefile,{builtins,lib/sh}/Makefile}.in
|
|
- substitute LIBINTL_H as ${INTL_BUILDDIR}/libintl.h
|
|
|
|
Makefile.in,builtins/Makefile.iin
|
|
- all files depending on bashintl.h also depend on ${LIBINTL_H}
|
|
(which may be empty)
|
|
|
|
Makefile.in
|
|
- make a rule telling how to build lib/intl/libintl.h if necessary
|
|
|
|
1/24
|
|
----
|
|
builtins/read.def
|
|
- make sure that the array name supplied as an argument to -a is a
|
|
valid identifier
|
|
|
|
parse.y
|
|
- make the \W expansion abbreviate $HOME with a ~ (seems to be more
|
|
useful)
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document new behavior of \W
|
|
|
|
subst.c
|
|
- make sure parameter_brace_expand_rhs uses the first character of
|
|
$IFS when making the string to return from the expanded word
|
|
(which, in the case of "$@" or $@, contains multiple words that
|
|
need to be separated)
|
|
|
|
1/25
|
|
----
|
|
builtins/common.c
|
|
- change get_job_spec to make `%' by itself or an empty argument
|
|
return NO_JOB
|
|
|
|
jobs.h
|
|
- new possible value for a job spec return value: BAD_JOBSPEC
|
|
(for syntactically invalid specs, like the empty string)
|
|
|
|
shell.c
|
|
- in open_shell_script, check to see whether or not we can find and
|
|
open the filename argument before setting dollar_vars[0] or
|
|
manipulating BASH_SOURCE, so the error messages come out better
|
|
|
|
subst.c
|
|
- in string_list_internal, short-circuit right away to savestring()
|
|
if the list only has a single element
|
|
|
|
1/28
|
|
----
|
|
lib/readline/rltypedefs.h
|
|
- new set of typedefs for functions returning char * with various
|
|
arguments (standard set)
|
|
|
|
lib/readline/complete.c
|
|
- new function pointer, rl_completion_word_break_hook, called by
|
|
_rl_find_completion_word, used to set word break characters at
|
|
completion time, allowing them to be position-based
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- documented rl_completion_word_break_hook
|
|
|
|
lib/readline/kill.c
|
|
- added new rl_unix_filename_rubout, which deletes one filename
|
|
component in a Unix pathname backward (delimiters are whitespace
|
|
and `/')
|
|
|
|
lib/readline/readline.h
|
|
- extern declaration for rl_unix_filename_rubout
|
|
|
|
lib/readline/funmap.c
|
|
- new bindable readline command `unix-filename-rubout'
|
|
|
|
lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
|
|
- documented `unix-filename-rubout'
|
|
|
|
1/29
|
|
----
|
|
lib/readline/histexpand.c
|
|
- change history_tokenize_internal to handle non-whitespace delimiter
|
|
characters by creating separate fields (like the shell does when
|
|
splitting on $IFS)
|
|
|
|
1/30
|
|
----
|
|
lib/glob/xmbsrtowcs.c
|
|
- new function, xdupmbstowcs, for convenience: calls xmbsrtowcs
|
|
while allocating memory for the new wide character string
|
|
- some small efficiency improvments to xmbsrtowcs
|
|
|
|
include/shmbutil.h
|
|
- extern declaration for xdupmbstowcs
|
|
|
|
lib/glob/strmatch.h
|
|
- include config.h for definition of HANDLE_MULTIBYTE
|
|
- remove the HAVE_LIBC_FNM_EXTMATCH tests
|
|
- new extern declaration for wcsmatch(whchar_t *, wchar_t *, int)
|
|
|
|
configure.in
|
|
- remove call to BASH_FUNC_FNMATCH_EXTMATCH; it's no longer used
|
|
|
|
lib/glob/smatch.c
|
|
- simplify xstrmatch() by using xdupmbstowcs() instead of inline code
|
|
|
|
lib/glob/glob.c
|
|
- modify mbskipname() to avoid the use of alloca
|
|
- simplify mbskipname() by using xdupmbstowcs() instead of inline code
|
|
- simplify glob_pattern_p() by using xdupmbstowcs() instead of
|
|
inline code
|
|
- fix memory leak in wdequote_pathname
|
|
- simplify wdequote_pathname() by using xdupmbstowcs() instead of
|
|
inline code
|
|
|
|
lib/glob/strmatch.c
|
|
- new function, wcsmatch(), `exported' wide-character equivalent of
|
|
strmatch()
|
|
|
|
subst.c
|
|
- old match_pattern is now match_upattern
|
|
- match_pattern now either calls match_upattern or converts
|
|
mbstrings to wide chars and calls match_wpattern
|
|
- match_upattern reverted to old non-multibyte code
|
|
- new function: match_pattern_wchar, wide character version of
|
|
match_pattern_char
|
|
|
|
2/1
|
|
---
|
|
subst.c
|
|
- old remove_pattern is now remove_upattern
|
|
- remove_upattern reverted to old non-multibyte code (pre-Waugh patch)
|
|
- new multibyte version of remove_pattern: remove_wpattern
|
|
- remove_pattern now calls either remove_upattern or converts a
|
|
multibyte string to a wide character string and calls
|
|
remove_wpattern
|
|
- new function, wcsdup, wide-character version of strdup(3)
|
|
|
|
2/4
|
|
---
|
|
print_cmd.c
|
|
- temporarily translate a >&filename redirection from
|
|
r_duplicating_output_word to r_err_and_out (as the expansion code
|
|
in redir.c does) so it prints without a leading `1' (file
|
|
descriptor)
|
|
|
|
2/5
|
|
---
|
|
aclocal.m4
|
|
- add a check for wcsdup to BASH_CHECK_MULTIBYTE
|
|
|
|
config.h.in
|
|
- add HAVE_WCSDUP define
|
|
|
|
2/9
|
|
---
|
|
builtins/shift.def
|
|
- fix a call to sh_erange that possibly dereferences a NULL pointer
|
|
|
|
2/12
|
|
----
|
|
general.c
|
|
- start at a general set of file property checking functions:
|
|
file_isdir(), file_iswdir() (is writable directory)
|
|
|
|
general.h
|
|
- extern declarations for new functions
|
|
|
|
lib/sh/tmpfile.c
|
|
- use file_iswdir() to make sure the temporary directory used for
|
|
here documents and other temp files is writable in get_sys_tmpdir()
|
|
|
|
2/17
|
|
----
|
|
bashline.c
|
|
- fix conditional binding of emacs-mode M-~ -- there is a default
|
|
binding for it (rl_tilde_expand), so a straight call to
|
|
rl_bind_key_if_unbound_in_map doesn't do the right thing
|
|
|
|
2/27
|
|
----
|
|
[bash-3.0-beta1 released]
|
|
|
|
2/29
|
|
----
|
|
subst.c
|
|
- fixed expansion so referencing $a, when a is an array variable
|
|
without an element assigned to index 0, exits the shell when
|
|
`-u' is enabled
|
|
|
|
expr.c
|
|
- make the exponentiation operator (**) associative, so things like
|
|
2**3**4 work right (change `if' to `while')
|
|
|
|
3/3
|
|
---
|
|
lib/sh/strftime.c
|
|
- SCO Unix 3.2, like Solaris, requires that the system's `timezone'
|
|
variable be declared as long
|
|
|
|
lib/readline/{bind,histfile,input,parens}.c
|
|
- changes for Tandem (including `floss.h' (?))
|
|
|
|
3/4
|
|
---
|
|
subst.c
|
|
- change param_expand to quote the entire expanded string instead
|
|
of just the escape characters if the expansion appears between
|
|
double quotes or in a here-document (for simple variable expansions
|
|
or expansions of positional parameters)
|
|
|
|
3/8
|
|
---
|
|
subst.c
|
|
- analogous changes to parameter_brace_expand_word to fix the same
|
|
quoting problem as on 3/4; fix callers to understand that the
|
|
value returned might be quoted now and should be dequoted if
|
|
necessary
|
|
- add a `quoted' argument to get_var_and_type, change callers
|
|
- change today's fix and fix from 3/4 to not call quote_string if the
|
|
value is "" (because quote_string turns that into CTLNUL\0)
|
|
|
|
3/9
|
|
---
|
|
builtins/cd.def
|
|
- resetpwd() now takes a `caller' argument so it can be used by pwd
|
|
as well as cd
|
|
- change pwd_builtin to call resetpwd() if sh_physpath() fails to
|
|
return a valid pathname
|
|
|
|
3/14
|
|
----
|
|
expr.c
|
|
- reworked exp0 and readtok() to make post-increment and post-decrement
|
|
into real tokens, which may be separated from their accompanying
|
|
variables by whitesapce
|
|
- made analogous changes to readtok() to make pre-increment and
|
|
pre-decrement work when separated from their accompanying identifier
|
|
by whitespace
|
|
|
|
3/18
|
|
----
|
|
lib/readline/misc.c
|
|
- in rl_maybe_unsave_line, don't force rl_replace_line to clear
|
|
the undo_list, since it might point directly at an undo list
|
|
from a history entry (to which we have no handle)
|
|
|
|
3/19
|
|
----
|
|
lib/readline/display.c
|
|
- rl_save_prompt and rl_restore_prompt now save and restore the value
|
|
of prompt_physical_chars
|
|
- set prompt_physical_chars in rl_redisplay when expand_prompt has
|
|
not been called (e.g., when rl_display_prompt is set and is not
|
|
equal to rl_prompt, like when searching)
|
|
|
|
lib/readline/histexpand.c
|
|
- don't call add_history in history_expand if the `:p' modifier is
|
|
supplied; leave that to the calling application. This means that
|
|
`history -p', for example, will not add anything to the history
|
|
list (as documented), nor will history expansions invoked by
|
|
emacs-mode M-C-e line editing
|
|
|
|
config-bot.h
|
|
- check whether HAVE_DECL_SYS_SIGLIST is defined to 1 rather than just
|
|
defined, to work around newer versions of autoconf defining it to 0
|
|
|
|
config.h.in
|
|
- change default status of HAVE_MALLOC to #undef instead of #define
|
|
|
|
bashhist.c
|
|
- extern declarations for rl_done and rl_dispatching
|
|
- don't call re_edit from pre_process_line unless rl_dispatcing is zero,
|
|
so we don't call it from something like shell-expand-line
|
|
- change pre_process_line to add an expanded history specification
|
|
that returned `print only' to the history list, since history_expand
|
|
no longer does it (and, when using readline, do it only when
|
|
rl_dispatching is zero)
|
|
|
|
3/22
|
|
----
|
|
config.h.in,aclocal.m4
|
|
- change bash-specific functions that look in struct dirent to define
|
|
HAVE_STRUCT_DIRENT_xxx, like AC_CHECK_MEMBERS does (though the
|
|
functions are otherwise the same)
|
|
- new function, BASH_STRUCT_DIRENT_D_NAMLEN, define
|
|
HAVE_STRUCT_DIRENT_D_NAMLEN if struct dirent has a `d_namlen' member
|
|
|
|
configure.in
|
|
- call BASH_STRUCT_DIRENT_D_NAMLEN
|
|
|
|
include/posixdir.h
|
|
- use new and renamed HAVE_STRUCT_DIRENT_D_xxx defines
|
|
|
|
4/7
|
|
---
|
|
builtins/cd.def
|
|
- ensure that we print out a non-null pathname after getting a
|
|
directory from CDPATH and canonicalizing it (e.g., if the result
|
|
exceeds PATH_MAX in length and the_current_working_directory is
|
|
set to NULL)
|
|
|
|
4/12
|
|
----
|
|
print_cmd.c
|
|
- new function to print out assignment statements when `set -x' has
|
|
been enabled: xtrace_print_assignment
|
|
|
|
externs.h
|
|
- extern declaration for xtrace_print_assignment
|
|
|
|
4/13
|
|
----
|
|
{subst,variables}.c
|
|
- call xtrace_print_assignment instead of using inline code
|
|
|
|
jobs.c
|
|
- if turning on job control when it was previously off, set
|
|
pipeline_pgrp to 0 in set_job_control so make_child puts
|
|
subsequent children in their own process group
|
|
|
|
4/14
|
|
----
|
|
general.c
|
|
- new function, legal_alias_name, called to decide whether an
|
|
argument to add_alias is a valid alias name -- essentially any
|
|
character except one which must be quoted to the shell parser
|
|
and `/'
|
|
|
|
general.h
|
|
- new extern declaration for legal_alias_name
|
|
|
|
builtins/alias.def
|
|
- `unalias' now returns failure status if no NAME arguments are
|
|
supplied and -a is not given
|
|
- call legal_alias_name to make sure alias name is valid before
|
|
calling add_alias from alias_builtin
|
|
|
|
4/19
|
|
----
|
|
include/shmbutil.h
|
|
- include <config.h> for definition of HANDLE_MULTIBYTE rather than
|
|
duplicating logic
|
|
|
|
4/20
|
|
----
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- make sure $0 is consistently referred to as a `special parameter'
|
|
- document which characters are now not allowed in alias names
|
|
|
|
4/23
|
|
----
|
|
|
|
builtins/{jobs,kill,wait}.def
|
|
- removed requirement that job control be enabled to use job control
|
|
notation, as SUSv3 implies
|
|
|
|
subst.c
|
|
- based on a message from David Korn, change param_expand to not call
|
|
string_list_dollar_star if the only quoting is Q_HERE_DOCUMENT --
|
|
quoted here documents are like double quoting, but not exactly
|
|
- analogous changes to list_remove_pattern and pos_params
|
|
|
|
4/24
|
|
----
|
|
lib/readline/doc/rluser.texi
|
|
- fix error in description of emacs-mode C-xC-e command (uses $VISUAL
|
|
instead of $FCEDIT)
|
|
|
|
4/28
|
|
----
|
|
support/bashbug.sh
|
|
- integrate a patch from Stefan Nordhausen
|
|
<nordhaus@informatik.hu-berlin.de> that reduces race conditions
|
|
by using a temporary directory inside $TMPDIR and creating the
|
|
temp files in that
|
|
|
|
4/30
|
|
----
|
|
builtins/common.c
|
|
- use pathconf(".", _PC_PATH_MAX) where available to size the argument
|
|
to getcwd() rather than using a straight PATH_MAX
|
|
|
|
builtins/cd.def
|
|
- if get_working_directory fails and returns null (causing resetpwd
|
|
to return NULL), use set_working_directory to set $PWD to the
|
|
absolute pathname for which chdir just succeeded
|
|
|
|
5/1
|
|
---
|
|
lib/readline/vi_mode.c
|
|
- in rl_vi_change_to, call _rl_vi_set_last with rl_numeric_arg instead
|
|
of `last', since they're equal at call time and rl_vi_domove can
|
|
change rl_numeric_arg (which vi apparently updates). Fixes redo bug
|
|
of `c2....' reported by Marion Berryman <mwberryman@copper.net>
|
|
|
|
5/4
|
|
---
|
|
parse.y
|
|
- fix decode_prompt_string to properly deal with strftime() returning 0
|
|
|
|
5/6
|
|
---
|
|
variables.c
|
|
- in make_local_array_variable, return an already-existing local array
|
|
variable immediately rather than creating a new array (causing a
|
|
memory leak)
|
|
|
|
5/8
|
|
---
|
|
lib/readline/vi_mode.c
|
|
- change rl_vi_domove to set rl_explicit_arg before calling
|
|
rl_digit_loop1 so that multi-digit numeric arguments work right
|
|
- _rl_vi_last_command is no longer static
|
|
|
|
lib/readline/rlprivate.h
|
|
- new extern declaration for _rl_vi_last_command
|
|
|
|
lib/readline/text.c
|
|
- change rl_newline to only call _rl_vi_reset_last if the last command
|
|
(_rl_vi_last_command) is not a text modification command. This lets
|
|
the last-command and last-argument work across command lines
|
|
|
|
5/13
|
|
----
|
|
builtins/common.c
|
|
- use getcwd(0,0) rather than providing a fixed pathname with a fixed
|
|
length (PATH_MAX) so getcwd() will allocate sufficient memory
|
|
|
|
aclocal.m4
|
|
- change BASH_FUNC_GETCWD to check whether or not getcwd(0,0) will
|
|
allocate memory for the returned value -- nobody implements that
|
|
and getcwd-via-popen, so it should capture the old test as well
|
|
|
|
5/27
|
|
----
|
|
|
|
builtins/trap.def
|
|
- the historical behavior of assuming that a signal's handling should
|
|
be set to its original disposition is only in effect if a single
|
|
argument is given, otherwise the first argument is assumed to be a
|
|
command to execute
|
|
- when in posix mode, if trap gets a single argument, display an
|
|
error message and return EX_USAGE
|
|
- change the help message and usage string to better explain trap's
|
|
behavior
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- describe the new default behavior when the first argument is a
|
|
signal spec
|
|
- note that signal names are case insensitive and the SIG prefix is
|
|
optional in arguments to `trap'
|
|
- note that signal name arguments to `kill' are case-insensitive
|
|
|
|
lib/readline/display.c
|
|
- make sure rl_on_new_line_with_prompt sets rl_display_prompt to
|
|
rl_prompt (just to make sure it's set)
|
|
- have rl_on_new_line_with_prompt use local_prompt if it's set
|
|
|
|
6/2
|
|
---
|
|
subst.c
|
|
- in string_extract_double_quoted, cope with extract_delimited_string
|
|
returning NULL, as it can when attempting completion on an unclosed
|
|
command substitution
|
|
|
|
6/24
|
|
----
|
|
lib/readline/complete.c
|
|
- change print_filename to add a `/' to listed directory names if
|
|
`mark-directories' has been enabled
|
|
|
|
builtins/umask.def
|
|
- make sure that the mask passed to parse_symbolic_mode has all but
|
|
the operative low eight bits masked off, to avoid complementing
|
|
all 0s to -1, which is the error return code. This makes things
|
|
like `a=rwx' and `ugo=rwx' work and turn off the umask
|
|
|
|
6/26
|
|
----
|
|
builtins/getopts.def
|
|
- when `getopts' reaches the end of options, unset OPTARG before
|
|
returning EOF. In response to a bug report from Apple
|
|
|
|
configure.in
|
|
- when cross-compiling, don't set CPPFLAGS_FOR_BUILD and
|
|
LDFLAGS_FOR_BUILD from CPPFLAGS and LDFLAGS, respectively, since
|
|
those are for the target instead of the build platform (report
|
|
from robert@schwebel.de)
|
|
|
|
shell.c
|
|
- a shell whose standard error (but not standard output) is directed
|
|
to a terminal should be interactive, according to POSIX/SUS. This
|
|
means that sh > sh.out will start an interactive shell. Bug report
|
|
from llattanzi@apple.com
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- change mention of standard output to standard error in definition
|
|
of interactive shell
|
|
|
|
lib/readline/vi_mode.c
|
|
- new convenience function, rl_vi_start_inserting, calls
|
|
_rl_vi_set_last to save the last textmod command state and then calls
|
|
rl_vi_insertion_mode to enter insert mode
|
|
- change functions to use rl_vi_start_inserting
|
|
|
|
lib/readline/readline.h
|
|
- extern declaration for rl_vi_start_inserting
|
|
|
|
bashline.c
|
|
- new function for vi-mode completion, bash_vi_complete. Does
|
|
filename expansion as POSIX specifies, unlike the default readline
|
|
bindings (which don't know about globbing). Bound to `\', `*',
|
|
and `=' in vi command keymap. Internals very similar to
|
|
rl_vi_complete; just calls bash glob expansion functions
|
|
|
|
lib/readline/vi_mode.c
|
|
- change rl_vi_change_char so that an entire change is a single
|
|
undoable event, rather than each individual change in a [count]r
|
|
command
|
|
- fix rl_vi_change_char so that replacing characters up to EOL works
|
|
rather than generating rl_ding
|
|
- fix rl_vi_change_case so that replacing characters up to EOL works
|
|
rather than generating rl_ding
|
|
|
|
6/28
|
|
----
|
|
builtins/echo.def
|
|
- call clearerr(stdout) before writing anything and testing its
|
|
failure or success
|
|
|
|
6/29
|
|
----
|
|
bashline.c
|
|
- only set rl_explicit_arg in bash_glob_complete_word if readline is
|
|
in emacs mode; let bash_vi_complete take care of setting it in vi
|
|
mode
|
|
- fix bash_vi_complete to only set rl_explicit_arg unless the posix
|
|
conditions are met: no globbing characters in the vi `bigword'
|
|
being completed
|
|
|
|
6/30
|
|
----
|
|
[bash-3.0-rc1 released]
|
|
|
|
7/1
|
|
---
|
|
lib/readline/complete.c
|
|
- make sure `extension_char' is initialized before deciding whether
|
|
or not the append a `/' to a possible completion when visible-stats
|
|
is not enabled
|
|
|
|
7/2
|
|
---
|
|
subst.c
|
|
- fix a boundary overrun in string_extract_double_quoted that could
|
|
occur when the word completion code attempts to expand an incomplete
|
|
construct (like a quoted unclosed command substitution)
|
|
|
|
7/4
|
|
---
|
|
subst.c
|
|
- set tempenv_assign_error to non-zero if an assignment to the
|
|
temporary environment fails for some reason (e.g., attempted
|
|
assignment to a readonly variable)
|
|
|
|
execute_cmd.c
|
|
- fix execute_simple_command to force a non-interactive shell in
|
|
POSIX mode to exit if an assignment to the temporary environment
|
|
preceding a special builtin fails (bug report from
|
|
llattanzi@apple.com)
|
|
|
|
7/5
|
|
---
|
|
bashline.c
|
|
- in bash_directory_completion_hook, don't perform word expansions
|
|
if the filename appears to have been completed from the file
|
|
system rather than typed in by the user. Bug reported by Tim
|
|
Waugh <twaugh@redhat.com>
|
|
|
|
7/7
|
|
---
|
|
lib/readline/misc.c
|
|
- if _rl_maybe_save_line is being asked to save a line other than
|
|
what's already saved, free up the current saved line and save the
|
|
current contents of rl_line_buffer. Bug reported by
|
|
llattanzi@apple.com
|
|
|
|
7/12
|
|
----
|
|
lib/readline/input.c
|
|
- do better EOF detection in rl_gather_tyi -- if a read returns 0 when
|
|
the fd is in non-blocking mode, stuff an EOF into the input stream
|
|
(reported by mattias@virtutech.se)
|
|
|
|
7/13
|
|
----
|
|
lib/readline/vi_mode.c
|
|
- make sure rl_vi_put honors `count' arguments and yanks things
|
|
multiple times if requested
|
|
|
|
7/16
|
|
----
|
|
builtins/umask.def
|
|
- make sure that the `who' part of the umask symbolic mode argument
|
|
defaults to `a' if it's missing
|
|
|
|
flags.c
|
|
- make sure that maybe_make_restricted only gets called after the
|
|
shell is initialized, so `bash -r' doesn't result in inappropriate
|
|
error messages
|
|
|
|
[bash-3.0 frozen]
|
|
|
|
7/27
|
|
----
|
|
doc/Makefile.in
|
|
- small fixes
|
|
|
|
[bash-3.0-released]
|
|
|
|
7/28
|
|
----
|
|
array.c
|
|
- in array_insert(), make sure the value to be added is non-NULL before
|
|
calling savestring() on it
|
|
|
|
builtins/reserved.def
|
|
- fix description of `CDPATH'
|
|
|
|
lib/readline/display.c
|
|
- when expanding a prompt that spans multiple lines with embedded
|
|
newlines, set prompt_physical_chars from the portion after the
|
|
final newline, not the preceding portion. Bug reported by
|
|
"Ralf S. Engelschall" <rse@engelschall.com>
|
|
|
|
make_cmd.c
|
|
- explicitly declare `lineno' in function prologue for make_case_command
|
|
|
|
builtins/evalfile.c
|
|
- include `trap.h' for declaration for run_return_trap
|
|
|
|
bashline.c
|
|
- fix a `return' without a value in enable_hostname_completion
|
|
|
|
general.c
|
|
- include test.h for extern declaration for test_eaccess
|
|
|
|
externs.h
|
|
- add declaration for zcatfd
|
|
|
|
tests/{history,histexp}.tests
|
|
- unset HISTFILESIZE to avoid problems if a value of 0 is inherited
|
|
from the environment
|
|
|
|
7/30
|
|
----
|
|
bashline.c
|
|
- small changes to glob_expand_word to perform tilde expansion before
|
|
attempting globbing
|
|
|
|
builtins/Makefile.in
|
|
- fix the install-help target to not cd into the `helpfiles'
|
|
subdirectory, so a value of $INSTALL_DATA containing a relative
|
|
pathname (e.g., .././support/install.sh) remains valid
|
|
|
|
7/31
|
|
----
|
|
subst.c
|
|
- new function, mbstrlen(s), returns length of a multibyte character
|
|
string
|
|
|
|
include/shmbutil.h
|
|
- new macro, MB_STRLEN(s), calls mbstrlen or STRLEN as appropriate
|
|
|
|
builtins/trap.def
|
|
- small change so that a first argument that's a valid signal number
|
|
(digits only -- no symbolic names) will be treated as a signal and
|
|
reverted back to the original handling disposition. Fixes debian
|
|
complaints
|
|
|
|
subst.c
|
|
- call MB_STRLEN instead of STRLEN where appropriate in
|
|
parameter_brace_expand_length to handle multibyte characters properly
|
|
- call MB_STRLEN instead of strlen in verify_substring_values so that
|
|
negative substrings of strings with multibyte chars work properly
|
|
|
|
8/1
|
|
---
|
|
jobs.c
|
|
- describe_pid needs to write to stderr, not stdout (POSIX)
|
|
- start_job, since it's only used by builtins (fg/bg), needs to write
|
|
its output to stdout, not stderr (POSIX)
|
|
|
|
sig.c
|
|
- add an `orig_flags' member to struct terminating_signal so the
|
|
original signal handling flags (SA_RESTART, etc.) can be preserved
|
|
on POSIX systems
|
|
- make sure to preserve the signal flags state in
|
|
initialize_terminating_signals and reset them for child processes
|
|
in reset_terminating_signals
|
|
|
|
builtins/fc.def
|
|
- fixed an off-by-one error that caused `fc -l' to list one too many
|
|
history entries
|
|
- in posix mode, `fc' should not list any indication as to whether or
|
|
not history lines have been modified (POSIX)
|
|
- when in posix mode, the default editor for `fc' should be `ed' (POSIX)
|
|
|
|
doc/bashref.texi
|
|
- updated the description of `trap' behavior when given a first
|
|
argument that is a valid signal number
|
|
- noted that `fc -l' won't indicate whether a history entry has been
|
|
modified if the shell is in posix mode
|
|
|
|
builtins/command.def
|
|
- fixed bug: `command -v' is supposed to be silent if a command is not
|
|
found
|
|
|
|
builtins/hash.def
|
|
- `hash' should print its `hash table empty' message to stderr
|
|
|
|
lib/readline/misc.c
|
|
- back out 7/7 change to _rl_maybe_save_line; it breaks emacs-mode ^P
|
|
|
|
general.c
|
|
- changed base_pathname so that it will return reasonable results for
|
|
non-absolute pathnames -- this is what is intended by all of its
|
|
callers
|
|
|
|
arrayfunc.c
|
|
- fix array_variable_part to return NULL if it finds an invisible
|
|
variable in the hash table. Fixes seg fault caused by referring to
|
|
unset local variable using array notation
|
|
|
|
{locale,variables}.c
|
|
- support LC_TIME as a special locale variable so HISTTIMEFORMAT tracks
|
|
the current locale
|
|
|
|
8/2
|
|
---
|
|
variables.c
|
|
- fixed small memory leak in makunbound() when a local array variable
|
|
is unset. Fix from William Park
|
|
|
|
lib/readline/display.c
|
|
- fixed a problem when computing the number of invisible characters on
|
|
the first line of a prompt whose length exceeds the screen width
|
|
(should only happen when invisible characters occur after the
|
|
line wrap). Bug reported by agriffis@gentoo.org
|
|
|
|
builtins/command.def
|
|
- `command -V' passes a new flag, CDESC_ABSPATH, which means to convert
|
|
to an absolute path
|
|
|
|
builtins/type.def
|
|
- in posix mode, `type' and `command -v/-V' should not report
|
|
non-executable files, even if the execution code will attempt to
|
|
run them. Other posix shells do this
|
|
|
|
doc/bashref.texi
|
|
- add note to POSIX Mode section describing behavior of type and command
|
|
when finding a non-executable file
|
|
|
|
execute_cmd.c
|
|
- force extended_glob to 1 before calling binary_test in
|
|
execute_cond_node so that the right extended pattern matching gets
|
|
performed
|
|
|
|
8/3
|
|
---
|
|
braces.c
|
|
- make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars
|
|
with values > 128 are handled correctly
|
|
|
|
builtins/printf.def
|
|
- change bexpand() and printstr() to handle strings with a leading
|
|
'\0' whose length is non-zero, since that's valid input for the
|
|
`%b' format specifier
|
|
|
|
subst.c
|
|
- fix a couple of instances of find_variable that didn't check the
|
|
result for an invisible variable
|
|
|
|
variables.c
|
|
- BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as
|
|
invisible vars
|
|
|
|
pcomplete.c
|
|
- make sure COMP_WORDS is not invisible when bind_comp_words returns
|
|
- ditto for COMPREPLY in gen_shell_function_matches
|
|
|
|
8/4
|
|
---
|
|
braces.c
|
|
- fix problem where ${ was ignored but did not increment the open
|
|
brace count. Bug reported by Tim Waugh <twaugh@redhat.com>
|
|
|
|
variables.c
|
|
- if make_local_variable finds a variable in the correct context in
|
|
the right variable scope, make sure it's not invisible before
|
|
returning it
|
|
|
|
8/5
|
|
---
|
|
builtins/trap.def
|
|
- fixed usage message to show `action' as not optional, though it
|
|
actually is when not in posix mode (for a single argument)
|
|
|
|
8/7
|
|
---
|
|
configure.in
|
|
- kfreebsd-gnu has had its sbrk() problems fixed, and no longer needs
|
|
to be configured --without-gnu-malloc
|
|
|
|
lib/readline/vi_mode.c
|
|
- in rl_vi_search, free any saved history line before starting the
|
|
search, so failure leaves you at that line, not the last line in
|
|
the history (assuming the current line is not the last history line).
|
|
Fix from llattanzi@apple.com to replace fix of 7/7
|
|
|
|
8/9
|
|
---
|
|
support/Makefile.in
|
|
- renamed `mostly-clean' target to `mostlyclean'
|
|
|
|
8/11
|
|
----
|
|
lib/readline/vi_mode.c
|
|
- make same change for EOL in multibyte character case of
|
|
rl_vi_change_char
|
|
|
|
8/12
|
|
----
|
|
subst.c
|
|
- in verify_substring_values, fix off-by-one error checking bounds of
|
|
`offset', esp. in array values (e.g., getting the highest element
|
|
of an array)
|
|
|
|
8/16
|
|
----
|
|
aclocal.m4
|
|
- change BASH_CHECK_DEV_FD to make sure that file descriptors > 2 are
|
|
accessible via /dev/fd, unlike FreeBSD 5.x
|
|
|
|
lib/sh/strftime.c
|
|
- make sure `zone' is initialized with gettimeofday before it is used
|
|
- work around HPUX lack of `altzone' and differing definitions of
|
|
`timezone'
|
|
|
|
lib/malloc/malloc.c
|
|
- internal_memalign and memalign now take a `size_t' as their first
|
|
argument, which seems to be the prevailing standard
|
|
|
|
lib/malloc/{malloc.c,shmalloc.h}
|
|
- change sh_memalign to take a `size_t' as its first argument
|
|
|
|
builtins/echo.def
|
|
- if posixly_correct and xpg_echo are both set, don't try to interpret
|
|
any arguments at all, as POSIX/XOPEN requires (fix inspired by Paul
|
|
Eggert)
|
|
|
|
doc/bashref.texi
|
|
- amend description of bash posix mode to include new echo behavior
|
|
|
|
builtins/fg_bg.def
|
|
- allow bg to take multiple job arguments, as posix seems to specify,
|
|
placing them all in the background, returning the status of the last
|
|
one as the status of `bg'
|
|
|
|
lib/readline/vi_mode
|
|
- fix _rl_vi_change_mbchar_case (multibyte-char version of `~'
|
|
command) to have the right behavior at EOL -- handle case where vi
|
|
mode backs up at the end of the line
|
|
|
|
8/18
|
|
----
|
|
array.c
|
|
- check for an empty array in array_rshift before shifting elements
|
|
and adjusting max_index
|
|
- check for null array in array_subrange
|
|
|
|
jobs.c
|
|
- fix raw_job_exit_status to not ignore exit status of the last
|
|
process in the pipeline when `set -o pipefail' is enabled
|
|
|
|
8/19
|
|
----
|
|
lib/readline/mbutil.c
|
|
- make sure _rl_find_next_mbchar_internal has a valid multibyte
|
|
character before it checks whether or not it's a zero-width
|
|
wide character and adjusts point accordingly
|
|
|
|
8/24
|
|
----
|
|
bashline.c
|
|
- new function, bash_directory_expansion, duplicates the expansions
|
|
performed on the directory name by rl_filename_completion_function
|
|
- call bash_directory_expansion in command_word_completion_function
|
|
if we decide we're doing tilde expansion (and any other
|
|
canonicalization) on the directory name being completed
|
|
|
|
8/25
|
|
----
|
|
configure.in
|
|
- use new-style AC_CHECK_HEADER to check for sys/ptem.h (which requires
|
|
sys/stream.h). The correct checks are in the code, but autoconf
|
|
complains if sys/stream.h is not included, rather than simply
|
|
checking for the header's presence
|
|
|
|
8/26
|
|
----
|
|
builtins/hash.def
|
|
- fix a bug that prevented `hash -d' from working right (as soon as
|
|
hash removed a command from the table, the bug caused it to be added
|
|
right back)
|
|
|
|
8/27
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- explicitly note that conditional primaries that operate on files
|
|
operate on the targets of symbolic links rather than the links
|
|
themselves
|
|
|
|
8/30
|
|
----
|
|
lib/readline/display.c
|
|
- fix multibyte calculation of `physchars' in prompt expansion, to
|
|
handle double-width multibyte characters correctly
|
|
- changes to rl_redisplay to handle prompts longer than the screenwidth
|
|
that might contain double-width multibyte characters. Fixes from
|
|
Tomohiro Kubota
|
|
|
|
9/6
|
|
---
|
|
subst.c
|
|
- change word_list_split to avoid really bad behavior caused by calling
|
|
list_append for each split word -- as the list gets long, you have
|
|
to traverse it every time. Keep a pointer to the end of the list and
|
|
and just tack onto it
|
|
|
|
9/8
|
|
---
|
|
lib/readline/complete.c
|
|
- change fnprint to calculate the displayed width of a filename in
|
|
the same way as fnwidth
|
|
|
|
subst.c
|
|
- in verify_substring_values, when expanding ${array[@]:offset}, make
|
|
sure negative offsets count from one greater than the array's
|
|
maximum index so things like ${x[@}: -1} work to give the last element
|
|
(requires fixing array tests)
|
|
|
|
builtins/common.c
|
|
- new error function, sh_wrerror(), for builtins to call when a write
|
|
error occurs
|
|
|
|
builtins/common.h
|
|
- extern declaration for sh_wrerror()
|
|
|
|
builtins/cd.def
|
|
- change builtin_error call to use sh_wrerror()
|
|
|
|
builtins/echo.def
|
|
- report write errors with sh_wrerror() instead of just returning
|
|
failure
|
|
|
|
builtins/printf.def
|
|
- change printstr to return failure (-1) or success (0) indication
|
|
rather than void
|
|
- report write errors when printstr() fails, return failure
|
|
- if any of the PF/printf calls fail, report write error and return
|
|
failure
|
|
|
|
execute_cmd.c
|
|
- change execute_in_subshell so the subshell command inherits the
|
|
command timing flags from the enclosing COMMAND *
|
|
|
|
9/11
|
|
----
|
|
[prayers for the victims of 9/11/2001]
|
|
|
|
lib/sh/strnlen.c
|
|
- new file, implementation of GNU libc extension function strnlen
|
|
|
|
lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST
|
|
- changes for strnlen
|
|
|
|
configure.in
|
|
- version changed to 3.1-devel
|
|
|
|
doc/bash.1, lib/readline/doc/rluser.texi
|
|
- added description of `-o plusdirs' to complete/compgen (thanks,
|
|
Arnold)
|
|
|
|
parse.y
|
|
- new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing
|
|
arguments to a builtin that accepts assignment statement arguments
|
|
- turn on PST_ASSIGNOK in read_token_word when appropriate
|
|
- turn off PST_ASSIGNOK in read_token when appropriate
|
|
- don't attempt to parse a compound assignment specially unless we're
|
|
in a position where an assignment statement is acceptable, or
|
|
PST_ASSIGNOK is set
|
|
|
|
9/13
|
|
----
|
|
variables.c
|
|
- make BASH_ARGC, BASH_ARGV, BASH_LINENO, and BASH_SOURCE
|
|
non-unsettable, since the shell uses those values internally
|
|
|
|
expr.c
|
|
- make exponentiation right-associative, as is apparently correct
|
|
|
|
9/16
|
|
----
|
|
arrayfunc.c
|
|
- make sure convert_var_to_array marks the environment as needing
|
|
recreation if the converted variable was exported
|
|
|
|
9/17
|
|
----
|
|
braces.c
|
|
- mark ${ as introducing an additional level of braces only if it's
|
|
not in a quoted string -- quoted strings are handled before brace
|
|
matching is done
|
|
|
|
parse.y
|
|
- fixed an obscure problem in history_delimiting_chars where the `in'
|
|
in a case statement could have a semicolon added after it, if the
|
|
`case word' was on a previous line
|
|
|
|
support/config.guess
|
|
- support for newest versions of tandem non-stop kernel
|
|
|
|
lib/readline/display.c
|
|
- in compute_lcd_of_matches, explicitly cast `text' to `char *' before
|
|
passing it to rl_filename_dequoting_function
|
|
|
|
lib/readline/terminal.c
|
|
- bind the key sequence sent by the keypad `delete' key to delete-char
|
|
(same as ^D in emacs mode)
|
|
|
|
builtins/ulimit.def
|
|
- in print_all_limits, don't print anything if get_limit returns
|
|
-1/EINVAL, indicating that the kernel doesn't support that particular
|
|
limit
|
|
- add -i (max number of pending signals), -q (max size of posix msg
|
|
queues), -x (max number of file locks) for systems (Linux) that
|
|
support them
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- fix description of correspondence between FUNCNAME, BASH_LINENO,
|
|
and BASH_SOURCE indices in description of BASH_LINENO
|
|
|
|
9/18
|
|
----
|
|
lib/sh/shquote.c
|
|
- don't quote CTLESC and CTLNUL with CTLESC in sh_backslash_quote, as
|
|
long as the resultant string never gets sent to the word expansion
|
|
functions without going through the shell parser
|
|
|
|
externs.h
|
|
- add extern declarations for strnlen and strpbkrk from lib/sh
|
|
|
|
subst.[ch]
|
|
- changes to handle case where IFS consists of multibyte characters.
|
|
Changed: string_extract_verbatim, split_at_delims,
|
|
string_list_dollar_star, string_list_dollar_at, list_string,
|
|
get_word_from_string, setifs
|
|
|
|
9/19
|
|
----
|
|
mailcheck.c
|
|
- change file_mod_date_changed to reset the cached mail file data if
|
|
the file size drops to zero
|
|
|
|
lib/readline/complete.c
|
|
- change append_to_match so that a non-zero value for
|
|
rl_completion_suppress_append will cause no `/' to be appended to a
|
|
directory name
|
|
|
|
bashline.c
|
|
- experimental change to suppress appending a slash for a completed
|
|
filename that is found in PATH as well as a directory in the current
|
|
directory under certain circumstances: a single instance found in
|
|
$PATH when `.' is not in $PATH, and multiple instances found in the
|
|
$PATH, even when `.' is in the $PATH
|
|
|
|
9/24
|
|
----
|
|
command.h
|
|
- new word flag: W_ASSIGNRHS, means word is rhs of assignment statement
|
|
- new word flag: W_NOTILDE, means word is not to be tilde expanded
|
|
- new word flag (internal): W_ITILDE, means the next character is a
|
|
tilde that should be expanded
|
|
|
|
general.c
|
|
- new set of tilde suffixes for use when parsing the RHS of an
|
|
assignment statement and =~ should not be subject to tilde expansion
|
|
- if ASSIGN_P argument to bash_tilde_expand is 2, use tilde prefixes
|
|
for parsing RHS of assignment statement
|
|
|
|
general.[ch]
|
|
- new function bash_tilde_find_word, drop-in replacement for
|
|
tilde_find_word
|
|
|
|
subst.c
|
|
- call bash_tilde_expand with secord argument of 2 when expanding rhs
|
|
of an assignment statement, so tildes after second and subsequent
|
|
`=' in an assignment are not expanded
|
|
- new function, expand_string_assignment, to expand the rhs of an
|
|
assignment statement
|
|
- add `~' to EXP_CHAR, the characters that will cause the word
|
|
expansion functions to be called
|
|
- move tilde expansion into expand_word_internal instead of many
|
|
different calls to bash_tilde_expand scattered across different
|
|
functions. NOTE: This means that double quotes surrounding a
|
|
{paramOPword} expansion will cause tilde expansion to NOT be
|
|
performed on `word'. I think this is right, what POSIX specifies,
|
|
and consistent with the behavior of other characters in the rhs
|
|
|
|
execute_cmd.c
|
|
- take out calls to bash_tilde_expand before calling word expansion
|
|
functions
|
|
|
|
9/26
|
|
----
|
|
execute_cmd.c
|
|
- make sure to call UNBLOCK_CHILD before returning on a pipe creation
|
|
failure in execute_pipeline
|
|
|
|
9/27
|
|
----
|
|
variables.c
|
|
- change get_bash_command to deal with the_printed_command_except_trap
|
|
being NULL
|
|
|
|
execute_cmd.c
|
|
- fix execute_simple_command to deal with the_printed_command being
|
|
NULL when assigning to the_printed_command_except_trap -- fixes
|
|
seg fault in savestring()
|
|
|
|
parse.y
|
|
- change the parser so that the closing `)' in a compound variable
|
|
assignment delimits a token -- ksh93 does it this way
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- change description of tilde expansion to note that expansion is
|
|
attempted only after the first =~ in an assignment statement
|
|
|
|
builtins/declare.def
|
|
- when assigning to an array variable with declare -a x=(...), make
|
|
sure the last character in the rhs of the variable assignment is
|
|
`)', not just that it appears somewhere
|
|
|
|
9/28
|
|
----
|
|
command.h
|
|
- add a `W_NOEXPAND' flag to inhibit all expansion except quote removal
|
|
- add a `W_COMPASSIGN' flag to denote a word is a compound assignment
|
|
statement
|
|
|
|
parse.y
|
|
- set W_COMPASSIGN on words that appear to be compound assignments
|
|
|
|
subst.c
|
|
- pass W_NOXPAND and W_COMPASSIGN through end of expand_word_internal
|
|
|
|
subst.[ch]
|
|
- new function, expand_assignment_string_to_string, calls
|
|
expand_string_assignment and then string_list on the result
|
|
|
|
variables.c
|
|
- assign_in_env now calls expand_assignment_string_to_string
|
|
|
|
9/30
|
|
----
|
|
builtins/common.c
|
|
- change get_job_spec so the null job `%' once again means the current
|
|
job
|
|
|
|
10/1
|
|
----
|
|
subst.c
|
|
- do_assignment_internal now takes a WORD_DESC * as its first
|
|
argument, and uses its `word' member as the assignment string
|
|
- change expand_word_list_internal to call do_word_assignment instead
|
|
of do_assignment, passing it `word' instead of, e.g., `word->word'
|
|
- change extract_array_assignment_list to just return the passed
|
|
string minus a trailing `)' if the last character is a right
|
|
paren
|
|
- change do_assignment_internal to call extract_array_assignment_list
|
|
|
|
subst.[ch]
|
|
- change do_assignment and do_assignment_no_expand to take a `char *'
|
|
instead of `const char *' first argument; change extern prototypes
|
|
- new function, do_word_assignment, takes a WORD_DESC * and calls
|
|
do_assignment_internal on it; add extern declaration with prototype
|
|
|
|
general.h
|
|
- new typedef, sh_wassign_func_t, like sh_assign_func_t but takes a
|
|
WORD_DESC * as its first argument
|
|
|
|
variables.[ch]
|
|
- assign_in_env now takes a WORD_DESC * as its first argument
|
|
|
|
10/2
|
|
----
|
|
command.h
|
|
- new word flag, W_ASSNBLTIN, denotes that the word is a builtin
|
|
command (in a command position) that takes assignment statements
|
|
as arguments, like `declare'
|
|
- new word flags, W_ASSIGNARG, denotes that word is an assignment
|
|
statement given as argument to assignment builtin
|
|
|
|
execute_cmd.c
|
|
- set W_ASSNBLTIN flag in fix_assignment_words if necessary (if there
|
|
are any arguments that are assignment statements)
|
|
- set W_ASSIGNARG flag in fix_assignment_words if necessary
|
|
|
|
subst.c
|
|
- new function, do_compound_assignment, encapsulates the necessary
|
|
code to perform a compound array assignment (including creation of
|
|
local variables); called from do_assignment_internal
|
|
- to fix the double-expansion problem with compound array assignments
|
|
that are arguments to builtins like `declare', changed
|
|
shell_expand_word_list to treat those arguments like assignment
|
|
statements (with proper creation of local variables inside shell
|
|
functions) and pass the attribute-setting portion of the statement
|
|
onto the builtin. This is what ksh93 appears to do, from inspection
|
|
of the `ksh93 -x' output
|
|
|
|
execute_cmd.c
|
|
- fix execute_simple_command: in case of pipeline or async command,
|
|
when forking early, set `subshell_environment' so that it can contain
|
|
both SUBSHELL_PIPE and SUBSHELL_ASYNC -- the two should not be
|
|
mutually exclusive. Fixes bug reported by pierre.humblet@ieee.org
|
|
- remove references to last_pid, old_command_subst_pid; use NO_PID as
|
|
a sentinel value to decide whether or not a child process has been
|
|
created and needs to be waited for. Submitted by
|
|
pierre.humblet@ieee.org to fix recycling-pid problem on cygwin
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- fixed documentation of `@(pattern)' extended globbing operator --
|
|
it succeeds if the string matches one of the patterns, not exactly
|
|
one. This is what ksh93 does, too
|
|
|
|
lib/readline/complete.c
|
|
- fixed rl_menu_complete so that a negative argument cycles backwards
|
|
through the list
|
|
|
|
10/3
|
|
----
|
|
subst.c
|
|
- use W_COMPASSIGN flag in do_assignment_internal instead of deciding
|
|
lexically which assignments are compound array assignments
|
|
|
|
10/6
|
|
----
|
|
support/shobj-conf
|
|
- additions for System V.5 from Boyd Gerber <gerberb@zenez.com>
|
|
|
|
subst.c
|
|
- in command_substitute, if subshell_environment includes
|
|
SUBSHELL_ASYNC, call make_child with the `async_p' argument set to
|
|
non-zero. This keeps command substitutions for async commands or
|
|
pipelines from trying to give the terminal back to the shell's
|
|
pgrp. make sure to save and restore last_asynchronous_pid. Fix
|
|
suggested by <pierre.humblet@ieee.org>
|
|
|
|
10/7
|
|
----
|
|
config.h.in
|
|
- add a placeholder definition for WCONTINUED_BROKEN
|
|
|
|
10/9
|
|
----
|
|
aclocal.m4
|
|
- add BASH_CHECK_WCONTINUED, checks for glibc bug where WCONTINUED is
|
|
defined but rejected as invalid by waitpid(2)
|
|
|
|
configure.in
|
|
- add call to BASH_CHECK_WCONTINUED, defines WCONTINUED_BROKEN
|
|
|
|
redir.c
|
|
- experimental change to add_undo_redirect to save manipulations to
|
|
file descriptors >= SHELL_FD_BASE (10) on the list of redirections
|
|
to be undone even if `exec' causes the list to be discarded
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- note that redirections using file descriptors > 9 should be used
|
|
carefully, because they might conflict with file descriptors the
|
|
shell uses internally
|
|
|
|
10/11
|
|
-----
|
|
parse.y
|
|
- fix pipeline_command production to handle case where `pipeline'
|
|
as `argument' of `!' or `time' is null (e.g., a syntax error not
|
|
handled by the grammar)
|
|
|
|
10/13
|
|
-----
|
|
lib/readline/readline.c
|
|
- new internal variable, _rl_bind_stty_chars; if non-zero, bind the
|
|
terminal special characters to readline equivalents at startup
|
|
- change readline_default_bindings() and reset_default_bindings() to
|
|
understand _rl_bind_stty_chars
|
|
|
|
lib/readline/rlprivate.h
|
|
- new extern declaration for _rl_bind_stty_chars
|
|
|
|
lib/readline/rltty.c
|
|
- change rl_prep_terminal to add support for _rl_bind_stty_chars
|
|
|
|
10/15
|
|
-----
|
|
lib/readline/bind.c
|
|
- new bindable variable, `bind-tty-special-chars', bound to value of
|
|
_rl_bind_stty_chars
|
|
|
|
doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
|
|
- documented new readline variable `bind-tty-special-chars'
|
|
|
|
builtins/pushd.def
|
|
- make the first check for option `--' skip the rest of option
|
|
checking
|
|
|
|
10/16
|
|
-----
|
|
lib/readline/shell.c
|
|
- change sh_set_lines_and_columns to prefer setenv, which has
|
|
predictable memory allocation behavior, to putenv, which does not
|
|
|
|
10/19
|
|
-----
|
|
variables.c
|
|
- change push_exported_var so that a tempenv variable has to have the
|
|
export attribute set (which they all do -- something to look at) and
|
|
the `propagate' attribute set to be propagated down to the next
|
|
scope
|
|
|
|
execute_cmd.c
|
|
- change execute_builtin so that if CMD_COMMAND_BUILTIN is set in the
|
|
passed flags argument, call pop_scope with a value that says the
|
|
builtin is not special, since `command' means that preceding variable
|
|
assignments don't persist in the environment. Fixes problem with
|
|
variable assignments preceding command preceding special builtin
|
|
keeping those variable assignments around (when in posix mode)
|
|
|
|
10/20
|
|
-----
|
|
lib/sh/shquote.c
|
|
- new function, sh_mkdoublequoted, brackets a given string with
|
|
double quotes and returns a new string. Flags argument, if non-
|
|
zero, means to quote embedded double quotes with backslashes
|
|
|
|
externs.h
|
|
- new extern declaration for sh_mkdoublequoted
|
|
|
|
parse.y
|
|
- use sh_mkdoublequoted after calling localeexpand()
|
|
|
|
lib/sh/strtrans.c
|
|
- change ansicstr to understand that (flags & 4) != 0 means to remove
|
|
backslash from unrecognized escape sequences
|
|
|
|
general.c
|
|
- fix logic problem in assignment() that caused non-variable-starter
|
|
characters to be allowed, resulting in things like `1=xxx' creating
|
|
a variable `1' in the hash table
|
|
|
|
10/21
|
|
-----
|
|
bashline.c
|
|
- don't call programmable_completions with an assignment statement
|
|
argument
|
|
|
|
10/22
|
|
-----
|
|
lib/readline/rltty.c
|
|
- in prepare_terminal_settings, turn echoing on (readline_echoing_p)
|
|
if get_tty_settings fails because the input is not a terminal
|
|
|
|
10/24
|
|
-----
|
|
lib/readline/util.c
|
|
- include rlmbutil.h for multibyte definitions
|
|
- new function, _rl_walphabetic, wide char version of rl_alphabetic
|
|
|
|
lib/readline/mbutil.c
|
|
- new function, _rl_char_value(buf, ind), returns value of (possibly
|
|
multibyte) character at buf[ind]
|
|
|
|
lib/readline/rlmbutil.h
|
|
- extern defines for _rl_walphabetic and _rl_char_value for when
|
|
multibyte chars are not being used
|
|
- new wrapper definitions for _rl_find_next_mbchar (MB_NEXTCHAR) and
|
|
_rl_find_prev_mbchar (MB_PREVCHAR) that try to avoid unneeded
|
|
function calls
|
|
|
|
lib/readline/text.c
|
|
- fix rl_foward_word to work with multibyte characters (or in a
|
|
multibyte locale) using above utility functions
|
|
- fix rl_backward_word to work with multibyte characters (or in a
|
|
multibyte locale) using above utility functions
|
|
|
|
10/26
|
|
-----
|
|
parse.y
|
|
- fix parse_matched_pair so that it doesn't swallow \<newline> when
|
|
parsing a $'...' construct (call shell_getc with different arg)
|
|
|
|
10/28
|
|
-----
|
|
lib/glob/glob.c
|
|
- after some (compiled-in) threshold, glob_vector will stop using
|
|
alloca to allocate `struct globval's and will switch to using
|
|
malloc, with appropriate cleanup before returning
|
|
|
|
subst.c
|
|
- don't expand tildes after `=' in expand_word_internal, even if the
|
|
W_TILDEEXP flag is set, unless it's the first tilde in a word
|
|
marked W_ASSIGNMENT
|
|
|
|
10/31
|
|
-----
|
|
lib/readline/text.c
|
|
- make sure rl_point doesn't go below 0 in rl_delete_horizontal_space
|
|
(from SUSE, but not sent in)
|
|
|
|
shell.c
|
|
- make sure shell_is_restricted skips over a single leading `-' in
|
|
the shell name (from SUSE, but not sent in)
|
|
|
|
lib/readline/display.c
|
|
- disable `fast redisplay' at the end of the line if in a locale that
|
|
supports multibyte characters (from SUSE, but not sent in)
|
|
|
|
lib/readline/histexpand.c
|
|
- fix a problem with finding the delimiter of a `?' substring when
|
|
compiled for multibyte characters (from SUSE, but not sent in)
|
|
|
|
11/1
|
|
----
|
|
lib/readline/display.c
|
|
- correct some assignments to _rl_last_c_pos: when in a multibyte
|
|
locale, it's used as an absolute cursor position; when not using
|
|
multibyte characters, it's a buffer offset. I should have caught
|
|
this when the multibyte character support was donated
|
|
|
|
11/5
|
|
----
|
|
general.c
|
|
- change `assignment()' to accept `+=' assignment operator
|
|
|
|
arrayfunc.[ch]
|
|
- bind_array_variable and assign_array_element both take a new `flags'
|
|
argument
|
|
- assign_array_var_from_string, assign_array_from_string, and
|
|
assign_array_var_from_word_list now all take a new `flags' argument
|
|
- change assign_array_var_from_word_list to understand how to append
|
|
to an array variable
|
|
- change assign_array_var_from_string to understand how to append
|
|
to an array variable. It does not unset the previous value if
|
|
appending, allowing both old values to be changed and new ones to
|
|
be added
|
|
|
|
subst.h
|
|
- new flag #defines to use for evaluating assignment statements
|
|
|
|
{subst,variables}.c, builtins/{declare,read}.def
|
|
- change callers of assign_array_element and bind_array_variable
|
|
- change do_compound_assignment to understand assignment flags
|
|
- change do_assignment_internal to set assignment flags and pass them
|
|
to underlying functions
|
|
|
|
pcomplete.c,builtins/{declare,read}.def
|
|
- fix callers of assign_array_var_from_string, assign_array_var_from_word_list
|
|
|
|
variables.[ch]
|
|
- make_variable_value now takes a new `flags' argument
|
|
- make_variable_value now understands how to append to a particular
|
|
variable, using the old value
|
|
- bind_variable_value now takes a new `flags' argument
|
|
- change make_variable_value to understand ASS_APPEND flag
|
|
- bind_variable now takes a new `flags' argument
|
|
- bind_variable_internal now takes a new `flags' argument
|
|
|
|
arrayfunc.c
|
|
- change callers of make_variable_value to add flags arg
|
|
|
|
builtins/declare.def
|
|
- change callers of bind_variable_value to add flags arg
|
|
|
|
{execute_cmd,mailcheck,pcomplete,shell,subst,variables}.c,parse.y
|
|
builtins/{cd,command,declare,getopts,read,set,setattr}.def
|
|
- change callers of bind_variable to add flags arg
|
|
|
|
variables.c
|
|
- change callers of bind_variable_internal
|
|
- change bind_variable_internal to pass assignment flags on to
|
|
make_variable_value
|
|
- change assign_in_env to treat `var+=value' like `var=value'
|
|
|
|
arrayfunc.c
|
|
- break code that actually constructs the new value and assigns it
|
|
to a particular array index out into a new functions:
|
|
bind_array_var_internal. This fakes out make_variable_value by
|
|
passing a dummy SHELL_VAR * so it can do proper appending and other
|
|
+= processing
|
|
- changes to assign_array_var_from_string to accept and process as if
|
|
they were `standalone' assignment statements array assignment words
|
|
of the form [ind]+=val
|
|
|
|
11/7
|
|
----
|
|
builtins/declare.def
|
|
- added support for `declare [flags] var+=value'. `Flags' are applied
|
|
before the assignment is performed, which has implications for things
|
|
like `-i' -- if -i is supplied, arithmetic evaluation and increment
|
|
will be performed
|
|
|
|
builtins/setattr.def
|
|
- add support for `+=' assignment for rest of `assignment builtins':
|
|
export, readonly
|
|
|
|
11/12
|
|
-----
|
|
lib/readline/display.c
|
|
- make sure prompt_physical_chars and prompt_invis_chars_first_line
|
|
are reset to 0 if the prompt string passed to rl_expand_prompt is
|
|
NULL or empty
|
|
|
|
11/14
|
|
-----
|
|
{configure,config.h}.in
|
|
- check for `raise', define HAVE_RAISE if available
|
|
|
|
lib/intl/dcigettext.c
|
|
- make sure `raise' is defined if HAVE_RAISE is not before
|
|
eval-plurah.h is included
|
|
|
|
lib/malloc/trace.c
|
|
- put extern declaration for imalloc_fopen inside the MALLOC_TRACE
|
|
#ifdef
|
|
|
|
11/16
|
|
-----
|
|
lib/intl/Makefile.in
|
|
- make sure SHELL is defined to cpp
|
|
|
|
lib/intl/dcigettext.c
|
|
- make sure we use getcwd() even if HAVE_GETCWD is not defined after
|
|
including config.h; if SHELL is defined, #define HAVE_GETCWD
|
|
|
|
11/18
|
|
-----
|
|
trap.[ch]
|
|
- new function, int signal_in_progress(int sig), returns TRUE if the
|
|
trap handler for signal SIG is currently executing
|
|
|
|
11/19
|
|
-----
|
|
redir.c
|
|
- slightly change do_redirection_internal to set the close-on-exec
|
|
flag for file descriptors > 2 used to save file descriptors < 2
|
|
using explicit redirections (e.g., `exec 3>&1'). This keeps file
|
|
descriptors pointing to pipes from being left open but doesn't
|
|
change the shell's file descriptor semantics
|
|
|
|
11/20
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- correct some minor typos, forwarded from doko@debian.org
|
|
|
|
11/22
|
|
-----
|
|
doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
|
|
- documented detail that yank-last-arg and yank-nth-arg use the history
|
|
arg expansion code (and, as a result, are subject to restrictions
|
|
of the history-comment character)
|
|
|
|
11/23
|
|
-----
|
|
execute_cmd.c
|
|
- changes so that BASH_COMMAND preserves its value into a DEBUG trap:
|
|
for commands, arithmetic for command expressions, select commands,
|
|
case commands, (( commands, [[ commands, simple commands
|
|
|
|
11/24
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- changed description of `set' builtin slightly so that it is clear
|
|
that only variables are displayed in posix mode and that read-only
|
|
variables can't be reset by simply sourcing the output of `set'
|
|
|
|
lib/sh/strftime.c
|
|
- don't try to redefine `inline' if it's already defined
|
|
|
|
11/26
|
|
-----
|
|
execute_cmd.c
|
|
- fix execute_function to check funcname_a after function execution,
|
|
since FUNCNAME can be changed or unset within a function
|
|
|
|
11/27
|
|
-----
|
|
builtins/evalfile.c
|
|
- make same changes as 11/26, this time to _evalfile
|
|
|
|
execute_cmd.c
|
|
- change execute_function to run the return trap after a function
|
|
completes execution even if the shell is compiled without DEBUGGER
|
|
defined
|
|
|
|
trap.c
|
|
- change reset_or_restore_signal_handlers so that the RETURN trap is
|
|
not inherited by command substitution when DEBUGGER is not defined
|
|
|
|
11/30
|
|
-----
|
|
lib/readline/misc.c
|
|
- fix memory leaks in _rl_free_history_entry and rl_maybe_replace_line
|
|
caused by not freeing `timestamp' member of history entry
|
|
- make sure timestamp is initialized to NULL in rl_maybe_save_line
|
|
|
|
12/1
|
|
----
|
|
execute_cmd.c
|
|
- fix execute_function so a function calling `return' will run the
|
|
RETURN trap, if one's defined
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- fix description of RETURN trap in various places to indicate that it's
|
|
only inherited by shell functions if function tracing is on globally
|
|
or has been enabled for that function
|
|
- fix documentation to indicate that the DEBUG and RETURN traps are
|
|
inherited under the same conditions
|
|
|
|
execute_cmd.c
|
|
- a function does not inherit the RETURN trap if a DEBUG trap is
|
|
currently running
|
|
|
|
12/2
|
|
----
|
|
lib/glob/xmbsrtowcs.c
|
|
- change xmbsrtowcs to handle the one case where malloc can fail
|
|
(though it should not matter) -- don't try to free a null pointer
|
|
|
|
12/9
|
|
----
|
|
subst.c
|
|
- fix get_var_and_type to handle var[@], where `var' is a scalar
|
|
variable, identically to var -- all calling expansions can now
|
|
handle var[@] like var. Bug reported by agriffis@gentoo.org
|
|
|
|
12/10
|
|
-----
|
|
lib/readline/bind.c
|
|
- make new-style "\M-x" keybindings obey `convert-meta' settings
|
|
(bug reported by twaugh@redhat.com)
|
|
|
|
12/14
|
|
-----
|
|
builtins/set.def
|
|
- added description of `-' option to help text
|
|
|
|
builtins/shopt.def
|
|
- fix bug that caused `gnu_errfmt' to not be compiled in unless
|
|
READLINE is defined
|
|
|
|
12/16
|
|
-----
|
|
subst.c
|
|
- fixed a typo in string_extract_verbatim in first call to MBLEN
|
|
(used `slen - 1' instead of `slen - i')
|
|
|
|
12/17
|
|
-----
|
|
subst.c
|
|
- avoid some calls to strlen if the value is only being used for
|
|
ADVANCE_CHAR and MB_CUR_MAX == 1 (since ADVANCE_CHAR doesn't need
|
|
it unless multibyte characters are possible)
|
|
- change string_extract_verbatim so it takes the length of the string
|
|
as a parameter, so we don't have to recompute the length of the same
|
|
string over and over again when doing word splitting (that kills if
|
|
it's a long string)
|
|
|
|
12/18
|
|
-----
|
|
subst.c
|
|
- in string_list_dollar_star, make sure to null-terminate the
|
|
separator if the character is longer than one byte
|
|
|
|
12/22
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- changed text in quoting section explaining that double quotes do
|
|
not prevent history expansion from taking place, and that backslashes
|
|
escaping ! are not removed
|
|
|
|
12/28
|
|
-----
|
|
shell.c
|
|
- set gnu_error_format to 1 if running under emacs. This should allow
|
|
the emacs `next-error' stuff to work, at least for interactive shells
|
|
|
|
parse.y
|
|
- change yy_stream_get to set interrupt_immediately before calling
|
|
getc_with_restart when the shell is interactive. This avoids the
|
|
synchronization problem caused by the call to QUIT in read_a_line,
|
|
which results in the first character after a SIGINT/^C to be
|
|
dropped
|
|
|
|
12/30
|
|
-----
|
|
builtins/mkbuiltins.c
|
|
- changes to write long documentation to arrays as a single string by
|
|
default, rather than an array of strings -- enabled by default
|
|
- new option, -S, to restore old behavior of writing multiple strings
|
|
for long documentation
|
|
- changes to avoid filenames written when the separate-filenames option
|
|
(-H) has been supplied being run through gettext
|
|
|
|
configure.in
|
|
- new cofiguration option, --enable-single-help-strings (on by default),
|
|
causes help text to be stored as a single string (or smaller set than
|
|
one string per line)
|
|
|
|
builtins/Makefile.in
|
|
- pass `-S' to mkbuiltins if single-help-strings is turned off
|
|
|
|
doc/bashref.texi
|
|
- documented new `single-help-strings' configure option
|
|
|
|
1/3/2005
|
|
--------
|
|
jobs.c
|
|
- make wait_for return a non-zero status if the job or processed
|
|
waited for is suspended. Returns 128 + stop signal. This fixes
|
|
the problem with `echo one && sleep 5 && echo two' displaying
|
|
`two' after the sleep is suspended
|
|
|
|
1/5
|
|
---
|
|
print_cmd.c
|
|
- change indirection_level_string so the code duplicates the first
|
|
character of $PS4 to indicate the indirection level, rather than
|
|
the first byte
|
|
|
|
1/8
|
|
---
|
|
variables.c
|
|
- new special variable hook function for COMP_WORDBREAKS; sets
|
|
rl_completer_word_break_characters back to NULL when the variable
|
|
is unset
|
|
- change bind_variable_value to understand dynamic variables with
|
|
assign_function set, and handle them correctly. If the variable is
|
|
being appended to, use make_variable_value to create the new
|
|
value
|
|
- change bind_variable_internal to understand dynamic variables with
|
|
assign_function set, and handle them the same way
|
|
- RANDOM and LINENO now get the integer attribute, so appending works
|
|
as expected
|
|
- ditto for HISTCMD, MAILCHECK, OPTIND
|
|
|
|
lib/readline/display.c
|
|
- change _rl_make_prompt_for_search to set prompt_physical_chars
|
|
appropriately
|
|
- rl_save_prompt and rl_restore_prompt save and restore
|
|
prompt_prefix_length
|
|
- change redraw_prompt to use rl_save_prompt and rl_restore_prompt
|
|
- change rl_restore_prompt to set the `save' variables back to
|
|
NULL/0 so code can check whether or not the prompt has been saved
|
|
- change rl_message and rl_clear_message to save and restore the
|
|
prompt if the caller has not already done it (using a simple
|
|
semaphore-like variable)
|
|
- change rl_message to call expand_prompt, so that local_prompt and
|
|
local_prompt prefix are set before calling the redisplay functions,
|
|
in case the prompt is longer than a screenwidth (fixes bug
|
|
reported to debian by epl@unimelb.edu.au)
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- make sure to note that rl_save_prompt should be called before
|
|
rl_message, and rl_restore_prompt before rl_clear_message
|
|
|
|
pcomplete.c
|
|
- make sure to save and restore the parser state around the call to
|
|
execute_shell_function in gen_shell_function_matches. Fixes bug
|
|
reported by a050106.1.keeLae3x@captaincrumb.com (cute)
|
|
|
|
lib/readline/readline.c
|
|
- fix _rl_dispatch_subseq in the case where we're recursing back up
|
|
the chain (r == -2) and we encounter a key shadowed by a keymap,
|
|
but originally bound to self-insert. Calling rl_dispatch with
|
|
ANYOTHERKEY as the first argument will call rl_insert, but with
|
|
ANYOTHERKEY (256) as the char to insert. Use the shadow keymap
|
|
and set things up to dispatch to rl_insert with the shadowed key
|
|
as the argument. Fixes the bug reported by Thomas Glanzmann
|
|
(sithglan@stud.uni-erlangen.de)
|
|
|
|
1/13
|
|
----
|
|
command.h
|
|
- new word flag: W_HASQUOTEDNULL
|
|
|
|
make_cmd.c
|
|
- new function to allocate a WORD_DESC * without doing anything with a
|
|
containing string: alloc_word_desc
|
|
|
|
make_cmd.h
|
|
- extern declaration for alloc_word_desc
|
|
|
|
dispose_cmd.c
|
|
- new function to just free a WORD_DESC * without freeing the contained
|
|
string: dispose_word_desc
|
|
|
|
dispose_cmd.h
|
|
- extern declaration for dispose_word_desc
|
|
|
|
subst.c
|
|
- change some places to use alloc_word_desc
|
|
- make same changes to word_list_quote_removal as were made to
|
|
word_list_split
|
|
- set W_HASQUOTEDNULL when a word is created with w->word[0] ==
|
|
CTLNUL and w->word[1] == '\0'
|
|
|
|
subst.c
|
|
- parameter_brace_expand_word now returns a WORD_DESC * -- changed
|
|
callers to understand
|
|
- parameter_brace_expand_indir now returns a WORD_DESC * -- changed
|
|
callers to understand
|
|
- parameter_brace_expand_rhs now returns a WORD_DESC * -- changed
|
|
callers to understand
|
|
- remove W_HASQUOTEDNULL from a word's flags when remove_quoted_nulls
|
|
is called on the word's enclosed string
|
|
|
|
1/15
|
|
----
|
|
subst.c
|
|
- param_expand now returns a WORD_DESC * -- changed callers to
|
|
understand
|
|
- parameter_brace_expand now returns a WORD_DESC * -- changed
|
|
callers to understand
|
|
- in expand_word_internal, only call remove_quoted_nulls after a word
|
|
is returned with W_HASQUOTEDNULL
|
|
- changes to pass W_HASQUOTEDNULL flag out of expand_word_internal;
|
|
changed callers to call remove_quoted_nulls only if return value has
|
|
W_HASQUOTEDNULL set. This is a mostly-complete fix for the
|
|
long-standing CTLNUL confusion between a quoted null expansion and
|
|
the expansion of a variable with a literal '\177' in its value
|
|
- change string_list_dollar_at to compute the separator character the
|
|
same way as string_list_dollar_star: using the already-computed
|
|
values generated in setifs()
|
|
- when expanding unquoted $*, if $IFS is empty, check whether or not
|
|
we're eventually going to split the results (e.g., on the rhs of an
|
|
assignment statement) and concatenate the positional parameters as
|
|
if the expansion were within double quotes if we're not going to
|
|
split
|
|
|
|
tests/iquote.tests
|
|
- test cases based on old bug reports about the quoted-null vs. 0177
|
|
problem the recent code fixes
|
|
|
|
1/16
|
|
----
|
|
dispose_cmd.c
|
|
- set w->word to 0 before putting a WORD_DESC * back in the cache in
|
|
dispose_word_desc; changed callers to delete those assignments
|
|
|
|
variables.c
|
|
- change assign_random and get_random_value so that the random number
|
|
generator only gets re-seeded once in a subshell environment, and
|
|
assigning a value to RANDOM counts as seeding the generator. This
|
|
makes the sequences a little more predictable
|
|
|
|
1/20
|
|
----
|
|
lib/readline/history.c
|
|
- fix replace_history_entry, remove_history to return NULL if
|
|
passed index is < 0
|
|
|
|
1/22
|
|
----
|
|
lib/sh/netconn.c
|
|
- fix isnetconn() to understand that getpeername can return ENOTCONN
|
|
to indicate that an fd is not a socket
|
|
|
|
configure.in
|
|
- set BUILD_DIR to contain backslashes to escape any spaces in the
|
|
directory name -- this is what make will accept in targets and
|
|
prerequisites, so it's better than trying to use double quotes
|
|
- set SIZE to the appropriate value if some cross-compiling tool
|
|
chain is being used; `size' by default (can be overridden by
|
|
SIZE environment variable)
|
|
|
|
Makefile.in
|
|
- use $(SIZE) instead of size; set SIZE from configure
|
|
|
|
1/31
|
|
----
|
|
arrayfunc.c
|
|
- in array_value_internal, return NULL right away if the variable's
|
|
value is NULL, instead of passing a null string to add_string_to_list
|
|
|
|
2/1
|
|
---
|
|
jobs.h
|
|
- new struct to hold stats and counters for child processes and jobs
|
|
- change some uses of global and static variables to use members of
|
|
new struct (struct jobstats)
|
|
|
|
2/2
|
|
---
|
|
|
|
jobs.[ch]
|
|
- change PRUNNING to PALIVE
|
|
- new define INVALID_JOB
|
|
- new macro get_job_by_jid(ind), currently expands to jobs[ind]
|
|
- new define J_JOBSTATE, operates on a JOB * like JOBSTATE operates on
|
|
a job index
|
|
- new function, reset_job_indices, called from delete_job if
|
|
js.j_lastj or js.j_firstj are removed
|
|
- change various functions to keep counters and stats in struct jobstats
|
|
|
|
pcomplete.c, builtins/common.c, builtins/{exit,fg_bg,jobs,kill,wait}.def
|
|
- change global variables (e.g., job_slots) to struct members
|
|
(e.g., js.j_jobslots)
|
|
- use INVALID_JOB define where appropriate
|
|
- use get_job_by_jid and J_JOBSTATE where appropriate
|
|
|
|
trap.c
|
|
- change reset_or_restore_signal_handler to not free the exit trap
|
|
string if the function pointer is reset_signal, which is used when
|
|
the trap strings shouldn't be freed, like in command substitution
|
|
|
|
2/4
|
|
---
|
|
jobs.c
|
|
- new function, realloc_jobs_list, copies jobs array to newly-allocated
|
|
memory shrinking (or growing) size to have next multiple of JOB_SLOTS
|
|
greater than js.j_njobs
|
|
- change compact_jobs_list to just call reap_dead_jobs and then
|
|
realloc_jobs_list, simplifying it considerably
|
|
- discard_pipeline now returns `int': the number of processes freed
|
|
- slightly changed the logic deciding whether or not to call
|
|
compact_jobs_list: now non-interactive shells will compact the
|
|
list if it reaches MAX_JOBS_IN_ARRAY in size
|
|
|
|
parse.y
|
|
- move test for backslash-newline after pop_string in shell_getc so
|
|
that things like
|
|
|
|
((echo 5) \
|
|
(echo 6))
|
|
|
|
work right
|
|
|
|
2/8
|
|
---
|
|
jobs.h
|
|
- new structs for holding status of exited background processes, as
|
|
POSIX specifies
|
|
- new job flag: J_ASYNC
|
|
|
|
jobs.c
|
|
- new functions to manipulate struct holding status of exited
|
|
background processes
|
|
- new members in struct jobstats to hold pointer to last created job
|
|
and last created asynchronous job
|
|
- initialize js.c_childmax in initialize_job_control
|
|
- if the `async' arg to stop_pipeline is non-null, set the J_ASYNC
|
|
flag in the job struct
|
|
- set js.j_last_made_job and js.j_last_asynchronous_job in
|
|
stop_pipeline
|
|
- new function: find_last_proc, returns the PROCESS * to the last proc
|
|
in a job's pipeline
|
|
- changed find_last_pid to call find_last_proc
|
|
- change delete_job to call bgp_add on the last proc of the job being
|
|
deleted
|
|
- change delete_all_jobs and wait_for_background_pids to call bgp_clear
|
|
|
|
2/9
|
|
---
|
|
jobs.c
|
|
- change wait_for_single_pid to look for pid in bgpids.list (using
|
|
bgp_search()) if find_pipeline returns NULL
|
|
|
|
2/10
|
|
----
|
|
support/shobj-conf
|
|
- change the solaris-gcc stanza so that it auto-selects the appropriate
|
|
options for ld depending on which `ld' gcc says it's going to run
|
|
|
|
2/11
|
|
----
|
|
jobs.h
|
|
- add support for PS_RECYCLED as a process state, add PRECYCLED macro
|
|
to test it. Change PALIVE and PRUNNING macros to not count processes
|
|
in PS_RECYCLED state
|
|
|
|
execute_cmd.c
|
|
- restore use of last_pid as sentinel value; use NO_PID as sentinel
|
|
only if RECYCLES_PIDS is defined
|
|
|
|
jobs.c
|
|
- change find_job to return a pointer to the PROCESS the desired pid
|
|
belongs to, analogous to find_pipeline returning pointer to JOB
|
|
- change find_job callers to add extra argument
|
|
- change running_only arguments to find_pipeline and find_job to
|
|
alive_only, since we don't want recycled pids returned here and it
|
|
better describes the result
|
|
- new function find_process, calls find_pipeline and searches the
|
|
returned pipeline for the PROCESS * describing the desired pid
|
|
- in make_child, if fork() returns the same pid as the value of
|
|
last_asynchronous_pid when RECYCLES_PIDS is defined, avoid pid
|
|
aliasing by resetting last_asynchronous_pid to 1
|
|
- use PRUNNING instead of child->running, since we, for the most
|
|
part, don't want to consider recycled pids (e.g., in make_child())
|
|
- call find_process instead of find_pipeline in waitchld()
|
|
- use PEXITED(p) instead of testing p->running == PS_DONE
|
|
- in make_child, call bgp_delete to remove a just-created pid from the
|
|
last of saved pid statuses
|
|
- in add_process, check whether or not pid being added is already in
|
|
the_pipeline or the jobs list (using find_process) and mark it as
|
|
recycled if so
|
|
- This set of fixes mostly came from Pierre Humblet
|
|
<pierre.humblet@ieee.org> to fix pid aliasing and reuse problems on
|
|
cygwin
|
|
|
|
variables.c
|
|
- set $_ from the environment if we get it there, set to $0 by
|
|
default if not in env
|
|
|
|
doc/{bashref.texi,bash.1}
|
|
- a couple of clarifying changes to the description of $_ based on
|
|
comments from Glenn Morris <gmorris+mail@ast.cam.ac.uk>
|
|
|
|
2/15
|
|
----
|
|
shell.c
|
|
- use strstr instead of strmatch when checking whether $EMACS contains
|
|
`term' -- simpler and faster
|
|
|
|
2/18
|
|
----
|
|
builtins/cd.def
|
|
- implement posix requirement that `pwd -P' set $PWD to a directory
|
|
name containing no symlinks
|
|
- add new function, setpwd(), just sets (and changes exported value)
|
|
of PWD
|
|
|
|
doc/bashref.texi
|
|
- add note to posix mode section about pwd -P setting $PWD
|
|
|
|
doc{bash.1,bashref.texi}
|
|
- added note that BASH_ARGC and BASH_ARGV are only set in extended
|
|
debug mode
|
|
- expand description of extdebug option to include everything changed
|
|
by extended debug mode
|
|
|
|
2/19
|
|
----
|
|
pathexp.h
|
|
- new flag macro, FNMATCH_IGNCASE, evaluates to FNM_CASEFOLD if the
|
|
match_ignore_case variable is non-zero
|
|
|
|
execute_cmd.c
|
|
- new variable, match_ignore_case
|
|
- change call to strmatch() in execute_case_command so it includes
|
|
FNMATCH_IGNCASE
|
|
|
|
test.c
|
|
- change call to strmatch() in patcomp() so that pattern matching
|
|
calls for [[ ... ]] obey the match_ignore_case variable
|
|
|
|
lib/sh/shmatch.c
|
|
- if match_ignore_case is set, enable REG_ICASE in the regexp match
|
|
flags
|
|
|
|
builtins/shopt.def
|
|
- new settable option, `nocasematch', controls the match_ignore_case
|
|
variable. Currently alters pattern matching for case and [[ ... ]]
|
|
commands (==, !=, and =~ operators)
|
|
|
|
doc/{bashref.texi,bash.1}
|
|
- updated descriptions of [[ and case to include reference to
|
|
nocasematch option
|
|
|
|
2/22
|
|
----
|
|
builtins/mkbuiltins.c
|
|
- add `times' to the list of posix special builtins
|
|
|
|
2/23
|
|
----
|
|
builtins/cd.def
|
|
- posix mode no longer turns on effect of -P option on $PWD if a
|
|
directory is chosen from CDPATH
|
|
|
|
doc/bashref.texi
|
|
- clarified that in posix mode, reserved words are not alias expanded
|
|
only in a reserved word context
|
|
- removed item about cd, $CDPATH, and -P from posix mode section
|
|
|
|
2/24
|
|
----
|
|
builtins/reserved.def
|
|
- minor cleanups to the description of `if'
|
|
|
|
3/2
|
|
---
|
|
subst.c
|
|
- change list_string and get_word_from_string to explicitly treat an
|
|
IFS character that is not space, tab, or newline *and any adjacent
|
|
IFS white space* as a single delimiter, as SUSv3/XPG6 says
|
|
|
|
builtins/read.def
|
|
- check whether or not the number of fields is exactly the same as
|
|
the number of variables instead of just assigning the rest of the
|
|
line (minus any trailing IFS white space) to the last variable.
|
|
This parses a field and checks whether or not it consumes all of
|
|
the input (including any trailing field delimiters), falling back
|
|
to the previous behavior if it does not. This is what POSIX.2
|
|
specifies, I believe (and the consensus of the austin-group list).
|
|
This requires a few tests in read.tests to be changed: backslashes
|
|
escaping IFS whitespace characters at the end of input cause the
|
|
whitespace characters to be preserved in the value assigned to the
|
|
variable, and the trailing non-whitespace field delimiter issue
|
|
|
|
3/7
|
|
---
|
|
configure.in
|
|
- add -D_POSIX_SOURCE to the LOCAL_CFLAGS for Interix
|
|
|
|
3/8
|
|
---
|
|
bashline.c
|
|
- make bash_directory_expansion a void function, since it doesn't have
|
|
any return value
|
|
|
|
3/9
|
|
---
|
|
builtins/read.def
|
|
- when testing for a pipe, use `fd' instead of hard-coding 0, since we
|
|
can read from other file descriptors now
|
|
|
|
lib/sh/zread.c
|
|
- in zsyncfd, only set lind and lused to 0 if the lseek succeeds.
|
|
If the lseek fails, we might steal input from other programs, but
|
|
a failed lseek won't cause us to erroneously discard input
|
|
|
|
3/11
|
|
----
|
|
builtins/evalstring.c
|
|
- don't allow parse_and_execute to short-circuit and call exec() if
|
|
the command's return value is being inverted
|
|
|
|
3/15
|
|
----
|
|
builtins/printf.def
|
|
- new macro PC to call putchar and increment number of chars printed -
|
|
fixes bug in computation of value for %n format char
|
|
- `tw' is now a global var so printstr can modify it using PC()
|
|
- convert PF macro to use asprintf into a local buffer
|
|
Preparation for printf -v var
|
|
- add code to add the text printed to a `variable buffer' if -v option
|
|
supplied. The buffer grows as needed
|
|
- printf now takes a `-v var' option to put the output into the variable
|
|
VAR rather than sending it to stdout. It does not:
|
|
print partial output on error (e.g., format string error)
|
|
handle NULs in the variable value, as usual
|
|
|
|
3/16
|
|
----
|
|
parse.y
|
|
- fix bug in prompt string decoding that caused a core dump when PS1
|
|
contained \W and PWD was unset (null pointer deref)
|
|
|
|
builtins/printf.def
|
|
- changed -v var behavior so it stores partial output into the named
|
|
variable upon an error
|
|
|
|
3/24
|
|
----
|
|
lib/readline/bind.c
|
|
- bool_to_int now takes a `const char *' argument
|
|
|
|
support/{printenv,recho,zecho}.c
|
|
- include config.h
|
|
- include "bashansi.h" for appropriate extern function declarations
|
|
|
|
configure.in
|
|
- on MacOS X 10.4, compensate for loader not allowing static library
|
|
to override existing system dynamic library when compiling -dynamic
|
|
(affects readline and history libraries); so use absolute pathname
|
|
instead of -lreadline as library name
|
|
|
|
lib/glob/{glob,sm_loop,smatch}.c
|
|
- make sure to cast arguments to (char *) or (unsigned char *) as
|
|
appropriate to avoid gcc4 warnings
|
|
|
|
lib/glob/smatch.c
|
|
- collsym (single-byte version) now takes a (CHAR *) first argument to
|
|
match callers; cast argument to strncmp appropriately
|
|
|
|
lib/sh/snprintf.c
|
|
- fix ldfallback and dfallback to handle width and precision specs in
|
|
the format passed to sprintf()
|
|
- fix STAR_ARGS macro to deal with negative field widths and precisions
|
|
|
|
3/25
|
|
----
|
|
builtins/printf.def
|
|
- since a negative precision in a "x.x[fFgGeE]" format specifier should
|
|
be allowed but treated as if the precision were missing, let it
|
|
through
|
|
|
|
lib/sh/snprintf.c
|
|
- fix * code to deal with a negative precision by treating it as if
|
|
the `.' and any digit string in the precision had not been specified
|
|
- fix format parsing code to deal with a negative inline precision,
|
|
e.g., "%4.-4f" by treating it as if the `'. and any digit string in
|
|
the precision had not been specified
|
|
- a `+' in a format specifier should only act as a flag if it comes
|
|
before a `.' (otherwise it is ignored)
|
|
|
|
lib/readline/vi_mode.c
|
|
- new function, rl_vi_rubout, to rl_rubout as rl_vi_delete is to
|
|
rl_delete; saves deleted text for possible reinsertion as with any
|
|
vi-mode `text modification' command (fixes problem with `X' reported
|
|
by beat.wieland@gmx.ch)
|
|
|
|
lib/readline/vi_keymap.c
|
|
- bind `X' in vi command mode to rl_vi_rubout
|
|
|
|
lib/readline/funmap.c
|
|
- add a bindable `vi-rubout' command, runs rl_vi_rubout
|
|
|
|
lib/readline/text.c
|
|
- rewrote internals of _rl_rubout_char to make structure cleaner
|
|
|
|
lib/readline/{complete,text}.c
|
|
- changed code to remove #ifdef HANDLE_MULTIBYTE where possible
|
|
|
|
3/28
|
|
----
|
|
lib/readline/examples/rl.c
|
|
- include <sys/stat.h> instead of posixstat.h if READLINE_LIBRARY not
|
|
defined
|
|
|
|
subst.c
|
|
- fix mbstrlen to treat invalid multibyte sequences as sequences of
|
|
single-byte characters
|
|
|
|
4/8
|
|
---
|
|
configure.in
|
|
- default SIZE to `:' if cross-compiling and an appropriate size for
|
|
the target is not found
|
|
|
|
4/11
|
|
----
|
|
subst.c
|
|
- change match_upattern and match_wpattern to check whether or not the
|
|
supplied pattern matches anywhere in the supplied string, prefixing
|
|
and appending the pattern with `*' if necessary. If it doesn't we
|
|
can short-circuit immediately rather than waste time doing up to
|
|
N-1 unsuccessful calls to strmatch/wcsmatch (which kills for long
|
|
strings, even if the pattern is short)
|
|
|
|
4/12
|
|
----
|
|
configure.in
|
|
- make sure the special case for MacOS X 10.4 only kicks in if the
|
|
`--with-installed-readline' option isn't supplied
|
|
|
|
lib/readline/{callback,readline,signals}.c
|
|
- make sure rl_prep_term_function and rl_deprep_term_function aren't
|
|
dereferenced if NULL (as the documentation says)
|
|
|
|
builtins/mkbuiltins.c
|
|
- don't bother with the special HAVE_BCOPY code; just use straight
|
|
assignments
|
|
|
|
builtins/ulimit.def
|
|
- use _POSIX_PIPE_BUF in pipesize() if it's defined and PIPE_BUF is
|
|
not
|
|
|
|
4/13
|
|
----
|
|
execute_cmd.c
|
|
- add cm_function_def to the list of control structures for which
|
|
child processes are forked when pipes come in or out
|
|
|
|
4/14
|
|
----
|
|
builtins/read.def
|
|
- make sure the ^As added for internal quoting are not counted as
|
|
characters read when -n is supplied
|
|
|
|
4/20
|
|
----
|
|
redir.c
|
|
- fix redir_open so that the repeat open on failure that AFS support
|
|
adds restores the correct value of errno for any error message
|
|
|
|
4/26
|
|
----
|
|
|
|
Makefile.in
|
|
- make sure mksignames and mksyntax are invoked with the $(EXEEXT)
|
|
extension
|
|
|
|
4/28
|
|
----
|
|
lib/readline/readline.h
|
|
- new state variable: RL_STATE_CALLBACK, means readline is using the
|
|
callback interface
|
|
|
|
lib/readline/callback.c
|
|
- set RL_STATE_CALLBACK in rl_callback_handler_install, unset in
|
|
rl_callback_handler_remove
|
|
|
|
4/29
|
|
----
|
|
config-top.h
|
|
- DONT_REPORT_SIGPIPE is now on by default, since it apparently
|
|
interferes with scripts
|
|
|
|
configure.in
|
|
- arrange things so PGRP_PIPE is defined on Linux-2.4+ and version 3
|
|
kernels (ones that apparently schedule children to run before their
|
|
parent)
|
|
|
|
4/30
|
|
----
|
|
builtins/caller.def
|
|
- add call to no_options, so it can handle `--' option
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- note explicitly that test, :, true, and false don't understand --
|
|
as meaning the end of options
|
|
|
|
5/7
|
|
---
|
|
support/shobj-conf
|
|
- darwin 8 needs the same LDFLAGS setting as darwin 7
|
|
|
|
parse.y
|
|
- in save_parser_state, make sure we cast the return value from
|
|
xmalloc() to the right type
|
|
- remove casts to (char *) in calls to yyerror()
|
|
|
|
lib/readline/signals.c
|
|
- make SIGQUIT and SIGALRM code conditional on their definition
|
|
- use raise() to send a signal if we don't have kill()
|
|
|
|
lib/readline/display.c
|
|
- some MS-DOS and MINGW changes from the cygwin and mingw folks
|
|
|
|
config.h.in
|
|
- add HAVE_PWD_H for <pwd.h>
|
|
- add HAVE_FCNTL, HAVE_KILL for respective system calls
|
|
- add HAVE_GETPW{ENT,NAM,UID} for passwd functions
|
|
|
|
configure.in
|
|
- add check for <pwd.h>
|
|
- add checks for fcntl, kill system calls
|
|
- add checks for getpw{ent,nam,uid} C library functions
|
|
- pass a flag indicating we're cross compiling through to
|
|
CFLAGS_FOR_BUILD in Makefile.in
|
|
|
|
lib/readline/complete.c
|
|
- guard inclusion of <pwd.h> with HAVE_PWD_H
|
|
- don't provide a missing declaration for getpwent if we don't have it
|
|
- guard calls to {get,end}pwent with HAVE_GETPWENT
|
|
|
|
lib/readline/shell.c
|
|
- guard inclusion of <pwd.h> with HAVE_PWD_H
|
|
- guard inclusion of <fcntl.h> with HAVE_FCNTL_H
|
|
- don't provide a missing declaration for getpwuid if we don't have it
|
|
- guard calls to getpwuid with HAVE_GETPWUID
|
|
- don't bother with body of sh_unset_nodelay_mode if we don't have
|
|
fcntl
|
|
|
|
lib/tilde/tilde.c
|
|
- guard inclusion of <pwd.h> with HAVE_PWD_H
|
|
- guard calls to getpw{nam,uid} with HAVE_GETPW{NAM,UID}
|
|
- guard calls to {get,end}pwent with HAVE_GETPWENT
|
|
|
|
Makefile.in,builtins/Makefile.in
|
|
- @CROSS_COMPILE@ is substituted into CFLAGS_FOR_BUILD (equal to
|
|
-DCROSS_COMPILING if bash is being cross-compiled)
|
|
|
|
5/9
|
|
---
|
|
aclocal.m4
|
|
- print version as `0.0' in RL_LIB_READLINE_VERSION if the
|
|
`rl_gnu_readline_p' variable isn't 1 (accept no imitations)
|
|
|
|
5/11
|
|
----
|
|
lib/readline/rlprivate.h
|
|
- definition of a readline `search context', to be use for incremental
|
|
search initially and other types of search later. Original from
|
|
Bob Rossi as part of work on incremental searching problems when
|
|
using callback interface
|
|
|
|
lib/readline/isearch.c
|
|
- functions to allocate and free search contexts
|
|
- function to take a search context and a character just read and
|
|
`dispatch' on it: change search parameters, add to search string,
|
|
search further, etc.
|
|
- isearch is now completely context-driven: a search context is
|
|
allocated and passed to the rest of the functions
|
|
|
|
5/12
|
|
----
|
|
lib/readline/isearch.c
|
|
- an additional `isearch cleanup' function that can be called from
|
|
the callback interface functions when the search is to be terminated
|
|
- an additional `isearch callback' function that can be called from
|
|
rl_callback_read_char when input is available
|
|
- short-circuit from rl_search_history after initialization if
|
|
the callback interface is being used
|
|
|
|
lib/readline/callback.c
|
|
- in rl_callback_read_char(), if RL_STATE_ISEARCH is set, call
|
|
_rl_isearch_callback to read the character and dispatch on it.
|
|
If RL_STATE_ISEARCH is unset when that call returns, and there is
|
|
input pending, call rl_callback_read_char() again so we don't
|
|
have to wait for new input to pick it up
|
|
|
|
support/shobj-conf,configure.in
|
|
- add support for dragonfly bsd, the same as freebsd
|
|
|
|
5/13-5/15
|
|
---------
|
|
lib/readline/callback.c
|
|
- support for readline functions to `register' a function that will
|
|
be called when more input is available, with a generic data
|
|
structure to encapsulate the arguments and parameters. Primarily
|
|
intended for functions that read a single additional character,
|
|
like quoted-insert
|
|
- support for callback code reading numeric arguments in a loop,
|
|
using readline state and an auxiliary variable
|
|
- support for callback code performing non-incremental searches using
|
|
the same search context struct as the isearch code
|
|
|
|
lib/readline/{callback,display}.c
|
|
- if a callback function sets `_rl_redisplay_wanted', the redisplay
|
|
function will be called as soon as it returns
|
|
|
|
lib/readline/input.c
|
|
- changes to _rl_read_mbchar to handle reading the null multibyte
|
|
character and translating it into '\0'
|
|
|
|
lib/readline/misc.c
|
|
- break rl_digit_loop() into component functions that can be called
|
|
individually from the callback code more easily
|
|
- share some of the functions with rl_digit_loop1() in vi_mode.c
|
|
|
|
lib/readline/readline.h
|
|
- change the version #defines to reflect readline 5.1
|
|
|
|
lib/readline/search.c
|
|
- break code into smaller functions that can be composed to work with
|
|
the callback code more easily
|
|
|
|
lib/readline/text.c
|
|
- in rl_quoted_insert(), don't mess around with the tty signals if
|
|
running in `callback mode'
|
|
|
|
lib/readline/vi_mode.c
|
|
- changed set-mark, goto-mark, change-char, and char-search to work
|
|
when called by callback functions
|
|
|
|
5/17
|
|
----
|
|
|
|
lib/readline/rlprivate.h
|
|
- new struct declaration for a `reading key sequence' context
|
|
|
|
lib/readline/readline.c
|
|
- new variable, _rl_dispatching_keymap, keeps track of which keymap
|
|
we are currently searching
|
|
- functions to allocate and deallocate contexts for reading multi-char
|
|
key sequences
|
|
|
|
5/18
|
|
----
|
|
lib/readline/rlprivate.h
|
|
- new struct defining a context for multiple-key key sequences (the
|
|
base case is escape-prefixed commands)
|
|
|
|
lib/readline/readline.c
|
|
- change structure of _rl_dispatch_subseq to allow for callback code
|
|
to use it - rudimentary support for supporting the existing
|
|
recursion using a stack of contexts, each with a reference to the
|
|
previous
|
|
- fix so that ^G works when in callback mode
|
|
|
|
lib/readline/callback.c
|
|
- call the appropriate multiple-key sequence callback if the state is
|
|
set
|
|
|
|
5/19
|
|
----
|
|
lib/readline/readline.c
|
|
- broke code from _readline_internal_char after call to rl_dispatch
|
|
out into separate function: _rl_internal_char_cleanup, callable by
|
|
other parts of the code
|
|
- change _rl_internal_char_cleanup to unset _rl_want_redisplay after
|
|
it calls (*rl_redisplay_func)
|
|
|
|
lib/readline/callback.c
|
|
- call _rl_internal_char_cleanup from rl_callback_read_char when
|
|
appropriate
|
|
|
|
5/24
|
|
----
|
|
lib/readline/callback.c
|
|
- use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to
|
|
simulate the recursion used to decode multicharacter key sequences
|
|
(even things like ESC- as meta-prefix)
|
|
- call setjmp in rl_callback_read_char to give things like rl_abort
|
|
a place to jump, since the saved location in readline() will not
|
|
be valid
|
|
- keep calling _rl_dispatch_callback from rl_callback_read_char while
|
|
we are still decoding a multi-key key sequence
|
|
- keep calling readline_internal_char from rl_callback_read_char while
|
|
we are reading characters from a macro
|
|
|
|
lib/readline/macro.c
|
|
- use a slightly different strategy upon encountering the end of a macro
|
|
when using the callback interface: when the last character of a
|
|
macro is read, and we are reading a command, pop the macro off the
|
|
stack immediately so the loop in rl_callback_read_char terminates
|
|
when it should
|
|
|
|
lib/readline/readline.c
|
|
- if longjmp() is called and we end up at the saved location while
|
|
using the callback interface, just return -- don't go back into a
|
|
blocking read
|
|
- new function to dispose a chain of rl_keyseq_cxts
|
|
- only read new input in _rl_dispatch_callback if the KSEQ_DISPATCHED
|
|
flag is not set in the current keyseq context -- if it is, we are
|
|
traversing the chain back up and should use what we already saved
|
|
- use -3 as a magic value from _rl_dispatch_subseq to indicate that
|
|
we're allocating a new context and moving downward in the chain
|
|
(a special return value for the benefit of _rl_dispatch_callback)
|
|
|
|
lib/readline/rlprivate.h
|
|
- new extern declaration for _rl_keyseq_chain_dispose
|
|
|
|
6/1
|
|
---
|
|
builtins/read.def
|
|
- fixed a bug that occurred when reading a set number of chars and
|
|
the nth char is a backslash (read one too many). Bug reported by
|
|
Chris Morgan <chmorgan@gmail.com>
|
|
|
|
execute_cmd.c
|
|
- fix execute_builtin so the `unset' builtin also operates on the
|
|
temporary environment in POSIX mode (as well as source and eval),
|
|
so that unsetting variables in the temporary environment doesn't
|
|
leave them set when unset completes. Report by Eric Blake
|
|
<ebb9@byu.net>
|
|
|
|
array.c
|
|
- fix from William Park for array_rshift when shifting right on an
|
|
empty array -- corrects calculation of array->max_index
|
|
|
|
builtins/exec.def
|
|
- if an exec fails and the execfail option is set, don't call
|
|
restart_job_control unless the shell is interactive or job_control
|
|
is set
|
|
|
|
jobs.c
|
|
- add a run-time check for WCONTINUED being defined in header files
|
|
but rejected with EINVAL by waitpid(). Fix from Maciej Rozycki
|
|
<macro@linux-mips.org>
|
|
|
|
6/20
|
|
----
|
|
bashhist.c
|
|
- make sure calls to sv_histchars are protected by #ifdef BANG_HISTORY
|
|
- ditto for calls to history_expand_line_internal
|
|
|
|
6/23
|
|
----
|
|
doc/bashref.texi
|
|
- remove extra blank lines in @menu constructs
|
|
|
|
variables.c
|
|
- assign export_env to environ (extern char **) every time it changes
|
|
(mostly in add_to_export_env define), so maybe getenv will work on
|
|
systems that don't allow it to be replaced
|
|
|
|
6/29
|
|
----
|
|
bashline.c
|
|
- in bash_directory_completion_hook, be careful about not turning `/'
|
|
into `//' and `//' into `///' for benefit of those systems that treat
|
|
`//' as some sort of `network root'. Fix from Eric Blake
|
|
<ebb9@byu.net>
|
|
|
|
lib/readline/complete.c
|
|
- in to_print, do the right thing after stripping the trailing slash
|
|
from full_pathname: // doesn't turn into /, and /// doesn't become
|
|
//. Fix from Eric Blake <ebb9@byu.net>
|
|
|
|
6/30
|
|
----
|
|
lib/malloc/trace.c
|
|
- include <unistd.h> if it's available for a definition of size_t
|
|
|
|
jobs.c
|
|
- in wait_for, if a child process is marked as running but waitpid()
|
|
returns -1/ECHILD (e.g., when the bash process is being traced by
|
|
strace), make sure to increment c_reaped when marking the child as
|
|
dead
|
|
- in without_job_control, make sure to close the pgrp pipe after
|
|
calling start_pipeline
|
|
|
|
7/1
|
|
---
|
|
Makefile.in
|
|
- only remove pathnames.h when the other files created by running
|
|
configure are removed (e.g., Makefile). Fix from William Park
|
|
|
|
lib/sh/shquote.c
|
|
- since backslash-newline disappears when within double quotes, don't
|
|
add a backslash in front of a newline in sh_double_quote. Problem
|
|
reported by William Park
|
|
|
|
jobs.c
|
|
- in notify_of_job_status, don't print status messages about
|
|
terminated background processes unless job control is active
|
|
|
|
bashhist.c
|
|
- new variable, hist_last_line_pushed, set to 0 in really_add_history
|
|
(used by `history -s' code)
|
|
|
|
bashhist.h
|
|
- new extern declaration for history -s
|
|
|
|
builtins/history.def
|
|
- don't remove last history entry in push_history if it was added by
|
|
a call to push_history -- use hist_last_line_pushed as a sentinel
|
|
and set it after adding history entry. This allows multiple
|
|
calls to history -s to work right: adding all lines to the history
|
|
rather than deleting all but the last. Bug reported by Matthias
|
|
Schniedermeyer <ms@citd.de>
|
|
- pay attention to hist_last_line_pushed in expand_and_print_history()
|
|
so we don't delete an entry pushed by history -s
|
|
|
|
7/4
|
|
---
|
|
print_cmd.c
|
|
- fix print_arith_for_command to not print so many blanks between
|
|
expressions in ((...))
|
|
|
|
command.h
|
|
- new word flag: W_DQUOTE. Means word should be treated as if double
|
|
quoted
|
|
|
|
make_cmd.c
|
|
- add W_DQUOTE to word flags in make_arith_for_expr
|
|
|
|
parse.y
|
|
- add W_DQUOTE to word flags for (( ... )) arithmetic commands
|
|
|
|
subst.c
|
|
- don't perform tilde expansion on a word with W_DQUOTE flag set
|
|
- don't perform process substitution on a word with W_DQUOTE flag set
|
|
|
|
arrayfunc.c
|
|
- expand an array index within [...] the same way as an arithmetic
|
|
expansion between (( ... ))
|
|
|
|
lib/readline/input.c
|
|
- use getch() instead of read() on mingw
|
|
|
|
lib/readline/readline.c
|
|
- add a few key bindings for the arrow keys on mingw
|
|
|
|
lib/readline/rldefs.h
|
|
- if on mingw, define NO_TTY_DRIVER
|
|
|
|
lib/readline/rltty.c
|
|
- compile in the stub functions for _rl_{disable,restore}_tty_signals
|
|
if on mingw
|
|
- compile in stub function for rl_restart_output on mingw
|
|
- make sure enough functions and macros are defined to compile if
|
|
NO_TTY_DRIVER is defined (lightly tested - builds on MacOS X, at
|
|
least)
|
|
|
|
7/7
|
|
---
|
|
command.h
|
|
- add a `flags' member to the PATTERN_LIST structure
|
|
|
|
make_cmd.c
|
|
- intialize the `flags' member of a PATTERN_LIST when it's created
|
|
|
|
builtins/psize.c
|
|
- protect extern declaration of errno with usual #ifdef errno
|
|
|
|
configure.in, variables.c
|
|
- changes for QNX 6.x
|
|
|
|
7/9
|
|
---
|
|
parse.y
|
|
- fix parse_matched_pair to handle single and double quoted strings
|
|
inside old-style command substitution (``) since they can each
|
|
quote the ` and embedded $-expansions. Report by Eric Blake
|
|
<ebb9@byu.net>
|
|
|
|
{configure,Makefile}.in
|
|
- TILDE_LIB is now substituted into Makefile by configure
|
|
|
|
configure.in
|
|
- if configuring --with-installed-readline on cygwin, set TILDE_LIB
|
|
to the empty string to avoid multiply-defined symbols. Cygwin
|
|
doesn't allow undefined symbols in dynamic libraries. Report by
|
|
Eric Blake <ebb9@byu.net>
|
|
|
|
7/11
|
|
----
|
|
input.c
|
|
- in duplicate_buffered_stream, don't call free_buffered_stream if the
|
|
two buffered streams share the same b_buffer object (e.g., if they
|
|
had already been duplicated with a previous call). Fixes Debian bug
|
|
reported by eero17@bigfoot.com
|
|
|
|
7/12
|
|
----
|
|
shell.c
|
|
- make set_shell_name more resistant to a NULL argument
|
|
- in bind_args, use < instead of != when counting the arguments and
|
|
making the arg list
|
|
- in main(), make sure arg_index is not initialized to a value greater
|
|
than argc
|
|
|
|
7/14
|
|
----
|
|
lib/readline/display.c
|
|
- in expand_prompt, don't set the location of the last invisible
|
|
char if the sequence is zero length (\[\])
|
|
|
|
7/15
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- document that the shell uses $TMPDIR when creating temporary files
|
|
|
|
7/20
|
|
----
|
|
[bash-3.1-alpha1 frozen]
|
|
|
|
7/29
|
|
----
|
|
builtins/evalstring.c
|
|
- make sure that parse_and_execute saves and restores the value of
|
|
loop_level, so loops in sourced scripts and eval'd strings don't
|
|
mess up the shell's parser state
|
|
|
|
bashline.c
|
|
- change command_subst_completion_function to suppress appending
|
|
any character to a unique completion, instead of a space, unless
|
|
the last word in the quoted command substitution completes to a
|
|
directory name. In that case we append the expected slash
|
|
|
|
8/1
|
|
---
|
|
builtins/printf.def
|
|
- make sure variables are initialized if their values are tested later
|
|
|
|
[bash-3.1-alpha1 updated and re-frozen]
|
|
|
|
8/2
|
|
---
|
|
variables.c
|
|
- make sure to call stifle_history with an `int' instead of an intmax_t.
|
|
Sometimes it makes a difference
|
|
|
|
8/3
|
|
---
|
|
[bash-3.1-alpha1 released]
|
|
|
|
support/mksignames.c
|
|
- add `SIGSTKFLT' (RHE3)
|
|
- add `SIGXRES' (Solaris 9)
|
|
|
|
8/4
|
|
---
|
|
builtins/ulimit.def
|
|
- fix typo to make `x' the right option for locks
|
|
- add new options to short help synopsis
|
|
|
|
variables.c
|
|
- use get_variable_value instead of direct reference to value_cell
|
|
in make_variable_value when appending to the current value, so
|
|
references to array variables without subscripts will be equivalent
|
|
to element 0
|
|
|
|
lib/readline/text.c
|
|
- rewrote rl_change_case to correctly change the case of multibyte
|
|
characters where appropriate
|
|
|
|
8/5
|
|
---
|
|
configure.in
|
|
- remove call to obsolete macro AC_ACVERSION
|
|
- remove special calls to AC_CYGWIN and AC_MINGW32; AC_CANONICAL_HOST
|
|
takes care of those cases
|
|
|
|
general.h
|
|
- include `chartypes.h' for definition of ISALPHA
|
|
- fix definitions of ABSPATH and RELPATH for cygwin
|
|
- fix definition of ISDIRSEP for cygwin to allow backslash as a
|
|
directory name separator
|
|
|
|
8/9
|
|
---
|
|
builtins/setattr.def
|
|
- when setting a variable from the temporary environment in
|
|
set_var_attribute (e.g., `LC_ALL=C export LC_ALL'), make sure to
|
|
call stupidly_hack_special_variables after binding the variable in
|
|
the current context
|
|
|
|
builtins/printf.def
|
|
- make sure to call stupidly_hack_special_variables if using `printf -v'
|
|
to put formatted output in a shell variable
|
|
|
|
8/11
|
|
----
|
|
support/shobj-conf
|
|
- new variable: SHLIB_LIBPREF, prefix for shared library name (defaults
|
|
to `lib'
|
|
- new variable: SHLIB_DLLVERSION, used on Cygwin to set the library
|
|
version number
|
|
- new variable: SHLIB_DOT, separator character between library name and
|
|
suffix and version information (defaults to `.')
|
|
- new stanza for cygwin to generate windows-compatible dll
|
|
|
|
8/14
|
|
----
|
|
variables.c
|
|
- new special variable function for Cygwin, so the export environment
|
|
is remade when HOME is changed. The environment is the only way to
|
|
get information from the shell to cygwin dlls, for instanace, when
|
|
bash is compiled to use an already-installed libreadline
|
|
|
|
variables.h
|
|
- new extern declaration for sv_home
|
|
|
|
8/15
|
|
----
|
|
lib/readline/display.c
|
|
- call init_line_structures from rl_redisplay if vis_lbreaks == 0
|
|
to avoid consequences of a poorly-timed SIGWINCH
|
|
|
|
8/16
|
|
----
|
|
subst.c
|
|
- fix logic for performing tilde expansion when in posix mode (don't
|
|
rely on W_TILDEEXP flag always being set, because it won't be when
|
|
expanding the RHS of assignment statement). Use W_TILDEEXP only
|
|
when deciding to expand a word marked as W_ASSIGNMENT that doesn't
|
|
precede a command name
|
|
|
|
8/17
|
|
----
|
|
execute_cmd.c
|
|
- in execute_function, when subshell == 1, don't short-cut by using
|
|
the command contained in the group command -- if you do, any
|
|
redirections attached to the group command (function) don't get
|
|
executed
|
|
|
|
general.h
|
|
- new #define, FS_READABLE, indicates file is readable by current
|
|
user
|
|
|
|
findcmd.c
|
|
- rewrote file_status to use S_xxx POSIX file mode bits and to add
|
|
support for FS_READABLE (affects ./source and searching $PATH for
|
|
scripts whose names are supplied as arguments on the command line)
|
|
- change find_path_file to look for readable files -- source requires
|
|
it
|
|
- change find_in_path_element to do the right thing when FS_READABLE
|
|
is supplied as a flag
|
|
|
|
doc/bashref.texi
|
|
- remove note about posix non-compliance in `.': we now require and
|
|
look for readable files when searching $PATH
|
|
|
|
8/20
|
|
----
|
|
subst.c
|
|
- fix setifs to handle case where passed variable is non-zero but
|
|
v->value == 0 (as in an unset local variable); treat IFS as unset
|
|
in this case
|
|
|
|
jobs.c
|
|
- in kill_pid, if asked to killpg a process or pgrp whose pgrp is
|
|
recorded as the same as the shell's, just call killpg and let the
|
|
chips fall where they may -- there may be other processes in that
|
|
pgrp that are not children of the shell, so killing each process
|
|
in the pipeline will not do a complete job, and killpg'ing each
|
|
such process will send too many signals in the majority of cases
|
|
|
|
builtins/cd.def
|
|
- in posix mode, pwd needs to check that the value it prints and `.'
|
|
are the same file
|
|
|
|
builtins/read.def
|
|
- if reading input from stdin in a non-interactive shell and calling
|
|
`read', call sync_buffered_stream to seek backward in the input
|
|
stream if necessary (XXX - should we do this for all shell builtins?)
|
|
|
|
8/23
|
|
----
|
|
builtins/cd.def
|
|
- in posix mode, if canonicalization of the absolute pathname fails
|
|
because the path length exceeds PATH_MAX, but the length of the passed
|
|
(non-absolute) pathname does not, attempt the chdir, just as when
|
|
not in posix mode
|
|
|
|
builtins/type.def
|
|
- don't have describe_command call sh_makepath if the full path found
|
|
is already an absolute pathname (sh_makepath will stick $PWD onto the
|
|
front of it)
|
|
|
|
8/24
|
|
----
|
|
|
|
jobs.c
|
|
- in posix mode, don't have start_job print out and indication of
|
|
whether the job started by `bg' is the current or previous job
|
|
- change start_job to return success if a job to be resumed in the
|
|
background is already running. This means that bg won't fail when
|
|
asked to bg a background job, as SUSv3/XPG6 requires
|
|
- new function, init_job_stats, to zero out the global jobstats struct
|
|
|
|
{jobs,nojobs}.c
|
|
- change kill_pid to handle pids < -1 by killing process groups
|
|
|
|
jobs.h
|
|
- extern declaration for init_job_stats
|
|
|
|
lib/readline/history.c
|
|
- check whether or not the history list is null in remove_history
|
|
|
|
builtins/history.def
|
|
- delete_last_history is no longer static so fc builtin can use it
|
|
|
|
builtins/fc.def
|
|
- use free_history_entry in fc_replhist instead of freeing struct
|
|
members individually
|
|
- call delete_last_history from fc_replhist instead of using inline
|
|
code
|
|
- if editing (-l not specified), make sure the fc command that caused
|
|
the editing is removed from the history list, as POSIX specifies
|
|
|
|
builtins/kill.def
|
|
- just call kill_pid with any pid argument and let it handle pids < -1
|
|
This is the only way to let kill_pid know whether a negative pid or
|
|
a job spec was supplied as an argument to kill
|
|
|
|
builtins/fg_bg.def
|
|
- force fg_bg to return EXECUTION_SUCCESS explicitly if called by bg
|
|
and start_job returns successfully
|
|
- bg now returns success only if all the specified jobs were resumed
|
|
successfully
|
|
|
|
execute_cmd.c
|
|
- call init_job_stats from initialize_subshell to zero out the global
|
|
job stats structure
|
|
|
|
8/25
|
|
----
|
|
bashline.c
|
|
- change vi_edit_and_execute_command to just call vi when in posix
|
|
mode, instead of checking $FCEDIT and $EDITOR
|
|
|
|
lib/readline/search.c
|
|
- if in vi_mode, call rl_free_undo_list in make_history_line_current
|
|
to dispose of undo list accumulated while reading the search string
|
|
(if this isn't done, since vi mode leaves the current history
|
|
position at the entry which matched the search, the call to
|
|
rl_revert_line in rl_internal_teardown will mangle the matched
|
|
history entry using a bogus rl_undo_list)
|
|
- call rl_free_undo_list after reading a non-incremental search string
|
|
into rl_line_buffer -- that undo list should be discarded
|
|
|
|
lib/readline/rlprivate.h
|
|
- add UNDO_LIST * member to search context struct
|
|
|
|
lib/readline/isearch.c
|
|
- initialize UNDO_LIST *save_undo_list member of search context struct
|
|
|
|
8/27
|
|
----
|
|
lib/readline/bind.c
|
|
- change rl_parse_and_bind to strip whitespace from the end of a
|
|
variable value assignment before calling rl_variable_bind
|
|
|
|
doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
|
|
- clarified the language concerning parsing values for boolean
|
|
variables in assignment statements
|
|
|
|
8/28
|
|
----
|
|
lib/sh/pathphys.c
|
|
- fix small memory leak in sh_realpath reported by Eric Blake
|
|
|
|
8/31
|
|
----
|
|
doc/bashref.texi
|
|
- add additional notes to posix mode section
|
|
|
|
9/3
|
|
---
|
|
parse.y
|
|
- if $'...' occurs within a ${...} parameter expansion within
|
|
double quotes, don't single-quote the expanded result -- the double
|
|
quotes will cause it to be expanded incorrectly
|
|
|
|
9/4
|
|
---
|
|
builtins/fc.def
|
|
- if STRICT_POSIX is defined, the posix mode default for the editor to
|
|
use is $FCEDIT, then ed
|
|
|
|
shell.c
|
|
- if STRICT_POSIX is defined, initialize `posixly_correct' to 1
|
|
|
|
config.h.in
|
|
- add #undef STRICT_POSIX
|
|
|
|
9/5
|
|
---
|
|
configure.in
|
|
- add new option argument, --enable-strict-posix-default, configures
|
|
bash to be posix-conformant (including defaulting echo to posix
|
|
conformance) by default
|
|
|
|
builtins/echo.def
|
|
- if STRICT_POSIX is defined, default echo to xpg-style
|
|
|
|
doc/bashref.texi
|
|
- describe the --enable-strict-posix-default option to configure
|
|
|
|
9/10
|
|
----
|
|
builtins/mkbuiltins.c
|
|
- change to not generate N_(""), because the translated empty string is
|
|
special to GNU gettext
|
|
|
|
9/13
|
|
----
|
|
lib/readline/complete.c
|
|
- a negative value for rl_completion_query_items means to not ask
|
|
|
|
lib/readline/doc/{{rltech,rluser}.texi,readline.3}
|
|
- documented new semantics for rl_completion_query_items/
|
|
completion-query-items
|
|
|
|
9/14
|
|
----
|
|
bashline.c
|
|
- bind M-TAB in emacs mode to dynamic-complete-history even if the
|
|
current binding is `tab-insert' (which is what it is by default),
|
|
not just if it's unbound
|
|
|
|
9/15
|
|
----
|
|
eval.c
|
|
- call QUIT before calling dispose_command on current_command after
|
|
the `exec_done' label. If we dispose current_command first, the
|
|
longjmp might restore the value of current_command after we've
|
|
disposed it, and the subsequent call to dispose_command from the
|
|
DISCARD case will free memory twice
|
|
|
|
9/16
|
|
----
|
|
lib/sh/strto[iu]max.c
|
|
- make sure the function being declared is not a cpp define before
|
|
defining it -- should fix problems on HP-UX
|
|
|
|
9/19
|
|
----
|
|
Makefile.in
|
|
- make sure the binaries for the tests are at the front of $PATH
|
|
|
|
9/22
|
|
----
|
|
parse.y
|
|
- new flag for parse_matched_pair: P_COMMAND, indicating that the
|
|
text being parsed is a command (`...`, $(...))
|
|
- change calls to parse_matched_pair to include P_COMMAND where
|
|
appropriate
|
|
- if P_COMMAND flag is set and the text is unquoted, check for comments
|
|
and don't try to parse embedded quoted strings if in a comment (still
|
|
not exactly right yet)
|
|
|
|
9/24
|
|
----
|
|
builtins/history.def
|
|
- if running history -n, don't count these new lines as history lines
|
|
for the current session if the `histappend' shell option is set.
|
|
If we're just appending to the history file, the issue that caused
|
|
history_lines_this_session to be recalculated doesn't apply -- the
|
|
history file won't be missing any entries
|
|
|
|
lib/readline/isearch.c
|
|
- fix C-w handler for isearch string reader to handle multibyte chars
|
|
|
|
lib/readline/rlmbutil.h
|
|
- new defines for _rl_to_wupper and _rl_to_wlower
|
|
|
|
lib/readline/text.c
|
|
- use _rl_to_wupper and _rl_to_wlower as appropriate
|
|
|
|
9/26
|
|
----
|
|
execute_cmd.c
|
|
- in shell_execve, if the exec fails due to E2BIG or ENOMEM, just print
|
|
the appropriate error message instead of checking out any interpreter
|
|
specified with #!
|
|
|
|
9/30
|
|
----
|
|
bashhist.c
|
|
- make $HISTCMD available anytime remember_on_history is non-zero,
|
|
which indicates that we're saving commands to the history, and
|
|
let it evaluate to 1 if we're not
|
|
|
|
10/4
|
|
----
|
|
lib/sh/snprintf.c
|
|
- in floating(), make sure d != 0 before calling chkinfnan -- gcc on the
|
|
version of Solaris 9 I have translates 0 to -inf on the call
|
|
|
|
[bash-3.1-beta1 frozen]
|
|
|
|
10/6
|
|
----
|
|
jobs.c
|
|
- set the_pipeline to NULL right away in cleanup_the_pipeline, and
|
|
dispose a copy of the pointer so we don't mess with the_pipeline
|
|
while we're in the process of destroying it
|
|
- block and unblock SIGCHLD around manipulating the_pipeline in
|
|
cleanup_the_pipeline
|
|
|
|
10/7
|
|
----
|
|
[bash-3.1-beta1 released]
|
|
|
|
lib/readline/isearch.c
|
|
- when switching directions, make sure we turn off the SF_REVERSE
|
|
flag in the search context's flags word if we're going from reverse
|
|
to forward i-search
|
|
|
|
lib/readline/bind.c
|
|
- new function, rl_variable_value, returns a string representing a
|
|
bindable readline variable's value
|
|
- new auxiliary function, _rl_get_string_variable_value, encapsulates
|
|
everything needed to get a bindable string variable's value
|
|
- rewrote rl_variable_dumper to use _rl_get_string_variable_value
|
|
|
|
lib/readline/readline.h
|
|
- new extern declaration for rl_variable_value
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- documented rl_variable_value
|
|
|
|
bashline.c
|
|
- in command_word_completion_function, if readline sets
|
|
rl_completion_found_quote, but doesn't set rl_completion_quote_character,
|
|
we have an embedded quoted string or backslash-escaped character in
|
|
the passed text. We need to dequote that before calling
|
|
filename_completion_function. So far, this is in place only for
|
|
absolute program names (those containing a `/')
|
|
- in command_word_completion_function, use rl_variable_value to decide
|
|
whether or not we should ignore case, and use strncasecmp instead of
|
|
strncmp where appropriate
|
|
|
|
10/11
|
|
-----
|
|
builtins/fc.def
|
|
- fixed a typo when using POSIX_FC_EDIT_COMMAND
|
|
|
|
redir.h
|
|
- new flag values for redirections: RX_INTERNAL and RX_USER (currently
|
|
unused)
|
|
|
|
redir.c
|
|
- add_undo_redirect and add_undo_close_redirect now set RX_INTERNAL
|
|
flag when making new redirects
|
|
- in do_redirection_internal, only set file descriptors > 2 to CLEXEC
|
|
if they're marked as RX_INTERNAL
|
|
|
|
10/12
|
|
-----
|
|
jobs.c
|
|
- in wait_for_single_pid, if in posix mode, remove the waited-for pid
|
|
from the list of background pids, forgetting it entirely. POSIX
|
|
conformance tests test for this.
|
|
|
|
lib/readline/{readline.h,vi_mode.c}
|
|
- new state flag, RL_STATE_VICMDONCE, set after entering vi command
|
|
mode the first time; reset on each call to readline()
|
|
|
|
10/13
|
|
-----
|
|
lib/readline/undo.c
|
|
- in rl_revert_line, make sure that revert-line in vi mode leaves
|
|
rl_point set to 0 no matter the state of the line buffer
|
|
|
|
lib/readline/vi_mode.c
|
|
- when entering vi_command mode for the first time, free any existing
|
|
undo list so the previous insertions won't be undone by the `U'
|
|
command. This is how POSIX.2 says `U' should work (and the test
|
|
suite tests for it)
|
|
|
|
lib/readline/bind.c
|
|
- change rl_parse_and_bind so only `set' commands involving boolean
|
|
readline variables have trailing whitespace stripped from the value
|
|
string
|
|
|
|
10/16
|
|
-----
|
|
lib/glob/sm_loop.c
|
|
- fix patscan() to correctly scan backslash-escaped characters
|
|
|
|
10/18
|
|
-----
|
|
lib/sh/{winsize.c,Makefile.in},{jobs,nojobs}.c,Makefile.in,externs.h
|
|
- moved get_new_window_size from jobs.c/nojobs.c to new file,
|
|
lib/sh/winsize.c, made function global
|
|
|
|
{jobs,nojobs,sig}.c,{jobs,sig}.h
|
|
- moved SIGWINCH handling code to sig.c rather than duplicate it in
|
|
jobs.c and nojobs.c
|
|
- call set_sigwinch_handler from sig.c code rather than job control
|
|
signal initialization
|
|
|
|
sig.[ch]
|
|
- new variable, sigwinch_received, acts like interrupt_state for
|
|
SIGWINCH, set by sigwinch_sighandler. sigwinch_sighandler no longer
|
|
calls get_new_window_size
|
|
|
|
parse.y
|
|
- add call to get_new_window_size if sigwinch_received at top of
|
|
shell_getc
|
|
|
|
10/19
|
|
-----
|
|
lib/malloc/malloc.c
|
|
- to avoid orphaning memory on free if the right bucket is busy, use a
|
|
new function xplit(mem, bucket) to split the block into two or more
|
|
smaller ones and add those to the right bucket (appropriately marking
|
|
it as busy)
|
|
- audit bsplit(), bcoalesce(), and xsplit() for proper use of busy[],
|
|
since they're dealing with two separate buckets
|
|
|
|
10/22
|
|
-----
|
|
subst.c
|
|
- new flag for string_extract: EX_REQMATCH, means to return an error
|
|
if a matching/closing character is not found before EOS
|
|
- new static flag variables: extract_string_error and extract_string_fatal
|
|
- change expand_word_internal to check for new error returns from
|
|
string_extract and return errors if appropriate
|
|
|
|
10/23
|
|
-----
|
|
builtins/cd.def
|
|
- make sure we free TDIR in change_to_directory after calling
|
|
set_working_directory (which allocates new memory) and other places
|
|
we short-circuit and return
|
|
|
|
10/24
|
|
-----
|
|
subst.c
|
|
- modified fix from 10/22 to allow bare ` to pass through (for
|
|
some backwards compatibility and more correctness)
|
|
|
|
10/27
|
|
-----
|
|
conftypes.h
|
|
- make MacOS X use the RHAPSODY code that gets HOSTTYPE, et al.
|
|
at build rather than configure time, to support universal binaries
|
|
(fix from llattanzi@apple.com)
|
|
|
|
10/30
|
|
-----
|
|
builtins/evalstring.c
|
|
- make sure we don't turn on CMD_NO_FORK in parse_and_execute if
|
|
we're running a trap command on signal receipt or exit
|
|
|
|
execute_cmd.c
|
|
- in shell_execve, improve the error message a little bit if the
|
|
interpreter name in a #! exec header ends with a ^M (as in a DOS-
|
|
format file)
|
|
|
|
11/1
|
|
----
|
|
lib/readline/vi_mode.c
|
|
- fix vi-mode `r' command to leave the cursor in the right place
|
|
|
|
[bash-3.1-rc1 frozen]
|
|
|
|
11/5
|
|
----
|
|
execute_cmd.c
|
|
- make sure a DEBUG trap doesn't overwrite a command string passed to
|
|
make_child in execute_simple_command
|
|
|
|
bashline.c
|
|
- rearrange some code in bash_quote_filename so filenames with leading
|
|
tildes containing spaces aren't tilde-expanded before being
|
|
returned to the caller
|
|
|
|
11/6
|
|
----
|
|
lib/readline/display.c
|
|
- when deciding where to move the cursor in rl_redisplay and needing
|
|
to move the cursor back after moving it vertically and compensate
|
|
for invisible characters in the prompt string, make sure that
|
|
_rl_last_c_pos is treated as an absolute cursor position in a
|
|
multibyte locale and the wrap offset (number of invisible characters)
|
|
is added explicitly when deciding how many characters to backspace
|
|
|
|
11/10
|
|
-----
|
|
lib/readline/terminal.c
|
|
- _rl_set_screen_size now interprets a lines or columns argument < 0
|
|
as an indication not to change the current value
|
|
|
|
11/11
|
|
-----
|
|
|
|
lib/readline/terminal.c
|
|
- new function, rl_reset_screen_size, calls _rl_get_screen_size to
|
|
reset readline's idea of the terminal size
|
|
- don't call _rl_get_screen_size in _rl_init_terminal_io if both
|
|
_rl_screenheight and _rl_screenwidth are > 0
|
|
- don't initialize _rl_screenheight and _rl_screenwidth to 0 in
|
|
_rl_init_terminal_io; let caller take care of it
|
|
- set _rl_screenheight and _rl_screenwidth to 0 before calling
|
|
_rl_init_terminal_io
|
|
|
|
lib/readline/readline.h
|
|
- new extern declaration for rl_reset_screen_size
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- documented rl_reset_screen_size
|
|
|
|
variables.c
|
|
- if readline is being used, compile in a special var function for
|
|
assignments to LINES and COLUMNS that calls rl_set_screen_size or
|
|
rl_reset_screen_size as appropriate. Only do this in posix mode
|
|
and only when STRICT_POSIX is defined at compile time
|
|
- new semaphore variable, winsize_assignment, set while doing an
|
|
assignment to LINES or COLUMNS
|
|
- new variable, winsize_assigned, says LINES or COLUMNS was assigned
|
|
to or found in the environment
|
|
- if in the middle of an assignment to LINES or COLUMNS, make
|
|
sh_set_lines_and_columns a no-op
|
|
|
|
lib/sh/winsize.c
|
|
- get_new_window_size now takes two int * arguments, to return the
|
|
screen dimensions
|
|
|
|
externs.h
|
|
- change extern declaration for get_new_window_size
|
|
|
|
{jobs,nojobs}.c, parse.y
|
|
- change callers of get_new_window_size
|
|
|
|
11/12
|
|
-----
|
|
lib/readline/terminal.c
|
|
- new variable, rl_prefer_env_winsize, gives LINES and COLUMNS
|
|
precedence over values from the kernel when computing window size
|
|
|
|
lib/readline/readline.h
|
|
- extern declaration for rl_prefer_env_winsize
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- document rl_prefer_env_winsize
|
|
|
|
11/13
|
|
-----
|
|
lib/readline/rltty.c
|
|
- change rl_prep_terminal to make sure we set and reset the tty
|
|
special characters in the vi insertion keymap if in vi mode. This
|
|
matters if we get accept-line for the previous line while in vi
|
|
command mode
|
|
|
|
11/14
|
|
-----
|
|
builtins/pushd.def
|
|
- make sure any call to cd_builtin includes a leading `--' from the
|
|
argument list (or constructs one)
|
|
|
|
11/16
|
|
-----
|
|
pcomplete.c
|
|
- fix small memory leak in gen_wordlist_matches
|
|
|
|
[bash-3.1-rc2 frozen]
|
|
|
|
11/21
|
|
-----
|
|
[bash-3.1-rc2 released]
|
|
|
|
11/23
|
|
-----
|
|
lib/readline/display.c
|
|
- changes to rl_redisplay to compensate for update_line updating
|
|
_rl_last_c_pos without taking invisible characters in the line into
|
|
account. Important in multibyte locales where _rl_last_c_pos is an
|
|
absolute cursor position
|
|
- changes to _rl_move_cursor_relative to account for _rl_last_c_pos
|
|
being an absolute cursor position in a multibyte character locale
|
|
- rewrote _rl_move_cursor_relative to make it a little simpler
|
|
|
|
11/29
|
|
-----
|
|
lib/readline/display.c
|
|
- changes to rl_redisplay and update_line for update_line to communicate
|
|
upward that it took the number of invisible characters on the current
|
|
line into account when modifying _rl_last_c_pos
|
|
- in update_line, adjust _rl_last_c_pos by wrap_offset before calling
|
|
_rl_move_cursor_relative, so we pass correct information about the
|
|
true cursor position
|
|
|
|
12/1
|
|
----
|
|
configure.in
|
|
- changed release status to `release'
|
|
|
|
[bash-3.1 frozen]
|
|
|
|
12/8
|
|
----
|
|
[bash-3.1 released]
|
|
|
|
12/9
|
|
----
|
|
doc/{bash.1,version.texi},lib/readline/doc/version.texi
|
|
- remove `beta1' from man page footer and texinfo documents
|
|
|
|
variables.c
|
|
- make sure winsize_assignment is protected by #ifdef READLINE, so
|
|
minimal shell will compile
|
|
|
|
builtins/read.def
|
|
- make sure error cases free memory and run any unwind-protects to
|
|
avoid memory leaks
|
|
|
|
12/10
|
|
-----
|
|
execute_cmd.c
|
|
- change execute_command_internal to set $PIPESTATUS for ((...)) and
|
|
[[ ... ]] commands
|
|
|
|
doc/{bash.1,bashref.texi,version.texi}
|
|
- add documentation for ulimit -[iqx] and bump revision date
|
|
|
|
12/12
|
|
-----
|
|
parse.y
|
|
- make sure parse_compound_assignment saves and restores the
|
|
PST_ASSIGNOK parser state flag around its calls to read_token.
|
|
Fixes bug reported by Mike Frysinger
|
|
|
|
12/13
|
|
-----
|
|
parse.y
|
|
- change parse_compound_assignment to save and restore the value of
|
|
last_read_token. Not sure why it was set unconditionally in the
|
|
first place after parsing the complete compound assignment
|
|
|
|
12/14
|
|
-----
|
|
lib/readline/text.c
|
|
- don't use return value of rl_kill_text (which always succeeds and
|
|
returns the number of characters killed) in rl_delete as an indication
|
|
of success or failure
|
|
- ditto for return value of rl_delete_text
|
|
|
|
lib/readline/readline.c
|
|
- don't return the value of the called readline function as the return
|
|
value from _rl_dispatch_subseq; -1 means something different to the
|
|
callers (return 0 all the time to indicate that a readline function
|
|
was found and dispatched). Fix from Andreas Schwab for <DEL><DEL>
|
|
bug in callback interface first reported by Mike Frysinger
|
|
|
|
execute_cmd.c
|
|
- fixed a typo in execute_case_command
|
|
|
|
12/15
|
|
-----
|
|
aclocal.m4
|
|
- add check for wctype() to BASH_CHECK_MULTIBYTE, define HAVE_WCTYPE
|
|
|
|
config.h.in
|
|
- add HAVE_WCTYPE #define
|
|
|
|
config-bot.h
|
|
- add HAVE_WCTYPE to the set of checks for HANDLE_MULTIBYTE. This
|
|
should catch the deficient NetBSD multibyte support
|
|
|
|
12/16
|
|
-----
|
|
parse.y
|
|
- use CTLESC instead of literal '\001' when decode_prompt_string
|
|
prefixes RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE
|
|
|
|
12/20
|
|
-----
|
|
lib/readline/display.c
|
|
- don't treat RL_PROMPT_START_IGNORE specially inside a sequence of
|
|
ignored characters
|
|
- keep track of the start of the current sequence of ignored
|
|
characters; make sure that an empty sequence of such characters
|
|
really is an empty sequence, not one that happens to end with '\001'
|
|
(RL_PROMPT_START_IGNORE)
|
|
|
|
12/21
|
|
-----
|
|
subst.c
|
|
- change expand_word_internal to process rest of `tilde-word' as a
|
|
regular part of the word if tilde expansion leaves the tilde-word
|
|
unchanged. This means that ~$USER expands to ~chet, which seems
|
|
more intuitive, and is effectively what bash-3.0 did
|
|
|
|
12/23
|
|
-----
|
|
subst.c
|
|
- when making a local array variable in do_compound_assignment, make
|
|
sure that we don't use a variable of the same name from a previous
|
|
context
|
|
|
|
doc/bash.1
|
|
- documented expansions for word and patterns in case statement
|
|
|
|
builtins/ulimit.def,doc/{bashref.texi,bash.1}
|
|
- added new -e and -r (nice and rtprio) options to ulimit; documented
|
|
them
|
|
|
|
12/26
|
|
-----
|
|
variables.c
|
|
- use `hmax' instead of `num' in sv_histsize to avoid integer overflow
|
|
problems with intmax_t
|
|
|
|
builtins/read.def
|
|
- add unwind-protect to restore rl_attempted_completion_function in
|
|
case of a timeout
|
|
|
|
{bashline,variables}.c
|
|
- move initialization of HISTSIZE from initialization path to
|
|
load_history, so it can be overridden by a value assigned in a
|
|
startup file
|
|
|
|
lib/readline/misc.c
|
|
- add a missing `return r' so that rl_digit_loop returns a meaningful
|
|
value
|
|
|
|
lib/readline/{bind,callback,display,isearch,rltty,search,text,vi_mode}.c
|
|
- minor cleanups to satisfy compiler warnings, mostly removing unused
|
|
variables
|
|
|
|
12/27
|
|
-----
|
|
support/Makefile.in
|
|
- add LIBS_FOR_BUILD support; defaults to ${LIBS}
|
|
|
|
Makefile.in
|
|
- add LIBS_FOR_BUILD with no default value; use when linking programs
|
|
using CC_FOR_BUILD (e.g., bashversion)
|
|
|
|
12/28
|
|
-----
|
|
lib/readline/bind.c
|
|
- fix rl_translate_keyseq bad translation of \M-\C-x sequences
|
|
|
|
execute_cmd.c
|
|
- in execute_arith_command, if the expression expands to more than one
|
|
word, make sure we join the words into a single string and pass the
|
|
entire thing to evalexp()
|
|
|
|
expr.c
|
|
- new functions: _is_arithop(c), returns true if C is a valid single-
|
|
character arithmetic operator; _is_multiop(c), returns true if C is
|
|
a token corresponding to a valid multi-character arithmetic operator
|
|
- if we encounter a character that isn't a valid arithmetic
|
|
operator, throw an error. Try to be intelligent about what type of
|
|
error message to print
|
|
|
|
subst.c
|
|
- new function, expand_arith_string, calls expand_string_if_necessary;
|
|
used where an arithmetic expression needs to be expanded
|
|
|
|
subst.h
|
|
- new extern declaration for expand_arith_string
|
|
|
|
arrayfunc.c
|
|
- in array_expand_index, call expand_arith_string to expand the
|
|
subscript in a fashion consistent with other arithmetic expressions
|
|
|
|
subst.c
|
|
- fix parameter_brace_patsub so that we don't try to anchor the pattern
|
|
at the beginning or end of the string if we're doing global
|
|
replacement -- that combination doesn't doesn't make sense, and
|
|
the changed behavior is compatible with ksh93
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- changed description of pattern substitution to match the new
|
|
semantics
|
|
|
|
tests/new-exp.tests
|
|
- change tests to remove all ${pat//#rep} and ${pat//%rep}
|
|
expansions, since they don't mean the same thing anymore
|
|
|
|
12/29
|
|
-----
|
|
support/signames.c
|
|
- new file, initialize_signames() function from old mksignames.c. This
|
|
file builds the signal_names array
|
|
|
|
support/mksignames.c
|
|
- strip out initialize_signames(), move to signames.c. This file only
|
|
writes signames.h
|
|
- set up to only write a stub signames.h if CROSS_COMPILING is defined,
|
|
with extern declaration for initialize_signames
|
|
- if not cross compiling, #define initialize_signames to nothing
|
|
|
|
Makefile.in
|
|
- mksignames is now linked from mksignames.o and buildsignames.o
|
|
- add rules to build signames.o, assuming we're building it as part
|
|
of the shell (cross-compiling)
|
|
|
|
trap.c
|
|
- call initialize_signames from initialize_traps
|
|
|
|
configure.in
|
|
- set SIGNAMES_O to nothing (normal) or signames.o (cross-compiling),
|
|
substitute into Makefile
|
|
- don't set SIGNAMES_H if cross-compiling any more
|
|
|
|
12/30
|
|
-----
|
|
command.h
|
|
- new word flag: W_NOPROCSUB, inhibits process substitution on a word
|
|
|
|
subst.c
|
|
- change expand_word_internal to suppress process substitution if the
|
|
word has the W_NOPROCSUB flag
|
|
|
|
shell.c
|
|
- --wordexp turns on W_NOPROCSUB in addition to W_NOCOMSUB
|
|
|
|
subst.c
|
|
- change string_list_dollar_at and string_list_dollar_star so that
|
|
MB_CUR_MAX is used to size an array only when using gcc, since gcc
|
|
can handle non-constant array sizes using a mechanism like alloca.
|
|
Other compilers, e.g. Sun's compiler, do not implement that
|
|
extension
|
|
|
|
12/31
|
|
-----
|
|
builtins/mkbuiltins.c
|
|
- when cross-compiling, don't include <config.h>, since it's for the
|
|
target rather than the host system. Instead, choose a reasonable
|
|
set of default #defines based on a minimal POSIX system
|
|
|
|
jobs.c
|
|
- change find_process to handle a NULL return value from find_pipeline
|
|
- return immediately from delete_job if jobs[index] is already NULL or
|
|
if it has a null pipeline associated with it
|
|
- in delete_job, if find_last_proc returns NULL, don't try to call
|
|
bgp_delete
|
|
|
|
1/7
|
|
---
|
|
doc/bash.1
|
|
- patch from Tim Waugh to replace some literal single quotes with
|
|
\(aq, the groff special character for it
|
|
|
|
jobs.c
|
|
- in realloc_jobs_list, make sure to zero out slots after j_lastj
|
|
in the new list
|
|
|
|
1/9
|
|
---
|
|
support/mksignames.c
|
|
- make sure to include <signal.h> to get right value of NSIG from
|
|
(usually) <sys/signal.h>
|
|
|
|
1/10
|
|
----
|
|
parse.y
|
|
- when calling parse_matched_pair on a $(...) command substitution,
|
|
don't pass the P_DQUOTE flag so that single quotes don't get
|
|
stripped from $'...' inside the command substitution. Bug report
|
|
and fix from Mike Stroyan <mike.stroyan@hp.com>
|
|
|
|
jobs.c
|
|
- start maintaining true count of living children in js.c_living
|
|
- call reset_current in realloc_jobs_list, since old values for current
|
|
and previous job are most likely incorrect
|
|
- don't allocate a new list in realloc_jobs_list if the old size and
|
|
new size are the same; just compact the existing list
|
|
- make sure realloc_jobs_list updates value of js.j_njobs
|
|
- add some more itrace messages about non-null jobs after j_lastj in
|
|
jobs array
|
|
|
|
1/11
|
|
----
|
|
bashjmp.h
|
|
- new value for second argument to longjmp: SIGEXIT. Reserved for
|
|
future use
|
|
|
|
1/12
|
|
----
|
|
jobs.c
|
|
- add logic to make_child to figure out when pids wrap around
|
|
- turn second argument to delete_job into flags word, added flag to
|
|
prevent adding proc to bgpids list
|
|
|
|
1/13
|
|
----
|
|
lib/readline/vi_mode.c
|
|
- move code that moves forward a character out of rl_vi_append_mode
|
|
into a separate function, _rl_vi_append_forward
|
|
- change _rl_vi_append_mode to save `a' as the last command, so it
|
|
can be redone properly
|
|
- new function _rl_vi_backup, moves point back a character taking
|
|
multibyte locales into account
|
|
- change rl_vi_redo to handle redoing an `a' command specially --
|
|
it should be redone like `i' but after moving forward a character
|
|
- change rl_vi_redo to use _rl_vi_backup to move point backward
|
|
after redoing `i' or `a'
|
|
|
|
jobs.c
|
|
- new function, delete_old_job (pid), checks whether or not PID is in
|
|
a job in the jobs list. If so, and the job is dead, it just removes
|
|
the job from the list. If so, and the job is not dead, it zeros
|
|
the pid in the appropriate PROCESS so pid aliasing doesn't occur
|
|
- make_child calls delete_old_job to potentially remove an already-used
|
|
instance of the pid just forked from the jobs list if pids have
|
|
wrapped around. Finally fixes the bug reported by Tim Waugh
|
|
<twaugh@redhat.com>
|
|
|
|
trap.c
|
|
- new define, GETORIGSIG(sig), gets the original handling for SIG and
|
|
sets SIG_HARD_IGNORE if that handler is SIG_IGN
|
|
- call GETORIGSIG from initialize_traps, get_original_signal, and
|
|
set_signal
|
|
|
|
jobs.c
|
|
- in wait_for, if the original SIGINT handler is SIG_IGN, don't set
|
|
the handler to wait_sigint_handler. This keeps scripts started in
|
|
the background (and ignoring SIGINT) from dying due to SIGINT while
|
|
they're waiting for a child to exit. Bug reported by Ingemar
|
|
Nilsson <init@kth.se>
|
|
|
|
lib/readline/vi_mode.c
|
|
- don't save text to buffer unless undo pointer points to a record of
|
|
type UNDO_INSERT; zero it out instead. This fixes bug reported by
|
|
Craig Turner <craig@synect.com> with redoing `ctd[ESC]' (empty
|
|
insert after change to)
|
|
|
|
shell.c
|
|
- change set_shell_name so invocations like "-/bin/bash" are marked as
|
|
login shells
|
|
|
|
doc/bash.1
|
|
- add note about destroying functions with `unset -f' to the section
|
|
on shell functions
|
|
|
|
lib/readline/terminal.c
|
|
- if readline hasn't been initialized (_rl_term_autowrap == -1, the
|
|
value it's now initialized with), call _rl_init_terminal_io from
|
|
_rl_set_screen_size before deciding whether or not to decrement
|
|
_rl_screenwidth. Fixes bug from Mike Frysinger <vapier@gentoo.org>
|
|
|
|
1/14
|
|
----
|
|
lib/readline/input.c
|
|
- allow rl_set_keyboard_input_timeout to set the timeout to 0, for
|
|
applications that want to use select() like a poll without any
|
|
waiting
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- documented valid values for timeout in rl_set_keyboard_input_timeout
|
|
|
|
jobs.c
|
|
- in stop_pipeline, don't have the parent shell call give_terminal_to
|
|
if subshell_environment contains SUBSHELL_ASYNC (no background
|
|
process should ever give the terminal to anything other than
|
|
shell_pgrp)
|
|
- in make_child, don't give the terminal away if subshell_environment
|
|
contains SUBSHELL_ASYNC
|
|
|
|
1/15
|
|
----
|
|
subst.c
|
|
- in parameter_brace_expand, if extracting ${#varname}, only allow
|
|
`}' to end the expansion, since none of the other expansions are
|
|
valid. Fixes Debian bug reported by Jan Nordhorlz <jckn@gmx.net>
|
|
|
|
1/17
|
|
----
|
|
parse.y
|
|
- in parse_matched_pair, protect all character tests with the MBTEST
|
|
macro
|
|
- in parse_dparen, take out extra make_word after call to alloc_word_desc
|
|
(mem leak)
|
|
|
|
1/18
|
|
----
|
|
parse.y
|
|
- in parse_matched_pair, add P_ALLOWESC to flags passed to recursive
|
|
parse_matched_pair call when encountering a single or double quote
|
|
inside a ``-style command substitution
|
|
|
|
execute_cmd.c
|
|
- add call to QUIT at beginning of execute_command_internal; better
|
|
responsiveness to SIGINT
|
|
|
|
1/21
|
|
----
|
|
lib/readline/bind.c
|
|
- change rl_invoking_keyseqs_in_map to honor the setting of
|
|
convert-meta when listing key bindings, since if convert-meta is off,
|
|
using '\M-' as the prefix for bindings in, for instance,
|
|
emacs-escape-keymap, is wrong. This affects `bind -p' output
|
|
- change rl_untranslate_keyseq to add '\e' instead of '\C-[' for
|
|
ESC
|
|
|
|
execute_cmd.c
|
|
- add call to QUIT at end of execute_command
|
|
|
|
1/23
|
|
----
|
|
lib/readline/display.c
|
|
- changed two places in update_line where a check of whether the cursor
|
|
is before the last invisible character in the prompt string to
|
|
differentiate between the multibyte character case (where
|
|
_rl_last_c_pos is a physical cursor position) and the single-byte
|
|
case (where it is a buffer index). This prevents many unnecessary
|
|
\r-redraw the line sequences. Reported by Dan Jacobson.
|
|
|
|
1/24
|
|
----
|
|
quit.h
|
|
- wrap QUIT macro in do...while(0) like other compound statement
|
|
macros
|
|
- CHECK_TERMSIG define (placeholder for now); future use will be to
|
|
handle any received signals that should cause the shell to
|
|
terminate (e.g., SIGHUP)
|
|
|
|
{input,jobs,nojobs}.c
|
|
- add calls to CHECK_TERMSIG where appropriate (reading input and
|
|
waiting for children)
|
|
- include quit.h if necessary
|
|
|
|
1/25
|
|
----
|
|
parse.y
|
|
- undo change that makes `)' in a compound assignment delimit a token.
|
|
It messes up arithmetic expressions in assignments to `let', among
|
|
other things
|
|
|
|
sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def
|
|
- rename termination_unwind_protect to termsig_sighandler
|
|
|
|
sig.c
|
|
- split termsig_sighandler into two functions: termsig_sighandler, which
|
|
runs as a signal handler and sets a flag noting that a terminating
|
|
signal was received, and termsig_handler, which runs when it is `safe'
|
|
to handle the signal and exit
|
|
- new terminate_immediately variable, similar to interrupt_immediately
|
|
- termsig_sighandler calls termsig_handler immediately if
|
|
terminate_immediately is non-zero
|
|
|
|
quit.h
|
|
- change CHECK_TERMSIG macro to check terminating_signal and call
|
|
termsig_handler if it's non-zero
|
|
- add same check of terminating_signal and call to termsig_handler to
|
|
QUIT macro
|
|
|
|
{jobs,nojobs}.c
|
|
- change call to termsig_sighandler to call termsig_handler directly,
|
|
as was intended
|
|
|
|
parse.y,builtins/read.def
|
|
- set terminate_immediately to non-zero value when reading interactive
|
|
input, as is done with interrupt_immediately
|
|
|
|
1/26
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- reworded the POSIX standard references to remove mention of POSIX.2
|
|
or 1003.2 -- it's all the 1003.1 standard now. Recommended by
|
|
Arnold Robbins
|
|
|
|
1/27
|
|
----
|
|
lib/readline/complete.c
|
|
- move call to filename dequoting function into
|
|
rl_filename_completion_function; call only if directory completion
|
|
hook isn't set. This means that directory-completion-hook now needs
|
|
to dequote the directory name. We don't want to dequote the directory
|
|
name before calling the directory-completion-hook. Bug reported by
|
|
Andrew Parker <andrewparker@bigfoot.com>
|
|
|
|
bashline.c
|
|
- add necessary directory name dequoting to bash_directory_completion_hook
|
|
and bash_directory_expansion
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- add note to description of rl_directory_completion_hook that it
|
|
needs to dequote the directory name even if no other expansions are
|
|
performed
|
|
|
|
1/28
|
|
----
|
|
braces.c
|
|
- make sure that we skip over braces that don't start a valid matched
|
|
brace expansion construct in brace_expand -- there might be a valid
|
|
brace expansion after the unmatched `{' later in the string
|
|
- brace_gobbler now checks that when looking for a `}' to end a brace
|
|
expansion word, there is an unquoted `,' or `..' that's not inside
|
|
another pair of braces. Fixes the a{b{c,d}e}f problem reported by
|
|
Tim Waugh
|
|
|
|
builtins/declare.def
|
|
- when not in posix mode, and operating on shell functions, typeset
|
|
and declare do not require their variable operands to be valid
|
|
shell identifiers. The other `attribute' builtins work this way.
|
|
Fixes inconsistency reported by Mike Frysinger
|
|
|
|
{configure,config.h}.in
|
|
- add test for setregid, define HAVE_SETREGID and HAVE_DECL_SETREGID
|
|
as appropriate
|
|
- add test for eaccess, define HAVE_EACCESS if found
|
|
|
|
lib/sh/eaccess.c
|
|
- new file, with sh_stat and sh_eaccess functions, moved from test.c
|
|
- renamed old sh_eaccess as sh_stataccess, since it uses the stat(2)
|
|
information to determine file accessibility
|
|
- new function, sh_euidaccess, to call when uid != euid or gid != egid;
|
|
temporarily swaps uid/euid and gid/egid around call to access
|
|
- rewrote sh_eaccess to call eaccess, access, sh_euidaccess or
|
|
sh_stataccess as appropriate. access(2) will take into account
|
|
things like ACLs, read-only file systems, file flags, and so on.
|
|
|
|
lib/sh/Makefile.in,Makefile.in
|
|
- add necessary entries for eaccess.[co]
|
|
|
|
test.c
|
|
- change calls to test_stat to call sh_stat
|
|
|
|
{test,general}.c
|
|
- change calls to test_eaccess to call sh_eaccess
|
|
|
|
externs.h
|
|
- new extern declaration for sh_eaccess
|
|
|
|
test.[ch]
|
|
- remove test_stat and test_eaccess
|
|
|
|
1/29
|
|
----
|
|
braces.c
|
|
- make change from 1/28 dependant on CSH_BRACE_COMPAT not being
|
|
defined (since old bash behavior is what csh does, defining
|
|
CSH_BRACE_COMPAT will produce old bash behavior)
|
|
|
|
1/30
|
|
----
|
|
bashline.c
|
|
- last argument of bash_default_completion is now a flags word:
|
|
DEFCOMP_CMDPOS (in command position) is only current value
|
|
- attempt_shell_completion now computes flags before calling
|
|
bash_default_completion
|
|
- if no_empty_command_completion is set, bash does not attempt command
|
|
word completion even if not at the beginning of the line, as long
|
|
as the word to be completed is empty and start == end (catches
|
|
beginning of line and all whitespace preceding point)
|
|
|
|
2/4
|
|
---
|
|
lib/readline/display.c
|
|
- change _rl_make_prompt_for_search to use rl_prompt and append the
|
|
search character to it, so the call to expand_prompt in rl_message
|
|
will process the non-printing characters correctly. Bug reported
|
|
by Mike Stroyan <mike.stroyan@hp.com>
|
|
|
|
2/5
|
|
---
|
|
lib/readline/display.c
|
|
- fix off-by-one error when comparing against PROMPT_ENDING_INDEX,
|
|
which caused a prompt with invisible characters to be redrawn one
|
|
extra time in a multibyte locale. Change from <= to < fixes
|
|
multibyte locale, but I added 1 to single-byte definition of
|
|
PROMPT_ENDING_INDEX (worth checking) to compensate. Bug reported
|
|
by Egmont Koblinger <egmont@uhulinux.hu>
|
|
|
|
2/8
|
|
---
|
|
lib/readline/terminal.c
|
|
- call _emx_get_screensize with wr, wc like ioctl code for consistency
|
|
- new function, _win_get_screensize, gets screen dimensions using
|
|
standard Windows API for mingw32 (code from Denis Pilat)
|
|
- call _win_get_screensize from _rl_get_screen_size on mingw32
|
|
|
|
lib/readline/rlconf.h
|
|
- define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc
|
|
filename
|
|
|
|
support/shobj-conf
|
|
- changes to make loadable builtins work on MacOS X 10.[34]
|
|
|
|
builtins/pushd.def
|
|
- changes to make it work as a loadable builtin compiled with gcc4
|
|
|
|
2/9
|
|
---
|
|
lib/readline/bind.c
|
|
- add SYS_INPUTRC as last-ditch default (if DEFAULT_INPUTRC does not
|
|
exist or can't be read) in rl_read_init_file
|
|
|
|
lib/readline/doc/rluser.texi
|
|
- add description of /etc/inputrc as ultimate default startup file
|
|
|
|
2/10
|
|
----
|
|
lib/readline/bind.c
|
|
- fix problem with rl_function_of_keyseq that returns a non-keymap
|
|
bound to a portion of the passed key sequence without processing
|
|
the entire thing. We can bind maps with existing non-map
|
|
functions using the ANYOTHERKEY binding code.
|
|
|
|
variables.c
|
|
- shells running in posix mode do not set $HOME, as POSIX apparently
|
|
requires
|
|
|
|
2/15
|
|
----
|
|
braces.c
|
|
- mkseq() now takes the increment as an argument; changed callers
|
|
|
|
2/16
|
|
----
|
|
builtins/hash.def
|
|
- print `hash table empty' message to stdout instead of stderr
|
|
|
|
2/17
|
|
----
|
|
lib/readline/readline.c
|
|
- when resetting rl_prompt in rl_set_prompt, make sure rl_display_prompt
|
|
is set when the function returns
|
|
|
|
2/18
|
|
----
|
|
lib/readline/display.c
|
|
- further fixes to _rl_make_prompt_for_search from Eric Blake to deal
|
|
with multiple calls to expand_prompt
|
|
|
|
2/21
|
|
----
|
|
builtins/hash.def
|
|
- don't print `hash table empty' message in posix mode
|
|
|
|
2/27
|
|
----
|
|
lib/glob/sm_loop.c
|
|
- change extmatch() to turn off FNM_PERIOD in flags passed to recursive
|
|
calls to gmatch() when calling it with a substring after the start
|
|
of the string it receives. Changed `+', `*', `?, `@', and `!' cases
|
|
to do the right thing. Fixes bug reported by Benoit Vila
|
|
<bvila@free.fr>
|
|
|
|
braces.c
|
|
- add QUIT; statements to mkseq to make large sequence generation
|
|
interruptible
|
|
|
|
2/28
|
|
----
|
|
lib/glob/glob.c
|
|
- initialize nalloca in glob_vector
|
|
|
|
3/1
|
|
---
|
|
lib/glob/glob.c
|
|
- in glob_vector, when freeing up the linked list after some error,
|
|
make sure to set `tmplink' to 0 if `firstlink' is set to 0, else we
|
|
get multiple-free errors
|
|
|
|
3/5
|
|
---
|
|
trap.c
|
|
- inheritance of the DEBUG, RETURN, and ERR traps is now dependent
|
|
only on the `functrace' and `errtrace' shell options, as the
|
|
documentation says, rather than on whether or not the shell is in
|
|
debugging mode. Reported by Philip Susi <psusi@cfl.rr.com>
|
|
|
|
parse.y
|
|
- in parse_matched_pair, don't recursively parse ${...} or other
|
|
${...} constructs inside ``
|
|
- in parse_matched_pair, remove special code that recursively parses
|
|
quoted strings inside `` constructs. For Bourne shell compatibility
|
|
|
|
3/6
|
|
---
|
|
builtins/pushd.def
|
|
- let get_directory_stack take take an `int flags' argument and convert
|
|
$HOME to ~ if flags&1 is non-zero
|
|
|
|
builtins/common.h
|
|
- change extern declaration for get_directory_stack
|
|
|
|
variables.c
|
|
- call get_directory_stack with an arg of 0 to inhibit converting
|
|
$HOME to ~ in the result. Fixes cd ${DIRSTACK[1]} problem
|
|
reported by Len Lattanzi <llattanzi@apple.com> (cd fails because
|
|
the tildes won't be expanded after variable expansion)
|
|
|
|
jobs.c
|
|
- changed hangup_all_jobs slightly so stopped jobs marked J_NOHUP
|
|
won't get a SIGCONT
|
|
|
|
general.c
|
|
- changed check_binary_file() to check for a NUL byte instead of a
|
|
non-printable character. Might at some point want to check
|
|
entire (possibly multibyte) characters instead of just bytes. Hint
|
|
from ksh via David Korn
|
|
|
|
3/7
|
|
---
|
|
builtins/reserved.def
|
|
- changed runs of spaces to tabs in variables help text to make
|
|
indentation better when displayed
|
|
|
|
builtins/mkbuiltins.c
|
|
- changes to avoid the annoying extra space that keeps gettext from
|
|
being passed an empty string
|
|
|
|
3/9
|
|
---
|
|
lib/glob/glob.c
|
|
- make sure globbing is interrupted if the shell receives a terminating
|
|
signal
|
|
|
|
3/14
|
|
----
|
|
lib/readline/search.c
|
|
- call rl_message with format argument of "%" in _rl_nsearch_init
|
|
to avoid `%' characters in the prompt string from being interpreted
|
|
as format specifiers to vsnprintf/vsprintf
|
|
|
|
3/19
|
|
----
|
|
parse.y, eval.c, input.h
|
|
- change execute_prompt_command to execute_variable_command; takes the
|
|
variable name as a new second argument
|
|
|
|
3/25
|
|
----
|
|
bashline.c
|
|
- command_word_completion_function keeps track of when it's searching
|
|
$PATH and doesn't return directory names as matches in that case.
|
|
Problem reported by Pascal Terjan <pterjan@mandriva.com>
|
|
- command_word_completion_function returns what it's passed as a
|
|
possible match if it's the name of a directory in the current
|
|
directory (only non-absolute pathnames are so tested).
|
|
|
|
3/27
|
|
----
|
|
subst.c
|
|
- expand_arith_string takes a new argument: quoted. Either 0 (outside
|
|
subst.c) or Q_DOUBLE_QUOTES (substitution functions); changed callers
|
|
|
|
subst.h
|
|
- changed extern declaration for expand_arith_string
|
|
|
|
arrayfunc.c
|
|
- changed call to expand_arith_string in array_expand_index
|
|
|
|
3/31
|
|
----
|
|
lib/readline/histfile.c
|
|
- change read_history_range to allow windows-like \r\n line endings
|
|
|
|
execute_cmd.c
|
|
- add new variable, line_number_for_err_trap, currently set but not
|
|
used
|
|
|
|
4/2
|
|
---
|
|
lib/sh/strtrans.c
|
|
- add code to echo -e and echo with xpg_echo enabled to require
|
|
a leading 0 to specify octal constants
|
|
|
|
4/3
|
|
---
|
|
subst.c
|
|
- slight change to wcsdup() replacement: use memcpy instead of wcscpy
|
|
|
|
parse.y
|
|
- before turning on W_COMPASSIGN, make sure the final character in the
|
|
token is a `(' (avoids problems with things like a=(4*3)/2)
|
|
|
|
4/4
|
|
---
|
|
lib/sh/snprintf.c
|
|
- in number() and lnumber(), turn off PF_ZEROPAD if explicit precision
|
|
supplied in format
|
|
- change number() and lnumber() to correctly implement zero-padding
|
|
specified by a non-zero `.precision' part of the format
|
|
|
|
subst.c
|
|
- new flag for extract_delimited_string: EX_COMMAND. For $(...), so
|
|
we can do things like skip over delimiters in comments. Added to
|
|
appropriate callers
|
|
- changes to extract_delimited_string to skip over shell comments when
|
|
extracting a command for $(...) (EX_COMMAND is contained in the
|
|
flags argument)
|
|
|
|
4/5
|
|
---
|
|
subst.c
|
|
- first argument to skip_single_quoted is now a const char *
|
|
- new function, chk_arithsub, checks for valid arithmetic expressions
|
|
by balancing parentheses. Fix based on a patch from Len Lattanzi
|
|
|
|
4/6
|
|
---
|
|
{configure,config.h}.in
|
|
- add separate test for isnan in libc, instead of piggybacking on
|
|
isinf-in-libc test
|
|
|
|
lib/sh/snprintf.c
|
|
- separate the isnan replacement function so it's guarded by its own
|
|
HAVE_ISNAN_IN_LIBC define
|
|
|
|
lib/sh/wcsdup.c
|
|
- new file, contains replacement wcsdup library function from subst.c
|
|
with change back to using wcscpy
|
|
|
|
Makefile.in,lib/sh/Makefile.in
|
|
- make sure wcsdup.c is compiled and linked in
|
|
|
|
subst.c
|
|
- wcsdup now found in libsh; removed static definition
|
|
|
|
4/10
|
|
----
|
|
lib/readline/callback.c
|
|
- loop over body of rl_callback_read_char as long as there is additional
|
|
input rather than just calling readline_internal_char, which does
|
|
not handle multi-character key sequences or escape-prefixed chars
|
|
|
|
lib/readline/macro.c
|
|
- make sure we turn off RL_STATE_MACROINPUT when the macro stack is
|
|
empty if we are reading additional input with RL_STATE_MOREINPUT
|
|
|
|
support/shobj-conf
|
|
- Mac OS X no longer likes the `-bundle' option to gcc when creating a
|
|
dynamic shared library
|
|
|
|
4/11
|
|
----
|
|
lib/tilde/tilde.c
|
|
- don't try to dereference user_entry if HAVE_GETPWENT isn't defined
|
|
|
|
lib/readline/input.c
|
|
- make sure chars_avail is not used without being assigned a value in
|
|
rl_gather_tyi
|
|
- use _kbhit() to check for available input on Windows consoles, in
|
|
rl_gather_tyi and _rl_input_available
|
|
|
|
4/21
|
|
----
|
|
lib/readline/display.c
|
|
- calculate (in expand_prompt) and keep track of length of local_prompt
|
|
in local_prompt_len; use where appropriate
|
|
- when using o_pos to check whether or not we need to adjust
|
|
_rl_last_c_pos after calling update_line, assume that it's correct
|
|
(a buffer index in non-multibyte locales and a cursor position in
|
|
multibyte locales) and adjust with wrap_offset as appropriate
|
|
- in update_line, set cpos_adjusted to 1 after calling
|
|
_rl_move_cursor_relative to move to the end of the displayed prompt
|
|
string
|
|
- in _rl_move_cursor_relative, check that the multibyte display
|
|
position is after the last invisible character in the prompt string
|
|
before offsetting it by the number of invisible characters in the
|
|
prompt (woff)
|
|
|
|
4/26
|
|
----
|
|
lib/readline/doc/{rluser.texi,readline.3}
|
|
- make sure to note that key bindings don't allow any whitespace
|
|
between the key name or sequence to be bound and the colon
|
|
|
|
4/28
|
|
----
|
|
lib/readline/display.c
|
|
- in update_line, make sure we compare _rl_last_c_pos as strictly less
|
|
than PROMPT_ENDING_INDEX, since it's 0-based, to avoid multiple
|
|
prompt redraws
|
|
|
|
5/4
|
|
---
|
|
parse.y
|
|
- in decode_prompt_string, only prefix the expansion of \[ or \]
|
|
with CTLESC if the corresponding readline escape character is
|
|
CTLESC (coincidentally the same as \[) or CTLNUL. Bug report sent
|
|
by Mike Frysinger <vapier@gentoo.org> prompted the discovery
|
|
|
|
aclocal.m4
|
|
- slight change to test for /dev/fd to compensate for a linux
|
|
failing; suggested by Mike Frysinger <vapier@gentoo.org>
|
|
|
|
5/9
|
|
---
|
|
arrayfunc.c
|
|
- broke assign_array_var_from_string into two functions:
|
|
expand_compound_array_assignment and assign_compound_array_list;
|
|
assign_array_var_from_string just calls those functions now
|
|
|
|
arrayfunc.h
|
|
- new extern declarations for expand_compound_array_assignment and
|
|
assign_compound_array_list
|
|
|
|
subst.c
|
|
- in do_compound_assignment, call expand_compound_array_assignment
|
|
before creating the local variable so a previous inherited
|
|
value can be used when expanding the rhs of the compound assignment
|
|
statement
|
|
|
|
5/11
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- clarifed `trap' description to make it clear that trapped signals
|
|
that are not set to SIG_IGN are reset when a subshell is created
|
|
|
|
5/18
|
|
----
|
|
locale.c
|
|
- change reset_locale_vars to call setlocale (LC_ALL, "") if LANG
|
|
is unset or NULL
|
|
- if LANG is unset or NULL, reset the export environment before
|
|
calling setlocale in reset_locale_vars, and trust that it will
|
|
change the environment setlocale() inspects
|
|
|
|
5/21
|
|
----
|
|
lib/readline/history.c
|
|
- new function, HIST_ENTRY *alloc_history_entry (char *string, char *ts);
|
|
creates a new history entry with text STRING and timestamp TS (both
|
|
of which may be NULL)
|
|
- new function, HIST_ENTRY *copy_history_entry (HIST_ENTRY *hist),
|
|
which copies the line and timestamp entries to new memory but just
|
|
copies the data member, since that's an opaque pointer
|
|
- new function, void replace_history_data (int which, histdata_t *old, histdata_t *new)
|
|
which replaces the `data' member of specified history entries with
|
|
NEW, as long as it is OLD. WHICH says which history entries to
|
|
modify
|
|
- add calls to replace_history_data in rl_free_undo_list and
|
|
rl_do_undo
|
|
|
|
lib/readline/undo.c
|
|
- new function, alloc_undo_entry (enum undo_code what, int start, int end, char *text)
|
|
takes care of allocating and populating a struct for an individual
|
|
undo list entry
|
|
- new function: _rl_copy_undo_entry(UNDO_LIST *entry)
|
|
- new function: _rl_copy_undo_list(UNDO_LIST *head)
|
|
|
|
lib/readline/rlprivate.h
|
|
- new extern declarations for _rl_copy_undo_{entry,list}
|
|
|
|
execute_cmd.c
|
|
- change execute_cond_node so that quoting the rhs of the =~
|
|
operator forces string matching, like the == and != operators
|
|
|
|
5/23
|
|
----
|
|
redir.c
|
|
- add_undo_redirect now takes as an additional argument the type of
|
|
redirection we're trying to undo
|
|
- don't add a "preservation" redirection for fds > SHELL_FD_BASE if
|
|
the redirection is closing the fd
|
|
|
|
5/24
|
|
----
|
|
subst.c
|
|
- make sure that parameter_brace_substring leaves this_command_name
|
|
set to either NULL or its previous value after setting it so that
|
|
arithmetic evaluation errors while expanding substring values
|
|
contain meaningful information
|
|
|
|
6/9
|
|
---
|
|
execute_cmd.c
|
|
- make sure that SUBSHELL_ASYNC and SUBSHELL_PIPE are set as flag bits
|
|
in subshell_environment, rather than setting only a single value
|
|
- change execute_subshell_builtin_or_function to give the `return'
|
|
builtin a place to longjmp to when executed in a subshell or pipeline
|
|
(mostly as the last command in a pipeline). Bug reported by
|
|
Oleg Verych <olecom@gmail.com>
|
|
- in execute_simple_command, make sure to call execute_disk_command
|
|
with the_printed_command_except_trap to keep DEBUG trap command
|
|
strings from overwriting the command strings associated with jobs
|
|
and printed in job control messages. Bug reported by Daniel Kahn
|
|
Gillmor <dkg-debian.org@fifthhorseman.net>
|
|
|
|
[bash-3.2-alpha frozen]
|
|
|
|
6/22
|
|
----
|
|
syntax.h
|
|
- add new CBLANK (for [:blank:] class) flag value for syntax table and
|
|
shellblank(c) character test macro
|
|
|
|
mksyntax.c
|
|
- add support for setting CBLANK flag in the syntax table depending on
|
|
whether or not isblank(x) returns true for character x
|
|
|
|
locale.c
|
|
- change locale_setblanks to set or unset CBLANK flag for each
|
|
character when locale changes
|
|
|
|
parse.y
|
|
- change call to whitespace(c) in lexical analyzer (read_token()) to
|
|
call shellblank(c) instead, so locale-specific blank characters are
|
|
treated as white space. Fixes bug reported by Serge van deb Boom
|
|
<svdb+bug-bash@stack.nl>
|
|
|
|
print_cmd.c
|
|
- when printing redirections, add a space between <, >, and <> and the
|
|
following word, to avoid conflicts with process substitution. Bug
|
|
reported by Ittay Dror <ittyad@qlusters.com>
|
|
|
|
6/26
|
|
----
|
|
configure.in
|
|
- set CROSS_COMPILE to the empty string by default, so we don't inherit
|
|
a random value from the environment. Bug reported by
|
|
Lee Revell <rlrevell@joe-job.com>
|
|
|
|
6/29
|
|
----
|
|
lib/glob/xmbsrtowcs.c
|
|
- make sure destp is non-null before assigning a 0 to *destp in
|
|
xdupmbstowcs. Fix from Louiwa Salem <loulwas@us.ibm.com>
|
|
|
|
execute_cmd.c
|
|
- fix execute_in_subshell to make sure asynchronous isn't set to 0
|
|
before subshell_environment is set appropriately and
|
|
setup_async_signals is run. Based on report by Louiwa Salem
|
|
<loulwas@us.ibm.com>
|
|
|
|
lib/readline/bind.c
|
|
- in rl_generic_bind(), make sure that the keys array is freed before
|
|
an error return. Fix from Louiwa Salem <loulwas@us.ibm.com>
|
|
|
|
7/1
|
|
---
|
|
builtins/read.def
|
|
- make sure all editing code is protected with #ifdef READLINE, esp.
|
|
unwind-protect that restores the default completion function
|
|
|
|
lib/readline/display.c
|
|
- make sure to set local_prompt_len in rl_message() [in bash-3.2-alpha]
|
|
|
|
7/5
|
|
---
|
|
builtins/printf.def
|
|
- add more of echo's write error handling to printf. Suggested by
|
|
martin.wilck@fujitsu-siemens.com
|
|
|
|
7/7
|
|
---
|
|
lib/readline/display.c
|
|
- save and restore local_prompt_len in rl_{save,restore}_prompt
|
|
[in bash-3.2-alpha]
|
|
|
|
7/8
|
|
---
|
|
[bash-3.2-alpha released]
|
|
|
|
7/9
|
|
---
|
|
lib/readline/display.c
|
|
- make sure that _rl_move_cursor_relative sets cpos_adjusted when it
|
|
offsets `dpos' by wrap_offset in a multi-byte locale. Bug reported
|
|
by Andreas Schwab and Egmont Koblinger
|
|
|
|
subst.c
|
|
- make sure that the call to mbstowcs in string_extract_verbatim is
|
|
passed a string with enough space for the closing NUL. Reported
|
|
by Andreas Schwab
|
|
|
|
7/18
|
|
----
|
|
lib/readline/{display,terminal}.c
|
|
- remove #ifdefs for HACK_TERMCAP_MOTION so we can use
|
|
_rl_term_forward_char in the redisplay code unconditionally
|
|
|
|
lib/readline/rlprivate.h
|
|
- new extern declaration for _rl_term_forward_char
|
|
|
|
lib/readline/display.c
|
|
- in _rl_move_cursor_relative, use `dpos' instead of `new' when
|
|
deciding whether or not a CR is faster than moving the cursor from
|
|
its current position
|
|
- in _rl_move_cursor_relative, we can use _rl_term_forward_char to
|
|
move the cursor forward in a multibyte locale, if it's available.
|
|
Since that function doesn't have a handle on where the cursor is in
|
|
the display buffer, it has to output a cr and print all the data.
|
|
Fixes rest of problem reported by Egmont Koblinger
|
|
- change variable denoting the position of the cursor in the line buffer
|
|
from c_pos (variable local to rl_redisplay) to cpos_buffer_position
|
|
(variable local to file) for future use by other functions
|
|
|
|
7/25
|
|
----
|
|
lib/malloc/{stats,table}.h
|
|
- include <string.h> for prototypes for memset, strlen
|
|
|
|
lib/termcap/{termcap,tparam}.c
|
|
- include <string.h> and provide macro replacement for bcopy if
|
|
necessary
|
|
|
|
7/27
|
|
----
|
|
lib/readline/histexpand.c
|
|
- add support for `<<<' here-string redirection operator to
|
|
history_tokenize_word. Bug reported by agriffis@gentoo.org
|
|
|
|
externs.h
|
|
- don't add prototype for strerror() if HAVE_STRERROR defined
|
|
|
|
7/29
|
|
----
|
|
subst.c
|
|
- in list_string, use `string' instead of `s' -- s is not initialized
|
|
|
|
8/9
|
|
---
|
|
subst.c
|
|
- fix parameter_brace_expand to set W_HASQUOTEDNULL in the WORD_DESC it
|
|
returns if the result of parameter_brace_substring is a quoted null
|
|
("\177"). Fixes bug reported by Igor Peshansky <pechtcha@cs.nyu.edu>
|
|
|
|
8/16
|
|
----
|
|
lib/readline/readline.h
|
|
- new #define, READERR, intended to be used to denote read/input errors
|
|
|
|
lib/readline/input.c
|
|
- in rl_getc, if read() returns an error other than EINTR (after the
|
|
EWOULDBLOCK/EAGAIN cases are handled), return READERR rather than
|
|
converting return value to EOF if readline is reading a top-level
|
|
command (RL_STATE_READCMD)
|
|
|
|
lib/readline/readline.c
|
|
- if rl_read_key returns READERR to readline_internal_char[loop],
|
|
abort as if it had read EOF on an empty line, without any conversion
|
|
to newline, which would cause a partial line to be executed. This
|
|
fixes the bug reported by Mathieu Bonnet <mathieu.bonnet@nalkym.org>
|
|
|
|
aclocal.m4
|
|
- when testing for validity of /dev/fd/3, use /dev/null instead of
|
|
standard input, since the standard input fails with linux and `su'.
|
|
Bug reported by Greg Shafer <gschafer@zip.com.au>
|
|
|
|
8/17
|
|
----
|
|
Makefile.in
|
|
- switch the TAGS and tags targets so TAGS is the output of `etags' and
|
|
tags is the output of `ctags'. Suggested by Masatake YAMATO
|
|
|
|
8/25
|
|
----
|
|
execute_cmd.c
|
|
- change code to match documentation: set BASH_COMMAND (which takes its
|
|
value from the_printed_command_except_trap) only when not running a
|
|
trap. Rocky says the debugger is ok with this, and this is what his
|
|
original diffs did
|
|
|
|
8/29
|
|
----
|
|
variables.c
|
|
- change set_if_not to create shell_variables if it is NULL, since
|
|
-o invocation options can cause variables to be set before the
|
|
environment is scanned
|
|
|
|
[bash-3.2-beta frozen]
|
|
|
|
9/5
|
|
---
|
|
[bash-3.2-beta released]
|
|
|
|
9/8
|
|
---
|
|
variables.c
|
|
- change dispose_used_env_vars to call maybe_make_export_env
|
|
immediately if we're disposing a temporary environment, since
|
|
`environ' points to the export environment and getenv() will use
|
|
that on systems that don't allow getenv() to be replaced. This
|
|
could cause the temporary environment to affect the shell. Bug
|
|
reported by Vasco Pedro <vp@di.uevora.pt>
|
|
|
|
builtins/echo.def,doc/{bash.1,bashref.texi}
|
|
- clarify that `echo -e' and echo when the `xpg_echo' shell option is
|
|
enabled require the \0 to precede any octal constant to be expanded.
|
|
Reported by Vasco Pedro <vp@di.uevora.pt>
|
|
|
|
9/12
|
|
----
|
|
builtins/printf.def
|
|
- make sure `%q' format specifier outputs '' for empty string arguments
|
|
Bug reported by Egmont Koblinger <egmont@uhulinux.hu>
|
|
|
|
make_cmd.c
|
|
- change make_here_document to echo lines in here-doc if set -v has
|
|
been executed. Reported by Eduardo Ochs <eduardoochs@gmail.com>
|
|
|
|
aclocal.m4
|
|
- change BASH_CHECK_MULTIBYTE:
|
|
o replace check for wctomb with check for wcrtomb
|
|
o add checks for wcscoll, iswctype, iswupper, iswlower,
|
|
towupper, towlower
|
|
o add call to AC_FUNC_MBRTOWC to check for mbrtowc and mbstate_t
|
|
define HAVE_MBSTATE_T manually
|
|
o add checks for wchar_t, wctype_t, wint_t
|
|
|
|
config.h.in
|
|
- add defines for wcscoll, iswctype, iswupper, iswlower, towupper,
|
|
towlower functions
|
|
- replace define for wctomb with one for wcrtomb
|
|
- add defines for wchar_t, wint_t, wctype_t types
|
|
|
|
config-bot.h, lib/readline/rlmbutil.h
|
|
- add check for HAVE_LOCALE_H before defining HANDLE_MULTIBYTE
|
|
- add checks for: ISWCTYPE, ISWLOWER, ISWUPPER, TOWLOWER, TOWUPPER
|
|
- add checks for: WCTYPE_T, WCHAR_T, WCTYPE_T
|
|
|
|
9/13
|
|
----
|
|
lib/readline/display.c
|
|
- when displaying prompts longer than the screenwidth in rl_redisplay,
|
|
and looking for the index of the last character whose buffer index
|
|
is <= the screen width to set up the inv_lbreaks array, make sure to
|
|
catch the case where the index == the screen width (an off-by-one
|
|
error occurs otherwise with prompts one character longer than the
|
|
screen width). Bug reported by Alexey Toptygin <alexeyt@freeshell.org>
|
|
|
|
configure.in
|
|
- change DEBUGGER_START_FILE to start with ${ac_default_prefix}/share,
|
|
like bashdb installs itself. Reported by Nick Brown
|
|
<nickbroon@blueyonder.co.uk>
|
|
|
|
9/14
|
|
----
|
|
lib/readline/display.c
|
|
- make multibyte code that computes the buffer indices of line breaks
|
|
for a multi-line prompt dependent on MB_CUR_MAX, so we don't take
|
|
the function call hit unless we're in a locale that can have
|
|
multibyte characters
|
|
|
|
9/19
|
|
----
|
|
subst.c
|
|
- make dequote_list extern so other parts of the shell can use it
|
|
|
|
subst.h
|
|
- extern declaration for dequote_list
|
|
|
|
builtins/read.def
|
|
- call dequote_list before assigning words read to array variable if
|
|
we saw an escape character. Old code left spurious CTLESCs in the
|
|
string after processing backslashes. Bug reported by Daniel Dawson
|
|
<ddawson@icehouse.net>
|
|
|
|
9/21
|
|
----
|
|
[bash-3.2 frozen]
|