This file documents the bugs fixed between this release, bash-1.14.3, and the last bash release, 1.14.2. 1. Bugs fixed in Bash a. There is no longer a too-easy-to-type C-e vi-mode key binding that switches into emacs mode. b. A bug in bashline.c was corrected so that the vi-mode specific features are installed at initialization time. c. Hostname completion now looks for HOSTFILE before hostname_completion_file d. A bug was fixed that caused command substitution command completion to return a corrupted list of matches. e. A bug was fixed that prevented a backslash from escaping a brace to inhibit brace expansion. f. A bug that caused the wrong readline keymap to be used if bind -m failed was fixed. g. A stray `\r' was removed from an error message printed when bash cannot find the current directory at startup. h. `exec' no longer tries to manipulate the job control state if in a subshell. i. `exec' in a subshell exits unconditionally on failure. j. If `exec' does not exit after execve() failure, bash reinitializes the signal handlers. k. Fixed a bug that caused ~/.bash_logout to be executed multiple times if it contained a call to `exit'. l. `read' now strips IFS white space from the beginning of the line read. m. `read' uses " \t\n" to split words if IFS is unset. n. A bug was fixed so that `read' will return partial lines on EOF. o. `read' now checks that the variable names supplied as arguments are legal shell identifiers. p. `help select' and `help variables' now work. q. A bug was fixed that made `readonly -n' turn off a variable's readonly status. r. `shift' now does nothing but print an error message if the supplied count exceeds the number of positional parameters. s. A bug that caused `.' to set the wrong exit value for the shell if the filename argument was not found was fixed. t. `.' now prints an error message if no filename is supplied, rather than failing silently. u. Fixes to `ulimit' were made to accommodate versions of unix where the resource limit type is not a `long'. v. References to $< were removed from cpp-Makefile except in suffix pattern rules. w. A bug was fixed that prevented an `exit' command called in an exit trap from setting the shell's exit status. x. `for' and `select' no longer make the mistake of processing any of the words as variable assignments. y. A bug that caused `select' to dump core with empty lists was fixed. z. A bug was fixed that caused command lookup to not find any executables if PATH was unset or null. aa. Arithmetic evaluation error reporting is now much neater. bb. Job control now uses file descriptor 2 to reach the terminal rather than trying to open /dev/tty. cc. A bug that caused memory leaks in the filename globbing library was fixed. dd. Fixes to several machine descriptions: NetBSD, Ultrix, HPUX 8, HPUX 9, Cray, FreeBSD. ee. A bug was fixed that prevented `set -o emacs' and `set -o vi' from working correctly in files read by `.' or in `eval' commands. ff. Fixed a bug that caused syntax errors if a character with value octal 255 appeared in a script. gg. Prompt expansion no longer performs word splitting after variable and parameter expansion on the prompt string. hh. A bug that caused /etc/profile to be sourced by a login shell even if -noprofile was gived has been fixed. ii. If invoked non-interactively as `sh', bash no longer tries to expand and source $ENV jj. A bug was fixed that caused syntax and substitution errors in a shell started as `bash -c command' to return incorrect exit values. kk. A bug was fixed that caused $PROMPT_COMMAND to be executed when using `eval' in an interactive shell. ll. Interactive shells now send SIGHUP to their children if a SIGHUP is received. Previously, only login shells propagated SIGHUP. mm. Fixed a bug that caused command substitution to set the SIGINT handler incorrectly in the calling shell. nn. Fixed a bug with command substitution that occasionally caused processes to be placed into the wrong process group. oo. Fixed a bug that prevented SIGINT from being ignored after `trap '' SIGINT' in an interactive shell. pp. Command substitution no longer inherits the -e flag from the calling shell. qq. Assignment statements not preceding a command name are not split or globbed. rr. Fixed a bug that caused escaped double quotes in a double-quoted string to be incorrectly removed. ss. Fixes were made to bashbug to work around ultrix and rmail problems. tt. A bug was fixed that caused trap handlers which attempted to reset traps in functions that were called by the handler to set them to bogus values. uu. A bug was fixed that caused $BASH to be set to a bogus value if there was no `bash' executable in the path. vv. A bug that caused loops to be broken inappropriately if any child was stopped was fixed. ww. bashbug.sh now tries to use /usr/lib/sendmail -t or /usr/sbin/sendmail -t if present. xx. A bug that caused rl_completion_entry_function to be set incorrectly if readline completion was interrupted has been fixed. yy. A bug has been fixed that caused core dumps if a `)' was missing in a parenthesized `test' expression. zz. A bug causing incorrect results when using the ${param:-word} form of parameter expansion was fixed. 2. Bugs fixed in Readline a. A completion bug was fixed that caused matches containing 8-bit characters to be scrambled. b. Username completion now produces all usernames as possible completions after ~M-?. c. A bug that caused spurious clear-to-eol terminal sequences to be sent by the display code was fixed. d. A bug was fixed that caused the display code to sometimes calculate the line on which to place the cursor incorrectly. e. A bug was fixed that caused the history library to corrupt the readline buffer if !$ was used after a command with no arguments. f. Fixed a bug in keymap initialization that manifested itself if RUBOUT was not decimal 127. g. Readline no longer tries to expand null or empty prompts. h. Fixed a bug with macro definitions that caused meta characters to be added incorrectly. i. Fixed a bug that caused LC_CTYPE interpretation to be performed every time readline was called and did not allow those values to be overridden by ~/.inputrc. j. Fixed a bug in rl_delete_text that caused buffer overruns. k. Fixed a bug that prevented unix-word-rubout from accepting repeat counts. l. Readline no longer calls abort(). m. Readline no longer tries to manipulate the application keypad. n. Fixed a bug that caused readline to spin in a loop if tcgetattr failed after ^O was used to flush output. o. A bug was fixed that caused vi-mode history searches to leave the history pointer at the wrong position. p. A bug was fixed that caused the vi-mode `d%' and `c%' to delete one too few characters. q. A bug was fixed that caused the vi-mode `s' command to delete one too few characters at the end of a line. r. Readline now initializes keymaps up to a full 8 bits. s. A 257-character static limit on the length of the username to be tilde expanded was removed.