commit bash-20120127 snapshot

This commit is contained in:
Chet Ramey
2012-02-22 10:01:38 -05:00
parent a0350e0811
commit c31d56a7ba
19 changed files with 13327 additions and 50 deletions
+50
View File
@@ -13159,3 +13159,53 @@ lib/readline/readline.c
it if the Linux tty audit system is available and it's been enabled
in rlconf.h Original patch from Miroslav Trmac; recent request
from Miroslav Lichvar <mlichvar@redhat.com>
1/21
----
lib/readline/readline.c:
- _rl_dispatch_subseq: add an inter-character timeout for multi-char
key sequences. Suggested by <rogerx.oss@gmail.com>. Still needs
work to make a user-settable variable
parse.y
- shell_getc: make code that uses the pop_alias dependent on ALIAS
define
variables.h
- sv_tz: extern define should only depend on HAVE_TZSET
expr.c
- expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1;
move assignment to `ind' inside define
- expr_bind_array_element: declaration and uses need to be #ifdef
ARRAY_VARS
arrayfunc.h
- AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not
defined; used in subst.c unconditionally
sig.h
- make the signal blocking functions not dependent on JOB_CONTROL
sig.c
- sigprocmask: make the replacement definition not dependent on
JOB_CONTROL
trap.c
- use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
HAVE_POSIX_SIGNALS and BSD signals
1/29
----
lib/readline/signals.c
- _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies
unless SIGWINCH is defined. Fixes bug reported by Pierre Muller
<pierre.muller@ics-cnrs.unistra.fr>
doc/{bash.1,bashref.texi}
- small modifications to the introduction to the REDIRECTION section
to describe how redirections can modify file handles
- small modification to the section describing base#n to make it
clearer that n can be denoted using non-numerics. From a posting
by Linda Walsh <bash@tlinx.org>
-1
View File
@@ -1 +0,0 @@
CWRU.chlog
+13205
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -64,6 +64,12 @@ extern char *array_keys __P((char *, int));
extern char *array_variable_name __P((char *, char **, int *));
extern SHELL_VAR *array_variable_part __P((char *, char **, int *));
#else
#define AV_ALLOWALL 0
#define AV_QUOTED 0
#define AV_USEIND 0
#endif
#endif /* !_ARRAYFUNC_H_ */
+1 -1
View File
@@ -1,6 +1,6 @@
# This Makefile for building libbuiltins.a is in -*- text -*- for Emacs.
#
# Copyright (C) 1996-2009 Free Software Foundation, Inc.
# Copyright (C) 1996-2009 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -1093,7 +1093,7 @@ char *structfile_header[] = {
"/* This file is manufactured by ./mkbuiltins, and should not be",
" edited by hand. See the source to mkbuiltins for details. */",
"",
"/* Copyright (C) 1987-2009 Free Software Foundation, Inc.",
"/* Copyright (C) 1987-2012 Free Software Foundation, Inc.",
"",
" This file is part of GNU Bash, the Bourne Again SHell.",
"",
+11 -5
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet@po.cwru.edu
.\"
.\" Last Change: Wed Jan 11 17:19:15 EST 2012
.\" Last Change: Sun Jan 29 21:16:46 EST 2012
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2012 January 11" "GNU Bash 4.2"
.TH BASH 1 "2012 January 29" "GNU Bash 4.2"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -3386,8 +3386,13 @@ Before a command is executed, its input and output
may be
.I redirected
using a special notation interpreted by the shell.
Redirection may also be used to open and close files for the
current shell execution environment. The following redirection
Redirection allows commands' file handles to be
duplicated, opened, closed,
made to refer to different files,
and can change the files the command reads from and writes to.
Redirection may also be used to modify file handles in the
current shell execution environment.
The following redirection
operators may precede or appear anywhere within a
.I simple command
or may follow a
@@ -4029,7 +4034,8 @@ Otherwise, numbers take the form [\fIbase#\fP]n, where the optional \fIbase\fP
is a decimal number between 2 and 64 representing the arithmetic
base, and \fIn\fP is a number in that base.
If \fIbase#\fP is omitted, then base 10 is used.
The digits greater than 9 are represented by the lowercase letters,
When specifying \fIn\fP,
the digits greater< than 9 are represented by the lowercase letters,
the uppercase letters, @, and _, in that order.
If \fIbase\fP is less than or equal to 36, lowercase and uppercase
letters may be used interchangeably to represent numbers between 10
+9 -4
View File
@@ -2274,7 +2274,11 @@ result from one of the above expansions are removed.
Before a command is executed, its input and output
may be @var{redirected}
using a special notation interpreted by the shell.
Redirection may also be used to open and close files for the
Redirection allows commands' file handles to be
duplicated, opened, closed,
made to refer to different files,
and can change the files the command reads from and writes to.
Redirection may also be used to modify file handles in the
current shell execution environment. The following redirection
operators may precede or appear anywhere within a
simple command or may follow a command.
@@ -6373,9 +6377,10 @@ Constants with a leading 0 are interpreted as octal numbers.
A leading @samp{0x} or @samp{0X} denotes hexadecimal. Otherwise,
numbers take the form [@var{base}@code{#}]@var{n}, where the optional @var{base}
is a decimal number between 2 and 64 representing the arithmetic
base, and @var{n} is a number in that base. If @var{base}@code{#} is
omitted, then base 10 is used.
The digits greater than 9 are represented by the lowercase letters,
base, and @var{n} is a number in that base.
If @var{base}@code{#} is omitted, then base 10 is used.
When specifying @var{n},
he digits greater than 9 are represented by the lowercase letters,
the uppercase letters, @samp{@@}, and @samp{_}, in that order.
If @var{base} is less than or equal to 36, lowercase and uppercase
letters may be used interchangeably to represent numbers between 10
+2 -3
View File
@@ -2,11 +2,11 @@
Copyright (C) 1988-2012 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Wed Jan 11 17:19:37 EST 2012
@set LASTCHANGE Sun Jan 29 21:17:00 EST 2012
@set EDITION 4.2
@set VERSION 4.2
@set UPDATED 11 January 2012
@set UPDATED 29 January 2012
@set UPDATED-MONTH January 2012
@@ -20,4 +20,3 @@ Copyright (C) 1988-2012 Free Software Foundation, Inc.
+15 -1
View File
@@ -188,7 +188,9 @@ static void pushexp __P((void));
static void popexp __P((void));
static void expr_unwind __P((void));
static void expr_bind_variable __P((char *, char *));
#if defined (ARRAY_VARS)
static void expr_bind_array_element __P((char *, arrayind_t, char *));
#endif
static intmax_t subexpr __P((char *));
@@ -317,6 +319,7 @@ expr_bind_variable (lhs, rhs)
stupidly_hack_special_variables (lhs);
}
#if defined (ARRAY_VARS)
/* Rewrite tok, which is of the form vname[expression], to vname[ind], where
IND is the already-calculated value of expression. */
static void
@@ -342,6 +345,7 @@ expr_bind_array_element (tok, ind, rhs)
free (vname);
free (lhs);
}
#endif /* ARRAY_VARS */
/* Evaluate EXPR, and return the arithmetic result. If VALIDP is
non-null, a zero is stored into the location to which it points
@@ -542,9 +546,11 @@ expassign ()
rhs = itos (value);
if (noeval == 0)
{
#if defined (ARRAY_VARS)
if (lind != -1)
expr_bind_array_element (lhs, lind, rhs);
else
#endif
expr_bind_variable (lhs, rhs);
}
free (rhs);
@@ -945,9 +951,11 @@ exp0 ()
vincdec = itos (v2);
if (noeval == 0)
{
#if defined (ARRAY_VARS)
if (curlval.ind != -1)
expr_bind_array_element (curlval.tokstr, curlval.ind, vincdec);
else
#endif
expr_bind_variable (tokstr, vincdec);
}
free (vincdec);
@@ -991,9 +999,11 @@ exp0 ()
vincdec = itos (v2);
if (noeval == 0)
{
#if defined (ARRAY_VARS)
if (curlval.ind != -1)
expr_bind_array_element (curlval.tokstr, curlval.ind, vincdec);
else
#endif
expr_bind_variable (tokstr, vincdec);
}
free (vincdec);
@@ -1088,8 +1098,8 @@ expr_streval (tok, e, lvalue)
jump_to_top_level (FORCE_EOF);
}
ind = -1;
#if defined (ARRAY_VARS)
ind = -1;
/* Second argument of 0 to get_array_value means that we don't allow
references like array[@]. In this case, get_array_value is just
like get_variable_value in that it does not return newly-allocated
@@ -1106,7 +1116,11 @@ expr_streval (tok, e, lvalue)
lvalue->tokstr = tok; /* XXX */
lvalue->tokval = tval;
lvalue->tokvar = v; /* XXX */
#if defined (ARRAY_VARS)
lvalue->ind = ind;
#else
lvalue->ind = -1;
#endif
}
return (tval);
+1 -1
View File
@@ -302,7 +302,7 @@ wextglob_skipname (pat, dname, flags)
*pe = L')';
return r;
#else
return (wchkname (pp, dname));
return (wchkname (pat, dname));
#endif
}
+8
View File
@@ -607,6 +607,8 @@ _rl_block_sigwinch ()
if (sigwinch_blocked)
return;
#if defined (SIGWINCH)
#if defined (HAVE_POSIX_SIGNALS)
sigemptyset (&sigwinch_set);
sigemptyset (&sigwinch_oset);
@@ -622,6 +624,8 @@ _rl_block_sigwinch ()
# endif /* !HAVE_BSD_SIGNALS */
#endif /* !HAVE_POSIX_SIGNALS */
#endif /* SIGWINCH */
sigwinch_blocked = 1;
}
@@ -632,6 +636,8 @@ _rl_release_sigwinch ()
if (sigwinch_blocked == 0)
return;
#if defined (SIGWINCH)
#if defined (HAVE_POSIX_SIGNALS)
sigprocmask (SIG_SETMASK, &sigwinch_oset, (sigset_t *)NULL);
#else
@@ -644,6 +650,8 @@ _rl_release_sigwinch ()
# endif /* !HAVE_BSD_SIGNALS */
#endif /* !HAVE_POSIX_SIGNALS */
#endif /* SIGWINCH */
sigwinch_blocked = 0;
}
+1 -1
View File
@@ -809,7 +809,7 @@ wait_for (pid)
# define REPORTSIG(x) ((x) != SIGINT && (x) != SIGPIPE)
#else
# define REPORTSIG(x) ((x) != SIGINT && (x) != SIGTERM)
#endiof
#endif
if ((WIFSTOPPED (status) == 0) && WIFSIGNALED (status) && REPORTSIG(WTERMSIG (status)))
{
+3 -1
View File
@@ -2391,6 +2391,7 @@ pop_alias:
is the last character). If it's not the last character, we need
to consume the quoted newline and move to the next character in
the expansion. */
#if defined (ALIAS)
if (expanding_alias () && shell_input_line[shell_input_line_index+1] == '\0')
{
uc = 0;
@@ -2401,7 +2402,8 @@ pop_alias:
shell_input_line_index++; /* skip newline */
goto next_alias_char; /* and get next character */
}
else
else
#endif
goto restart_read;
}
+3 -3
View File
@@ -1,7 +1,7 @@
# Czech tranlation for bash.
# Copyright (C) 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
# Petr Pisar <petr.pisar@atlas.cz>, 2008, 2009, 2010, 2011.
# Petr Pisar <petr.pisar@atlas.cz>, 2008, 2009, 2010, 2011, 2012.
#
# alias → alias
# subscript → podskript
@@ -14,7 +14,7 @@ msgstr ""
"Project-Id-Version: bash 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-28 22:09-0500\n"
"PO-Revision-Date: 2011-02-15 22:48+0100\n"
"PO-Revision-Date: 2012-01-23 21:10+0100\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\n"
@@ -4408,7 +4408,7 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
"Aritmetika smyček.\n"
"Aritmetická smyčka for.\n"
" \n"
" Ekvivalentní k\n"
" \t(( VÝR1 ))\n"
+8 -2
View File
@@ -113,6 +113,9 @@ FILE *xtrace_fp = 0;
#define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr)
/* shell expansion characters: used in print_redirection_list */
#define EXPCHAR(c) ((c) == '{' || (c) == '~' || (c) == '$' || (c) == '`')
#define PRINT_DEFERRED_HEREDOCS(x) \
do { \
if (deferred_heredocs) \
@@ -996,6 +999,7 @@ print_redirection_list (redirects)
REDIRECT *redirects;
{
REDIRECT *heredocs, *hdtail, *newredir;
char *rw;
heredocs = (REDIRECT *)NULL;
hdtail = heredocs;
@@ -1017,10 +1021,12 @@ print_redirection_list (redirects)
else
hdtail = heredocs = newredir;
}
else if (redirects->instruction == r_duplicating_output_word && redirects->redirector.dest == 1)
else if (redirects->instruction == r_duplicating_output_word && (redirects->flags & REDIR_VARASSIGN) == 0 && redirects->redirector.dest == 1)
{
/* Temporarily translate it as the execution code does. */
redirects->instruction = r_err_and_out;
rw = redirects->redirectee.filename->word;
if (rw && *rw != '-' && DIGIT (*rw) == 0 && EXPCHAR (*rw) == 0)
redirects->instruction = r_err_and_out;
print_redirection (redirects);
redirects->instruction = r_duplicating_output_word;
}
-2
View File
@@ -622,7 +622,6 @@ unset_sigwinch_handler ()
/* Signal functions used by the rest of the code. */
#if !defined (HAVE_POSIX_SIGNALS)
#if defined (JOB_CONTROL)
/* Perform OPERATION on NEWSET, perhaps leaving information in OLDSET. */
sigprocmask (operation, newset, oldset)
int operation, *newset, *oldset;
@@ -651,7 +650,6 @@ sigprocmask (operation, newset, oldset)
if (oldset)
*oldset = old;
}
#endif /* JOB_CONTROL */
#else
-5
View File
@@ -47,9 +47,6 @@ typedef RETSIGTYPE SigHandler __P((int));
extern SigHandler *set_signal_handler __P((int, SigHandler *)); /* in sig.c */
#endif /* _POSIX_VERSION */
/* Definitions used by the job control code. */
#if defined (JOB_CONTROL)
#if !defined (SIGCHLD) && defined (SIGCLD)
# define SIGCHLD SIGCLD
#endif
@@ -106,8 +103,6 @@ do { \
# define UNBLOCK_CHILD(ovar) sigsetmask (ovar)
#endif /* !HAVE_POSIX_SIGNALS */
#endif /* JOB_CONTROL */
/* Extern variables */
extern volatile int sigwinch_received;
+2 -18
View File
@@ -292,19 +292,9 @@ run_pending_traps ()
while (pending_traps[sig]--) instead of the if statement. */
if (pending_traps[sig])
{
#if defined (HAVE_POSIX_SIGNALS)
sigset_t set, oset;
sigemptyset (&set);
sigemptyset (&oset);
sigaddset (&set, sig);
sigprocmask (SIG_BLOCK, &set, &oset);
#else
# if defined (HAVE_BSD_SIGNALS)
int oldmask = sigblock (sigmask (sig));
# endif
#endif /* HAVE_POSIX_SIGNALS */
BLOCK_SIGNAL (sig, set, oset);
if (sig == SIGINT)
{
@@ -359,13 +349,7 @@ run_pending_traps ()
pending_traps[sig] = 0;
#if defined (HAVE_POSIX_SIGNALS)
sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
#else
# if defined (HAVE_BSD_SIGNALS)
sigsetmask (oldmask);
# endif
#endif /* POSIX_VERSION */
UNBLOCK_SIGNAL (oset);
}
}
+1 -1
View File
@@ -384,7 +384,7 @@ extern void sv_histchars __P((char *));
extern void sv_histtimefmt __P((char *));
#endif /* HISTORY */
#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
#if defined (HAVE_TZSET)
extern void sv_tz __P((char *));
#endif