From: Chet Ramey Date: Sun, 4 Dec 2011 03:52:58 +0000 (-0500) Subject: commit bash-20060919 snapshot X-Git-Tag: bash-4.0-alpha~85 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=540d56e8548e16478dc7741ec635ce87d5961e12;p=thirdparty%2Fbash.git commit bash-20060919 snapshot --- diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 7ab0214e3..8710c18e7 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -13710,3 +13710,17 @@ lib/readline/display.c for a multi-line prompt dependent on MB_CUR_MAX, so we don't take the function call hit unless we're in a locale that can have multibyte characters + + 9/19 + ---- +subst.c + - make dequote_list extern so other parts of the shell can use it + +subst.h + - extern declaration for dequote_list + +builtins/read.def + - call dequote_list before assigning words read to array variable if + we saw an escape character. Old code left spurious CTLESCs in the + string after processing backslashes. Bug reported by Daniel Dawson + diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0 index 4d0990f5c..a51bde261 100644 --- a/autom4te.cache/output.0 +++ b/autom4te.cache/output.0 @@ -1,7 +1,7 @@ @%:@! /bin/sh @%:@ From configure.in for Bash 3.2, version 3.190. @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.59 for bash 3.2-beta. +@%:@ Generated by GNU Autoconf 2.59 for bash 3.2-rc. @%:@ @%:@ Report bugs to . @%:@ @@ -270,8 +270,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='3.2-beta' -PACKAGE_STRING='bash 3.2-beta' +PACKAGE_VERSION='3.2-rc' +PACKAGE_STRING='bash 3.2-rc' PACKAGE_BUGREPORT='bug-bash@gnu.org' ac_unique_file="shell.h" @@ -785,7 +785,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 3.2-beta to adapt to many kinds of systems. +\`configure' configures bash 3.2-rc to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -846,7 +846,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 3.2-beta:";; + short | recursive ) echo "Configuration of bash 3.2-rc:";; esac cat <<\_ACEOF @@ -1039,7 +1039,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -bash configure 3.2-beta +bash configure 3.2-rc generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1053,7 +1053,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 3.2-beta, which was +It was created by bash $as_me 3.2-rc, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1422,7 +1422,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. BASHVERS=3.2 -RELSTATUS=beta +RELSTATUS=rc case "$RELSTATUS" in alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -27791,7 +27791,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by bash $as_me 3.2-beta, which was +This file was extended by bash $as_me 3.2-rc, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -27854,7 +27854,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -bash config.status 3.2-beta +bash config.status 3.2-rc configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/autom4te.cache/requests b/autom4te.cache/requests index 84e4075e3..baa7f90df 100644 --- a/autom4te.cache/requests +++ b/autom4te.cache/requests @@ -17,19 +17,19 @@ { 'm4_pattern_forbid' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_C_VOLATILE' => 1, 'AC_TYPE_OFF_T' => 1, + 'AC_C_VOLATILE' => 1, 'AC_FUNC_CLOSEDIR_VOID' => 1, 'AC_REPLACE_FNMATCH' => 1, 'AC_PROG_LIBTOOL' => 1, 'AC_FUNC_STAT' => 1, - 'AC_HEADER_TIME' => 1, 'AC_FUNC_WAIT3' => 1, - 'AC_FUNC_LSTAT' => 1, - 'AC_STRUCT_TM' => 1, + 'AC_HEADER_TIME' => 1, 'AM_AUTOMAKE_VERSION' => 1, - 'AC_TYPE_MODE_T' => 1, + 'AC_STRUCT_TM' => 1, + 'AC_FUNC_LSTAT' => 1, 'AC_FUNC_GETMNTENT' => 1, + 'AC_TYPE_MODE_T' => 1, 'AC_FUNC_STRTOD' => 1, 'AC_CHECK_HEADERS' => 1, 'AC_FUNC_STRNLEN' => 1, @@ -48,17 +48,17 @@ 'AC_STRUCT_ST_BLOCKS' => 1, 'AC_TYPE_SIGNAL' => 1, 'AC_TYPE_UID_T' => 1, - 'AC_CONFIG_AUX_DIR' => 1, 'AC_PROG_MAKE_SET' => 1, - 'sinclude' => 1, + 'AC_CONFIG_AUX_DIR' => 1, 'm4_pattern_allow' => 1, + 'sinclude' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, 'AC_FUNC_STRERROR_R' => 1, 'AC_PROG_CC' => 1, - 'AC_FUNC_FORK' => 1, 'AC_DECL_SYS_SIGLIST' => 1, - 'AC_FUNC_VPRINTF' => 1, + 'AC_FUNC_FORK' => 1, 'AC_FUNC_STRCOLL' => 1, + 'AC_FUNC_VPRINTF' => 1, 'AC_PROG_YACC' => 1, 'AC_INIT' => 1, 'AC_STRUCT_TIMEZONE' => 1, @@ -80,33 +80,33 @@ 'AM_MAINTAINER_MODE' => 1, 'AC_FUNC_UTIME_NULL' => 1, 'AC_FUNC_SELECT_ARGTYPES' => 1, - 'AC_FUNC_STRFTIME' => 1, 'AC_HEADER_STAT' => 1, - 'AC_PROG_CPP' => 1, + 'AC_FUNC_STRFTIME' => 1, 'AC_C_INLINE' => 1, - 'AC_TYPE_PID_T' => 1, - 'AC_PROG_LEX' => 1, + 'AC_PROG_CPP' => 1, 'AC_C_CONST' => 1, + 'AC_PROG_LEX' => 1, + 'AC_TYPE_PID_T' => 1, 'AC_CONFIG_FILES' => 1, 'include' => 1, 'AC_FUNC_SETVBUF_REVERSED' => 1, 'AC_PROG_INSTALL' => 1, 'AM_GNU_GETTEXT' => 1, - 'AC_CHECK_LIB' => 1, 'AC_FUNC_OBSTACK' => 1, + 'AC_CHECK_LIB' => 1, 'AC_FUNC_MALLOC' => 1, 'AC_FUNC_GETGROUPS' => 1, 'AC_FUNC_GETLOADAVG' => 1, 'AH_OUTPUT' => 1, 'AC_FUNC_FSEEKO' => 1, 'AM_PROG_CC_C_O' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AC_CANONICAL_SYSTEM' => 1, 'AM_CONDITIONAL' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AC_FUNC_MKTIME' => 1, 'AC_CONFIG_HEADERS' => 1, 'AC_HEADER_SYS_WAIT' => 1, - 'AC_FUNC_MEMCMP' => 1, 'AC_PROG_LN_S' => 1, + 'AC_FUNC_MEMCMP' => 1, 'm4_include' => 1, 'AC_HEADER_DIRENT' => 1, 'AC_CHECK_FUNCS' => 1 diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0 index 75759460c..0b6f81f0f 100644 --- a/autom4te.cache/traces.0 +++ b/autom4te.cache/traces.0 @@ -1,4 +1,4 @@ -m4trace:configure.in:30: -1- AC_INIT([bash], [3.2-beta], [bug-bash@gnu.org]) +m4trace:configure.in:30: -1- AC_INIT([bash], [3.2-rc], [bug-bash@gnu.org]) m4trace:configure.in:30: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.in:30: -1- m4_pattern_forbid([_AC_]) m4trace:configure.in:30: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) diff --git a/builtins/printf.def b/builtins/printf.def index 81ee0db31..0e1d4aa92 100644 --- a/builtins/printf.def +++ b/builtins/printf.def @@ -91,6 +91,7 @@ extern int errno; do { \ char *b = 0; \ int nw; \ + clearerr (stdout); \ if (have_fieldwidth && have_precision) \ nw = asprintf(&b, f, fieldwidth, precision, func); \ else if (have_fieldwidth) \ diff --git a/builtins/read.def b/builtins/read.def index 278524f66..21521db0f 100644 --- a/builtins/read.def +++ b/builtins/read.def @@ -534,7 +534,10 @@ add_char: alist = list_string (input_string, ifs_chars, 0); if (alist) { - word_list_remove_quoted_nulls (alist); + if (saw_escape) + dequote_list (alist); + else + word_list_remove_quoted_nulls (alist); assign_array_var_from_word_list (var, alist, 0); dispose_words (alist); } diff --git a/configure b/configure index b79186eb2..b16da41f9 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.in for Bash 3.2, version 3.190. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for bash 3.2-beta. +# Generated by GNU Autoconf 2.59 for bash 3.2-rc. # # Report bugs to . # @@ -270,8 +270,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='3.2-beta' -PACKAGE_STRING='bash 3.2-beta' +PACKAGE_VERSION='3.2-rc' +PACKAGE_STRING='bash 3.2-rc' PACKAGE_BUGREPORT='bug-bash@gnu.org' ac_unique_file="shell.h" @@ -785,7 +785,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 3.2-beta to adapt to many kinds of systems. +\`configure' configures bash 3.2-rc to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -846,7 +846,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 3.2-beta:";; + short | recursive ) echo "Configuration of bash 3.2-rc:";; esac cat <<\_ACEOF @@ -1039,7 +1039,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -bash configure 3.2-beta +bash configure 3.2-rc generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1053,7 +1053,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 3.2-beta, which was +It was created by bash $as_me 3.2-rc, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1422,7 +1422,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. BASHVERS=3.2 -RELSTATUS=beta +RELSTATUS=rc case "$RELSTATUS" in alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -27791,7 +27791,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by bash $as_me 3.2-beta, which was +This file was extended by bash $as_me 3.2-rc, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -27854,7 +27854,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -bash config.status 3.2-beta +bash config.status 3.2-rc configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.in b/configure.in index c5921eb5e..9246d5878 100644 --- a/configure.in +++ b/configure.in @@ -25,7 +25,7 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION([for Bash 3.2, version 3.190])dnl define(bashvers, 3.2) -define(relstatus, beta) +define(relstatus, rc) AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) diff --git a/subst.c b/subst.c index ecbe41250..37f5d00b8 100644 --- a/subst.c +++ b/subst.c @@ -205,7 +205,6 @@ static WORD_LIST *list_quote_escapes __P((WORD_LIST *)); static char *dequote_escapes __P((char *)); static char *make_quoted_char __P((int)); static WORD_LIST *quote_list __P((WORD_LIST *)); -static WORD_LIST *dequote_list __P((WORD_LIST *)); static char *remove_quoted_escapes __P((char *)); static char *remove_quoted_nulls __P((char *)); @@ -3065,7 +3064,7 @@ quote_string (string) return (result); } -/* De-quoted quoted characters in STRING. */ +/* De-quote quoted characters in STRING. */ char * dequote_string (string) char *string; @@ -3126,7 +3125,8 @@ quote_list (list) return list; } -static WORD_LIST * +/* De-quote quoted characters in each word in LIST. */ +WORD_LIST * dequote_list (list) WORD_LIST *list; { diff --git a/subst.h b/subst.h index e07055b74..9bc6e2be0 100644 --- a/subst.h +++ b/subst.h @@ -154,9 +154,12 @@ extern char *expand_assignment_string_to_string __P((char *, int)); /* Expand an arithmetic expression string */ extern char *expand_arith_string __P((char *, int)); -/* De-quoted quoted characters in STRING. */ +/* De-quote quoted characters in STRING. */ extern char *dequote_string __P((char *)); +/* De-quote quoted characters in each word in LIST. */ +extern WORD_LIST *dequote_list __P((WORD_LIST *)); + /* Expand WORD, performing word splitting on the result. This does parameter expansion, command substitution, arithmetic expansion, word splitting, and quote removal. */