From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4882 invoked by alias); 15 Nov 2001 14:52:59 -0000 Mailing-List: contact cygwin-help@sourceware.cygnus.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@sources.redhat.com Received: (qmail 4712 invoked from network); 15 Nov 2001 14:52:46 -0000 Received: from unknown (HELO opus.INS.cwru.edu) (129.22.8.2) by sourceware.cygnus.com with SMTP; 15 Nov 2001 14:52:46 -0000 Received: from nike.ins.cwru.edu (nike.INS.CWRU.Edu [129.22.8.219]) by opus.INS.cwru.edu with SMTP (8.11.6+cwru/CWRU-3.8) id fAFEqiY01339; Thu, 15 Nov 2001 09:52:44 -0500 (EST) (from chet@nike.ins.cwru.edu) Date: Sun, 11 Nov 2001 08:26:00 -0000 From: Chet Ramey To: gnu-announce@gnu.org, bug-bash@gnu.org, cygwin@sourceware.cygnus.com, linux-announce@news.ornl.gov Subject: Bash-2.05a available for FTP Cc: chet@po.cwru.edu Reply-To: chet@po.CWRU.Edu Message-ID: <011115145138.AA30516.SM@nike.ins.cwru.edu> Read-Receipt-To: chet@po.CWRU.Edu MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2001-11/txt/msg00300.txt.bz2 Introduction ============ The first public release of bash-2.05a is now available with the URLs ftp://ftp.cwru.edu/pub/bash/bash-2.05a.tar.gz ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05a.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-2.05a.tar.gz ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-2.05a.tar.gz When unpacking the documentation, make sure to extract the tar file in the bash-2.05a source directory. Diffs from bash-2.05 are available with the URLs ftp://ftp.cwru.edu/pub/bash/bash-2.05-2.05a.diff.gz ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05-2.05a.diff.gz Make sure to apply the diffs using `patch -p1' from within a bash-2.05 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 primarily a bug fix release (as are all odd-numbered releases). The raison d'etre for bash-2.05a is to make an intermediate release containing principally bug fixes (some very good work was done and contributed after bash-2.05 was released) available before I start to work on the major new features to be available in the next release (bash-2.06 or bash-3.0 or whatever I tag it). As such, there are only a few relatively minor new features. Read the file NEWS in the bash-2.05a distribution for a complete description of the (few) new features. Here is a short list: o The `printf' builtin has undergone major work o There is a new read-only `shopt' option: login_shell, which is set by login shells and unset otherwise o New `\A' prompt string escape sequence; expanding to time in 24-hour HH:MM format o New `-A group/-g' option to complete and compgen; goes group name completion o New [+-]O invocation option to set and unset `shopt' options at startup o ksh-like `ERR' trap o `for' loops now allow empty word lists after the `in' reserved word o new `hard' and `soft' arguments for the `ulimit' builtin o Readline can be configured to place the user at the same point on the line when retrieving commands from the history list o Readline can be configured to skip `hidden' files (filenames with a leading `.' on Unix) when performing completion Changes have been made to the Readline library being released at the same time as bash-2.05a, readline-4.2a, so that Bash can be linked against an already-installed Readline library rather than the private version in lib/readline. Only readline-4.2 and later versions are able to provide all of the symbols that bash-2.05a requires; earlier versions of the Readline library will not work correctly. A complete list of changes between bash-2.05 and bash-2.05a is available in the file CHANGES; the relevant portions are appended. Readline ======== Also available is a new release of the standalone readline library, version 4.2a, with its own configuration scripts and Makefiles. It can be retrieved with the URLs ftp://ftp.cwru.edu/pub/bash/readline-4.2a.tar.gz ftp://ftp.gnu.org/pub/gnu/readline/readline-4.2a.tar.gz and from the usual GNU mirror sites. Diffs from readline-4.2 are available with the URLs ftp://ftp.cwru.edu/pub/bash/readline-4.2-4.2a.diff.gz ftp://ftp.gnu.org/pub/gnu/readline/readline-4.2-4.2a.diff.gz Make sure to install the patches using `patch -p1 < patch-file' from within a readline-4.2 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-2.05a-release, and the previous version, bash-2.05a-rc1. 1. Changes to Bash a. Fixed the `printf' builtin so that the variable name supplied as an argument to a %n conversion must be a valid shell identifier. b. Improved the random number generator slightly. c. Changes to configuration to not put -I/usr/include into $CFLAGS, since it messes up some includes. d. Corrected description of POSIXLY_CORRECT in man page and info manual. e. Fixed a couple of cases of incorrect function prototypes that sneaked through and caused compilation problems. f. A few changes to avoid potential core dumps in the programmable completion code. g. Fixed a configure problem that could cause a non-existent file to show up in LIBOBJS. h. Fixed a configure problem that could cause siglist.o to not be built when required. i. Changes to the strtoimax and strtoumax replacement functions to work around buggy compilers. j. Fixed a problem with the snprintf replacement function that could potentially cause a core dump. 2. Changes to Readline a. Fixed a locale-specific problem in the vi-mode `goto mark' command. b. Fixed Makefile to not put -I/usr/include into CFLAGS, since it can cause include file problems. ------------------------------------------------------------------------------ This document details the changes between this version, bash-2.05a-rc1, and the previous version, bash-2.05a-beta1. 1. Changes to Bash a. Fixed the snprintf replacement to correctly implement the `alternate form' of the %g and %G conversions. b. Fixed snprintf to correctly handle the optional precision with the %g and %G conversions. c. Fixed the arithmetic evaluation code to correct the values of `@' and `_' when translating base-64 constants (they were backwards). d. New library functions for formatting long and long long ints. e. Fixed a few places where negative array subscripts could have occurred, mostly as the result of systems using signed characters. f. Fixed a few places that assumed a pid_t was no wider than an int. g. Fixed the `maildir' mail checking code to work on systems where a `struct stat' doesn't include an `st_blocks' member. h. Fixed snprintf to make `unsigned long long' conversion formats (%llu) work better. i. Fixed snprintf to not print a sign when asked to do an unsigned conversion. j. Made configure changes to avoid compiling empty source files in lib/sh. k. New replacement functions (if necessary) for strtoull, strtoll, strtoimax, strtoumax. l. The `printf' builtin now handles the `ll' and `j' length modifiers directly, since they can affect the type and width of the argument passed to printf(3). m. Renamed a number of the bash-specific autoconf macros in aclocal.m4 to have more sytematic naming, with accompanying changes to configure.in. n. Fixed snprintf to handle long doubles and the %a/%A conversions by falling back to sprintf, as long as sprintf supports them. o. Fixed return value from vsnprintf/snprintf to be the number of characters that would have been printed, even if that number exceeds the buffer size passed as an argument. p. Bash no longer attempts to define its own versions of some ctype macros if they are implemented as functions in libc but not as macros in . q. Changed the variable printing code (used by `set', `export', etc.) to not use the $'...' syntax when in posix mode, since that caused interoperability problems with other shells (most notably with autoconf). When not in posix mode, it uses $'...' if the string to be printed contains non-printing characters and regular single quotes otherwise. r. snprintf now recognizes the %F conversion. s. Fixed a bug that could cause the wrong status to be returned by a shell function when the shell is compiled without job control and a null command containing a command substutition was executed in the function. t. When in posix mode, the default value for MAILCHECK is 600. u. Bash only initializes FUNCNAME, GROUPS, and DIRSTACK as special variables if they're not in the initial environment. v. If SECONDS appears in the initial environment with a valid integer value, bash uses that as the starting value, as if an assignment had been performed. w. Bash no longer auto-exports HOME, PATH, SHELL, or TERM, even though it gives them default values if they don't appear in the initial environment. x. Bash no longer auto-exports HOSTNAME, HOSTTYPE, MACHTYPE, or OSTYPE, even if it assigns them default values. y. Bash no longer removes the export attribute from SSH_CLIENT or SSH2_CLIENT if they appear in the initial environment. z. Bash no longer attempts to discover if it's being run by sshd in order to run the startup files. If the SSH_SOURCE_BASHRC is uncommented in config-top.h it will attempt to do so as previously, but that's commented out in the distributed version. aa. Fixed a typo in the code that tests for LC_NUMERIC. bb. The POSIXLY_CORRECT shell variable and its effects are now documented. cc. Some changes to several of the support shell scripts included in the definitions to try to avoid race conditions and attacks. dd. Several changes to avoid warnings from `gcc -Wall'. ee. Fixed a problem with the `unset' builtin that could cause incorrect results if asked to unset a variable and an array subscript in the same command. ff. A few changes to the shell's temporary file creation code to avoid potential file descriptor leaks and to prefer the system's idea of the temporary directory to use. gg. Fixes to build with the C alloca in lib/malloc/alloca.c if the system requires it but the shell has been configured --without-bash-malloc. hh. Updated the documentation to note that only interactive shells resend SIGHUP to all jobs before exiting. ii. Fixes to only pass unquoted tilde words to tilde_expand, rather than rely on tilde_expand or getpwnam(3) to handle the quotes (MacOS 10.x will remove backslashes in any login name passed to getpwnam(3)). jj. Small change from Paul Eggert to make LINENO right in commands run with `bash -c'. 2. New Features in Bash a. The `printf' builtin now handles the %a and %A conversions if they're implemented by printf(3). b. The `printf' builtin now handles the %F conversion (just about like %f). c. The `printf' builtin now handles the %n conversion like printf(3). The corresponding argument is the name of a shell variable to which the value is assigned. 3. Changes to Readline a. Fixed a few places where negative array subscripts could have occurred. b. Fixed the vi-mode code to use a better method to determine the bounds of the array used to hold the marks. c. Fixed the defines in chardefs.h to work better when chars are signed. d. Fixed configure.in to use the new names for bash autoconf macros. e. Readline no longer attempts to define its own versions of some ctype macros if they are implemented as functions in libc but not as macros in . f. Fixed a problem where rl_backward could possibly set point to before the beginning of the line. ------------------------------------------------------------------------------ This document details the changes between this version, bash-2.05a-beta1, and the previous version, bash-2.05a-alpha1. 1. Changes to Bash a. Fixed a bug in the evalution of arithmetic `for' statements when the expanded expression is NULL. b. Fixed an unassigned variable problem in the redirection printing code. c. Added more prototypes to extern function declarations in the header files and to static function declarations in C source files. d. Make sure called functions have a prototype in scope, to get the arguments and return values right instead of casting. Removed extern function declarations from C source files that were already included in header files. e. Changed some function arguments to use function typedefs in general.h so the prototypes can be checked. The only use of Function and VFunction now is for unwind-protects. f. More const changes to function arguments and appropriate variables. g. Changed the mail checking support to handle `maildir'-style mail directories. h. Augmented the bash malloc to pass in the file and line number information for each malloc, realloc, and free. This should result in better error messages. i. The `old' gnu malloc is no longer a configuration option. j. Augmented the bash malloc with optional tracing and registering allocated and freed memory. k. Prompt string decoding now saves and restores the value of $? when it expands the prompt string, so command substitutions don't change $?. i. Array indices are now `long', since shell arithmetic is performed as long, and the internal arrayind_t type is used consistently. j. Some more `unsigned char *' fixes from Paul Eggert. k. Fixed a bad call to builtin_error that could cause core dumps when making local variables. l. `return' may no longer be used to terminate a `select' command, for compatibility with ksh. m. Changed code that reads octal numbers to do a better job of detecting overflows. n. The time formatting code no longer uses absolute indices into a buffer, because the buffer size changes depending on the size of a `time_t'. o. `umask' now prints four digits when printing in octal mode, for compatibility with other shells. p. Lots of changes to the `printf' builtin from Paul Eggert: it handles `L' formats and long doubles better, and internal functions have been simpified where appropriate. q. Some `time_t' fixes for machines were a time_t is bigger than a long. r. Replaced some bash-specific autoconf macros with standard equivalents. s. Improvmed the code that constructs temporary filenames to make the generated names a bit more random. t. Added code that checks for ascii before calling any of the is* ctype functions. u. Changed some places where a `char' was used as an array subscript to use `unsigned char', since a `char' can be negative if it's signed by default. v. Lots of changes to the `ulimit' builtin from Paul Eggert to add support for the new POSIX-200x RLIM_SAVED_CUR and RLIM_SAVED_MAX values and simplify the code. w. `ulimit' now prints the description of a resource in any error message relating to fetching or setting that resource's limits. x. The `snprintf' replacement now computes maximum values at compile time rather than using huge constants for things like long long. y. Interactive shells now ignore `set -n'. z. Changed the malloc bookkeeping information so that it's now 8 bytes instead of 12 on most 32-bit machines (saving 4 bytes per allocation), restoring 8-byte alignment. aa. The malloc error reporting code now attempts to print the file and line number of the call that caused the error. bb. Changed the redirection error reporting code to catch EBADF errors and report the file descriptor number rather than the file being redirected to or from (e.g., things like `exec 4242