commit bash-20160415 snapshot

This commit is contained in:
Chet Ramey
2016-04-22 11:37:14 -04:00
parent 589afb3c12
commit 3475994a81
16 changed files with 132 additions and 21 deletions
+44
View File
@@ -10632,3 +10632,47 @@ lib/glob/sm_loop.c
* is the last character in the pattern until after we check the
special cases for matching a `.'. Fixes bugs reported back on 3/23
by Isabella Parakiss <izaberina@gmail.com>
4/13
----
bashhist.c
- hc_erasedups: fix memory leak by freeing history entry returned by
remove_history. Bug and fix from Seiichi Ishitsuka
<ishitsuka.sc@ncos.nec.co.jp>
4/19
----
config-top.h
- CD_COMPLAINS: now settable in config-top.h; enables (fatal) error
messages if cd is given multiple directory arguments
4/20
----
execute_cmd.c
- coproc_setvars: refuse to create variables with names that are not
valid identifiers. Suggestion from Piotr Grzybowski
<narsil.pl@gmail.com>
rltty.c
- rl_tty_set_echoing: interface to set _rl_echoing_p, returning old
value. Inspired by gdb use of _rl_echoing_p when switching
between terminal and curses modes described by Doug Evans
<dje@google.com>
bashline.c
- bash_execute_unix_command: use rl_clear_visible_line instead of
erasing current line on the screen, inspired by same report from
3/12. Still tentative change
configure.ac
- update release status to rc2, may skip this and go directly to
release
4/21
----
arrayfunc.c
- convert_var_to_array: make sure that the newly-converted array
variable is not marked as being an associative array. Fixes bug
reported by Grisha Levit <grishalevit@gmail.com>
- convert_var_to_assoc: make sure that the newly-converted associative
array variable is not marked as being an indexed array
+6
View File
@@ -87,6 +87,9 @@ convert_var_to_array (var)
VSETATTR (var, att_array);
VUNSETATTR (var, att_invisible);
/* Make sure it's not marked as an associative array any more */
VUNSETATTR (var, att_assoc);
return var;
}
@@ -118,6 +121,9 @@ convert_var_to_assoc (var)
VSETATTR (var, att_assoc);
VUNSETATTR (var, att_invisible);
/* Make sure it's not marked as an indexed array any more */
VUNSETATTR (var, att_array);
return var;
}
+3 -1
View File
@@ -674,7 +674,9 @@ hc_erasedups (line)
if (STREQ (temp->line, line))
{
r = where_history ();
remove_history (r);
temp = remove_history (r);
if (temp)
free_history_entry (temp);
}
}
using_history ();
+2 -2
View File
@@ -1,6 +1,6 @@
/* bashline.c -- Bash's interface to the readline library. */
/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
/* Copyright (C) 1987-2016 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -4080,7 +4080,7 @@ bash_execute_unix_command (count, key)
ce = rl_get_termcap ("ce");
if (ce) /* clear current line */
{
#if 1
#if 0
fprintf (rl_outstream, "\r");
tputs (ce, 1, putx);
#else
+4
View File
@@ -27,6 +27,10 @@
error messages about `break' and `continue' out of context. */
#define BREAK_COMPLAINS
/* Define CD_COMPLAINS if you want the non-standard, but sometimes-desired
error messages about multiple directory arguments to `cd'. */
#define CD_COMPLAINS
/* Define BUFFERED_INPUT if you want the shell to do its own input
buffering, rather than using stdio. Do not undefine this; it's
required to preserve semantics required by POSIX. */
Vendored
+10 -10
View File
@@ -1,7 +1,7 @@
#! /bin/sh
# From configure.ac for Bash 4.4, version 4.078.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for bash 4.4-rc1.
# Generated by GNU Autoconf 2.69 for bash 4.4-rc2.
#
# Report bugs to <bug-bash@gnu.org>.
#
@@ -581,8 +581,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bash'
PACKAGE_TARNAME='bash'
PACKAGE_VERSION='4.4-rc1'
PACKAGE_STRING='bash 4.4-rc1'
PACKAGE_VERSION='4.4-rc2'
PACKAGE_STRING='bash 4.4-rc2'
PACKAGE_BUGREPORT='bug-bash@gnu.org'
PACKAGE_URL=''
@@ -1393,7 +1393,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 4.4-rc1 to adapt to many kinds of systems.
\`configure' configures bash 4.4-rc2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1458,7 +1458,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bash 4.4-rc1:";;
short | recursive ) echo "Configuration of bash 4.4-rc2:";;
esac
cat <<\_ACEOF
@@ -1651,7 +1651,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
bash configure 4.4-rc1
bash configure 4.4-rc2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2360,7 +2360,7 @@ cat >config.log <<_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 4.4-rc1, which was
It was created by bash $as_me 4.4-rc2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2754,7 +2754,7 @@ ac_config_headers="$ac_config_headers config.h"
BASHVERS=4.4
RELSTATUS=rc1
RELSTATUS=rc2
case "$RELSTATUS" in
alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
@@ -16655,7 +16655,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by bash $as_me 4.4-rc1, which was
This file was extended by bash $as_me 4.4-rc2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16721,7 +16721,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
bash config.status 4.4-rc1
bash config.status 4.4-rc2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
+2 -2
View File
@@ -5,7 +5,7 @@ dnl report bugs to chet@po.cwru.edu
dnl
dnl Process this file with autoconf to produce a configure script.
# Copyright (C) 1987-2015 Free Software Foundation, Inc.
# Copyright (C) 1987-2016 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
@@ -24,7 +24,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_REVISION([for Bash 4.4, version 4.078])dnl
define(bashvers, 4.4)
define(relstatus, rc1)
define(relstatus, rc2)
AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
+18 -1
View File
@@ -1,6 +1,6 @@
/* execute_cmd.c -- Execute a COMMAND structure. */
/* Copyright (C) 1987-2015 Free Software Foundation, Inc.
/* Copyright (C) 1987-2016 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -2150,6 +2150,7 @@ coproc_setvars (cp)
SHELL_VAR *v;
char *namevar, *t;
int l;
WORD_DESC w;
#if defined (ARRAY_VARS)
arrayind_t ind;
#endif
@@ -2157,11 +2158,27 @@ coproc_setvars (cp)
if (cp->c_name == 0)
return;
/* We could do more here but right now we only check the name, warn if it's
not a valid identifier, and refuse to create variables with invalid names
if a coproc with such a name is supplied. */
w.word = cp->c_name;
w.flags = 0;
if (check_identifier (&w, 1) == 0)
return;
l = strlen (cp->c_name);
namevar = xmalloc (l + 16);
#if defined (ARRAY_VARS)
v = find_variable (cp->c_name);
# if 0
if (v && (readonly_p (v) || noassign_p (v)))
{
if (readonly_p (v))
err_readonly (cp->c_name);
return;
}
# endif
if (v == 0)
v = make_new_array_variable (cp->c_name);
if (array_p (v) == 0)
+8
View File
@@ -1140,6 +1140,14 @@ that the terminal editing characters are bound to @code{rl_insert}.
The bindings are performed in @var{kmap}.
@end deftypefun
@deftypefun int rl_tty_set_echoing (int value)
Set Readline's idea of whether or not it is echoing output to its output
stream (@var{rl_outstream}). If @var{value} is 0, Readline does not display
output to @var{rl_outstream}; any other value enables output. The initial
value is set when Readline initializes the terminal settings.
This function returns the previous value.
@end deftypefun
@deftypefun int rl_reset_terminal (const char *terminal_name)
Reinitialize Readline's idea of the terminal settings using
@var{terminal_name} as the terminal type (e.g., @code{vt100}).
+3 -3
View File
@@ -4,7 +4,7 @@ Copyright (C) 1988-2016 Free Software Foundation, Inc.
@set EDITION 7.0
@set VERSION 7.0
@set UPDATED 12 March 2016
@set UPDATED-MONTH March 2016
@set UPDATED 20 April 2016
@set UPDATED-MONTH April 2016
@set LASTCHANGE Sat Mar 12 15:45:03 EST 2016
@set LASTCHANGE Wed Apr 20 13:32:48 PDT 2016
+1 -1
View File
@@ -965,7 +965,7 @@ _rl_dispatch_subseq (key, map, got_subseq)
/* Tentative inter-character timeout for potential multi-key
sequences? If no input within timeout, abort sequence and
act as if we got non-matching input. */
/* _rl_keyseq_timeout specified in milliseconds; _rl_input_queued[B
/* _rl_keyseq_timeout specified in milliseconds; _rl_input_queued
takes microseconds, so multiply by 1000 */
if (_rl_keyseq_timeout > 0 &&
(RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&
+13
View File
@@ -714,6 +714,19 @@ rl_deprep_terminal ()
_rl_release_sigint ();
}
#endif /* !NO_TTY_DRIVER */
/* Set readline's idea of whether or not it is echoing output to the terminal,
returning the old value. */
int
rl_tty_set_echoing (u)
int u;
{
int o;
o = _rl_echoing_p;
_rl_echoing_p = u;
return o;
}
/* **************************************************************** */
/* */
+1
View File
@@ -3035,6 +3035,7 @@ reset_parser ()
free_string_list ();
#endif /* ALIAS || DPAREN_ARITHMETIC */
/* This is where we resynchronize to the next newline on error/reset */
if (shell_input_line)
{
free (shell_input_line);
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/bash/bash-current
BUILD_DIR=/usr/local/build/chet/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+15
View File
@@ -3212,6 +3212,21 @@ unbind_nameref (name)
return 0;
}
int
check_unbind_variable (name)
const char *name;
{
SHELL_VAR *v;
v = find_variable (name);
if (v && readonly_p (v))
{
builtin_error (_("%s: cannot unset: readonly %s"), name, "variable");
return -1;
}
return (unbind_variable (name));
}
/* Unset the shell function named NAME. */
int
unbind_func (name)
+1
View File
@@ -294,6 +294,7 @@ extern SHELL_VAR *bind_var_to_int __P((char *, intmax_t));
extern int assign_in_env __P((WORD_DESC *, int));
extern int unbind_variable __P((const char *));
extern int check_unbind_variable __P((const char *));
extern int unbind_nameref __P((const char *));
extern int unbind_func __P((const char *));
extern int unbind_function_def __P((const char *));