6256 lines
206 KiB
Text
6256 lines
206 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 cygnus 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
|