diff options
author | Jari Aalto <jari.aalto@cante.net> | 2000-03-17 21:46:59 +0000 |
---|---|---|
committer | Jari Aalto <jari.aalto@cante.net> | 2009-09-12 16:46:53 +0000 |
commit | bb70624e964126b7ac4ff085ba163a9c35ffa18f (patch) | |
tree | ba2dd4add13ada94b1899c6d4aca80195b80b74b /CHANGES | |
parent | b72432fdcc59300c6fe7c9d6c8a31ad3447933f5 (diff) | |
download | bash-bb70624e964126b7ac4ff085ba163a9c35ffa18f.tar.gz |
Imported from ../bash-2.04.tar.gz.
Diffstat (limited to 'CHANGES')
-rw-r--r-- | CHANGES | 606 |
1 files changed, 606 insertions, 0 deletions
@@ -1,3 +1,609 @@ +This document details the changes between this version, bash-2.04-release, +and the previous version, bash-2.04-beta5. + +1. Changes to Bash + +a. Better compile-time and configure-time checks for the necessity of + inet_aton(). + +b. A bug was fixed in the expansion of "${@:-}" when there are positional + parameters. + +c. A typo was fixed in the output of `complete'. + +d. The matches generated for a word by the `-W' argument to complete and + compgen are now matched against the word being completed, and only + matches are returned as the result. + +e. Some fixes were made for systems which do not restart read(2) when a + signal caught by bash is received. + +f. A bug was fixed which caused the umask to be set to 0 when an invalid + symbolic mode mask was parsed. + +g. Fixed a bug that could cause a core dump if a SIGCHLD was received while + performing an assignment statement using command substitution. + +h. Changed the word splitting function for programmable completion so cases + in which the cursor is between words are handled a bit better. + +2. Changes to Readline + +a. rl_funmap_names() is now documented. + +3. New Features in Bash + +a. The LC_NUMERIC variable is now treated specially, and used to set the + LC_NUMERIC locale category for number formatting, e.g., when `printf' + displays floating-point numbers. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-2.04-beta5, +and the previous version, bash-2.04-beta4. + +1. Changes to Bash + +a. A couple of changes were made to the Makefiles for easier building on + non-Unix systems. + +b. Fixed a bug where the current prompt would be set to $PS2 at startup. + +c. The shell script that tests an already-installed version was changed to + remove the directory it created its test programs in at exit. + +d. Several changes were made to the code that tokenizes an input line for + the programmable completion code. Shell metacharacters will now appear + as individual words in the word list passed to the completion functions. + Some of the example completion shell functions were changed to understand + redirection operators. + +e. A bug was fixed that, under obscure circumstances, could confuse the + parser when a shell function was run by the programmable completion code. + +f. A bug was fixed in the ulimit builtin for systems not using getrlimit(). + +g. The execution code now propagates the correct exit status back to the rest + of the code if the return value of a subshell command was being inverted. + Some new test cases for inverting return values with the `!' reserved + word have been added. + +h. Negative exponents in the arithmetic evaluation of v**e now return an + evaluation error. + +i. A bug that caused bash to check the wrong process in a pipeline for + abnormal termination (and consequently resetting the terminal attributes) + was fixed. + +j. Fixed a bug that caused $PS2 to be displayed after PROMPT_COMMAND was + executed. + +2. Changes to Readline + +1. Fixed a bug in a C preprocessor define that caused the keypad control + functions to be compiled out for all platforms except DJGPP. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-2.04-beta4, +and the previous version, bash-2.04-beta3. + +1. Changes to Bash + +a. A couple of changes were made to the redirection to attempt to avoid + race conditions and malicious file replacement. + +2. A change was made to the string evaluation code (used for command + substitution, `eval', and the `.' builtin) to fix an obscure core + dump on alpha machines. + +3. A bug that caused $LINENO to be wrong when executing arithmetic for + commands was fixed. + +4. A couple of memory leaks in the programmable completion code were fixed. + +5. A bug that could cause a core dump by freeing memory twice during a call + to `eval' if `set -u' had been enabled and an undefined variable was + referenced was fixed. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-2.04-beta3, +and the previous version, bash-2.04-beta2. + +1. Changes to Bash + +a. Bash should run the appropriate startup files when invoked by ssh2. + +b. Fixed a bug in the parsing of conditional commands that could cause a + core dump. + +c. Fixed a bug in parsing job specifications that occasionally caused + core dumps when an out-of-range job was referenced. + +d. Fixed the `type' and `command' builtins to do better reporting of + commands that are not found in $PATH or the hash table. + +e. Fixed a POSIX.2 compliance problem in the command builtin -- commands + are supposed to be reported as full pathnames. + +f. The `echo' builtin now returns failure if a write error occurs. + +g. Fixed a bug which caused the locale to not be reset correctly when + LC_ALL was unset. + +h. Changed description of `getopts' in man page and reference manual to make + it clear that option characters may be characters other than letters. + +i. If the shell exits while in a function, make sure that any trap on EXIT + doesn't think the function is still executing. + +j. Bashbug now tries harder to find a usable editor if $EDITOR is not set, + rather than simply defaulting to `emacs'. + +k. Changes to the scripts that guess and canonicalize the system type, from + the latest `automake' distribution via Debian. + +l. When using named pipes for process substitution, make sure the file + descriptors opened for reading are set to non-blocking mode. + +m. Fixed a bug that caused termination of pipelines that are killed by a + signal to not be reported in some cases. + +n. When not in literal-history mode, shell comment lines are not added to + the history list. + +o. When running in POSIX.2 mode, bash no longer performs word splitting on + the expanded value of the word supplied as the filename argument to + redirection operators. + +p. The prompt string decoding code now backslash-quotes only characters that + are special within double quotes when expanding the \w and \W escape + sequences. + +q. Fixed a bug in the prompt decoding code that could cause a non-interactive + shell to seg fault if `\u' was used in PS4 and the shell was in xtrace + mode. + +r. Fixed a bug that caused function definitions to be printed with any + redirections that should be attached to the entire function before the + closing brace. + +s. Changed the tilde expansion code for Cygwin systems to avoid creating + pathnames beginning with `//' if $HOME == `/'. + +t. Fixed a couple of autoconf tests to avoid creating files with fixed names + in /tmp. + +u. The `trap' and `kill' builtins now know the names of the POSIX.1b real- + time signals on systems which support them. + +2. Changes to Readline + +a. Fixed a problem with the single-quote quoting function that could cause + buffer overflows. + +b. Fixed a bug that caused incorrect `stat characters' to be printed if + the files being completed were in the root directory and visible-stats + was enabled. + +3. New Features in Bash + +a. There is a new `rbash.1' manual page, from the Debian release. + +b. The `--enable-usg-echo-default' option to `configure' has been renamed to + `--enable-xpg-echo-default'. The old option is still there for backwards + compatibility. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-2.04-beta2, +and the previous version, bash-2.04-beta1. + +1. Changes to Bash + +a. Fixed a bug that could cause pipes to be closed inappropriately in + some obscure cases. + +b. Fixed a bug that caused creation of the exported environment to clobber + the current command string if there were any exported shell functions. + +c. Some changes were made to reduce bash's memory usage. + +d. Fixed a problem with programmable completion and filenames to be + completed containing quote characters. + +e. Changed the code the removes named pipes created for the <(...) and >(...) + expansions to defer removal until after any current shell function has + finished executing. + +f. Fixed a bug in `select' which caused it to not handle the `continue' + builtin correctly. + +g. Autoconf tests added for cygwin32 and mingw32. + +2. New Features in Bash + +a. The `--with-bash-malloc' configure option replaces `--with-gnu-malloc' + (which is still there for backwards compatibility). + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-2.04-beta1, +and the previous version, bash-2.04-alpha1. + +1. Changes to Bash + +a. Fixed a bug in the programmable completion code that occurred when + trying to complete command lines containing a `;' or `@'. + +b. The file descriptor from which the shell is reading a script is now + moved to a file descriptor above the user-addressible range. + +c. Changes to `printf' so that it can handle integers beginning with 0 + or 0x as octal and hex, respectively. + +d. Fixes to the programmable completion code so it handles nonsense like + `compgen -C xyz' gracefully. + +e. The shell no longer modifies the signal handler for SIGPROF, allowing + profiling again on certain systems. + +f. The shell checks for a new window size, if the user has requested it, + after a process exits due to a signal. + +g. Fixed a bug with variables with null values in a program's temporary + environment and the bash getenv() replacement. + +h. `declare' and the other builtins that take variable assignments as + arguments now honor `set -a' and mark modified variables for export. + +i. Some changes were made for --dump-po-strings mode when writing strings + with embedded newlines. + +j. The code that caches export strings from the initial environment now + duplicates the string rather than just pointing into the environment. + +k. The filename completion quoting code now uses single quotes by default + if the filename being completed contains newlines, since \<newline> + has a special meaning to the parser. + +l. Bash now uses typedefs bits32_t and u_bits32_t instead of int32_t and + u_int32_t, respectively to avoid conflicts on certain Unix versions. + +m. Configuration changes were made for: Rhapsody, Mac OS, FreeBSD-3.x. + +n. Fixed a problem with hostname-to-ip-address translation in the + /dev/(tcp|udp)/hostname/port redirection code. + +o. The texinfo manual has been reorganized slightly. + +p. Filename generation (globbing) range comparisons in bracket expressions + no longer use strcoll(3) even if it is available, since it has unwanted + effects in certain locales. + +q. Fixed a cosmetic problem in the source that caused the shell to not + compile if DPAREN_ARITHMETIC was not defined but ARITH_FOR_COMMAND was. + +r. Fixed a bug in the here-document code tripped when the file descriptor + opened to the file containing the text of the here document was the + same as a redirector specified by the user. + +s. Fixed a bug where the INVERT_RETURN flag was not being set for `pipeline' + in `time ! pipeline'. + +t. Fixed a bug with the `wait' builtin which manifested itself when an + interrupt was received while the shell was waiting for asynchronous + processes in a shell script. + +u. Fixed the DEBUG trap code so that it has the correct value of $?. + +v. Fixed a bug in the parameter pattern substitution code that could cause + the shell to attempt to free unallocated memory if the pattern started + with `/' and an expansion error occurs. + +w. Fixed a bug in the positional parameter substring code that could + cause the shell to loop freeing freed memory. + +x. Fixed a bug in the positional parameter pattern substitution code so + that it correctly handles null replacement strings with a pattern + string prefixed with `%' or `#'. + +y. The shell no longer attempts to import functions from the environment if + started with `-n'. + +z. Fixed a bug that caused `return' in a command substitution executed in + a shell function to return from the function in a subshell and continue + execution. + +aa. `hash -p /pathname/with/slashes name' is no longer allowed when the shell + is restricted. + +bb. The wait* job control functions now behave better if called when there + are no unwaited-for children. + +cc. Command substitution no longer unconditionally disables job control in + the subshell started to run the command. + +dd. A bug was fixed that occasionally caused traps to mess up the parser + state. + +ee. `bashbug' now honors user headers in the mail message it sends. + +ff. A bug was fixed that caused the `:p' history modifier to not print the + history expansion if the `histverify' option was set. + +2. Changes to Readline + +a. Fixed a bug in the redisplay code for lines with more than 256 line + breaks. + +b. A bug was fixed which caused invisible character markers to not be + stripped from the prompt string if the terminal was in no-echo mode. + +c. Readline no longer tries to get the variables it needs for redisplay + from the termcap entry if the calling application has specified its + own redisplay function. Readline treats the terminal as `dumb' in + this case. + +d. Fixes to the SIGWINCH code so that a multiple-line prompt with escape + sequences is redrawn correctly. + +3. New Features in Bash + +a. `bashbug' now accepts `--help' and `--version' options. + +b. There is a new `xpg_echo' option to `shopt' that controls the behavior + of echo with respect to backslash-escaped characters at runtime. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-2.04-alpha1, +and the previous version, bash-2.04-devel. + +1. Changes to Bash + +a. Fixed a bug that could cause core dumps when performing substring + expansion. + +b. Shared object configuration changes for: Solaris, OSF/1 + +c. The POSIX_GLOB_LIBRARY code that uses the POSIX.2 globbing facilities + for pathname expansion now understands GLOBIGNORE. + +d. The code that implements `eval' was changed to save the value of the + current prompt, so an eval in a shell function called by the programmable + completion code will not change the prompt to $PS2. + +e. Restored the undocumented NON_INTERACTIVE_LOGIN_SHELLS #define to + config-top.h. If this is defined, all login shells will read the + startup files, not just interactive and non-interactive started with + the `--login' option. + +f. Fixed a bug that caused the expansion code to occasionally dump core if + IFS contained characters > 128. + +g. Fixed a problem with the grammar so that a newline is not required + after the `))' in the new-style arithmetic for statement; a semicolon + may be used as expected. + +h. Variable indirection may now reference the shell's special variables. + +i. The $'...' and $"..." constructs are now added to the history correctly + if they contain newlines and command-oriented history is enabled. + +j. It is now an error to try to assign a value to a function-local copy + of a readonly shell variable (declared with the `local' builtin). + +2. Changes to Readline + +a. The history file code now uses O_BINARY mode when reading and writing + the history file on cygwin32. + +3. New Features in Bash + +a. A new programmable completion facility, with two new builtin commands: + complete and compgen. + +b. configure has a new option, `--enable-progcomp', to compile in the + programmable completion features (enabled by default). + +c. `shopt' has a new option, `progcomp', to enable and disable programmable + completion at runtime. + +d. Unsetting HOSTFILE now clears the list of hostnames used for completion. + +4. New Features in Readline + +a. A new variable, rl_gnu_readline_p, always 1. The intent is that an + application can verify whether or not it is linked with the `real' + readline library or some substitute. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-2.04-devel, +and the previous version, bash-2.03-release. + +1. Changes to Bash + +a. System-specific configuration and source changes for: Interix, Rhapsody + +b. Fixed a bug in execute_cmd.c that resulted in a compile-time error if + JOB_CONTROL was not defined. + +c. An obscure race condition in the trap code was fixed. + +d. The string resulting from $'...' is now requoted to avoid any further + expansion. + +e. The $'...' quoting syntax now allows backslash to escape a single quote, + for ksh-93 compatibility. + +f. The $"..." quoting syntax now escapes backslashes and double quotes in + the translated string when displaying them with the --dump-po-strings + option. + +g. `echo -e' no longer converts \' to '. + +h. Fixes were made to the extended globbing code to handle embedded (...) + patterns better. + +i. Some improvements were made to the code that unsets `nodelay' mode on + the file descriptor from which bash is reading input. + +j. Some changes were made to the replacement termcap library for better + operation on MS-DOS. + +k. Some changes were made to the tilde expansion code to handle backslash + as a pathname separator on MS-DOS. + +l. The source has been reorganized a little bit -- there is now an `include' + subdirectory, and lib/posixheaders has been removed. + +m. Improvements were made to the `read' builtin so that it makes many + fewer read(2) system calls. + +n. The expansion of $- will include `c' and `s' when those options are + supplied at shell invocation. + +o. Several improvments were made to the completion code: variable completion + now works better when there are unterminated expansions, command + completion understands quotes better, and completion now works in certain + unclosed $(... constructs. + +p. The arithmetic expansion code was fixed to not need the value of a + variable being assigned a value (fixes the "ss=09; let ss=10" bug). + +q. Some changes were made to make exported environment creation faster. + +r. The html documentation will be installed into $(htmldir) if that variable + has a value when `make install' is run. + +s. Fixed a bug that would cause the bashrc file to be sourced inappropriately + when bash is started by sshd. + +t. The SSH_CLIENT environment variable is no longer auto-exported. + +u. A bug that caused redirections with (...) subshells to be performed in + the wrong order was fixed. + +v. A bug that occasionally caused inaapropriate expansion of assignment + statements in compound array assignments was fixed. + +w. The code that parses the words in a compound array assignment was + simplified considerably and should work better now. + +x. Fixes to the non-job-control code in nojobs.c to make it POSIX.2-compliant + when a user attempts to retrieve the status of a terminated background + process. + +y. Fixes to the `printf' builtin so that it doesn't try to expand all + backslash escape sequences in the format string before parsing it for + % format specifiers. + +2. Changes to Readline + +a. The history library tries to truncate the history file only if it is a + regular file. + +b. A bug that caused _rl_dispatch to address negative array indices on + systems with signed chars was fixed. + +c. rl-yank-nth-arg now leaves the history position the same as when it was + called. + +d. Changes to the completion code to handle MS-DOS drive-letter:pathname + filenames. + +e. Completion is now case-insensitive by default on MS-DOS. + +f. Fixes to the history file manipulation code for MS-DOS. + +g. Readline attempts to bind the arrow keys to appropriate defaults on MS-DOS. + +h. Some fixes were made to the redisplay code for better operation on MS-DOS. + +i. The quoted-insert code will now insert tty special chars like ^C. + +j. A bug was fixed that caused the display code to reference memory before + the start of the prompt string. + +k. More support for __EMX__ (OS/2). + +l. A bug was fixed in readline's signal handling that could cause infinite + recursion in signal handlers. + +m. A bug was fixed that caused the point to be less than zero when rl_forward + was given a very large numeric argument. + +n. The vi-mode code now gets characters via the application-settable value + of rl_getc_function rather than calling rl_getc directly. + +3. New Features in Bash + +a. The history builtin has a `-d offset' option to delete the history entry + at position `offset'. + +b. The prompt expansion code has two new escape sequences: \j, the number of + active jobs; and \l, the basename of the shell's tty device name. + +c. The `bind' builtin has a new `-x' option to bind key sequences to shell + commands. + +d. There is a new shell option, no_empty_command_completion, which, when + enabled, disables command completion when TAB is typed on an empty line. + +e. The `help' builtin has a `-s' option to just print a builtin's usage + synopsys. + +f. There are several new arithmetic operators: id++, id-- (variable + post-increment/decrement), ++id, --id (variabl pre-increment/decrement), + expr1 , expr2 (comma operator). + +g. There is a new ksh-93 style arithmetic for command: + for ((expr1 ; expr2; expr3 )); do list; done + +h. The `read' builtin has a number of new options: + -t timeout only wait timeout seconds for input + -n nchars only read nchars from input instead of a full line + -d delim read until delim rather than newline + -s don't echo input chars as they are read + +i. The redirection code now handles several filenames specially: + /dev/fd/N, /dev/stdin, /dev/stdout, and /dev/stderr, whether or + not they are present in the file system. + +j. The redirection code now recognizes pathnames of the form + /dev/tcp/host/port and /dev/udp/host/port, and tries to open a socket + of the appropriate type to the specified port on the specified host. + +k. The ksh-93 ${!prefix*} expansion, which expands to the names of all + shell variables whose names start with prefix, has been implemented. + +l. There is a new dynamic variable, FUNCNAME, which expands to the name of + a currently-executing function. Assignments to FUNCNAME have no effect. + +m. The GROUPS variable is no longer readonly; assignments to it are silently + discarded. This means it can be unset. + +4. New Features in Readline + +a. Parentheses matching is now always compiled into readline, and enabled + or disabled when the value of the `blink-matching-paren' variable is + changed. + +b. MS-DOS systems now use ~/_inputrc as the last-ditch inputrc filename. + +c. MS-DOS systems now use ~/_history as the default history file. + +d. history-search-{forward,backward} now leave the point at the end of the + line when the string to search for is empty, like + {reverse,forward}-search-history. + +e. history-search-{forward,backward} now leave the last history line found + in the readline buffer if the second or subsequent search fails. + +f. New function for use by applications: rl_on_new_line_with_prompt, used + when an application displays the prompt itself before calling readline(). + +g. New variable for use by applications: rl_already_prompted. An application + that displays the prompt itself before calling readline() must set this to + a non-zero value. + +------------------------------------------------------------------------------ This document details the changes between this version, bash-2.03-release, and the previous version, bash-2.03-beta2. |