commit bash-20090226 snapshot

This commit is contained in:
Chet Ramey
2011-12-08 20:05:53 -05:00
parent 76af2125b7
commit 6932f7f549
56 changed files with 17670 additions and 7478 deletions
+62
View File
@@ -7571,3 +7571,65 @@ builtins/exit.def
siglist.c
- include bashintl.h for definition of _. Fixes bug reported by
Greg Wooledge <wooledg@eeg.ccf.org>
2/25
----
subst.c
- new function, skip_matched_pair. Similar to skip_to_delim and
the extract_XXX family
- move skipsubscript here from arrayfunc.c; re-implement in terms of
skip_matched_pair. Fixes bugs reported by <anmaster@tele2.se>
arrayfunc.c
- remove skipsubscript; moved to subst.c
parse.y
- change reset_parser to set current_token to '\n'. Rest of fix for
bug reported by Bernd Eggink <monoped@sudrala.de>; earlier fix on
2/23
2/26
----
builtins/declare.def
- when given something like array[x]=y (which sets making_array_special
to 1), don't convert an associative array to an indexed array (line
493). Part of fix for bug reported by Pierre Gaston
<pierre.gaston@gmail.com>
- if offset == 0, indicating that we do not have a valid assignment,
make sure any `name' containing a `[' is a valid array reference
before trying to go on. Not doing this leads to creating crazy
variables like `name[foo[bar]=bax'. Rest of fix for bug reported
by Pierre Gaston <pierre.gaston@gmail.com>
assoc.c
- change assoc_to_assign to single-quote the array keys if `quoted' is
non-zero. Makes things easier to read with weird characters in the
key
parse.y
- fix parse_comsub to not set LEX_HEREDELIM when it sees "<<<". Fixes
bug reported by Mike Frysinger <vapier@gentoo.org>
2/27
----
parse.y
- fix report_syntax_error to set last_command_exit_value to
EX_BADUSAGE (2) instead of EX_USAGE (258), since there's nothing
that will translate that to something < 128 before reading the
next command. Partial fix for bug reported by Mike Frysinger
<vapier@gentoo.org>
sig.c
- fix sigint_sighandler to set last_command_exit_value to sig+128
before calling throw_to_top_level. Rest of fix for bug reported
by Mike Frysinger <vapier@gentoo.org>
jobs.c
- if fork() fails, set last_command_exit_value to 126 before calling
throw_to_top_level
execute_cmd.c
- defer calling unlink_fifo_list in parent branch of
execute_disk_command if we're executing in a shell function
- change execute_function to call unlink_fifo_list before returning
if it's the top-level function
+62
View File
@@ -7565,3 +7565,65 @@ builtins/exit.def
- check jobs[i] before checking whether or not it's running when
the checkjobs option is set and we're looking for running jobs
at exit. Fixes bug reported by Mike Frysinger <vapier@gentoo.org>
2/24
----
siglist.c
- include bashintl.h for definition of _. Fixes bug reported by
Greg Wooledge <wooledg@eeg.ccf.org>
2/25
----
subst.c
- new function, skip_matched_pair. Similar to skip_to_delim and
the extract_XXX family
- move skipsubscript here from arrayfunc.c; re-implement in terms of
skip_matched_pair. Fixes bugs reported by <anmaster@tele2.se>
arrayfunc.c
- remove skipsubscript; moved to subst.c
parse.y
- change reset_parser to set current_token to '\n'. Rest of fix for
bug reported by Bernd Eggink <monoped@sudrala.de>; earlier fix on
2/23
2/26
----
builtins/declare.def
- when given something like array[x]=y (which sets making_array_special
to 1), don't convert an associative array to an indexed array (line
493). Part of fix for bug reported by Pierre Gaston
<pierre.gaston@gmail.com>
- if offset == 0, indicating that we do not have a valid assignment,
make sure any `name' containing a `[' is a valid array reference
before trying to go on. Not doing this leads to creating crazy
variables like `name[foo[bar]=bax'. Rest of fix for bug reported
by Pierre Gaston <pierre.gaston@gmail.com>
assoc.c
- change assoc_to_assign to single-quote the array keys if `quoted' is
non-zero. Makes things easier to read with weird characters in the
key
parse.y
- fix parse_comsub to not set LEX_HEREDELIM when it sees "<<<". Fixes
bug reported by Mike Frysinger <vapier@gentoo.org>
2/27
----
parse.y
- fix report_syntax_error to set last_command_exit_value to
EX_BADUSAGE (2) instead of EX_USAGE (258), since there's nothing
that will translate that to something < 128 before reading the
next command. Partial fix for bug reported by Mike Frysinger
<vapier@gentoo.org>
sig.c
- fix sigint_sighandler to set last_command_exit_value to sig+128
before calling throw_to_top_level. Rest of fix for bug reported
by Mike Frysinger <vapier@gentoo.org>
jobs.c
- if fork() fails, set last_command_exit_value to 126 before calling
throw_to_top_level
+3
View File
@@ -752,6 +752,7 @@ tests/assoc1.sub f
tests/assoc2.sub f
tests/assoc3.sub f
tests/assoc4.sub f
tests/assoc5.sub f
tests/braces.tests f
tests/braces.right f
tests/builtins.tests f
@@ -909,6 +910,7 @@ tests/prec.right f
tests/precedence f
tests/printf.tests f
tests/printf.right f
tests/printf2.sub f
tests/quote.tests f
tests/quote.right f
tests/read.tests f
@@ -1032,6 +1034,7 @@ tests/trap2a.sub f 755
tests/type.tests f
tests/type.right f
tests/type1.sub f
tests/type2.sub f
tests/varenv.right f
tests/varenv.sh f
tests/varenv1.sub f
+1 -60
View File
@@ -604,66 +604,7 @@ quote_array_assignment_chars (list)
}
}
#if 0
/* This function assumes s[i] == '['; returns with s[ret] == ']' if
an array subscript is correctly parsed. */
int
skipsubscript (s, i)
const char *s;
int i;
{
int count, c;
#if defined (HANDLE_MULTIBYTE)
mbstate_t state, state_bak;
size_t slength, mblength;
#endif
#if defined (HANDLE_MULTIBYTE)
memset (&state, '\0', sizeof (mbstate_t));
slength = strlen (s + i);
#endif
count = 1;
while (count)
{
/* Advance one (possibly multibyte) character in S starting at I. */
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1)
{
state_bak = state;
mblength = mbrlen (s + i, slength, &state);
if (MB_INVALIDCH (mblength))
{
state = state_bak;
i++;
slength--;
}
else if (MB_NULLWCH (mblength))
return i;
else
{
i += mblength;
slength -= mblength;
}
}
else
#endif
++i;
c = s[i];
if (c == 0)
break;
else if (c == '[')
count++;
else if (c == ']')
count--;
}
return i;
}
#endif
/* skipsubscript moved to subst.c to use private functions. 2009/02/24. */
/* This function is called with SUB pointing to just after the beginning
`[' of an array subscript and removes the array element to which SUB
+7
View File
@@ -405,7 +405,11 @@ assoc_to_assign (hash, quoted)
for (i = 0; i < hash->nbuckets; i++)
for (tlist = hash_items (i, hash); tlist; tlist = tlist->next)
{
#if 0
istr = sh_double_quote (tlist->key);
#else
istr = tlist->key;
#endif
vstr = tlist->data ? sh_double_quote ((char *)tlist->data) : (char *)0;
elen = STRLEN (istr) + 8 + STRLEN (vstr);
@@ -423,6 +427,9 @@ assoc_to_assign (hash, quoted)
}
ret[rlen++] = ' ';
#if 0
FREE (istr);
#endif
FREE (vstr);
}
+525
View File
@@ -0,0 +1,525 @@
/*
* assoc.c - functions to manipulate associative arrays
*
* Associative arrays are standard shell hash tables.
*
* Chet Ramey
* chet@ins.cwru.edu
*/
/* Copyright (C) 2008,2009 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
Bash is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Bash is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Bash. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#if defined (ARRAY_VARS)
#if defined (HAVE_UNISTD_H)
# ifdef _MINIX
# include <sys/types.h>
# endif
# include <unistd.h>
#endif
#include <stdio.h>
#include "bashansi.h"
#include "shell.h"
#include "array.h"
#include "assoc.h"
#include "builtins/common.h"
static WORD_LIST *assoc_to_word_list_internal __P((HASH_TABLE *, int));
/* assoc_create == hash_create */
void
assoc_dispose (hash)
HASH_TABLE *hash;
{
if (hash)
{
hash_flush (hash, 0);
hash_dispose (hash);
}
}
void
assoc_flush (hash)
HASH_TABLE *hash;
{
hash_flush (hash, 0);
}
int
assoc_insert (hash, key, value)
HASH_TABLE *hash;
char *key;
char *value;
{
BUCKET_CONTENTS *b;
b = hash_search (key, hash, HASH_CREATE);
if (b == 0)
return -1;
FREE (b->data);
b->data = value ? savestring (value) : (char *)0;
return (0);
}
void
assoc_remove (hash, string)
HASH_TABLE *hash;
char *string;
{
BUCKET_CONTENTS *b;
b = hash_remove (string, hash, 0);
if (b)
{
free ((char *)b->data);
free (b->key);
free (b);
}
}
char *
assoc_reference (hash, string)
HASH_TABLE *hash;
char *string;
{
BUCKET_CONTENTS *b;
if (hash == 0)
return (char *)0;
b = hash_search (string, hash, 0);
return (b ? (char *)b->data : 0);
}
/* Quote the data associated with each element of the hash table ASSOC,
using quote_string */
HASH_TABLE *
assoc_quote (h)
HASH_TABLE *h;
{
int i;
BUCKET_CONTENTS *tlist;
char *t;
if (h == 0 || assoc_empty (h))
return ((HASH_TABLE *)NULL);
for (i = 0; i < h->nbuckets; i++)
for (tlist = hash_items (i, h); tlist; tlist = tlist->next)
{
t = quote_string ((char *)tlist->data);
FREE (tlist->data);
tlist->data = t;
}
return h;
}
/* Quote escape characters in the data associated with each element
of the hash table ASSOC, using quote_escapes */
HASH_TABLE *
assoc_quote_escapes (h)
HASH_TABLE *h;
{
int i;
BUCKET_CONTENTS *tlist;
char *t;
if (h == 0 || assoc_empty (h))
return ((HASH_TABLE *)NULL);
for (i = 0; i < h->nbuckets; i++)
for (tlist = hash_items (i, h); tlist; tlist = tlist->next)
{
t = quote_escapes ((char *)tlist->data);
FREE (tlist->data);
tlist->data = t;
}
return h;
}
HASH_TABLE *
assoc_dequote (h)
HASH_TABLE *h;
{
int i;
BUCKET_CONTENTS *tlist;
char *t;
if (h == 0 || assoc_empty (h))
return ((HASH_TABLE *)NULL);
for (i = 0; i < h->nbuckets; i++)
for (tlist = hash_items (i, h); tlist; tlist = tlist->next)
{
t = dequote_string ((char *)tlist->data);
FREE (tlist->data);
tlist->data = t;
}
return h;
}
HASH_TABLE *
assoc_dequote_escapes (h)
HASH_TABLE *h;
{
int i;
BUCKET_CONTENTS *tlist;
char *t;
if (h == 0 || assoc_empty (h))
return ((HASH_TABLE *)NULL);
for (i = 0; i < h->nbuckets; i++)
for (tlist = hash_items (i, h); tlist; tlist = tlist->next)
{
t = dequote_escapes ((char *)tlist->data);
FREE (tlist->data);
tlist->data = t;
}
return h;
}
HASH_TABLE *
assoc_remove_quoted_nulls (h)
HASH_TABLE *h;
{
int i;
BUCKET_CONTENTS *tlist;
char *t;
if (h == 0 || assoc_empty (h))
return ((HASH_TABLE *)NULL);
for (i = 0; i < h->nbuckets; i++)
for (tlist = hash_items (i, h); tlist; tlist = tlist->next)
{
t = remove_quoted_nulls ((char *)tlist->data);
tlist->data = t;
}
return h;
}
/*
* Return a string whose elements are the members of array H beginning at
* the STARTth element and spanning NELEM members. Null elements are counted.
*/
char *
assoc_subrange (hash, start, nelem, starsub, quoted)
HASH_TABLE *hash;
arrayind_t start, nelem;
int starsub, quoted;
{
WORD_LIST *l, *save, *h, *t;
int i, j;
char *ret;
if (assoc_empty (hash))
return ((char *)NULL);
save = l = assoc_to_word_list (hash);
if (save == 0)
return ((char *)NULL);
for (i = 1; l && i < start; i++)
l = l->next;
if (l == 0)
return ((char *)NULL);
for (j = 0,h = t = l; l && j < nelem; j++)
{
t = l;
l = l->next;
}
t->next = (WORD_LIST *)NULL;
ret = string_list_pos_params (starsub ? '*' : '@', h, quoted);
if (t != l)
t->next = l;
dispose_words (save);
return (ret);
}
char *
assoc_patsub (h, pat, rep, mflags)
HASH_TABLE *h;
char *pat, *rep;
int mflags;
{
BUCKET_CONTENTS *tlist;
int i, slen;
HASH_TABLE *h2;
char *t, *sifs, *ifs;
if (h == 0 || assoc_empty (h))
return ((char *)NULL);
h2 = assoc_copy (h);
for (i = 0; i < h2->nbuckets; i++)
for (tlist = hash_items (i, h2); tlist; tlist = tlist->next)
{
t = pat_subst ((char *)tlist->data, pat, rep, mflags);
FREE (tlist->data);
tlist->data = t;
}
if (mflags & MATCH_QUOTED)
assoc_quote (h2);
else
assoc_quote_escapes (h2);
if (mflags & MATCH_STARSUB)
{
assoc_remove_quoted_nulls (h2);
sifs = ifs_firstchar ((int *)NULL);
t = assoc_to_string (h2, sifs, 0);
free (sifs);
}
else if (mflags & MATCH_QUOTED)
{
/* ${array[@]} */
sifs = ifs_firstchar (&slen);
ifs = getifs ();
if (ifs == 0 || *ifs == 0)
{
if (slen < 2)
sifs = xrealloc (sifs, 2);
sifs[0] = ' ';
sifs[1] = '\0';
}
t = assoc_to_string (h2, sifs, 0);
free(sifs);
}
else
t = assoc_to_string (h2, " ", 0);
assoc_dispose (h2);
return t;
}
char *
assoc_modcase (h, pat, modop, mflags)
HASH_TABLE *h;
char *pat;
int modop;
int mflags;
{
BUCKET_CONTENTS *tlist;
int i, slen;
HASH_TABLE *h2;
char *t, *sifs, *ifs;
if (h == 0 || assoc_empty (h))
return ((char *)NULL);
h2 = assoc_copy (h);
for (i = 0; i < h2->nbuckets; i++)
for (tlist = hash_items (i, h2); tlist; tlist = tlist->next)
{
t = sh_modcase ((char *)tlist->data, pat, modop);
FREE (tlist->data);
tlist->data = t;
}
if (mflags & MATCH_QUOTED)
assoc_quote (h2);
else
assoc_quote_escapes (h2);
if (mflags & MATCH_STARSUB)
{
assoc_remove_quoted_nulls (h2);
sifs = ifs_firstchar ((int *)NULL);
t = assoc_to_string (h2, sifs, 0);
free (sifs);
}
else if (mflags & MATCH_QUOTED)
{
/* ${array[@]} */
sifs = ifs_firstchar (&slen);
ifs = getifs ();
if (ifs == 0 || *ifs == 0)
{
if (slen < 2)
sifs = xrealloc (sifs, 2);
sifs[0] = ' ';
sifs[1] = '\0';
}
t = assoc_to_string (h2, sifs, 0);
free(sifs);
}
else
t = assoc_to_string (h2, " ", 0);
assoc_dispose (h2);
return t;
}
char *
assoc_to_assign (hash, quoted)
HASH_TABLE *hash;
int quoted;
{
char *ret;
char *istr, *vstr;
int i, rsize, rlen, elen;
BUCKET_CONTENTS *tlist;
if (hash == 0 || assoc_empty (hash))
return (char *)0;
ret = xmalloc (rsize = 128);
ret[0] = '(';
rlen = 1;
for (i = 0; i < hash->nbuckets; i++)
for (tlist = hash_items (i, hash); tlist; tlist = tlist->next)
{
#if 0
istr = sh_single_quote (tlist->key);
#else
istr = tlist->key;
#endif
vstr = tlist->data ? sh_double_quote ((char *)tlist->data) : (char *)0;
elen = STRLEN (istr) + 8 + STRLEN (vstr);
RESIZE_MALLOCED_BUFFER (ret, rlen, (elen+1), rsize, rsize);
ret[rlen++] = '[';
strcpy (ret+rlen, istr);
rlen += STRLEN (istr);
ret[rlen++] = ']';
ret[rlen++] = '=';
if (vstr)
{
strcpy (ret + rlen, vstr);
rlen += STRLEN (vstr);
}
ret[rlen++] = ' ';
#if 0
FREE (istr);
#endif
FREE (vstr);
}
RESIZE_MALLOCED_BUFFER (ret, rlen, 1, rsize, 8);
ret[rlen++] = ')';
ret[rlen] = '\0';
if (quoted)
{
vstr = sh_single_quote (ret);
free (ret);
ret = vstr;
}
return ret;
}
static WORD_LIST *
assoc_to_word_list_internal (h, t)
HASH_TABLE *h;
int t;
{
WORD_LIST *list;
int i;
BUCKET_CONTENTS *tlist;
char *w;
if (h == 0 || assoc_empty (h))
return((WORD_LIST *)NULL);
list = (WORD_LIST *)NULL;
for (i = 0; i < h->nbuckets; i++)
for (tlist = hash_items (i, h); tlist; tlist = tlist->next)
{
w = (t == 0) ? (char *)tlist->data : (char *)tlist->key;
list = make_word_list (make_bare_word(w), list);
}
return (REVERSE_LIST(list, WORD_LIST *));
}
WORD_LIST *
assoc_to_word_list (h)
HASH_TABLE *h;
{
return (assoc_to_word_list_internal (h, 0));
}
WORD_LIST *
assoc_keys_to_word_list (h)
HASH_TABLE *h;
{
return (assoc_to_word_list_internal (h, 1));
}
char *
assoc_to_string (h, sep, quoted)
HASH_TABLE *h;
char *sep;
int quoted;
{
BUCKET_CONTENTS *tlist;
int i;
char *result, *t, *w;
WORD_LIST *list, *l;
if (h == 0)
return ((char *)NULL);
if (assoc_empty (h))
return (savestring (""));
result = NULL;
list = NULL;
/* This might be better implemented directly, but it's simple to implement
by converting to a word list first, possibly quoting the data, then
using list_string */
for (i = 0; i < h->nbuckets; i++)
for (tlist = hash_items (i, h); tlist; tlist = tlist->next)
{
w = (char *)tlist->data;
if (w == 0)
continue;
t = quoted ? quote_string (w) : savestring (w);
list = make_word_list (make_bare_word(t), list);
FREE (t);
}
l = REVERSE_LIST(list, WORD_LIST *);
result = l ? string_list_internal (l, sep) : savestring ("");
return result;
}
#endif /* ARRAY_VARS */
+463 -377
View File
File diff suppressed because it is too large Load Diff
+284 -270
View File
@@ -445,7 +445,7 @@ m4trace:configure.in:380: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
m4trace:configure.in:380: -1- AC_SUBST_TRACE([OBJEXT])
m4trace:configure.in:380: -1- m4_pattern_allow([^OBJEXT$])
m4trace:configure.in:384: -1- _m4_warn([obsolete], [The macro `AC_MINIX' is obsolete.
You should run autoupdate.], [../../lib/autoconf/specific.m4:456: AC_MINIX is expanded from...
You should run autoupdate.], [../../lib/autoconf/specific.m4:459: AC_MINIX is expanded from...
configure.in:384: the top level])
m4trace:configure.in:384: -1- AC_SUBST([CPP])
m4trace:configure.in:384: -1- AC_SUBST_TRACE([CPP])
@@ -497,7 +497,7 @@ m4trace:configure.in:384: -1- AC_DEFINE_TRACE_LITERAL([_MINIX])
m4trace:configure.in:384: -1- m4_pattern_allow([^_MINIX$])
m4trace:configure.in:384: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */
#undef _MINIX])
m4trace:configure.in:384: -1- AH_OUTPUT([__EXTENSIONS__], [/* Enable extensions on AIX 3, Interix. */
m4trace:configure.in:384: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
@@ -573,9 +573,9 @@ m4trace:configure.in:484: -1- AC_SUBST([LDFLAGS_FOR_BUILD])
m4trace:configure.in:484: -1- AC_SUBST_TRACE([LDFLAGS_FOR_BUILD])
m4trace:configure.in:484: -1- m4_pattern_allow([^LDFLAGS_FOR_BUILD$])
m4trace:configure.in:498: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1763: RL_LIB_READLINE_VERSION is expanded from...
configure.in:498: the top level])
m4trace:configure.in:498: -1- AC_DEFINE_TRACE_LITERAL([RL_READLINE_VERSION])
@@ -678,14 +678,22 @@ m4trace:configure.in:634: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or
#undef inline
#endif])
m4trace:configure.in:635: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel and VAX). */
#if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
#elif ! defined __LITTLE_ENDIAN__
# undef WORDS_BIGENDIAN
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
# endif
#endif])
m4trace:configure.in:635: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN])
m4trace:configure.in:635: -1- m4_pattern_allow([^WORDS_BIGENDIAN$])
m4trace:configure.in:635: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD])
m4trace:configure.in:635: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$])
m4trace:configure.in:635: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD])
m4trace:configure.in:636: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRINGIZE])
m4trace:configure.in:636: -1- m4_pattern_allow([^HAVE_STRINGIZE$])
m4trace:configure.in:636: -1- AH_OUTPUT([HAVE_STRINGIZE], [/* Define to 1 if cpp supports the ANSI @%:@ stringizing operator. */
@@ -758,7 +766,7 @@ m4trace:configure.in:644: -1- AC_SUBST([MSGMERGE])
m4trace:configure.in:644: -1- AC_SUBST_TRACE([MSGMERGE])
m4trace:configure.in:644: -1- m4_pattern_allow([^MSGMERGE$])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete.
You should run autoupdate.], [../../lib/autoconf/status.m4:1021: AC_OUTPUT_COMMANDS is expanded from...
You should run autoupdate.], [../../lib/autoconf/status.m4:1022: AC_OUTPUT_COMMANDS is expanded from...
aclocal.m4:3664: AM_PO_SUBDIRS is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
configure.in:644: the top level])
@@ -816,10 +824,10 @@ m4trace:configure.in:644: -1- AC_SUBST([GLIBC21])
m4trace:configure.in:644: -1- AC_SUBST_TRACE([GLIBC21])
m4trace:configure.in:644: -1- m4_pattern_allow([^GLIBC21$])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2570: gt_INTDIV0 is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
@@ -829,10 +837,10 @@ m4trace:configure.in:644: -1- m4_pattern_allow([^INTDIV0_RAISES_SIGFPE$])
m4trace:configure.in:644: -1- AH_OUTPUT([INTDIV0_RAISES_SIGFPE], [/* Define if integer division by zero raises signal SIGFPE. */
#undef INTDIV0_RAISES_SIGFPE])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2672: jm_AC_HEADER_INTTYPES_H is expanded from...
aclocal.m4:3973: jm_AC_TYPE_UINTMAX_T is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
@@ -844,10 +852,10 @@ m4trace:configure.in:644: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Defi
declares uintmax_t. */
#undef HAVE_INTTYPES_H_WITH_UINTMAX])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:3943: jm_AC_HEADER_STDINT_H is expanded from...
aclocal.m4:3973: jm_AC_TYPE_UINTMAX_T is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
@@ -859,10 +867,10 @@ m4trace:configure.in:644: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define
uintmax_t. */
#undef HAVE_STDINT_H_WITH_UINTMAX])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:4000: jm_AC_TYPE_UNSIGNED_LONG_LONG is expanded from...
aclocal.m4:3973: jm_AC_TYPE_UINTMAX_T is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
@@ -882,10 +890,10 @@ m4trace:configure.in:644: -1- m4_pattern_allow([^HAVE_UINTMAX_T$])
m4trace:configure.in:644: -1- AH_OUTPUT([HAVE_UINTMAX_T], [/* Define if you have the \'uintmax_t\' type in <stdint.h> or <inttypes.h>. */
#undef HAVE_UINTMAX_T])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2645: gt_HEADER_INTTYPES_H is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
@@ -895,10 +903,10 @@ m4trace:configure.in:644: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
m4trace:configure.in:644: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if <inttypes.h> exists and doesn\'t clash with <sys/types.h>. */
#undef HAVE_INTTYPES_H])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2700: gt_INTTYPES_PRI is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
@@ -974,20 +982,20 @@ m4trace:configure.in:644: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if y
m4trace:configure.in:644: -1- AH_OUTPUT([HAVE___FSETLOCKING], [/* Define to 1 if you have the `__fsetlocking\' function. */
#undef HAVE___FSETLOCKING])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2478: AM_ICONV_LINK is expanded from...
aclocal.m4:2533: AM_ICONV is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
configure.in:644: the top level])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2478: AM_ICONV_LINK is expanded from...
aclocal.m4:2533: AM_ICONV is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
@@ -1004,9 +1012,9 @@ m4trace:configure.in:644: -1- AC_SUBST([LTLIBICONV])
m4trace:configure.in:644: -1- AC_SUBST_TRACE([LTLIBICONV])
m4trace:configure.in:644: -1- m4_pattern_allow([^LTLIBICONV$])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:2533: AM_ICONV is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
@@ -1016,10 +1024,10 @@ m4trace:configure.in:644: -1- m4_pattern_allow([^ICONV_CONST$])
m4trace:configure.in:644: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:1997: AM_LANGINFO_CODESET is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
@@ -1029,10 +1037,10 @@ m4trace:configure.in:644: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$])
m4trace:configure.in:644: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2767: AM_LC_MESSAGES is expanded from...
aclocal.m4:2356: AM_INTL_SUBDIR is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
@@ -1048,24 +1056,24 @@ m4trace:configure.in:644: -1- AC_SUBST([USE_NLS])
m4trace:configure.in:644: -1- AC_SUBST_TRACE([USE_NLS])
m4trace:configure.in:644: -1- m4_pattern_allow([^USE_NLS$])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
configure.in:644: the top level])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
configure.in:644: the top level])
m4trace:configure.in:644: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2068: AM_GNU_GETTEXT is expanded from...
configure.in:644: the top level])
m4trace:configure.in:644: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS])
@@ -1256,6 +1264,9 @@ m4trace:configure.in:699: -1- AC_LIBSOURCE([vprint.c])
m4trace:configure.in:699: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS vprint.$ac_objext"])
m4trace:configure.in:699: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
m4trace:configure.in:699: -1- m4_pattern_allow([^LIB@&t@OBJS$])
m4trace:configure.in:703: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete.
You should run autoupdate.], [../../lib/autoconf/types.m4:699: AC_TYPE_SIGNAL is expanded from...
configure.in:703: the top level])
m4trace:configure.in:703: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE])
m4trace:configure.in:703: -1- m4_pattern_allow([^RETSIGTYPE$])
m4trace:configure.in:703: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */
@@ -1509,57 +1520,57 @@ m4trace:configure.in:743: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if
don\'t. */
#undef HAVE_DECL_STRTOLD])
m4trace:configure.in:743: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:2643: AC_CHECK_DECL is expanded from...
../../lib/autoconf/general.m4:2665: AC_CHECK_DECLS is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:2644: AC_CHECK_DECL is expanded from...
../../lib/autoconf/general.m4:2666: AC_CHECK_DECLS is expanded from...
configure.in:743: the top level])
m4trace:configure.in:743: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN])
m4trace:configure.in:743: -1- m4_pattern_allow([^STRTOLD_BROKEN$])
m4trace:configure.in:743: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD])
m4trace:configure.in:743: -1- m4_pattern_allow([^HAVE_DECL_STRTOLD$])
m4trace:configure.in:760: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:100: BASH_CHECK_DECL is expanded from...
configure.in:760: the top level])
m4trace:configure.in:761: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:100: BASH_CHECK_DECL is expanded from...
configure.in:761: the top level])
m4trace:configure.in:762: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:100: BASH_CHECK_DECL is expanded from...
configure.in:762: the top level])
m4trace:configure.in:763: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:100: BASH_CHECK_DECL is expanded from...
configure.in:763: the top level])
m4trace:configure.in:764: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:100: BASH_CHECK_DECL is expanded from...
configure.in:764: the top level])
m4trace:configure.in:765: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:100: BASH_CHECK_DECL is expanded from...
configure.in:765: the top level])
m4trace:configure.in:767: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
@@ -1658,19 +1669,19 @@ m4trace:configure.in:795: -1- AH_OUTPUT([HAVE_TOWUPPER], [/* Define to 1 if you
m4trace:configure.in:795: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */
#undef HAVE_ISWCTYPE])
m4trace:configure.in:795: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:1686: BASH_CHECK_MULTIBYTE is expanded from...
configure.in:795: the top level])
m4trace:configure.in:795: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET])
m4trace:configure.in:795: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$])
m4trace:configure.in:795: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:1686: BASH_CHECK_MULTIBYTE is expanded from...
configure.in:795: the top level])
m4trace:configure.in:795: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_T])
@@ -1678,10 +1689,10 @@ m4trace:configure.in:795: -1- m4_pattern_allow([^HAVE_WCHAR_T$])
m4trace:configure.in:795: -1- AH_OUTPUT([HAVE_WCHAR_T], [/* systems should define this type here */
#undef HAVE_WCHAR_T])
m4trace:configure.in:795: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:1686: BASH_CHECK_MULTIBYTE is expanded from...
configure.in:795: the top level])
m4trace:configure.in:795: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE_T])
@@ -1689,10 +1700,10 @@ m4trace:configure.in:795: -1- m4_pattern_allow([^HAVE_WCTYPE_T$])
m4trace:configure.in:795: -1- AH_OUTPUT([HAVE_WCTYPE_T], [/* systems should define this type here */
#undef HAVE_WCTYPE_T])
m4trace:configure.in:795: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:1686: BASH_CHECK_MULTIBYTE is expanded from...
configure.in:795: the top level])
m4trace:configure.in:795: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINT_T])
@@ -1710,7 +1721,7 @@ m4trace:configure.in:800: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you h
m4trace:configure.in:800: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */
#undef HAVE_DLSYM])
m4trace:configure.in:804: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete.
You should run autoupdate.], [../../lib/autoconf/specific.m4:62: AC_DECL_SYS_SIGLIST is expanded from...
You should run autoupdate.], [../../lib/autoconf/specific.m4:63: AC_DECL_SYS_SIGLIST is expanded from...
configure.in:804: the top level])
m4trace:configure.in:804: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST])
m4trace:configure.in:804: -1- m4_pattern_allow([^HAVE_DECL_SYS_SIGLIST$])
@@ -1720,10 +1731,10 @@ m4trace:configure.in:804: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1
m4trace:configure.in:804: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST])
m4trace:configure.in:804: -1- m4_pattern_allow([^HAVE_DECL_SYS_SIGLIST$])
m4trace:configure.in:808: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:560: BASH_FUNC_INET_ATON is expanded from...
configure.in:808: the top level])
m4trace:configure.in:808: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON])
@@ -1741,9 +1752,9 @@ m4trace:configure.in:819: -1- m4_pattern_allow([^HAVE_LIBSOCKET$])
m4trace:configure.in:819: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME])
m4trace:configure.in:819: -1- m4_pattern_allow([^HAVE_GETPEERNAME$])
m4trace:configure.in:823: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:729: BASH_FUNC_GETHOSTBYNAME is expanded from...
configure.in:823: the top level])
m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME])
@@ -1794,32 +1805,35 @@ m4trace:configure.in:834: -1- m4_pattern_allow([^time_t$])
m4trace:configure.in:834: -1- AH_OUTPUT([time_t], [/* Define to `long\' if <sys/types.h> does not define. */
#undef time_t])
m4trace:configure.in:836: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:469: BASH_TYPE_LONG_LONG is expanded from...
configure.in:836: the top level])
m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG])
m4trace:configure.in:836: -1- m4_pattern_allow([^HAVE_LONG_LONG$])
m4trace:configure.in:837: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:483: BASH_TYPE_UNSIGNED_LONG_LONG is expanded from...
configure.in:837: the top level])
m4trace:configure.in:837: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG])
m4trace:configure.in:837: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG$])
m4trace:configure.in:839: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete.
You should run autoupdate.], [../../lib/autoconf/types.m4:699: AC_TYPE_SIGNAL is expanded from...
configure.in:839: the top level])
m4trace:configure.in:839: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE])
m4trace:configure.in:839: -1- m4_pattern_allow([^RETSIGTYPE$])
m4trace:configure.in:839: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */
#undef RETSIGTYPE])
m4trace:configure.in:840: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:534: BASH_TYPE_SIG_ATOMIC_T is expanded from...
configure.in:840: the top level])
m4trace:configure.in:840: -1- AC_DEFINE_TRACE_LITERAL([sig_atomic_t])
@@ -1953,63 +1967,63 @@ m4trace:configure.in:862: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if
m4trace:configure.in:867: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC])
m4trace:configure.in:867: -1- m4_pattern_allow([^HAVE_HASH_BANG_EXEC$])
m4trace:configure.in:872: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:546: BASH_FUNC_LSTAT is expanded from...
configure.in:872: the top level])
m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT])
m4trace:configure.in:872: -1- m4_pattern_allow([^HAVE_LSTAT$])
m4trace:configure.in:876: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1877: BASH_FUNC_CTYPE_NONASCII is expanded from...
configure.in:876: the top level])
m4trace:configure.in:876: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII])
m4trace:configure.in:876: -1- m4_pattern_allow([^CTYPE_NON_ASCII$])
m4trace:configure.in:877: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:267: BASH_FUNC_DUP2_CLOEXEC_CHECK is expanded from...
configure.in:877: the top level])
m4trace:configure.in:877: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN])
m4trace:configure.in:877: -1- m4_pattern_allow([^DUP2_BROKEN$])
m4trace:configure.in:878: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1232: BASH_SYS_PGRP_SYNC is expanded from...
configure.in:878: the top level])
m4trace:configure.in:878: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE])
m4trace:configure.in:878: -1- m4_pattern_allow([^PGRP_PIPE$])
m4trace:configure.in:879: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1192: BASH_SYS_SIGNAL_VINTAGE is expanded from...
configure.in:879: the top level])
m4trace:configure.in:879: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:2517: AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:2518: AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1192: BASH_SYS_SIGNAL_VINTAGE is expanded from...
configure.in:879: the top level])
m4trace:configure.in:879: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:2517: AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:2517: AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:2518: AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:2518: AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1192: BASH_SYS_SIGNAL_VINTAGE is expanded from...
configure.in:879: the top level])
m4trace:configure.in:879: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS])
@@ -2019,42 +2033,42 @@ m4trace:configure.in:879: -1- m4_pattern_allow([^HAVE_BSD_SIGNALS$])
m4trace:configure.in:879: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD])
m4trace:configure.in:879: -1- m4_pattern_allow([^HAVE_USG_SIGHOLD$])
m4trace:configure.in:882: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:250: BASH_SYS_ERRLIST is expanded from...
configure.in:882: the top level])
m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST])
m4trace:configure.in:882: -1- m4_pattern_allow([^HAVE_SYS_ERRLIST$])
m4trace:configure.in:883: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:208: BASH_SYS_SIGLIST is expanded from...
configure.in:883: the top level])
m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST])
m4trace:configure.in:883: -1- m4_pattern_allow([^HAVE_SYS_SIGLIST$])
m4trace:configure.in:884: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:164: BASH_DECL_UNDER_SYS_SIGLIST is expanded from...
aclocal.m4:181: BASH_UNDER_SYS_SIGLIST is expanded from...
configure.in:884: the top level])
m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED])
m4trace:configure.in:884: -1- m4_pattern_allow([^UNDER_SYS_SIGLIST_DECLARED$])
m4trace:configure.in:884: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:181: BASH_UNDER_SYS_SIGLIST is expanded from...
configure.in:884: the top level])
m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST])
m4trace:configure.in:884: -1- m4_pattern_allow([^HAVE_UNDER_SYS_SIGLIST$])
m4trace:configure.in:887: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:363: BASH_TYPE_SIGHANDLER is expanded from...
configure.in:887: the top level])
m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER])
@@ -2076,18 +2090,18 @@ m4trace:configure.in:894: -1- m4_pattern_allow([^HAVE_SOCKLEN_T$])
m4trace:configure.in:894: -1- AC_DEFINE_TRACE_LITERAL([socklen_t])
m4trace:configure.in:894: -1- m4_pattern_allow([^socklen_t$])
m4trace:configure.in:896: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:504: BASH_TYPE_RLIMIT is expanded from...
configure.in:896: the top level])
m4trace:configure.in:896: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:2461: AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:2462: AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:504: BASH_TYPE_RLIMIT is expanded from...
configure.in:896: the top level])
m4trace:configure.in:896: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE])
@@ -2099,42 +2113,42 @@ m4trace:configure.in:899: -2- m4_pattern_allow([^TERMIOS_LDISC$])
m4trace:configure.in:900: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC])
m4trace:configure.in:900: -2- m4_pattern_allow([^TERMIO_LDISC$])
m4trace:configure.in:901: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1039: BASH_STRUCT_DIRENT_D_INO is expanded from...
configure.in:901: the top level])
m4trace:configure.in:901: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO])
m4trace:configure.in:901: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_INO$])
m4trace:configure.in:902: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1072: BASH_STRUCT_DIRENT_D_FILENO is expanded from...
configure.in:902: the top level])
m4trace:configure.in:902: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO])
m4trace:configure.in:902: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_FILENO$])
m4trace:configure.in:903: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1105: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from...
configure.in:903: the top level])
m4trace:configure.in:903: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN])
m4trace:configure.in:903: -1- m4_pattern_allow([^HAVE_STRUCT_DIRENT_D_NAMLEN$])
m4trace:configure.in:904: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1170: BASH_STRUCT_WINSIZE is expanded from...
configure.in:904: the top level])
m4trace:configure.in:904: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:2461: AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:2462: AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1170: BASH_STRUCT_WINSIZE is expanded from...
configure.in:904: the top level])
m4trace:configure.in:904: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL])
@@ -2175,25 +2189,25 @@ m4trace:configure.in:908: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you do
m4trace:configure.in:909: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE])
m4trace:configure.in:909: -1- m4_pattern_allow([^HAVE_STRUCT_TIMEZONE$])
m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:296: BASH_FUNC_STRSIGNAL is expanded from...
configure.in:912: the top level])
m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL])
m4trace:configure.in:912: -1- m4_pattern_allow([^HAVE_STRSIGNAL$])
m4trace:configure.in:913: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:310: BASH_FUNC_OPENDIR_CHECK is expanded from...
configure.in:913: the top level])
m4trace:configure.in:913: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST])
m4trace:configure.in:913: -1- m4_pattern_allow([^OPENDIR_NOT_ROBUST$])
m4trace:configure.in:914: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:680: BASH_FUNC_ULIMIT_MAXFDS is expanded from...
configure.in:914: the top level])
m4trace:configure.in:914: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS])
@@ -2210,17 +2224,17 @@ m4trace:configure.in:915: -1- AH_OUTPUT([HAVE_DECL_FPURGE], [/* Define to 1 if y
m4trace:configure.in:915: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPURGE])
m4trace:configure.in:915: -1- m4_pattern_allow([^HAVE_DECL_FPURGE$])
m4trace:configure.in:916: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:576: BASH_FUNC_GETENV is expanded from...
configure.in:916: the top level])
m4trace:configure.in:916: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV])
m4trace:configure.in:916: -1- m4_pattern_allow([^CAN_REDEFINE_GETENV$])
m4trace:configure.in:918: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:699: BASH_FUNC_GETCWD is expanded from...
configure.in:918: the top level])
m4trace:configure.in:918: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN])
@@ -2230,26 +2244,26 @@ m4trace:configure.in:918: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS getcwd.$ac_
m4trace:configure.in:918: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
m4trace:configure.in:918: -1- m4_pattern_allow([^LIB@&t@OBJS$])
m4trace:configure.in:920: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:775: BASH_FUNC_POSIX_SETJMP is expanded from...
configure.in:920: the top level])
m4trace:configure.in:920: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP])
m4trace:configure.in:920: -1- m4_pattern_allow([^HAVE_POSIX_SIGSETJMP$])
m4trace:configure.in:921: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:826: BASH_FUNC_STRCOLL is expanded from...
configure.in:921: the top level])
m4trace:configure.in:921: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN])
m4trace:configure.in:921: -1- m4_pattern_allow([^STRCOLL_BROKEN$])
m4trace:configure.in:927: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:621: BASH_FUNC_STD_PUTENV is expanded from...
configure.in:927: the top level])
m4trace:configure.in:927: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV])
@@ -2257,10 +2271,10 @@ m4trace:configure.in:927: -1- m4_pattern_allow([^HAVE_STD_PUTENV$])
m4trace:configure.in:929: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV])
m4trace:configure.in:929: -1- m4_pattern_allow([^HAVE_STD_PUTENV$])
m4trace:configure.in:932: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2526: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1993: AC_CACHE_CHECK is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:651: BASH_FUNC_STD_UNSETENV is expanded from...
configure.in:932: the top level])
m4trace:configure.in:932: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV])
@@ -2268,33 +2282,33 @@ m4trace:configure.in:932: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$])
m4trace:configure.in:934: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV])
m4trace:configure.in:934: -1- m4_pattern_allow([^HAVE_STD_UNSETENV$])
m4trace:configure.in:937: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:875: BASH_FUNC_PRINTF_A_FORMAT is expanded from...
configure.in:937: the top level])
m4trace:configure.in:937: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT])
m4trace:configure.in:937: -1- m4_pattern_allow([^HAVE_PRINTF_A_FORMAT$])
m4trace:configure.in:940: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1294: BASH_SYS_REINSTALL_SIGHANDLERS is expanded from...
configure.in:940: the top level])
m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS])
m4trace:configure.in:940: -1- m4_pattern_allow([^MUST_REINSTALL_SIGHANDLERS$])
m4trace:configure.in:941: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1353: BASH_SYS_JOB_CONTROL_MISSING is expanded from...
configure.in:941: the top level])
m4trace:configure.in:941: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING])
m4trace:configure.in:941: -1- m4_pattern_allow([^JOB_CONTROL_MISSING$])
m4trace:configure.in:942: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1412: BASH_SYS_NAMED_PIPES is expanded from...
configure.in:942: the top level])
m4trace:configure.in:942: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING])
@@ -2304,33 +2318,33 @@ m4trace:configure.in:945: -1- m4_pattern_allow([^GWINSZ_IN_SYS_IOCTL$])
m4trace:configure.in:945: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires <sys/ioctl.h>. */
#undef GWINSZ_IN_SYS_IOCTL])
m4trace:configure.in:946: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1493: BASH_HAVE_TIOCSTAT is expanded from...
configure.in:946: the top level])
m4trace:configure.in:946: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL])
m4trace:configure.in:946: -1- m4_pattern_allow([^TIOCSTAT_IN_SYS_IOCTL$])
m4trace:configure.in:947: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1505: BASH_HAVE_FIONREAD is expanded from...
configure.in:947: the top level])
m4trace:configure.in:947: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL])
m4trace:configure.in:947: -1- m4_pattern_allow([^FIONREAD_IN_SYS_IOCTL$])
m4trace:configure.in:949: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1921: BASH_CHECK_WCONTINUED is expanded from...
configure.in:949: the top level])
m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN])
m4trace:configure.in:949: -1- m4_pattern_allow([^WCONTINUED_BROKEN$])
m4trace:configure.in:952: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1523: BASH_CHECK_SPEED_T is expanded from...
configure.in:952: the top level])
m4trace:configure.in:952: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES])
@@ -2338,9 +2352,9 @@ m4trace:configure.in:952: -1- m4_pattern_allow([^SPEED_T_IN_SYS_TYPES$])
m4trace:configure.in:953: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS])
m4trace:configure.in:953: -1- m4_pattern_allow([^HAVE_GETPW_DECLS$])
m4trace:configure.in:954: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2591: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2592: AC_TRY_RUN is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1650: BASH_CHECK_RTSIGS is expanded from...
configure.in:954: the top level])
m4trace:configure.in:954: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS])
@@ -2349,18 +2363,18 @@ m4trace:configure.in:955: -1- AC_SUBST([SIGLIST_O])
m4trace:configure.in:955: -1- AC_SUBST_TRACE([SIGLIST_O])
m4trace:configure.in:955: -1- m4_pattern_allow([^SIGLIST_O$])
m4trace:configure.in:959: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1602: BASH_CHECK_KERNEL_RLIMIT is expanded from...
configure.in:959: the top level])
m4trace:configure.in:959: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
You should run autoupdate.], [../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:2461: AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2469: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:508: AS_IF is expanded from...
../../lib/autoconf/general.m4:1973: AC_CACHE_VAL is expanded from...
You should run autoupdate.], [../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:2462: AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2470: AC_TRY_COMPILE is expanded from...
../../lib/m4sugar/m4sh.m4:505: AS_IF is expanded from...
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
aclocal.m4:1602: BASH_CHECK_KERNEL_RLIMIT is expanded from...
configure.in:959: the top level])
m4trace:configure.in:959: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL])
+9 -2
View File
@@ -295,6 +295,13 @@ declare_internal (list, local_var)
subscript_start = (char *)NULL;
if (t = strchr (name, '[')) /* ] */
{
/* If offset != 0 we have already validated any array reference */
if (offset == 0 && valid_array_reference (name) == 0)
{
sh_invalidid (name);
assign_error++;
NEXT_VARIABLE ();
}
subscript_start = t;
*t = '\0';
making_array_special = 1;
@@ -484,7 +491,7 @@ declare_internal (list, local_var)
}
/* declare -a name[[n]] or declare name[n] makes name an indexed
array variable. */
else if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0)
else if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0 && assoc_p (var) == 0)
var = convert_var_to_array (var);
#endif /* ARRAY_VARS */
@@ -496,7 +503,7 @@ declare_internal (list, local_var)
assign_array_var_from_string (var, value, aflags);
else if (simple_array_assign && subscript_start)
{
/* declare [-a] name[N]=value */
/* declare [-aA] name[N]=value */
*subscript_start = '['; /* ] */
var = assign_array_element (name, value, 0); /* XXX - not aflags */
*subscript_start = '\0';
Vendored
+463 -377
View File
File diff suppressed because it is too large Load Diff
+250 -240
View File
@@ -738,8 +738,8 @@ PPAARRAAMMEETTEERRSS
$${{BBAASSHH__LLIINNEENNOO[[_$_i]]}} is the line number in the source file where
$${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called (or $${{BBAASSHH__LLIINNEENNOO[[_$_i_-_1]]}} if refer-
enced within another shell function). The corresponding source
file name is $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}}.. UUssee LLIINNEENNOO ttoo oobbttaaiinn tthhee ccuurr--
rreenntt lliinnee nnuummbbeerr..
file name is $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}}. Use LLIINNEENNOO to obtain the cur-
rent line number.
BBAASSHH__RREEMMAATTCCHH
An array variable whose members are assigned by the ==~~ binary
operator to the [[[[ conditional command. The element with index
@@ -805,18 +805,18 @@ PPAARRAAMMEETTEERRSS
below).
CCOOMMPP__WWOORRDDBBRREEAAKKSS
The set of characters that the Readline library treats as word
The set of characters that the rreeaaddlliinnee library treats as word
separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS
is unset, it loses its special properties, even if it is subse-
quently reset.
CCOOMMPP__WWOORRDDSS
An array variable (see AArrrraayyss below) consisting of the individ-
ual words in the current command line. The words are split on
shell metacharacters as the shell parser would separate them.
This variable is available only in shell functions invoked by
the programmable completion facilities (see PPrrooggrraammmmaabbllee CCoommppllee--
ttiioonn below).
ual words in the current command line. The line is split into
words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as
described above. This variable is available only in shell func-
tions invoked by the programmable completion facilities (see
PPrrooggrraammmmaabbllee CCoommpplleettiioonn below).
DDIIRRSSTTAACCKK
An array variable (see AArrrraayyss below) containing the current con-
@@ -1743,8 +1743,8 @@ RREEDDIIRREECCTTIIOONN
ls 2>>&&1 >> dirlist
directs only the standard output to file _d_i_r_l_i_s_t, because the standard
error was duplicated as standard output before the standard output was
redirected to _d_i_r_l_i_s_t.
error was duplicated from the standard output before the standard out-
put was redirected to _d_i_r_l_i_s_t.
BBaasshh handles several filenames specially when they are used in redirec-
tions, as described in the following table:
@@ -3574,8 +3574,12 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Unless otherwise noted, each builtin command documented in this section
as accepting options preceded by -- accepts ---- to signify the end of the
options. For example, the ::, ttrruuee, ffaallssee, and tteesstt builtins do not
accept options.
options. The ::, ttrruuee, ffaallssee, and tteesstt builtins do not accept options
and do not treat ---- specially. The eexxiitt, llooggoouutt, bbrreeaakk, ccoonnttiinnuuee, lleett,
and sshhiifftt builtins accept and process arguments beginning with -- with-
out requiring ----. Other builtins that accept arguments but are not
specified as accepting options interpret arguments beginning with -- as
invalid options and require ---- to prevent this interpretation.
:: [_a_r_g_u_m_e_n_t_s]
No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s
and performing any specified redirections. A zero exit code is
@@ -4185,7 +4189,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
_p_a_t_t_e_r_n; otherwise help for all the builtins and shell control
structures is printed.
--dd Display a short description of each _p_a_t_t_e_r_n
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
format
--ss Display only a short usage synopsis for each _p_a_t_t_e_r_n
The return status is 0 unless no command matches _p_a_t_t_e_r_n.
@@ -4406,7 +4410,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
occurs while reading the name of the current directory or an
invalid option is supplied.
rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [-- _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt
rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt
_t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...]
One line is read from the standard input, or from the file
descriptor _f_d supplied as an argument to the --uu option, and the
@@ -4511,32 +4515,37 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--bb Report the status of terminated background jobs immedi-
ately, rather than before the next primary prompt. This
is effective only when job control is enabled.
--ee Exit immediately if a _s_i_m_p_l_e _c_o_m_m_a_n_d (see SSHHEELLLL GGRRAAMMMMAARR
--ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in
parentheses, or one of the commands executed as part of
a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR
above) exits with a non-zero status. The shell does not
exit if the command that fails is part of the command
list immediately following a wwhhiillee or uunnttiill keyword,
part of the test in an iiff statement, part of a command
executed in a &&&& or |||| list, any command in a pipeline
but the last, or if the command's return value is being
inverted via !!. Failing simple commands that are part
of shell functions or command lists enclosed in braces
or parentheses satisfying the above conditions do not
cause the shell to exit. A trap on EERRRR, if set, is exe-
cuted before the shell exits.
exit if the command that fails is part of the command
list immediately following a wwhhiillee or uunnttiill keyword,
part of the test following the iiff or eelliiff reserved
words, part of any command executed in a &&&& or |||| list
except the command following the final &&&& or ||||, any
command in a pipeline but the last, or if the command's
return value is being inverted with !!. A trap on EERRRR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
above), and may cause subshells to exit before executing
all the commands in the subshell.
--ff Disable pathname expansion.
--hh Remember the location of commands as they are looked up
--hh Remember the location of commands as they are looked up
for execution. This is enabled by default.
--kk All arguments in the form of assignment statements are
placed in the environment for a command, not just those
--kk All arguments in the form of assignment statements are
placed in the environment for a command, not just those
that precede the command name.
--mm Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
cesses run in a separate process group and a line con-
taining their exit status is printed upon their comple-
--mm Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
cesses run in a separate process group and a line con-
taining their exit status is printed upon their comple-
tion.
--nn Read commands but do not execute them. This may be used
to check a shell script for syntax errors. This is
to check a shell script for syntax errors. This is
ignored by interactive shells.
--oo _o_p_t_i_o_n_-_n_a_m_e
The _o_p_t_i_o_n_-_n_a_m_e can be one of the following:
@@ -4544,10 +4553,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Same as --aa.
bbrraacceeeexxppaanndd
Same as --BB.
eemmaaccss Use an emacs-style command line editing inter-
eemmaaccss Use an emacs-style command line editing inter-
face. This is enabled by default when the shell
is interactive, unless the shell is started with
the ----nnooeeddiittiinngg option. This also affects the
the ----nnooeeddiittiinngg option. This also affects the
editing interface used for rreeaadd --ee.
eerrrrttrraaccee
Same as --EE.
@@ -4561,8 +4570,8 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
HHIISSTTOORRYY. This option is on by default in inter-
active shells.
iiggnnoorreeeeooff
The effect is as if the shell command
``IGNOREEOF=10'' had been executed (see SShheellll
The effect is as if the shell command
``IGNOREEOF=10'' had been executed (see SShheellll
VVaarriiaabblleess above).
kkeeyywwoorrdd Same as --kk.
mmoonniittoorr Same as --mm.
@@ -4577,213 +4586,213 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
pphhyyssiiccaall
Same as --PP.
ppiippeeffaaiill
If set, the return value of a pipeline is the
value of the last (rightmost) command to exit
with a non-zero status, or zero if all commands
in the pipeline exit successfully. This option
If set, the return value of a pipeline is the
value of the last (rightmost) command to exit
with a non-zero status, or zero if all commands
in the pipeline exit successfully. This option
is disabled by default.
ppoossiixx Change the behavior of bbaasshh where the default
operation differs from the POSIX standard to
ppoossiixx Change the behavior of bbaasshh where the default
operation differs from the POSIX standard to
match the standard (_p_o_s_i_x _m_o_d_e).
pprriivviilleeggeedd
Same as --pp.
vveerrbboossee Same as --vv.
vvii Use a vi-style command line editing interface.
vvii Use a vi-style command line editing interface.
This also affects the editing interface used for
rreeaadd --ee.
xxttrraaccee Same as --xx.
If --oo is supplied with no _o_p_t_i_o_n_-_n_a_m_e, the values of the
current options are printed. If ++oo is supplied with no
_o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
current option settings is displayed on the standard
current options are printed. If ++oo is supplied with no
_o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
current option settings is displayed on the standard
output.
--pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
$$BBAASSHH__EENNVV files are not processed, shell functions are
not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they appear in the
environment, are ignored. If the shell is started with
--pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
$$BBAASSHH__EENNVV files are not processed, shell functions are
not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they appear in the
environment, are ignored. If the shell is started with
the effective user (group) id not equal to the real user
(group) id, and the --pp option is not supplied, these
actions are taken and the effective user id is set to
the real user id. If the --pp option is supplied at
startup, the effective user id is not reset. Turning
this option off causes the effective user and group ids
(group) id, and the --pp option is not supplied, these
actions are taken and the effective user id is set to
the real user id. If the --pp option is supplied at
startup, the effective user id is not reset. Turning
this option off causes the effective user and group ids
to be set to the real user and group ids.
--tt Exit after reading and executing one command.
--uu Treat unset variables as an error when performing param-
eter expansion. If expansion is attempted on an unset
eter expansion. If expansion is attempted on an unset
variable, the shell prints an error message, and, if not
interactive, exits with a non-zero status.
--vv Print shell input lines as they are read.
--xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
--xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
command, sseelleecctt command, or arithmetic ffoorr command, dis-
play the expanded value of PPSS44, followed by the command
play the expanded value of PPSS44, followed by the command
and its expanded arguments or associated word list.
--BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
--BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
above). This is on by default.
--CC If set, bbaasshh does not overwrite an existing file with
the >>, >>&&, and <<>> redirection operators. This may be
--CC If set, bbaasshh does not overwrite an existing file with
the >>, >>&&, and <<>> redirection operators. This may be
overridden when creating output files by using the redi-
rection operator >>|| instead of >>.
--EE If set, any trap on EERRRR is inherited by shell functions,
command substitutions, and commands executed in a sub-
shell environment. The EERRRR trap is normally not inher-
command substitutions, and commands executed in a sub-
shell environment. The EERRRR trap is normally not inher-
ited in such cases.
--HH Enable !! style history substitution. This option is on
by default when the shell is interactive.
--PP If set, the shell does not follow symbolic links when
executing commands such as ccdd that change the current
--PP If set, the shell does not follow symbolic links when
executing commands such as ccdd that change the current
working directory. It uses the physical directory
structure instead. By default, bbaasshh follows the logical
chain of directories when performing commands which
chain of directories when performing commands which
change the current directory.
--TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
shell functions, command substitutions, and commands
executed in a subshell environment. The DDEEBBUUGG and
--TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
shell functions, command substitutions, and commands
executed in a subshell environment. The DDEEBBUUGG and
RREETTUURRNN traps are normally not inherited in such cases.
---- If no arguments follow this option, then the positional
---- If no arguments follow this option, then the positional
parameters are unset. Otherwise, the positional parame-
ters are set to the _a_r_gs, even if some of them begin
ters are set to the _a_r_gs, even if some of them begin
with a --.
-- Signal the end of options, cause all remaining _a_r_gs to
-- Signal the end of options, cause all remaining _a_r_gs to
be assigned to the positional parameters. The --xx and --vv
options are turned off. If there are no _a_r_gs, the posi-
tional parameters remain unchanged.
The options are off by default unless otherwise noted. Using +
rather than - causes these options to be turned off. The
options can also be specified as arguments to an invocation of
the shell. The current set of options may be found in $$--. The
The options are off by default unless otherwise noted. Using +
rather than - causes these options to be turned off. The
options can also be specified as arguments to an invocation of
the shell. The current set of options may be found in $$--. The
return status is always true unless an invalid option is encoun-
tered.
sshhiifftt [_n]
The positional parameters from _n+1 ... are renamed to $$11 ........
Parameters represented by the numbers $$## down to $$##-_n+1 are
unset. _n must be a non-negative number less than or equal to
$$##. If _n is 0, no parameters are changed. If _n is not given,
it is assumed to be 1. If _n is greater than $$##, the positional
parameters are not changed. The return status is greater than
The positional parameters from _n+1 ... are renamed to $$11 ........
Parameters represented by the numbers $$## down to $$##-_n+1 are
unset. _n must be a non-negative number less than or equal to
$$##. If _n is 0, no parameters are changed. If _n is not given,
it is assumed to be 1. If _n is greater than $$##, the positional
parameters are not changed. The return status is greater than
zero if _n is greater than $$## or less than zero; otherwise 0.
sshhoopptt [--ppqqssuu] [--oo] [_o_p_t_n_a_m_e ...]
Toggle the values of variables controlling optional shell behav-
ior. With no options, or with the --pp option, a list of all set-
table options is displayed, with an indication of whether or not
each is set. The --pp option causes output to be displayed in a
form that may be reused as input. Other options have the fol-
each is set. The --pp option causes output to be displayed in a
form that may be reused as input. Other options have the fol-
lowing meanings:
--ss Enable (set) each _o_p_t_n_a_m_e.
--uu Disable (unset) each _o_p_t_n_a_m_e.
--qq Suppresses normal output (quiet mode); the return status
--qq Suppresses normal output (quiet mode); the return status
indicates whether the _o_p_t_n_a_m_e is set or unset. If multi-
ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
wise.
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
the --oo option to the sseett builtin.
If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
play is limited to those options which are set or unset, respec-
tively. Unless otherwise noted, the sshhoopptt options are disabled
tively. Unless otherwise noted, the sshhoopptt options are disabled
(unset) by default.
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
options, the return status is zero unless an _o_p_t_n_a_m_e is not a
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
options, the return status is zero unless an _o_p_t_n_a_m_e is not a
valid shell option.
The list of sshhoopptt options is:
aauuttooccdd If set, a command name that is the name of a directory
is executed as if it were the argument to the ccdd com-
aauuttooccdd If set, a command name that is the name of a directory
is executed as if it were the argument to the ccdd com-
mand. This option is only used by interactive shells.
ccddaabbllee__vvaarrss
If set, an argument to the ccdd builtin command that is
not a directory is assumed to be the name of a variable
If set, an argument to the ccdd builtin command that is
not a directory is assumed to be the name of a variable
whose value is the directory to change to.
ccddssppeellll If set, minor errors in the spelling of a directory com-
ponent in a ccdd command will be corrected. The errors
ponent in a ccdd command will be corrected. The errors
checked for are transposed characters, a missing charac-
ter, and one character too many. If a correction is
found, the corrected file name is printed, and the com-
mand proceeds. This option is only used by interactive
ter, and one character too many. If a correction is
found, the corrected file name is printed, and the com-
mand proceeds. This option is only used by interactive
shells.
cchheecckkhhaasshh
If set, bbaasshh checks that a command found in the hash ta-
ble exists before trying to execute it. If a hashed
command no longer exists, a normal path search is per-
ble exists before trying to execute it. If a hashed
command no longer exists, a normal path search is per-
formed.
cchheecckkjjoobbss
If set, bbaasshh lists the status of any stopped and running
jobs before exiting an interactive shell. If any jobs
jobs before exiting an interactive shell. If any jobs
are running, this causes the exit to be deferred until a
second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones
second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones
exiting if any jobs are stopped.
cchheecckkwwiinnssiizzee
If set, bbaasshh checks the window size after each command
and, if necessary, updates the values of LLIINNEESS and CCOOLL--
If set, bbaasshh checks the window size after each command
and, if necessary, updates the values of LLIINNEESS and CCOOLL--
UUMMNNSS.
ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
line command in the same history entry. This allows
ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
line command in the same history entry. This allows
easy re-editing of multi-line commands.
ccoommppaatt3311
If set, bbaasshh changes its behavior to that of version 3.1
with respect to quoted arguments to the conditional com-
mand's =~ operator.
ddiirrssppeellll
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
tially supplied does not exist.
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion.
eexxeeccffaaiill
If set, a non-interactive shell will not exit if it can-
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
exit if eexxeecc fails.
eexxppaanndd__aalliiaasseess
If set, aliases are expanded as described above under
If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
If set, behavior intended for use by debuggers is
If set, behavior intended for use by debuggers is
enabled:
11.. The --FF option to the ddeeccllaarree builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
not executed.
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), a call to
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), a call to
rreettuurrnn is simulated.
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions above.
55.. Function tracing is enabled: command substitu-
55.. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
_c_o_m_m_a_n_d )) inherit the EERRRROORR trap.
eexxttgglloobb If set, the extended pattern matching features described
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
eexxttqquuoottee
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
quotes. This option is enabled by default.
ffaaiillgglloobb
If set, patterns which fail to match filenames during
If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
ffoorrccee__ffiiggnnoorree
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a
description of FFIIGGNNOORREE. This option is enabled by
description of FFIIGGNNOORREE. This option is enabled by
default.
gglloobbssttaarr
If set, the pattern **** used in a filename expansion con-
@@ -4794,58 +4803,58 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
If set, shell error messages are written in the standard
GNU error message format.
hhiissttaappppeenndd
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
exits, rather than overwriting the file.
hhiissttrreeeeddiitt
If set, and rreeaaddlliinnee is being used, a user is given the
If set, and rreeaaddlliinnee is being used, a user is given the
opportunity to re-edit a failed history substitution.
hhiissttvveerriiffyy
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
into the rreeaaddlliinnee editing buffer, allowing further modi-
fication.
hhoossttccoommpplleettee
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
hhuuppoonneexxiitt
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
active login shell exits.
iinntteerraaccttiivvee__ccoommmmeennttss
If set, allow a word beginning with ## to cause that word
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
option is enabled by default.
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
llooggiinn__sshheellll
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN above). The value may not be
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN above). The value may not be
changed.
mmaaiillwwaarrnn
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
played.
nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn
If set, and rreeaaddlliinnee is being used, bbaasshh will not
If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt to search the PPAATTHH for possible completions when
completion is attempted on an empty line.
nnooccaasseegglloobb
If set, bbaasshh matches filenames in a case-insensitive
If set, bbaasshh matches filenames in a case-insensitive
fashion when performing pathname expansion (see PPaatthhnnaammee
EExxppaannssiioonn above).
nnooccaasseemmaattcchh
If set, bbaasshh matches patterns in a case-insensitive
If set, bbaasshh matches patterns in a case-insensitive
fashion when performing matching while executing ccaassee or
[[[[ conditional commands.
nnuullllgglloobb
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
rather than themselves.
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
@@ -4853,47 +4862,47 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled by default.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
above. This option is enabled by default.
rreessttrriicctteedd__sshheellll
The shell sets this option if it is started in
The shell sets this option if it is started in
restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value
may not be changed. This is not reset when the startup
files are executed, allowing the startup files to dis-
may not be changed. This is not reset when the startup
files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
sshhiifftt__vveerrbboossee
If set, the sshhiifftt builtin prints an error message when
If set, the sshhiifftt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
ssoouurrcceeppaatthh
If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
find the directory containing the file supplied as an
find the directory containing the file supplied as an
argument. This option is enabled by default.
xxppgg__eecchhoo
If set, the eecchhoo builtin expands backslash-escape
If set, the eecchhoo builtin expands backslash-escape
sequences by default.
ssuussppeenndd [--ff]
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell cannot be suspended; the --ff option can be
used to override this and force the suspension. The return sta-
tus is 0 unless the shell is a login shell and --ff is not sup-
tus is 0 unless the shell is a login shell and --ff is not sup-
plied, or if job control is not enabled.
tteesstt _e_x_p_r
[[ _e_x_p_r ]]
Return a status of 0 or 1 depending on the evaluation of the
conditional expression _e_x_p_r. Each operator and operand must be
a separate argument. Expressions are composed of the primaries
described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
Return a status of 0 or 1 depending on the evaluation of the
conditional expression _e_x_p_r. Each operator and operand must be
a separate argument. Expressions are composed of the primaries
described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
accept any options, nor does it accept and ignore an argument of
---- as signifying the end of options.
Expressions may be combined using the following operators,
Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
depends on the number of arguments; see below.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
Returns the value of _e_x_p_r. This may be used to override
Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -4910,108 +4919,108 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
2 arguments
If the first argument is !!, the expression is true if and
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
If the second argument is one of the binary conditional
If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (( and the third argument is exactly )), the result
is the one-argument test of the second argument. Other-
is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !!, the result is the negation of
the three-argument expression composed of the remaining
the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
uated according to precedence using the rules listed
uated according to precedence using the rules listed
above.
5 or more arguments
The expression is parsed and evaluated according to
The expression is parsed and evaluated according to
precedence using the rules listed above.
ttiimmeess Print the accumulated user and system times for the shell and
ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c
is EEXXIITT (0) the command _a_r_g is executed on exit from the shell.
If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c
is EEXXIITT (0) the command _a_r_g is executed on exit from the shell.
If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every
_s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, _s_e_l_e_c_t command, every
arithmetic _f_o_r command, and before the first command executes in
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the
description of the eexxttddeebbuugg option to the sshhoopptt builtin for
details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR,
the command _a_r_g is executed whenever a simple command has a
non-zero exit status, subject to the following conditions. The
EERRRR trap is not executed if the failed command is part of the
command list immediately following a wwhhiillee or uunnttiill keyword,
part of the test in an _i_f statement, part of a command executed
in a &&&& or |||| list, or if the command's return value is being
inverted via !!. These are the same conditions obeyed by the
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the
description of the eexxttddeebbuugg option to the sshhoopptt builtin for
details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR,
the command _a_r_g is executed whenever a simple command has a
non-zero exit status, subject to the following conditions. The
EERRRR trap is not executed if the failed command is part of the
command list immediately following a wwhhiillee or uunnttiill keyword,
part of the test in an _i_f statement, part of a command executed
in a &&&& or |||| list, or if the command's return value is being
inverted via !!. These are the same conditions obeyed by the
eerrrreexxiitt option. If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is exe-
cuted each time a shell function or a script executed with the ..
or ssoouurrccee builtins finishes executing. Signals ignored upon
entry to the shell cannot be trapped or reset. Trapped signals
or ssoouurrccee builtins finishes executing. Signals ignored upon
entry to the shell cannot be trapped or reset. Trapped signals
that are not being ignored are reset to their original values in
a child process when it is created. The return status is false
a child process when it is created. The return status is false
if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true.
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
With no options, indicate how each _n_a_m_e would be interpreted if
With no options, indicate how each _n_a_m_e would be interpreted if
used as a command name. If the --tt option is used, ttyyppee prints a
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
name of the disk file that would be executed if _n_a_m_e were speci-
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
hashed, --pp and --PP print the hashed value, not necessarily the
hashed, --pp and --PP print the hashed value, not necessarily the
file that appears first in PPAATTHH. If the --aa option is used, ttyyppee
prints all of the places that contain an executable named _n_a_m_e.
This includes aliases and functions, if and only if the --pp
option is not also used. The table of hashed commands is not
consulted when using --aa. The --ff option suppresses shell func-
tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
prints all of the places that contain an executable named _n_a_m_e.
This includes aliases and functions, if and only if the --pp
option is not also used. The table of hashed commands is not
consulted when using --aa. The --ff option suppresses shell func-
tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
all of the arguments are found, false if any are not found.
uulliimmiitt [--HHSSTTaabbccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]]
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
The --HH and --SS options specify that the hard or soft limit is set
for the given resource. A hard limit cannot be increased by a
non-root user once it is set; a soft limit may be increased up
to the value of the hard limit. If neither --HH nor --SS is speci-
for the given resource. A hard limit cannot be increased by a
non-root user once it is set; a soft limit may be increased up
to the value of the hard limit. If neither --HH nor --SS is speci-
fied, both the soft and hard limits are set. The value of _l_i_m_i_t
can be a number in the unit specified for the resource or one of
the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the
current hard limit, the current soft limit, and no limit,
respectively. If _l_i_m_i_t is omitted, the current value of the
soft limit of the resource is printed, unless the --HH option is
current hard limit, the current soft limit, and no limit,
respectively. If _l_i_m_i_t is omitted, the current value of the
soft limit of the resource is printed, unless the --HH option is
given. When more than one resource is specified, the limit name
and unit are printed before the value. Other options are inter-
preted as follows:
@@ -5020,11 +5029,12 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--cc The maximum size of core files created
--dd The maximum size of a process's data segment
--ee The maximum scheduling priority ("nice")
--ff The maximum size of files written by the shell and its
--ff The maximum size of files written by the shell and its
children
--ii The maximum number of pending signals
--ll The maximum size that may be locked into memory
--mm The maximum resident set size
--mm The maximum resident set size (many systems do not honor
this limit)
--nn The maximum number of open file descriptors (most systems
do not allow this value to be set)
--pp The pipe size in 512-byte blocks (this may not be set)
@@ -5163,7 +5173,7 @@ AAUUTTHHOORRSS
bfox@gnu.org
Chet Ramey, Case Western Reserve University
chet@po.cwru.edu
chet.ramey@case.edu
BBUUGG RREEPPOORRTTSS
If you find a bug in bbaasshh,, you should report it. But first, you should
@@ -5214,4 +5224,4 @@ BBUUGGSS
GNU Bash-4.0 2008 December 29 BASH(1)
GNU Bash-4.0 2009 February 7 BASH(1)
+9 -3
View File
@@ -6218,8 +6218,14 @@ section as accepting options preceded by
accepts
.B \-\-
to signify the end of the options.
For example, the \fB:\fP, \fBtrue\fP, \fBfalse\fP, and \fBtest\fP builtins
do not accept options.
The \fB:\fP, \fBtrue\fP, \fBfalse\fP, and \fBtest\fP builtins
do not accept options and do not treat \fB\-\-\fP specially.
The \fBexit\fP, \fBlogout\fP, \fBbreak\fP, \fBcontinue\fP, \fBlet\fP,
and \fBshift\fP builtins accept and process arguments beginning with
\fB\-\fP without requiring \fB\-\-\fP.
Other builtins that accept arguments but are not specified as accepting
options interpret arguments beginning with \fB\-\fP as invalid options and
require \fB\-\-\fP to prevent this interpretation.
.sp .5
.PD 0
.TP
@@ -7407,7 +7413,7 @@ is printed.
.B \-d
Display a short description of each \fIpattern\fP
.TP
.B \ -m
.B \-m
Display the description of each \fIpattern\fP in a manpage-like format
.TP
.B \-s
+38 -23
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2008 December 29<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2009 February 7<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -1768,8 +1768,8 @@ corresponding to each member of <B>FUNCNAME</B>.
file where <B>${FUNCNAME[</B><I>$i</I><B>]}</B> was called
(or <B>${BASH_LINENO[</B><I>$i-1</I><B>]}</B> if referenced within another
shell function).
The corresponding source file name is <B>${BASH_SOURCE[</B><I>$i</I><B>]}.
Use LINENO</B> to obtain the current line number.
The corresponding source file name is <B>${BASH_SOURCE[</B><I>$i</I><B>]}</B>.
Use <B>LINENO</B> to obtain the current line number.
<DT><B>BASH_REMATCH</B>
<DD>
@@ -1885,7 +1885,7 @@ below).
<DT><B>COMP_WORDBREAKS</B>
<DD>
The set of characters that the Readline library treats as word
The set of characters that the <B>readline</B> library treats as word
separators when performing word completion.
If
<FONT SIZE=-1><B>COMP_WORDBREAKS</B>
@@ -1898,8 +1898,8 @@ subsequently reset.
<DD>
An array variable (see <B>Arrays</B> below) consisting of the individual
words in the current command line.
The words are split on shell metacharacters as the shell parser would
separate them.
The line is split into words as <B>readline</B> would split it, using
<B>COMP_WORDBREAKS</B> as described above.
This variable is available only in shell functions invoked by the
programmable completion facilities (see <B>Programmable Completion</B>
below).
@@ -4060,7 +4060,7 @@ ls 2<B>&gt;&amp;</B>1 <B>&gt;</B> dirlist
directs only the standard output to file
<I>dirlist</I>,
because the standard error was duplicated as standard output
because the standard error was duplicated from the standard output
before the standard output was redirected to
<I>dirlist</I>.
@@ -8060,8 +8060,14 @@ accepts
<B>--</B>
to signify the end of the options.
For example, the <B>:</B>, <B>true</B>, <B>false</B>, and <B>test</B> builtins
do not accept options.
The <B>:</B>, <B>true</B>, <B>false</B>, and <B>test</B> builtins
do not accept options and do not treat <B>--</B> specially.
The <B>exit</B>, <B>logout</B>, <B>break</B>, <B>continue</B>, <B>let</B>,
and <B>shift</B> builtins accept and process arguments beginning with
<B>-</B> without requiring <B>--</B>.
Other builtins that accept arguments but are not specified as accepting
options interpret arguments beginning with <B>-</B> as invalid options and
require <B>--</B> to prevent this interpretation.
<P>
<DL COMPACT>
@@ -9516,7 +9522,7 @@ is printed.
<DD>
Display a short description of each <I>pattern</I>
<DT><B>&nbsp;-m</B>
<DT><B>-m</B>
<DD>
Display the description of each <I>pattern</I> in a manpage-like format
@@ -10054,7 +10060,7 @@ option is used, the pathname printed may contain symbolic links.
The return status is 0 unless an error occurs while
reading the name of the current directory or an
invalid option is supplied.
<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [<B>-</B> <I>text</I>] [<B>-n</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [<B>-i</B> <I>text</I>] [<B>-n</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
One line is read from the standard input, or from the file descriptor
<I>fd</I> supplied as an argument to the <B>-u</B> option, and the first word
is assigned to the first
@@ -10281,7 +10287,10 @@ effective only when job control is enabled.
<DT><B>-e</B>
<DD>
Exit immediately if a <I>simple command</I> (see
Exit immediately if a <I>pipeline</I> (which may consist of a single
<I>simple command</I>), a <I>subshell</I> command enclosed in parentheses,
or one of the commands executed as part of a command list enclosed
by braces (see
<FONT SIZE=-1><B>SHELL GRAMMAR</B>
</FONT>
@@ -10294,25 +10303,31 @@ or
<B>until</B>
keyword,
part of the test in an
part of the test following the
<B>if</B>
statement, part of a command executed in a
or
<B>elif</B>
reserved words, part of any command executed in a
<B>&amp;&amp;</B>
or
<B>||</B>
list,
list except the command following the final <B>&amp;&amp;</B> or <B>||</B>,
any command in a pipeline but the last,
or if the command's return value is
being inverted via
being inverted with
<B>!</B>.
Failing simple commands that are part of shell functions or command lists
enclosed in braces or parentheses satisfying the above conditions do not
cause the shell to exit.
A trap on <B>ERR</B>, if set, is executed before the shell exits.
This option applies to the shell environment and each subshell environment
separately (see
<B>COMMAND EXECUTION ENVIRONMENT</B>
above), and may cause
subshells to exit before executing all the commands in the subshell.
<DT><B>-f</B>
<DD>
@@ -11591,7 +11606,7 @@ The maximum size that may be locked into memory
<DT><B>-m</B>
<DD>
The maximum resident set size
The maximum resident set size (many systems do not honor this limit)
<DT><B>-n</B>
<DD>
@@ -11957,7 +11972,7 @@ Brian Fox, Free Software Foundation
Chet Ramey, Case Western Reserve University
<BR>
<A HREF="mailto:chet@po.cwru.edu">chet@po.cwru.edu</A>
<A HREF="mailto:chet.ramey@case.edu">chet.ramey@case.edu</A>
<A NAME="lbDG">&nbsp;</A>
<H3>BUG REPORTS</H3>
@@ -12055,7 +12070,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash-4.0<TH ALIGN=CENTER width=33%>2008 December 29<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash-4.0<TH ALIGN=CENTER width=33%>2009 February 7<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -12161,6 +12176,6 @@ There may be only one active coprocess at a time.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
Time: 05 February 2009 08:05:34 EST
Time: 23 February 2009 11:56:09 EST
</BODY>
</HTML>
+1320 -1307
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -149,13 +149,13 @@
@xrdef{Bash Builtins-pg}{41}
@xrdef{Bash Builtins-snt}{Section@tie 4.2}
@xrdef{Modifying Shell Behavior-title}{Modifying Shell Behavior}
@xrdef{Modifying Shell Behavior-pg}{50}
@xrdef{Modifying Shell Behavior-pg}{51}
@xrdef{Modifying Shell Behavior-snt}{Section@tie 4.3}
@xrdef{The Set Builtin-title}{The Set Builtin}
@xrdef{The Set Builtin-pg}{51}
@xrdef{The Set Builtin-snt}{Section@tie 4.3.1}
@xrdef{The Shopt Builtin-title}{The Shopt Builtin}
@xrdef{The Shopt Builtin-pg}{54}
@xrdef{The Shopt Builtin-pg}{55}
@xrdef{The Shopt Builtin-snt}{Section@tie 4.3.2}
@xrdef{Special Builtins-title}{Special Builtins}
@xrdef{Special Builtins-pg}{59}
+2 -2
View File
@@ -6,7 +6,7 @@
\entry{eval}{36}{\code {eval}}
\entry{exec}{36}{\code {exec}}
\entry{exit}{36}{\code {exit}}
\entry{export}{36}{\code {export}}
\entry{export}{37}{\code {export}}
\entry{getopts}{37}{\code {getopts}}
\entry{hash}{37}{\code {hash}}
\entry{pwd}{38}{\code {pwd}}
@@ -21,7 +21,7 @@
\entry{unset}{41}{\code {unset}}
\entry{alias}{41}{\code {alias}}
\entry{bind}{41}{\code {bind}}
\entry{builtin}{42}{\code {builtin}}
\entry{builtin}{43}{\code {builtin}}
\entry{caller}{43}{\code {caller}}
\entry{command}{43}{\code {command}}
\entry{declare}{43}{\code {declare}}
+2 -2
View File
@@ -10,7 +10,7 @@
\entry {\code {bg}}{90}
\entry {\code {bind}}{41}
\entry {\code {break}}{35}
\entry {\code {builtin}}{42}
\entry {\code {builtin}}{43}
\initial {C}
\entry {\code {caller}}{43}
\entry {\code {cd}}{36}
@@ -29,7 +29,7 @@
\entry {\code {eval}}{36}
\entry {\code {exec}}{36}
\entry {\code {exit}}{36}
\entry {\code {export}}{36}
\entry {\code {export}}{37}
\initial {F}
\entry {\code {fc}}{122}
\entry {\code {fg}}{90}
BIN
View File
Binary file not shown.
+36 -21
View File
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on February, 5 2009 by texi2html 1.64 -->
<!-- Created on February, 23 2009 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -33,10 +33,10 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
<H1>Bash Reference Manual</H1></P><P>
This text is a brief description of the features that are present in
the Bash shell (version 4.0, 29 December 2008).
the Bash shell (version 4.0, 13 February 2009).
</P><P>
This is Edition 4.0, last updated 29 December 2008,
This is Edition 4.0, last updated 13 February 2009,
of <CITE>The GNU Bash Reference Manual</CITE>,
for <CODE>Bash</CODE>, Version 4.0.
</P><P>
@@ -2806,7 +2806,7 @@ the command
(file descriptor 2) to the file <VAR>dirlist</VAR>, while the command
<TABLE><tr><td>&nbsp;</td><td class=example><pre>ls 2&#62;&#38;1 &#62; <VAR>dirlist</VAR>
</pre></td></tr></table>directs only the standard output to file <VAR>dirlist</VAR>,
because the standard error was duplicated as standard output
because the standard error was made a copy of the standard output
before the standard output was redirected to <VAR>dirlist</VAR>.
</P><P>
@@ -3785,8 +3785,14 @@ Many of the builtins have been extended by POSIX or Bash.
Unless otherwise noted, each builtin command documented as accepting
options preceded by <SAMP>`-'</SAMP> accepts <SAMP>`--'</SAMP>
to signify the end of the options.
For example, the <CODE>:</CODE>, <CODE>true</CODE>, <CODE>false</CODE>, and <CODE>test</CODE>
builtins do not accept options.
The <CODE>:</CODE>, <CODE>true</CODE>, <CODE>false</CODE>, and <CODE>test</CODE>
builtins do not accept options and do not treat <SAMP>`--'</SAMP> specially.
The <CODE>exit</CODE>, <CODE>logout</CODE>, <CODE>break</CODE>, <CODE>continue</CODE>, <CODE>let</CODE>,
and <CODE>shift</CODE> builtins accept and process arguments beginning
with <SAMP>`-'</SAMP> without requiring <SAMP>`--'</SAMP>.
Other builtins that accept arguments but are not specified as accepting
options interpret arguments beginning with <SAMP>`-'</SAMP> as invalid options and
require <SAMP>`--'</SAMP> to prevent this interpretation.
</P><P>
<A NAME="Bourne Shell Builtins"></A>
@@ -4215,7 +4221,7 @@ is executed whenever a simple command has a non-zero exit status,
subject to the following conditions.
The <CODE>ERR</CODE> trap is not executed if the failed command is part of the
command list immediately following an <CODE>until</CODE> or <CODE>while</CODE> keyword,
part of the test in an <CODE>if</CODE> statement,
part of the test following the <CODE>if</CODE> or <CODE>elif</CODE> reserved words,
part of a command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||</CODE> list,
or if the command's return
status is being inverted using <CODE>!</CODE>.
@@ -4994,11 +5000,12 @@ option is given, it is interpreted as follows:
<P>
<DT><CODE>-m</CODE>
<DD>The maximum resident set size.
<DD>The maximum resident set size (many systems do not honor this limit).
<P>
<DT><CODE>-n</CODE>
<DD>The maximum number of open file descriptors.
<DD>The maximum number of open file descriptors (most systems do not
allow this value to be set).
<P>
<DT><CODE>-p</CODE>
@@ -5151,19 +5158,27 @@ immediately, rather than before printing the next primary prompt.
<P>
<DT><CODE>-e</CODE>
<DD>Exit immediately if a simple command (see section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>) exits
with a non-zero status, unless the command that fails is part of the
<DD>Exit immediately if a pipeline (see section <A HREF="bashref.html#SEC17">3.2.2 Pipelines</A>), which may consist
of a single simple command (see section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>),
a subshell command enclosed in parentheses (see section <A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A>),
or one of the commands executed as part of a command list enclosed
by braces (see section <A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A>)
returns a non-zero status.
The shell does not exit if the command that fails is part of the
command list immediately following a <CODE>while</CODE> or <CODE>until</CODE> keyword,
part of the test in an <CODE>if</CODE> statement,
part of a command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||b</CODE> list,
part of any command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||</CODE> list except
the command following the final <CODE>&#38;&#38;</CODE> or <CODE>||</CODE>,
any command in a pipeline but the last,
or if the command's return status is being inverted using <CODE>!</CODE>.
Failing simple commands that are part of shell functions or command lists
enclosed in braces or parentheses satisfying the above conditions do not
cause the shell to exit.
or if the command's return status is being inverted with <CODE>!</CODE>.
A trap on <CODE>ERR</CODE>, if set, is executed before the shell exits.
<P>
This option applies to the shell environment and each subshell environment
separately (see section <A HREF="bashref.html#SEC53">3.7.3 Command Execution Environment</A>), and may cause
subshells to exit before executing all the commands in the subshell.
</P><P>
<DT><CODE>-f</CODE>
<DD>Disable file name generation (globbing).
<P>
@@ -6246,8 +6261,8 @@ even if it is subsequently reset.
<DD><A NAME="IDX177"></A>
An array variable consisting of the individual
words in the current command line.
The words are split on shell metacharacters as the shell parser would
separate them.
The line is split into words as Readline would split it, using
<CODE>COMP_WORDBREAKS</CODE> as described above.
This variable is available only in shell functions invoked by the
programmable completion facilities (see section <A HREF="bashref.html#SEC117">8.6 Programmable Completion</A>).
<P>
@@ -12894,7 +12909,7 @@ the template it provides for filing a bug report.
</P><P>
Please send all reports concerning this manual to
<A HREF="mailto:chet@po.CWRU.Edu">chet@po.CWRU.Edu</A>.
<A HREF="mailto:chet.ramey@case.edu">chet.ramey@case.edu</A>.
</P><P>
<A NAME="Major Differences From The Bourne Shell"></A>
@@ -15785,7 +15800,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated by <I>Chet Ramey</I> on <I>February, 5 2009</I>
This document was generated by <I>Chet Ramey</I> on <I>February, 23 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -15947,7 +15962,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
by <I>Chet Ramey</I> on <I>February, 5 2009</I>
by <I>Chet Ramey</I> on <I>February, 23 2009</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
+187 -171
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 4.13 from
/Users/chet/src/bash/src/doc/bashref.texi.
This text is a brief description of the features that are present in
the Bash shell (version 4.0, 29 December 2008).
the Bash shell (version 4.0, 13 February 2009).
This is Edition 4.0, last updated 29 December 2008, of `The GNU Bash
This is Edition 4.0, last updated 13 February 2009, of `The GNU Bash
Reference Manual', for `Bash', Version 4.0.
Copyright (C) 1988-2009 Free Software Foundation, Inc.
@@ -38,9 +38,9 @@ Bash Features
*************
This text is a brief description of the features that are present in
the Bash shell (version 4.0, 29 December 2008).
the Bash shell (version 4.0, 13 February 2009).
This is Edition 4.0, last updated 29 December 2008, of `The GNU Bash
This is Edition 4.0, last updated 13 February 2009, of `The GNU Bash
Reference Manual', for `Bash', Version 4.0.
Bash contains features that appear in other popular shells, and some
@@ -1826,8 +1826,8 @@ the command
(file descriptor 2) to the file DIRLIST, while the command
ls 2>&1 > DIRLIST
directs only the standard output to file DIRLIST, because the
standard error was duplicated as standard output before the standard
output was redirected to DIRLIST.
standard error was made a copy of the standard output before the
standard output was redirected to DIRLIST.
Bash handles several filenames specially when they are used in
redirections, as described in the following table:
@@ -2399,8 +2399,13 @@ Completion Builtins::).
Unless otherwise noted, each builtin command documented as accepting
options preceded by `-' accepts `--' to signify the end of the options.
For example, the `:', `true', `false', and `test' builtins do not
accept options.
The `:', `true', `false', and `test' builtins do not accept options and
do not treat `--' specially. The `exit', `logout', `break',
`continue', `let', and `shift' builtins accept and process arguments
beginning with `-' without requiring `--'. Other builtins that accept
arguments but are not specified as accepting options interpret
arguments beginning with `-' as invalid options and require `--' to
prevent this interpretation.

File: bashref.info, Node: Bourne Shell Builtins, Next: Bash Builtins, Up: Shell Builtin Commands
@@ -2714,12 +2719,12 @@ standard.
subject to the following conditions. The `ERR' trap is not
executed if the failed command is part of the command list
immediately following an `until' or `while' keyword, part of the
test in an `if' statement, part of a command executed in a `&&' or
`||' list, or if the command's return status is being inverted
using `!'. These are the same conditions obeyed by the `errexit'
option. If a SIGSPEC is `RETURN', the command ARG is executed
each time a shell function or a script executed with the `.' or
`source' builtins finishes executing.
test following the `if' or `elif' reserved words, part of a
command executed in a `&&' or `||' list, or if the command's return
status is being inverted using `!'. These are the same conditions
obeyed by the `errexit' option. If a SIGSPEC is `RETURN', the
command ARG is executed each time a shell function or a script
executed with the `.' or `source' builtins finishes executing.
Signals ignored upon entry to the shell cannot be trapped or reset.
Trapped signals that are not being ignored are reset to their
@@ -3323,10 +3328,12 @@ POSIX standard.
The maximum size that may be locked into memory.
`-m'
The maximum resident set size.
The maximum resident set size (many systems do not honor this
limit).
`-n'
The maximum number of open file descriptors.
The maximum number of open file descriptors (most systems do
not allow this value to be set).
`-p'
The pipe buffer size.
@@ -3425,18 +3432,25 @@ parameters, or to display the names and values of shell variables.
prompt.
`-e'
Exit immediately if a simple command (*note Simple
Commands::) exits with a non-zero status, unless the command
that fails is part of the command list immediately following
a `while' or `until' keyword, part of the test in an `if'
statement, part of a command executed in a `&&' or `||b' list,
Exit immediately if a pipeline (*note Pipelines::), which may
consist of a single simple command (*note Simple Commands::),
a subshell command enclosed in parentheses (*note Command
Grouping::), or one of the commands executed as part of a
command list enclosed by braces (*note Command Grouping::)
returns a non-zero status. The shell does not exit if the
command that fails is part of the command list immediately
following a `while' or `until' keyword, part of the test in
an `if' statement, part of any command executed in a `&&' or
`||' list except the command following the final `&&' or `||',
any command in a pipeline but the last, or if the command's
return status is being inverted using `!'. Failing simple
commands that are part of shell functions or command lists
enclosed in braces or parentheses satisfying the above
conditions do not cause the shell to exit. A trap on `ERR',
return status is being inverted with `!'. A trap on `ERR',
if set, is executed before the shell exits.
This option applies to the shell environment and each
subshell environment separately (*note Command Execution
Environment::), and may cause subshells to exit before
executing all the commands in the subshell.
`-f'
Disable file name generation (globbing).
@@ -4186,10 +4200,11 @@ Variables::).
`COMP_WORDS'
An array variable consisting of the individual words in the
current command line. The words are split on shell metacharacters
as the shell parser would separate them. This variable is
available only in shell functions invoked by the programmable
completion facilities (*note Programmable Completion::).
current command line. The line is split into words as Readline
would split it, using `COMP_WORDBREAKS' as described above. This
variable is available only in shell functions invoked by the
programmable completion facilities (*note Programmable
Completion::).
`COMPREPLY'
An array variable from which Bash reads the possible completions
@@ -8598,7 +8613,8 @@ newsgroup `gnu.bash.bug'.
`bashbug' inserts the first three items automatically into the template
it provides for filing a bug report.
Please send all reports concerning this manual to <chet@po.CWRU.Edu>.
Please send all reports concerning this manual to
<chet.ramey@case.edu>.

File: bashref.info, Node: Major Differences From The Bourne Shell, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top
@@ -9511,7 +9527,7 @@ D.1 Index of Shell Builtin Commands
* ulimit: Bash Builtins. (line 533)
* umask: Bourne Shell Builtins.
(line 327)
* unalias: Bash Builtins. (line 619)
* unalias: Bash Builtins. (line 621)
* unset: Bourne Shell Builtins.
(line 344)
* wait: Job Control Builtins.
@@ -9614,67 +9630,67 @@ D.3 Parameter and Variable Index
(line 60)
* completion-query-items: Readline Init File Syntax.
(line 67)
* COMPREPLY: Bash Variables. (line 172)
* COMPREPLY: Bash Variables. (line 173)
* convert-meta: Readline Init File Syntax.
(line 77)
* DIRSTACK: Bash Variables. (line 177)
* DIRSTACK: Bash Variables. (line 178)
* disable-completion: Readline Init File Syntax.
(line 83)
* editing-mode: Readline Init File Syntax.
(line 88)
* EMACS: Bash Variables. (line 187)
* EMACS: Bash Variables. (line 188)
* enable-keypad: Readline Init File Syntax.
(line 94)
* EUID: Bash Variables. (line 192)
* EUID: Bash Variables. (line 193)
* expand-tilde: Readline Init File Syntax.
(line 99)
* FCEDIT: Bash Variables. (line 196)
* FIGNORE: Bash Variables. (line 200)
* FUNCNAME: Bash Variables. (line 206)
* GLOBIGNORE: Bash Variables. (line 215)
* GROUPS: Bash Variables. (line 221)
* histchars: Bash Variables. (line 227)
* HISTCMD: Bash Variables. (line 242)
* HISTCONTROL: Bash Variables. (line 247)
* HISTFILE: Bash Variables. (line 263)
* HISTFILESIZE: Bash Variables. (line 267)
* HISTIGNORE: Bash Variables. (line 275)
* FCEDIT: Bash Variables. (line 197)
* FIGNORE: Bash Variables. (line 201)
* FUNCNAME: Bash Variables. (line 207)
* GLOBIGNORE: Bash Variables. (line 216)
* GROUPS: Bash Variables. (line 222)
* histchars: Bash Variables. (line 228)
* HISTCMD: Bash Variables. (line 243)
* HISTCONTROL: Bash Variables. (line 248)
* HISTFILE: Bash Variables. (line 264)
* HISTFILESIZE: Bash Variables. (line 268)
* HISTIGNORE: Bash Variables. (line 276)
* history-preserve-point: Readline Init File Syntax.
(line 103)
* history-size: Readline Init File Syntax.
(line 109)
* HISTSIZE: Bash Variables. (line 294)
* HISTTIMEFORMAT: Bash Variables. (line 298)
* HISTSIZE: Bash Variables. (line 295)
* HISTTIMEFORMAT: Bash Variables. (line 299)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 114)
* HOSTFILE: Bash Variables. (line 307)
* HOSTNAME: Bash Variables. (line 318)
* HOSTTYPE: Bash Variables. (line 321)
* HOSTFILE: Bash Variables. (line 308)
* HOSTNAME: Bash Variables. (line 319)
* HOSTTYPE: Bash Variables. (line 322)
* IFS: Bourne Shell Variables.
(line 18)
* IGNOREEOF: Bash Variables. (line 324)
* IGNOREEOF: Bash Variables. (line 325)
* input-meta: Readline Init File Syntax.
(line 121)
* INPUTRC: Bash Variables. (line 334)
* INPUTRC: Bash Variables. (line 335)
* isearch-terminators: Readline Init File Syntax.
(line 128)
* keymap: Readline Init File Syntax.
(line 135)
* LANG: Bash Variables. (line 338)
* LC_ALL: Bash Variables. (line 342)
* LC_COLLATE: Bash Variables. (line 346)
* LC_CTYPE: Bash Variables. (line 353)
* LANG: Bash Variables. (line 339)
* LC_ALL: Bash Variables. (line 343)
* LC_COLLATE: Bash Variables. (line 347)
* LC_CTYPE: Bash Variables. (line 354)
* LC_MESSAGES <1>: Locale Translation. (line 11)
* LC_MESSAGES: Bash Variables. (line 358)
* LC_NUMERIC: Bash Variables. (line 362)
* LINENO: Bash Variables. (line 366)
* LINES: Bash Variables. (line 370)
* MACHTYPE: Bash Variables. (line 375)
* LC_MESSAGES: Bash Variables. (line 359)
* LC_NUMERIC: Bash Variables. (line 363)
* LINENO: Bash Variables. (line 367)
* LINES: Bash Variables. (line 371)
* MACHTYPE: Bash Variables. (line 376)
* MAIL: Bourne Shell Variables.
(line 22)
* MAILCHECK: Bash Variables. (line 379)
* MAILCHECK: Bash Variables. (line 380)
* MAILPATH: Bourne Shell Variables.
(line 27)
* mark-modified-lines: Readline Init File Syntax.
@@ -9685,49 +9701,49 @@ D.3 Parameter and Variable Index
(line 158)
* meta-flag: Readline Init File Syntax.
(line 121)
* OLDPWD: Bash Variables. (line 387)
* OLDPWD: Bash Variables. (line 388)
* OPTARG: Bourne Shell Variables.
(line 34)
* OPTERR: Bash Variables. (line 390)
* OPTERR: Bash Variables. (line 391)
* OPTIND: Bourne Shell Variables.
(line 38)
* OSTYPE: Bash Variables. (line 394)
* OSTYPE: Bash Variables. (line 395)
* output-meta: Readline Init File Syntax.
(line 165)
* page-completions: Readline Init File Syntax.
(line 170)
* PATH: Bourne Shell Variables.
(line 42)
* PIPESTATUS: Bash Variables. (line 397)
* POSIXLY_CORRECT: Bash Variables. (line 402)
* PPID: Bash Variables. (line 411)
* PROMPT_COMMAND: Bash Variables. (line 415)
* PROMPT_DIRTRIM: Bash Variables. (line 419)
* PIPESTATUS: Bash Variables. (line 398)
* POSIXLY_CORRECT: Bash Variables. (line 403)
* PPID: Bash Variables. (line 412)
* PROMPT_COMMAND: Bash Variables. (line 416)
* PROMPT_DIRTRIM: Bash Variables. (line 420)
* PS1: Bourne Shell Variables.
(line 48)
* PS2: Bourne Shell Variables.
(line 53)
* PS3: Bash Variables. (line 425)
* PS4: Bash Variables. (line 430)
* PWD: Bash Variables. (line 436)
* RANDOM: Bash Variables. (line 439)
* REPLY: Bash Variables. (line 444)
* PS3: Bash Variables. (line 426)
* PS4: Bash Variables. (line 431)
* PWD: Bash Variables. (line 437)
* RANDOM: Bash Variables. (line 440)
* REPLY: Bash Variables. (line 445)
* revert-all-at-newline: Readline Init File Syntax.
(line 180)
* SECONDS: Bash Variables. (line 447)
* SHELL: Bash Variables. (line 453)
* SHELLOPTS: Bash Variables. (line 458)
* SHLVL: Bash Variables. (line 467)
* SECONDS: Bash Variables. (line 448)
* SHELL: Bash Variables. (line 454)
* SHELLOPTS: Bash Variables. (line 459)
* SHLVL: Bash Variables. (line 468)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 186)
* show-all-if-unmodified: Readline Init File Syntax.
(line 192)
* TEXTDOMAIN: Locale Translation. (line 11)
* TEXTDOMAINDIR: Locale Translation. (line 11)
* TIMEFORMAT: Bash Variables. (line 472)
* TMOUT: Bash Variables. (line 510)
* TMPDIR: Bash Variables. (line 522)
* UID: Bash Variables. (line 526)
* TIMEFORMAT: Bash Variables. (line 473)
* TMOUT: Bash Variables. (line 511)
* TMPDIR: Bash Variables. (line 523)
* UID: Bash Variables. (line 527)
* visible-stats: Readline Init File Syntax.
(line 201)
@@ -10034,92 +10050,92 @@ Node: Filename Expansion70602
Node: Pattern Matching72742
Node: Quote Removal76381
Node: Redirections76676
Node: Executing Commands84819
Node: Simple Command Expansion85489
Node: Command Search and Execution87419
Node: Command Execution Environment89756
Node: Environment92742
Node: Exit Status94402
Node: Signals96023
Node: Shell Scripts97991
Node: Shell Builtin Commands100509
Node: Bourne Shell Builtins102186
Node: Bash Builtins119504
Node: Modifying Shell Behavior143695
Node: The Set Builtin144040
Node: The Shopt Builtin153080
Node: Special Builtins163942
Node: Shell Variables164921
Node: Bourne Shell Variables165361
Node: Bash Variables167342
Node: Bash Features189660
Node: Invoking Bash190543
Node: Bash Startup Files196352
Node: Interactive Shells201321
Node: What is an Interactive Shell?201731
Node: Is this Shell Interactive?202380
Node: Interactive Shell Behavior203195
Node: Bash Conditional Expressions206475
Node: Shell Arithmetic210054
Node: Aliases212800
Node: Arrays215372
Node: The Directory Stack219214
Node: Directory Stack Builtins219928
Node: Printing a Prompt222820
Node: The Restricted Shell225572
Node: Bash POSIX Mode227404
Node: Job Control235257
Node: Job Control Basics235717
Node: Job Control Builtins240330
Node: Job Control Variables244694
Node: Command Line Editing245852
Node: Introduction and Notation247419
Node: Readline Interaction249041
Node: Readline Bare Essentials250232
Node: Readline Movement Commands252021
Node: Readline Killing Commands252986
Node: Readline Arguments254906
Node: Searching255950
Node: Readline Init File258136
Node: Readline Init File Syntax259283
Node: Conditional Init Constructs272517
Node: Sample Init File275050
Node: Bindable Readline Commands278167
Node: Commands For Moving279374
Node: Commands For History280518
Node: Commands For Text283673
Node: Commands For Killing286346
Node: Numeric Arguments288797
Node: Commands For Completion289936
Node: Keyboard Macros293703
Node: Miscellaneous Commands294274
Node: Readline vi Mode299585
Node: Programmable Completion300499
Node: Programmable Completion Builtins306332
Node: Using History Interactively314758
Node: Bash History Facilities315442
Node: Bash History Builtins318356
Node: History Interaction322213
Node: Event Designators324918
Node: Word Designators325933
Node: Modifiers327572
Node: Installing Bash328976
Node: Basic Installation330113
Node: Compilers and Options332805
Node: Compiling For Multiple Architectures333546
Node: Installation Names335210
Node: Specifying the System Type336028
Node: Sharing Defaults336744
Node: Operation Controls337417
Node: Optional Features338375
Node: Reporting Bugs347777
Node: Major Differences From The Bourne Shell348971
Node: GNU Free Documentation License365658
Node: Indexes388119
Node: Builtin Index388573
Node: Reserved Word Index395400
Node: Variable Index397848
Node: Function Index409654
Node: Concept Index416386
Node: Executing Commands84824
Node: Simple Command Expansion85494
Node: Command Search and Execution87424
Node: Command Execution Environment89761
Node: Environment92747
Node: Exit Status94407
Node: Signals96028
Node: Shell Scripts97996
Node: Shell Builtin Commands100514
Node: Bourne Shell Builtins102542
Node: Bash Builtins119883
Node: Modifying Shell Behavior144182
Node: The Set Builtin144527
Node: The Shopt Builtin153971
Node: Special Builtins164833
Node: Shell Variables165812
Node: Bourne Shell Variables166252
Node: Bash Variables168233
Node: Bash Features190572
Node: Invoking Bash191455
Node: Bash Startup Files197264
Node: Interactive Shells202233
Node: What is an Interactive Shell?202643
Node: Is this Shell Interactive?203292
Node: Interactive Shell Behavior204107
Node: Bash Conditional Expressions207387
Node: Shell Arithmetic210966
Node: Aliases213712
Node: Arrays216284
Node: The Directory Stack220126
Node: Directory Stack Builtins220840
Node: Printing a Prompt223732
Node: The Restricted Shell226484
Node: Bash POSIX Mode228316
Node: Job Control236169
Node: Job Control Basics236629
Node: Job Control Builtins241242
Node: Job Control Variables245606
Node: Command Line Editing246764
Node: Introduction and Notation248331
Node: Readline Interaction249953
Node: Readline Bare Essentials251144
Node: Readline Movement Commands252933
Node: Readline Killing Commands253898
Node: Readline Arguments255818
Node: Searching256862
Node: Readline Init File259048
Node: Readline Init File Syntax260195
Node: Conditional Init Constructs273429
Node: Sample Init File275962
Node: Bindable Readline Commands279079
Node: Commands For Moving280286
Node: Commands For History281430
Node: Commands For Text284585
Node: Commands For Killing287258
Node: Numeric Arguments289709
Node: Commands For Completion290848
Node: Keyboard Macros294615
Node: Miscellaneous Commands295186
Node: Readline vi Mode300497
Node: Programmable Completion301411
Node: Programmable Completion Builtins307244
Node: Using History Interactively315670
Node: Bash History Facilities316354
Node: Bash History Builtins319268
Node: History Interaction323125
Node: Event Designators325830
Node: Word Designators326845
Node: Modifiers328484
Node: Installing Bash329888
Node: Basic Installation331025
Node: Compilers and Options333717
Node: Compiling For Multiple Architectures334458
Node: Installation Names336122
Node: Specifying the System Type336940
Node: Sharing Defaults337656
Node: Operation Controls338329
Node: Optional Features339287
Node: Reporting Bugs348689
Node: Major Differences From The Bourne Shell349886
Node: GNU Free Documentation License366573
Node: Indexes389034
Node: Builtin Index389488
Node: Reserved Word Index396315
Node: Variable Index398763
Node: Function Index410569
Node: Concept Index417301

End Tag Table
+11 -11
View File
@@ -1,4 +1,4 @@
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 18 FEB 2009 15:33
This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 23 FEB 2009 11:56
**/Users/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2003-02-03.16]: Basics,
@@ -173,7 +173,7 @@ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
[11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25]
[26] [27] [28] [29] [30] [31] [32] [33] Chapter 4 [34] [35] [36] [37] [38]
[39] [40] [41]
Underfull \hbox (badness 5231) in paragraph at lines 3274--3287
Underfull \hbox (badness 5231) in paragraph at lines 3280--3293
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -186,7 +186,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
.etc.
[42] [43] [44] [45] [46]
Overfull \hbox (102.08961pt too wide) in paragraph at lines 3699--3699
Overfull \hbox (102.08961pt too wide) in paragraph at lines 3705--3705
[]@texttt read [-ers] [-a @textttsl aname@texttt ] [-d @textttsl de-lim@texttt
] [-i @textttsl text@texttt ] [-n @textttsl nchars@texttt ] [-p @textttsl prom
pt@texttt ] [-t @textttsl time-
@@ -200,7 +200,7 @@ pt@texttt ] [-t @textttsl time-
.etc.
[47] [48] [49] [50] [51] [52] [53] [54] [55]
Underfull \hbox (badness 2573) in paragraph at lines 4377--4381
Underfull \hbox (badness 2573) in paragraph at lines 4383--4387
[] []@textrm Error trac-ing is en-abled: com-mand sub-sti-tu-tion, shell
@hbox(7.60416+2.12917)x433.62, glue set 2.95305
@@ -217,7 +217,7 @@ Underfull \hbox (badness 2573) in paragraph at lines 4377--4381
[56] [57] [58] Chapter 5 [59] [60] [61] [62] [63] [64] [65] [66] [67] [68]
Chapter 6 [69] [70]
Overfull \hbox (51.96864pt too wide) in paragraph at lines 5220--5220
Overfull \hbox (51.96864pt too wide) in paragraph at lines 5226--5226
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -230,7 +230,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
Overfull \hbox (76.23077pt too wide) in paragraph at lines 5221--5221
Overfull \hbox (76.23077pt too wide) in paragraph at lines 5227--5227
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
-
@@ -244,7 +244,7 @@ Overfull \hbox (76.23077pt too wide) in paragraph at lines 5221--5221
.etc.
Overfull \hbox (34.72258pt too wide) in paragraph at lines 5222--5222
Overfull \hbox (34.72258pt too wide) in paragraph at lines 5228--5228
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
@@ -257,7 +257,7 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
[71] [72]
Underfull \hbox (badness 2245) in paragraph at lines 5396--5398
Underfull \hbox (badness 2245) in paragraph at lines 5402--5404
[]@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from
the file
@@ -270,7 +270,7 @@ the file
.etc.
[73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]
Underfull \hbox (badness 2521) in paragraph at lines 6533--6536
Underfull \hbox (badness 2521) in paragraph at lines 6539--6542
@textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
e[] @textrm when build-ing (see Sec-tion 10.8
@@ -325,7 +325,7 @@ Underfull \hbox (badness 2753) in paragraph at lines 1827--1830
[118] [119]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[120] [121] [122] [123] [124]) Chapter 10 [125] [126] [127] [128] [129]
Underfull \hbox (badness 2772) in paragraph at lines 7132--7136
Underfull \hbox (badness 2772) in paragraph at lines 7138--7142
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
s/large_
@@ -374,4 +374,4 @@ Here is how much of TeX's memory you used:
19 hyphenation exceptions out of 8191
15i,8n,11p,269b,474s stack positions out of 5000i,500n,6000p,200000b,5000s
Output written on bashref.dvi (164 pages, 638296 bytes).
Output written on bashref.dvi (164 pages, 638856 bytes).
+1274 -1253
View File
File diff suppressed because it is too large Load Diff
+8 -2
View File
@@ -2765,8 +2765,14 @@ Many of the builtins have been extended by @sc{posix} or Bash.
Unless otherwise noted, each builtin command documented as accepting
options preceded by @samp{-} accepts @samp{--}
to signify the end of the options.
For example, the @code{:}, @code{true}, @code{false}, and @code{test}
builtins do not accept options.
The @code{:}, @code{true}, @code{false}, and @code{test}
builtins do not accept options and do not treat @samp{--} specially.
The @code{exit}, @code{logout}, @code{break}, @code{continue}, @code{let},
and @code{shift} builtins accept and process arguments beginning
with @samp{-} without requiring @samp{--}.
Other builtins that accept arguments but are not specified as accepting
options interpret arguments beginning with @samp{-} as invalid options and
require @samp{--} to prevent this interpretation.
@node Bourne Shell Builtins
@section Bourne Shell Builtins
+238 -228
View File
@@ -14,8 +14,12 @@ NNAAMMEE
BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Unless otherwise noted, each builtin command documented in this section
as accepting options preceded by -- accepts ---- to signify the end of the
options. For example, the ::, ttrruuee, ffaallssee, and tteesstt builtins do not
accept options.
options. The ::, ttrruuee, ffaallssee, and tteesstt builtins do not accept options
and do not treat ---- specially. The eexxiitt, llooggoouutt, bbrreeaakk, ccoonnttiinnuuee, lleett,
and sshhiifftt builtins accept and process arguments beginning with -- with-
out requiring ----. Other builtins that accept arguments but are not
specified as accepting options interpret arguments beginning with -- as
invalid options and require ---- to prevent this interpretation.
:: [_a_r_g_u_m_e_n_t_s]
No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s
and performing any specified redirections. A zero exit code is
@@ -625,7 +629,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
_p_a_t_t_e_r_n; otherwise help for all the builtins and shell control
structures is printed.
--dd Display a short description of each _p_a_t_t_e_r_n
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
format
--ss Display only a short usage synopsis for each _p_a_t_t_e_r_n
The return status is 0 unless no command matches _p_a_t_t_e_r_n.
@@ -846,7 +850,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
occurs while reading the name of the current directory or an
invalid option is supplied.
rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [-- _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt
rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt
_t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...]
One line is read from the standard input, or from the file
descriptor _f_d supplied as an argument to the --uu option, and the
@@ -951,32 +955,37 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--bb Report the status of terminated background jobs immedi-
ately, rather than before the next primary prompt. This
is effective only when job control is enabled.
--ee Exit immediately if a _s_i_m_p_l_e _c_o_m_m_a_n_d (see SSHHEELLLL GGRRAAMMMMAARR
--ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in
parentheses, or one of the commands executed as part of
a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR
above) exits with a non-zero status. The shell does not
exit if the command that fails is part of the command
list immediately following a wwhhiillee or uunnttiill keyword,
part of the test in an iiff statement, part of a command
executed in a &&&& or |||| list, any command in a pipeline
but the last, or if the command's return value is being
inverted via !!. Failing simple commands that are part
of shell functions or command lists enclosed in braces
or parentheses satisfying the above conditions do not
cause the shell to exit. A trap on EERRRR, if set, is exe-
cuted before the shell exits.
exit if the command that fails is part of the command
list immediately following a wwhhiillee or uunnttiill keyword,
part of the test following the iiff or eelliiff reserved
words, part of any command executed in a &&&& or |||| list
except the command following the final &&&& or ||||, any
command in a pipeline but the last, or if the command's
return value is being inverted with !!. A trap on EERRRR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
above), and may cause subshells to exit before executing
all the commands in the subshell.
--ff Disable pathname expansion.
--hh Remember the location of commands as they are looked up
--hh Remember the location of commands as they are looked up
for execution. This is enabled by default.
--kk All arguments in the form of assignment statements are
placed in the environment for a command, not just those
--kk All arguments in the form of assignment statements are
placed in the environment for a command, not just those
that precede the command name.
--mm Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
cesses run in a separate process group and a line con-
taining their exit status is printed upon their comple-
--mm Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
cesses run in a separate process group and a line con-
taining their exit status is printed upon their comple-
tion.
--nn Read commands but do not execute them. This may be used
to check a shell script for syntax errors. This is
to check a shell script for syntax errors. This is
ignored by interactive shells.
--oo _o_p_t_i_o_n_-_n_a_m_e
The _o_p_t_i_o_n_-_n_a_m_e can be one of the following:
@@ -984,10 +993,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Same as --aa.
bbrraacceeeexxppaanndd
Same as --BB.
eemmaaccss Use an emacs-style command line editing inter-
eemmaaccss Use an emacs-style command line editing inter-
face. This is enabled by default when the shell
is interactive, unless the shell is started with
the ----nnooeeddiittiinngg option. This also affects the
the ----nnooeeddiittiinngg option. This also affects the
editing interface used for rreeaadd --ee.
eerrrrttrraaccee
Same as --EE.
@@ -1001,8 +1010,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
HHIISSTTOORRYY. This option is on by default in inter-
active shells.
iiggnnoorreeeeooff
The effect is as if the shell command
``IGNOREEOF=10'' had been executed (see SShheellll
The effect is as if the shell command
``IGNOREEOF=10'' had been executed (see SShheellll
VVaarriiaabblleess above).
kkeeyywwoorrdd Same as --kk.
mmoonniittoorr Same as --mm.
@@ -1017,213 +1026,213 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
pphhyyssiiccaall
Same as --PP.
ppiippeeffaaiill
If set, the return value of a pipeline is the
value of the last (rightmost) command to exit
with a non-zero status, or zero if all commands
in the pipeline exit successfully. This option
If set, the return value of a pipeline is the
value of the last (rightmost) command to exit
with a non-zero status, or zero if all commands
in the pipeline exit successfully. This option
is disabled by default.
ppoossiixx Change the behavior of bbaasshh where the default
operation differs from the POSIX standard to
ppoossiixx Change the behavior of bbaasshh where the default
operation differs from the POSIX standard to
match the standard (_p_o_s_i_x _m_o_d_e).
pprriivviilleeggeedd
Same as --pp.
vveerrbboossee Same as --vv.
vvii Use a vi-style command line editing interface.
vvii Use a vi-style command line editing interface.
This also affects the editing interface used for
rreeaadd --ee.
xxttrraaccee Same as --xx.
If --oo is supplied with no _o_p_t_i_o_n_-_n_a_m_e, the values of the
current options are printed. If ++oo is supplied with no
_o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
current option settings is displayed on the standard
current options are printed. If ++oo is supplied with no
_o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
current option settings is displayed on the standard
output.
--pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
$$BBAASSHH__EENNVV files are not processed, shell functions are
not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they appear in the
environment, are ignored. If the shell is started with
--pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
$$BBAASSHH__EENNVV files are not processed, shell functions are
not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they appear in the
environment, are ignored. If the shell is started with
the effective user (group) id not equal to the real user
(group) id, and the --pp option is not supplied, these
actions are taken and the effective user id is set to
the real user id. If the --pp option is supplied at
startup, the effective user id is not reset. Turning
this option off causes the effective user and group ids
(group) id, and the --pp option is not supplied, these
actions are taken and the effective user id is set to
the real user id. If the --pp option is supplied at
startup, the effective user id is not reset. Turning
this option off causes the effective user and group ids
to be set to the real user and group ids.
--tt Exit after reading and executing one command.
--uu Treat unset variables as an error when performing param-
eter expansion. If expansion is attempted on an unset
eter expansion. If expansion is attempted on an unset
variable, the shell prints an error message, and, if not
interactive, exits with a non-zero status.
--vv Print shell input lines as they are read.
--xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
--xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
command, sseelleecctt command, or arithmetic ffoorr command, dis-
play the expanded value of PPSS44, followed by the command
play the expanded value of PPSS44, followed by the command
and its expanded arguments or associated word list.
--BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
--BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
above). This is on by default.
--CC If set, bbaasshh does not overwrite an existing file with
the >>, >>&&, and <<>> redirection operators. This may be
--CC If set, bbaasshh does not overwrite an existing file with
the >>, >>&&, and <<>> redirection operators. This may be
overridden when creating output files by using the redi-
rection operator >>|| instead of >>.
--EE If set, any trap on EERRRR is inherited by shell functions,
command substitutions, and commands executed in a sub-
shell environment. The EERRRR trap is normally not inher-
command substitutions, and commands executed in a sub-
shell environment. The EERRRR trap is normally not inher-
ited in such cases.
--HH Enable !! style history substitution. This option is on
by default when the shell is interactive.
--PP If set, the shell does not follow symbolic links when
executing commands such as ccdd that change the current
--PP If set, the shell does not follow symbolic links when
executing commands such as ccdd that change the current
working directory. It uses the physical directory
structure instead. By default, bbaasshh follows the logical
chain of directories when performing commands which
chain of directories when performing commands which
change the current directory.
--TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
shell functions, command substitutions, and commands
executed in a subshell environment. The DDEEBBUUGG and
--TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
shell functions, command substitutions, and commands
executed in a subshell environment. The DDEEBBUUGG and
RREETTUURRNN traps are normally not inherited in such cases.
---- If no arguments follow this option, then the positional
---- If no arguments follow this option, then the positional
parameters are unset. Otherwise, the positional parame-
ters are set to the _a_r_gs, even if some of them begin
ters are set to the _a_r_gs, even if some of them begin
with a --.
-- Signal the end of options, cause all remaining _a_r_gs to
-- Signal the end of options, cause all remaining _a_r_gs to
be assigned to the positional parameters. The --xx and --vv
options are turned off. If there are no _a_r_gs, the posi-
tional parameters remain unchanged.
The options are off by default unless otherwise noted. Using +
rather than - causes these options to be turned off. The
options can also be specified as arguments to an invocation of
the shell. The current set of options may be found in $$--. The
The options are off by default unless otherwise noted. Using +
rather than - causes these options to be turned off. The
options can also be specified as arguments to an invocation of
the shell. The current set of options may be found in $$--. The
return status is always true unless an invalid option is encoun-
tered.
sshhiifftt [_n]
The positional parameters from _n+1 ... are renamed to $$11 ........
Parameters represented by the numbers $$## down to $$##-_n+1 are
unset. _n must be a non-negative number less than or equal to
$$##. If _n is 0, no parameters are changed. If _n is not given,
it is assumed to be 1. If _n is greater than $$##, the positional
parameters are not changed. The return status is greater than
The positional parameters from _n+1 ... are renamed to $$11 ........
Parameters represented by the numbers $$## down to $$##-_n+1 are
unset. _n must be a non-negative number less than or equal to
$$##. If _n is 0, no parameters are changed. If _n is not given,
it is assumed to be 1. If _n is greater than $$##, the positional
parameters are not changed. The return status is greater than
zero if _n is greater than $$## or less than zero; otherwise 0.
sshhoopptt [--ppqqssuu] [--oo] [_o_p_t_n_a_m_e ...]
Toggle the values of variables controlling optional shell behav-
ior. With no options, or with the --pp option, a list of all set-
table options is displayed, with an indication of whether or not
each is set. The --pp option causes output to be displayed in a
form that may be reused as input. Other options have the fol-
each is set. The --pp option causes output to be displayed in a
form that may be reused as input. Other options have the fol-
lowing meanings:
--ss Enable (set) each _o_p_t_n_a_m_e.
--uu Disable (unset) each _o_p_t_n_a_m_e.
--qq Suppresses normal output (quiet mode); the return status
--qq Suppresses normal output (quiet mode); the return status
indicates whether the _o_p_t_n_a_m_e is set or unset. If multi-
ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
wise.
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
the --oo option to the sseett builtin.
If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
play is limited to those options which are set or unset, respec-
tively. Unless otherwise noted, the sshhoopptt options are disabled
tively. Unless otherwise noted, the sshhoopptt options are disabled
(unset) by default.
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
options, the return status is zero unless an _o_p_t_n_a_m_e is not a
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
options, the return status is zero unless an _o_p_t_n_a_m_e is not a
valid shell option.
The list of sshhoopptt options is:
aauuttooccdd If set, a command name that is the name of a directory
is executed as if it were the argument to the ccdd com-
aauuttooccdd If set, a command name that is the name of a directory
is executed as if it were the argument to the ccdd com-
mand. This option is only used by interactive shells.
ccddaabbllee__vvaarrss
If set, an argument to the ccdd builtin command that is
not a directory is assumed to be the name of a variable
If set, an argument to the ccdd builtin command that is
not a directory is assumed to be the name of a variable
whose value is the directory to change to.
ccddssppeellll If set, minor errors in the spelling of a directory com-
ponent in a ccdd command will be corrected. The errors
ponent in a ccdd command will be corrected. The errors
checked for are transposed characters, a missing charac-
ter, and one character too many. If a correction is
found, the corrected file name is printed, and the com-
mand proceeds. This option is only used by interactive
ter, and one character too many. If a correction is
found, the corrected file name is printed, and the com-
mand proceeds. This option is only used by interactive
shells.
cchheecckkhhaasshh
If set, bbaasshh checks that a command found in the hash ta-
ble exists before trying to execute it. If a hashed
command no longer exists, a normal path search is per-
ble exists before trying to execute it. If a hashed
command no longer exists, a normal path search is per-
formed.
cchheecckkjjoobbss
If set, bbaasshh lists the status of any stopped and running
jobs before exiting an interactive shell. If any jobs
jobs before exiting an interactive shell. If any jobs
are running, this causes the exit to be deferred until a
second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones
second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones
exiting if any jobs are stopped.
cchheecckkwwiinnssiizzee
If set, bbaasshh checks the window size after each command
and, if necessary, updates the values of LLIINNEESS and CCOOLL--
If set, bbaasshh checks the window size after each command
and, if necessary, updates the values of LLIINNEESS and CCOOLL--
UUMMNNSS.
ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
line command in the same history entry. This allows
ccmmddhhiisstt If set, bbaasshh attempts to save all lines of a multiple-
line command in the same history entry. This allows
easy re-editing of multi-line commands.
ccoommppaatt3311
If set, bbaasshh changes its behavior to that of version 3.1
with respect to quoted arguments to the conditional com-
mand's =~ operator.
ddiirrssppeellll
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
tially supplied does not exist.
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion.
eexxeeccffaaiill
If set, a non-interactive shell will not exit if it can-
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
exit if eexxeecc fails.
eexxppaanndd__aalliiaasseess
If set, aliases are expanded as described above under
If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
If set, behavior intended for use by debuggers is
If set, behavior intended for use by debuggers is
enabled:
11.. The --FF option to the ddeeccllaarree builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
not executed.
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), a call to
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), a call to
rreettuurrnn is simulated.
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions above.
55.. Function tracing is enabled: command substitu-
55.. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
_c_o_m_m_a_n_d )) inherit the EERRRROORR trap.
eexxttgglloobb If set, the extended pattern matching features described
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
eexxttqquuoottee
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
quotes. This option is enabled by default.
ffaaiillgglloobb
If set, patterns which fail to match filenames during
If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
ffoorrccee__ffiiggnnoorree
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a
description of FFIIGGNNOORREE. This option is enabled by
description of FFIIGGNNOORREE. This option is enabled by
default.
gglloobbssttaarr
If set, the pattern **** used in a filename expansion con-
@@ -1234,58 +1243,58 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
If set, shell error messages are written in the standard
GNU error message format.
hhiissttaappppeenndd
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell
exits, rather than overwriting the file.
hhiissttrreeeeddiitt
If set, and rreeaaddlliinnee is being used, a user is given the
If set, and rreeaaddlliinnee is being used, a user is given the
opportunity to re-edit a failed history substitution.
hhiissttvveerriiffyy
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
into the rreeaaddlliinnee editing buffer, allowing further modi-
fication.
hhoossttccoommpplleettee
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
hhuuppoonneexxiitt
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
active login shell exits.
iinntteerraaccttiivvee__ccoommmmeennttss
If set, allow a word beginning with ## to cause that word
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This
option is enabled by default.
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
llooggiinn__sshheellll
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN above). The value may not be
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN above). The value may not be
changed.
mmaaiillwwaarrnn
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
played.
nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn
If set, and rreeaaddlliinnee is being used, bbaasshh will not
If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt to search the PPAATTHH for possible completions when
completion is attempted on an empty line.
nnooccaasseegglloobb
If set, bbaasshh matches filenames in a case-insensitive
If set, bbaasshh matches filenames in a case-insensitive
fashion when performing pathname expansion (see PPaatthhnnaammee
EExxppaannssiioonn above).
nnooccaasseemmaattcchh
If set, bbaasshh matches patterns in a case-insensitive
If set, bbaasshh matches patterns in a case-insensitive
fashion when performing matching while executing ccaassee or
[[[[ conditional commands.
nnuullllgglloobb
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
rather than themselves.
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
@@ -1293,47 +1302,47 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled by default.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
mand substitution, arithmetic expansion, and quote
removal after being expanded as described in PPRROOMMPPTTIINNGG
above. This option is enabled by default.
rreessttrriicctteedd__sshheellll
The shell sets this option if it is started in
The shell sets this option if it is started in
restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value
may not be changed. This is not reset when the startup
files are executed, allowing the startup files to dis-
may not be changed. This is not reset when the startup
files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
sshhiifftt__vveerrbboossee
If set, the sshhiifftt builtin prints an error message when
If set, the sshhiifftt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
ssoouurrcceeppaatthh
If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
find the directory containing the file supplied as an
find the directory containing the file supplied as an
argument. This option is enabled by default.
xxppgg__eecchhoo
If set, the eecchhoo builtin expands backslash-escape
If set, the eecchhoo builtin expands backslash-escape
sequences by default.
ssuussppeenndd [--ff]
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell cannot be suspended; the --ff option can be
used to override this and force the suspension. The return sta-
tus is 0 unless the shell is a login shell and --ff is not sup-
tus is 0 unless the shell is a login shell and --ff is not sup-
plied, or if job control is not enabled.
tteesstt _e_x_p_r
[[ _e_x_p_r ]]
Return a status of 0 or 1 depending on the evaluation of the
conditional expression _e_x_p_r. Each operator and operand must be
a separate argument. Expressions are composed of the primaries
described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
Return a status of 0 or 1 depending on the evaluation of the
conditional expression _e_x_p_r. Each operator and operand must be
a separate argument. Expressions are composed of the primaries
described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
accept any options, nor does it accept and ignore an argument of
---- as signifying the end of options.
Expressions may be combined using the following operators,
Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
depends on the number of arguments; see below.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
Returns the value of _e_x_p_r. This may be used to override
Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -1350,108 +1359,108 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
2 arguments
If the first argument is !!, the expression is true if and
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
If the second argument is one of the binary conditional
If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (( and the third argument is exactly )), the result
is the one-argument test of the second argument. Other-
is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !!, the result is the negation of
the three-argument expression composed of the remaining
the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
uated according to precedence using the rules listed
uated according to precedence using the rules listed
above.
5 or more arguments
The expression is parsed and evaluated according to
The expression is parsed and evaluated according to
precedence using the rules listed above.
ttiimmeess Print the accumulated user and system times for the shell and
ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c
is EEXXIITT (0) the command _a_r_g is executed on exit from the shell.
If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every
The command _a_r_g is to be read and executed when the shell
receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
original disposition (the value it had upon entrance to the
shell). If _a_r_g is the null string the signal specified by each
_s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
If _a_r_g is not present and --pp has been supplied, then the trap
commands associated with each _s_i_g_s_p_e_c are displayed. If no
arguments are supplied or if only --pp is given, ttrraapp prints the
list of commands associated with each signal. The --ll option
causes the shell to print a list of signal names and their cor-
responding numbers. Each _s_i_g_s_p_e_c is either a signal name
defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c
is EEXXIITT (0) the command _a_r_g is executed on exit from the shell.
If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every
_s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, _s_e_l_e_c_t command, every
arithmetic _f_o_r command, and before the first command executes in
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the
description of the eexxttddeebbuugg option to the sshhoopptt builtin for
details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR,
the command _a_r_g is executed whenever a simple command has a
non-zero exit status, subject to the following conditions. The
EERRRR trap is not executed if the failed command is part of the
command list immediately following a wwhhiillee or uunnttiill keyword,
part of the test in an _i_f statement, part of a command executed
in a &&&& or |||| list, or if the command's return value is being
inverted via !!. These are the same conditions obeyed by the
a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the
description of the eexxttddeebbuugg option to the sshhoopptt builtin for
details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR,
the command _a_r_g is executed whenever a simple command has a
non-zero exit status, subject to the following conditions. The
EERRRR trap is not executed if the failed command is part of the
command list immediately following a wwhhiillee or uunnttiill keyword,
part of the test in an _i_f statement, part of a command executed
in a &&&& or |||| list, or if the command's return value is being
inverted via !!. These are the same conditions obeyed by the
eerrrreexxiitt option. If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is exe-
cuted each time a shell function or a script executed with the ..
or ssoouurrccee builtins finishes executing. Signals ignored upon
entry to the shell cannot be trapped or reset. Trapped signals
or ssoouurrccee builtins finishes executing. Signals ignored upon
entry to the shell cannot be trapped or reset. Trapped signals
that are not being ignored are reset to their original values in
a child process when it is created. The return status is false
a child process when it is created. The return status is false
if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true.
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
With no options, indicate how each _n_a_m_e would be interpreted if
With no options, indicate how each _n_a_m_e would be interpreted if
used as a command name. If the --tt option is used, ttyyppee prints a
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
_f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
builtin, or disk file, respectively. If the _n_a_m_e is not found,
then nothing is printed, and an exit status of false is
returned. If the --pp option is used, ttyyppee either returns the
name of the disk file that would be executed if _n_a_m_e were speci-
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
hashed, --pp and --PP print the hashed value, not necessarily the
hashed, --pp and --PP print the hashed value, not necessarily the
file that appears first in PPAATTHH. If the --aa option is used, ttyyppee
prints all of the places that contain an executable named _n_a_m_e.
This includes aliases and functions, if and only if the --pp
option is not also used. The table of hashed commands is not
consulted when using --aa. The --ff option suppresses shell func-
tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
prints all of the places that contain an executable named _n_a_m_e.
This includes aliases and functions, if and only if the --pp
option is not also used. The table of hashed commands is not
consulted when using --aa. The --ff option suppresses shell func-
tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
all of the arguments are found, false if any are not found.
uulliimmiitt [--HHSSTTaabbccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]]
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
Provides control over the resources available to the shell and
to processes started by it, on systems that allow such control.
The --HH and --SS options specify that the hard or soft limit is set
for the given resource. A hard limit cannot be increased by a
non-root user once it is set; a soft limit may be increased up
to the value of the hard limit. If neither --HH nor --SS is speci-
for the given resource. A hard limit cannot be increased by a
non-root user once it is set; a soft limit may be increased up
to the value of the hard limit. If neither --HH nor --SS is speci-
fied, both the soft and hard limits are set. The value of _l_i_m_i_t
can be a number in the unit specified for the resource or one of
the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the
current hard limit, the current soft limit, and no limit,
respectively. If _l_i_m_i_t is omitted, the current value of the
soft limit of the resource is printed, unless the --HH option is
current hard limit, the current soft limit, and no limit,
respectively. If _l_i_m_i_t is omitted, the current value of the
soft limit of the resource is printed, unless the --HH option is
given. When more than one resource is specified, the limit name
and unit are printed before the value. Other options are inter-
preted as follows:
@@ -1460,11 +1469,12 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--cc The maximum size of core files created
--dd The maximum size of a process's data segment
--ee The maximum scheduling priority ("nice")
--ff The maximum size of files written by the shell and its
--ff The maximum size of files written by the shell and its
children
--ii The maximum number of pending signals
--ll The maximum size that may be locked into memory
--mm The maximum resident set size
--mm The maximum resident set size (many systems do not honor
this limit)
--nn The maximum number of open file descriptors (most systems
do not allow this value to be set)
--pp The pipe size in 512-byte blocks (this may not be set)
+1307 -1274
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
%%CreationDate: Thu Feb 5 08:05:28 2009
%%CreationDate: Mon Feb 23 11:56:03 2009
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.19 2
+1 -1
View File
@@ -357,7 +357,7 @@ int flags;
else
printf("%d\n", st->st_gid);
} else if (flags & OPT_SIZE)
printf("%ld\n", st->st_size);
printf("%ld\n", (long) st->st_size);
return (0);
}
+7 -3
View File
@@ -4081,8 +4081,11 @@ execute_function (var, words, flags, fds_to_close, async, subshell)
#endif
if (variable_context == 0 || this_shell_function == 0)
make_funcname_visible (0);
{
make_funcname_visible (0);
unlink_fifo_list ();
}
return (result);
}
@@ -4471,7 +4474,8 @@ parent_return:
/* Make sure that the pipes are closed in the parent. */
close_pipes (pipe_in, pipe_out);
#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
unlink_fifo_list ();
if (variable_context == 0)
unlink_fifo_list ();
#endif
FREE (command);
}
+4893
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -177,7 +177,7 @@ hash_search (string, table, flags)
bucket = HASH_BUCKET (string, table, hv);
for (list = table->bucket_array[bucket]; list; list = list->next)
for (list = table->bucket_array ? table->bucket_array[bucket] : 0; list; list = list->next)
{
if (hv == list->khash && STREQ (list->key, string))
{
+1
View File
@@ -1725,6 +1725,7 @@ make_child (command, async_p)
if (the_pipeline)
kill_current_pipeline ();
last_command_exit_value = EX_NOEXEC;
throw_to_top_level (); /* Reset signals, etc. */
}
+4205
View File
File diff suppressed because it is too large Load Diff
+15 -7
View File
@@ -2670,6 +2670,7 @@ reset_parser ()
FREE (word_desc_to_read);
word_desc_to_read = (WORD_DESC *)NULL;
current_token = '\n'; /* XXX */
last_read_token = '\n';
token_to_read = '\n';
}
@@ -2917,7 +2918,7 @@ tokword:
#define P_DQUOTE 0x04
#define P_COMMAND 0x08 /* parsing a command, so look for comments */
#define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */
#define P_ARRAY 0x20 /* parsing a [...] array assignment */
#define P_ARRAYSUB 0x20 /* parsing a [...] array subscript for assignment */
/* Lexical state while parsing a grouping construct or $(...). */
#define LEX_WASDOL 0x001
@@ -3132,6 +3133,8 @@ parse_matched_pair (qc, open, close, lenp, flags)
APPEND_NESTRET ();
FREE (nestret);
}
else if ((flags & P_ARRAYSUB) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
goto parse_dollar_word;
}
/* Parse an old-style command substitution within double quotes as a
single word. */
@@ -3148,6 +3151,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
else if MBTEST(open != '`' && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
/* check for $(), $[], or ${} inside quoted string. */
{
parse_dollar_word:
if (open == ch) /* undo previous increment */
count--;
if (ch == '(') /* ) */
@@ -3397,8 +3401,11 @@ eof_error:
}
else
shell_ungetc (peekc);
tflags |= LEX_HEREDELIM;
lex_firstind = -1;
if (peekc != '<')
{
tflags |= LEX_HEREDELIM;
lex_firstind = -1;
}
continue;
}
else
@@ -4251,7 +4258,7 @@ read_token_word (character)
((token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index)) ||
(token_index == 0 && (parser_state&PST_COMPASSIGN))))
{
ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARRAY);
ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARRAYSUB);
if (ttok == &matched_pair_error)
return -1; /* Bail immediately. */
RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
@@ -4452,6 +4459,7 @@ reserved_word_acceptable (toksym)
case '}': /* XXX */
case AND_AND:
case BANG:
case BAR_AND:
case DO:
case DONE:
case ELIF:
@@ -5186,7 +5194,7 @@ report_syntax_error (message)
parser_error (line_number, "%s", message);
if (interactive && EOF_Reached)
EOF_Reached = 0;
last_command_exit_value = EX_USAGE;
last_command_exit_value = EX_BADUSAGE;
return;
}
@@ -5201,7 +5209,7 @@ report_syntax_error (message)
if (interactive == 0)
print_offending_line ();
last_command_exit_value = EX_USAGE;
last_command_exit_value = EX_BADUSAGE;
return;
}
@@ -5232,7 +5240,7 @@ report_syntax_error (message)
EOF_Reached = 0;
}
last_command_exit_value = EX_USAGE;
last_command_exit_value = EX_BADUSAGE;
}
/* ??? Needed function. ??? We have to be able to discard the constructs
+12 -4
View File
@@ -2670,6 +2670,7 @@ reset_parser ()
FREE (word_desc_to_read);
word_desc_to_read = (WORD_DESC *)NULL;
current_token = '\n'; /* XXX */
last_read_token = '\n';
token_to_read = '\n';
}
@@ -2917,7 +2918,7 @@ tokword:
#define P_DQUOTE 0x04
#define P_COMMAND 0x08 /* parsing a command, so look for comments */
#define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */
#define P_ARRAY 0x20 /* parsing a [...] array assignment */
#define P_ARRAYSUB 0x20 /* parsing a [...] array subscript for assignment */
/* Lexical state while parsing a grouping construct or $(...). */
#define LEX_WASDOL 0x001
@@ -3132,6 +3133,8 @@ parse_matched_pair (qc, open, close, lenp, flags)
APPEND_NESTRET ();
FREE (nestret);
}
else if ((flags & P_ARRAYSUB) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
goto parse_dollar_word;
}
/* Parse an old-style command substitution within double quotes as a
single word. */
@@ -3148,6 +3151,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
else if MBTEST(open != '`' && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
/* check for $(), $[], or ${} inside quoted string. */
{
parse_dollar_word:
if (open == ch) /* undo previous increment */
count--;
if (ch == '(') /* ) */
@@ -3397,8 +3401,11 @@ eof_error:
}
else
shell_ungetc (peekc);
tflags |= LEX_HEREDELIM;
lex_firstind = -1;
if (peekc != '<')
{
tflags |= LEX_HEREDELIM;
lex_firstind = -1;
}
continue;
}
else
@@ -4251,7 +4258,7 @@ read_token_word (character)
((token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index)) ||
(token_index == 0 && (parser_state&PST_COMPASSIGN))))
{
ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARRAYSUB);
if (ttok == &matched_pair_error)
return -1; /* Bail immediately. */
RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
@@ -4452,6 +4459,7 @@ reserved_word_acceptable (toksym)
case '}': /* XXX */
case AND_AND:
case BANG:
case BAR_AND:
case DO:
case DONE:
case ELIF:
+683 -1029
View File
File diff suppressed because it is too large Load Diff
+474 -755
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -519,6 +519,7 @@ sigint_sighandler (sig)
if (interrupt_immediately)
{
interrupt_immediately = 0;
last_command_exit_value = 128 + sig;
throw_to_top_level ();
}
+621
View File
@@ -0,0 +1,621 @@
/* sig.c - interface for shell signal handlers and signal initialization. */
/* Copyright (C) 1994-2009 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
Bash is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Bash is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Bash. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#include "bashtypes.h"
#if defined (HAVE_UNISTD_H)
# ifdef _MINIX
# include <sys/types.h>
# endif
# include <unistd.h>
#endif
#include <stdio.h>
#include <signal.h>
#include "bashintl.h"
#include "shell.h"
#if defined (JOB_CONTROL)
#include "jobs.h"
#endif /* JOB_CONTROL */
#include "siglist.h"
#include "sig.h"
#include "trap.h"
#include "builtins/common.h"
#if defined (READLINE)
# include "bashline.h"
#endif
#if defined (HISTORY)
# include "bashhist.h"
#endif
extern int last_command_exit_value;
extern int last_command_exit_signal;
extern int return_catch_flag;
extern int loop_level, continuing, breaking;
extern int executing_list;
extern int comsub_ignore_return;
extern int parse_and_execute_level, shell_initialized;
/* Non-zero after SIGINT. */
volatile int interrupt_state = 0;
/* Non-zero after SIGWINCH */
volatile int sigwinch_received = 0;
/* Set to the value of any terminating signal received. */
volatile int terminating_signal = 0;
/* The environment at the top-level R-E loop. We use this in
the case of error return. */
procenv_t top_level;
#if defined (JOB_CONTROL) || defined (HAVE_POSIX_SIGNALS)
/* The signal masks that this shell runs with. */
sigset_t top_level_mask;
#endif /* JOB_CONTROL */
/* When non-zero, we throw_to_top_level (). */
int interrupt_immediately = 0;
/* When non-zero, we call the terminating signal handler immediately. */
int terminate_immediately = 0;
#if defined (SIGWINCH)
static SigHandler *old_winch = (SigHandler *)SIG_DFL;
#endif
static void initialize_shell_signals __P((void));
void
initialize_signals (reinit)
int reinit;
{
initialize_shell_signals ();
initialize_job_signals ();
#if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_UNDER_SYS_SIGLIST) && !defined (HAVE_STRSIGNAL)
if (reinit == 0)
initialize_siglist ();
#endif /* !HAVE_SYS_SIGLIST && !HAVE_UNDER_SYS_SIGLIST && !HAVE_STRSIGNAL */
}
/* A structure describing a signal that terminates the shell if not
caught. The orig_handler member is present so children can reset
these signals back to their original handlers. */
struct termsig {
int signum;
SigHandler *orig_handler;
int orig_flags;
};
#define NULL_HANDLER (SigHandler *)SIG_DFL
/* The list of signals that would terminate the shell if not caught.
We catch them, but just so that we can write the history file,
and so forth. */
static struct termsig terminating_signals[] = {
#ifdef SIGHUP
{ SIGHUP, NULL_HANDLER, 0 },
#endif
#ifdef SIGINT
{ SIGINT, NULL_HANDLER, 0 },
#endif
#ifdef SIGILL
{ SIGILL, NULL_HANDLER, 0 },
#endif
#ifdef SIGTRAP
{ SIGTRAP, NULL_HANDLER, 0 },
#endif
#ifdef SIGIOT
{ SIGIOT, NULL_HANDLER, 0 },
#endif
#ifdef SIGDANGER
{ SIGDANGER, NULL_HANDLER, 0 },
#endif
#ifdef SIGEMT
{ SIGEMT, NULL_HANDLER, 0 },
#endif
#ifdef SIGFPE
{ SIGFPE, NULL_HANDLER, 0 },
#endif
#ifdef SIGBUS
{ SIGBUS, NULL_HANDLER, 0 },
#endif
#ifdef SIGSEGV
{ SIGSEGV, NULL_HANDLER, 0 },
#endif
#ifdef SIGSYS
{ SIGSYS, NULL_HANDLER, 0 },
#endif
#ifdef SIGPIPE
{ SIGPIPE, NULL_HANDLER, 0 },
#endif
#ifdef SIGALRM
{ SIGALRM, NULL_HANDLER, 0 },
#endif
#ifdef SIGTERM
{ SIGTERM, NULL_HANDLER, 0 },
#endif
#ifdef SIGXCPU
{ SIGXCPU, NULL_HANDLER, 0 },
#endif
#ifdef SIGXFSZ
{ SIGXFSZ, NULL_HANDLER, 0 },
#endif
#ifdef SIGVTALRM
{ SIGVTALRM, NULL_HANDLER, 0 },
#endif
#if 0
#ifdef SIGPROF
{ SIGPROF, NULL_HANDLER, 0 },
#endif
#endif
#ifdef SIGLOST
{ SIGLOST, NULL_HANDLER, 0 },
#endif
#ifdef SIGUSR1
{ SIGUSR1, NULL_HANDLER, 0 },
#endif
#ifdef SIGUSR2
{ SIGUSR2, NULL_HANDLER, 0 },
#endif
};
#define TERMSIGS_LENGTH (sizeof (terminating_signals) / sizeof (struct termsig))
#define XSIG(x) (terminating_signals[x].signum)
#define XHANDLER(x) (terminating_signals[x].orig_handler)
#define XSAFLAGS(x) (terminating_signals[x].orig_flags)
static int termsigs_initialized = 0;
/* Initialize signals that will terminate the shell to do some
unwind protection. For non-interactive shells, we only call
this when a trap is defined for EXIT (0). */
void
initialize_terminating_signals ()
{
register int i;
#if defined (HAVE_POSIX_SIGNALS)
struct sigaction act, oact;
#endif
if (termsigs_initialized)
return;
/* The following code is to avoid an expensive call to
set_signal_handler () for each terminating_signals. Fortunately,
this is possible in Posix. Unfortunately, we have to call signal ()
on non-Posix systems for each signal in terminating_signals. */
#if defined (HAVE_POSIX_SIGNALS)
act.sa_handler = termsig_sighandler;
act.sa_flags = 0;
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);
for (i = 0; i < TERMSIGS_LENGTH; i++)
sigaddset (&act.sa_mask, XSIG (i));
for (i = 0; i < TERMSIGS_LENGTH; i++)
{
/* If we've already trapped it, don't do anything. */
if (signal_is_trapped (XSIG (i)))
continue;
sigaction (XSIG (i), &act, &oact);
XHANDLER(i) = oact.sa_handler;
XSAFLAGS(i) = oact.sa_flags;
/* Don't do anything with signals that are ignored at shell entry
if the shell is not interactive. */
if (!interactive_shell && XHANDLER (i) == SIG_IGN)
{
sigaction (XSIG (i), &oact, &act);
set_signal_ignored (XSIG (i));
}
#if defined (SIGPROF) && !defined (_MINIX)
if (XSIG (i) == SIGPROF && XHANDLER (i) != SIG_DFL && XHANDLER (i) != SIG_IGN)
sigaction (XSIG (i), &oact, (struct sigaction *)NULL);
#endif /* SIGPROF && !_MINIX */
}
#else /* !HAVE_POSIX_SIGNALS */
for (i = 0; i < TERMSIGS_LENGTH; i++)
{
/* If we've already trapped it, don't do anything. */
if (signal_is_trapped (XSIG (i)))
continue;
XHANDLER(i) = signal (XSIG (i), termsig_sighandler);
XSAFLAGS(i) = 0;
/* Don't do anything with signals that are ignored at shell entry
if the shell is not interactive. */
if (!interactive_shell && XHANDLER (i) == SIG_IGN)
{
signal (XSIG (i), SIG_IGN);
set_signal_ignored (XSIG (i));
}
#ifdef SIGPROF
if (XSIG (i) == SIGPROF && XHANDLER (i) != SIG_DFL && XHANDLER (i) != SIG_IGN)
signal (XSIG (i), XHANDLER (i));
#endif
}
#endif /* !HAVE_POSIX_SIGNALS */
termsigs_initialized = 1;
}
static void
initialize_shell_signals ()
{
if (interactive)
initialize_terminating_signals ();
#if defined (JOB_CONTROL) || defined (HAVE_POSIX_SIGNALS)
/* All shells use the signal mask they inherit, and pass it along
to child processes. Children will never block SIGCHLD, though. */
sigemptyset (&top_level_mask);
sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &top_level_mask);
# if defined (SIGCHLD)
sigdelset (&top_level_mask, SIGCHLD);
# endif
#endif /* JOB_CONTROL || HAVE_POSIX_SIGNALS */
/* And, some signals that are specifically ignored by the shell. */
set_signal_handler (SIGQUIT, SIG_IGN);
if (interactive)
{
set_signal_handler (SIGINT, sigint_sighandler);
set_signal_handler (SIGTERM, SIG_IGN);
set_sigwinch_handler ();
}
}
void
reset_terminating_signals ()
{
register int i;
#if defined (HAVE_POSIX_SIGNALS)
struct sigaction act;
#endif
if (termsigs_initialized == 0)
return;
#if defined (HAVE_POSIX_SIGNALS)
act.sa_flags = 0;
sigemptyset (&act.sa_mask);
for (i = 0; i < TERMSIGS_LENGTH; i++)
{
/* Skip a signal if it's trapped or handled specially, because the
trap code will restore the correct value. */
if (signal_is_trapped (XSIG (i)) || signal_is_special (XSIG (i)))
continue;
act.sa_handler = XHANDLER (i);
act.sa_flags = XSAFLAGS (i);
sigaction (XSIG (i), &act, (struct sigaction *) NULL);
}
#else /* !HAVE_POSIX_SIGNALS */
for (i = 0; i < TERMSIGS_LENGTH; i++)
{
if (signal_is_trapped (XSIG (i)) || signal_is_special (XSIG (i)))
continue;
signal (XSIG (i), XHANDLER (i));
}
#endif /* !HAVE_POSIX_SIGNALS */
}
#undef XSIG
#undef XHANDLER
/* Run some of the cleanups that should be performed when we run
jump_to_top_level from a builtin command context. XXX - might want to
also call reset_parser here. */
void
top_level_cleanup ()
{
/* Clean up string parser environment. */
while (parse_and_execute_level)
parse_and_execute_cleanup ();
#if defined (PROCESS_SUBSTITUTION)
unlink_fifo_list ();
#endif /* PROCESS_SUBSTITUTION */
run_unwind_protects ();
loop_level = continuing = breaking = 0;
executing_list = comsub_ignore_return = return_catch_flag = 0;
}
/* What to do when we've been interrupted, and it is safe to handle it. */
void
throw_to_top_level ()
{
int print_newline = 0;
if (interrupt_state)
{
print_newline = 1;
DELINTERRUPT;
}
if (interrupt_state)
return;
last_command_exit_signal = (last_command_exit_value > 128) ?
(last_command_exit_value - 128) : 0;
last_command_exit_value |= 128;
/* Run any traps set on SIGINT. */
run_interrupt_trap ();
/* Clean up string parser environment. */
while (parse_and_execute_level)
parse_and_execute_cleanup ();
#if defined (JOB_CONTROL)
give_terminal_to (shell_pgrp, 0);
#endif /* JOB_CONTROL */
#if defined (JOB_CONTROL) || defined (HAVE_POSIX_SIGNALS)
/* This should not be necessary on systems using sigsetjmp/siglongjmp. */
sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL);
#endif
reset_parser ();
#if defined (READLINE)
if (interactive)
bashline_reset ();
#endif /* READLINE */
#if defined (PROCESS_SUBSTITUTION)
unlink_fifo_list ();
#endif /* PROCESS_SUBSTITUTION */
run_unwind_protects ();
loop_level = continuing = breaking = 0;
executing_list = comsub_ignore_return = return_catch_flag = 0;
if (interactive && print_newline)
{
fflush (stdout);
fprintf (stderr, "\n");
fflush (stderr);
}
/* An interrupted `wait' command in a script does not exit the script. */
if (interactive || (interactive_shell && !shell_initialized) ||
(print_newline && signal_is_trapped (SIGINT)))
jump_to_top_level (DISCARD);
else
jump_to_top_level (EXITPROG);
}
/* This is just here to isolate the longjmp calls. */
void
jump_to_top_level (value)
int value;
{
longjmp (top_level, value);
}
sighandler
termsig_sighandler (sig)
int sig;
{
terminating_signal = sig;
/* XXX - should this also trigger when interrupt_immediately is set? */
if (terminate_immediately)
{
terminate_immediately = 0;
termsig_handler (sig);
}
SIGRETURN (0);
}
void
termsig_handler (sig)
int sig;
{
static int handling_termsig = 0;
/* Simple semaphore to keep this function from being executed multiple
times. Since we no longer are running as a signal handler, we don't
block multiple occurrences of the terminating signals while running. */
if (handling_termsig)
return;
handling_termsig = 1;
terminating_signal = 0; /* keep macro from re-testing true. */
/* I don't believe this condition ever tests true. */
if (sig == SIGINT && signal_is_trapped (SIGINT))
run_interrupt_trap ();
#if defined (HISTORY)
if (interactive_shell && sig != SIGABRT)
maybe_save_shell_history ();
#endif /* HISTORY */
#if defined (JOB_CONTROL)
if (interactive && sig == SIGHUP)
hangup_all_jobs ();
end_job_control ();
#endif /* JOB_CONTROL */
#if defined (PROCESS_SUBSTITUTION)
unlink_fifo_list ();
#endif /* PROCESS_SUBSTITUTION */
/* Reset execution context */
loop_level = continuing = breaking = 0;
executing_list = comsub_ignore_return = return_catch_flag = 0;
run_exit_trap ();
set_signal_handler (sig, SIG_DFL);
kill (getpid (), sig);
}
/* What we really do when SIGINT occurs. */
sighandler
sigint_sighandler (sig)
int sig;
{
#if defined (MUST_REINSTALL_SIGHANDLERS)
signal (sig, sigint_sighandler);
#endif
/* interrupt_state needs to be set for the stack of interrupts to work
right. Should it be set unconditionally? */
if (interrupt_state == 0)
ADDINTERRUPT;
if (interrupt_immediately)
{
interrupt_immediately = 0;
throw_to_top_level ();
}
SIGRETURN (0);
}
#if defined (SIGWINCH)
sighandler
sigwinch_sighandler (sig)
int sig;
{
#if defined (MUST_REINSTALL_SIGHANDLERS)
set_signal_handler (SIGWINCH, sigwinch_sighandler);
#endif /* MUST_REINSTALL_SIGHANDLERS */
sigwinch_received = 1;
SIGRETURN (0);
}
#endif /* SIGWINCH */
void
set_sigwinch_handler ()
{
#if defined (SIGWINCH)
old_winch = set_signal_handler (SIGWINCH, sigwinch_sighandler);
#endif
}
void
unset_sigwinch_handler ()
{
#if defined (SIGWINCH)
set_signal_handler (SIGWINCH, old_winch);
#endif
}
/* 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;
{
int old, new;
if (newset)
new = *newset;
else
new = 0;
switch (operation)
{
case SIG_BLOCK:
old = sigblock (new);
break;
case SIG_SETMASK:
sigsetmask (new);
break;
default:
internal_error (_("sigprocmask: %d: invalid operation"), operation);
}
if (oldset)
*oldset = old;
}
#endif /* JOB_CONTROL */
#else
#if !defined (SA_INTERRUPT)
# define SA_INTERRUPT 0
#endif
#if !defined (SA_RESTART)
# define SA_RESTART 0
#endif
SigHandler *
set_signal_handler (sig, handler)
int sig;
SigHandler *handler;
{
struct sigaction act, oact;
act.sa_handler = handler;
act.sa_flags = 0;
#if 0
if (sig == SIGALRM)
act.sa_flags |= SA_INTERRUPT; /* XXX */
else
act.sa_flags |= SA_RESTART; /* XXX */
#endif
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);
sigaction (sig, &act, &oact);
return (oact.sa_handler);
}
#endif /* HAVE_POSIX_SIGNALS */
+18 -7
View File
@@ -222,6 +222,7 @@ static inline int skip_single_quoted __P((const char *, size_t, int));
static int skip_double_quoted __P((char *, size_t, int));
static char *extract_delimited_string __P((char *, int *, char *, char *, char *, int));
static char *extract_dollar_brace_string __P((char *, int *, int, int));
static int skip_matched_pair __P((const char *, int, int, int, int));
static char *pos_params __P((char *, int, int, int));
@@ -1374,12 +1375,12 @@ unquote_bang (string)
#define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0)
/* This function assumes s[i] == '['; returns with s[ret] == ']' if
an array subscript is correctly parsed. */
int
skipsubscript (string, start)
/* This function assumes s[i] == open; returns with s[ret] == close; used to
parse array subscripts. FLAGS currently unused. */
static int
skip_matched_pair (string, start, open, close, flags)
const char *string;
int start;
int start, open, close, flags;
{
int i, pass_next, backq, si, c, count;
size_t slen;
@@ -1422,13 +1423,13 @@ skipsubscript (string, start)
i++;
continue;
}
else if (c == '[')
else if (c == open)
{
count++;
i++;
continue;
}
else if (c == ']')
else if (c == close)
{
count--;
if (count == 0)
@@ -1465,6 +1466,16 @@ skipsubscript (string, start)
CQ_RETURN(i);
}
#if defined (ARRAY_VARS)
int
skipsubscript (string, start)
const char *string;
int start;
{
return (skip_matched_pair (string, start, '[', ']', 0));
}
#endif
/* Skip characters in STRING until we find a character in DELIMS, and return
the index of that character. START is the index into string at which we
begin. This is similar in spirit to strpbrk, but it returns an index into
+21 -9
View File
@@ -222,6 +222,7 @@ static inline int skip_single_quoted __P((const char *, size_t, int));
static int skip_double_quoted __P((char *, size_t, int));
static char *extract_delimited_string __P((char *, int *, char *, char *, char *, int));
static char *extract_dollar_brace_string __P((char *, int *, int, int));
static int skip_matched_pair __P((const char *, int, int, int, int));
static char *pos_params __P((char *, int, int, int));
@@ -1374,12 +1375,12 @@ unquote_bang (string)
#define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0)
/* This function assumes s[i] == '['; returns with s[ret] == ']' if
an array subscript is correctly parsed. */
int
skipsubscript (string, start)
/* This function assumes s[i] == open; returns with s[ret] == close; used to
parse array subscripts. FLAGS currently unused. */
static int
skip_matched_pair (string, start, open, close, flags)
const char *string;
int start;
int start, open, close, flags;
{
int i, pass_next, backq, si, c, count;
size_t slen;
@@ -1422,13 +1423,13 @@ skipsubscript (string, start)
i++;
continue;
}
else if (c == '[')
else if (c == open)
{
count++;
i++;
continue;
}
else if (c == ']')
else if (c == close)
{
count--;
if (count == 0)
@@ -1438,8 +1439,8 @@ skipsubscript (string, start)
}
else if (c == '\'' || c == '"')
{
i = (c == '\'') ? skip_single_quoted (string, slen, ++i)
: skip_double_quoted (string, slen, ++i);
i = (c == '\'') ? skip_single_quoted (ss, slen, ++i)
: skip_double_quoted (ss, slen, ++i);
/* no increment, the skip functions increment past the closing quote. */
}
else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE))
@@ -1465,6 +1466,16 @@ skipsubscript (string, start)
CQ_RETURN(i);
}
#if defined (ARRAY_VARS)
int
skipsubscript (string, start)
const char *string;
int start;
{
return (skip_matched_pair (string, start, '[', ']', 0));
}
#endif
/* Skip characters in STRING until we find a character in DELIMS, and return
the index of that character. START is the index into string at which we
begin. This is similar in spirit to strpbrk, but it returns an index into
@@ -4465,6 +4476,7 @@ unlink_fifo_list ()
for (i = 0; nfds && i < totfds; i++)
if (dev_fd_list[i])
{
itrace("unlink_fifo_list: closing %d", i);
close (i);
dev_fd_list[i] = 0;
nfds--;
+25 -25
View File
@@ -25,13 +25,13 @@ bdef
hello world
11
3
bdef hello world test expression
./array.tests: line 74: readonly: `a[5]': not a valid identifier
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
bdef hello world test expression test 2
./array.tests: line 76: readonly: `a[5]': not a valid identifier
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")'
declare -ar c='()'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")'
declare -ar c='()'
readonly -a a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
readonly -a a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")'
readonly -a c='()'
a test
declare -a BASH_ARGC='()'
@@ -40,36 +40,36 @@ declare -a BASH_LINENO='([0]="0")'
declare -a BASH_SOURCE='([0]="./array.tests")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='([0]="main")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")'
declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")'
declare -ar c='()'
declare -a d='([1]="" [2]="bdef" [5]="hello world" [6]="test" [9]="ninth element")'
declare -a e='([0]="test")'
declare -a f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")'
./array.tests: line 98: a: readonly variable
./array.tests: line 100: b[]: bad array subscript
./array.tests: line 101: b[*]: bad array subscript
./array.tests: line 102: ${b[ ]}: bad substitution
./array.tests: line 104: c[-2]: bad array subscript
./array.tests: line 105: c: bad array subscript
./array.tests: line 100: a: readonly variable
./array.tests: line 102: b[]: bad array subscript
./array.tests: line 103: b[*]: bad array subscript
./array.tests: line 104: ${b[ ]}: bad substitution
./array.tests: line 106: c[-2]: bad array subscript
./array.tests: line 107: c: bad array subscript
./array.tests: line 107: d[7]: cannot assign list to array member
./array.tests: line 109: []=abcde: bad array subscript
./array.tests: line 109: [*]=last: cannot assign to non-numeric index
./array.tests: line 109: [-65]=negative: bad array subscript
./array.tests: line 109: d[7]: cannot assign list to array member
./array.tests: line 111: []=abcde: bad array subscript
./array.tests: line 111: [*]=last: cannot assign to non-numeric index
./array.tests: line 111: [-65]=negative: bad array subscript
declare -a BASH_ARGC='()'
declare -a BASH_ARGV='()'
declare -a BASH_LINENO='([0]="0")'
declare -a BASH_SOURCE='([0]="./array.tests")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='([0]="main")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")'
declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")'
declare -ar c='()'
declare -a d='([1]="test test")'
declare -a f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")'
./array.tests: line 117: unset: ps1: not an array variable
./array.tests: line 121: declare: c: cannot destroy array variables in this way
./array.tests: line 119: unset: ps1: not an array variable
./array.tests: line 123: declare: c: cannot destroy array variables in this way
this of
this is a test of read using arrays
this test
@@ -80,7 +80,7 @@ declare -a BASH_LINENO='([0]="0")'
declare -a BASH_SOURCE='([0]="./array.tests")'
declare -a DIRSTACK='()'
declare -a FUNCNAME='([0]="main")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")'
declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")'
declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")'
declare -ar c='()'
declare -a d='([1]="test test")'
@@ -127,7 +127,7 @@ grep [ 123 ] *
6 7 9 5
length = 3
value = new1 new2 new3
./array.tests: line 237: narray: unbound variable
./array.tests: line 239: narray: unbound variable
./array1.sub: line 1: syntax error near unexpected token `('
./array1.sub: line 1: `printf "%s\n" -a a=(a 'b c')'
./array2.sub: line 1: syntax error near unexpected token `('
@@ -152,10 +152,10 @@ for case if then else
12 14 16 18 20
4414758999202
aaa bbb
./array.tests: line 287: syntax error near unexpected token `<>'
./array.tests: line 287: `metas=( <> < > ! )'
./array.tests: line 288: syntax error near unexpected token `<>'
./array.tests: line 288: `metas=( [1]=<> [2]=< [3]=> [4]=! )'
./array.tests: line 289: syntax error near unexpected token `<>'
./array.tests: line 289: `metas=( <> < > ! )'
./array.tests: line 290: syntax error near unexpected token `<>'
./array.tests: line 290: `metas=( [1]=<> [2]=< [3]=> [4]=! )'
abc 3
case 4
abc case if then else 5
+2
View File
@@ -69,6 +69,8 @@ echo ${#a[5]}
echo ${#a[@]}
a[4+5/2]="test expression"
declare a["7 + 8"]="test 2"
a[7 + 8]="test 2"
echo ${a[@]}
readonly a[5]
+18 -9
View File
@@ -6,17 +6,17 @@ declare -A BASH_CMDS='()'
declare -A fluff='([bar]="two" [foo]="one" )'
declare -A fluff='([bar]="two" [foo]="one" )'
declare -A fluff='([bar]="two" )'
declare -A fluff='([bar]="newval" )'
./assoc.tests: line 24: chaff: four: must use subscript when assigning associative array
declare -A fluff='([bar]="newval" [qux]="assigned" )'
./assoc.tests: line 26: chaff: four: must use subscript when assigning associative array
declare -A BASH_ALIASES='()'
declare -A BASH_CMDS='()'
declare -Ai chaff='([one]="10" [zero]="5" )'
declare -Ar waste='([version]="4.0-devel" [source]="./assoc.tests" [lineno]="26" [pid]="42134" )'
declare -Ar waste='([version]="4.0-devel" [source]="./assoc.tests" [lineno]="28" [pid]="42134" )'
declare -A wheat='([one]="a" [zero]="0" [two]="b" [three]="c" )'
declare -A chaff='([one]="10" [hello world]="flip" [zero]="5" )'
./assoc.tests: line 36: unset: waste: cannot unset: readonly variable
./assoc.tests: line 37: chaff[*]: bad array subscript
./assoc.tests: line 38: [*]=12: invalid associative array key
./assoc.tests: line 38: unset: waste: cannot unset: readonly variable
./assoc.tests: line 39: chaff[*]: bad array subscript
./assoc.tests: line 40: [*]=12: invalid associative array key
declare -A chaff='([one]="a" [hello world]="flip" )'
flip
argv[1] = <a>
@@ -31,9 +31,9 @@ argv[2] = <flip>
argv[3] = <multiple>
argv[4] = <words>
argv[1] = <a flip multiple words>
./assoc.tests: line 55: declare: chaff: cannot destroy array variables in this way
./assoc.tests: line 57: chaff[*]: bad array subscript
./assoc.tests: line 58: [*]=12: invalid associative array key
./assoc.tests: line 57: declare: chaff: cannot destroy array variables in this way
./assoc.tests: line 59: chaff[*]: bad array subscript
./assoc.tests: line 60: [*]=12: invalid associative array key
declare -A wheat='([six]="6" [foo bar]="qux qix" )'
argv[1] = <qux>
argv[2] = <qix>
@@ -132,3 +132,12 @@ argv[1] = <FOOQ>
argv[2] = <>
argv[3] = <BARQ>
argv[4] = <>
abc
def
def
./assoc5.sub: line 13: declare: `myarray[foo[bar]=bleh': not a valid identifier
abc def bleh
myarray=([a]a]="abc" []]="def" [a]=test1;#a]="123" [foo]="bleh" )
123
myarray=([a]a]="abc" [a]=test2;#a]="def" []]="def" [a]=test1;#a]="123" [foo]="bleh" )
+4
View File
@@ -12,6 +12,8 @@ unset fluff[foo]
declare -p fluff
fluff[bar]=newval
declare fluff[qux]=assigned
declare -p fluff
unset fluff
@@ -171,3 +173,5 @@ ${THIS_SH} ./assoc2.sub
${THIS_SH} ./assoc3.sub
${THIS_SH} ./assoc4.sub
${THIS_SH} ./assoc5.sub
+27
View File
@@ -0,0 +1,27 @@
declare -A myarray
# this needs fixes to skipsubscript
myarray["a]a"]="abc"
echo ${myarray["a]a"]}
myarray[$(echo ])]=def
echo ${myarray[']']}
echo ${myarray[\]]}
declare myarray["foo[bar"]=bleh
myarray["foo"]=bleh
echo "${myarray[@]}"
bar='a]=test1;#a'
myarray[$bar]=123
set | grep ^myarray=
echo ${myarray[a]}
echo "${myarray['a]=test1;#a']}"
myarray['a]=test2;#a']="def"
set | grep ^myarray=
+5
View File
@@ -136,6 +136,11 @@ funcc ()
func-a
func-b
func-c
foo-bar
foo-bar ()
{
:
}
expect 5 10
5 10
expect 20
+10
View File
@@ -15,3 +15,13 @@ type funcc
funca
funcb
funcc
# when not in posix mode, bash allows non-identifiers as function names
set +o posix
foo-bar()
{
:;
}
declare -F foo-bar
declare -f foo-bar
+2 -1
View File
@@ -58,6 +58,7 @@ qux
bar
qux
./heredoc.tests: line 96: warning: here-document at line 94 delimited by end-of-file (wanted `EOF')
comsub here-string
./heredoc.tests: line 100: warning: here-document at line 98 delimited by end-of-file (wanted `EOF')
hi
there
+4
View File
@@ -88,6 +88,10 @@ ${THIS_SH} -c 'type fff'
${THIS_SH} ./heredoc1.sub
echo $(
cat <<< "comsub here-string"
)
# check that end of file delimits a here-document
# THIS MUST BE LAST!
+3 -1
View File
@@ -504,6 +504,8 @@ h
--blah
lah
lah
abcde abcfg abchi
foode foofg foohi
argv[1] = <>
argv[1] = <+>
argv[1] = <+^?>
@@ -537,4 +539,4 @@ bar ()
}
argv[1] = </>
argv[1] = </>
./new-exp.tests: line 568: ABXD: parameter unset
./new-exp.tests: line 576: ABXD: parameter unset
+8
View File
@@ -553,6 +553,14 @@ echo ${var/#/--}
echo ${var[@]##?}
echo ${var##?}
unset var
var=(abcde abcfg abchi)
# problems with anchoring pattern replacements
echo ${var[*]//#abc/foo}
echo ${var[*]/#abc/foo}
unset var
${THIS_SH} ./new-exp6.sub
${THIS_SH} ./new-exp7.sub
+2
View File
@@ -307,3 +307,5 @@ printf -v var "%s" '/current/working/directory/*.@(m3|i3|ig|mg)'
shopt -s nullglob extglob
echo "x$(printf "%b" @(hugo))x"
printf -v var "%b" @(hugo); echo "x${var}x"
${THIS_SH} ./printf2.sub
+6
View File
@@ -0,0 +1,6 @@
export LANG=en_US.UTF-8
case $(printf %d\\n \'À) in
192) exit 0;;
*) echo "printf2.sub: multibyte character conversion failed" >&2 ; exit 2 ;;
esac
+19
View File
@@ -61,3 +61,22 @@ bar ()
{
echo $(<x1)
}
foo is a function
foo ()
{
echo;
cat <<END
bar
END
cat <<EOF
qux
EOF
}
bar
qux
bar
qux
+2
View File
@@ -89,3 +89,5 @@ f() {
type f | cat -v
${THIS_SH} type1.sub
${THIS_SH} type2.sub
+16
View File
@@ -0,0 +1,16 @@
foo()
{
echo
cat <<END
bar
END
cat <<EOF
qux
EOF
}
type foo
foo
eval "$(type foo | sed 1d)"
foo