Your IP : 216.73.216.48
7/27/2004
---------
[bash-3.0 released]
7/28
----
array.c
- in array_insert(), make sure the value to be added is non-NULL before
calling savestring() on it
builtins/reserved.def
- fix description of `CDPATH'
lib/readline/display.c
- when expanding a prompt that spans multiple lines with embedded
newlines, set prompt_physical_chars from the portion after the
final newline, not the preceding portion. Bug reported by
"Ralf S. Engelschall" <rse@engelschall.com>
make_cmd.c
- explicitly declare `lineno' in function prologue for make_case_command
builtins/evalfile.c
- include `trap.h' for declaration for run_return_trap
bashline.c
- fix a `return' without a value in enable_hostname_completion
general.c
- include test.h for extern declaration for test_eaccess
externs.h
- add declaration for zcatfd
tests/{history,histexp}.tests
- unset HISTFILESIZE to avoid problems if a value of 0 is inherited
from the environment
7/30
----
bashline.c
- small changes to glob_expand_word to perform tilde expansion before
attempting globbing
builtins/Makefile.in
- fix the install-help target to not cd into the `helpfiles'
subdirectory, so a value of $INSTALL_DATA containing a relative
pathname (e.g., .././support/install.sh) remains valid
7/31
----
subst.c
- new function, mbstrlen(s), returns length of a multibyte character
string
include/shmbutil.h
- new macro, MB_STRLEN(s), calls mbstrlen or STRLEN as appropriate
builtins/trap.def
- small change so that a first argument that's a valid signal number
(digits only -- no symbolic names) will be treated as a signal and
reverted back to the original handling disposition. Fixes debian
complaints
subst.c
- call MB_STRLEN instead of STRLEN where appropriate in
parameter_brace_expand_length to handle multibyte characters properly
- call MB_STRLEN instead of strlen in verify_substring_values so that
negative substrings of strings with multibyte chars work properly
8/1
---
jobs.c
- describe_pid needs to write to stderr, not stdout (POSIX)
- start_job, since it's only used by builtins (fg/bg), needs to write
its output to stdout, not stderr (POSIX)
sig.c
- add an `orig_flags' member to struct terminating_signal so the
original signal handling flags (SA_RESTART, etc.) can be preserved
on POSIX systems
- make sure to preserve the signal flags state in
initialize_terminating_signals and reset them for child processes
in reset_terminating_signals
builtins/fc.def
- fixed an off-by-one error that caused `fc -l' to list one too many
history entries
- in posix mode, `fc' should not list any indication as to whether or
not history lines have been modified (POSIX)
- when in posix mode, the default editor for `fc' should be `ed' (POSIX)
doc/bashref.texi
- updated the description of `trap' behavior when given a first
argument that is a valid signal number
- noted that `fc -l' won't indicate whether a history entry has been
modified if the shell is in posix mode
builtins/command.def
- fixed bug: `command -v' is supposed to be silent if a command is not
found
builtins/hash.def
- `hash' should print its `hash table empty' message to stderr
lib/readline/misc.c
- back out 7/7 change to _rl_maybe_save_line; it breaks emacs-mode ^P
general.c
- changed base_pathname so that it will return reasonable results for
non-absolute pathnames -- this is what is intended by all of its
callers
arrayfunc.c
- fix array_variable_part to return NULL if it finds an invisible
variable in the hash table. Fixes seg fault caused by referring to
unset local variable using array notation
{locale,variables}.c
- support LC_TIME as a special locale variable so HISTTIMEFORMAT tracks
the current locale
8/2
---
variables.c
- fixed small memory leak in makunbound() when a local array variable
is unset. Fix from William Park
lib/readline/display.c
- fixed a problem when computing the number of invisible characters on
the first line of a prompt whose length exceeds the screen width
(should only happen when invisible characters occur after the
line wrap). Bug reported by agriffis@gentoo.org
builtins/command.def
- `command -V' passes a new flag, CDESC_ABSPATH, which means to convert
to an absolute path
builtins/type.def
- in posix mode, `type' and `command -v/-V' should not report
non-executable files, even if the execution code will attempt to
run them. Other posix shells do this
doc/bashref.texi
- add note to POSIX Mode section describing behavior of type and command
when finding a non-executable file
execute_cmd.c
- force extended_glob to 1 before calling binary_test in
execute_cond_node so that the right extended pattern matching gets
performed
8/3
---
braces.c
- make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars
with values > 128 are handled correctly
builtins/printf.def
- change bexpand() and printstr() to handle strings with a leading
'\0' whose length is non-zero, since that's valid input for the
`%b' format specifier
subst.c
- fix a couple of instances of find_variable that didn't check the
result for an invisible variable
variables.c
- BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as
invisible vars
pcomplete.c
- make sure COMP_WORDS is not invisible when bind_comp_words returns
- ditto for COMPREPLY in gen_shell_function_matches
8/4
---
braces.c
- fix problem where ${ was ignored but did not increment the open
brace count. Bug reported by Tim Waugh <twaugh@redhat.com>
variables.c
- if make_local_variable finds a variable in the correct context in
the right variable scope, make sure it's not invisible before
returning it
8/5
---
builtins/trap.def
- fixed usage message to show `action' as not optional, though it
actually is when not in posix mode (for a single argument)
8/7
---
configure.in
- kfreebsd-gnu has had its sbrk() problems fixed, and no longer needs
to be configured --without-gnu-malloc
lib/readline/vi_mode.c
- in rl_vi_search, free any saved history line before starting the
search, so failure leaves you at that line, not the last line in
the history (assuming the current line is not the last history line).
Fix from llattanzi@apple.com to replace fix of 7/7
8/9
---
support/Makefile.in
- renamed `mostly-clean' target to `mostlyclean'
8/11
----
lib/readline/vi_mode.c
- make same change for EOL in multibyte character case of
rl_vi_change_char
8/12
----
subst.c
- in verify_substring_values, fix off-by-one error checking bounds of
`offset', esp. in array values (e.g., getting the highest element
of an array)
8/16
----
aclocal.m4
- change BASH_CHECK_DEV_FD to make sure that file descriptors > 2 are
accessible via /dev/fd, unlike FreeBSD 5.x
lib/sh/strftime.c
- make sure `zone' is initialized with gettimeofday before it is used
- work around HPUX lack of `altzone' and differing definitions of
`timezone'
lib/malloc/malloc.c
- internal_memalign and memalign now take a `size_t' as their first
argument, which seems to be the prevailing standard
lib/malloc/{malloc.c,shmalloc.h}
- change sh_memalign to take a `size_t' as its first argument
builtins/echo.def
- if posixly_correct and xpg_echo are both set, don't try to interpret
any arguments at all, as POSIX/XOPEN requires (fix inspired by Paul
Eggert)
doc/bashref.texi
- amend description of bash posix mode to include new echo behavior
builtins/fg_bg.def
- allow bg to take multiple job arguments, as posix seems to specify,
placing them all in the background, returning the status of the last
one as the status of `bg'
lib/readline/vi_mode
- fix _rl_vi_change_mbchar_case (multibyte-char version of `~'
command) to have the right behavior at EOL -- handle case where vi
mode backs up at the end of the line
8/18
----
array.c
- check for an empty array in array_rshift before shifting elements
and adjusting max_index
- check for null array in array_subrange
jobs.c
- fix raw_job_exit_status to not ignore exit status of the last
process in the pipeline when `set -o pipefail' is enabled
8/19
----
lib/readline/mbutil.c
- make sure _rl_find_next_mbchar_internal has a valid multibyte
character before it checks whether or not it's a zero-width
wide character and adjusts point accordingly
8/24
----
bashline.c
- new function, bash_directory_expansion, duplicates the expansions
performed on the directory name by rl_filename_completion_function
- call bash_directory_expansion in command_word_completion_function
if we decide we're doing tilde expansion (and any other
canonicalization) on the directory name being completed
8/25
----
configure.in
- use new-style AC_CHECK_HEADER to check for sys/ptem.h (which requires
sys/stream.h). The correct checks are in the code, but autoconf
complains if sys/stream.h is not included, rather than simply
checking for the header's presence
8/26
----
builtins/hash.def
- fix a bug that prevented `hash -d' from working right (as soon as
hash removed a command from the table, the bug caused it to be added
right back)
8/27
----
doc/{bash.1,bashref.texi}
- explicitly note that conditional primaries that operate on files
operate on the targets of symbolic links rather than the links
themselves
8/30
----
lib/readline/display.c
- fix multibyte calculation of `physchars' in prompt expansion, to
handle double-width multibyte characters correctly
- changes to rl_redisplay to handle prompts longer than the screenwidth
that might contain double-width multibyte characters. Fixes from
Tomohiro Kubota
9/6
---
subst.c
- change word_list_split to avoid really bad behavior caused by calling
list_append for each split word -- as the list gets long, you have
to traverse it every time. Keep a pointer to the end of the list and
and just tack onto it
9/8
---
lib/readline/complete.c
- change fnprint to calculate the displayed width of a filename in
the same way as fnwidth
subst.c
- in verify_substring_values, when expanding ${array[@]:offset}, make
sure negative offsets count from one greater than the array's
maximum index so things like ${x[@}: -1} work to give the last element
(requires fixing array tests)
builtins/common.c
- new error function, sh_wrerror(), for builtins to call when a write
error occurs
builtins/common.h
- extern declaration for sh_wrerror()
builtins/cd.def
- change builtin_error call to use sh_wrerror()
builtins/echo.def
- report write errors with sh_wrerror() instead of just returning
failure
builtins/printf.def
- change printstr to return failure (-1) or success (0) indication
rather than void
- report write errors when printstr() fails, return failure
- if any of the PF/printf calls fail, report write error and return
failure
execute_cmd.c
- change execute_in_subshell so the subshell command inherits the
command timing flags from the enclosing COMMAND *
9/11
----
[prayers for the victims of 9/11/2001]
lib/sh/strnlen.c
- new file, implementation of GNU libc extension function strnlen
lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST
- changes for strnlen
configure.in
- version changed to 3.1-devel
doc/bash.1, lib/readline/doc/rluser.texi
- added description of `-o plusdirs' to complete/compgen (thanks,
Arnold)
parse.y
- new parser_state flag, PST_ASSIGNOK, if set indicates we're parsing
arguments to a builtin that accepts assignment statement arguments
- turn on PST_ASSIGNOK in read_token_word when appropriate
- turn off PST_ASSIGNOK in read_token when appropriate
- don't attempt to parse a compound assignment specially unless we're
in a position where an assignment statement is acceptable, or
PST_ASSIGNOK is set
9/13
----
variables.c
- make BASH_ARGC, BASH_ARGV, BASH_LINENO, and BASH_SOURCE
non-unsettable, since the shell uses those values internally
expr.c
- make exponentiation right-associative, as is apparently correct
9/16
----
arrayfunc.c
- make sure convert_var_to_array marks the environment as needing
recreation if the converted variable was exported
9/17
----
braces.c
- mark ${ as introducing an additional level of braces only if it's
not in a quoted string -- quoted strings are handled before brace
matching is done
parse.y
- fixed an obscure problem in history_delimiting_chars where the `in'
in a case statement could have a semicolon added after it, if the
`case word' was on a previous line
support/config.guess
- support for newest versions of tandem non-stop kernel
lib/readline/display.c
- in compute_lcd_of_matches, explicitly cast `text' to `char *' before
passing it to rl_filename_dequoting_function
lib/readline/terminal.c
- bind the key sequence sent by the keypad `delete' key to delete-char
(same as ^D in emacs mode)
builtins/ulimit.def
- in print_all_limits, don't print anything if get_limit returns
-1/EINVAL, indicating that the kernel doesn't support that particular
limit
- add -i (max number of pending signals), -q (max size of posix msg
queues), -x (max number of file locks) for systems (Linux) that
support them
doc/{bash.1,bashref.texi}
- fix description of correspondence between FUNCNAME, BASH_LINENO,
and BASH_SOURCE indices in description of BASH_LINENO
9/18
----
lib/sh/shquote.c
- don't quote CTLESC and CTLNUL with CTLESC in sh_backslash_quote, as
long as the resultant string never gets sent to the word expansion
functions without going through the shell parser
externs.h
- add extern declarations for strnlen and strpbkrk from lib/sh
subst.[ch]
- changes to handle case where IFS consists of multibyte characters.
Changed: string_extract_verbatim, split_at_delims,
string_list_dollar_star, string_list_dollar_at, list_string,
get_word_from_string, setifs
9/19
----
mailcheck.c
- change file_mod_date_changed to reset the cached mail file data if
the file size drops to zero
lib/readline/complete.c
- change append_to_match so that a non-zero value for
rl_completion_suppress_append will cause no `/' to be appended to a
directory name
bashline.c
- experimental change to suppress appending a slash for a completed
filename that is found in PATH as well as a directory in the current
directory under certain circumstances: a single instance found in
$PATH when `.' is not in $PATH, and multiple instances found in the
$PATH, even when `.' is in the $PATH
9/24
----
command.h
- new word flag: W_ASSIGNRHS, means word is rhs of assignment statement
- new word flag: W_NOTILDE, means word is not to be tilde expanded
- new word flag (internal): W_ITILDE, means the next character is a
tilde that should be expanded
general.c
- new set of tilde suffixes for use when parsing the RHS of an
assignment statement and =~ should not be subject to tilde expansion
- if ASSIGN_P argument to bash_tilde_expand is 2, use tilde prefixes
for parsing RHS of assignment statement
general.[ch]
- new function bash_tilde_find_word, drop-in replacement for
tilde_find_word
subst.c
- call bash_tilde_expand with secord argument of 2 when expanding rhs
of an assignment statement, so tildes after second and subsequent
`=' in an assignment are not expanded
- new function, expand_string_assignment, to expand the rhs of an
assignment statement
- add `~' to EXP_CHAR, the characters that will cause the word
expansion functions to be called
- move tilde expansion into expand_word_internal instead of many
different calls to bash_tilde_expand scattered across different
functions. NOTE: This means that double quotes surrounding a
{paramOPword} expansion will cause tilde expansion to NOT be
performed on `word'. I think this is right, what POSIX specifies,
and consistent with the behavior of other characters in the rhs
execute_cmd.c
- take out calls to bash_tilde_expand before calling word expansion
functions
9/26
----
execute_cmd.c
- make sure to call UNBLOCK_CHILD before returning on a pipe creation
failure in execute_pipeline
9/27
----
variables.c
- change get_bash_command to deal with the_printed_command_except_trap
being NULL
execute_cmd.c
- fix execute_simple_command to deal with the_printed_command being
NULL when assigning to the_printed_command_except_trap -- fixes
seg fault in savestring()
parse.y
- change the parser so that the closing `)' in a compound variable
assignment delimits a token -- ksh93 does it this way
doc/{bash.1,bashref.texi}
- change description of tilde expansion to note that expansion is
attempted only after the first =~ in an assignment statement
builtins/declare.def
- when assigning to an array variable with declare -a x=(...), make
sure the last character in the rhs of the variable assignment is
`)', not just that it appears somewhere
9/28
----
command.h
- add a `W_NOEXPAND' flag to inhibit all expansion except quote removal
- add a `W_COMPASSIGN' flag to denote a word is a compound assignment
statement
parse.y
- set W_COMPASSIGN on words that appear to be compound assignments
subst.c
- pass W_NOXPAND and W_COMPASSIGN through end of expand_word_internal
subst.[ch]
- new function, expand_assignment_string_to_string, calls
expand_string_assignment and then string_list on the result
variables.c
- assign_in_env now calls expand_assignment_string_to_string
9/30
----
builtins/common.c
- change get_job_spec so the null job `%' once again means the current
job
10/1
----
subst.c
- do_assignment_internal now takes a WORD_DESC * as its first
argument, and uses its `word' member as the assignment string
- change expand_word_list_internal to call do_word_assignment instead
of do_assignment, passing it `word' instead of, e.g., `word->word'
- change extract_array_assignment_list to just return the passed
string minus a trailing `)' if the last character is a right
paren
- change do_assignment_internal to call extract_array_assignment_list
subst.[ch]
- change do_assignment and do_assignment_no_expand to take a `char *'
instead of `const char *' first argument; change extern prototypes
- new function, do_word_assignment, takes a WORD_DESC * and calls
do_assignment_internal on it; add extern declaration with prototype
general.h
- new typedef, sh_wassign_func_t, like sh_assign_func_t but takes a
WORD_DESC * as its first argument
variables.[ch]
- assign_in_env now takes a WORD_DESC * as its first argument
10/2
----
command.h
- new word flag, W_ASSNBLTIN, denotes that the word is a builtin
command (in a command position) that takes assignment statements
as arguments, like `declare'
- new word flags, W_ASSIGNARG, denotes that word is an assignment
statement given as argument to assignment builtin
execute_cmd.c
- set W_ASSNBLTIN flag in fix_assignment_words if necessary (if there
are any arguments that are assignment statements)
- set W_ASSIGNARG flag in fix_assignment_words if necessary
subst.c
- new function, do_compound_assignment, encapsulates the necessary
code to perform a compound array assignment (including creation of
local variables); called from do_assignment_internal
- to fix the double-expansion problem with compound array assignments
that are arguments to builtins like `declare', changed
shell_expand_word_list to treat those arguments like assignment
statements (with proper creation of local variables inside shell
functions) and pass the attribute-setting portion of the statement
onto the builtin. This is what ksh93 appears to do, from inspection
of the `ksh93 -x' output
execute_cmd.c
- fix execute_simple_command: in case of pipeline or async command,
when forking early, set `subshell_environment' so that it can contain
both SUBSHELL_PIPE and SUBSHELL_ASYNC -- the two should not be
mutually exclusive. Fixes bug reported by pierre.humblet@ieee.org
- remove references to last_pid, old_command_subst_pid; use NO_PID as
a sentinel value to decide whether or not a child process has been
created and needs to be waited for. Submitted by
pierre.humblet@ieee.org to fix recycling-pid problem on cygwin
doc/{bash.1,bashref.texi}
- fixed documentation of `@(pattern)' extended globbing operator --
it succeeds if the string matches one of the patterns, not exactly
one. This is what ksh93 does, too
lib/readline/complete.c
- fixed rl_menu_complete so that a negative argument cycles backwards
through the list
10/3
----
subst.c
- use W_COMPASSIGN flag in do_assignment_internal instead of deciding
lexically which assignments are compound array assignments
10/6
----
support/shobj-conf
- additions for System V.5 from Boyd Gerber <gerberb@zenez.com>
subst.c
- in command_substitute, if subshell_environment includes
SUBSHELL_ASYNC, call make_child with the `async_p' argument set to
non-zero. This keeps command substitutions for async commands or
pipelines from trying to give the terminal back to the shell's
pgrp. make sure to save and restore last_asynchronous_pid. Fix
suggested by <pierre.humblet@ieee.org>
10/7
----
config.h.in
- add a placeholder definition for WCONTINUED_BROKEN
10/9
----
aclocal.m4
- add BASH_CHECK_WCONTINUED, checks for glibc bug where WCONTINUED is
defined but rejected as invalid by waitpid(2)
configure.in
- add call to BASH_CHECK_WCONTINUED, defines WCONTINUED_BROKEN
redir.c
- experimental change to add_undo_redirect to save manipulations to
file descriptors >= SHELL_FD_BASE (10) on the list of redirections
to be undone even if `exec' causes the list to be discarded
doc/{bash.1,bashref.texi}
- note that redirections using file descriptors > 9 should be used
carefully, because they might conflict with file descriptors the
shell uses internally
10/11
-----
parse.y
- fix pipeline_command production to handle case where `pipeline'
as `argument' of `!' or `time' is null (e.g., a syntax error not
handled by the grammar)
10/13
-----
lib/readline/readline.c
- new internal variable, _rl_bind_stty_chars; if non-zero, bind the
terminal special characters to readline equivalents at startup
- change readline_default_bindings() and reset_default_bindings() to
understand _rl_bind_stty_chars
lib/readline/rlprivate.h
- new extern declaration for _rl_bind_stty_chars
lib/readline/rltty.c
- change rl_prep_terminal to add support for _rl_bind_stty_chars
10/15
-----
lib/readline/bind.c
- new bindable variable, `bind-tty-special-chars', bound to value of
_rl_bind_stty_chars
doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- documented new readline variable `bind-tty-special-chars'
builtins/pushd.def
- make the first check for option `--' skip the rest of option
checking
10/16
-----
lib/readline/shell.c
- change sh_set_lines_and_columns to prefer setenv, which has
predictable memory allocation behavior, to putenv, which does not
10/19
-----
variables.c
- change push_exported_var so that a tempenv variable has to have the
export attribute set (which they all do -- something to look at) and
the `propagate' attribute set to be propagated down to the next
scope
execute_cmd.c
- change execute_builtin so that if CMD_COMMAND_BUILTIN is set in the
passed flags argument, call pop_scope with a value that says the
builtin is not special, since `command' means that preceding variable
assignments don't persist in the environment. Fixes problem with
variable assignments preceding command preceding special builtin
keeping those variable assignments around (when in posix mode)
10/20
-----
lib/sh/shquote.c
- new function, sh_mkdoublequoted, brackets a given string with
double quotes and returns a new string. Flags argument, if non-
zero, means to quote embedded double quotes with backslashes
externs.h
- new extern declaration for sh_mkdoublequoted
parse.y
- use sh_mkdoublequoted after calling localeexpand()
lib/sh/strtrans.c
- change ansicstr to understand that (flags & 4) != 0 means to remove
backslash from unrecognized escape sequences
general.c
- fix logic problem in assignment() that caused non-variable-starter
characters to be allowed, resulting in things like `1=xxx' creating
a variable `1' in the hash table
10/21
-----
bashline.c
- don't call programmable_completions with an assignment statement
argument
10/22
-----
lib/readline/rltty.c
- in prepare_terminal_settings, turn echoing on (readline_echoing_p)
if get_tty_settings fails because the input is not a terminal
10/24
-----
lib/readline/util.c
- include rlmbutil.h for multibyte definitions
- new function, _rl_walphabetic, wide char version of rl_alphabetic
lib/readline/mbutil.c
- new function, _rl_char_value(buf, ind), returns value of (possibly
multibyte) character at buf[ind]
lib/readline/rlmbutil.h
- extern defines for _rl_walphabetic and _rl_char_value for when
multibyte chars are not being used
- new wrapper definitions for _rl_find_next_mbchar (MB_NEXTCHAR) and
_rl_find_prev_mbchar (MB_PREVCHAR) that try to avoid unneeded
function calls
lib/readline/text.c
- fix rl_foward_word to work with multibyte characters (or in a
multibyte locale) using above utility functions
- fix rl_backward_word to work with multibyte characters (or in a
multibyte locale) using above utility functions
10/26
-----
parse.y
- fix parse_matched_pair so that it doesn't swallow \<newline> when
parsing a $'...' construct (call shell_getc with different arg)
10/28
-----
lib/glob/glob.c
- after some (compiled-in) threshold, glob_vector will stop using
alloca to allocate `struct globval's and will switch to using
malloc, with appropriate cleanup before returning
subst.c
- don't expand tildes after `=' in expand_word_internal, even if the
W_TILDEEXP flag is set, unless it's the first tilde in a word
marked W_ASSIGNMENT
10/31
-----
lib/readline/text.c
- make sure rl_point doesn't go below 0 in rl_delete_horizontal_space
(from SUSE, but not sent in)
shell.c
- make sure shell_is_restricted skips over a single leading `-' in
the shell name (from SUSE, but not sent in)
lib/readline/display.c
- disable `fast redisplay' at the end of the line if in a locale that
supports multibyte characters (from SUSE, but not sent in)
lib/readline/histexpand.c
- fix a problem with finding the delimiter of a `?' substring when
compiled for multibyte characters (from SUSE, but not sent in)
11/1
----
lib/readline/display.c
- correct some assignments to _rl_last_c_pos: when in a multibyte
locale, it's used as an absolute cursor position; when not using
multibyte characters, it's a buffer offset. I should have caught
this when the multibyte character support was donated
11/5
----
general.c
- change `assignment()' to accept `+=' assignment operator
arrayfunc.[ch]
- bind_array_variable and assign_array_element both take a new `flags'
argument
- assign_array_var_from_string, assign_array_from_string, and
assign_array_var_from_word_list now all take a new `flags' argument
- change assign_array_var_from_word_list to understand how to append
to an array variable
- change assign_array_var_from_string to understand how to append
to an array variable. It does not unset the previous value if
appending, allowing both old values to be changed and new ones to
be added
subst.h
- new flag #defines to use for evaluating assignment statements
{subst,variables}.c, builtins/{declare,read}.def
- change callers of assign_array_element and bind_array_variable
- change do_compound_assignment to understand assignment flags
- change do_assignment_internal to set assignment flags and pass them
to underlying functions
pcomplete.c,builtins/{declare,read}.def
- fix callers of assign_array_var_from_string, assign_array_var_from_word_list
variables.[ch]
- make_variable_value now takes a new `flags' argument
- make_variable_value now understands how to append to a particular
variable, using the old value
- bind_variable_value now takes a new `flags' argument
- change make_variable_value to understand ASS_APPEND flag
- bind_variable now takes a new `flags' argument
- bind_variable_internal now takes a new `flags' argument
arrayfunc.c
- change callers of make_variable_value to add flags arg
builtins/declare.def
- change callers of bind_variable_value to add flags arg
{execute_cmd,mailcheck,pcomplete,shell,subst,variables}.c,parse.y
builtins/{cd,command,declare,getopts,read,set,setattr}.def
- change callers of bind_variable to add flags arg
variables.c
- change callers of bind_variable_internal
- change bind_variable_internal to pass assignment flags on to
make_variable_value
- change assign_in_env to treat `var+=value' like `var=value'
arrayfunc.c
- break code that actually constructs the new value and assigns it
to a particular array index out into a new functions:
bind_array_var_internal. This fakes out make_variable_value by
passing a dummy SHELL_VAR * so it can do proper appending and other
+= processing
- changes to assign_array_var_from_string to accept and process as if
they were `standalone' assignment statements array assignment words
of the form [ind]+=val
11/7
----
builtins/declare.def
- added support for `declare [flags] var+=value'. `Flags' are applied
before the assignment is performed, which has implications for things
like `-i' -- if -i is supplied, arithmetic evaluation and increment
will be performed
builtins/setattr.def
- add support for `+=' assignment for rest of `assignment builtins':
export, readonly
11/12
-----
lib/readline/display.c
- make sure prompt_physical_chars and prompt_invis_chars_first_line
are reset to 0 if the prompt string passed to rl_expand_prompt is
NULL or empty
11/14
-----
{configure,config.h}.in
- check for `raise', define HAVE_RAISE if available
lib/intl/dcigettext.c
- make sure `raise' is defined if HAVE_RAISE is not before
eval-plurah.h is included
lib/malloc/trace.c
- put extern declaration for imalloc_fopen inside the MALLOC_TRACE
#ifdef
11/16
-----
lib/intl/Makefile.in
- make sure SHELL is defined to cpp
lib/intl/dcigettext.c
- make sure we use getcwd() even if HAVE_GETCWD is not defined after
including config.h; if SHELL is defined, #define HAVE_GETCWD
11/18
-----
trap.[ch]
- new function, int signal_in_progress(int sig), returns TRUE if the
trap handler for signal SIG is currently executing
11/19
-----
redir.c
- slightly change do_redirection_internal to set the close-on-exec
flag for file descriptors > 2 used to save file descriptors < 2
using explicit redirections (e.g., `exec 3>&1'). This keeps file
descriptors pointing to pipes from being left open but doesn't
change the shell's file descriptor semantics
11/20
-----
doc/{bash.1,bashref.texi}
- correct some minor typos, forwarded from doko@debian.org
11/22
-----
doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- documented detail that yank-last-arg and yank-nth-arg use the history
arg expansion code (and, as a result, are subject to restrictions
of the history-comment character)
11/23
-----
execute_cmd.c
- changes so that BASH_COMMAND preserves its value into a DEBUG trap:
for commands, arithmetic for command expressions, select commands,
case commands, (( commands, [[ commands, simple commands
11/24
-----
doc/{bash.1,bashref.texi}
- changed description of `set' builtin slightly so that it is clear
that only variables are displayed in posix mode and that read-only
variables can't be reset by simply sourcing the output of `set'
lib/sh/strftime.c
- don't try to redefine `inline' if it's already defined
11/26
-----
execute_cmd.c
- fix execute_function to check funcname_a after function execution,
since FUNCNAME can be changed or unset within a function
11/27
-----
builtins/evalfile.c
- make same changes as 11/26, this time to _evalfile
execute_cmd.c
- change execute_function to run the return trap after a function
completes execution even if the shell is compiled without DEBUGGER
defined