mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-29 16:39:53 +02:00
3499 lines
128 KiB
Plaintext
3499 lines
128 KiB
Plaintext
2/14/2011
|
|
---------
|
|
[bash-4.2 released]
|
|
|
|
2/15
|
|
----
|
|
lib/glob/gmisc.c
|
|
- fix wmatchlen and umatchlen to avoid going past the end of the
|
|
string on an incomplete bracket expression that ends with a
|
|
NUL. Partial fix for bug reported by Clark Wang <dearvoid@gmail.com>
|
|
|
|
2/16
|
|
----
|
|
subst.h
|
|
- new string extract flag value: SX_WORD. Used when calling
|
|
extract_dollar_brace_string to skip over the word in
|
|
${param op word} from parameter_brace_expand
|
|
|
|
subst.c
|
|
- change parameter_brace_expand to add SX_WORD to flags passed to
|
|
extract_dollar_brace_string
|
|
- change parameter_brace_expand to use SX_POSIXEXP for all non-posix
|
|
word expansion operators that treat single quotes as special, not
|
|
just % and #
|
|
- change extract_dollar_brace_string to initialize dolbrace_state to
|
|
DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use
|
|
DOLBRACE_QUOTE. Fixes bug reported by Juergen Daubert <jue@jue.li>
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document the exact expansions here strings undergo
|
|
|
|
2/17
|
|
----
|
|
lib/readline/vi_mode.c
|
|
- make sure that `dd', `cc', and `yy' call vidomove_dispatch from
|
|
rl_domove_read_callback. Fixes bug reported by Clark Wang
|
|
<dearvoid@gmail.com>
|
|
|
|
lib/readline/callback.c
|
|
- make sure _rl_internal_char_cleanup is called after the
|
|
vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char.
|
|
Companion to above fix
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- make sure that the text describing the rhs of the == and =~
|
|
operators to [[ states that only the quoted portion of the pattern
|
|
is matched as a string
|
|
|
|
2/18
|
|
----
|
|
lib/glob/gmisc.c
|
|
- better fix for umatchlen/wmatchlen: keep track of the number of
|
|
characters in a bracket expression as the value to increase
|
|
matchlen by if the bracket expression is not well-formed. Fixes
|
|
bug reported by Clark Wang <dearvoid@gmail.com>
|
|
|
|
subst.c
|
|
- change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag
|
|
in the word flags. We will not perform word splitting or quote
|
|
removal on the result, so we do not want to add quoted nulls if
|
|
we see "" or ''. Fixes bug reported by Mike Frysinger
|
|
<vapier@gentoo.org>
|
|
|
|
2/19
|
|
----
|
|
variables.c
|
|
- new function, int chkexport(name), checks whether variable NAME is
|
|
exported and remakes the export environment if necessary. Returns
|
|
1 if NAME is exported and 0 if not
|
|
- call chkexport(name) to get tzset to look at the right variable in
|
|
the environment when modifying TZ in sv_tz. Don't call tzset if
|
|
chkexport doesn't indicate that the variable is exported
|
|
|
|
variables.h
|
|
- new extern declaration for chkexport
|
|
|
|
|
|
{parse.y,builtins/printf.def}
|
|
- call sv_tz before calling localtime() when formatting time strings
|
|
in prompt strings or using printf. Fixes bug reported by
|
|
Dennis Williamson <dennistwilliamson@gmail.com>
|
|
|
|
execute_cmd.c
|
|
- modify fix of 2/9 to add casts when those variables are passed to
|
|
functions; some compilers throw errors instead of warnings. Report
|
|
and fix from Joachim Schmitz <jojo@schmitz-digital.de>
|
|
|
|
support/shobj-conf
|
|
- add a stanza for nsk on the Tandem from Joachim Schmitz
|
|
<jojo@schmitz-digital.de>
|
|
|
|
{shell,lib/readline/shell}.c
|
|
- Tandem systems should use getpwnam (getlogin()); for some reason
|
|
they don't do well with using getuid(). Fix from Joachim Schmitz
|
|
<jojo@schmitz-digital.de>
|
|
|
|
3/1
|
|
---
|
|
variables.c
|
|
- make sure that the return value from find_variable is non-null
|
|
before trying to use it in chkexport. Fixes bug reported by
|
|
Evangelos Foutras <foutrelis@gmail.com>
|
|
|
|
3/3
|
|
---
|
|
parse.y
|
|
- when adding $$ to the current token buffer in read_token_word(),
|
|
don't xmalloc a buffer for two characters and then strcpy it, just
|
|
copy the characters directly into the token buffer. Fix from
|
|
Michael Whitten <mfwitten@gmail.com>
|
|
|
|
execute_cmd.c
|
|
- fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to
|
|
be expanded, so "" doesn't add CTLNUL. Similar to fix of 2/18 to
|
|
expand_string_for_rhs. Fixes bug reported by Nathanael D. Noblet
|
|
<nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
|
|
|
|
parse.y
|
|
- fix extended_glob case of read_token_word to allocate an extra
|
|
space in the buffer for the next character read after the extended
|
|
glob specification if it's a CTLESC or CTLNUL. Report and fix from
|
|
Michael Witten <mfwitten@gmail.com>
|
|
- fix shell expansions case of read_token_word to allocate an extra
|
|
space in the buffer for the next character read after the shell
|
|
expansion if it's a CTLESC or CTLNUL. Report and fix from
|
|
Michael Witten <mfwitten@gmail.com>
|
|
- TENTATIVE: fix read_token_word to reduce the amount of buffer space
|
|
required to hold the translated and double-quoted value of $"..."
|
|
strings. Report and fix from Michael Witten <mfwitten@gmail.com>
|
|
- change code around got_character and got_escaped_character labels to
|
|
make sure that we call RESIZE_MALLOCED_BUFFER before adding the
|
|
CTLESC before a CTLESC or CTLNUL, and before adding the character if
|
|
we're not adding a CTLESC. Report and fix from
|
|
Michael Witten <mfwitten@gmail.com>
|
|
|
|
subst.c
|
|
- new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that
|
|
parameter expansion is on rhs of assignment statement. That inhibits
|
|
word splitting
|
|
- change param_expand to call string_list_dollar_at with quoted == 1
|
|
if PF_ASSIGNRHS is set, so it will quote IFS characters in the
|
|
positional parameter before separating them with the first char of
|
|
$IFS. This keeps the rhs from being split inappropriately. Fixes
|
|
bug reported by Andres Perera <andres.p@zoho.com>
|
|
|
|
3/4
|
|
---
|
|
lib/readline/bind.c
|
|
- add a missing free of `names' in rl_function_dumper. Bug report
|
|
and fix from Michael Snyder <msnyder@vmware.com>
|
|
|
|
3/5
|
|
---
|
|
lib/readline/rltty.c
|
|
- change rl_deprep_terminal so it uses fileno (stdin) for the tty fd
|
|
if rl_instream is not set, like rl_prep_terminal
|
|
|
|
3/6
|
|
---
|
|
lib/readline/display.c
|
|
- fix rl_message to use a dynamically-allocated buffer instead of a
|
|
fixed-size buffer of 128 chars for the `local message prompt'. Bug
|
|
report and fix from Micah Cowan <micah@cowan.name>
|
|
|
|
3/7
|
|
---
|
|
jobs.c
|
|
- add sentinel to wait_sigint_handler so it only sets wait_sigint_received
|
|
if waiting_for_child is non-zero; otherwise, it restores the old
|
|
SIGINT handler and sends itself the SIGINT
|
|
- set waiting_for_child around the calls to waitchld that use it to
|
|
synchronously wait for a process
|
|
- change logic that decides whether or not the child process blocked
|
|
or handled SIGINT based on whether or not waitpid returns -1/EINTR
|
|
and the shell receives a SIGINT and the child does not exit. If
|
|
the child later exits due to SIGINT, cancel the assumoption that it
|
|
was handled
|
|
- instead of testing whether or not the child exited due to SIGINT
|
|
when deciding whether the shell should act on a SIGINT it received
|
|
while waiting, test whether or not we think the child caught
|
|
SIGINT. If it did, we let it go (unless the shell has it trapped);
|
|
if it did not catch it, the shell acts on the SIGINT. Fix from
|
|
Linus Torvalds <torvalds@linux-foundation.org>, bug report originally
|
|
from Oleg Nesterov <oleg@redhat.com>
|
|
|
|
3/8
|
|
---
|
|
shell.c
|
|
- initialize no_line_editing to 1 if READLINE is not defined -- we
|
|
can't have line editing without readline
|
|
|
|
3/12
|
|
----
|
|
lib/readline/signals.c
|
|
- add SIGHUP to the set of signals readline handles
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- document that SIGHUP is now part of the set of signals readline
|
|
handles
|
|
|
|
lib/readline/input.c
|
|
- if _rl_caught_signal indicates that read() was interrupted by a
|
|
SIGHUP or SIGTERM, return READERR or EOF as appropriate
|
|
- call rl_event_hook, if it's set, if call to read in rl_getc
|
|
returns -1/EINTR. If rl_event_hook doesn't do anything, this
|
|
continues the loop as before. This handles the other fatal
|
|
signals
|
|
|
|
execute_cmd.c
|
|
- add a couple of QUIT; calls to execute_disk_command and
|
|
execute_simple_command to improve responsiveness to interrupts
|
|
and fatal signals
|
|
|
|
input.c
|
|
- rearrange getc_with_restart so that the return values from read()
|
|
are handled right
|
|
|
|
parse.y
|
|
- don't need to set terminate_immediately in yy_stream_get, since
|
|
getc_with_restart checks for terminating signals itself
|
|
- since readline returns READERR on SIGHUP or SIGTERM, don't need
|
|
to set terminate_immediately. Still doesn't handle other
|
|
signals well -- will have to check that some more
|
|
|
|
bashline.c
|
|
- new function, bash_event_hook, for rl_event_hook. Just checks for
|
|
terminating signals and acts on them using CHECK_TERMSIG.
|
|
- set rl_event_hook to bash_event_hook
|
|
|
|
builtins/read.def
|
|
- take out setting terminate_immediately; add calls to CHECK_TERMSIG
|
|
after read calls
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- move the text describing the effect of negative subscripts used to
|
|
reference indexed array elements to the paragraphs describing
|
|
${parameter[subscript]}, since that's where they are implemented.
|
|
Pointed out by Christopher F. A. Johnson <cfajohnson@gmail.com>
|
|
|
|
arrayfunc.[ch],subst.c
|
|
- array_expand_index now takes a new first argument: a SHELL_VAR *
|
|
of the array variable being subscripted. Can be used later to fully
|
|
implement negative subscripts
|
|
|
|
3/14
|
|
----
|
|
lib/glob/glob.c
|
|
- fix mbskipname to not turn the directory entry name into a wide char
|
|
string if the conversion of the pattern to a wide char string fails
|
|
- fix mbskipname to call skipname if either the pattern or the filename
|
|
can't be converted into a wide-char string
|
|
|
|
lib/glob/xmbsrtowcs.c
|
|
- fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and
|
|
short-circuit with failure in that case. Fixes bug reported by
|
|
Roman Rakus <rrakus@redhat.com>
|
|
|
|
3/15
|
|
----
|
|
bashline.c
|
|
- new variable, bash_filename_quote_characters to store the value
|
|
assigned to rl_filename_quote_characters so it can be restored
|
|
if changed.
|
|
- change bashline_reset and attempt_shell_completion to restore
|
|
rl_filename_quote_characters if not set to default
|
|
|
|
3/22
|
|
----
|
|
lib/glob/glob.c
|
|
- wdequote_pathname falls back to udequote_pathname if xdupmbstowcs
|
|
fails to convert the pathname to a wide-character string
|
|
|
|
lib/glob/xmbsrtowcs.c
|
|
- xdupmbstowcs2: change to fix problem with leading '\\' (results in
|
|
nms == 0, which causes it to short-circuit with failure right
|
|
away). Fixes bug pointed out by Werner Fink <werner@suse.de>
|
|
- xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the
|
|
next single-byte character and going on
|
|
- xdupmbstowcs2: change memory allocation to increase by WSBUF_INC
|
|
bytes; try to avoid calls to realloc (even if they don't actually
|
|
result in more memory being allocated)
|
|
|
|
3/24
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- slightly modify BASH_SUBSHELL description based on complaint from
|
|
Sam Liddicott <sam@liddicott.com>
|
|
|
|
3/25
|
|
----
|
|
trap.c
|
|
- change free_trap_strings to not call free_trap_string for signals
|
|
that are being ignored, like reset_or_restore_signal_handlers.
|
|
Fixes bug reported by Satoshi Takahashi <blue3waters@gmail.com>
|
|
|
|
3/26
|
|
----
|
|
lib/readline/rltypedefs.h
|
|
- remove old Function/VFunction/CPFunction/CPPFunction typedefs as
|
|
suggested by Tom Tromey <tromey@redhat.com>
|
|
|
|
lib/readline/rlstdc.h
|
|
- move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from
|
|
config.h.in to here because declaration of rl_message in
|
|
readline.h uses the defines. This makes it hard for another packages
|
|
to use after the header files are installed, since config.h is not
|
|
one of the installed files. Suggested by Tom Tromey
|
|
<tromey@redhat.com>
|
|
|
|
3/27
|
|
----
|
|
print_cmd.c
|
|
- change indirection_string from a static buffer to a dynamic one
|
|
managed by indirection_level_string(), so we don't end up truncating
|
|
PS4. Suggested by Dennis Williamson <dennistwilliamson@gmail.com>
|
|
|
|
lib/readline/shell.c
|
|
- change sh_set_lines_and_columns to use static buffers instead of
|
|
allocating the buffers to pass to setenv/putenv
|
|
|
|
lib/readline/terminal.c
|
|
- change _rl_get_screen_size to not call sh_set_lines_and_columns if
|
|
ignore_env == 0
|
|
- _rl_sigwinch_resize_terminal: new function to just retrieve terminal
|
|
size, ignoring environment
|
|
|
|
lib/readline/rlprivate.h
|
|
- new external declaration for _rl_sigwinch_resize_terminal() (currently
|
|
unused)
|
|
|
|
lib/readline/signals.c
|
|
- rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH
|
|
- rl_sigwinch_handler: don't immediately call rl_resize_terminal; just
|
|
leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle
|
|
- _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH.
|
|
Should fix hang when sending multiple repeated SIGWINCH reported by
|
|
Henning Bekel <h.bekel@googlemail.com>
|
|
|
|
3/29
|
|
----
|
|
lib/sh/snprintf.c
|
|
- include math.h for any defines for isinf/isnan
|
|
- use code from gnulib documentation to implement isinf/isnan if they
|
|
are not defined
|
|
|
|
configure.in
|
|
- don't check for isinf or isnan; c99 says they're macros anyway
|
|
|
|
config.h.in
|
|
- remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used
|
|
by snprintf.c
|
|
|
|
4/2
|
|
---
|
|
braces.c
|
|
- brace_gobbler: fix to understand double-quoted command substitution,
|
|
since the shell understands unquoted comsubs. Fixes bug reported
|
|
by Michael Whitten <mfwitten@gmail.com>
|
|
|
|
lib/readline/display.c
|
|
- include <pc.h> on MDOS
|
|
- get and set screen size using DJGPP-specific calls on MSDOS
|
|
- move cursor up clear screen using DJGPP-specific calls
|
|
- don't call tputs on DJGPP; there is no good terminfo support
|
|
|
|
lib/readline/terminal.c
|
|
- include <pc.h> on MDOS
|
|
- get and set screen size using DJGPP-specific calls on MSDOS
|
|
- use DJGPP-specific initialization on MSDOS, zeroing all the
|
|
_rl_term_* variables
|
|
- don't call tputs on DJGPP; there is no good terminfo support
|
|
DJGPP support from Eli Zaretskii <eliz@gnu.org>
|
|
|
|
4/6
|
|
---
|
|
|
|
config-top.h
|
|
- change DEFAULT_PATH_VALUE to something more useful and modern
|
|
|
|
4/8
|
|
---
|
|
tests/printf2.sub
|
|
- make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect.
|
|
Reported by Cedric Arbogast <arbogast.cedric@gmail.com>
|
|
|
|
4/11
|
|
----
|
|
include/chartypes.h
|
|
- fix a couple of dicey defines (though ones that don't cause any
|
|
compiler warnings) in IN_CTYPE_DOMAIN
|
|
|
|
doc/{bashref.texi,bash.1}
|
|
- add note referring to duplicating file descriptors in sections
|
|
describing redirecting stdout and stderr and appending to stdout
|
|
and stderr. Suggested by Matthew Dinger <mdinger.bugzilla@gmail.com>
|
|
|
|
pcomplete.c
|
|
- it_init_helptopics: new function to support completing on help topics,
|
|
not just builtins
|
|
- it_helptopics: new programmable completion list of help topics
|
|
- build list of helptopic completions in gen_action_completions on
|
|
demand
|
|
|
|
pcomplete.h
|
|
- new extern declaration for it_helptopics
|
|
|
|
builtins/complete.def
|
|
- the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN,
|
|
since there are more help topics than just builtins. Suggested by
|
|
Clark Wang <dearvoid@gmail.com>
|
|
|
|
4/12
|
|
----
|
|
print_cmd.c
|
|
- fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS
|
|
before ending the body of the command, so heredocs get attached to
|
|
the right command instead of to the loop. From gentoo bug 363371
|
|
http://bugs.gentoo.org/show_bug.cgi?id=363371
|
|
|
|
execute_cmd.c
|
|
- change coproc_pidchk to unset the appropriate shell variables when
|
|
the (currently single) known coproc pid terminates
|
|
- cleanup and new functions to fully support multiple coprocesses when
|
|
and if I decide to go there
|
|
|
|
4/13
|
|
----
|
|
print_cmd.c
|
|
- fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS
|
|
after call to make_command_string_internal before printing closing
|
|
`}'
|
|
- fix make_command_string_internal to add a call to
|
|
PRINT_DEFERRED_HEREDOCS after recursive call to
|
|
make_command_string_internal in case cm_subshell before printing
|
|
closing `)'
|
|
|
|
4/14
|
|
----
|
|
print_cmd.c
|
|
- change overlapping strcpy in named_function_string to memmove
|
|
|
|
sig.h
|
|
- UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just
|
|
restores an old signal mask
|
|
|
|
trap.c
|
|
- set_signal: instead of setting the signal handler to SIG_IGN while
|
|
installing the new trap handler, block the signal and unblock it
|
|
after the new handler is installed. Fixes bug reported by Roman
|
|
Rakus <rrakus@redhat.com>
|
|
|
|
4/15
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- make it clear that enabling monitor mode means that all jobs run in
|
|
separate process groups
|
|
|
|
4/18
|
|
----
|
|
builtins/fc.def
|
|
- update fix of 4/15/2010 to not take saved_command_line_count into
|
|
account when stepping down the history list to make sure that
|
|
last_hist indexes something that is valid. Fixes bug reported by
|
|
<piuma@piumalab.org>
|
|
|
|
4/19
|
|
----
|
|
builtins/fc.def
|
|
- fc_gethnum: make sure the calculation to decide the last history
|
|
entry is exactly the same as fc_builtin. Fixes bug uncovered by
|
|
fix of 4/18 to stop seg fault
|
|
|
|
4/22
|
|
----
|
|
lib/readline/terminal.c
|
|
- change _rl_enable_meta_key to set a flag indicating that it sent the
|
|
enable-meta sequence
|
|
- _rl_disable_meta_key: new function to turn off meta mode after we
|
|
turned it on with _rl_enable_meta_key
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declaration for _rl_disable_meta_key
|
|
|
|
configure.in
|
|
- if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited
|
|
from the environment. Fixes HP/UX build problem reported by
|
|
"Daniel Richard G." <skunk@iSKUNK.ORG>
|
|
|
|
4/26
|
|
----
|
|
config-top.h
|
|
- define MULTIPLE_COPROCS to 0 so the code is still disabled but easy
|
|
to enable via configure option or editing this file
|
|
|
|
4/29
|
|
----
|
|
lib/sh/eaccess.c
|
|
- freebsd provides faccessat, with the same misfeature as their eaccess
|
|
and access implementations (X_OK returns true for uid==0 regardless
|
|
of the actual file permissions), so reorganize code to check the
|
|
file permissions as with eaccess. Report and fix from Johan Hattne
|
|
<johan.hattne@utsouthwestern.edu>
|
|
|
|
5/2
|
|
---
|
|
doc/{bash.1,bashref.texi}
|
|
- add forward reference to `Pattern Matching' from `Pathname
|
|
Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
|
|
|
|
5/5
|
|
---
|
|
pcomplib.c
|
|
- the bash_completion project now distributes over 200 completions
|
|
for various programs, with no end in sight, so increase the value
|
|
of COMPLETE_HASH_BUCKETS from 32 to 128
|
|
|
|
pathexp.c
|
|
- quote_string_for_globbing: make sure CTLESC quoting CTLESC is
|
|
translated into \<CTLESC> even if the flags include QGLOB_REGEXP.
|
|
We don't want to process the second CTLESC as a quote character.
|
|
Fixes bug reported by Shawn Bohrer <sbohrer@rgmadvisors.com>
|
|
|
|
5/6
|
|
---
|
|
builtins/printf.def
|
|
- change PRETURN to not call fflush if ferror(stdout) is true
|
|
- if a call to one of the stdio functions or printstr leaves
|
|
ferror(stdout) true, and PRETURN is going to be called, let PRETURN
|
|
print the error message rather than doubling up the messages. Fixes
|
|
problem reported by Roman Rakus <rrakus@redhat.com>
|
|
|
|
5/9
|
|
---
|
|
doc/{bash.1,bashref.texi}
|
|
- add note to the effect that lists inside compound command can be
|
|
terminated by newlines as well as semicolons. Suggested by
|
|
Roman Byshko <rbyshko@gmail.com>
|
|
|
|
5/10
|
|
----
|
|
subst.c
|
|
- remove_quoted_nulls: fix problem that caused it to skip over the
|
|
character after a CTLNUL, which had the effect of skipping every
|
|
other of a series of CTLNULs. Fixes bug reported by
|
|
Marten Wikstrom <marten.wikstrom@keystream.se>
|
|
|
|
5/11
|
|
----
|
|
subst.c
|
|
- extract_process_subst: add SX_COMMAND flag to call to
|
|
extract_delimited_string, since we're expanding the same sort of
|
|
command as command substitution. Fixes bug reported in Ubuntu
|
|
bug 779848
|
|
|
|
5/12
|
|
----
|
|
configure.in
|
|
- set the prefer_shared and prefer_static variables appropriately
|
|
depending on the value of $opt_static_link
|
|
|
|
aclocal.m4
|
|
- AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the
|
|
libraries it's searching for if the prefer_shared variable is "no".
|
|
Fixes problem reported by Cedric Arbogast <arbogast.cedric@gmail.com>
|
|
|
|
5/13
|
|
----
|
|
lib/readline/readline.c
|
|
- _rl_internal_teardown: add call to _rl_disable_meta_key to make the
|
|
meta key active only for the duration of the call to readline()
|
|
- _rl_internal_setup: move call to _rl_enable_meta_key here from
|
|
readline_initialize_everything so the meta key is active only for
|
|
the duration of the call to readline(). Suggestion from Miroslav
|
|
Lichvar <mlichvar@redhat.com>
|
|
|
|
builtins/help.def
|
|
- help_builtin: change strncmp to strcmp so that `help read' no longer
|
|
matches `readonly'. Suggested by Clark Wang <dearvoid@gmail.com>
|
|
|
|
config.h.in
|
|
- add define for GLIBC21, checked using jm_GLIBC21 as part of the tests
|
|
for libintl
|
|
|
|
lib/malloc/malloc.c
|
|
- internal_free: don't use the cached value of memtop when deciding
|
|
whether or not to adjust the break and give memory back to the kernel
|
|
when using the GNU C library, since glibc uses sbrk for its own
|
|
internal purposes. From Debian bug 614815, reported by Samuel
|
|
Thibault <samuel.thibault@gnu.org>
|
|
|
|
aclocal.m4
|
|
- BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN
|
|
to avoid warning about not using AC_LANG_SOURCE
|
|
|
|
5/14
|
|
----
|
|
bashline.[ch]
|
|
- two new functions, bashline_set_event_hook and bashline_reset_event_hook,
|
|
to set rl_event_hook to bash_event_hook and back to NULL, respectively
|
|
- don't set rl_event_hook unconditionally
|
|
|
|
sig.c
|
|
- termsig_sighandler: if the shell is currently interactive and
|
|
readline is active, call bashline_set_event_hook to cause
|
|
termsig_handler to be called via bash_event_hook when the shell
|
|
returns from the signal handler
|
|
|
|
5/15
|
|
----
|
|
lib/readline/display.c
|
|
- _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0
|
|
for UTF-8 combining characters. Added workaround dependent on
|
|
MACOSX. Fixes problem pointed out by Thomas De Contes
|
|
<d.l.tDecontes@free.fr>
|
|
|
|
5/16
|
|
----
|
|
lib/readline/rlmbutil.h
|
|
- WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining
|
|
characters on systems where wcwidth is broken (e.g., Mac OS X).
|
|
|
|
lib/readline/{complete,display,mbutil}.c
|
|
- use WCWIDTH instead of wcwidth
|
|
|
|
5/17
|
|
----
|
|
lib/readline/display.c
|
|
- update_line: after computing ofd and nfd, see whether the next
|
|
character in ofd is a zero-width combining character. If it is,
|
|
back ofd and nfd up one, so the base characters no longer compare
|
|
as equivalent. Fixes problem reported by Keith Winstein
|
|
<keithw@mit.edu>
|
|
|
|
lib/readline/nls.c
|
|
- _rl_utf8locale: new flag variable, set to non-zero if the current
|
|
locale is UTF-8
|
|
- utf8locale(): new function, returns 1 if the passed lspec (or the
|
|
current locale) indicates that the locale is UTF-8. Called from
|
|
_rl_init_eightbit
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declaration for _rl_utf8locale
|
|
|
|
locale.c
|
|
- locale_utf8locale: new flag variable, set to non-zero if the current
|
|
locale is UTF-8 (currently unused)
|
|
- locale_isutf8(): new function, returns 1 if the passed lspec (or the
|
|
current locale) indicates that the locale is UTF-8. Should be called
|
|
whenever the locale or LC_CTYPE value is modified
|
|
|
|
aclocal.m4
|
|
- BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns
|
|
zero-width characters like unicode combining characters as having
|
|
display length 1; define WCWIDTH_BROKEN in this case
|
|
|
|
config.h.in
|
|
- WCWIDTH_BROKEN: new define
|
|
|
|
lib/readline/rlmbutil.h
|
|
- change WCWIDTH macro to use _rl_utf8locale and the full range of
|
|
Unicode combining characters (U+0300-U+036F)
|
|
|
|
5/19
|
|
----
|
|
lib/readline/rlprivate.h
|
|
- _rl_search_context: new member, prevc, will hold character read
|
|
prior to lastc
|
|
|
|
lib/readline/isearch.c
|
|
- _rl_isearch_dispatch: if the character causes us to index into
|
|
another keymap, save that character in cxt->prevc
|
|
- _rl_isearch_dispatch: if we index into another keymap, but don't
|
|
find a function that's special to i-search, and the character that
|
|
caused us to index into that keymap would have terminated the
|
|
search, push back cxt->prevc and cxt->lastc to make it appear as
|
|
if `prevc' terminated the search, and execute lastc as a command.
|
|
We have to push prevc back so we index into the same keymap before
|
|
we read lastc. Fixes bug report from Davor Cubranic
|
|
<cubranic@stat.ubc.ca>
|
|
|
|
5/20
|
|
----
|
|
expr.c
|
|
- expr_bind_variable: pay attention to the return value from
|
|
bind_variable and check whether or not we should error out due to
|
|
a readonly or noassign variable. Fixes bug reported by Eric
|
|
Blake <eblake@redhat.com>
|
|
|
|
5/26
|
|
----
|
|
|
|
lib/readline/search.c
|
|
- include histlib.h for ANCHORED_SEARCH defines
|
|
- rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for
|
|
the duration of a history search
|
|
- rl_history_search_reinit: takes a new flags variable, defines whether
|
|
or not the search is anchored; assigned to rl_history_search_flags
|
|
- rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to
|
|
beginning of search string; otherwise search string is unmodified
|
|
- rl_history_search_internal: set rl_point appropriately based on
|
|
whether or not rl_history_search_flags includes ANCHORED_SEARCH
|
|
- rl_history_substr_search_forward: new function, for non-anchored
|
|
substring search forward through history for string of characters
|
|
preceding rl_point
|
|
- rl_history_substr_search_backward: new function, for non-anchored
|
|
substring search backward through history for string of characters
|
|
preceding rl_point. Original code from Niraj Kulkarni
|
|
<kulkarniniraj14@gmail.com>
|
|
|
|
lib/readline/readline.h
|
|
- extern declarations for rl_history_substr_search_{for,back}ward
|
|
|
|
lib/readline/funmap.c
|
|
- history-substring-search-forward: new bindable command, invokes
|
|
rl_history_substr_search_forward
|
|
- history-substring-search-backward: new bindable command, invokes
|
|
rl_history_substr_search_backward
|
|
|
|
lib/readline/doc/{rluser.texi,readline.3}
|
|
- document history-substring-search-forward and
|
|
history-substring-search-backward
|
|
|
|
5/27
|
|
----
|
|
{nojobs,jobs}.c
|
|
- add support for DONT_REPORT_SIGTERM so that the shell doesn't print
|
|
a message when a job exits due to SIGTERM since that's the default
|
|
signal sent by the kill builtin. Suggested by Marc Herbert
|
|
<mark.herbert@gmail.com>
|
|
|
|
config-top.h
|
|
- DONT_REPORT_SIGTERM: new user-modifiable setting. Commented out
|
|
by default
|
|
|
|
5/28
|
|
----
|
|
lib/readline/bind.c
|
|
- _rl_skip_to_delim: skip to a closing double quote or other delimiter,
|
|
allowing backslash to quote any character, including the delimiter
|
|
- rl_parse_and_bind: call _rl_skip_to_delim instead of using inline
|
|
code
|
|
- rl_parse_and_bind: allow quoted strings as the values of string
|
|
variables. Variable values without double quotes have trailing
|
|
whitespace removed (which still allows embedded whitespace, for
|
|
better or worse). Fixes problem with string variables not matching
|
|
in `set' command if values happen to have trailing spaces or tabs
|
|
(debian bash bug #602762), but introduces slight incompatibility.
|
|
|
|
5/29
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- clarify unset description to specify that without options, a
|
|
variable, then a shell function if there is no variable by that
|
|
name, is unset. Fixes discrepancy reported by Mu Qiao
|
|
<qiaomuf@gentoo.org>
|
|
|
|
6/4
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- clarify description of LINES and COLUMNS (and checkwinsize shopt
|
|
option) to make it clear that only interactive shells set a
|
|
handler for SIGWINCH and update LINES and COLUMNS. Original
|
|
report submitted by Jonathan Nieder <jrnieder@gmail.com>
|
|
|
|
arrayfunc.c
|
|
- expand_compound_array_assignment: defer expansion of words between
|
|
parens when performing compound assignmnt to an associative array
|
|
variable
|
|
- assign_compound_array_list: perform the same expansions when doing
|
|
a compound array assignment to an associative array variable as
|
|
when doing a straight array index assignment. The idea is that
|
|
foo=( [ind1]=bar [ind2]=quux)
|
|
is the same as
|
|
foo[ind1]=bar ; foo[ind2]=quux
|
|
|
|
This fixes problems with double-expansion and quote removal being
|
|
performed on the array indices
|
|
|
|
6/13
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- Add a little text to make it clear that the locale determines how
|
|
range expressions in glob patterns are handled.
|
|
|
|
|
|
6/21
|
|
----
|
|
builtins/read.def
|
|
- display a message and return error status if -a is used with an
|
|
existing associative array. Fixes bug reported by Curtis Doty
|
|
<curtis@greenkey.net>
|
|
|
|
6/24
|
|
----
|
|
{jobs,nojobs}.c
|
|
- non-interactive shells now react to the setting of checkwinsize
|
|
and set LINES and COLUMNS after a foreground job exits. From a
|
|
suggestion by Leslie Rhorer <lrhorer@satx.rr.com>
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- checkwinsize: remove language saying that only interactive shells
|
|
check the window size after each command
|
|
|
|
lib/readline/histfile.c
|
|
- history_backupfile: new file, creates a backup history file name
|
|
given a filename (appending `-')
|
|
- history_do_write: when overwriting the history file, back it up
|
|
before writing. Restore backup file on a write error. Suggested
|
|
by chkno@chkno.net
|
|
|
|
bashline.c
|
|
- find_cmd_name: two new arguments, return the start and end of the
|
|
actual text string used to find the command name, without taking
|
|
whitespace into account
|
|
- attempt_shell_completion: small changes to make sure that completion
|
|
attempted at the beginning of a non-empty line does not find a
|
|
programmable completion, even if the command name starts at point
|
|
- attempt_shell_completion: small change to make sure that completion
|
|
does not find a progcomp when in whitespace before the command
|
|
name
|
|
- attempt_shell_completion: small change to make sure that completion
|
|
does not find a progcomp when point is at the first character of a
|
|
command name, even when there is leading whitespace (similar to
|
|
above). Fixes problems noted by Ville Skytta <ville.skytta@iki.fi>
|
|
|
|
subst.c
|
|
- brace_expand_word_list: since the individual strings in the strvec
|
|
returned by brace_expand are already allocated, don't copy them to
|
|
newly-allocated memory when building the WORD_LIST, just use them
|
|
intact
|
|
|
|
locale.c
|
|
- locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change
|
|
the locale to avoid a function call every time we need to read it
|
|
|
|
shell.h
|
|
- new struct to save shell_input_line and associated variables:
|
|
shell_input_line_state_t
|
|
- add members of sh_parser_state_t to save and restore token and the
|
|
size of the token buffer
|
|
|
|
parse.y
|
|
- {save,restore}_input_line_state: new functions to save and restore
|
|
shell_input_line and associated variables
|
|
- {save,restore}_parser_state: add code to save and restore the token
|
|
and token buffer size
|
|
- xparse_dolparen: call save_ and restore_input_line_state to avoid
|
|
problems with overwriting shell_input_line when we recursively
|
|
call the parser to parse a command substitution. Fixes bug
|
|
reported by Rui Santos <rsantos@grupopie.com>
|
|
|
|
include/shmbutil.h
|
|
- use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and
|
|
similar macros
|
|
|
|
lib/glob/smatch.c
|
|
- rangecmp,rangecmp_wc: change to take an additional argument, which
|
|
forces the use of strcoll/wscoll when non-zero. If it's 0, a new
|
|
variable `glob_asciirange' controls whether or not we use strcoll/
|
|
wscoll. If it's non-zero, we use straight C-locale-like ordering.
|
|
Suggested by Aharon Robbins <arnold@skeeve.com>
|
|
|
|
6/30
|
|
----
|
|
execute_cmd.c
|
|
- execute_pipeline: make sure the lastpipe code is protected by
|
|
#ifdef JOB_CONTROL. Fixes problem reported by Thomas Cort
|
|
<tcort@minix3.org>
|
|
|
|
7/2
|
|
---
|
|
lib/readline/complete.c
|
|
- EXPERIMENTAL: remove setting of _rl_interrupt_immediately around
|
|
completion functions that touch the file system. Idea from Jan
|
|
Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
|
|
team
|
|
|
|
lib/readline/signals.c
|
|
- rl_signal_handler: if we're in callback mode, don't interrupt
|
|
immediately on a SIGWINCH
|
|
|
|
7/3
|
|
---
|
|
bashline.c
|
|
- set_directory_hook: and its siblings are a new set of functions to
|
|
set, save, and restore the appropriate directory completion hook
|
|
- change callers to use {set,save,restore}_directory_hook instead of
|
|
manipulating rl_directory_rewrite_hook directly
|
|
- dircomplete_expand: new variable, defaults to 0, if non-zero causes
|
|
directory names to be word-expanded during word and filename
|
|
completion
|
|
- change {set,save,restore}_directory_hook to look at dircomplete_expand
|
|
and change rl_directory_completion_hook or rl_directory_rewrite_hook
|
|
appropriately
|
|
|
|
bashline.h
|
|
- extern declaration for set_directory_hook so shopt code can use it
|
|
|
|
7/6
|
|
---
|
|
builtins/shopt.def
|
|
- globasciiranges: new settable shopt option, makes glob ranges act
|
|
as if in the C locale (so b no longer comes between A and B).
|
|
Suggested by Aharon Robbins <arnold@skeeve.com>
|
|
|
|
7/7
|
|
---
|
|
doc/{bash.1,bashref.texi}
|
|
- document new `globasciiranges' shopt option
|
|
|
|
7/8
|
|
---
|
|
builtins/shopt.def
|
|
- direxpand: new settable option, makes filename completion expand
|
|
variables in directory names like bash-4.1 did.
|
|
- shopt_set_complete_direxpand: new function, does the work for the
|
|
above by calling set_directory_hook
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document new `direxpand' shopt option
|
|
|
|
7/15
|
|
----
|
|
lib/readline/isearch.c
|
|
- _rl_isearch_dispatch: when adding character to search string, use
|
|
cxt->lastc (which we use in the switch statement) instead of c,
|
|
since lastc can be modified earlier in the function
|
|
|
|
7/18
|
|
----
|
|
lib/readline/rlprivate.h
|
|
- _rl_search_context: add another member to save previous value of
|
|
(multibyte) lastc: pmb is to mb as prevc is to lastc
|
|
|
|
lib/readline/isearch.c:
|
|
- _rl_isearch_dispatch: if a key sequence indexes into a new keymap,
|
|
but doesn't find any bound function (k[ind].function == 0) or is
|
|
bound to self-insert (k[ind].function == rl_insert), back up and
|
|
insert the previous character (the one that caused the index into a
|
|
new keymap) and arrange things so the current character is the next
|
|
one read, so both of them end up in the search string. Fixes bug
|
|
reported by Clark Wang <dearvoid@gmail.com>
|
|
- _rl_isearch_dispatch: a couple of efficiency improvements when adding
|
|
characters to the isearch string
|
|
|
|
7/24
|
|
----
|
|
lib/readline/isearch.c
|
|
- _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb
|
|
appropriately when in a multibyte locale
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- correct description of {x}>file (and other redirection operators
|
|
that allocate a file descriptor) to note the the fd range is
|
|
greater than or equal to 10. Fixes problem reported by
|
|
Christian Ullrich
|
|
|
|
lib/readline/signals.c
|
|
- rl_signal_handler: don't interrupt immediately if in callback mode
|
|
|
|
lib/readline/callback.c
|
|
- rl_callback_read_char: install signal handlers only when readline
|
|
has control in callback mode, so readline's signal handlers aren't
|
|
called when the application is active (e.g., between the calls to
|
|
rl_callback_handler_install and rl_callback_read_char). If the
|
|
readline signal handlers only set a flag, which the application
|
|
doesn't know about, the signals will effectively be ignored until
|
|
the next time the application calls into the readline callback
|
|
interface. Fixes problem of calling unsafe functions from signal
|
|
handlers when in callback mode reported by Jan Kratochvil
|
|
<jan.kratochvil@redhat.com>
|
|
|
|
execute_cmd.c
|
|
- fix_assignment_words: when in Posix mode, the `command' builtin
|
|
doesn't change whether or not the command name it protects is an
|
|
assignment builtin. One or more instances of `command'
|
|
preceding `export', for instance, doesn't make `export' treat its
|
|
assignment statement arguments differently. Posix interpretation
|
|
#351
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document new Posix-mode behavior of `command' when preceding builtins
|
|
that take assignment statements as arguments
|
|
|
|
builtins/printf.def
|
|
- printstr: if fieldwidth or precision are < 0 or > INT_MAX when
|
|
supplied explicitly (since we take care of the `-' separately),
|
|
clamp at INT_MAX like when using getint(). Fixes issue reported
|
|
by Ralph Coredroy <ralph@inputplus.co.uk>
|
|
|
|
7/25
|
|
----
|
|
lib/readline/chardefs.h
|
|
- isxdigit: don't define if compiling with c++; declared as a c++
|
|
template function. Fixes bug reported by Miroslav Lichvar
|
|
<mlichvar@redhat.com>
|
|
|
|
builtins/printf.def
|
|
- getint: if garglist == 0, return whatever getintmax returns (0).
|
|
Fixes bug reported by Ralph Coredroy <ralph@inputplus.co.uk>
|
|
|
|
7/28
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- minor changes to the descriptions of the cd and pushd builtins
|
|
|
|
lib/sh/zread.c
|
|
- zsyncfd: change variable holding return value from lseek to
|
|
off_t. Bug report and fix from Gregory Margo <gmargo@pacbell.net>
|
|
|
|
8/1
|
|
---
|
|
expr.c
|
|
- don't check for division by 0 when in a context where no evaluation
|
|
is taking place. Fixes bug reported by dnade.ext@orange-ftgroup.com
|
|
|
|
8/6
|
|
---
|
|
execute_cmd.c
|
|
- execute_command_internal: the parent branch of the subshell code
|
|
(where the child calls execute_in_subshell) should not close all
|
|
open FIFOs with unlink_fifo_list if it's part of a shell function
|
|
that's still executing. Fixes bug reported by Maarten Billemont
|
|
<lhunath@lyndir.com>
|
|
|
|
8/9
|
|
---
|
|
builtins/common.c
|
|
- get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument
|
|
|
|
builtins/return.def
|
|
- return_builtin: just call get_exitstat to get the return status,
|
|
let it handle proper parsing and handling of arguments. Fixes
|
|
issue most recently raised by Linda Walsh <bash@tlinx.org>.
|
|
Reverses change from 9/11/2008 (see above)
|
|
|
|
8/16
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- clean up `set -e' language to make it clearer that any failure of
|
|
a compound command will cause the shell to exit, not just subshells
|
|
and brace commands
|
|
|
|
8/17
|
|
----
|
|
configure.in
|
|
- make the various XXX_FOR_BUILD variables `precious' to autoconf to
|
|
avoid stale data
|
|
- change how CC_FOR_BUILD is initialized when cross-compiling and not,
|
|
but do not change behavior
|
|
- initialize CFLAGS_FOR_BUILD to -g when cross-compiling
|
|
- initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty
|
|
when cross-compiling
|
|
- create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when
|
|
CFLAGS not inherited from environment (like effect of old
|
|
auto_cflags variable)
|
|
- substitute LIBS_FOR_BUILD into output Makefiles
|
|
[changes inspired by bug report from Nathan Phillip Brink
|
|
<ohnobinki@ohnopublishing.net> -- gentoo bug 378941]
|
|
|
|
builtins/Makefile.in
|
|
- substitute LIBS_FOR_BUILD from configure, not strictly initialized
|
|
to $(LIBS)
|
|
|
|
8/27
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- minor changes to the here string description to clarify the
|
|
expansions performed on the word
|
|
|
|
support/shobj-conf
|
|
- handle compilation on Lion (Mac OS X 10.7/darwin11) with changes
|
|
to darwin stanzas. Fixes readline bug reported by Vincent
|
|
Sheffer <vince.sheffer@apisphere.com>
|
|
|
|
lib/sh/strtrans.c
|
|
- ansic_wshouldquote: check a string with multi-byte characters for
|
|
characters that needs to be backslash-octal escaped for $'...'
|
|
- ansic_shouldquote: if is_basic fails for one character, let
|
|
ansic_wshouldquote examine the rest of the string and return what
|
|
it returns. From a patch sent by Roman Rakus <rrakus@redhat.com>
|
|
|
|
8/30
|
|
----
|
|
lib/sh/strtrans.c
|
|
- ansic_quote: changes to quote (or not) multibyte characters. New
|
|
code converts them to wide characters and uses iswprint to check
|
|
valid wide chars. From a patch sent by Roman Rakus
|
|
<rrakus@redhat.com>
|
|
|
|
9/7
|
|
---
|
|
lib/sh/shquote.c
|
|
- sh_backslash_quote: change to be table-driven so we can use a
|
|
different table if we want to
|
|
- sh_backslash_quote: takes a second char table[256] argument;
|
|
|
|
externs.h
|
|
- sh_backslash_quote: add second argument to function prototype
|
|
|
|
bashline.c,braces.c,parse.y,builtins/printf.def
|
|
- change callers of sh_backslash_quote to add second argument
|
|
|
|
bashline.c
|
|
- filename_bstab: table of characters to pass to sh_backslash_quote;
|
|
characters with value 1 will be backslash-quoted
|
|
- set_filename_bstab: turn on characters in filename backslash-quote
|
|
table according to passed string argument
|
|
- call set_filename_bstab every time rl_filename_quote_characters is
|
|
assigned a value
|
|
- bash_quote_filename: call sh_backslash_quote with filename_bstab
|
|
as second argument. This allows other characters in filenames to
|
|
be quoted without quoting, for instance, a dollar sign in a shell
|
|
variable reference
|
|
|
|
9/8
|
|
---
|
|
bashline.c
|
|
- complete_fullquote: new variable, controls table passed to
|
|
sh_backslash_quote. If non-zero (the default), the standard set
|
|
of shell metacharacters -- as in bash versions up to and including
|
|
bash-4.2 -- gets backslash-quoted by the completion code. If zero,
|
|
sh_backslash_quote gets the table with the characters in the
|
|
variable reference removed, which means they are removed from the
|
|
set of characters to be quoted in filenames
|
|
|
|
9/10
|
|
----
|
|
bashline.c
|
|
- bash_filename_stat_hook: new function, designed to expand variable
|
|
references in filenames before readline passes them to stat(2)
|
|
to determine whether or not they are a directory
|
|
|
|
9/15
|
|
----
|
|
builtins/declare.def
|
|
- if assign_array_element fails due to a bad (or empty) subscript, mark
|
|
it as an assignment error and don't attempt any further processing
|
|
of that declaration. Fixes segfault bug reported by Diego Augusto
|
|
Molina <diegoaugustomolina@gmail.com>
|
|
|
|
9/19
|
|
----
|
|
expr.c
|
|
- exppower: replace the simple exponentiation algorithm with an
|
|
implementation of exponentiation by squaring. Inspired by report
|
|
from Nicolas ARGYROU <nargy@yahoo.com>
|
|
|
|
bashline.c
|
|
- bash_quote_filename: check for rtext being non-null before
|
|
dereferencing it
|
|
- set_saved_history: operate_and_get_next assumes that the previous
|
|
line was added to the history, even when the history is stifled and
|
|
at the max number of entries. If it wasn't, make sure the history
|
|
number is incremented properly. Partial fix for bug reported by
|
|
gregrwm <backuppc-users@whitleymott.net>
|
|
|
|
doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
|
|
- minor editorial changes inspired by suggestions from
|
|
Roger Zauner <rogerx.oss@gmail.com>
|
|
|
|
9/20
|
|
----
|
|
lib/intl/localealias.c
|
|
- read_alias_file: close resource leak (fp) when returning on error
|
|
|
|
9/22
|
|
----
|
|
execute_command.c
|
|
- execute_intern_function: implement Posix interpretation 383 by making
|
|
it an error to define a function with the same name as a special
|
|
builtin when in Posix mode.
|
|
http://austingroupbugs.net/view.php?id=383#c692
|
|
|
|
9/25
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- formatting and some content changes from Benno Schulenberg
|
|
<bensberg@justemail.net>
|
|
- document new posix-mode behavior from interp 383 change of 9/22
|
|
|
|
9/30
|
|
----
|
|
execute_cmd.c
|
|
- shell_execve: add strerror to error message about executable file
|
|
that shell can't execute as a shell script. From suggestion by
|
|
daysleeper <daysleeper@centrum.cz>
|
|
|
|
10/1
|
|
----
|
|
bashhist.c
|
|
- maybe_add_history: act as if literal_history is set when parser_state
|
|
includes PST_HEREDOC, so we save the bodies of here-documents just
|
|
as they were entered. Fixes bug reported by Jonathan Wakely
|
|
<bugs@kayari.org>
|
|
- bash_add_history: make sure that the second and subsequent lines of
|
|
a here document don't have extra newlines or other delimiting
|
|
chars added, since they have the trailing newline preserved, when
|
|
`lithist' is set and history_delimiting_chars isn't called
|
|
|
|
execute_cmd.c
|
|
- execute_command_internal: avoid fd exhaustion caused by using
|
|
process substitution in loops inside shell functions by using
|
|
copy_fifo_list and close_new_fifos (). Fixes debian bash bug
|
|
642504
|
|
|
|
lib/readline/complete.c
|
|
- new variable, rl_filename_stat_hook, used by append_to_match. If
|
|
filename completion is desired, and rl_filename_stat_hook points
|
|
to a function, call that function to expand the filename in an
|
|
application-specific way before calling stat.
|
|
|
|
bashline.c
|
|
- bash_default_completion: if variable completion returns a single
|
|
match, use bash_filename_stat_hook and file_isdir to determine
|
|
whether or not the variable name expands to a directory. If it
|
|
does, set the filename_append_character to `/'. This is not
|
|
perfect, so we will see how it works out. Adds functionality
|
|
requested by Peter Toft <pto@linuxbog.dk> and Patrick Pfeifer
|
|
<patrick@pfeifer.de>
|
|
- rl_filename_stat_hook: assigned bash_filename_stat_hook, so things
|
|
like $HOME/Downloads (after completion) have a slash appended.
|
|
In general, this causes the stat hook to be called whenever
|
|
filename completion is appended. Adds functionality requested by
|
|
Patrick Pfeifer <patrick@pfeifer.de>
|
|
|
|
lib/readline/readline.h
|
|
- new extern declaration for rl_filename_stat_hook
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- rl_directory_rewrite_hook: now documented
|
|
- rl_filename_stat_hook: document
|
|
|
|
pcomplete.c
|
|
- gen_action_completions: in the CA_DIRECTORY case, turn off
|
|
rl_filename_completion_desired if it was off before we called
|
|
rl_filename_completion_function and we didn't get any matches.
|
|
Having it on causes readline to quote the matches as if they
|
|
were filenames. Adds functionality requested by many,
|
|
including Clark Wang <dearvoid@gmail.com>
|
|
|
|
assoc.[ch]
|
|
- assoc_replace: new function, takes the same arguments as
|
|
assoc_insert, but returns the old data instead of freeing it
|
|
- assoc_insert: if the object returned by hash_insert doesn't have
|
|
the same value for its key as the key passed as an argument, we
|
|
are overwriting an existing value. In this case, we can free the
|
|
key. Fixes bug reported by David Parks <davidparks21@yahoo.com>
|
|
|
|
10/5
|
|
----
|
|
print_cmd.c
|
|
- indirection_level_string: small change to only re-enable `x'
|
|
option after calling decode_prompt_string if it was on before. In
|
|
normal mode, it will be, but John Reiser <jreiser@bitwagon.com>
|
|
has a novel use for that code in conjunction with a pre-loaded
|
|
shared library that traces system call usage in shell scripts
|
|
|
|
10/10
|
|
-----
|
|
Makefile.in
|
|
- Fix from Mike Frysinger <vapier@gentoo.org> to avoid trying to
|
|
build y.tab.c and y.tab.h with two separate runs of yacc if
|
|
parse.y changes. Problem with parallel makes
|
|
- Fix from Mike Frysinger <vapier@gentoo.org> to avoid subdirectory
|
|
builds each trying to make version.h (and all its dependencies)
|
|
|
|
lib/sh/Makefile.in
|
|
- remove some dependencies on version.h where it doesn't make sense
|
|
|
|
variables.c
|
|
- initialize_shell_variables: while reading the environment, a shell
|
|
running in posix mode now checks for SHELLOPTS being readonly (it
|
|
gets set early on in main()) before trying to assign to it. It
|
|
saves an error message and the variable gets parsed as it should.
|
|
Fixes bug reported by Len Giambrone <Len.Giambrone@intersystems.com>
|
|
|
|
10/14
|
|
-----
|
|
doc/{bash.1,bashref.texi}
|
|
- add to the "duplicating file descriptors" description that >&word
|
|
doesn't redirect stdout and stderr if word expands to `-'
|
|
- add to the "appending standard output and standard error"
|
|
description a note that >&word, where word is a number or `-',
|
|
causes other redirection operators to apply for sh and Posix
|
|
compatibility reasons. Suggested by Greg Wooledge
|
|
<wooledg@eeg.ccf.org>
|
|
|
|
10/15
|
|
-----
|
|
pcomplete.c
|
|
- change pcomp_filename_completion_function to only run the filename
|
|
dequoting function in the cases (as best as it can figure) where
|
|
readline won't do it via rl_filename_completion_function. Based
|
|
on reports from <lolilolicon@gmail.com>
|
|
|
|
10/19
|
|
-----
|
|
bashline.c
|
|
- attempt_shell_completion: add call to set_directory_hook() to make
|
|
sure the rewrite functions are correct. It's cheap and doesn't
|
|
hurt
|
|
- command_word_completion_function: if completing a command name that
|
|
starts with `.' or `..', temporarily suppress the effects of the
|
|
`direxpand' option and restore the correct value after calling
|
|
rl_filename_completion_function. If it's enabled, the directory
|
|
name will be rewritten and no longer match `./' or `../'. Fixes
|
|
problem reported by Michael Kalisz <michael@kalisz.homelinux.net>
|
|
|
|
10/22
|
|
-----
|
|
builtins/history.def
|
|
- push_history: make sure remember_on_history is enabled before we
|
|
try to delete the last history entry -- the `history -s' command
|
|
might not have been saved. Fixes bug reported by
|
|
lester@vmw-les.eng.vmware.com
|
|
|
|
lib/readline/complete.c
|
|
- rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN
|
|
instead of straight return; add same call at end of function.
|
|
Placeholder for future work in deinstalling signal handlers when
|
|
readline is not active
|
|
|
|
10/25
|
|
-----
|
|
expr.c
|
|
- exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
|
|
for DIV and MOD and avoid SIGFPE. Bug report and pointer to fix
|
|
from Jaak Ristioja <jaak.ristioja@cyber.ee>
|
|
- expassign: same changes for arithmetic overflow for DIV and MOD
|
|
|
|
10/28
|
|
-----
|
|
subst.c
|
|
- parameter_brace_expand: allow pattern substitution when there is an
|
|
expansion of the form ${var/} as a no-op: replacing nothing with
|
|
nothing
|
|
- parameter_brace_patsub: don't need to check for PATSUB being NULL;
|
|
it never is
|
|
|
|
flags.c
|
|
- if STRICT_POSIX is defined, initialize history_expansion to 0, since
|
|
history expansion (and its treatment of ! within double quotes) is
|
|
not a conforming posix environment. From austin-group issue 500
|
|
|
|
lib/readline/histexpand.c
|
|
- history_expand: when processing a string within double quotes
|
|
(DQUOTE == 1), make the closing double quote inhibit history
|
|
expansion, as if the word were outside double quotes. In effect,
|
|
we assume that the double quote is followed by a character in
|
|
history_no_expand_chars. tcsh and csh seem to do this. This
|
|
answers a persistent complaint about history expansion
|
|
|
|
10/29
|
|
-----
|
|
make_cmd.c
|
|
- make_arith_for_command: use skip_to_delim to find the next `;'
|
|
when breaking the string between the double parens into three
|
|
separate components instead of a simple character loop. Fixes
|
|
bug reported by Dan Douglas <ormaaj@gmail.com>
|
|
|
|
11/2
|
|
----
|
|
Makefile.in
|
|
- make libbuiltins.a depend on builtext.h to serialize its creation
|
|
and avoid conflict between multiple invocations of mkbuiltins.
|
|
Fix from Mike Frysinger <vapier@gentoo.org>
|
|
|
|
11/5
|
|
----
|
|
findcmd.c
|
|
- user_command_matches: if stat(".", ...) returns -1, set st_dev
|
|
and st_ino fields in dotinfo to 0 to avoid same_file matches
|
|
- find_user_command_in_path: check stat(2) return the same way
|
|
|
|
lib/glob/glob.c
|
|
- glob_vector: don't call strlen(pat) without checking pat == 0
|
|
- glob_dir_to_array: make sure to free `result' and all allocated
|
|
members before returning error due to malloc failure
|
|
- glob_vector: make sure to free `nextname' and `npat' on errors
|
|
(mostly when setting lose = 1)
|
|
- glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make
|
|
sure we free `subdir'
|
|
- glob_filename: when expanding ** (GX_ALLDIRS), make sure we
|
|
free temp_results (return value from glob_vector)
|
|
|
|
lib/glob/xmbsrtowcs.c
|
|
- xdupmbstowcs: fix call to realloc to use sizeof (char *) instead
|
|
of sizeof (char **) when assigning idxtmp
|
|
|
|
execute_cmd.c
|
|
- print_index_and_element: return 0 right away if L == 0
|
|
- is_dirname: fix memory leak by freeing `temp'
|
|
- time_command: don't try to deref NULL `command' when assigning
|
|
to `posix_time'
|
|
- shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's
|
|
terminated for functions that expect that
|
|
|
|
builtins/read.def
|
|
- read_builtin: don't call bind_read_variable with a potentially-null
|
|
string
|
|
|
|
pcomplete.c
|
|
- gen_command_matches: don't call dispose_word_desc with a NULL arg
|
|
- gen_compspec_completions: fix memory leak by freeing `ret' before
|
|
calling gen_action_completions (tcs, ...). happens when
|
|
performing directory completion as default and no completions
|
|
have been generated
|
|
- gen_progcomp_completions: make sure to set foundp to 0 whenever
|
|
returning NULL
|
|
- it_init_aliases: fix memory leak by freeing alias_list before
|
|
returning
|
|
|
|
bashline.c
|
|
- command_word_completion_function: don't call restore_tilde with a
|
|
NULL directory_part argument
|
|
- bash_directory_expansion: bugfix: don't throw away results of
|
|
rl_directory_rewrite_hook if it's set and returns non-zero
|
|
- bind_keyseq_to_unix_command: free `kseq' before returning error
|
|
|
|
arrayfunc.c
|
|
- assign_array_element_internal: make sure `akey' is freed if non-null
|
|
before returning error
|
|
- assign_compound_array_list: free `akey' before returning error
|
|
- array_value_internal: free `akey' before returning error
|
|
- unbind_array_element: free `akey' before returning error
|
|
|
|
subst.c
|
|
- array_length_reference: free `akey' before returning error in case
|
|
of expand_assignment_string_to_string error
|
|
- array_length_reference: free `akey' after call to assoc_reference
|
|
- skip_to_delim: if skipping process and command substitution, free
|
|
return value from extract_process_subst
|
|
- parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before
|
|
returning if verify_substring_values fails
|
|
- parameter_brace_expand: remove two duplicate lines that allocate
|
|
ret in parameter_brace_substring case
|
|
- parameter_brace_expand: convert `free (name); name = xmalloc (...)'
|
|
to use `xrealloc (name, ...)'
|
|
- parameter_brace_expand: free `name' before returning when handling
|
|
${!PREFIX*} expansion
|
|
- split_at_delims: fix memory leak by freeing `d2' before returning
|
|
|
|
redir.c
|
|
- redirection_error: free `filename' if the redirection operator is
|
|
REDIR_VARASSIGN by assigning allocname
|
|
|
|
eval.c
|
|
- send_pwd_to_eterm: fix memory leak by freeing value returned by
|
|
get_working_directory()
|
|
|
|
builtins/cd.def
|
|
- change_to_directory: fix memory leak by freeing return value from
|
|
resetpwd()
|
|
- cd_builtin: fix memory leak by freeing value returned by dirspell()
|
|
- cd_builtin: fix memory leak by freeing `directory' if appropriate
|
|
before overwriting with return value from resetpwd()
|
|
|
|
builtins/type.def
|
|
- describe_command: free `full_path' before overwriting it with return
|
|
value from sh_makepath
|
|
|
|
builtins/complete.def
|
|
- compgen_builtin: fix memory leak by calling strlist_dispose (sl)
|
|
before overwriting sl with return value from completions_to_stringlist
|
|
|
|
builtins/hash.def
|
|
- list_hashed_filename_targets: fix memory leak by freeing `target'
|
|
|
|
make_cmd.c
|
|
- make_arith_for_command: free `init', `test', and `step' before
|
|
returning error on parse error
|
|
|
|
jobs.c
|
|
- initialize_job_control: don't call move_to_high_fd if shell_tty == -1
|
|
|
|
general.c
|
|
- check_dev_tty: don't call close with an fd < 0
|
|
- legal_number: deal with NULL `string' argument, return invalid
|
|
|
|
lib/sh/fmtulong.c
|
|
- fmtulong: if the `base' argument is invalid, make sure we index
|
|
buf by `len-1' at maximum
|
|
|
|
print_cmd.c
|
|
- print_deferred_heredocs: don't try to dereference a NULL `cstring'
|
|
- cprintf: make sure to call va_end (args)
|
|
|
|
variables.c
|
|
- push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *)
|
|
instead of sizeof (WORD_LIST **)
|
|
|
|
lib/sh/zmapfd.c
|
|
- zmapfd: if read returns error, free result and return -1 immediately
|
|
instead of trying to reallocate it
|
|
|
|
11/6
|
|
----
|
|
execute_cmd.c
|
|
- cpl_reap: rewrote to avoid using pointer after freeing it; now builds
|
|
new coproc list on the fly while traversing the old one and sets the
|
|
right values for coproc_list when done
|
|
|
|
11/12
|
|
-----
|
|
builtins/set.def
|
|
- if neither -f nor -v supplied, don't allow a readonly function to
|
|
be implicitly unset. Fixes bug reported by Jens Schmidt
|
|
<jens.schmidt35@arcor.de>
|
|
|
|
lib/readline/callback.c
|
|
- change CALLBACK_READ_RETURN to clear signal handlers before returning
|
|
from rl_callback_read_char so readline's signal handlers aren't
|
|
installed when readline doesn't have control. Idea from Jan
|
|
Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
|
|
team
|
|
|
|
pcomplete.h
|
|
- COPT_NOQUOTE: new complete/compgen option value
|
|
|
|
builtins/complete.def
|
|
- noquote: new complete/compgen option; will be used to disable
|
|
filename completion quoting
|
|
|
|
pcomplete.c
|
|
- pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns
|
|
of rl_filename_quoting_desired if set; turns it on if unset (value
|
|
is inverted, since default is on)
|
|
|
|
doc/bash.1,lib/readline/doc/rluser.texi
|
|
- document new -o noquote option to complete/compgen/compopt
|
|
|
|
pathexp.c
|
|
- quote_string_for_globbing: if QGLOB_REGEXP, make sure characters
|
|
between brackets in an ERE bracket expression are not inappropriately
|
|
quoted with backslashes. This is a pretty substantial change,
|
|
should be stressed when opening bash up for alpha and beta tests.
|
|
Fixes bug pointed out by Stephane Chazleas
|
|
<stephane_chazelas@yahoo.fr>
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document that regexp matches can be inconsistent when quoting
|
|
characters in bracket expressions, since usual quoting characters
|
|
lose their meaning within brackets
|
|
- note that regular expression matching when the pattern is stored
|
|
in a shell variable which is quoted for expansion causes string
|
|
matching
|
|
|
|
redir.h
|
|
- RX_SAVEFD: new flag value; notes that a redirection denotes an
|
|
fd used to save another even if it's not >= SHELL_FD_BASE
|
|
|
|
redir.c
|
|
- do_redirection_internal: when deciding whether or not to reset the
|
|
close-on-exec flag on a restored file descriptor, trust the value
|
|
of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE
|
|
if the RX_SAVEFD flag is set
|
|
- add_undo_redirect: set the RX_SAVEFD flag if the file descriptor
|
|
limit is such that the shell can't duplicate to a file descriptor
|
|
>= 10. Fixes a limitation that tripped a coreutils test reported
|
|
by Paul Eggert <eggert@cs.ucla.edu>
|
|
|
|
11/19
|
|
-----
|
|
doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi
|
|
- make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading
|
|
the startup files
|
|
- make it clear that bash runs HISTSIZE=500 after reading the
|
|
startup files
|
|
- make it clear that setting HISTSIZE=0 causes commands to not be
|
|
saved in the history list
|
|
- make it clear that setting HISTFILESIZE=0 causes the history file
|
|
to be truncated to zero size
|
|
|
|
variables.c
|
|
- sv_histsize: change so setting HISTSIZE to a value less than 0
|
|
causes the history to be `unstifled'
|
|
- sv_histsize: change so setting HISTFILESIZE to a value less than 0
|
|
results in no file truncation
|
|
- make it clear that numeric values less than 0 for HISTFILESIZE or
|
|
HISTSIZE inhibit the usual functions
|
|
|
|
11/23
|
|
-----
|
|
parse.y
|
|
- save_input_line_state: add missing `return ls' at the end, since the
|
|
function is supposed to return its argument. Pointed out by
|
|
Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
builtins/read.def
|
|
- skip over NUL bytes in input, as most modern shells seem to. Bug
|
|
report by Matthew Story <matt@tablethotels.com>
|
|
|
|
lib/readline/vi_mode.c
|
|
- rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key
|
|
|
|
11/25
|
|
-----
|
|
builtins/read.def
|
|
- read_builtin: if xrealloc returns same pointer as first argument,
|
|
don't bother with the remove_unwind_protect/add_unwind_protect pair
|
|
- read_builtin: set a flag (`reading') around calls to zread/zreadc
|
|
and readline()
|
|
- sigalrm: change to set flag (`sigalrm_seen') and only longjmp if
|
|
currently in read(2) (reading != 0)
|
|
- CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero,
|
|
behavior of old SIGALRM catching function
|
|
- read_builtin: call CHECK_ALRM in appropriate places while reading
|
|
line of input. Fixes bug reported by Pierre Gaston
|
|
<pierre.gaston@gmail.com>
|
|
|
|
lib/readline/vi_mode.c
|
|
- rl_vi_replace: initialize characters before printing characters in
|
|
vi_replace_keymap to their default values in vi_insertion_keymap,
|
|
since we're supposed to be in insert mode replacing characters
|
|
- rl_vi_replace: call rl_vi_start_inserting to set last command to
|
|
`R' for undo
|
|
- rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future
|
|
use by _rl_vi_done_inserting
|
|
- vi_save_insert_buffer: new function, broke out code that copies text
|
|
into vi_insert_buffer from _rl_vi_save_insert
|
|
- _rl_vi_save_replace: new function, saves text modified by
|
|
rl_vi_replace (using current point and vi_replace_count to figure
|
|
it out) to vi_replace_buffer
|
|
- _rl_vi_save_insert: call vi_save_insert_buffer
|
|
- _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call
|
|
_rl_vi_save_replace to save text modified in replace mode (uses
|
|
vi_save_insert_buffer)
|
|
- _rl_vi_replace_insert: new function, replaces the number of chars
|
|
in vi_insert_buffer after rl_point with contents ov vi_insert_buffer
|
|
- rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and
|
|
there's something in vi_insert_buffer. Fixes bug with `.' not
|
|
redoing the most recent `R' command, reported by Geoff Clare
|
|
<g.clare@opengroup.org> in readline area on savannah
|
|
|
|
11/26
|
|
-----
|
|
lib/readline/rlprivate.h
|
|
- RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal
|
|
to be handled
|
|
- RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending
|
|
SIGINT to be handled
|
|
|
|
lib/readline/complete.c
|
|
- remove all mention of _rl_interrupt_immediately
|
|
- rl_completion_matches: check RL_SIG_RECEIVED after each call to
|
|
the entry function, call RL_CHECK_SIGNALS if true to handle the
|
|
signal
|
|
- rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free
|
|
and zero out the match_list this function allocated
|
|
- rl_completion_matches: if the completion entry function is
|
|
rl_filename_completion_function, free the contents of match_list,
|
|
because that function does not keep state and will not free the
|
|
entries; avoids possible memory leak pointed out by
|
|
Garrett Cooper <yanegomi@gmail.com>
|
|
- gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after
|
|
calling rl_attempted_completion_function, free the returned match
|
|
list and handle the signal with RL_CHECK_SIGNALS; avoids
|
|
possible memory leak pointed out by Garrett Cooper
|
|
<yanegomi@gmail.com>
|
|
- gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after
|
|
calling rl_completion_matches, free the returned match list and
|
|
handle the signal with RL_CHECK_SIGNALS
|
|
|
|
lib/readline/util.c
|
|
- rl_settracefp: new utility function to set the tracing FILE *
|
|
|
|
lib/readline/signals.c
|
|
- _rl_sigcleanup: pointer to a function that will be called with the
|
|
signal and a void * argument from _rl_handle_signal
|
|
- _rl_sigcleanarg: void * that the rest of the code can set to have
|
|
passed to the signal cleanup function
|
|
- _rl_handle_signal: if _rl_sigcleanup set, call as
|
|
(*_rl_sigcleanup) (sig, _rl_sigcleanarg)
|
|
|
|
lib/readline/rlprivate.h
|
|
- extern declarations for _rl_sigcleanup and _rl_sigcleanarg
|
|
|
|
lib/readline/complete.c
|
|
- _rl_complete_sigcleanup: signal cleanup function for completion code;
|
|
calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT
|
|
- rl_complete_internal: before calling display_matches if what_to_do
|
|
== `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match
|
|
list gets freed on SIGINT; avoids possible memory leak pointed out
|
|
by Garrett Cooper <yanegomi@gmail.com>
|
|
- rl_complete_internal: in default switch case, call _rl_free_match_list
|
|
before returning to avoid memory leak
|
|
|
|
doc/bashref.texi
|
|
- start at a set of examples for the =~ regular expression matching
|
|
operator, touching on keeping the pattern in a shell variable and
|
|
quoting portions of the pattern to remove their special meaning
|
|
|
|
12/1
|
|
----
|
|
lib/glob/gmisc.c
|
|
- extglob_pattern: new function, returns 1 if pattern passed as an
|
|
argument looks like an extended globbing pattern
|
|
|
|
lib/glob/glob.c
|
|
- skipname: return 0 immediately if extglob_pattern returns non-zero,
|
|
let the extended globbing code do the right thing with skipping
|
|
names beginning with a `.'
|
|
- mbskipname: return 0 immediately if extglob_pattern returns non-zero,
|
|
let the extended globbing code do the right thing with skipping
|
|
names beginning with a `.'. Fixes bug reported by Yongzhi Pan
|
|
<panyongzhi@gmail.com>
|
|
|
|
12/2
|
|
----
|
|
lib/glob/smatch.c
|
|
- patscan, patscan_wc: no longer static so other parts of the glob
|
|
library can use them, renamed to glob_patscan, glob_patscan_wc
|
|
|
|
lib/glob/glob.c
|
|
- extern declarations for glob_patscan, glob_patscan_wc
|
|
- wchkname: new function, does skipname on wchar_t pattern and dname,
|
|
old body of mbskipname after converting to wide chars
|
|
- extglob_skipname: new function, checks all subpatterns in an extglob
|
|
pattern to determine whether or not a filename should be skipped.
|
|
Calls skipname for each subpattern. Dname is only skipped if all
|
|
subpatterns indicate it should be. Better fix for bug reported by
|
|
Yongzhi Pan <panyongzhi@gmail.com>
|
|
- wextglob_skipname: wide-char version of extglob_skipname, calls
|
|
wchkname instead of calling back into mbskipname for each
|
|
subpattern to avoid problems with char/wchar_t mismatch
|
|
- skipname: call extglob_skipname if extglob_pattern returns non-zero
|
|
- mbskipname: call wextglob_skipname if extglob_pattern returns non-zero
|
|
- mbskipname: short-circuit immediately if no multibyte chars in
|
|
pattern or filename
|
|
|
|
execute_cmd.c
|
|
- execute_cond_node: added parens to patmatch assignment statement to
|
|
make intent clearer
|
|
|
|
12/3
|
|
----
|
|
configure.in,config.h.in
|
|
- check for imaxdiv, define HAVE_IMAXDIV if present
|
|
|
|
expr.c
|
|
- expassign, exp2: use imaxdiv if available. Doesn't help with checks
|
|
for overflow from 10/25
|
|
|
|
12/6
|
|
----
|
|
lib/readline/complete.c
|
|
- compute_lcd_of_matches: if we're ignoring case in the matches, only
|
|
use what the user typed as the lcd if it matches the first match
|
|
(after sorting) up to the length of what was typed (if what the
|
|
user typed is longer than the shortest of the possible matches, use
|
|
the shortest common length of the matches instead). If it doesn't
|
|
match, use the first of the list of matches, as if case were not
|
|
being ignored. Fixes bug reported by Clark Wang
|
|
<dearvoid@gmail.com>
|
|
|
|
12/7
|
|
----
|
|
builtins/cd.def
|
|
- cd_builtin: add code to return error in case cd has more than one
|
|
non-option argument, conditional on CD_COMPLAINS define (which is
|
|
not defined anywhere)
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- note that additional arguments to cd following the directory name
|
|
are ignored. Suggested by Vaclav Hanzl <hanzl@noel.feld.cvut.cz>
|
|
|
|
12/10
|
|
-----
|
|
lib/readline/input.c
|
|
- rl_read_key: don't need to increment key sequence length here; doing
|
|
it leads to an off-by-one error
|
|
|
|
lib/readline/macro.c
|
|
- rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length
|
|
fixed, can decrement current_macro_index by rl_key_sequence_length
|
|
(length of key sequence that closes keyboard macro)
|
|
|
|
lib/readline/readline.c
|
|
- _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length
|
|
when ESC maps to a new keymap and we're converting meta characters
|
|
to ESC+key
|
|
- _rl_dispatch_subseq: better increment of rl_key_sequence_length
|
|
before we dispatch to a function in the ISFUNC case (where the
|
|
second increment above should have happened)
|
|
- rl_executing_keyseq: the full key sequence that ended up executing
|
|
a readline command. Available to the calling application, maintained
|
|
by _rl_dispatch_subseq, indexed by rl_key_sequence_length
|
|
- rl_executing_key: the key that was bound to the currently-executing
|
|
readline command. Same as the `key' argument to the function
|
|
|
|
lib/readline/readline.h
|
|
- rl_executing_keyseq: extern declaration
|
|
- rl_executing_key: extern declaration
|
|
- rl_key_sequence_length: declaration moved here from rlprivate.h,
|
|
now part of public interface
|
|
|
|
lib/readline/rlprivate.h
|
|
- new extern declaration for _rl_executing_keyseq_size, buffer size
|
|
for rl_executing_keyseq
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- documented new variables: rl_executing_key, rl_executing_keyseq,
|
|
rl_key_sequence_length
|
|
|
|
12/13
|
|
-----
|
|
bashline.c
|
|
- bash_execute_unix_command: replace ad-hoc code that searches
|
|
cmd_xmap for correct command with call to rl_function_of_keyseq
|
|
using rl_executing_keyseq; now supports key sequences longer
|
|
than two characters. Fixes bug reported by Michael Kazior
|
|
<kazikcz@gmail.com>
|
|
|
|
12/15
|
|
-----
|
|
make_cmd.c
|
|
- make_function_def: don't null out source_file before calling
|
|
make_command so it can be used later on when the function definition
|
|
is executed
|
|
|
|
execute_cmd.c
|
|
- execute_intern_function: second argument is now FUNCTION_DEF *
|
|
instead of COMMAND *
|
|
- execute_command_internal: call execute_intern_function with the
|
|
new second argument (the entire FUNCTION_DEF instead of just the
|
|
command member)
|
|
- execute_intern_function: if DEBUGGER is defined, call
|
|
bind_function_def before calling bind_function, just like
|
|
make_function_def does (might be able to take out the call in
|
|
make_function_def depending on what the debugger does with it).
|
|
Fixes bug reported by <dethrophes@motd005>
|
|
|
|
expr.c
|
|
- more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1;
|
|
fix typos and logic errors
|
|
|
|
12/16
|
|
-----
|
|
bashline.c
|
|
- find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over
|
|
command substitutions and doesn't treat them as command separators
|
|
- attempt_shell_completion: instead of taking first return from
|
|
find_cmd_name as command name to use for programmable completion,
|
|
use loop to skip over assignment statements. Fixes problem reported
|
|
by Raphael Droz <raphael.droz+floss@gmail.com>
|
|
- attempt_shell_completion: if we don't find a command name but the
|
|
command line is non-empty, assume the other words are all assignment
|
|
statements and flag that point is in a command position so we can
|
|
do command name completion
|
|
- attempt_shell_completion: if the word being completed is the first
|
|
word following a series of assignment statements, and the
|
|
command line is non-empty, flag that point is in a command position
|
|
so we can do command name completion
|
|
|
|
lib/readline/history.c
|
|
- history_get_time: atol -> strtol
|
|
|
|
12/18
|
|
-----
|
|
parse.y
|
|
- parser_in_command_position: external interface to the
|
|
command_token_position macro for use by other parts of the shell,
|
|
like the completion mechanism
|
|
|
|
externs.h
|
|
- extern declaration for parser_in_command_position
|
|
|
|
12/19
|
|
-----
|
|
|
|
builtins/read.def
|
|
- read_builtin: make sure all calls to bind_read_variable are passed
|
|
a non-null string. Fixes bug reported by Dan Douglas
|
|
<ormaaj@gmail.com>
|
|
|
|
bashline.c
|
|
- attempt_shell_completion: mark that we're in a command position if
|
|
we're at the start of the line and the parser is ready to accept
|
|
a reserved word or command name. Feature most recently suggested
|
|
by Peng Yu <pengyu.ut@gmail.com>
|
|
|
|
12/21
|
|
-----
|
|
lib/readline/bind.c
|
|
- _rl_escchar: return the character that would be backslash-escaped
|
|
to denote the control character passed as an argument ('\n' -> 'n')
|
|
- _rl_isescape: return 1 if character passed is one that has a
|
|
backslash escape
|
|
- _rl_untranslate_macro_value: new second argument: use_escapes, if
|
|
non-zero translate to backslash escapes where possible instead of
|
|
using straight \C-x for control character `x'. Change callers
|
|
- _rl_untranslate_macro_value: now global
|
|
|
|
lib/readline/rlprivate.h
|
|
- _rl_untranslate_macro_value: extern declaration
|
|
|
|
lib/readline/{macro.c,readline.h}
|
|
- rl_print_last_kbd_macro: new bindable function, inspired by patch
|
|
from Mitchel Humpherys
|
|
|
|
lib/readline/funmap.c
|
|
- print-last-kbd-macro: new bindable command, bound to
|
|
rl_print_last_kbd_macro
|
|
|
|
lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
|
|
- print-last-kbd-macro: document.
|
|
|
|
lib/readline/text.c
|
|
- _rl_insert_next: if we're defining a macro, make sure the key gets
|
|
added to the macro text (should really audit calls to rl_read_key()
|
|
and make sure the right thing is happening for all of them)
|
|
|
|
bashline.[ch]
|
|
- print_unix_command_map: new function, prints all bound commands in
|
|
cmd_xmap using rl_macro_dumper in a reusable format
|
|
|
|
builtins/bind.def
|
|
- new -X option: print all keysequences bound to Unix commands using
|
|
print_unix_command_map. Feature suggested by Dennis Williamson
|
|
(2/2011)
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document new `bind -X' option
|
|
|
|
12/24
|
|
-----
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- add a couple of sentences to the description of the case modification
|
|
operators making it clearer that each character of parameter is
|
|
tested against the pattern, and that the pattern should only attempt
|
|
to match a single character. Suggested by Bill Gradwohl
|
|
<bill@ycc.com>
|
|
|
|
12/28
|
|
-----
|
|
shell.c
|
|
- init_noninteractive: instead of calling set_job_control(0) to
|
|
unconditionally turn off job control, turn on job control if
|
|
forced_interactive or jobs_m_flag is set
|
|
- shell_initialize: call initialize_job_control with jobs_m_flag as
|
|
argument so `bash -m script' enables job control while running the
|
|
script
|
|
|
|
jobs.c
|
|
- initialize_job_control: if the `force' argument is non-zero, turn on
|
|
job control even if the shell is not currently interactive
|
|
(interactive == 0)
|
|
|
|
12/29
|
|
-----
|
|
|
|
flags.h
|
|
- new extern declaration for jobs_m_flag
|
|
|
|
builtins/{cd,set}.def,doc/{bash.1,bashref.texi}
|
|
- added text clarifying the descriptions of cd -L and -P, suggested by
|
|
Padraig Brady <p@draigbrady.com>
|
|
- slight change to the description of `set -P' about resolving symbolic
|
|
links
|
|
|
|
lib/readline/doc/rluser.texi
|
|
- Added an example to the programmable completion section: _comp_cd,
|
|
a completion function for cd, with additional verbiage. Text
|
|
includes a reference to the bash_completion project
|
|
|
|
1/1/2012
|
|
--------
|
|
jobs.c
|
|
- set_job_status_and_cleanup: note that a job is stopped due to
|
|
SIGTSTP (any_tstped) if job_control is set; there's no need to
|
|
test interactive
|
|
|
|
1/5
|
|
---
|
|
quit.h
|
|
- LASTSIG(): new macro, expands to signal number of last terminating
|
|
signal received (terminating_signal or SIGINT)
|
|
|
|
trap.c
|
|
- first_pending_trap: returns lowest signal number with a trap pending
|
|
- trapped_signal_received: set to the last trapped signal the shell
|
|
received in trap_handler(); reset to 0 in run_pending_traps
|
|
|
|
builtins/read.def
|
|
- read_builtin: changes to posix-mode (posixly_correct != 0) to make
|
|
`read' interruptible by a trapped signal. After the trap runs,
|
|
read returns 128+sig and does not assign the partially-read line
|
|
to the named variable(s). From an austin-group discussion started
|
|
by David Korn
|
|
|
|
1/11
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- slight changes to the descriptions of the compat32 and compat40 shell
|
|
options to clarify their meaning
|
|
|
|
1/12
|
|
----
|
|
lib/readline/{colors.[ch],parse-colors.[ch]}
|
|
- new files, part of color infrastructure support
|
|
|
|
Makefile.in,lib/readline/Makefile.in
|
|
- arrange to have colors.o and parse-colors.o added to readline
|
|
library
|
|
|
|
{configure,config.h}.in
|
|
- check for stdbool.h, define HAVE_STDBOOL_H if found
|
|
|
|
1/14
|
|
----
|
|
lib/readline/bind.c
|
|
- colored_stats: new bindable variable, enables using colors to
|
|
indicate file type when listing completions
|
|
|
|
lib/readline/complete.c
|
|
- _rl_colored_stats: new variable, controlled by colored-stats bindable
|
|
variable
|
|
- colored_stat_start, colored_stat_end: new functions to set and reset
|
|
the terminal color appropriately depending on the type of the
|
|
filename to be printed
|
|
- print_filename: changes to print colors if `colored-stats' variable
|
|
set. Changes contributed by Raphael Droz
|
|
<raphael.droz+floss@gmail.com>
|
|
|
|
lib/readline/readline.c
|
|
- rl_initialize_everything: add call to _rl_parse_colors to parse
|
|
color values out of $LS_COLORS. May have to add to rl_initialize
|
|
to make more dynamic if LS_COLORS changes (which doesn't happen
|
|
very often, if at all)
|
|
|
|
lib/readline/rlprivate.h
|
|
- _rl_colored_stats: new extern declaration
|
|
|
|
lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
|
|
- colored-stats: document new bindable readline variable
|
|
|
|
lib/readline/colors.c
|
|
- _rl_print_color_indicator: call rl_filename_stat_hook before calling
|
|
lstat/stat so we can get color indicators for stuff like
|
|
$HOME/Applications
|
|
|
|
lib/readline/complete.c
|
|
- stat_char: call rl_filename_stat_hook before calling lstat/stat
|
|
|
|
findcmd.[ch],execute_cmd.c
|
|
- search_for_command: now takes a second `flags' argument; changed
|
|
header function prototype and callers
|
|
- search_for_command: if (flags & 1), put the command found in $PATH
|
|
into the command hash table (previous default behavior)
|
|
|
|
execute_cmd.c
|
|
- is_dirname: call search_for_command with flags argument of 0 so it
|
|
doesn't try to put something in the command hash table
|
|
|
|
bashline.c
|
|
- bash_command_name_stat_hook: a hook function for readline's
|
|
filename_stat_hook that does $PATH searching the same way that
|
|
execute_cmd.c:execute_disk_command() does it, and rewrites the
|
|
passed filename if found. Does not put names into command hash
|
|
table. This allows command name completion to take advantage
|
|
of `visible-stats' and `colored-stats' settings.
|
|
- executable_completion: new function, calls the directory completion
|
|
hook to expand the filename before calling executable_file or
|
|
executable_or_directory; change command_word_completion_function to
|
|
call executable_completion. This allows $HOME/bin/[TAB] to do
|
|
command completion and display alternatives
|
|
|
|
1/17
|
|
----
|
|
pcomplete.c
|
|
- gen_command_matches: now takes a new second argument: the command
|
|
name as deciphered by the programmable completion code and used
|
|
to look up the compspec; changed callers (gen_compspec_completions)
|
|
- gen_shell_function_matches: now takes a new second argument: the
|
|
command that originally caused the completion function to be
|
|
invoked; changed callers (gen_compspec_completions))
|
|
- build_arg_list: now takes a new second argument: the command name
|
|
corresponding to the current compspec; changed callers
|
|
(gen_command_matches, gen_shell_function_matches)
|
|
- build_arg_list: now uses `cmd' argument to create $1 passed to
|
|
invoked command or shell function
|
|
- gen_compspec_completions: if we skipped a null command at the
|
|
beginning of the line (e.g., for completing `>'), add a new word for
|
|
it at the beginning of the word list and increment nw and cw
|
|
appropriately. This is all a partial fix for the shortcoming
|
|
pointed out by Sung Pae <sungpae@gmail.com>
|
|
|
|
1/18
|
|
----
|
|
|
|
{configure,config.h}.in
|
|
- new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
|
|
define HAVE_DECL_AUDIT_USER_TTY if both are found
|
|
|
|
lib/readline/rlconf.h
|
|
- ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel
|
|
tty auditing system if it's available and enabled
|
|
|
|
lib/readline/util.c
|
|
- _rl_audit_tty: new function, send a string to the kernel tty audit
|
|
system
|
|
|
|
lib/readline/rlprivate.h
|
|
- _rl_audit_tty: new extern declaration
|
|
|
|
lib/readline/readline.c
|
|
- readline: call _rl_audit_tty with line to be returned before returning
|
|
it if the Linux tty audit system is available and it's been enabled
|
|
in rlconf.h Original patch from Miroslav Trmac; recent request
|
|
from Miroslav Lichvar <mlichvar@redhat.com>
|
|
|
|
1/21
|
|
----
|
|
|
|
lib/readline/readline.c:
|
|
- _rl_dispatch_subseq: add an inter-character timeout for multi-char
|
|
key sequences. Suggested by <rogerx.oss@gmail.com>. Still needs
|
|
work to make a user-settable variable
|
|
|
|
parse.y
|
|
- shell_getc: make code that uses the pop_alias dependent on ALIAS
|
|
define
|
|
|
|
variables.h
|
|
- sv_tz: extern define should only depend on HAVE_TZSET
|
|
|
|
expr.c
|
|
- expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1;
|
|
move assignment to `ind' inside define
|
|
- expr_bind_array_element: declaration and uses need to be #ifdef
|
|
ARRAY_VARS
|
|
|
|
arrayfunc.h
|
|
- AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not
|
|
defined; used in subst.c unconditionally
|
|
|
|
sig.h
|
|
- make the signal blocking functions not dependent on JOB_CONTROL
|
|
|
|
sig.c
|
|
- sigprocmask: make the replacement definition not dependent on
|
|
JOB_CONTROL
|
|
|
|
trap.c
|
|
- use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
|
|
HAVE_POSIX_SIGNALS and BSD signals
|
|
|
|
1/24
|
|
----
|
|
|
|
print_cmd.c
|
|
- print_redirection_list: change the conditions under which
|
|
r_duplicating_output_word is mapped to r_err_and_out to more or
|
|
less match those used in redir.c. Fixes bug pointed out by
|
|
Dan Douglas <ormaaj@gmail.com>
|
|
|
|
|
|
1/29
|
|
----
|
|
lib/readline/signals.c
|
|
- _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies
|
|
unless SIGWINCH is defined. Fixes bug reported by Pierre Muller
|
|
<pierre.muller@ics-cnrs.unistra.fr>
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- small modifications to the introduction to the REDIRECTION section
|
|
to describe how redirections can modify file handles
|
|
- small modification to the section describing base#n to make it
|
|
clearer that n can be denoted using non-numerics. From a posting
|
|
by Linda Walsh <bash@tlinx.org>
|
|
|
|
2/2
|
|
---
|
|
builtins/printf.def
|
|
- printf_builtin: make sure vbuf is intialized and non-null when -v
|
|
is supplied, since other parts of the code assume that it's not
|
|
null (e.g., bind_printf_variable()). Fixes bug reported by Jim
|
|
Avera <james_avera@yahoo.com>
|
|
|
|
2/4
|
|
---
|
|
lib/readline/undo.c
|
|
- _rl_free_undo_list: new function, old body of rl_free_undo_list,
|
|
frees undo entries in UNDO_LIST * passed as argument
|
|
- rl_free_undo_list: call _rl_free_undo_list
|
|
|
|
lib/readline/rlprivate.h
|
|
- _rl_free_undo_list: new extern declaration
|
|
- _rl_keyseq_timeout: new extern declaration (see below)
|
|
|
|
lib/readline/misc.c
|
|
- rl_clear_history: new function. Clears the history list and frees
|
|
all associated data similar to history.c:clear_history(), but
|
|
takes rl_undo_list into account and frees and UNDO_LISTs saved as
|
|
`data' members of a history list entry
|
|
|
|
lib/readline/doc/rltech.texi
|
|
- rl_clear_history: documented
|
|
|
|
lib/readline/readline.c
|
|
- _rl_keyseq_timeout: new variable to hold intra-key timeout value
|
|
from 1/21 fix; specified in milliseconds. Default value is 500
|
|
- _rl_dispatch_subseq: change to use _rl_keyseq_timeout as intra-key
|
|
timeout if it's greater than 0; no timeout if <= 0
|
|
- _rl_dispatch_subseq: don't check for queued keyboard input if we have
|
|
pushed or pending input, or if we're reading input from a macro
|
|
|
|
lib/readline/bind.c
|
|
- keyseq-timeout: new bindable variable, shadows _rl_keyseq_timeout
|
|
- string_varlist: add keyseq-timeout
|
|
- sv_seqtimeout: new function to modify value of _rl_keyseq_timeout;
|
|
clamps negative values at 0 for now
|
|
- _rl_get_string_variable_value: return value for keyseq-timeout
|
|
|
|
doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
|
|
- keyseq-timeout: documented
|
|
|
|
lib/readline/isearch.c
|
|
- _rl_isearch_dispatch: modification to fix from 7/18 to not use
|
|
cxt->keymap and cxt->okeymap, since by the time this code is
|
|
executed, they are equal. Use `f' to check for rl_insert or
|
|
unbound func
|
|
- _rl_isearch_dispatch: if we're switching keymaps, not in
|
|
callback mode, and don't have pending or pushed input, use
|
|
_rl_input_queued to resolve a potentially ambiguous key sequence.
|
|
Suggested by Roger Zauner <rogerx.oss@gmail.com>
|
|
- _rl_isearch_dispatch: if we have changed keymaps and resolved to
|
|
an editing function (not self-insert), make sure we stuff the
|
|
right characters back onto the input after changing the keymap
|
|
back so the right editing function is executed after the search
|
|
is terminated. Rest of fix for bug reported by Roger Zauner
|
|
<rogerx.oss@gmail.com>
|
|
|
|
2/5
|
|
---
|
|
builtins/gen-helpfiles.c
|
|
- new file: reads struct builtin and writes the long docs to files
|
|
in the `helpdirs' subdirectory. The filename is given in the
|
|
previously-unused `handle' member of the struct builtin. Links
|
|
with `tmpbuiltins.o', which is created by Makefile to have the
|
|
right long documentation. When not cross-compiling, gets the
|
|
right #defines based on configuration options from config.h instead
|
|
of trying to parse conditional parts of def files. Fixes
|
|
shortcoming pointed out by Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
builtins/Makefile.in
|
|
- tmpbuiltins.c: new generated file, created to enable creation of
|
|
separate helpfiles based on correct #defines instead of trying to
|
|
parse conditional parts of def files
|
|
- gen-helpfiles: new program to generate helpfiles, links with
|
|
tmpbuiltins.o
|
|
- HELPFILES_TARGET: new target, substituted by configure to `helpdoc'
|
|
if separate helpfiles requested
|
|
- targets: new target, libbuiltins.a and $(HELPFILES_TARGET)
|
|
- CREATED_OBJECTS: new variable, holds created object files for
|
|
make clean; changed make clean to remove created objects
|
|
- helpdoc: changed to call gen-helpfiles instead of mkbuiltins
|
|
|
|
Makefile.in
|
|
- when building libbuiltins.a, recursively call make with `targets'
|
|
argument to make sure separate helpfiles get built
|
|
|
|
configure.in
|
|
- substitute `helpdoc' as value of HELPFILES_TARGET if
|
|
--enable-separate-helpfiles supplied as configure argument
|
|
|
|
builtins/mkbuiltins.c
|
|
- `-nofunctions': new argument, causes mkbuiltins to not write value
|
|
for function implementing a particular builtin to struct builtin
|
|
and to write document file name to `handle' member of struct builtin
|
|
- no longer writes separate helpfiles; that is left to gen-helpfiles
|
|
|
|
2/8
|
|
---
|
|
subst.c
|
|
- make sure last_command_exit_value is set to a non-zero value before
|
|
any calls to report_error, since `-e' set will short-circuit
|
|
report_error. Fixes bug reported by Ewan Mellor
|
|
<Ewan.Mellor@eu.citrix.com>
|
|
|
|
variables.c
|
|
- make_local_array_variable: added second argument; if non-zero,
|
|
function will return an existing local associative array variable
|
|
instead of insisting on an indexed array
|
|
|
|
variable.h,subst.c
|
|
- make_local_array_variable: changed prototype and caller
|
|
|
|
builtins/declare.def
|
|
- declare_internal: add second arg to call to make_local_array_variable;
|
|
making_array_special, which indicates we're processing an
|
|
assignment like declare a[b]=c. Fixes seg fault resulting from
|
|
a being an already-declared local associative array variable in a
|
|
function. Ubuntu bash bug 928900.
|
|
|
|
2/14
|
|
----
|
|
|
|
execute_cmd.c
|
|
- execute_command_internal: if redirections into or out of a loop fail,
|
|
don't try to free ofifo_list unless saved_fifo is non-zero. It's
|
|
only valid if saved_fifo is set
|
|
|
|
2/15
|
|
----
|
|
{arrayfunc,braces,variables}.c
|
|
- last_command_exit_value: make sure it's set before any calls to
|
|
report_error, since -e will cause that to exit the shell
|
|
|
|
builtins/common.c
|
|
- get_job_by_name: call internal_error instead of report_error so this
|
|
doesn't exit the shell
|
|
|
|
2/18
|
|
----
|
|
builtins/evalstring.c
|
|
- parse_and_execute: make sure the file descriptor to be redirected to
|
|
is 1 before calling cat_file. One fix for bug reported by Dan Douglas
|
|
<ormaaj@gmail.com>
|
|
|
|
parse.y
|
|
- read_token_word: don't return NUMBER if a string of all digits
|
|
resolves to a number that overflows the bounds of an intmax_t.
|
|
Other fix for bug reported by Dan Douglas <ormaaj@gmail.com>
|
|
|
|
2/19
|
|
----
|
|
lib/sh/strtrans.c
|
|
- ansicstr: use 0x7f as the boundary for characters that translate
|
|
directly from ASCII to unicode (\u and \U escapes) instead of
|
|
UCHAR_MAX, since everything >= 0x80 requires more than one byte.
|
|
Bug and fix from John Kearney <dethrophes@web.de>
|
|
|
|
builtins/printf.def
|
|
- tescape: ditto for printf \u and \U escape sequences
|
|
|
|
2/20
|
|
----
|
|
lib/sh/unicode.c
|
|
- u32toutf8: fix to handle encodings up to six bytes long correctly
|
|
(though technically UTF-8 only has characters up to 4 bytes long).
|
|
Report and fix from John Kearney <dethrophes@web.de>
|
|
- u32toutf8: first argument is now an unsigned 32-bit quantity,
|
|
changed callers (u32cconv) to pass c instead of wc
|
|
- u32reset: new function, resets local static state to uninitialized
|
|
(locale information, currently)
|
|
|
|
locale.c
|
|
- call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the
|
|
cached locale information used by u32cconv. From a report from
|
|
John Kearney <dethrophes@web.de>
|
|
|
|
2/21
|
|
----
|
|
doc/{bash,builtins}.1
|
|
- minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
|
|
|
|
lib/sh/unicode.c
|
|
- u32cconv: only assume you can directly call wctomb on the passed
|
|
value if __STDC_ISO_10646__ is defined and the value is <=
|
|
0x7fffffff
|
|
- stub_charset: return locale as default instead of "ASCII", let
|
|
rest of code decide what to do with it
|
|
|
|
lib/readline/parens.c
|
|
- _rl_enable_paren_matching: make paren matching work in vi insert
|
|
mode. Bug report from <derflob@derflob.de>
|
|
|
|
2/22
|
|
----
|
|
lib/sh/shquote.c
|
|
- sh_backslash_quote: quote tilde in places where it would be
|
|
expanded. From a report from John Kearney <dethrophes@web.de>
|
|
|
|
2/23
|
|
----
|
|
execute_cmd.c
|
|
- execute_pipeline: wrap the discard_unwind_frame call in #ifdef
|
|
JOB_CONTROL, since the frame is only created if JOB_CONTROL is
|
|
defined. Bug and fix from Doug Kehn <rdkehn@yahoo.com>
|
|
|
|
2/25
|
|
----
|
|
error.c
|
|
- report_error: make sure last_command_exit_value is non-zero before
|
|
we call exit_shell, since the exit trap may reference it. Call
|
|
exit_shell with last_command_exit_value to allow exit statuses
|
|
other than 1
|
|
|
|
unicode.c
|
|
- stub_charset: use local static buffer to hold charset, don't change
|
|
value returned by get_locale_var. Based on idea and code from
|
|
John Kearney <dethrophes@web.de>
|
|
- u32toutf16: function to convert unsigned 32-bit value (unicode) to
|
|
UTF-16. From John Kearney <dethrophes@web.de>
|
|
- u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t
|
|
is two bytes, send result to wcstombs, return if not encoding error.
|
|
From John Kearney <dethrophes@web.de>
|
|
- u32cconv: return UTF-8 conversion if iconv conversion to local
|
|
charset is unsupported
|
|
|
|
3/2
|
|
---
|
|
lib/readline/complete.c
|
|
- print_filename: if there is no directory hook, but there is a stat
|
|
hook, and we want to append a slash to directories, call the stat
|
|
hook before calling path_isdir on the expanded directory name.
|
|
Report and pointer to fix from Steve Rago <sar@nec-labs.com>
|
|
|
|
3/3
|
|
---
|
|
builtins/evalstring.c
|
|
- parse_and_execute: fix to change of 2/18: make sure the file
|
|
descriptor being redirected to is 0 before calling cat_file when
|
|
we see something like $(< file). Real fix for bug reported by
|
|
Dan Douglas <ormaaj@gmail.com>
|
|
|
|
subst.c
|
|
- parameter_brace_patsub: run the replacement string through quote
|
|
removal even if the expansion is within double quotes, because
|
|
the parser and string extract functions treat the quotes and
|
|
backslashes as special. If they're treated as special, quote
|
|
removal should remove them (this is the Posix position and
|
|
compatible with ksh93). THIS IS NOT BACKWARDS COMPATIBLE.
|
|
|
|
3/4
|
|
---
|
|
lib/readline/complete.c
|
|
- rl_menu_complete: fix to make show-all-if-ambiguous and
|
|
menu-complete-display-prefix work together if both are set. Fix
|
|
from Sami Pietila <sami.pietila@gmail.com>
|
|
|
|
3/5
|
|
---
|
|
bashline.c
|
|
- dircomplete_expand_relpath: new variable, if non-zero, means that
|
|
`shopt -s direxpand' should expand relative pathnames. Zero by
|
|
default, not user-settable yet
|
|
- bash_directory_completion_hook: if we have a relative pathname that
|
|
isn't changed by canonicalization or spell checking after being
|
|
appended to $PWD, then don't change what the user typed. Controlled
|
|
by dircomplete_expand_relpath
|
|
|
|
3/7
|
|
---
|
|
m4/timespec.m4
|
|
- new macros, cribbed from gnulib and coreutils: find out whether we
|
|
have `struct timespec' and what file includes it
|
|
|
|
m4/stat-time.m4
|
|
- new macros, cribbed from gnulib and coreutils: find out whether the
|
|
mtime/atime/ctime/etctime fields of struct stat are of type
|
|
struct timespec, and what the name is
|
|
|
|
include/stat-time.h
|
|
- new file, cribbed from gnulib, with additions from coreutils: include
|
|
the right file to get the struct timespec define, or provide our own
|
|
replacement. Provides a bunch of inline functions to turn the
|
|
appropriate members of struct stat into `struct timespec' values,
|
|
zeroing out the tv_nsec field if necessary
|
|
|
|
test.c
|
|
- include "stat-time.h" for the nanosecond timestamp resolution stuff
|
|
- stat_mtime: new function, returns struct stat and the mod time
|
|
normalized into a `struct timespec' for the filename passed as the
|
|
first argument
|
|
- filecomp: call stat_mtime instead of sh_stat for each filename
|
|
argument to get the mtime as a struct timespec
|
|
- filecomp: call timespec_cmp instead of using a straight arithmetic
|
|
comparison for the -nt and -ot operators, using timespec returned by
|
|
stat_mtime. Added functionality requested by by Werner Fink
|
|
<werner@suse.de> for systems that can support it
|
|
|
|
3/10
|
|
----
|
|
include/posixdir.h
|
|
- REAL_DIR_ENTRY: remove dependency on _POSIX_SOURCE, only use feature
|
|
test macros to decide whether dirent.d_ino is present and usable;
|
|
define D_INO_AVAILABLE. Report and fix from Fabrizion Gennari
|
|
<fabrizio.ge@tiscali.it>
|
|
- D_FILENO_AVAILABLE: define if we can use dirent.d_fileno
|
|
|
|
lib/sh/getcwd.c
|
|
- use D_FILENO_AVAILABLE to decide whether or not to compile in
|
|
_path_checkino and whether or not to call it. Report and initial
|
|
fix from Fabrizion Gennari <fabrizio.ge@tiscali.it>
|
|
|
|
lib/readline/signals.c
|
|
- make sure all occurrences of SIGWINCH are protected by #ifdef
|
|
|
|
sig.c
|
|
- make sure all occurrences of SIGCHLD are protected by #ifdef
|
|
|
|
nojobs.c
|
|
- make sure SA_RESTART is defined to 0 if the OS doesn't define it
|
|
|
|
version.c
|
|
- show_shell_version: don't use string literals in printf, use %s.
|
|
Has added benefit of removing newline from string to be translated
|
|
|
|
trap.c
|
|
- queue_sigchld_trap: new function, increments the number of pending
|
|
SIGCHLD signals by the argument, which is by convention the number
|
|
of children reaped in a call to waitchld()
|
|
|
|
trap.h
|
|
- queue_sigchld_trap: new extern declaration
|
|
|
|
jobs.c
|
|
- waitchld: if called from the SIGCHLD signal handler (sigchld > 0),
|
|
then call queue_sigchld_trap to avoid running the trap in a signal
|
|
handler context. Report and original fix from Siddhesh Poyarekar
|
|
<siddhesh@redhat.com>
|
|
|
|
lib/sh/unicode.c
|
|
- u32tocesc: take an unsigned 32-bit quantity and encode it using
|
|
ISO C99 string notation (\u/\U)
|
|
- u32cconv: call u32tocesc as a fallback instead of u32cchar
|
|
- u32cconv: call u32tocesc if iconv cannot convert the character.
|
|
Maybe do the same thing if iconv_open fails
|
|
- u32reset: call iconv_close on localconv if u32init == 1
|
|
|
|
3/11
|
|
----
|
|
config-top.h
|
|
- CHECKWINSIZE_DEFAULT: new define, set to initial value of
|
|
check_window_size (shopt checkwinsize): 0 for off, 1 for on.
|
|
Default is 0
|
|
|
|
{jobs,nojobs}.c
|
|
- check_window_size: default initial value to CHECKWINSIZE_DEFAULT
|
|
|
|
3/13
|
|
----
|
|
doc/bashref.texi
|
|
- change text referring to the copying restrictions to that
|
|
recommended by the FSF (no Front-Cover Texts and no Back-Cover
|
|
Texts)
|
|
|
|
lib/readline/doc/{history,rlman,rluserman}.texi
|
|
- change text referring to the copying restrictions to that
|
|
recommended by the FSF (no Front-Cover Texts and no Back-Cover
|
|
Texts)
|
|
|
|
3/15
|
|
----
|
|
array.c
|
|
- LASTREF_START: new macro to set the starting position for an array
|
|
traversal to `lastref' if that's valid, and to the start of the array
|
|
if not. Used in array_reference, array_insert, array_remove
|
|
- array_remove: try to be a little smarter with lastref instead of
|
|
unconditionally invalidating it
|
|
|
|
3/16
|
|
----
|
|
array.c
|
|
- array_insert: fix memory leak by deleting element to be added in the
|
|
case of an error
|
|
|
|
3/18
|
|
----
|
|
lib/sh/mbschr.c
|
|
- mbschr: don't call mbrlen unless is_basic is false; devolves to a
|
|
straight character-by-character run through the string
|
|
|
|
3/19
|
|
----
|
|
stringlib.c
|
|
- substring: use memcpy instead of strncpy, since we know the length
|
|
and are going to add our own NUL terminator
|
|
|
|
3/20
|
|
----
|
|
subst.c
|
|
- parameter_brace_expand_rhs: if expand_string_for_rhs returns a quoted
|
|
null string (a list with one element for which
|
|
QUOTED_NULL(list->word->word) returns true), return the quoted null
|
|
and set the flags in the returned word to indicate it. Fixes bug
|
|
reported by Mark Edgar <medgar123@gmail.com>
|
|
|
|
lib/sh/tmpfile.c
|
|
- use random(3) instead of get_random_number to avoid perturbing the
|
|
random sequence you get using $RANDOM. Bug report and fix from
|
|
Jurij Mihelic <jurij.mihelic@fri.uni-lj.si>
|
|
|
|
3/21
|
|
----
|
|
config-top.h
|
|
- OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT: define to 1 to optimize
|
|
sequential indexed array assignment patterns. Defined to 1 by
|
|
default
|
|
|
|
array.c
|
|
- array_insert: if OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT is defined,
|
|
start the search at lastref (see change from 3/15)
|
|
|
|
3/27
|
|
----
|
|
print_cmd.c
|
|
- debug_print_word_list: new debugging function, prints a word list
|
|
preceded by an optional string and using a caller-specified
|
|
separator
|
|
|
|
4/1
|
|
---
|
|
command.h
|
|
- W_ASSNGLOBAL: new flag, set to indicate declare -g
|
|
|
|
execute_cmd.c
|
|
- fix_assignment_words: note that we have a -g argument to an assignment
|
|
builtin and set the W_ASSNGLOBAL flag in the variable word
|
|
|
|
subst.c
|
|
- dump_word_flags: print out W_ASSNGLOBAL if present
|
|
- do_assignment_internal: only set ASS_MKLOCAL if W_ASSIGNARG is set
|
|
and W_ASSNGLOBAL is not. Don't want to create a local variable even
|
|
if variable_context is non-zero if ASSNGLOBAL is set. Fixes bug
|
|
reported by Bill Gradwohl <bill@ycc.com>
|
|
|
|
4/7
|
|
---
|
|
lib/readline/readline.c
|
|
- _rl_dispatch_subseq: make the `keyseq-timeout' variable apply to
|
|
ESC processing when in vi mode. After hitting ESC, readline will
|
|
wait up to _rl_keyseq_timeout*1000 microseconds (if set) for
|
|
additional input before dispatching on the ESC and switching to
|
|
command/movement mode. Completes timeout work suggested by
|
|
<rogerx.oss@gmail.com>; this prompted by report from Barry Downes
|
|
<barry.downes@gmail.com>
|
|
|
|
lib/sh/shmbchar.c
|
|
- sh_mbsnlen: new function, returns the number of (possibly multibyte)
|
|
characters in a passed string with a passed length, examining at most
|
|
maxlen (third argument) bytes
|
|
|
|
externs.h
|
|
- sh_mbsnlen: extern declaration for new function
|
|
|
|
shell.c
|
|
- exit_shell: call maybe_save_shell_history if remember_on_history is
|
|
set, not just in interactive shells. That means the history is
|
|
saved if history is enabled, regardless of whether or not the shell
|
|
is interactive
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- TMOUT: fix description to make it explicit that TMOUT is the timeout
|
|
period for a complete line of input, not just any input. Fixes
|
|
problem reported in Ubuntu bug 957303:
|
|
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/957303
|
|
- HISTFILE: document change to write history list to history file in
|
|
any shell with history enabled, not just interactive shells. This
|
|
seems to be more logical behavior. Suggested by Greg Wooledge
|
|
<wooledg@eeg.ccf.org>
|
|
|
|
4/12
|
|
----
|
|
lib/readline/colors.h
|
|
- only include stdbool.h if HAVE_STDBOOL_H is defined
|
|
- if HAVE_STDBOOL_H is not defined, provide enough definition for the
|
|
library to use `bool', `true', and `false'
|
|
|
|
lib/readline/parse-colors.[ch]
|
|
- don't try to include <stdbool.h> at all; rely on colors.h to do it
|
|
|
|
lib/sh/snprintf.c
|
|
- vsnprintf_internal: only treat '0' as a flag to indicate zero padding
|
|
if `.' hasn't been encountered ((flags&PF_DOT) == 0); otherwise treat
|
|
it as the first digit of a precision specifier. Fixes bug reported
|
|
by Petr Sumbera <petr.sumbera@sun.com>
|
|
|
|
4/15
|
|
----
|
|
lib/sh/snprintf.c
|
|
- vsnprintf_internal: if the '0' and '-' flags both occur, the '0'
|
|
flag is ignored -- Posix. Start of a series of fixes based on
|
|
tests and patches from Petr Sumbera <petr.sumbera@sun.com>
|
|
- PUT_PLUS: make sure PF_PLUS flag is specified before putting the `+'
|
|
- vsnprintf_internal: when '+' is read as a flag, don't set right-
|
|
justify flag if the LADJUST (`-') flag has already been supplied
|
|
- floating: make sure to output space padding before the `+', zero
|
|
padding after
|
|
- exponent: make sure to output space padding before the `+', zero
|
|
padding after
|
|
- exponent: only subtract one from the width for the decimal point
|
|
if we're really going to print one
|
|
- floating: use presence of PF_PLUS flag to decide whether to account
|
|
for the `+' in the padded field width. Ditto for exponent()
|
|
|
|
4/16
|
|
----
|
|
lib/sh/snprintf.c
|
|
- vsnprint_internal: only reduce precision by 1 when processing the `g'
|
|
format if it's > 0. A precision of 0 should stay 0; otherwise it
|
|
gets set to -1 (NOT_FOUND) and converted to the default
|
|
- number, lnumber: if an explicit precision is supplied, turn off the
|
|
zero-padding flag and set the pad character back to space
|
|
- number, lnumber: only account for a `+' when performing the field
|
|
width calculation if the coversion is base 10; we don't add a `+'
|
|
for other bases
|
|
|
|
4/18
|
|
----
|
|
tests/printf3.sub
|
|
- try using "perl -e 'print time'" to get the current time in seconds
|
|
since the epoch if "date +%s" is not available (solaris 8-10)
|
|
|
|
4/19
|
|
----
|
|
tests/run-printf
|
|
- use cat -v instead of relying on diff -a being available to convert
|
|
control characters to ascii and avoid the dreaded "Binary files
|
|
/tmp/xx and printf.right differ"
|
|
|
|
4/20
|
|
----
|
|
lib/sh/strftime.c
|
|
- incoporated new version from Aharon Robbins <arnold@skeeve.com>
|
|
|
|
4/22
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- slight change to the description of /dev/tcp and /dev/udp
|
|
|
|
subst.c
|
|
- match_wpattern: logic fix to the calculation of `simple' (was |=,
|
|
needs to be &=). Bug report from Mike Frysinger <vapier@gentoo.org>,
|
|
fix from Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
bashline.c
|
|
- bash_filename_stat_hook: add code from bash_directory_completion_hook
|
|
that performs pathname canonicalization in the same way that cd and
|
|
other builtins will do
|
|
|
|
4/25
|
|
----
|
|
execute_cmd.c
|
|
- execute_pipeline: change the call to move_to_high_fd to make it use
|
|
getdtablesize() and to not stomp on existing open file descriptors,
|
|
like the fd the shell is using to read a script. Bug report from
|
|
Greg Wooledge <wooledg@eeg.ccf.org>
|
|
|
|
5/6
|
|
---
|
|
subst.c
|
|
- expand_word_internal: case '$': after calling param_expand and
|
|
setting had_quoted_null, set TEMP to null. The code that builds the
|
|
returned string at the end of the function will take care of making
|
|
and returning a quoted null string if there's nothing else in
|
|
ISTRING. If there is, the quoted null should just go away. Part of
|
|
fix for bug reported by Ruediger Kuhlmann <RKuhlmann@orga-systems.com>
|
|
- expand_word_internal: when processing ISTRING to build return value,
|
|
only set W_HASQUOTEDNULL in the returned word flags if the word is
|
|
a quoted null string AND had_quoted_null is set. Rest of fix
|
|
|
|
5/9
|
|
---
|
|
variables.c
|
|
- bind_variable_internal: if we get an array variable here (implicit
|
|
assignment to index 0), call make_array_variable_value, which
|
|
dummies up a fake SHELL_VAR * from array[0]. This matters when
|
|
we're appending and have to use the current value
|
|
- bind_variable_internal: after computing the new value, treat assoc
|
|
variables with higher precedence than simple array variables; it
|
|
might be that a variable has both attributes set
|
|
|
|
arrayfunc.c
|
|
- bind_array_var_internal: break code out that handles creating the
|
|
new value to be assigned to an array variable index into a new
|
|
function, make_array_variable_value. This handles creating a
|
|
dummy SHELL_VAR * for implicit array[0] assignment. Fixes bug
|
|
reported by Dan Douglas <ormaaj@gmail.com>
|
|
|
|
arrayfunc.h
|
|
- make_array_variable_value: new extern declaration
|
|
|
|
5/19
|
|
----
|
|
variables.c
|
|
- bind_int_variable: if an assignment statement like x=y comes in
|
|
from the expression evaluator, and x is an array, handle it like
|
|
x[0]=y. Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
|
|
|
|
5/24
|
|
----
|
|
|
|
braces.c
|
|
- mkseq: handle possible overflow and break the sequence generating
|
|
loop if it occurs. Fixes OpenSUSE bug 763591:
|
|
https://bugzilla.novell.com/show_bug.cgi?id=763591
|
|
|
|
5/25
|
|
----
|
|
Makefile.in
|
|
- LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
|
|
buildversion, mksignames, mksyntax
|
|
- LDFLAGS_FOR_BUILD: add to compilation recipes for test tools
|
|
recho, zecho, printenv, xcase
|
|
|
|
builtins/Makefile.in
|
|
- LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
|
|
gen-helpfiles, psize.aux
|
|
|
|
variables.c
|
|
- bind_int_variable: if LHS is a simple variable name without an array
|
|
reference, but resolves to an array variable, call
|
|
bind_array_variable with index 0 to make x=1 equivalent to x[0]=1.
|
|
Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
|
|
|
|
5/27
|
|
----
|
|
subst.c
|
|
- expand_word_internal: make sure has_dollar_at doesn't get reset before
|
|
recursive calls to param_expand or expand_word_internal, since it has
|
|
to save state of what came before. Use temp variable and make sure
|
|
has_dollar_at is incremented if recursive call processes "$@".
|
|
Fixes bug reported by gregrwm <backuppc-users@whitleymott.net> and
|
|
supplemented by Dan Douglas <ormaaj@gmail.com>
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- changes to the description of substring expansion inspired by
|
|
suggestions from Bill Gradwohl <bill@ycc.com>
|
|
|
|
doc/bashref.texi
|
|
- added substring expansion examples inspired by suggestions from
|
|
Bill Gradwohl <bill@ycc.com>
|
|
|
|
variables.c
|
|
- find_shell_variable: search for a variable in the list of shell
|
|
contexts, ignore the temporary environment
|
|
- find_variable_tempenv: search for a variable in the list of shell
|
|
contexts, force search of the temporary environment
|
|
- find_variable_notempenv: search for a variable in the list of shell
|
|
contexts, don't force search of the temporary environment
|
|
|
|
variables.h
|
|
- find_shell_variable: extern declaration
|
|
- find_variable_tempenv: extern declaration
|
|
- find_variable_notempenv: extern declaration
|
|
|
|
arrayfunc.c
|
|
- bind_array_variable: call find_shell_variable instead of calling
|
|
var_lookup directly
|
|
|
|
findcmd.c
|
|
- search_for_command: call find_variable_tempenv instead of
|
|
find_variable_internal directly
|
|
- _find_user_command_internal: call find_variable_tempenv instead of
|
|
find_variable_internal directly
|
|
|
|
builtins/setattr.def
|
|
- set_var_attribute: call find_variable_notempenv instead of
|
|
find_variable_internal directly
|
|
- show_name_attributes: call find_variable_tempenv instead of
|
|
find_variable_internal directly
|
|
|
|
6/1
|
|
---
|
|
sig.c
|
|
- termsig_handler: don't try to save the shell history on a terminating
|
|
signal any more, since it just causes too many problems on Linux
|
|
systems using glibc and glibc malloc
|
|
|
|
lib/readline/vi_mode.c
|
|
- rl_vi_change_to: change to correctly redo `cc', since `c' is not a vi
|
|
motion character. From Red Hat bug 813289
|
|
- rl_vi_delete_to: change to correctly redo `dd', since `d' is not a vi
|
|
motion character
|
|
- rl_vi_yank_to: change to correctly redo `yy', since `y' is not a vi
|
|
motion character
|
|
|
|
6/4
|
|
---
|
|
lib/sh/mktime.c
|
|
- current versions of VMS do not need to include <stddef.h>. Fix from
|
|
John E. Malmberg <wb8tyw@qsl.net>
|
|
|
|
6/5
|
|
---
|
|
lib/sh/eaccess.c
|
|
- sh_stat: instead of using a static buffer to do the DEV_FD_PREFIX
|
|
translation, use a dynamically-allocated buffer that we keep
|
|
resizing. Fixes potential security hole reported by David Leverton
|
|
<levertond@googlemail.com>
|
|
|
|
6/5
|
|
---
|
|
braces.c
|
|
- expand_seqterm: check errno == ERANGE after calling strtoimax for
|
|
rhs and incr. Part of a set of fixes from Scott McMillan
|
|
<scotty.mcmillan@gmail.com>
|
|
- expand_seqterm: incr now of type `intmax_t', which changes
|
|
arguments to mkseq
|
|
- mkseq: a better fix for detecting overflow and underflow since it's
|
|
undefined in C and compilers `optimize' out overflow checks. Uses
|
|
ADDOVERFLOW and SUBOVERFLOW macros
|
|
- mkseq: use sh_imaxabs (new macro) instead of abs() for intmax_t
|
|
variables
|
|
- mkseq: don't allow incr to be converted to -INTMAX_MIN
|
|
- mkseq: make sure that strvec_create isn't called with a size argument
|
|
greater than INT_MAX, since it only takes an int
|
|
|
|
6/6
|
|
---
|
|
braces.c
|
|
- mkseq: try and be smarter about not overallocating elements in
|
|
the return array if the increment is not 1 or -1
|
|
|
|
6/7
|
|
---
|
|
parse.y
|
|
- history_delimiting_chars: if the parser says we're in the middle of
|
|
a compound assignment (PST_COMPASSIGN), just return a space to avoid
|
|
adding a stray semicolon to the history entry. Fixes bug reported
|
|
by "Davide Brini" <dave_br@gmx.com>
|
|
|
|
6/8
|
|
---
|
|
bashline.c
|
|
- bash_directory_completion_hook: don't attempt spelling correction
|
|
on the directory name unless the direxpand option is set and we are
|
|
going to replace the directory name with the corrected one in the
|
|
readline line. Suggested by Linda Walsh <bash@tlinx.org>
|
|
|
|
lib/sh/shquote.c
|
|
- sh_backslash_quote: now takes a third argument: flags. If non-zero,
|
|
tildes are not backslash-escaped. Have to handle both printf %q,
|
|
where they should be escaped, and filename completion, where they
|
|
should not when used as usernames
|
|
|
|
externs.h
|
|
- sh_backslash_quote: declaration now takes a third argument
|
|
|
|
builtins/printf.def
|
|
- printf_builtin: call sh_backslash_quote with 1 as third argument
|
|
so tildes get escaped
|
|
|
|
{bashline,bracecomp}.c
|
|
- call sh_backslash_quote with 0 as third argument so tildes are not
|
|
escaped in completed words
|
|
|
|
doc/bash.1
|
|
- add `coproc' to the list of reserved words. From a report by
|
|
Jens Schweikhardt <schweikh@schweikhardt.net>
|
|
|
|
6/10
|
|
----
|
|
execute_cmd.c
|
|
- line_number_for_err_trap: now global, so parse_and_execute can save
|
|
and restore it with unwind-protect
|
|
|
|
builtins/evalstring.c
|
|
- parse_prologue: save and restore line_number_for_err_trap along
|
|
with line_number
|
|
- restore_lastcom: new function, unwind-protect to restore
|
|
the_printed_command_except_trap
|
|
- parse_prologue: use restore_lastcom to save and restore the value
|
|
of the_printed_command_except_trap around calls to parse_and_execute
|
|
(eval/source/.)
|
|
|
|
6/15
|
|
----
|
|
lib/readline/complete.c
|
|
- complete_fncmp: change filename comparison code to understand
|
|
multibyte characters, even when doing case-sensitive or case-mapping
|
|
comparisons. Fixes problem reported by Nikolay Shirokovskiy
|
|
<nshyrokovskiy@gmail.com>
|
|
|
|
6/20
|
|
----
|
|
builtins/mapfile.def
|
|
- mapfile: move the line count increment and check for having read
|
|
the specified number of lines to the end of the loop to avoid
|
|
reading an additional line with zgetline. Fixes bug reported by
|
|
Dan Douglas <ormaaj@gmail.com>
|
|
|
|
6/21
|
|
----
|
|
|
|
execute_cmd.c
|
|
- execute_pipeline: make sure `lastpipe_flag' is initialized to 0 on
|
|
all systems, since it's tested later in the function. Fixes bug
|
|
reported by John E. Malmberg <wb8tyw@qsl.net>
|
|
|
|
6/22
|
|
----
|
|
mailcheck.c
|
|
- file_mod_date_changed: return 0 right away if mailstat() does not
|
|
return success. Fixes bug with using uninitialized values reported
|
|
by szymon.kalasz@uj.edu.pl
|
|
|
|
builtins/set.def
|
|
- the `monitor' option is not available when the shell is compiled
|
|
without job control, since the underlying `m' flag is not available
|
|
|
|
nojobs.c
|
|
- job_control: now declared as int variable, initialized to 0, never
|
|
modified
|
|
|
|
jobs.h
|
|
- job_control: extern declaration no longer dependent on JOB_CONTROL
|
|
|
|
execute_cmd.c
|
|
- execute_pipeline: made necessary changes so `lastpipe' shell option
|
|
is now available in all shells, even those compiled without
|
|
JOB_CONTROL defined
|
|
|
|
6/23
|
|
----
|
|
lib/glob/glob.c
|
|
- glob_filename: check for interrupts before returning if glob_vector
|
|
returns NULL or an error. Bug reported by Serge van den Boom
|
|
<svdb@stack.nl>, fix from Andreas Schwab <schwab@linux-m68k.org>
|
|
- call run_pending_traps after each call to QUIT or test of
|
|
interrupt_state, like we do in mainline shell code
|
|
- glob_vector: don't call QUIT; in `if (lose)' code block; just free
|
|
memory, return NULL, and let callers deal with interrupt_state or
|
|
other signals and traps
|
|
|
|
6/25
|
|
----
|
|
lib/readline/input.c
|
|
- rl_read_key: restructure the loop that calls the event hook a little,
|
|
so that the hook is called only after rl_gather_tyi returns no input,
|
|
and any pending input is returned first. This results in better
|
|
efficiency for processing pending input without calling the hook
|
|
on every input character as bash-4.1 did. From a report from
|
|
Max Horn <max@quendi.de>
|
|
|
|
6/26
|
|
----
|
|
trap.c
|
|
- signal_is_pending: return TRUE if SIG argument has been received and
|
|
a trap is waiting to execute
|
|
|
|
trap.h
|
|
- signal_is_pending: extern declaration
|
|
|
|
lib/glob/glob.c
|
|
- glob_vector: check for pending SIGINT trap each time through the loop,
|
|
just like we check for interrupt_state or terminating_signal, and
|
|
set `lose = 1' so we clean up after ourselves and interrupt the
|
|
operation before running the trap. This may require a change later,
|
|
maybe call run_pending_traps and do that if run_pending_traps returns?
|
|
|
|
variables.c
|
|
- sv_histtimefmt: set history_comment_character to default (`#') if
|
|
it's 0 when we're turning on history timestamps. The history code
|
|
uses the history comment character to prefix timestamps, and
|
|
leaving it at 0 effectively removes them from the history. From a
|
|
report to help-bash by Dennis Williamson <dennistwilliamson@gmail.com>
|
|
|
|
6/27
|
|
----
|
|
lib/readline/signals.c
|
|
- rl_maybe_restore_sighandler: new function, sets handler for SIG to
|
|
HANDLER->sa_handler only if it's not SIG_IGN. Needs to be called
|
|
on same signals set using rl_maybe_set_sighandler, which does not
|
|
override an existing SIG_IGN handler (SIGALRM is ok since it does
|
|
the check inline; doesn't mess with SIGWINCH)
|
|
|
|
6/30
|
|
----
|
|
variables.h
|
|
- additional defines for the new `nameref' variable attribute
|
|
(att_nameref): nameref_p, nameref_cell, var_setref
|
|
|
|
variables.c
|
|
- find_variable_nameref: resolve SHELL_VAR V through chain of namerefs
|
|
- find_variable_last_nameref: resolve variable NAME until last in a
|
|
chain of possibly more than one nameref starting at shell_variables
|
|
- find_global_variable_last_nameref: resolve variable NAME until last
|
|
in a chain of possibly more than one nameref starting at
|
|
global_variables
|
|
- find_nameref_at_context: resolve SHELL_VAR V through chain of namerefs
|
|
in a specific variable context (usually a local variable hash table)
|
|
- find_variable_nameref_context: resolve SHELL_VAR V through chain of
|
|
namerefs following a chain of varible contexts
|
|
- find_variable_last_nameref_context: resolve SHELL_VAR V as in
|
|
find_variable_last_context, but return the final nameref instead of
|
|
what the final nameref resolves to
|
|
- find_variable_tempenv, find_variable_notempenv, find_global_variable,
|
|
find_shell_variable, find_variable: modified to follow namerefs
|
|
- find_global_variable_noref: look up a global variable without following
|
|
any namerefs
|
|
- find_variable_noref: look up a shell variable without following any
|
|
namerefs
|
|
- bind_variable_internal: modify to follow a chain of namerefs in the
|
|
global variables table; change to handle assignments to a nameref by
|
|
following nameref chain
|
|
- bind_variable: modify to follow chain of namerefs when binding to a
|
|
local variable
|
|
- unbind_variable: changes to unset nameref variables (unsets both
|
|
nameref and variable it resolves to)
|
|
|
|
subst.c
|
|
- parameter_brace_expand_word: change to handle expanding nameref whose
|
|
value is x[n]
|
|
- parameter_brace_expand_indir: change to expand in ksh93-compatible
|
|
way if variable to be indirected is nameref and a simple (non-array)
|
|
expansion
|
|
- param_expand: change to expand $foo where foo is a nameref whose value
|
|
is x[n]
|
|
|
|
execute_cmd.c
|
|
- execute_for_command: changes to implement ksh93 semantics when index
|
|
variable is a nameref
|
|
|
|
builtins/setattr.def
|
|
- show_var_attributes: change to add `n' to flags list if att_nameref
|
|
is set
|
|
|
|
builtins/set.def
|
|
- unset_builtin: changes to error messages to follow nameref variables
|
|
|
|
builtins/declare.def
|
|
- document new -n option
|
|
- declare_internal: new `-n' and `+n' options
|
|
- declare_internal: handle declare -n var[=value] and
|
|
declare +n var[=value] for existing and non-existant variables.
|
|
Enforce restriction that nameref variables cannot be arrays.
|
|
Implement semi-peculiar ksh93 semantics for typeset +n ref=value
|
|
|
|
7/5
|
|
---
|
|
variables.c
|
|
- unbind_variable: unset whatever a nameref resolves to, leaving the
|
|
nameref variable itself alone
|
|
- unbind_nameref: new function, unsets a nameref variable, not the
|
|
variable it references
|
|
|
|
variables.h
|
|
- unbind_nameref: extern declaration
|
|
|
|
builtins/set.def
|
|
- unset_builtin: modify to add -n option, which calls unbind_nameref
|
|
leaving unbind_variable for the usual case. This required slight
|
|
changes and additions to the test suite
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- document namerefs and typeset/declare/local/unset -n
|
|
|
|
7/13
|
|
----
|
|
lib/sh/casemod.c
|
|
- include shmbchar.h for is_basic and supporting pieces
|
|
- sh_casemod: use _to_wupper and _to_wlower to convert wide character
|
|
case instead of TOUPPER and TOLOWER. Fixes bug reported by
|
|
Dennis Williamson <dennistwilliamson@gmail.com>, fix from
|
|
Andreas Schwab <schwab@linux-m68k.org>
|
|
- cval: short-circuit and return ascii value if is_basic tests true
|
|
- sh_casemod: short-circuit and use non-multibyte case modification
|
|
and toggling code if is_basic tests true
|
|
|
|
lib/readline/signals.c
|
|
- _rl_{block,release}_sigint: remove the code that actually blocks and
|
|
releases the signals, since we defer signal handling until calls to
|
|
RL_CHECK_SIGNALS()
|
|
|
|
lib/readline/{callback,readline,util}.c
|
|
- if HAVE_POSIX_SIGSETJMP is defined, use sigsetjmp/siglongjmp without
|
|
saving and restoring the signal mask instead of setjmp/longjmp
|
|
|
|
lib/readline/rltty.c
|
|
- prepare_terminal_settings: don't mess with IXOFF setting if
|
|
USE_XON_XOFF defined
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- add some text to the description of set -e clarifying its effect
|
|
on shell functions and shell function execution. Suggested by
|
|
Rainer Blome <rainer.blome@gmx.de>
|
|
|
|
bashline.c
|
|
- edit_and_execute_command: increment current_command_line_count before
|
|
adding partial line to command history (for command-oriented-history
|
|
because of rl_newline at beginning of function), then reset it to 0
|
|
before adding the dummy history entry to make sure the dummy entry
|
|
doesn't get added to previous incomplete command. Partial fix for
|
|
problem reported by Peng Yu <pengyu.ut@gmail.com>
|
|
|
|
7/24
|
|
----
|
|
configure.in
|
|
- interix: define RECYCLES_PIDS. Based on a report from Michael
|
|
Haubenwallner <michael.haubenwallner@salomon.at>
|
|
|
|
7/26
|
|
----
|
|
jobs.c
|
|
- make_child: call bgp_delete on the newly-created pid unconditionally.
|
|
Some systems reuse pids before cycling through an entire set of
|
|
CHILD_MAX/_SC_CHILD_MAX unique pids. This is no longer dependent
|
|
on RECYCLES_PIDS. Based on a report from Michael Haubenwallner
|
|
<michael.haubenwallner@salomon.at>
|
|
|
|
support/shobj-conf
|
|
- Mac OS X: drop MACOSX_DEPLOYMENT_TARGET=10.3 from the LDFLAGS. We
|
|
can finally kill Panther
|
|
|
|
7/28
|
|
----
|
|
subst.c
|
|
- command_substitute: make sure last_made_pid gets reset if make_child
|
|
fails
|
|
|
|
execute_cmd.c
|
|
- execute_command_internal: case cm_simple: decide whether or not to
|
|
wait_for a child if already_making_children is non-zero, indicates
|
|
that there is an unwaited-for child. More of fix for bug report
|
|
from Michael Haubenwallner <michael.haubenwallner@salomon.at>
|
|
|
|
jobs.c
|
|
- make_child: call delete_old_job (new_pid) unconditionally, don't
|
|
bother to check whether or not pid wrap occurred. Rest of fix for
|
|
bug report from Michael Haubenwallner
|
|
<michael.haubenwallner@salomon.at>
|
|
|
|
7/29
|
|
----
|
|
shell.c
|
|
- subshell_exit: new function, exits the shell (via call to sh_exit())
|
|
after calling any defined exit trap
|
|
|
|
externs.h
|
|
- subshell_exit: new extern declaration
|
|
|
|
execute_cmd.c
|
|
- execute_command_internal: make sure to call subshell_exit for
|
|
{} group commands executed asynchronously (&). Part of fix for
|
|
EXIT trap bug reported by Maarten Billemont <lhunath@lyndir.com>
|
|
|
|
sig.c
|
|
- reset_terminating_signals: make sure to set termsigs_initialized back
|
|
to 0, so a subsequent call to initialize_terminating_signals works
|
|
right. Rest of fix for bug reported by Maarten Billemont
|
|
<lhunath@lyndir.com>
|
|
|
|
{execute_cmd,general,jobs,mailcheck,mksyntax,test}.c
|
|
builtins/{cd,fc,pushd,ulimit}.def
|
|
lib/malloc/getpagesize.h
|
|
lib/sh/{clktck,fpurge,inet_aton,mailstat,oslib,pathcanon,pathphys,spell,strerror}.c
|
|
- make inclusion of <sys/param.h> dependent on HAVE_SYS_PARAM_H
|
|
consistently
|
|
|
|
8/6
|
|
---
|
|
lib/readline/histexpand.c
|
|
- history_expand_internal: now takes an additional argument saying
|
|
whether the history expansion occurs within a quoted string, set to
|
|
the open quote character
|
|
- history_expand_internal: use new argument instead of checking prev
|
|
char and initializing quoted_search_delimiter, pass qc directly to
|
|
get_history_event, where it allows a matching quote to terminate a
|
|
string defining an event
|
|
- history_expand: change single-quote handling code so that if
|
|
history_quotes_inhibit_expansion is 0, single quotes are treated
|
|
like double quotes
|
|
- history_expand: change call to history_expand_internal to pass new
|
|
argument of `"' if double-quoted string, `'' if single-quoted string;
|
|
this lets history_expand decide what is a quoted string and what
|
|
is not
|
|
|
|
8/7
|
|
---
|
|
configure.in
|
|
- AC_CANONICAL_BUILD: invoke for later use
|
|
|
|
lib/readline/macro.c
|
|
- _rl_prev_macro_key: new function, inverse of _rl_next_macro_key:
|
|
backs up the index into the current macro by 1
|
|
|
|
lib/readline/rlprivate.h
|
|
- _rl_prev_macro_key: extern declaration
|
|
|
|
|
|
lib/readline/readline.c
|
|
- _rl_dispatch_subseq, _rl_subseq_result: don't call _rl_unget_char
|
|
if we're currently reading from a macro; call _rl_prev_macro_key
|
|
instead. Fixes bug reported by Clark Wang <clark.wang@oracle.com>
|
|
|
|
8/13
|
|
----
|
|
builtins/evalstring.c
|
|
- evalstring(): new function, wrapper around parse_and_execute.
|
|
make sure we handle cases where parse_and_execute can call `return'
|
|
and short-circuit without cleaning up properly. We call
|
|
parse_and_execute_cleanup() then jump to the previous-saved return
|
|
location
|
|
|
|
builtins/common.h
|
|
- extern declaration for evalstring()
|
|
|
|
builtins/eval.def
|
|
- eval_builtin: make sure we handle `eval " ... return"' in contexts
|
|
where `return' is valid by calling evalstring(). Fixes bug with
|
|
`eval return' in sourced files reported by Clark Wang
|
|
<dearvoid@gmail.com>
|
|
|
|
trap.c
|
|
- run_pending_traps: call evalstring instead of parse_and_execute.
|
|
XXX - still needs to handle saving and restoring token state in the
|
|
presence of `return'; could use unwind_protects for that
|
|
|
|
builtins/mapfile.def
|
|
- run_callback: call evalstring instead of parse_and_execute
|
|
|
|
8/15
|
|
----
|
|
bashline.c
|
|
- bash_filename_stat_hook: make sure we don't free local_dirname
|
|
before using it to canonicalize any expanded filename. Make sure
|
|
it always points to *dirname and only free it if we're replacing
|
|
it.
|
|
|
|
lib/readline/complete.c
|
|
- append_to_match: make sure we call rl_filename_stat_hook with
|
|
newly-allocated memory to avoid problems with freeing it twice
|
|
|
|
8/17
|
|
----
|
|
variables.c,config-top.h
|
|
- if ARRAY_EXPORT is defined to 1 when variables.c is compiled, the
|
|
code that allows indexed arrays to be exported is enabled and
|
|
included
|
|
|
|
8/19
|
|
----
|
|
shell.c
|
|
- call start_debugger from main() only if dollar_vars[1] != 0 (close
|
|
enough to a non-interactive shell, since we can be interactive with
|
|
-i while running a shell script). Fixes oddity reported by
|
|
Techlive Zheng <techlivezheng@gmail.com>
|
|
|
|
8/20
|
|
----
|
|
arrayfunc.c
|
|
- quote_array_assignment_chars: don't bother quoting if the word has
|
|
not been marked as an assignment (W_ASSIGNMENT)
|
|
- quote_array_assignment_chars: turn on W_NOGLOB in the word flags
|
|
so assignment statements don't undergo globbing. Partial fix for
|
|
problems reported by Dan Douglas <ormaaj@gmail.com>
|
|
|
|
8/21
|
|
----
|
|
command.h
|
|
- W_NOBRACE: new word flag that means to inhibit brace expansion
|
|
|
|
subst.c
|
|
- brace_expand_word_list: suppress brace expansion for words with
|
|
W_NOBRACE flag
|
|
|
|
8/22
|
|
----
|
|
builtins/read.def
|
|
- read_builtin: don't call dequote_string on what we've read, even if
|
|
we saw an escape character, unless (input_string && *input_string).
|
|
We may have escaped an IFS whitespace character. Fixes seg fault
|
|
reported by <armandsl@gmail.com>
|
|
|
|
execute_cmd.c
|
|
- execute_command_internal: set the_printed_command_except trap when
|
|
about to execute a ( ... ) user subshell. For now, set it only if
|
|
ERR is trapped; can relax that later. Fixes bug reported by
|
|
Mike Frysinger <vapier@gentoo.org>
|
|
|
|
8/23
|
|
----
|
|
jobs.c
|
|
- remove references to first_pid and pid_wrap, since we're not using
|
|
them for anything anymore
|
|
|
|
8/24
|
|
----
|
|
subst.c
|
|
- changes for W_NOBRACE everywhere appropriate: so it can be displayed
|
|
for debugging, and passed out of expand_word_internal
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- small changes to make it clearer that the = and == operators are
|
|
equivalent, and will cause pattern matching when used with [[.
|
|
From a question from Michal Soltys <soltys@ziu.info>
|
|
|
|
doc/bashref.texi
|
|
- some small formatting changes from Karl Berry <karl@freefriends.org>
|
|
|
|
8/27
|
|
----
|
|
lib/readline/doc/{history,rlman,rluserman}.texi
|
|
- some small formatting changes from Karl Berry <karl@freefriends.org>
|
|
|
|
arrayfunc.c
|
|
- assign_array_element_internal, assign_compound_array_list,
|
|
unbind_array_element, array_value_internal: changes to make
|
|
assignment statements to negative indices (a[-1]=2) and unsetting
|
|
array elements using negative indices (unset 'a[-1]') work.
|
|
From suggestions by Dennis Williamson <dennistwilliamson@gmail.com>
|
|
and Chris F. A. Johnson <chris@cfajohnson.com>
|
|
|
|
subst.c
|
|
- array_length_reference: changes to make length references to array
|
|
elements using negative indices (${#a[-1]}) work
|
|
|
|
8/28
|
|
----
|
|
doc/{bash.1,bashref.texi}
|
|
- document new treatment of negative indices to indexed arrays when
|
|
assigning, referencing, calculating length, and unsetting
|
|
|
|
8/29
|
|
----
|
|
shell.c
|
|
- show_shell_usage: add -l to list of shell invocation options (short
|
|
for --login). From Red Hat bug 852469
|
|
|
|
configure.ac
|
|
- renamed from configure.in, as latest autoconf versions want. Patches
|
|
Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
|
|
MANIFEST,Makefile.in,doc/bashref.texi,support/mkconffiles
|
|
- configure.in -> configure.ac
|
|
|
|
9/1
|
|
---
|
|
|
|
parse.y
|
|
- read_token_word: allow words like {array[ind]} to be valid redirection
|
|
words for constructs like {x}<file
|
|
|
|
redir.c
|
|
- redir_varassign: bind_var_to_int already handles array assignments,
|
|
so don't need to do anything more for things like {a[i]}<file
|
|
- redir_varvalue: changes to allow references to {a[i]} when
|
|
performing redirections using valid_array_reference and
|
|
get_array_value. Adds functionality requested most recently by
|
|
<unknown@vmw-les.eng.vmware.com>
|
|
|
|
lib/readline/display.c
|
|
- update_line: if the first difference between the old and new lines
|
|
is completely before any invisible characters in the prompt, we
|
|
should not adjust _rl_last_c_pos, since it's before any invisible
|
|
characters. Fixed in two places
|
|
- prompt_modechar: return a character indicating the editing mode:
|
|
emacs (@), vi command (:), or vi insert (+)
|
|
- _rl_reset_prompt: new function, just calls rl_expand_prompt. Will be
|
|
inlined, placeholder for more changes
|
|
- expand_prompt: if show-mode-in-prompt is enabled, add a character to
|
|
the front of the prompt indicating the editing mode, adjusting the
|
|
various variables as appropriate to keep track of the number of
|
|
visible characters and number of screen positions
|
|
|
|
lib/readline/bind.c
|
|
- show-mode-in-prompt: new bindable boolean variable, shadowed by
|
|
_rl_show_mode_in_prompt variable
|
|
- hack_special_boolean_var: call _rl_reset_prompt when toggling or
|
|
setting show-mode-in-prompt
|
|
|
|
lib/readline/readline.c
|
|
- readline_internal_setup: make sure the correct vi mode keymap is set
|
|
before expanding the prompt string for the first time
|
|
|
|
lib/readline/misc.c
|
|
- rl_emacs_editing_mode: make sure to call _rl_reset_prompt if we're
|
|
showing the editing mode in the prompt
|
|
|
|
lib/readline/rlprivate.h
|
|
- _rl_reset_prompt, _rl_show_mode_in_prompt: extern declarations
|
|
|
|
lib/readline/vi_mode.c
|
|
- rl_vi_insertion_mode: call _rl_reset_prompt
|
|
- rl_vi_movement_mode: call _rl_reset_prompt. Finishes changes for
|
|
showing mode in prompt string, originally requested by Miroslav
|
|
Koskar <mkoskar@gmail.com> and most recently by Jordan Michael
|
|
Ziegler <jziegler@bnl.gov>
|
|
|
|
doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
|
|
- document new show-mode-in-prompt variable, off by default
|
|
|
|
9/3
|
|
---
|
|
|
|
jobs.c
|
|
- set_childmax: new function, external mechanism for other parts of
|
|
the shell to set js.c_childmax, the number of saved exited child
|
|
statuses to remember
|
|
jobs.h
|
|
- set_childmax: extern declaration
|
|
|
|
variables.c
|
|
- CHILD_MAX: new special variable, with sv_childmax function to
|
|
run when it changes. Setting CHILD_MAX to a value greater than
|
|
zero but less than some maximum (currently 8192) sets the number of
|
|
exited child statuses to remember. set_childmax (jobs.c) ensures
|
|
that the number does not drop below the posix-mandated minimum
|
|
(CHILD_MAX)
|
|
|
|
doc/{bash.1,bashref.texi}
|
|
- CHILD_MAX: document new meaning and action when variable is set
|