From: Chet Ramey Date: Thu, 3 Jan 2013 16:11:26 +0000 (-0500) Subject: bash-20121228 additional cleanup X-Git-Tag: bash-4.3-alpha~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=279b7ea101f99f7ba052fd6f7f04f0ea388f3e55;p=thirdparty%2Fbash.git bash-20121228 additional cleanup --- diff --git a/CHANGES-4.2 b/CHANGES-4.2 deleted file mode 100644 index e283fb999..000000000 --- a/CHANGES-4.2 +++ /dev/null @@ -1,383 +0,0 @@ -This document details the changes between this version, bash-4.2-release, -and the previous version, bash-4.2-rc2. - -1. Changes to Bash - -a. Fixed a bug that caused some variables to be clobbered by a longjmp, - resulting in stack corruption. - ------------------------------------------------------------------------------- -This document details the changes between this version, bash-4.2-rc2, -and the previous version, bash-4.2-rc1. - -1. Changes to Bash - -a. Changes to bash_directory_completion_hook so that it's assigned to the - readline rl_directory_rewrite_hook variable, which modifies the directory - name passed to opendir without modifying the directory name the user - typed. - -b. Fixed bug in select builtin that caused it to not terminate correctly if - the read timed out due to $TMOUT. - -c. Fixed a problem that resulted in non-repeatable sequences of random - numbers when RANDOM=0. - ------------------------------------------------------------------------------- -This document details the changes between this version, bash-4.2-rc1, -and the previous version, bash-4.2-beta. - -1. Changes to Bash - -a. Fixed a bug that caused some redirection errors to leak file descriptors. - -b. Fixed a bug that caused unary `+' and `-' arithmetic operators to have a - higher precedence than unary `!' and `~'. - -c. Fixed a bug that caused simple commands in a pipeline to affect the exit - status ($?) seen by subsequent pipeline commands. - -d. A number of cygwin-specific changes to avoid the use of text-mode files - and file access, and to make sure that \r is handled correctly. - -e. Fixed a bug that caused the read builtin to not return failure if an - attempt is made to assign to a readonly variable. - -f. Fixed a bug that caused some builtin usage messages to not be translated. - -g. Fixed a bug that caused the getopts builtin to not return failure if an - attempt is made to assign to a readonly variable. Now it returns 2. - -h. Fixed the cd and pwd builtins to return failure if PWD is readonly and - cannot be assigned to. - -i. Added code to check the return value of access(2) on Solaris systems, - since it returns success for executable tests (e.g., `test -x') when - run by root, even if the file permissions don't allow execution. - -2. Changes to Readline - -a. Fixed a bug that caused directory names in words to be completed to not - be dequoted correctly. - -3. New Features in Bash - -4. New Features in Readline - ------------------------------------------------------------------------------- -This document details the changes between this version, bash-4.2-beta, -and the previous version, bash-4.2-alpha. - -1. Changes to Bash - -a. Fixed a bug that caused the \W prompt string escape to not add a closing - NULL. - -b. Fixed a bug that caused partially-quoted words that were not subject to - word splitting to retained quoted NULLs. - -c. Added considerable efficiency speedups when pattern matching in multibyte - locales by skipping multibyte character functions where possible. - -d. Added considerable speedups to variable expansion when in multibyte locales. - -e. Fixed a bug that caused the expansion of $* when there are no positional - parameters to cause the shell to dump core when used in a pattern - matching context. - -f. Fixed a bug that caused variable expansions preceding regular builtins to - not change the shell environment during their execution. - -2. Changes to Readline - -a. Fixed a bug that made an explicit argument of 0 to yank-last-arg behave - as if it were a negative argument. - ------------------------------------------------------------------------------- -This document details the changes between this version, bash-4.2-alpha, -and the previous version, bash-4.1-release. - -1. Changes to Bash - -a. Fixed a bug in the parser when processing alias expansions containing - quoted newlines. - -b. Fixed a memory leak in associative array expansion. - -c. Fixed a bug that caused quoted here-strings to be requoted when printed. - -d. Fixed a bug in arithmetic expansion that caused the index in an array - expansion to be evaluated twice under certain circumstances. - -e. Fixed several bugs with the expansion and display of variables that have - been given attributes but not values and are technically unset. - -f. Fixed a bug that caused core dumps when using filename completion that - expands to a filename containing a globbing character. - -g. Fixed a bug that caused assignment statements preceding a special builtin - when running in Posix mode to not persist after the builtin completed - when the special builtin was executed in a shell function without any - local variables. - -h. Fixed a bug that caused a command to remain in the hash table even after - `hash command' did not find anything if there was already an existing - hashed pathname. - -i. Fixed several bugs caused by executing unsafe functions from a signal - handler in the cases where a signal handler is executed immediately - rather than setting a flag for later execution. - -j. Fixed a bug that caused some internal flag variables to be set - incorrectly if `read -t' timed out. - -k. Fixed a Posix compatibility issue by making sure that a backslash escaping - a `}' within a double-quoted ${...} parameter expansion is removed as part - of the parameter expansion. - -l. Fixed a bug that caused execution of a trap to overwrite PIPESTATUS. - -m. Fixed a bug that caused here documents to not be displayed correctly - when attached to commands inside compound commands. - -n. Fixed a bug that caused the printf builtin to use the wrong precision - when using the `*' modifier. - -o. Fixed a bug that caused an arriving SIGCHLD to interrupt output functions - like those invoked by echo or printf. - -p. Changed to use a more robust mechanism than eaccess(2) when test is - checking filenames for execution permission. - -q. Fixed a bug that caused spurious semicolons to be added into the command - history in certain cases. - -r. Fixed a bug that caused the shell to free non-allocated memory when - unsetting element 0 of an associative array after it was assigned - implicitly. - -s. Fixed a bug that could cause the shell to dump core if using the `v' - vi editing command on a multi-line command. - -t. Fixed a bug that left FIFOs opened by process substitutions open long - enough to potentially cause file descriptor exhaustion when running a - shell function or shell builtin. - -u. Fixed a bug that caused the history expansion functions to not recognize - process substitution or extended glob patterns as single words. - -v. Fixed a bug that caused restricted shells to set a restricted command's - exit status incorrectly. - -w. Fixed a bug that caused bash to ignore the wrong set of filenames when - completing a command using the `complete-filename' readline command. - -x. Fixed a bug that caused a -PID argument following a -s sig or -n sig to - not be interpreted as a signal specification. - -y. Changed posix-mode behavior of a parse error in a `.' script or `eval' - command to exit the shell under Posix-specified conditions. Previous - versions printed a warning. - -z. Fixed a bug in \W prompt expansion that resulted in incorrect expansion - in the event of overlapping strings. - -aa. Fixed a bug that caused the := parameter expansion operator to return the - wrong value as the result of the expansion. - -bb. When in Posix mode, a single quote is not treated specially in a - double-quoted ${...} expansion, unless the expansion operator is - # or % or the non-Posix `//', `^', and `,'. In particular, it does - not define a new quoting context. This is from Posix interpretation 221. - -cc. Fixed a bug that inadvertently allowed program names containing slashes - to be entered into the command hash table. - -dd. Fixed a bug that caused the select builtin to incorrectly compute the - display width of the arguments in the presence of multibyte characters. - -ee. Fixed a bug that caused bash to not change the xtrace file descriptor if - BASH_XTRACEFD was found in the shell environment at startup. - -ff. Fixed a memory leak in the pattern removal parameter expansion. - -gg. Fixed a bug that caused SIGINT to fail to interrupt a nested loop if the - loop was in a pipeline. - -hh. Fixed a problem in $(...) parsing that caused the parser to add an extra - space to a here-document delimiter if the first word contained a `/'. - -ii. Fixed a bug that caused functions defined with the `function' reserved - word to require braces around the function body. - -jj. Fixed a bug that caused bash to dump core when a variable expansion being - used as an array subscript failed. - -kk. Fixed a bug that caused bash to dump core if the case-modification - expansions were used on a variable with a null value. - -ll. Fixed a bug that caused partially-quoted strings to be split incorrectly - if a variable with a null value was expanded within double quotes. - -mm. The pattern substitution word expansion has been sped up dramatically - when running in a locale with multibyte characters. - -nn. Fixed a bug that caused history -a to not write the correct lines to - the history file if all the new lines in the history list were added - since the last time the history file was read or written. - -oo. Fixed a bug that caused completion of a word with an unclosed `` command - substitution to set the prompt incorrectly. - -pp. Fixed a bug that caused extended globbing patterns in $HISTIGNORE or - $GLOBIGNORE to be incorrectly scanned. - -qq. Fixed a bug caused by closing file descriptors 3-20 on shell startup. The - shell now sets them to close-on-exec. - -rr. Fixed a bug that caused the exit status of `exec file' to be set incorrectly - if `file' was a directory. - -ss. Fixed a bug in the `.' builtin to make a non-interactive posix-mode shell - exit if the file argument to `.' is not found. Prefixing exec with - `command' makes the shell not exit. Posix requires this behavior. - -tt. Fixed a bug that caused `sh -c 'command exec; exit 1' to hang. - -uu. Fixed a bug in $(...) command substitution parsing that caused the shell - to treat backslash-newline incorrectly when parsing a comment. - -vv. Fixed bug that caused brace expansion sequence generation to misbehave - when supplied integers greater than 2**31 - 1. - -ww. Fixed a bug that caused failure to save file descriptors for redirections - to corrupt shell file descriptors. - -xx. Fixed a bug that caused bash-forward-shellword to not correctly handle - quoted strings. - -2. Changes to Readline - -a. Fixed a bug that caused the unconverted filename to be added to the list of - completions when the application specified filename conversion functions. - -b. Fixed a bug that caused the wrong filename to be passed to opendir when the - application has specified a filename dequoting function. - -c. Fixed a bug when repeating a character search in vi mode in the case where - there was no search to repeat. - -d. When show-all-if-ambiguous is set, the completion routines no longer insert - a common match prefix that is shorter than the text being completed. - -e. The full set of vi editing commands may now be used in callback mode. - -f. Fixed a bug that caused readline to not update its idea of the terminal - dimensions while running in `no-echo' mode. - -h. Fixed a bug that caused readline to dump core if an application called - rl_prep_terminal without setting rl_instream. - -i. Fixed a bug that caused meta-prefixed characters bound to incremental - search forward or backward to not be recognized if they were typed - subsequently. - -j. The incremental search code treats key sequences that map to the same - functions as (default) ^G, ^W, and ^Y as equivalent to those characters. - -k. Fixed a bug in menu-complete that caused it to misbehave with large - negative argument. - -l. Fixed a bug that caused vi-mode yank-last-arg to ring the bell when invoked - at the end of the line. - -3. New Features in Bash - -a. `exec -a foo' now sets $0 to `foo' in an executable shell script without a - leading #!. - -b. Subshells begun to execute command substitutions or run shell functions or - builtins in subshells do not reset trap strings until a new trap is - specified. This allows $(trap) to display the caller's traps and the - trap strings to persist until a new trap is set. - -c. `trap -p' will now show signals ignored at shell startup, though their - disposition still cannot be modified. - -d. $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape sequences. - -e. declare/typeset has a new `-g' option, which creates variables in the - global scope even when run in a shell function. - -f. test/[/[[ have a new -v variable unary operator, which returns success if - `variable' has been set. - -g. Posix parsing changes to allow `! time command' and multiple consecutive - instances of `!' (which toggle) and `time' (which have no cumulative - effect). - -h. Posix change to allow `time' as a command by itself to print the elapsed - user, system, and real times for the shell and its children. - -j. $((...)) is always parsed as an arithmetic expansion first, instead of as - a potential nested command substitution, as Posix requires. - -k. A new FUNCNEST variable to allow the user to control the maximum shell - function nesting (recursive execution) level. - -l. The mapfile builtin now supplies a third argument to the callback command: - the line about to be assigned to the supplied array index. - -m. The printf builtin has a new %(fmt)T specifier, which allows time values - to use strftime-like formatting. - -n. There is a new `compat41' shell option. - -o. The cd builtin has a new Posix-mandated `-e' option. - -p. Negative subscripts to indexed arrays, previously errors, now are treated - as offsets from the maximum assigned index + 1. - -q. Negative length specifications in the ${var:offset:length} expansion, - previously errors, are now treated as offsets from the end of the variable. - -r. Parsing change to allow `time -p --'. - -s. Posix-mode parsing change to not recognize `time' as a keyword if the - following token begins with a `-'. This means no more Posix-mode - `time -p'. Posix interpretation 267. - -t. There is a new `lastpipe' shell option that runs the last command of a - pipeline in the current shell context. The lastpipe option has no - effect if job control is enabled. - -u. History expansion no longer expands the `$!' variable expansion. - -v. Posix mode shells no longer exit if a variable assignment error occurs - with an assignment preceding a command that is not a special builtin. - -w. Non-interactive mode shells exit if -u is enabled and an attempt is made - to use an unset variable with the % or # expansions, the `//', `^', or - `,' expansions, or the parameter length expansion. - -x. Posix-mode shells use the argument passed to `.' as-is if a $PATH search - fails, effectively searching the current directory. Posix-2008 change. - -4. New Features in Readline - -a. The history library does not try to write the history filename in the - current directory if $HOME is unset. This closes a potential security - problem if the application does not specify a history filename. - -b. New bindable variable `completion-display-width' to set the number of - columns used when displaying completions. - -c. New bindable variable `completion-case-map' to cause case-insensitive - completion to treat `-' and `_' as identical. - -d. There are new bindable vi-mode command names to avoid readline's case- - insensitive matching not allowing them to be bound separately. - -e. New bindable variable `menu-complete-display-prefix' causes the menu - completion code to display the common prefix of the possible completions - before cycling through the list, instead of after. diff --git a/NEWS-4.2 b/NEWS-4.2 deleted file mode 100644 index e704a658a..000000000 --- a/NEWS-4.2 +++ /dev/null @@ -1,91 +0,0 @@ - -1. New Features in Bash - -a. `exec -a foo' now sets $0 to `foo' in an executable shell script without a - leading #!. - -b. Subshells begun to execute command substitutions or run shell functions or - builtins in subshells do not reset trap strings until a new trap is - specified. This allows $(trap) to display the caller's traps and the - trap strings to persist until a new trap is set. - -c. `trap -p' will now show signals ignored at shell startup, though their - disposition still cannot be modified. - -d. $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape sequences. - -e. declare/typeset has a new `-g' option, which creates variables in the - global scope even when run in a shell function. - -f. test/[/[[ have a new -v variable unary operator, which returns success if - `variable' has been set. - -g. Posix parsing changes to allow `! time command' and multiple consecutive - instances of `!' (which toggle) and `time' (which have no cumulative - effect). - -h. Posix change to allow `time' as a command by itself to print the elapsed - user, system, and real times for the shell and its children. - -j. $((...)) is always parsed as an arithmetic expansion first, instead of as - a potential nested command substitution, as Posix requires. - -k. A new FUNCNEST variable to allow the user to control the maximum shell - function nesting (recursive execution) level. - -l. The mapfile builtin now supplies a third argument to the callback command: - the line about to be assigned to the supplied array index. - -m. The printf builtin has a new %(fmt)T specifier, which allows time values - to use strftime-like formatting. - -n. There is a new `compat41' shell option. - -o. The cd builtin has a new Posix-mandated `-e' option. - -p. Negative subscripts to indexed arrays, previously errors, now are treated - as offsets from the maximum assigned index + 1. - -q. Negative length specifications in the ${var:offset:length} expansion, - previously errors, are now treated as offsets from the end of the variable. - -r. Parsing change to allow `time -p --'. - -s. Posix-mode parsing change to not recognize `time' as a keyword if the - following token begins with a `-'. This means no more Posix-mode - `time -p'. Posix interpretation 267. - -t. There is a new `lastpipe' shell option that runs the last command of a - pipeline in the current shell context. The lastpipe option has no - effect if job control is enabled. - -u. History expansion no longer expands the `$!' variable expansion. - -v. Posix mode shells no longer exit if a variable assignment error occurs - with an assignment preceding a command that is not a special builtin. - -w. Non-interactive mode shells exit if -u is enabled and an attempt is made - to use an unset variable with the % or # expansions, the `//', `^', or - `,' expansions, or the parameter length expansion. - -x. Posix-mode shells use the argument passed to `.' as-is if a $PATH search - fails, effectively searching the current directory. Posix-2008 change. - -2. New Features in Readline - -a. The history library does not try to write the history filename in the - current directory if $HOME is unset. This closes a potential security - problem if the application does not specify a history filename. - -b. New bindable variable `completion-display-width' to set the number of - columns used when displaying completions. - -c. New bindable variable `completion-case-map' to cause case-insensitive - completion to treat `-' and `_' as identical. - -d. There are new bindable vi-mode command names to avoid readline's case- - insensitive matching not allowing them to be bound separately. - -e. New bindable variable `menu-complete-display-prefix' causes the menu - completion code to display the common prefix of the possible completions - before cycling through the list, instead of after. diff --git a/lib/glob/foo b/lib/glob/foo deleted file mode 100644 index 48a4b49be..000000000 --- a/lib/glob/foo +++ /dev/null @@ -1,35 +0,0 @@ - /* If we're expanding **, we don't need to glue the directory - name to the results; we've already done it in glob_vector */ - if ((dflags & GX_ALLDIRS) && filename[0] == '*' && filename[1] == '*' && (filename[2] == '\0' || filename[2] == '/')) - { - /* When do we remove null elements from temp_results? And - how to avoid duplicate elements in the final result? */ - /* If (dflags & GX_NULLDIR) glob_filename potentially left a - NULL placeholder in the temp results just in case - glob_vector/glob_dir_to_array did something with it, but - if it didn't, and we're not supposed to be passing them - through for some reason ((flags & GX_NULLDIR) == 0) we - need to remove all the NULL elements from the beginning - of TEMP_RESULTS. */ - /* If we have a null directory name and ** as the filename, - we have just searched for everything from the current - directory on down. Break now (shouldbreak = 1) to avoid - duplicate entries in the final result. */ -#define NULL_PLACEHOLDER(x) ((x) && *(x) && **(x) == 0) - if ((dflags & GX_NULLDIR) && /* (flags & GX_NULLDIR) == 0 && */ - NULL_PLACEHOLDER (temp_results)) -#undef NULL_PLACEHOLDER - { - register int i, n; - for (n = 0; temp_results[n] && *temp_results[n] == 0; n++) - ; - i = n; - do - temp_results[i - n] = temp_results[i]; - while (temp_results[i++] != 0); - array = temp_results; - shouldbreak = 1; - } - else - array = temp_results; - }