Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Tue, 27 Jul 2004 15:12:43 -0400 From: Chet Ramey To: cygwin AT sources DOT redhat DOT com Subject: Bash-3.0 available for FTP Reply-To: chet AT po DOT CWRU DOT Edu Message-ID: <040727191243.AA23031.SM@caleb.ins.cwru.edu> Read-Receipt-To: chet AT po DOT CWRU DOT Edu MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Note-from-DJ: This may be spam Introduction ============ The first public release of bash-3.0 is now available with the URLs ftp://ftp.cwru.edu/pub/bash/bash-3.0.tar.gz ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz and from the usual GNU mirror sites. This tar file does not include the formatted documentation (postscript, dvi, html, and nroffed versions of the manual pages); that may be retrieved with the URLs ftp://ftp.cwru.edu/pub/bash/bash-doc-3.0.tar.gz ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.0.tar.gz When unpacking the documentation, make sure to extract the tar file in the bash-3.0 source directory. Diffs from bash-2.05b are available with the URLs ftp://ftp.cwru.edu/pub/bash/bash-2.05b-3.0.diff.gz ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b-3.0.diff.gz Make sure to apply the diffs using `patch -p1' from within a patched bash-2.05b source directory. Please use `bashbug' to report bugs with this version. It is built and installed at the same time as bash. Installation ============ Please read the README file first. Installation instructions are provided in the INSTALL file. New Features ============ This is the third major release of bash. Bash-3.0 provides a number of bug fixes and cleanups to the features introduced in the previous several releases. More improvements and speedups to the multibyte character support are present. Several bug fixes for POSIX compliance came in from Apple; their assistance is appreciated. A significant change is the further internationalization of the shell: the GNU libintl library has been integrated, every shell message has been marked for possible translation into other languages, and the standard GNU framework for incorporating such translations is in place. Support for the bash debugger (a separate project) has been integrated. A number of smaller new features are listed below. Read the file NEWS in the bash-3.0 distribution for a complete description of the new features. Here is a short list: o Features to support the bash debugger have been implemented, and there is a new `extdebug' option to turn the non-default options on o HISTCONTROL is now a colon-separated list of options and has been extended with a new `erasedups' option that will result in only one copy of a command being kept in the history list o Brace expansion has been extended with a new {x..y} form, producing sequences of digits or characters o Timestamps are now kept with history entries, with an option to save and restore them from the history file; there is a new HISTTIMEFORMAT variable describing how to display the timestamps when listing history entries o The `[[' command can now perform extended regular expression (egrep-like) matching, with matched subexpressions placed in the BASH_REMATCH array variable o A new `pipefail' option causes a pipeline to return a failure status if any command in it fails o The `jobs', `kill', and `wait' builtins now accept job control notation in their arguments even if job control is not enabled Changes have been made to the Readline library being released at the same time as bash-3.0, readline-5.0, so that Bash can be linked against an already-installed Readline library rather than the private version in lib/readline. Only readline-5.0 and later versions are able to provide all of the symbols that bash-3.0 requires; earlier versions of the Readline library will not work correctly. A complete list of changes between bash-2.05b and bash-3.0 is available in the file CHANGES; the relevant portions are appended. Readline ======== Also available is a new release of the standalone readline library, version 5.0, with its own configuration scripts and Makefiles. It can be retrieved with the URLs ftp://ftp.cwru.edu/pub/bash/readline-5.0.tar.gz ftp://ftp.gnu.org/pub/gnu/readline/readline-5.0.tar.gz and from the usual GNU mirror sites. Diffs from readline-4.3 are available with the URLs ftp://ftp.cwru.edu/pub/bash/readline-4.3-5.0.diff.gz ftp://ftp.gnu.org/pub/gnu/readline/readline-4.3-5.0.diff.gz Make sure to install the patches using `patch -p1 < patch-file' from within a readline-4.3 source directory. The formatted Readline documentation is included in the readline distribution tar file. A separate announcement listing the changes in Readline is being distributed. As always, thanks for your help. Chet +========== CHANGES ==========+ This document details the changes between this version, bash-3.0-release, and the previous version, bash-3.0-rc1. 1. Changes to Bash a. Fixed a boundary overrun that could cause segmentation faults when the completion code hands an incomplete construct to the word expansion functions. b. Changed posix mode behavior so that an error in a variable assignment preceding a special builtin causes a non-interactive shell to exit. c. Change the directory expansion portion of the completion code to not expand embedded command substitutions if the directory name appears in the file system. d. Fixed a problem that caused `bash -r' to turn on restrictions before reading the startup files. e. Fixed a problem with the default operation of the `umask' builtin. 2. Changes to Readline a. Fixed a problem with readline saving the contents of the current line before beginning a non-interactive search. b. Fixed a problem with EOF detection when using rl_event_hook. c. Fixed a problem with the vi mode `p' and `P' commands ignoring numeric arguments. ------------------------------------------------------------------------------ This document details the changes between this version, bash-3.0-rc1, and the previous version, bash-3.0-beta1. 1. Changes to Bash a. Fixed a bug that caused incorrect behavior when referecing element 0 of an array using $array, element 0 was unset, and `set -u' was enabled. b. System-specific changes for: SCO Unix 3.2, Tandem. c. Fixed a bug that caused inappropriate word splitting when a variable was expanded within a double-quoted string that also included $@. d. Fixed a bug that caused `pwd' to not display anything in physical mode when the file system had changed underneath the shell. e. Fixed a bug in the pre- and post- increment and decrement parsing in the expression evaluator that caused errors when the operands and corresponding operators were separated by whitespace. f. Fixed a bug that caused `history -p' to add an entry to the history list, counter to the documentation. (Keeps the history expansions invoked by emacs-mode command line editing from doing that as well.) g. Fixed a bug that could cause a core dump if `cd' is asked to print out a pathname longer than PATH_MAX characters. h. Fixed a bug that caused jobs to be put into the wrong process group under some circumstances after enabling job control with `set -m'. i. `unalias' now returns failure if no alias name arguments are supplied. j. Documented the characters not allowed to appear in an alias name. k. $* is no longer expanded as if in double quotes when it appears in the body of a here document, as the SUS seems to require. l. The `bashbug' script now uses a directory in $TMPDIR for exclusive access rather than trying to guess how the underlying OS provides for secure temporary file creation. m. Fixed a few problems with `cd' and `pwd' when asked to operate on pathnames longer than PATH_MAX characters. n. Fixed a memory leak caused when creating multiple local array variables with identical names. o. Fixed a problem with calls to getcwd() so that bash now operates better when the full pathname to the current directory is longer than PATH_MAX bytes. p. The `trap' builtin now reports an error if a single non-signal argument is specified. q. Fixed a bug that caused `umask' to not work correctly when presented with a mask of all 0s. r. When `getopts' reaches the end of options, OPTARG is unset, as POSIX appears to specify. s. Interactive mode now depends on whether or not stdin and stderr are connected to a tty; formerly it was stdin and stdout. POSIX requires this. t. Fixed vi-mode completion to work more as POSIX specifies (e.g., doing the right kind of filename generation). 2. Changes to Readline a. Fixed a problem that could cause readline to refer to freed memory when moving between history lines while doing searches. b. Improvements to the code that expands and displays prompt strings containing multibyte characters. c. Fixed a problem with vi-mode not correctly remembering the numeric argument to the last `c'hange command for later use with `.'. d. Fixed a bug in vi-mode that caused multi-digit count arguments to work incorrectly. e. Fixed a problem in vi-mode that caused the last text modification command to not be remembered across different command lines. f. Fixed problems with changing characters and changing case at the end of the line. 3. New Features in Bash a. The `jobs', `kill', and `wait' builtins now accept job control notation even if job control is not enabled. b. The historical behavior of `trap' that allows a missing `action' argument to cause each specified signal's handling to be reset to its default is now only supported when `trap' is given a single non-option argument. 4. New Features in Readline a. When listing completions, directories have a `/' appended if the `mark-directories' option has been enabled. ------------------------------------------------------------------------------ This document details the changes between this version, bash-3.0-beta1, and the previous version, bash-3.0-alpha. 1. Changes to Bash a. Fixes to build correctly when arrays are not compiled into the shell. b. Fixed command substitution to run any exit trap defined in the command substitution before returning; the exit trap is not inherited from the calling shell. c. Fixes to process group synchronization code so that every child process attempts to set the terminal's process group; fixes some synchronization problems on Linux kernels that schedule the child to always run before the parent. d. Fixed processing of octal and hex constants in printf builtin for POSIX.2 compliance. e. Fixed a couple of core dumps in the pattern removal code. f. Fixes to the array subrange extraction code to deal better with sparse arrays. g. Parser errors and other errors that result in the shell exiting now cause the exit trap to be run. h. Change the command substitution completion functions to not append any closing quote, because it would be inserted a closing "`" or ")". i. Fix history initialization so assignments to $histchars made in startup files are honored. j. If an exit trap does not contain a call to `exit', the shell now uses the exit status of the last command executed before the trap as the exit status of the shell. k. The parser now prompts with $PS2 if it reads a newline while parsing a compound array assignment statement. l. When performing a compound array assignment, the parser doesn't treat words of the form [index]=value as assignments if they're the result of expansions. m. Fixed a bug that caused `return' executed in a trap command to make the shell think it was still running the trap. n. Fixed the value of errno set by the pathname canonicalization functions. o. Changed the grammar so that `time' alone on a line times a null command rather than being a syntax error. p. The pattern substitution coded no longer performs quote removal on the pattern before trying to match it, as the pattern removal functions do. q. Fixed a bug that could cause core dumps when checking whether a quoted command name was being completed. r. Fixes to the pattern removal and pattern replacement expansions to deal with multibyte characters better (and faster). s. Fix to the substring expansion (${param:off[:len]}) to deal with (possibly multibyte) characters instead of raw bytes. t. Fixed a bug that caused some key bindings set in an inputrc to be ignored at shell startup. u. Fixed a bug that caused unsetting a local variable within a function to not work correctly. v. Fixed a bug that caused invalid variables to be created when using `read -a'. w. Fixed a bug that caused "$@" to expand incorrectly when used as the right hand side of a parameter expansion such as ${word:="$@"} if the first character of $IFS was not a space. x. Fixed a slight cosmetic problem when printing commands containing a `>&word' redirection. y. Fixed a problem that could cause here documents to not be created correctly if the system temporary directory did not allow writing. 2. Changes to Readline a. Change to history expansion functions to treat `^' as equivalent to word one, as the documention states. b. Some changes to the display code to improve display and redisplay of multibyte characters. c. Changes to speed up the multibyte character redisplay code. d. Fixed a bug in the vi-mode `E' command that caused it to skip over the last character of a word if invoked while point was on the word's next-to-last character. e. Fixed a bug that could cause incorrect filename quoting when case-insensitive completion was enabled and the word being completed contained backslashes quoting word break characters. f. Fixed a bug in redisplay triggered when the prompt string contains invisible characters. g. Fixed some display (and other) bugs encountered in multibyte locales when a non-ascii character was the last character on a line. h. Fixed some display bugs caused by multibyte characters in prompt strings. i. Fixed a problem with history expansion caused by non-whitespace characters used as history word delimiters. 3. New Features in Bash a. printf builtin understands two new escape sequences: \" and \?. b. `echo -e' understands two new escape sequences: \" and \?. c. The GNU `gettext' package and libintl have been integrated; the shell's messages can be translated into different languages. d. The `\W' prompt expansion now abbreviates $HOME as `~', like `\w'. e. The error message printed when bash cannot open a shell script supplied as argument 1 now includes the name of the shell, to better identify the error as coming from bash. 4. New Features in Readline a. New application variable, rl_completion_quote_character, set to any quote character readline finds before it calls the application completion function. b. New application variable, rl_completion_suppress_quote, settable by an application completion function. If set to non-zero, readline does not attempt to append a closing quote to a completed word. c. New application variable, rl_completion_found_quote, set to a non-zero value if readline determines that the word to be completed is quoted. Set before readline calls any application completion function. d. New function hook, rl_completion_word_break_hook, called when readline needs to break a line into words when completion is attempted. Allows the word break characters to vary based on position in the line. e. New bindable command: unix-filename-rubout. Does the same thing as unix-word-rubout, but adds `/' to the set of word delimiters. ------------------------------------------------------------------------------ This document details the changes between this version, bash-3.0-alpha, and the previous version, bash-2.05b-release. 1. Changes to Bash a. Fixes so that the shell will compile without some of the default options defined. b. Fixed an error message that did not pass enough arguments to printf. c. Fixed a bug that caused input redirection to a builtin inside a script being read from standard input to result in the rest of the already- read and buffered script to be discarded. d. Fixed a bug that caused subshell initialization to close the file descriptor from which the shell was reading a script under certain circumstances. e. Fixed a bug that caused the shell to not advance a string pointer over a null wide character when doing string operations. f. Fixed the internal logout code so that shells that time out waiting for input (using $TMOUT) run ~/.bash_logout. g. Portability and configuration changes for: cygwin, HP/UX, GNU/FreeBSD. h. The parser no longer adds implicit double quotes to ((...)) arithmetic commands. i. The ((...)) arithmetic command evaluation code was fixed to not dump core when the expanded string is null. j. The ((...)) arithmetic command evaluation code was fixed to not perform variable assignments while expanding the expression. k. Fixed a bug that caused word splitting to be performed incorrectly when IFS is set, but null. l. Fixed a bug in brace expansion that caused a quoted `$' preceding an open brace to inhibit brace expansion. m. Fixed a bug that caused a leading `-' in the shell's name to cause it to not be recognized as a restricted shell. n. Fixed a bug in the arithmetic evaluation code that could cause longjmps to an invalid location and result in a core dump. o. Fixed a bug in the calculation of how many history lines are new in a single shell session when reading new history lines from a file with `history -n'. p. Fixed a bug in pathname canonicalization that caused the shell to dump core when presented with a pathname longer than PATH_MAX. q. Fixed the parser so that it doesn't try to compare a char variable to EOF, which fails when chars are unsigned. r. Fixed a bug in the simple command execution code that caused occasional core dumps. s. The shell does a better job of saving any partial parsing state during operations which cause a command to be executed while a line is being entered and parsed. t. The completion code now splits words more like the expansion code when $IFS is used to split. u. The locale code does a better job of recomputing the various locale variable values when LC_ALL is unset. v. The programmable completion code does a better job of dequoting expanded word lists before comparing them against the word to be matched. w. The shell no longer seg faults if the expanded value of $PS4 is null and `set -x' is enabled. x. Fixed a bug that caused core dumps when a here string expanded to NULL. y. The mail checking code now makes sure the mailbox is bigger before reporting the existence of new mail. z. The parser does not try to expand $'...' and $"..." when the appear within double quotes unless the `extquote' option has been enabled with `shopt'. For backwards compatibility, it is enabled by default. aa. Fixed a bug that caused `for x; do ...' and `select x; do ... to use $@ instead of "$@" for the implicit list of arguments. bb. Fixed a bug that caused a subshell of a restricted shell (e.g., one spawned to execute a pipeline) to not exit immediately if attempting to use a command containing a slash. cc. Fixed a problem with empty replacements for a pattern that doesn't match when performing ${param/word/} expansion. dd. Word expansions performed while expanding redirections no longer search a command's temporary environment to expand variable values. ee. Improvements to the alias expansion code when expanding subsequent words because an aliase's value ends with a space. ff. `cd -' now prints the current working directory after a successful chdir even when the shell is not interactive, as the standard requires. gg. The shell does a better job of ensuring a child process dies of SIGINT before resending SIGINT to itself. hh. The arithmetic expansion variable assignment code now does the right thing when assigning to `special' variables like OPTIND. ii. When history expansion verification is enabled, the bash readline helper functions that do history expansion on the current line don't print the results. jj. Fixed bugs with multiple consecutive alias expansion when one of the expansions ends with a space. kk. Fixed a problem in the programmable completion code that could cause core dumps when trying to initialize a set of possible completions from a list of variables. ll. The \[ and \] escape characters are now ignored when decoding the prompt string if the shell is started with editing disabled. mm. Fixed a bug that could leave extra characters in a string when doing quoted null character removal. nn. Command substitution and other subshell operations no longer reset the line number (aids the bash debugger). oo. Better line number management when executing simple commands, conditional commands, for commands, and select commands. pp. The globbing code now uses malloc, with its better failure properties, rather than alloca(). qq. Fixed a bug that caused expansions like #{a[2]:=value} to create the appropriate array element instead of a variable named `a[2]'. rr. Fixed a bug in the handling of a `?(...)' pattern immediately following a `*' when extglob is enabled. ss. Fixed a bug that caused a `return' invoked in an exit trap when exit is invoked in a function to misbehave. tt. Fixed a bug that caused CTLESC and CTLNUL characters to not be escaped by the internal shell string quoting functions. uu. Fixed a bug that caused quoted null characters in an expanded word list to be inappropriately assigned to an array variable when using `read -a'. vv. Fixed a bug that caused redirections accompanying a null command to persist in the current shell. ww. Fixed a bug that caused the prompt to be printed when the shell was expanding a multiline alias. xx. Fixed a bug that resulted in core dumps when the completion for a command changed the compspec. yy. Fixed a bug that caused evaluation of programmable completions to print notifications of completed jobs. zz. Bash now disables line editing when $EMACS == `t' and $TERM == `dumb' (which is what emacs shell windows do). aaa. In posix mode, `kill -l' causes signal names to be displayed without a leading `SIG'. bbb. Clear error flag on standard output so it doesn't persist across multiple builtin commands. ccc. In posix mode, `alias' displays alias values without the leading `alias', so the output cannot be used as subsequent input. ddd. In posix mode, the `trap' builtin doesn't check whether or not its first argument is a signal specification and revert the signal handling to its original disposition if it is. eee. Fixed several bugs in the handling of "$*" and "${array[*]}" by the pattern substitution and removal expansions. fff. Fixed several problems with the handling of ${array[@]}, ${array[*]}, $@, and $* by the indirect variable expansion code. ggg. Fixed a bug that did not allow `time' to be aliased. hhh. Improved the mail checking code so it won't check (and possibly cause an NFS file system mount) until MAILPATH or MAIL is given a value -- there is no default if DEFAULT_MAIL_DIRECTORY is not defined at compile time. (It is computed by configure, but can be #undef'd in config-bot.h.) iii. If the `chkwinsize' option is enabled, the shell checks for window size changes if a child process exits due to a signal. jjj. Removed the attempts to avoid adding a slash at the end of a completed executable name if there was a directory with the same name in the current directory. kkk. Fixed PATH lookup code so it treats the permission bits separately for owner, group, and other, rather than checking them all. lll. Fixed the locale code to reset the parser's idea of the character class , which controls how it splits tokens, when the locale changes. mmm. The shell now binds its special readline functions and key bindings only if the user's inputrc file has not already bound them. nnn. The shell now reports on processes that dump core due to signals when invoked as `-c command'. 2. Changes to Readline a. Fixes to avoid core dumps because of null pointer references in the multibyte character code. b. Fix to avoid infinite recursion caused by certain key combinations. c. Fixed a bug that caused the vi-mode `last command' to be set incorrectly. d. Readline no longer tries to read ahead more than one line of input, even when more is available. e. Fixed the code that adjusts the point to not mishandle null wide characters. f. Fixed a bug in the history expansion `g' modifier that caused it to skip every other match. g. Fixed a bug that caused the prompt to overwrite previous output when the output doesn't contain a newline and the locale supports multibyte characters. This same change fixes the problem of readline redisplay slowing down dramatically as the line gets longer in multibyte locales. h. History traversal with arrow keys in vi insertion mode causes the cursor to be placed at the end of the new line, like in emacs mode. i. The locale initialization code does a better job of using the right precedence and defaulting when checking the appropriate environment variables. j. Fixed the history word tokenizer to handle <( and >( better when used as part of bash. k. The overwrite mode code received several bug fixes to improve undo. l. Many speedups to the multibyte character redisplay code. m. The callback character reading interface should not hang waiting to read keyboard input. n. Fixed a bug with redoing vi-mode `s' command. o. The code that initializes the terminal tracks changes made to the terminal special characters with stty(1) (or equivalent), so that these changes are reflected in the readline bindings. New application-callable function to make it work: rl_tty_unset_default_bindings(). p. Fixed a bug that could cause garbage to be inserted in the buffer when changing character case in vi mode when using a multibyte locale. q. Fixed a bug in the redisplay code that caused problems on systems supporting multibyte characters when moving between history lines when the new line has more glyphs but fewer bytes. r. Undo and redo now work better after exiting vi insertion mode. s. Make sure system calls are restarted after a SIGWINCH is received using SA_RESTART. t. Improvements to the code that displays possible completions when using multibyte characters. u. Fixed a problem when parsing nested if statements in inputrc files. v. The completer now takes multibyte characters into account when looking for quoted substrings on which to perform completion. w. The history search functions now perform better bounds checking on the history list. 3. New Features in Bash a. ANSI string expansion now implements the \x{hexdigits} escape. b. There is a new loadable `strftime' builtin. c. New variable, COMP_WORDBREAKS, which controls the readline completer's idea of word break characters. d. The `type' builtin no longer reports on aliases unless alias expansion will actually be performed. e. HISTCONTROL is now a colon-separated list of values, which permits more extensibility and backwards compatibility. f. HISTCONTROL may now include the `erasedups' option, which causes all lines matching a line being added to be removed from the history list. g. `configure' has a new `--enable-multibyte' argument that permits multibyte character support to be disabled even on systems that support it. h. New variables to support the bash debugger: BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO, BASH_SUBSHELL, BASH_EXECUTION_STRING, BASH_COMMAND i. FUNCNAME has been changed to support the debugger: it's now an array variable. j. for, case, select, arithmetic commands now keep line number information for the debugger. k. There is a new `RETURN' trap executed when a function or sourced script returns (not inherited child processes; inherited by command substitution if function tracing is enabled and the debugger is active). l. New invocation option: --debugger. Enables debugging and turns on new `extdebug' shell option. m. New `functrace' and `errtrace' options to `set -o' cause DEBUG and ERR traps, respectively, to be inherited by shell functions. Equivalent to `set -T' and `set -E' respectively. The `functrace' option also controls whether or not the DEBUG trap is inherited by sourced scripts. n. The DEBUG trap is run before binding the variable and running the action list in a `for' command, binding the selection variable and running the query in a `select' command, and before attempting a match in a `case' command. o. New `--enable-debugger' option to `configure' to compile in the debugger support code. p. `declare -F' now prints out extra line number and source file information if the `extdebug' option is set. q. If `extdebug' is enabled, a non-zero return value from a DEBUG trap causes the next command to be skipped, and a return value of 2 while in a function or sourced script forces a `return'. r. New `caller' builtin to provide a call stack for the bash debugger. s. The DEBUG trap is run just before the first command in a function body is executed, for the debugger. t. `for', `select', and `case' command heads are printed when `set -x' is enabled. u. There is a new {x..y} brace expansion, which is shorthand for {x.x+1, x+2,...,y}. x and y can be integers or single characters; the sequence may ascend or descend; the increment is always 1. v. New ksh93-like ${!array[@]} expansion, expands to all the keys (indices) of array. w. New `force_fignore' shopt option; if enabled, suffixes specified by FIGNORE cause words to be ignored when performing word completion even if they're the only possibilities. x. New `gnu_errfmt' shopt option; if enabled, error messages follow the `gnu style' (filename:lineno:message) format. y. New `-o bashdefault' option to complete and compgen; if set, causes the whole set of bash completions to be performed if the compspec doesn't result in a match. z. New `-o plusdirs' option to complete and compgen; if set, causes directory name completion to be performed and the results added to the rest of the possible completions. aa. `kill' is available as a builtin even when the shell is built without job control. bb. New HISTTIMEFORMAT variable; value is a format string to pass to strftime(3). If set and not null, the `history' builtin prints out timestamp information according to the specified format when displaying history entries. If set, bash tells the history library to write out timestamp information when the history file is written. cc. The [[ ... ]] command has a new binary `=~' operator that performs extended regular expression (egrep-like) matching. dd. `configure' has a new `--enable-cond-regexp' option (enabled by default) to enable the =~ operator and regexp matching in [[ ... ]]. ee. Subexpressions matched by the =~ operator are placed in the new BASH_REMATCH array variable. ff. New `failglob' option that causes an expansion error when pathname expansion fails to produce a match. gg. New `set -o pipefail' option that causes a pipeline to return a failure status if any of the processes in the pipeline fail, not just the last one. 4. New Features in Readline a. History expansion has a new `a' modifier equivalent to the `g' modifier for compatibility with the BSD csh. b. History expansion has a new `G' modifier equivalent to the BSD csh `g' modifier, which performs a substitution once per word. c. All non-incremental search operations may now undo the operation of replacing the current line with the history line. d. The text inserted by an `a' command in vi mode can be reinserted with `.'. e. New bindable variable, `show-all-if-unmodified'. If set, the readline completer will list possible completions immediately if there is more than one completion and partial completion cannot be performed. f. There is a new application-callable `free_history_entry()' function. g. History list entries now contain timestamp information; the history file functions know how to read and write timestamp information associated with each entry. h. Four new key binding functions have been added: rl_bind_key_if_unbound() rl_bind_key_if_unbound_in_map() rl_bind_keyseq_if_unbound() rl_bind_keyseq_if_unbound_in_map() -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ( ``Discere est Dolere'' -- chet ) Live...Laugh...Love Chet Ramey, ITS, CWRU chet AT po DOT cwru DOT edu http://tiswww.tis.cwru.edu/~chet/ -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/