]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20090226 snapshot
authorChet Ramey <chet.ramey@case.edu>
Fri, 9 Dec 2011 01:05:53 +0000 (20:05 -0500)
committerChet Ramey <chet.ramey@case.edu>
Fri, 9 Dec 2011 01:05:53 +0000 (20:05 -0500)
56 files changed:
CWRU/CWRU.chlog
CWRU/CWRU.chlog~
MANIFEST
arrayfunc.c
assoc.c
assoc.c~ [new file with mode: 0644]
autom4te.cache/output.0
autom4te.cache/traces.0
builtins/declare.def
configure
doc/bash.0
doc/bash.1
doc/bash.html
doc/bash.ps
doc/bashref.aux
doc/bashref.bt
doc/bashref.bts
doc/bashref.dvi
doc/bashref.html
doc/bashref.info
doc/bashref.log
doc/bashref.ps
doc/bashref.texi
doc/builtins.0
doc/builtins.ps
doc/rbash.ps
examples/loadables/finfo.c
execute_cmd.c
execute_cmd.c~ [new file with mode: 0644]
hashlib.c
jobs.c
jobs.c~ [new file with mode: 0644]
parse.y
parse.y~
po/cs.po
po/sv.po
sig.c
sig.c~ [new file with mode: 0644]
subst.c
subst.c~
tests/array.right
tests/array.tests
tests/assoc.right
tests/assoc.tests
tests/assoc5.sub [new file with mode: 0644]
tests/func.right
tests/func2.sub
tests/heredoc.right
tests/heredoc.tests
tests/new-exp.right
tests/new-exp.tests
tests/printf.tests
tests/printf2.sub [new file with mode: 0644]
tests/type.right
tests/type.tests
tests/type2.sub [new file with mode: 0644]

index 802caed8251f6ac764a18d9f49cd5ccfa8fb6039..4fba5a62819a830ffdd8c7a22ee5a087bd97694b 100644 (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
index b4c6c42f74ec1ec7a1265360e40f7176422eb6f4..c641acea853d7cd78e6b0e69888b60b7c2d4b12b 100644 (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
index 1c11e12c449c6538b01b181b4060d3f4d3290621..ea772d580e225182960f7752176cff6edfdc391a 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -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
index 672c33657a8b6c5f109cb1b9e1a632f975b0a073..88b56d5a508f43f2de3cc11184883b3feb68bd12 100644 (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
diff --git a/assoc.c b/assoc.c
index 476facb340dcd3f429f3669220dea10d6036076a..4920648393470bae13ed8108fb71b9f2c8d95ed0 100644 (file)
--- a/assoc.c
+++ b/assoc.c
@@ -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);
     }
 
diff --git a/assoc.c~ b/assoc.c~
new file mode 100644 (file)
index 0000000..0b1a228
--- /dev/null
+++ b/assoc.c~
@@ -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 */
index 5cb59060658dbba99509a259988a7f6adc36b3bd..120e3e8bb83a533f12071fa7c8de238758b44478 100644 (file)
@@ -1,7 +1,7 @@
 @%:@! /bin/sh
 @%:@ From configure.in for Bash 4.0, version 4.013.
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.62 for bash 4.0-maint.
+@%:@ Generated by GNU Autoconf 2.63 for bash 4.0-maint.
 @%:@
 @%:@ Report bugs to <bug-bash@gnu.org>.
 @%:@ 
@@ -640,157 +640,157 @@ ac_includes_default="\
 
 ac_header_list=
 ac_func_list=
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-EMACS
-lispdir
-DEBUGGER_START_FILE
-TESTSCRIPT
-PURIFY
-MALLOC_TARGET
-MALLOC_SRC
-MALLOC_LIB
-MALLOC_LIBRARY
-MALLOC_LDFLAGS
-MALLOC_DEP
-HELPDIR
-HELPDIRDEFINE
-HELPINSTALL
-HELPSTRINGS
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-CPP
-GREP
-EGREP
-CROSS_COMPILE
-SIGNAMES_H
-SIGNAMES_O
-CC_FOR_BUILD
-STATIC_LD
-CFLAGS_FOR_BUILD
-CPPFLAGS_FOR_BUILD
-LDFLAGS_FOR_BUILD
-RL_VERSION
-RL_MAJOR
-RL_MINOR
-READLINE_LIB
-READLINE_DEP
-RL_LIBDIR
-RL_INCLUDEDIR
-RL_INCLUDE
-HISTORY_LIB
-HISTORY_DEP
-HIST_LIBDIR
-TILDE_LIB
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-AR
-RANLIB
-YACC
-YFLAGS
-SET_MAKE
-MAKE_SHELL
-SIZE
-MKINSTALLDIRS
-USE_NLS
-MSGFMT
-GMSGFMT
-XGETTEXT
-MSGMERGE
-ALLOCA
-GLIBC21
-LIBICONV
-LTLIBICONV
-INTLBISON
-BUILD_INCLUDED_LIBINTL
-USE_INCLUDED_LIBINTL
-CATOBJEXT
-DATADIRNAME
-INSTOBJEXT
-GENCAT
-INTLOBJS
-INTL_LIBTOOL_SUFFIX_PREFIX
-INTLLIBS
-LIBINTL
-LTLIBINTL
-POSUB
-LIB@&t@OBJS
-INTL_DEP
-INTL_INC
-LIBINTL_H
-SIGLIST_O
-TERMCAP_LIB
-TERMCAP_DEP
-JOBS_O
-SHOBJ_CC
-SHOBJ_CFLAGS
-SHOBJ_LD
-SHOBJ_LDFLAGS
-SHOBJ_XLDFLAGS
-SHOBJ_LIBS
-SHOBJ_STATUS
-PROFILE_FLAGS
-incdir
-BUILD_DIR
-ARFLAGS
-BASHVERS
-RELSTATUS
-DEBUG
-MALLOC_DEBUG
-LOCAL_LIBS
-LOCAL_CFLAGS
-LOCAL_LDFLAGS
+ac_subst_vars='LTLIBOBJS
 LOCAL_DEFS
-LTLIBOBJS'
+LOCAL_LDFLAGS
+LOCAL_CFLAGS
+LOCAL_LIBS
+MALLOC_DEBUG
+DEBUG
+RELSTATUS
+BASHVERS
+ARFLAGS
+BUILD_DIR
+incdir
+PROFILE_FLAGS
+SHOBJ_STATUS
+SHOBJ_LIBS
+SHOBJ_XLDFLAGS
+SHOBJ_LDFLAGS
+SHOBJ_LD
+SHOBJ_CFLAGS
+SHOBJ_CC
+JOBS_O
+TERMCAP_DEP
+TERMCAP_LIB
+SIGLIST_O
+LIBINTL_H
+INTL_INC
+INTL_DEP
+LIB@&t@OBJS
+POSUB
+LTLIBINTL
+LIBINTL
+INTLLIBS
+INTL_LIBTOOL_SUFFIX_PREFIX
+INTLOBJS
+GENCAT
+INSTOBJEXT
+DATADIRNAME
+CATOBJEXT
+USE_INCLUDED_LIBINTL
+BUILD_INCLUDED_LIBINTL
+INTLBISON
+LTLIBICONV
+LIBICONV
+GLIBC21
+ALLOCA
+MSGMERGE
+XGETTEXT
+GMSGFMT
+MSGFMT
+USE_NLS
+MKINSTALLDIRS
+SIZE
+MAKE_SHELL
+SET_MAKE
+YFLAGS
+YACC
+RANLIB
+AR
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+TILDE_LIB
+HIST_LIBDIR
+HISTORY_DEP
+HISTORY_LIB
+RL_INCLUDE
+RL_INCLUDEDIR
+RL_LIBDIR
+READLINE_DEP
+READLINE_LIB
+RL_MINOR
+RL_MAJOR
+RL_VERSION
+LDFLAGS_FOR_BUILD
+CPPFLAGS_FOR_BUILD
+CFLAGS_FOR_BUILD
+STATIC_LD
+CC_FOR_BUILD
+SIGNAMES_O
+SIGNAMES_H
+CROSS_COMPILE
+EGREP
+GREP
+CPP
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+HELPSTRINGS
+HELPINSTALL
+HELPDIRDEFINE
+HELPDIR
+MALLOC_DEP
+MALLOC_LDFLAGS
+MALLOC_LIBRARY
+MALLOC_LIB
+MALLOC_SRC
+MALLOC_TARGET
+PURIFY
+TESTSCRIPT
+DEBUGGER_START_FILE
+lispdir
+EMACS
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
@@ -1280,9 +1280,9 @@ fi
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: Unrecognized options: $ac_unrecognized_opts" >&2
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
    { (exit 1); exit 1; }; } ;;
-    *)     $as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1335,7 +1335,7 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: Working directory cannot be determined" >&2
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
    { (exit 1); exit 1; }; }
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
   { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
@@ -1649,7 +1649,7 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 bash configure 4.0-maint
-generated by GNU Autoconf 2.62
+generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -1663,7 +1663,7 @@ This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by bash $as_me 4.0-maint, which was
-generated by GNU Autoconf 2.62.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
 
@@ -1786,8 +1786,8 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -1995,6 +1995,8 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
   { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
   { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
@@ -2898,12 +2900,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -3102,12 +3100,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -3117,11 +3111,13 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:$LINENO: checking for C compiler version" >&5
@@ -3251,11 +3247,13 @@ if test -z "$ac_file"; then
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: C compiler cannot create executables
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
@@ -3283,13 +3281,15 @@ $as_echo "$ac_try_echo") >&5
     if test "$cross_compiling" = maybe; then
        cross_compiling=yes
     else
-       { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
     fi
   fi
 fi
@@ -3332,11 +3332,13 @@ for ac_file in conftest.exe conftest conftest.*; do
   esac
 done
 else
-  { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest$ac_cv_exeext
@@ -3390,11 +3392,13 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
@@ -3810,7 +3814,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
 $as_echo "$ac_cv_lib_cposix_strerror" >&6; }
-if test $ac_cv_lib_cposix_strerror = yes; then
+if test "x$ac_cv_lib_cposix_strerror" = x""yes; then
   LIBS="$LIBS -lcposix"
 fi
 
@@ -4037,11 +4041,13 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 ac_ext=c
@@ -4424,8 +4430,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -4568,7 +4575,7 @@ fi
 $as_echo "$ac_cv_header_minix_config_h" >&6; }
 
 fi
-if test $ac_cv_header_minix_config_h = yes; then
+if test "x$ac_cv_header_minix_config_h" = x""yes; then
   MINIX=yes
 else
   MINIX=
@@ -5267,7 +5274,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5
 $as_echo "$ac_cv_func_tgetent" >&6; }
-if test $ac_cv_func_tgetent = yes; then
+if test "x$ac_cv_func_tgetent" = x""yes; then
   bash_cv_termcap_lib=libc
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5
@@ -5335,7 +5342,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5
 $as_echo "$ac_cv_lib_termcap_tgetent" >&6; }
-if test $ac_cv_lib_termcap_tgetent = yes; then
+if test "x$ac_cv_lib_termcap_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtermcap
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5
@@ -5403,7 +5410,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5
 $as_echo "$ac_cv_lib_tinfo_tgetent" >&6; }
-if test $ac_cv_lib_tinfo_tgetent = yes; then
+if test "x$ac_cv_lib_tinfo_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtinfo
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5
@@ -5471,7 +5478,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5
 $as_echo "$ac_cv_lib_curses_tgetent" >&6; }
-if test $ac_cv_lib_curses_tgetent = yes; then
+if test "x$ac_cv_lib_curses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libcurses
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5
@@ -5539,7 +5546,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5
 $as_echo "$ac_cv_lib_ncurses_tgetent" >&6; }
-if test $ac_cv_lib_ncurses_tgetent = yes; then
+if test "x$ac_cv_lib_ncurses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libncurses
 else
   bash_cv_termcap_lib=gnutermcap
@@ -6073,12 +6080,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     RANLIB=$ac_ct_RANLIB
@@ -6378,15 +6381,15 @@ if test "${ac_cv_c_bigendian+set}" = set; then
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
-    # See if __BIG_ENDIAN__ or __LITTLE_ENDIAN__ is defined.
-       cat >conftest.$ac_ext <<_ACEOF
+    # See if we're dealing with a universal compiler.
+    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#if ! (defined __BIG_ENDIAN__ || defined __LITTLE_ENDIAN__)
-              neither is defined;
+#ifndef __APPLE_CC__
+              not a universal capable compiler
             #endif
             typedef int dummy;
            
@@ -6409,7 +6412,13 @@ $as_echo "$ac_try_echo") >&5
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_c_bigendian=universal
+  
+       # Check for potential -arch flags.  It is not universal unless
+       # there are some -arch flags.  Note that *ppc* also matches
+       # ppc64.  This check is also rather less than ideal.
+       case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
+         *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
+       esac
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -6757,7 +6766,12 @@ _ACEOF
    no)
       ;; #(
    universal)
-      ;; #(
+             
+cat >>confdefs.h <<\_ACEOF
+@%:@define AC_APPLE_UNIVERSAL_BUILD 1
+_ACEOF
+
+     ;; #(
    *)
      { { $as_echo "$as_me:$LINENO: error: unknown endianness
  presetting ac_cv_c_bigendian=no (or yes) will help" >&5
@@ -7508,7 +7522,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
 $as_echo "$ac_cv_type_off_t" >&6; }
-if test $ac_cv_type_off_t = yes; then
+if test "x$ac_cv_type_off_t" = x""yes; then
   :
 else
   
@@ -7612,7 +7626,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
 $as_echo "$ac_cv_type_size_t" >&6; }
-if test $ac_cv_type_size_t = yes; then
+if test "x$ac_cv_type_size_t" = x""yes; then
   :
 else
   
@@ -7903,8 +7917,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define CRAY_STACKSEG_END $ac_func
@@ -8139,8 +8154,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -8240,8 +8256,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -9620,8 +9637,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -9746,8 +9764,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -11035,8 +11054,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
 _ACEOF
@@ -11428,8 +11448,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -11600,8 +11621,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -11763,8 +11785,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -11914,8 +11937,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -12258,8 +12282,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define CRAY_STACKSEG_END $ac_func
@@ -12511,8 +12536,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -12602,7 +12628,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5
 $as_echo "$ac_cv_func__doprnt" >&6; }
-if test $ac_cv_func__doprnt = yes; then
+if test "x$ac_cv_func__doprnt" = x""yes; then
   
 cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_DOPRNT 1
@@ -12879,7 +12905,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func___setostype" >&5
 $as_echo "$ac_cv_func___setostype" >&6; }
-if test $ac_cv_func___setostype = yes; then
+if test "x$ac_cv_func___setostype" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_SETOSTYPE 1
 _ACEOF
@@ -12971,7 +12997,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wait3" >&5
 $as_echo "$ac_cv_func_wait3" >&6; }
-if test $ac_cv_func_wait3 = yes; then
+if test "x$ac_cv_func_wait3" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_WAIT3 1
 _ACEOF
@@ -13063,7 +13089,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_isinf" >&5
 $as_echo "$ac_cv_func_isinf" >&6; }
-if test $ac_cv_func_isinf = yes; then
+if test "x$ac_cv_func_isinf" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_ISINF_IN_LIBC 1
 _ACEOF
@@ -13155,7 +13181,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_isnan" >&5
 $as_echo "$ac_cv_func_isnan" >&6; }
-if test $ac_cv_func_isnan = yes; then
+if test "x$ac_cv_func_isnan" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_ISNAN_IN_LIBC 1
 _ACEOF
@@ -13248,7 +13274,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mkfifo" >&5
 $as_echo "$ac_cv_func_mkfifo" >&6; }
-if test $ac_cv_func_mkfifo = yes; then
+if test "x$ac_cv_func_mkfifo" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_MKFIFO 1
 _ACEOF
@@ -13377,8 +13403,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13477,8 +13504,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13616,8 +13644,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13720,8 +13749,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13825,8 +13855,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13927,8 +13958,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14034,8 +14066,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14148,8 +14181,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14256,8 +14290,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14327,7 +14362,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_confstr" >&5
 $as_echo "$ac_cv_have_decl_confstr" >&6; }
-if test $ac_cv_have_decl_confstr = yes; then
+if test "x$ac_cv_have_decl_confstr" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_CONFSTR 1
@@ -14396,7 +14431,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_printf" >&5
 $as_echo "$ac_cv_have_decl_printf" >&6; }
-if test $ac_cv_have_decl_printf = yes; then
+if test "x$ac_cv_have_decl_printf" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_PRINTF 1
@@ -14465,7 +14500,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sbrk" >&5
 $as_echo "$ac_cv_have_decl_sbrk" >&6; }
-if test $ac_cv_have_decl_sbrk = yes; then
+if test "x$ac_cv_have_decl_sbrk" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_SBRK 1
@@ -14534,7 +14569,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_setregid" >&5
 $as_echo "$ac_cv_have_decl_setregid" >&6; }
-if test $ac_cv_have_decl_setregid = yes; then
+if test "x$ac_cv_have_decl_setregid" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_SETREGID 1
@@ -14603,7 +14638,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strcpy" >&5
 $as_echo "$ac_cv_have_decl_strcpy" >&6; }
-if test $ac_cv_have_decl_strcpy = yes; then
+if test "x$ac_cv_have_decl_strcpy" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_STRCPY 1
@@ -14672,7 +14707,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strsignal" >&5
 $as_echo "$ac_cv_have_decl_strsignal" >&6; }
-if test $ac_cv_have_decl_strsignal = yes; then
+if test "x$ac_cv_have_decl_strsignal" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_STRSIGNAL 1
@@ -14742,7 +14777,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtold" >&5
 $as_echo "$ac_cv_have_decl_strtold" >&6; }
-if test $ac_cv_have_decl_strtold = yes; then
+if test "x$ac_cv_have_decl_strtold" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_STRTOLD 1
@@ -15432,8 +15467,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -15540,8 +15576,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -15968,8 +16005,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16120,8 +16158,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16221,8 +16260,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -16519,8 +16559,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -16681,8 +16722,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16831,8 +16873,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16981,8 +17024,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -17077,7 +17121,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5
 $as_echo "$ac_cv_func_mbrlen" >&6; }
-if test $ac_cv_func_mbrlen = yes; then
+if test "x$ac_cv_func_mbrlen" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_MBRLEN 1
 _ACEOF
@@ -17169,7 +17213,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbscmp" >&5
 $as_echo "$ac_cv_func_mbscmp" >&6; }
-if test $ac_cv_func_mbscmp = yes; then
+if test "x$ac_cv_func_mbscmp" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_MBSCMP 1
 _ACEOF
@@ -17261,7 +17305,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5
 $as_echo "$ac_cv_func_mbsrtowcs" >&6; }
-if test $ac_cv_func_mbsrtowcs = yes; then
+if test "x$ac_cv_func_mbsrtowcs" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_MBSRTOWCS 1
 _ACEOF
@@ -17354,7 +17398,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5
 $as_echo "$ac_cv_func_wcrtomb" >&6; }
-if test $ac_cv_func_wcrtomb = yes; then
+if test "x$ac_cv_func_wcrtomb" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_WCRTOMB 1
 _ACEOF
@@ -17446,7 +17490,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5
 $as_echo "$ac_cv_func_wcscoll" >&6; }
-if test $ac_cv_func_wcscoll = yes; then
+if test "x$ac_cv_func_wcscoll" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_WCSCOLL 1
 _ACEOF
@@ -17538,7 +17582,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5
 $as_echo "$ac_cv_func_wcsdup" >&6; }
-if test $ac_cv_func_wcsdup = yes; then
+if test "x$ac_cv_func_wcsdup" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_WCSDUP 1
 _ACEOF
@@ -17630,7 +17674,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcwidth" >&5
 $as_echo "$ac_cv_func_wcwidth" >&6; }
-if test $ac_cv_func_wcwidth = yes; then
+if test "x$ac_cv_func_wcwidth" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_WCWIDTH 1
 _ACEOF
@@ -17722,7 +17766,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wctype" >&5
 $as_echo "$ac_cv_func_wctype" >&6; }
-if test $ac_cv_func_wctype = yes; then
+if test "x$ac_cv_func_wctype" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define HAVE_WCTYPE 1
 _ACEOF
@@ -17900,8 +17944,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -18225,7 +18270,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_LIBDL 1
 _ACEOF
@@ -18327,8 +18372,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -18397,7 +18443,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5
 $as_echo "$ac_cv_have_decl_sys_siglist" >&6; }
-if test $ac_cv_have_decl_sys_siglist = yes; then
+if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_SYS_SIGLIST 1
@@ -18559,7 +18605,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwent" >&5
 $as_echo "$ac_cv_lib_sun_getpwent" >&6; }
-if test $ac_cv_lib_sun_getpwent = yes; then
+if test "x$ac_cv_lib_sun_getpwent" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_LIBSUN 1
 _ACEOF
@@ -18647,7 +18693,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_getpeername" >&5
 $as_echo "$ac_cv_lib_socket_getpeername" >&6; }
-if test $ac_cv_lib_socket_getpeername = yes; then
+if test "x$ac_cv_lib_socket_getpeername" = x""yes; then
   bash_cv_have_socklib=yes
 else
   bash_cv_have_socklib=no
@@ -18737,7 +18783,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_t_open" >&5
 $as_echo "$ac_cv_lib_nsl_t_open" >&6; }
-if test $ac_cv_lib_nsl_t_open = yes; then
+if test "x$ac_cv_lib_nsl_t_open" = x""yes; then
   bash_cv_have_libnsl=yes
 else
   bash_cv_have_libnsl=no
@@ -19078,7 +19124,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
 $as_echo "$ac_cv_type_off_t" >&6; }
-if test $ac_cv_type_off_t = yes; then
+if test "x$ac_cv_type_off_t" = x""yes; then
   :
 else
   
@@ -19182,7 +19228,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
 $as_echo "$ac_cv_type_mode_t" >&6; }
-if test $ac_cv_type_mode_t = yes; then
+if test "x$ac_cv_type_mode_t" = x""yes; then
   :
 else
   
@@ -19324,7 +19370,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
 $as_echo "$ac_cv_type_pid_t" >&6; }
-if test $ac_cv_type_pid_t = yes; then
+if test "x$ac_cv_type_pid_t" = x""yes; then
   :
 else
   
@@ -19428,7 +19474,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
 $as_echo "$ac_cv_type_size_t" >&6; }
-if test $ac_cv_type_size_t = yes; then
+if test "x$ac_cv_type_size_t" = x""yes; then
   :
 else
   
@@ -19532,7 +19578,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5
 $as_echo "$ac_cv_type_ssize_t" >&6; }
-if test $ac_cv_type_ssize_t = yes; then
+if test "x$ac_cv_type_ssize_t" = x""yes; then
   :
 else
   
@@ -19636,7 +19682,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_time_t" >&5
 $as_echo "$ac_cv_type_time_t" >&6; }
-if test $ac_cv_type_time_t = yes; then
+if test "x$ac_cv_type_time_t" = x""yes; then
   :
 else
   
@@ -19993,7 +20039,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5
 $as_echo "$ac_cv_type_sig_atomic_t" >&6; }
-if test $ac_cv_type_sig_atomic_t = yes; then
+if test "x$ac_cv_type_sig_atomic_t" = x""yes; then
   :
 else
   
@@ -20257,11 +20303,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_char=$ac_lo;;
 '') if test "$ac_cv_type_char" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char=0
    fi ;;
@@ -20337,11 +20385,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_char" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char=0
    fi
@@ -20612,11 +20662,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_short=$ac_lo;;
 '') if test "$ac_cv_type_short" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_short=0
    fi ;;
@@ -20692,11 +20744,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_short" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_short=0
    fi
@@ -20967,11 +21021,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_int=$ac_lo;;
 '') if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_int=0
    fi ;;
@@ -21047,11 +21103,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_int=0
    fi
@@ -21322,11 +21380,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_long=$ac_lo;;
 '') if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long=0
    fi ;;
@@ -21402,11 +21462,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long=0
    fi
@@ -21677,11 +21739,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_char_p=$ac_lo;;
 '') if test "$ac_cv_type_char_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char_p=0
    fi ;;
@@ -21757,11 +21821,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_char_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char_p=0
    fi
@@ -22032,11 +22098,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_double=$ac_lo;;
 '') if test "$ac_cv_type_double" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_double=0
    fi ;;
@@ -22112,11 +22180,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_double" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_double=0
    fi
@@ -22387,11 +22457,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_long_long=$ac_lo;;
 '') if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long_long=0
    fi ;;
@@ -22467,11 +22539,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long_long=0
    fi
@@ -22586,7 +22660,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_int" >&5
 $as_echo "$ac_cv_type_u_int" >&6; }
-if test $ac_cv_type_u_int = yes; then
+if test "x$ac_cv_type_u_int" = x""yes; then
   :
 else
   
@@ -22690,7 +22764,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_long" >&5
 $as_echo "$ac_cv_type_u_long" >&6; }
-if test $ac_cv_type_u_long = yes; then
+if test "x$ac_cv_type_u_long" = x""yes; then
   :
 else
   
@@ -22797,7 +22871,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5
 $as_echo "$ac_cv_type_bits16_t" >&6; }
-if test $ac_cv_type_bits16_t = yes; then
+if test "x$ac_cv_type_bits16_t" = x""yes; then
   :
 else
   
@@ -22902,7 +22976,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5
 $as_echo "$ac_cv_type_bits16_t" >&6; }
-if test $ac_cv_type_bits16_t = yes; then
+if test "x$ac_cv_type_bits16_t" = x""yes; then
   :
 else
   
@@ -23007,7 +23081,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5
 $as_echo "$ac_cv_type_bits16_t" >&6; }
-if test $ac_cv_type_bits16_t = yes; then
+if test "x$ac_cv_type_bits16_t" = x""yes; then
   :
 else
   
@@ -23115,7 +23189,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5
 $as_echo "$ac_cv_type_u_bits16_t" >&6; }
-if test $ac_cv_type_u_bits16_t = yes; then
+if test "x$ac_cv_type_u_bits16_t" = x""yes; then
   :
 else
   
@@ -23220,7 +23294,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5
 $as_echo "$ac_cv_type_u_bits16_t" >&6; }
-if test $ac_cv_type_u_bits16_t = yes; then
+if test "x$ac_cv_type_u_bits16_t" = x""yes; then
   :
 else
   
@@ -23325,7 +23399,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5
 $as_echo "$ac_cv_type_u_bits16_t" >&6; }
-if test $ac_cv_type_u_bits16_t = yes; then
+if test "x$ac_cv_type_u_bits16_t" = x""yes; then
   :
 else
   
@@ -23433,7 +23507,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5
 $as_echo "$ac_cv_type_bits32_t" >&6; }
-if test $ac_cv_type_bits32_t = yes; then
+if test "x$ac_cv_type_bits32_t" = x""yes; then
   :
 else
   
@@ -23538,7 +23612,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5
 $as_echo "$ac_cv_type_bits32_t" >&6; }
-if test $ac_cv_type_bits32_t = yes; then
+if test "x$ac_cv_type_bits32_t" = x""yes; then
   :
 else
   
@@ -23643,7 +23717,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5
 $as_echo "$ac_cv_type_bits32_t" >&6; }
-if test $ac_cv_type_bits32_t = yes; then
+if test "x$ac_cv_type_bits32_t" = x""yes; then
   :
 else
   
@@ -23751,7 +23825,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5
 $as_echo "$ac_cv_type_u_bits32_t" >&6; }
-if test $ac_cv_type_u_bits32_t = yes; then
+if test "x$ac_cv_type_u_bits32_t" = x""yes; then
   :
 else
   
@@ -23856,7 +23930,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5
 $as_echo "$ac_cv_type_u_bits32_t" >&6; }
-if test $ac_cv_type_u_bits32_t = yes; then
+if test "x$ac_cv_type_u_bits32_t" = x""yes; then
   :
 else
   
@@ -23961,7 +24035,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5
 $as_echo "$ac_cv_type_u_bits32_t" >&6; }
-if test $ac_cv_type_u_bits32_t = yes; then
+if test "x$ac_cv_type_u_bits32_t" = x""yes; then
   :
 else
   
@@ -24069,7 +24143,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
   
@@ -24174,7 +24248,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
   
@@ -24279,7 +24353,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
   
@@ -24384,7 +24458,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
   
@@ -24489,7 +24563,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
   
@@ -24598,7 +24672,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
   
@@ -24703,7 +24777,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
   
@@ -24808,7 +24882,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
   
@@ -24913,7 +24987,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
   
@@ -26432,7 +26506,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_termios_c_line" >&5
 $as_echo "$ac_cv_member_struct_termios_c_line" >&6; }
-if test $ac_cv_member_struct_termios_c_line = yes; then
+if test "x$ac_cv_member_struct_termios_c_line" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define TERMIOS_LDISC 1
 _ACEOF
@@ -26544,7 +26618,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_termio_c_line" >&5
 $as_echo "$ac_cv_member_struct_termio_c_line" >&6; }
-if test $ac_cv_member_struct_termio_c_line = yes; then
+if test "x$ac_cv_member_struct_termio_c_line" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 @%:@define TERMIO_LDISC 1
 _ACEOF
@@ -27053,7 +27127,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5
 $as_echo "$ac_cv_member_struct_stat_st_blocks" >&6; }
-if test $ac_cv_member_struct_stat_st_blocks = yes; then
+if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_STRUCT_STAT_ST_BLOCKS 1
@@ -27225,7 +27299,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5
 $as_echo "$ac_cv_member_struct_tm_tm_zone" >&6; }
-if test $ac_cv_member_struct_tm_tm_zone = yes; then
+if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_STRUCT_TM_TM_ZONE 1
@@ -27295,7 +27369,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5
 $as_echo "$ac_cv_have_decl_tzname" >&6; }
-if test $ac_cv_have_decl_tzname = yes; then
+if test "x$ac_cv_have_decl_tzname" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_TZNAME 1
@@ -27742,7 +27816,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fpurge" >&5
 $as_echo "$ac_cv_have_decl_fpurge" >&6; }
-if test $ac_cv_have_decl_fpurge = yes; then
+if test "x$ac_cv_have_decl_fpurge" = x""yes; then
   
 cat >>confdefs.h <<_ACEOF
 @%:@define HAVE_DECL_FPURGE 1
@@ -29417,7 +29491,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5
 $as_echo "$ac_cv_func_tgetent" >&6; }
-if test $ac_cv_func_tgetent = yes; then
+if test "x$ac_cv_func_tgetent" = x""yes; then
   bash_cv_termcap_lib=libc
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5
@@ -29485,7 +29559,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5
 $as_echo "$ac_cv_lib_termcap_tgetent" >&6; }
-if test $ac_cv_lib_termcap_tgetent = yes; then
+if test "x$ac_cv_lib_termcap_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtermcap
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5
@@ -29553,7 +29627,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5
 $as_echo "$ac_cv_lib_tinfo_tgetent" >&6; }
-if test $ac_cv_lib_tinfo_tgetent = yes; then
+if test "x$ac_cv_lib_tinfo_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtinfo
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5
@@ -29621,7 +29695,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5
 $as_echo "$ac_cv_lib_curses_tgetent" >&6; }
-if test $ac_cv_lib_curses_tgetent = yes; then
+if test "x$ac_cv_lib_curses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libcurses
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5
@@ -29689,7 +29763,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5
 $as_echo "$ac_cv_lib_ncurses_tgetent" >&6; }
-if test $ac_cv_lib_ncurses_tgetent = yes; then
+if test "x$ac_cv_lib_ncurses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libncurses
 else
   bash_cv_termcap_lib=gnutermcap
@@ -30037,8 +30111,8 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -30108,6 +30182,7 @@ LTLIBOBJS=$ac_ltlibobjs
 
 
 
+
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
@@ -30430,7 +30505,7 @@ exec 6>&1
 # values after options handling.
 ac_log="
 This file was extended by bash $as_me 4.0-maint, which was
-generated by GNU Autoconf 2.62.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -30443,6 +30518,15 @@ on `(hostname || uname -n) 2>/dev/null | sed 1q`
 
 _ACEOF
 
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 # Files that config.status was made for.
 config_files="$ac_config_files"
@@ -30456,16 +30540,17 @@ ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
 
-Usage: $0 [OPTIONS] [FILE]...
+Usage: $0 [OPTION]... [FILE]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
+  -q, --quiet, --silent
+                   do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE] 
+      --file=FILE[:TEMPLATE] 
                    instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE] 
+      --header=FILE[:TEMPLATE] 
                    instantiate the configuration header FILE
 
 Configuration files:
@@ -30483,7 +30568,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 bash config.status 4.0-maint
-configured by $0, generated by GNU Autoconf 2.62,
+configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright (C) 2008 Free Software Foundation, Inc.
@@ -30707,7 +30792,8 @@ for ac_last_try in false false false false false :; do
 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
    { (exit 1); exit 1; }; }
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` = $ac_delim_num; then
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
     { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -30912,9 +30998,9 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   }
   split(mac1, mac2, "(") #)
   macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
   if (D_is_set[macro]) {
     # Preserve the white space surrounding the "#".
-    prefix = substr(line, 1, index(line, defundef) - 1)
     print prefix "define", macro P[macro] D[macro]
     next
   } else {
@@ -30922,7 +31008,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
     # in the case of _POSIX_SOURCE, which is predefined and required
     # on some systems where configure will not decide to define it.
     if (defundef == "undef") {
-      print "/*", line, "*/"
+      print "/*", prefix defundef, macro, "*/"
       next
     }
   }
@@ -30946,8 +31032,8 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-$as_echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
    { (exit 1); exit 1; }; };;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
@@ -31381,7 +31467,7 @@ if test "$no_create" != yes; then
   $ac_cs_success || { (exit 1); exit 1; }
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: Unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2;}
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
index f0b5e5218e7fd34ef16bdfdeefa7161af7bd47e6..5922ad67d4378ae7c21254a3a79fe9b43c4fca73 100644 (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])
index 9931f5e4acbbc38c6e59ba7927bb2e44d7f67717..bef8ec2c80ca2a3a5b1fcff6adaf66a1195d73a0 100644 (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';
index 7324f9871c2415091c35bb613cc22e3cb8343e71..c84baa092887d16ebe1dbb14a903480430487866 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.in for Bash 4.0, version 4.013.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.62 for bash 4.0-maint.
+# Generated by GNU Autoconf 2.63 for bash 4.0-maint.
 #
 # Report bugs to <bug-bash@gnu.org>.
 #
@@ -640,157 +640,157 @@ ac_includes_default="\
 
 ac_header_list=
 ac_func_list=
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-EMACS
-lispdir
-DEBUGGER_START_FILE
-TESTSCRIPT
-PURIFY
-MALLOC_TARGET
-MALLOC_SRC
-MALLOC_LIB
-MALLOC_LIBRARY
-MALLOC_LDFLAGS
-MALLOC_DEP
-HELPDIR
-HELPDIRDEFINE
-HELPINSTALL
-HELPSTRINGS
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-CPP
-GREP
-EGREP
-CROSS_COMPILE
-SIGNAMES_H
-SIGNAMES_O
-CC_FOR_BUILD
-STATIC_LD
-CFLAGS_FOR_BUILD
-CPPFLAGS_FOR_BUILD
-LDFLAGS_FOR_BUILD
-RL_VERSION
-RL_MAJOR
-RL_MINOR
-READLINE_LIB
-READLINE_DEP
-RL_LIBDIR
-RL_INCLUDEDIR
-RL_INCLUDE
-HISTORY_LIB
-HISTORY_DEP
-HIST_LIBDIR
-TILDE_LIB
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-AR
-RANLIB
-YACC
-YFLAGS
-SET_MAKE
-MAKE_SHELL
-SIZE
-MKINSTALLDIRS
-USE_NLS
-MSGFMT
-GMSGFMT
-XGETTEXT
-MSGMERGE
-ALLOCA
-GLIBC21
-LIBICONV
-LTLIBICONV
-INTLBISON
-BUILD_INCLUDED_LIBINTL
-USE_INCLUDED_LIBINTL
-CATOBJEXT
-DATADIRNAME
-INSTOBJEXT
-GENCAT
-INTLOBJS
-INTL_LIBTOOL_SUFFIX_PREFIX
-INTLLIBS
-LIBINTL
-LTLIBINTL
-POSUB
-LIBOBJS
-INTL_DEP
-INTL_INC
-LIBINTL_H
-SIGLIST_O
-TERMCAP_LIB
-TERMCAP_DEP
-JOBS_O
-SHOBJ_CC
-SHOBJ_CFLAGS
-SHOBJ_LD
-SHOBJ_LDFLAGS
-SHOBJ_XLDFLAGS
-SHOBJ_LIBS
-SHOBJ_STATUS
-PROFILE_FLAGS
-incdir
-BUILD_DIR
-ARFLAGS
-BASHVERS
-RELSTATUS
-DEBUG
-MALLOC_DEBUG
-LOCAL_LIBS
-LOCAL_CFLAGS
-LOCAL_LDFLAGS
+ac_subst_vars='LTLIBOBJS
 LOCAL_DEFS
-LTLIBOBJS'
+LOCAL_LDFLAGS
+LOCAL_CFLAGS
+LOCAL_LIBS
+MALLOC_DEBUG
+DEBUG
+RELSTATUS
+BASHVERS
+ARFLAGS
+BUILD_DIR
+incdir
+PROFILE_FLAGS
+SHOBJ_STATUS
+SHOBJ_LIBS
+SHOBJ_XLDFLAGS
+SHOBJ_LDFLAGS
+SHOBJ_LD
+SHOBJ_CFLAGS
+SHOBJ_CC
+JOBS_O
+TERMCAP_DEP
+TERMCAP_LIB
+SIGLIST_O
+LIBINTL_H
+INTL_INC
+INTL_DEP
+LIBOBJS
+POSUB
+LTLIBINTL
+LIBINTL
+INTLLIBS
+INTL_LIBTOOL_SUFFIX_PREFIX
+INTLOBJS
+GENCAT
+INSTOBJEXT
+DATADIRNAME
+CATOBJEXT
+USE_INCLUDED_LIBINTL
+BUILD_INCLUDED_LIBINTL
+INTLBISON
+LTLIBICONV
+LIBICONV
+GLIBC21
+ALLOCA
+MSGMERGE
+XGETTEXT
+GMSGFMT
+MSGFMT
+USE_NLS
+MKINSTALLDIRS
+SIZE
+MAKE_SHELL
+SET_MAKE
+YFLAGS
+YACC
+RANLIB
+AR
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+TILDE_LIB
+HIST_LIBDIR
+HISTORY_DEP
+HISTORY_LIB
+RL_INCLUDE
+RL_INCLUDEDIR
+RL_LIBDIR
+READLINE_DEP
+READLINE_LIB
+RL_MINOR
+RL_MAJOR
+RL_VERSION
+LDFLAGS_FOR_BUILD
+CPPFLAGS_FOR_BUILD
+CFLAGS_FOR_BUILD
+STATIC_LD
+CC_FOR_BUILD
+SIGNAMES_O
+SIGNAMES_H
+CROSS_COMPILE
+EGREP
+GREP
+CPP
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+HELPSTRINGS
+HELPINSTALL
+HELPDIRDEFINE
+HELPDIR
+MALLOC_DEP
+MALLOC_LDFLAGS
+MALLOC_LIBRARY
+MALLOC_LIB
+MALLOC_SRC
+MALLOC_TARGET
+PURIFY
+TESTSCRIPT
+DEBUGGER_START_FILE
+lispdir
+EMACS
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
@@ -1280,9 +1280,9 @@ fi
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: Unrecognized options: $ac_unrecognized_opts" >&2
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
    { (exit 1); exit 1; }; } ;;
-    *)     $as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1335,7 +1335,7 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: Working directory cannot be determined" >&2
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
    { (exit 1); exit 1; }; }
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
   { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
@@ -1649,7 +1649,7 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 bash configure 4.0-maint
-generated by GNU Autoconf 2.62
+generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -1663,7 +1663,7 @@ This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by bash $as_me 4.0-maint, which was
-generated by GNU Autoconf 2.62.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
 
@@ -1786,8 +1786,8 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -1995,6 +1995,8 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
   { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
   { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
@@ -2898,12 +2900,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -3102,12 +3100,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -3117,11 +3111,13 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:$LINENO: checking for C compiler version" >&5
@@ -3251,11 +3247,13 @@ if test -z "$ac_file"; then
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: C compiler cannot create executables
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
@@ -3283,13 +3281,15 @@ $as_echo "$ac_try_echo") >&5
     if test "$cross_compiling" = maybe; then
        cross_compiling=yes
     else
-       { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
     fi
   fi
 fi
@@ -3332,11 +3332,13 @@ for ac_file in conftest.exe conftest conftest.*; do
   esac
 done
 else
-  { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest$ac_cv_exeext
@@ -3390,11 +3392,13 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
@@ -3810,7 +3814,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
 $as_echo "$ac_cv_lib_cposix_strerror" >&6; }
-if test $ac_cv_lib_cposix_strerror = yes; then
+if test "x$ac_cv_lib_cposix_strerror" = x""yes; then
   LIBS="$LIBS -lcposix"
 fi
 
@@ -4037,11 +4041,13 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 ac_ext=c
@@ -4424,8 +4430,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -4568,7 +4575,7 @@ fi
 $as_echo "$ac_cv_header_minix_config_h" >&6; }
 
 fi
-if test $ac_cv_header_minix_config_h = yes; then
+if test "x$ac_cv_header_minix_config_h" = x""yes; then
   MINIX=yes
 else
   MINIX=
@@ -5267,7 +5274,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5
 $as_echo "$ac_cv_func_tgetent" >&6; }
-if test $ac_cv_func_tgetent = yes; then
+if test "x$ac_cv_func_tgetent" = x""yes; then
   bash_cv_termcap_lib=libc
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5
@@ -5335,7 +5342,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5
 $as_echo "$ac_cv_lib_termcap_tgetent" >&6; }
-if test $ac_cv_lib_termcap_tgetent = yes; then
+if test "x$ac_cv_lib_termcap_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtermcap
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5
@@ -5403,7 +5410,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5
 $as_echo "$ac_cv_lib_tinfo_tgetent" >&6; }
-if test $ac_cv_lib_tinfo_tgetent = yes; then
+if test "x$ac_cv_lib_tinfo_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtinfo
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5
@@ -5471,7 +5478,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5
 $as_echo "$ac_cv_lib_curses_tgetent" >&6; }
-if test $ac_cv_lib_curses_tgetent = yes; then
+if test "x$ac_cv_lib_curses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libcurses
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5
@@ -5539,7 +5546,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5
 $as_echo "$ac_cv_lib_ncurses_tgetent" >&6; }
-if test $ac_cv_lib_ncurses_tgetent = yes; then
+if test "x$ac_cv_lib_ncurses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libncurses
 else
   bash_cv_termcap_lib=gnutermcap
@@ -6073,12 +6080,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     RANLIB=$ac_ct_RANLIB
@@ -6378,15 +6381,15 @@ if test "${ac_cv_c_bigendian+set}" = set; then
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
-    # See if __BIG_ENDIAN__ or __LITTLE_ENDIAN__ is defined.
-       cat >conftest.$ac_ext <<_ACEOF
+    # See if we're dealing with a universal compiler.
+    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#if ! (defined __BIG_ENDIAN__ || defined __LITTLE_ENDIAN__)
-              neither is defined;
+#ifndef __APPLE_CC__
+              not a universal capable compiler
             #endif
             typedef int dummy;
 
@@ -6409,7 +6412,13 @@ $as_echo "$ac_try_echo") >&5
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_c_bigendian=universal
+
+       # Check for potential -arch flags.  It is not universal unless
+       # there are some -arch flags.  Note that *ppc* also matches
+       # ppc64.  This check is also rather less than ideal.
+       case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
+         *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
+       esac
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -6757,7 +6766,12 @@ _ACEOF
    no)
       ;; #(
    universal)
-      ;; #(
+
+cat >>confdefs.h <<\_ACEOF
+#define AC_APPLE_UNIVERSAL_BUILD 1
+_ACEOF
+
+     ;; #(
    *)
      { { $as_echo "$as_me:$LINENO: error: unknown endianness
  presetting ac_cv_c_bigendian=no (or yes) will help" >&5
@@ -7508,7 +7522,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
 $as_echo "$ac_cv_type_off_t" >&6; }
-if test $ac_cv_type_off_t = yes; then
+if test "x$ac_cv_type_off_t" = x""yes; then
   :
 else
 
@@ -7612,7 +7626,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
 $as_echo "$ac_cv_type_size_t" >&6; }
-if test $ac_cv_type_size_t = yes; then
+if test "x$ac_cv_type_size_t" = x""yes; then
   :
 else
 
@@ -7903,8 +7917,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define CRAY_STACKSEG_END $ac_func
@@ -8139,8 +8154,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -8240,8 +8256,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -9620,8 +9637,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -9746,8 +9764,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -11035,8 +11054,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
 _ACEOF
@@ -11428,8 +11448,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -11600,8 +11621,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -11763,8 +11785,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -11914,8 +11937,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -12258,8 +12282,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define CRAY_STACKSEG_END $ac_func
@@ -12511,8 +12536,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -12602,7 +12628,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5
 $as_echo "$ac_cv_func__doprnt" >&6; }
-if test $ac_cv_func__doprnt = yes; then
+if test "x$ac_cv_func__doprnt" = x""yes; then
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_DOPRNT 1
@@ -12879,7 +12905,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func___setostype" >&5
 $as_echo "$ac_cv_func___setostype" >&6; }
-if test $ac_cv_func___setostype = yes; then
+if test "x$ac_cv_func___setostype" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_SETOSTYPE 1
 _ACEOF
@@ -12971,7 +12997,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wait3" >&5
 $as_echo "$ac_cv_func_wait3" >&6; }
-if test $ac_cv_func_wait3 = yes; then
+if test "x$ac_cv_func_wait3" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_WAIT3 1
 _ACEOF
@@ -13063,7 +13089,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_isinf" >&5
 $as_echo "$ac_cv_func_isinf" >&6; }
-if test $ac_cv_func_isinf = yes; then
+if test "x$ac_cv_func_isinf" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_ISINF_IN_LIBC 1
 _ACEOF
@@ -13155,7 +13181,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_isnan" >&5
 $as_echo "$ac_cv_func_isnan" >&6; }
-if test $ac_cv_func_isnan = yes; then
+if test "x$ac_cv_func_isnan" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_ISNAN_IN_LIBC 1
 _ACEOF
@@ -13248,7 +13274,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mkfifo" >&5
 $as_echo "$ac_cv_func_mkfifo" >&6; }
-if test $ac_cv_func_mkfifo = yes; then
+if test "x$ac_cv_func_mkfifo" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_MKFIFO 1
 _ACEOF
@@ -13377,8 +13403,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13477,8 +13504,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13616,8 +13644,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13720,8 +13749,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13825,8 +13855,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13927,8 +13958,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14034,8 +14066,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14148,8 +14181,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14256,8 +14290,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -14327,7 +14362,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_confstr" >&5
 $as_echo "$ac_cv_have_decl_confstr" >&6; }
-if test $ac_cv_have_decl_confstr = yes; then
+if test "x$ac_cv_have_decl_confstr" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_CONFSTR 1
@@ -14396,7 +14431,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_printf" >&5
 $as_echo "$ac_cv_have_decl_printf" >&6; }
-if test $ac_cv_have_decl_printf = yes; then
+if test "x$ac_cv_have_decl_printf" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_PRINTF 1
@@ -14465,7 +14500,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sbrk" >&5
 $as_echo "$ac_cv_have_decl_sbrk" >&6; }
-if test $ac_cv_have_decl_sbrk = yes; then
+if test "x$ac_cv_have_decl_sbrk" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_SBRK 1
@@ -14534,7 +14569,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_setregid" >&5
 $as_echo "$ac_cv_have_decl_setregid" >&6; }
-if test $ac_cv_have_decl_setregid = yes; then
+if test "x$ac_cv_have_decl_setregid" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_SETREGID 1
@@ -14603,7 +14638,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strcpy" >&5
 $as_echo "$ac_cv_have_decl_strcpy" >&6; }
-if test $ac_cv_have_decl_strcpy = yes; then
+if test "x$ac_cv_have_decl_strcpy" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_STRCPY 1
@@ -14672,7 +14707,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strsignal" >&5
 $as_echo "$ac_cv_have_decl_strsignal" >&6; }
-if test $ac_cv_have_decl_strsignal = yes; then
+if test "x$ac_cv_have_decl_strsignal" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_STRSIGNAL 1
@@ -14742,7 +14777,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtold" >&5
 $as_echo "$ac_cv_have_decl_strtold" >&6; }
-if test $ac_cv_have_decl_strtold = yes; then
+if test "x$ac_cv_have_decl_strtold" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_STRTOLD 1
@@ -15432,8 +15467,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -15540,8 +15576,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -15968,8 +16005,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16120,8 +16158,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16221,8 +16260,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -16519,8 +16559,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -16681,8 +16722,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16831,8 +16873,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16981,8 +17024,9 @@ ac_res=`eval 'as_val=${'$as_ac_Header'}
 $as_echo "$ac_res" >&6; }
 
 fi
-if test `eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -17077,7 +17121,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5
 $as_echo "$ac_cv_func_mbrlen" >&6; }
-if test $ac_cv_func_mbrlen = yes; then
+if test "x$ac_cv_func_mbrlen" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_MBRLEN 1
 _ACEOF
@@ -17169,7 +17213,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbscmp" >&5
 $as_echo "$ac_cv_func_mbscmp" >&6; }
-if test $ac_cv_func_mbscmp = yes; then
+if test "x$ac_cv_func_mbscmp" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_MBSCMP 1
 _ACEOF
@@ -17261,7 +17305,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5
 $as_echo "$ac_cv_func_mbsrtowcs" >&6; }
-if test $ac_cv_func_mbsrtowcs = yes; then
+if test "x$ac_cv_func_mbsrtowcs" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_MBSRTOWCS 1
 _ACEOF
@@ -17354,7 +17398,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5
 $as_echo "$ac_cv_func_wcrtomb" >&6; }
-if test $ac_cv_func_wcrtomb = yes; then
+if test "x$ac_cv_func_wcrtomb" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_WCRTOMB 1
 _ACEOF
@@ -17446,7 +17490,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5
 $as_echo "$ac_cv_func_wcscoll" >&6; }
-if test $ac_cv_func_wcscoll = yes; then
+if test "x$ac_cv_func_wcscoll" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_WCSCOLL 1
 _ACEOF
@@ -17538,7 +17582,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5
 $as_echo "$ac_cv_func_wcsdup" >&6; }
-if test $ac_cv_func_wcsdup = yes; then
+if test "x$ac_cv_func_wcsdup" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_WCSDUP 1
 _ACEOF
@@ -17630,7 +17674,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcwidth" >&5
 $as_echo "$ac_cv_func_wcwidth" >&6; }
-if test $ac_cv_func_wcwidth = yes; then
+if test "x$ac_cv_func_wcwidth" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_WCWIDTH 1
 _ACEOF
@@ -17722,7 +17766,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_wctype" >&5
 $as_echo "$ac_cv_func_wctype" >&6; }
-if test $ac_cv_func_wctype = yes; then
+if test "x$ac_cv_func_wctype" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_WCTYPE 1
 _ACEOF
@@ -17900,8 +17944,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -18225,7 +18270,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBDL 1
 _ACEOF
@@ -18327,8 +18372,9 @@ ac_res=`eval 'as_val=${'$as_ac_var'}
                 $as_echo "$as_val"'`
               { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_var'}
+                $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -18397,7 +18443,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5
 $as_echo "$ac_cv_have_decl_sys_siglist" >&6; }
-if test $ac_cv_have_decl_sys_siglist = yes; then
+if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_SYS_SIGLIST 1
@@ -18559,7 +18605,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwent" >&5
 $as_echo "$ac_cv_lib_sun_getpwent" >&6; }
-if test $ac_cv_lib_sun_getpwent = yes; then
+if test "x$ac_cv_lib_sun_getpwent" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBSUN 1
 _ACEOF
@@ -18647,7 +18693,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_getpeername" >&5
 $as_echo "$ac_cv_lib_socket_getpeername" >&6; }
-if test $ac_cv_lib_socket_getpeername = yes; then
+if test "x$ac_cv_lib_socket_getpeername" = x""yes; then
   bash_cv_have_socklib=yes
 else
   bash_cv_have_socklib=no
@@ -18737,7 +18783,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_t_open" >&5
 $as_echo "$ac_cv_lib_nsl_t_open" >&6; }
-if test $ac_cv_lib_nsl_t_open = yes; then
+if test "x$ac_cv_lib_nsl_t_open" = x""yes; then
   bash_cv_have_libnsl=yes
 else
   bash_cv_have_libnsl=no
@@ -19078,7 +19124,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
 $as_echo "$ac_cv_type_off_t" >&6; }
-if test $ac_cv_type_off_t = yes; then
+if test "x$ac_cv_type_off_t" = x""yes; then
   :
 else
 
@@ -19182,7 +19228,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
 $as_echo "$ac_cv_type_mode_t" >&6; }
-if test $ac_cv_type_mode_t = yes; then
+if test "x$ac_cv_type_mode_t" = x""yes; then
   :
 else
 
@@ -19324,7 +19370,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
 $as_echo "$ac_cv_type_pid_t" >&6; }
-if test $ac_cv_type_pid_t = yes; then
+if test "x$ac_cv_type_pid_t" = x""yes; then
   :
 else
 
@@ -19428,7 +19474,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
 $as_echo "$ac_cv_type_size_t" >&6; }
-if test $ac_cv_type_size_t = yes; then
+if test "x$ac_cv_type_size_t" = x""yes; then
   :
 else
 
@@ -19532,7 +19578,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5
 $as_echo "$ac_cv_type_ssize_t" >&6; }
-if test $ac_cv_type_ssize_t = yes; then
+if test "x$ac_cv_type_ssize_t" = x""yes; then
   :
 else
 
@@ -19636,7 +19682,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_time_t" >&5
 $as_echo "$ac_cv_type_time_t" >&6; }
-if test $ac_cv_type_time_t = yes; then
+if test "x$ac_cv_type_time_t" = x""yes; then
   :
 else
 
@@ -19993,7 +20039,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5
 $as_echo "$ac_cv_type_sig_atomic_t" >&6; }
-if test $ac_cv_type_sig_atomic_t = yes; then
+if test "x$ac_cv_type_sig_atomic_t" = x""yes; then
   :
 else
 
@@ -20257,11 +20303,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_char=$ac_lo;;
 '') if test "$ac_cv_type_char" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char=0
    fi ;;
@@ -20337,11 +20385,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_char" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char=0
    fi
@@ -20612,11 +20662,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_short=$ac_lo;;
 '') if test "$ac_cv_type_short" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_short=0
    fi ;;
@@ -20692,11 +20744,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_short" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (short)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_short=0
    fi
@@ -20967,11 +21021,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_int=$ac_lo;;
 '') if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_int=0
    fi ;;
@@ -21047,11 +21103,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (int)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_int=0
    fi
@@ -21322,11 +21380,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_long=$ac_lo;;
 '') if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long=0
    fi ;;
@@ -21402,11 +21462,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long=0
    fi
@@ -21677,11 +21739,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_char_p=$ac_lo;;
 '') if test "$ac_cv_type_char_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char_p=0
    fi ;;
@@ -21757,11 +21821,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_char_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (char *)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_char_p=0
    fi
@@ -22032,11 +22098,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_double=$ac_lo;;
 '') if test "$ac_cv_type_double" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_double=0
    fi ;;
@@ -22112,11 +22180,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_double" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (double)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_double=0
    fi
@@ -22387,11 +22457,13 @@ done
 case $ac_lo in
 ?*) ac_cv_sizeof_long_long=$ac_lo;;
 '') if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long_long=0
    fi ;;
@@ -22467,11 +22539,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
+     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&5
 $as_echo "$as_me: error: cannot compute sizeof (long long)
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
    else
      ac_cv_sizeof_long_long=0
    fi
@@ -22586,7 +22660,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_int" >&5
 $as_echo "$ac_cv_type_u_int" >&6; }
-if test $ac_cv_type_u_int = yes; then
+if test "x$ac_cv_type_u_int" = x""yes; then
   :
 else
 
@@ -22690,7 +22764,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_long" >&5
 $as_echo "$ac_cv_type_u_long" >&6; }
-if test $ac_cv_type_u_long = yes; then
+if test "x$ac_cv_type_u_long" = x""yes; then
   :
 else
 
@@ -22797,7 +22871,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5
 $as_echo "$ac_cv_type_bits16_t" >&6; }
-if test $ac_cv_type_bits16_t = yes; then
+if test "x$ac_cv_type_bits16_t" = x""yes; then
   :
 else
 
@@ -22902,7 +22976,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5
 $as_echo "$ac_cv_type_bits16_t" >&6; }
-if test $ac_cv_type_bits16_t = yes; then
+if test "x$ac_cv_type_bits16_t" = x""yes; then
   :
 else
 
@@ -23007,7 +23081,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5
 $as_echo "$ac_cv_type_bits16_t" >&6; }
-if test $ac_cv_type_bits16_t = yes; then
+if test "x$ac_cv_type_bits16_t" = x""yes; then
   :
 else
 
@@ -23115,7 +23189,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5
 $as_echo "$ac_cv_type_u_bits16_t" >&6; }
-if test $ac_cv_type_u_bits16_t = yes; then
+if test "x$ac_cv_type_u_bits16_t" = x""yes; then
   :
 else
 
@@ -23220,7 +23294,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5
 $as_echo "$ac_cv_type_u_bits16_t" >&6; }
-if test $ac_cv_type_u_bits16_t = yes; then
+if test "x$ac_cv_type_u_bits16_t" = x""yes; then
   :
 else
 
@@ -23325,7 +23399,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5
 $as_echo "$ac_cv_type_u_bits16_t" >&6; }
-if test $ac_cv_type_u_bits16_t = yes; then
+if test "x$ac_cv_type_u_bits16_t" = x""yes; then
   :
 else
 
@@ -23433,7 +23507,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5
 $as_echo "$ac_cv_type_bits32_t" >&6; }
-if test $ac_cv_type_bits32_t = yes; then
+if test "x$ac_cv_type_bits32_t" = x""yes; then
   :
 else
 
@@ -23538,7 +23612,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5
 $as_echo "$ac_cv_type_bits32_t" >&6; }
-if test $ac_cv_type_bits32_t = yes; then
+if test "x$ac_cv_type_bits32_t" = x""yes; then
   :
 else
 
@@ -23643,7 +23717,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5
 $as_echo "$ac_cv_type_bits32_t" >&6; }
-if test $ac_cv_type_bits32_t = yes; then
+if test "x$ac_cv_type_bits32_t" = x""yes; then
   :
 else
 
@@ -23751,7 +23825,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5
 $as_echo "$ac_cv_type_u_bits32_t" >&6; }
-if test $ac_cv_type_u_bits32_t = yes; then
+if test "x$ac_cv_type_u_bits32_t" = x""yes; then
   :
 else
 
@@ -23856,7 +23930,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5
 $as_echo "$ac_cv_type_u_bits32_t" >&6; }
-if test $ac_cv_type_u_bits32_t = yes; then
+if test "x$ac_cv_type_u_bits32_t" = x""yes; then
   :
 else
 
@@ -23961,7 +24035,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5
 $as_echo "$ac_cv_type_u_bits32_t" >&6; }
-if test $ac_cv_type_u_bits32_t = yes; then
+if test "x$ac_cv_type_u_bits32_t" = x""yes; then
   :
 else
 
@@ -24069,7 +24143,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
 
@@ -24174,7 +24248,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
 
@@ -24279,7 +24353,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
 
@@ -24384,7 +24458,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
 
@@ -24489,7 +24563,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5
 $as_echo "$ac_cv_type_bits64_t" >&6; }
-if test $ac_cv_type_bits64_t = yes; then
+if test "x$ac_cv_type_bits64_t" = x""yes; then
   :
 else
 
@@ -24598,7 +24672,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
 
@@ -24703,7 +24777,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
 
@@ -24808,7 +24882,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
 
@@ -24913,7 +24987,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
 $as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test $ac_cv_type_ptrdiff_t = yes; then
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
   :
 else
 
@@ -26432,7 +26506,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_termios_c_line" >&5
 $as_echo "$ac_cv_member_struct_termios_c_line" >&6; }
-if test $ac_cv_member_struct_termios_c_line = yes; then
+if test "x$ac_cv_member_struct_termios_c_line" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define TERMIOS_LDISC 1
 _ACEOF
@@ -26544,7 +26618,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_termio_c_line" >&5
 $as_echo "$ac_cv_member_struct_termio_c_line" >&6; }
-if test $ac_cv_member_struct_termio_c_line = yes; then
+if test "x$ac_cv_member_struct_termio_c_line" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define TERMIO_LDISC 1
 _ACEOF
@@ -27053,7 +27127,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5
 $as_echo "$ac_cv_member_struct_stat_st_blocks" >&6; }
-if test $ac_cv_member_struct_stat_st_blocks = yes; then
+if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_BLOCKS 1
@@ -27225,7 +27299,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5
 $as_echo "$ac_cv_member_struct_tm_tm_zone" >&6; }
-if test $ac_cv_member_struct_tm_tm_zone = yes; then
+if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_TM_TM_ZONE 1
@@ -27295,7 +27369,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5
 $as_echo "$ac_cv_have_decl_tzname" >&6; }
-if test $ac_cv_have_decl_tzname = yes; then
+if test "x$ac_cv_have_decl_tzname" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_TZNAME 1
@@ -27742,7 +27816,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fpurge" >&5
 $as_echo "$ac_cv_have_decl_fpurge" >&6; }
-if test $ac_cv_have_decl_fpurge = yes; then
+if test "x$ac_cv_have_decl_fpurge" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_FPURGE 1
@@ -29417,7 +29491,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5
 $as_echo "$ac_cv_func_tgetent" >&6; }
-if test $ac_cv_func_tgetent = yes; then
+if test "x$ac_cv_func_tgetent" = x""yes; then
   bash_cv_termcap_lib=libc
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5
@@ -29485,7 +29559,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5
 $as_echo "$ac_cv_lib_termcap_tgetent" >&6; }
-if test $ac_cv_lib_termcap_tgetent = yes; then
+if test "x$ac_cv_lib_termcap_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtermcap
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5
@@ -29553,7 +29627,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5
 $as_echo "$ac_cv_lib_tinfo_tgetent" >&6; }
-if test $ac_cv_lib_tinfo_tgetent = yes; then
+if test "x$ac_cv_lib_tinfo_tgetent" = x""yes; then
   bash_cv_termcap_lib=libtinfo
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5
@@ -29621,7 +29695,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5
 $as_echo "$ac_cv_lib_curses_tgetent" >&6; }
-if test $ac_cv_lib_curses_tgetent = yes; then
+if test "x$ac_cv_lib_curses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libcurses
 else
   { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5
@@ -29689,7 +29763,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5
 $as_echo "$ac_cv_lib_ncurses_tgetent" >&6; }
-if test $ac_cv_lib_ncurses_tgetent = yes; then
+if test "x$ac_cv_lib_ncurses_tgetent" = x""yes; then
   bash_cv_termcap_lib=libncurses
 else
   bash_cv_termcap_lib=gnutermcap
@@ -30037,8 +30111,8 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -30108,6 +30182,7 @@ LTLIBOBJS=$ac_ltlibobjs
 
 
 
+
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
@@ -30430,7 +30505,7 @@ exec 6>&1
 # values after options handling.
 ac_log="
 This file was extended by bash $as_me 4.0-maint, which was
-generated by GNU Autoconf 2.62.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -30443,6 +30518,15 @@ on `(hostname || uname -n) 2>/dev/null | sed 1q`
 
 _ACEOF
 
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 # Files that config.status was made for.
 config_files="$ac_config_files"
@@ -30456,16 +30540,17 @@ ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
 
-Usage: $0 [OPTIONS] [FILE]...
+Usage: $0 [OPTION]... [FILE]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
+  -q, --quiet, --silent
+                   do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
+      --file=FILE[:TEMPLATE]
                    instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
+      --header=FILE[:TEMPLATE]
                    instantiate the configuration header FILE
 
 Configuration files:
@@ -30483,7 +30568,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 bash config.status 4.0-maint
-configured by $0, generated by GNU Autoconf 2.62,
+configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright (C) 2008 Free Software Foundation, Inc.
@@ -30707,7 +30792,8 @@ for ac_last_try in false false false false false :; do
 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
    { (exit 1); exit 1; }; }
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` = $ac_delim_num; then
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
     { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -30912,9 +30998,9 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   }
   split(mac1, mac2, "(") #)
   macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
   if (D_is_set[macro]) {
     # Preserve the white space surrounding the "#".
-    prefix = substr(line, 1, index(line, defundef) - 1)
     print prefix "define", macro P[macro] D[macro]
     next
   } else {
@@ -30922,7 +31008,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
     # in the case of _POSIX_SOURCE, which is predefined and required
     # on some systems where configure will not decide to define it.
     if (defundef == "undef") {
-      print "/*", line, "*/"
+      print "/*", prefix defundef, macro, "*/"
       next
     }
   }
@@ -30946,8 +31032,8 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-$as_echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
    { (exit 1); exit 1; }; };;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
@@ -31381,7 +31467,7 @@ if test "$no_create" != yes; then
   $ac_cs_success || { (exit 1); exit 1; }
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: Unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2;}
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
index 82ef0655bbd3a66357259ad0405608abc6be3796..ed1416369046e9a74b7af4a2a5237b8332fda2f2 100644 (file)
@@ -738,8 +738,8 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi]\b]}\b}  is  the line number in the source file where
               $\b${\b{F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE[\b[_\b$_\bi]\b]}\b} was called (or  $\b${\b{B\bBA\bAS\bSH\bH_\b_L\bLI\bIN\bNE\bEN\bNO\bO[\b[_\b$_\bi_\b-_\b1]\b]}\b}  if  refer-
               enced  within another shell function).  The corresponding source
-              file name is $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}.\b.  U\bUs\bse\be L\bLI\bIN\bNE\bEN\bNO\bO t\bto\bo o\bob\bbt\bta\bai\bin\bn t\bth\bhe\be  c\bcu\bur\br-\b-
-              r\bre\ben\bnt\bt l\bli\bin\bne\be n\bnu\bum\bmb\bbe\ber\br.\b.
+              file name is $\b${\b{B\bBA\bAS\bSH\bH_\b_S\bSO\bOU\bUR\bRC\bCE\bE[\b[_\b$_\bi]\b]}\b}.  Use L\bLI\bIN\bNE\bEN\bNO\bO to obtain the  cur-
+              rent line number.
        B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH
               An  array  variable  whose members are assigned by the =\b=~\b~ binary
               operator to the [\b[[\b[ conditional command.  The element with  index
@@ -805,18 +805,18 @@ P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS
               below).
 
        C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
-              The set of characters that the Readline library treats  as  word
+              The set of characters that the r\bre\bea\bad\bdl\bli\bin\bne\be library treats  as  word
               separators  when performing word completion.  If C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS
               is unset, it loses its special properties, even if it is  subse-
               quently reset.
 
        C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS
               An  array variable (see A\bAr\brr\bra\bay\bys\bs 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 P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\be-\b-
-              t\bti\bio\bon\bn below).
+              ual words in the current command line.  The line is  split  into
+              words  as  r\bre\bea\bad\bdl\bli\bin\bne\be  would  split  it,  using C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS as
+              described above.  This variable is available only in shell func-
+              tions  invoked  by  the  programmable completion facilities (see
+              P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn below).
 
        D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK
               An array variable (see A\bAr\brr\bra\bay\bys\bs below) containing the current con-
@@ -1743,8 +1743,8 @@ R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN
               ls 2>\b>&\b&1 >\b> dirlist
 
        directs only the standard output to file _\bd_\bi_\br_\bl_\bi_\bs_\bt, because the  standard
-       error  was duplicated as standard output before the standard output was
-       redirected to _\bd_\bi_\br_\bl_\bi_\bs_\bt.
+       error  was duplicated from the standard output before the standard out-
+       put was redirected to _\bd_\bi_\br_\bl_\bi_\bs_\bt.
 
        B\bBa\bas\bsh\bh handles several filenames specially when they are used in redirec-
        tions, as described in the following table:
@@ -3574,8 +3574,12 @@ H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        Unless otherwise noted, each builtin command documented in this section
        as accepting options preceded by -\b- accepts -\b--\b- to signify the end of the
-       options.   For  example,  the  :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not
-       accept options.
+       options.   The  :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not accept options
+       and do not treat -\b--\b- specially.  The e\bex\bxi\bit\bt, l\blo\bog\bgo\bou\but\bt, b\bbr\bre\bea\bak\bk, c\bco\bon\bnt\bti\bin\bnu\bue\be, l\ble\bet\bt,
+       and  s\bsh\bhi\bif\bft\bt builtins accept and process arguments beginning with -\b- with-
+       out requiring -\b--\b-.  Other builtins that accept  arguments  but  are  not
+       specified  as accepting options interpret arguments beginning with -\b- as
+       invalid options and require -\b--\b- to prevent this interpretation.
        :\b: [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
               No effect; the command does nothing beyond  expanding  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
               and  performing any specified redirections.  A zero exit code is
@@ -4185,7 +4189,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and  shell  control
               structures is printed.
               -\b-d\bd     Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
-               -\b-m\bm    Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
+              -\b-m\b    Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
                      format
               -\b-s\bs     Display only a short usage synopsis for each _\bp_\ba_\bt_\bt_\be_\br_\bn
        The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
@@ -4406,7 +4410,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               occurs while reading the name of the  current  directory  or  an
               invalid option is supplied.
 
-       r\bre\bea\bad\b [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b- _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
+       r\bre\bea\bad\b[-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
        _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
               One  line  is  read  from  the  standard input, or from the file
               descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and  the
@@ -4511,32 +4515,37 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-b\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.
-              -\b-e\be      Exit immediately if a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd (see S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+              -\b-e\be      Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist  of  a
+                      single  _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd),  a _\bs_\bu_\bb_\bs_\bh_\be_\bl_\bl command enclosed in
+                      parentheses, or one of the commands executed as part  of
+                      a  command  list  enclosed  by braces (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
                       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  w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
-                      part of the test in an i\bif\bf statement, part of  a  command
-                      executed  in  a &\b&&\b& or |\b||\b| list, any command in a pipeline
-                      but the last, or if the command's return value is  being
-                      inverted  via  !\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 E\bER\bRR\bR, if set, is exe-
-                      cuted before the shell exits.
+                      exit  if  the  command that fails is part of the command
+                      list immediately following a  w\bwh\bhi\bil\ble\be  or  u\bun\bnt\bti\bil\bl  keyword,
+                      part  of  the  test  following  the  i\bif\bf or e\bel\bli\bif\bf reserved
+                      words, part of any command executed in a &\b&&\b& or  |\b||\b|  list
+                      except  the  command  following  the final &\b&&\b& or |\b||\b|, any
+                      command in a pipeline but the last, or if the  command's
+                      return  value  is being inverted with !\b!.  A trap on E\bER\bRR\bR,
+                      if set, is executed before the shell exits.  This option
+                      applies to the shell environment and each subshell envi-
+                      ronment separately (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD  E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+                      above), and may cause subshells to exit before executing
+                      all the commands in the subshell.
               -\b-f\bf      Disable pathname expansion.
-              -\b-h\bh      Remember  the location of commands as they are looked up
+              -\b-h\bh      Remember the location of commands as they are looked  up
                       for execution.  This is enabled by default.
-              -\b-k\bk      All arguments in the form of assignment  statements  are
-                      placed  in the environment for a command, not just those
+              -\b-k\bk      All  arguments  in the form of assignment statements are
+                      placed in the environment for a command, not just  those
                       that precede the command name.
-              -\b-m\bm      Monitor mode.  Job control is enabled.  This  option  is
-                      on  by  default  for  interactive shells on systems that
-                      support it (see J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   Background  pro-
-                      cesses  run  in a separate process group and a line con-
-                      taining their exit status is printed upon their  comple-
+              -\b-m\bm      Monitor  mode.   Job control is enabled.  This option is
+                      on by default for interactive  shells  on  systems  that
+                      support  it  (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL above).  Background pro-
+                      cesses run in a separate process group and a  line  con-
+                      taining  their exit status is printed upon their comple-
                       tion.
               -\b-n\bn      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.
               -\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
                       The _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be can be one of the following:
@@ -4544,10 +4553,10 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               Same as -\b-a\ba.
                       b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-B\bB.
-                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
+                      e\bem\bma\bac\bcs\bs   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 -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.  This also  affects  the
+                              the  -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg  option.  This also affects the
                               editing interface used for r\bre\bea\bad\bd -\b-e\be.
                       e\ber\brr\brt\btr\bra\bac\bce\be
                               Same as -\b-E\bE.
@@ -4561,8 +4570,8 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in inter-
                               active shells.
                       i\big\bgn\bno\bor\bre\bee\beo\bof\bf
-                              The   effect   is   as   if  the  shell  command
-                              ``IGNOREEOF=10'' had been  executed  (see  S\bSh\bhe\bel\bll\bl
+                              The  effect  is  as   if   the   shell   command
+                              ``IGNOREEOF=10''  had  been  executed (see S\bSh\bhe\bel\bll\bl
                               V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
                       k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
                       m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
@@ -4577,213 +4586,213 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       p\bph\bhy\bys\bsi\bic\bca\bal\bl
                               Same as -\b-P\bP.
                       p\bpi\bip\bpe\bef\bfa\bai\bil\bl
-                              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.
-                      p\bpo\bos\bsi\bix\bx   Change  the  behavior  of b\bba\bas\bsh\bh where the default
-                              operation differs from  the  POSIX  standard  to
+                      p\bpo\bos\bsi\bix\bx   Change the behavior of b\bba\bas\bsh\bh  where  the  default
+                              operation  differs  from  the  POSIX standard to
                               match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
                       v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
-                      v\bvi\bi      Use  a  vi-style command line editing interface.
+                      v\bvi\bi      Use a vi-style command line  editing  interface.
                               This also affects the editing interface used for
                               r\bre\bea\bad\bd -\b-e\be.
                       x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
                       If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
-                      current options are printed.  If +\b+o\bo is supplied with  no
-                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  a  series  of s\bse\bet\bt commands to recreate the
-                      current option settings is  displayed  on  the  standard
+                      current  options are printed.  If +\b+o\bo is supplied with no
+                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, a series of s\bse\bet\bt commands  to  recreate  the
+                      current  option  settings  is  displayed on the standard
                       output.
-              -\b-p\bp      Turn  on  _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd  mode.   In this mode, the $\b$E\bEN\bNV\bV and
-                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bfiles are not processed, shell  functions  are
-                      not  inherited  from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
-                      C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they appear in  the
-                      environment,  are ignored.  If the shell is started with
+              -\b-p\bp      Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode.  In this  mode,  the  $\b$E\bEN\bNV\b and
+                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\b files  are not processed, shell functions are
+                      not inherited from the environment, and  the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
+                      C\bCD\bDP\bPA\bAT\bTH\bH,  and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE 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  -\b-p\bp option is not supplied, these
-                      actions are taken and the effective user id  is  set  to
-                      the  real  user  id.   If  the  -\b-p\bp 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 -\b-p\bp option  is  not  supplied,  these
+                      actions  are  taken  and the effective user id is set to
+                      the real user id.  If  the  -\b-p\bp  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.
               -\b-t\bt      Exit after reading and executing one command.
               -\b-u\bu      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.
               -\b-v\bv      Print shell input lines as they are read.
-              -\b-x\bx      After  expanding  each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
+              -\b-x\bx      After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br  command,  c\bca\bas\bse\be
                       command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
-                      play  the expanded value of P\bPS\bS4\b4, followed by the command
+                      play the expanded value of P\bPS\bS4\b4, followed by the  command
                       and its expanded arguments or associated word list.
-              -\b-B\bB      The shell performs brace expansion (see B\bBr\bra\bac\bce\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+              -\b-B\bB      The  shell performs brace expansion (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
                       above).  This is on by default.
-              -\b-C\bC      If  set,  b\bba\bas\bsh\bh  does not overwrite an existing file with
-                      the >\b>, >\b>&\b&, and <\b<>\b> redirection operators.   This  may  be
+              -\b-C\bC      If set, b\bba\bas\bsh\bh does not overwrite an  existing  file  with
+                      the  >\b>,  >\b>&\b&,  and <\b<>\b> redirection operators.  This may be
                       overridden when creating output files by using the redi-
                       rection operator >\b>|\b| instead of >\b>.
               -\b-E\bE      If set, any trap on E\bER\bRR\bR is inherited by shell functions,
-                      command  substitutions,  and commands executed in a sub-
-                      shell environment.  The E\bER\bRR\bR trap is normally not  inher-
+                      command substitutions, and commands executed in  a  sub-
+                      shell  environment.  The E\bER\bRR\bR trap is normally not inher-
                       ited in such cases.
               -\b-H\bH      Enable !\b!  style history substitution.  This option is on
                       by default when the shell is interactive.
-              -\b-P\bP      If set, the shell does not follow  symbolic  links  when
-                      executing  commands  such  as c\bcd\bd that change the current
+              -\b-P\bP      If  set,  the  shell does not follow symbolic links when
+                      executing commands such as c\bcd\bd that  change  the  current
                       working  directory.   It  uses  the  physical  directory
                       structure instead.  By default, b\bba\bas\bsh\bh follows the logical
-                      chain of  directories  when  performing  commands  which
+                      chain  of  directories  when  performing  commands which
                       change the current directory.
-              -\b-T\bT      If  set,  any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
-                      shell functions,  command  substitutions,  and  commands
-                      executed  in  a  subshell  environment.   The  D\bDE\bEB\bBU\bUG\bG and
+              -\b-T\bT      If set, any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are  inherited  by
+                      shell  functions,  command  substitutions,  and commands
+                      executed in  a  subshell  environment.   The  D\bDE\bEB\bBU\bUG\b and
                       R\bRE\bET\bTU\bUR\bRN\bN traps are normally not inherited in such cases.
-              -\b--\b-      If no arguments follow this option, then the  positional
+              -\b--\b-      If  no arguments follow this option, then the positional
                       parameters are unset.  Otherwise, the positional parame-
-                      ters are set to the _\ba_\br_\bgs, even if  some  of  them  begin
+                      ters  are  set  to  the _\ba_\br_\bgs, even if some of them begin
                       with a -\b-.
-              -\b-       Signal  the  end of options, cause all remaining _\ba_\br_\bgs to
+              -\b-       Signal the end of options, cause all remaining  _\ba_\br_\bgs  to
                       be assigned to the positional parameters.  The -\b-x\bx and -\b-v\bv
                       options are turned off.  If there are no _\ba_\br_\bgs, 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 $\b$-\b-.  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 $\b$-\b-.   The
               return status is always true unless an invalid option is encoun-
               tered.
 
        s\bsh\bhi\bif\bft\bt [_\bn]
-              The  positional  parameters  from _\bn+1 ... are renamed to $\b$1\b1 .\b..\b..\b..\b.
-              Parameters represented by the numbers  $\b$#\b#  down  to  $\b$#\b#-_\bn+1  are
-              unset.   _\bn  must  be a non-negative number less than or equal to
-              $\b$#\b#.  If _\bn is 0, no parameters are changed.  If _\bn is  not  given,
-              it  is assumed to be 1.  If _\bn is greater than $\b$#\b#, the positional
-              parameters are not changed.  The return status is  greater  than
+              The positional parameters from _\bn+1 ... are renamed  to  $\b$1\b .\b..\b..\b..\b.
+              Parameters  represented  by  the  numbers  $\b$#\b# down to $\b$#\b#-_\bn+1 are
+              unset.  _\bn must be a non-negative number less than  or  equal  to
+              $\b$#\b#.   If  _\bn is 0, no parameters are changed.  If _\bn is not given,
+              it is assumed to be 1.  If _\bn is greater than $\b$#\b#, the  positional
+              parameters  are  not changed.  The return status is greater than
               zero if _\bn is greater than $\b$#\b# or less than zero; otherwise 0.
 
        s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
               Toggle the values of variables controlling optional shell behav-
               ior.  With no options, or with the -\b-p\bp option, a list of all set-
               table options is displayed, with an indication of whether or not
-              each is set.  The -\b-p\bp option causes output to be displayed  in  a
-              form  that  may be reused as input.  Other options have the fol-
+              each  is  set.  The -\b-p\bp option causes output to be displayed in a
+              form that may be reused as input.  Other options have  the  fol-
               lowing meanings:
               -\b-s\bs     Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
               -\b-u\bu     Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
-              -\b-q\bq     Suppresses normal output (quiet mode); the return  status
+              -\b-q\bq     Suppresses  normal output (quiet mode); the return status
                      indicates whether the _\bo_\bp_\bt_\bn_\ba_\bm_\be is set or unset.  If multi-
-                     ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return  sta-
-                     tus  is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero other-
+                     ple  _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return sta-
+                     tus is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero  other-
                      wise.
-              -\b-o\bo     Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those  defined  for
+              -\b-o\bo     Restricts  the  values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those defined for
                      the -\b-o\bo option to the s\bse\bet\bt builtin.
 
-              If  either  -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, the dis-
+              If either -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments,  the  dis-
               play is limited to those options which are set or unset, respec-
-              tively.   Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are disabled
+              tively.  Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are  disabled
               (unset) by default.
 
-              The return status when listing options is zero if  all  _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
-              are  enabled,  non-zero  otherwise.   When  setting or unsetting
-              options, the return status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  not  a
+              The  return  status when listing options is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
+              are enabled, non-zero  otherwise.   When  setting  or  unsetting
+              options,  the  return  status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be is not a
               valid shell option.
 
               The list of s\bsh\bho\bop\bpt\bt options is:
 
-              a\bau\but\bto\boc\bcd\bd  If  set,  a command name that is the name of a directory
-                      is executed as if it were the argument to  the  c\bcd\b com-
+              a\bau\but\bto\boc\bcd\bd  If set, a command name that is the name of  a  directory
+                      is  executed  as  if it were the argument to the c\bcd\bd com-
                       mand.  This option is only used by interactive shells.
               c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
-                      If  set,  an  argument to the c\bcd\bd builtin command that is
-                      not a directory is assumed to be the name of a  variable
+                      If set, an argument to the c\bcd\bd builtin  command  that  is
+                      not  a directory is assumed to be the name of a variable
                       whose value is the directory to change to.
               c\bcd\bds\bsp\bpe\bel\bll\bl If set, minor errors in the spelling of a directory com-
-                      ponent in a c\bcd\bd command will be  corrected.   The  errors
+                      ponent  in  a  c\bcd\bd 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.
               c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
                       If set, b\bba\bas\bsh\bh 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.
               c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
                       If set, b\bba\bas\bsh\bh 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 J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).   The  shell  always  postpones
+                      second exit is attempted without an intervening  command
+                      (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   The shell always postpones
                       exiting if any jobs are stopped.
               c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
-                      If  set,  b\bba\bas\bsh\bh checks the window size after each command
-                      and, if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and  C\bCO\bOL\bL-\b-
+                      If set, b\bba\bas\bsh\bh checks the window size after  each  command
+                      and,  if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bL-\b-
                       U\bUM\bMN\bNS\bS.
-              c\bcm\bmd\bdh\bhi\bis\bst\bt If  set,  b\bba\bas\bsh\bh attempts to save all lines of a multiple-
-                      line command in the same  history  entry.   This  allows
+              c\bcm\bmd\bdh\bhi\bis\bst\bt If set, b\bba\bas\bsh\bh attempts to save all lines of  a  multiple-
+                      line  command  in  the  same history entry.  This allows
                       easy re-editing of multi-line commands.
               c\bco\bom\bmp\bpa\bat\bt3\b31\b1
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.1
                       with respect to quoted arguments to the conditional com-
                       mand's =~ operator.
               d\bdi\bir\brs\bsp\bpe\bel\bll\bl
-                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
-                      names during word completion if the directory name  ini-
+                      If set, b\bba\bas\bsh\bh attempts spelling correction  on  directory
+                      names  during word completion if the directory name ini-
                       tially supplied does not exist.
-              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
+              d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.'  in
                       the results of pathname expansion.
               e\bex\bxe\bec\bcf\bfa\bai\bil\bl
                       If set, a non-interactive shell will not exit if it can-
-                      not  execute  the  file  specified as an argument to the
-                      e\bex\bxe\bec\bbuiltin command.  An  interactive  shell  does  not
+                      not execute the file specified as  an  argument  to  the
+                      e\bex\bxe\bec\b builtin  command.   An  interactive shell does not
                       exit if e\bex\bxe\bec\bc fails.
               e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
-                      If  set,  aliases  are expanded as described above under
+                      If set, aliases are expanded as  described  above  under
                       A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
                       tive shells.
               e\bex\bxt\btd\bde\beb\bbu\bug\bg
-                      If  set,  behavior  intended  for  use  by  debuggers is
+                      If set,  behavior  intended  for  use  by  debuggers  is
                       enabled:
                       1\b1.\b.     The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
                              source file name and line number corresponding to
                              each function name supplied as an argument.
-                      2\b2.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
-                             non-zero  value,  the next command is skipped and
+                      2\b2.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
+                             non-zero value, the next command is  skipped  and
                              not executed.
-                      3\b3.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  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  .\b.  or s\bso\bou\bur\brc\bce\be builtins), a call to
+                      3\b3.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG 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 .\b. or s\bso\bou\bur\brc\bce\be  builtins),  a  call  to
                              r\bre\bet\btu\bur\brn\bn is simulated.
-                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\band B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\b and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
                              in their descriptions above.
-                      5\b5.\b.     Function  tracing  is enabled:  command substitu-
+                      5\b5.\b.     Function tracing is enabled:   command  substitu-
                              tion, shell functions, and subshells invoked with
                              (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
-                      6\b6.\b.     Error  tracing is enabled:  command substitution,
-                             shell functions, and  subshells  invoked  with  (\b(
+                      6\b6.\b.     Error tracing is enabled:  command  substitution,
+                             shell  functions,  and  subshells  invoked with (\b(
                              _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bRO\bOR\bR trap.
               e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
                       above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
               e\bex\bxt\btq\bqu\buo\bot\bte\be
-                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
-                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
+                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
+                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
                       quotes.  This option is enabled by default.
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      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.
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
-                      variable cause words to be ignored when performing  word
+                      If set, the suffixes  specified  by  the  F\bFI\bIG\bGN\bNO\bOR\bRE\b shell
+                      variable  cause words to be ignored when performing word
                       completion even if the ignored words are the only possi-
                       ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
-                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
+                      description of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled  by
                       default.
               g\bgl\blo\bob\bbs\bst\bta\bar\br
                       If set, the pattern *\b**\b* used in a filename expansion con-
@@ -4794,58 +4803,58 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       If set, shell error messages are written in the standard
                       GNU error message format.
               h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
-                      If set, the history list is appended to the  file  named
-                      by  the  value  of  the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell
+                      If  set,  the history list is appended to the file named
+                      by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  variable  when  the  shell
                       exits, rather than overwriting the file.
               h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
-                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given  the
+                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given the
                       opportunity to re-edit a failed history substitution.
               h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
-                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be 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 r\bre\bea\bad\bdl\bli\bin\bne\be 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 r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
                       fication.
               h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
                       If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
-                      perform hostname completion when a word containing  a  @\b@
-                      is   being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
+                      perform  hostname  completion when a word containing a @\b@
+                      is  being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under   R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
                       above).  This is enabled by default.
               h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
                       If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
                       active login shell exits.
               i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
                       If set, allow a word beginning with #\b# to cause that word
-                      and all remaining characters on that line to be  ignored
-                      in  an  interactive  shell  (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS above).  This
+                      and  all remaining characters on that line to be ignored
+                      in an interactive  shell  (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS  above).   This
                       option is enabled by default.
-              l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option  is  enabled,  multi-line
+              l\bli\bit\bth\bhi\bis\bst\bt If  set,  and  the c\bcm\bmd\bdh\bhi\bis\bst\bt option is enabled, multi-line
                       commands are saved to the history with embedded newlines
                       rather than using semicolon separators where possible.
               l\blo\bog\bgi\bin\bn_\b_s\bsh\bhe\bel\bll\bl
-                      The shell sets this option if it is started as  a  login
-                      shell  (see  I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN  above).   The  value may not be
+                      The  shell  sets this option if it is started as a login
+                      shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN above).   The  value  may  not  be
                       changed.
               m\bma\bai\bil\blw\bwa\bar\brn\bn
-                      If set, and a file that b\bba\bas\bsh\bh is checking  for  mail  has
-                      been  accessed  since  the last time it was checked, the
-                      message ``The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read''  is  dis-
+                      If  set,  and  a file that b\bba\bas\bsh\bh is checking for mail has
+                      been accessed since the last time it  was  checked,  the
+                      message  ``The  mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read'' is dis-
                       played.
               n\bno\bo_\b_e\bem\bmp\bpt\bty\by_\b_c\bcm\bmd\bd_\b_c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
-                      If  set,  and  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used,  b\bba\bas\bsh\bh will not
+                      If set, and  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used,  b\bba\bas\bsh\bh  will  not
                       attempt to search the P\bPA\bAT\bTH\bH for possible completions when
                       completion is attempted on an empty line.
               n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb
-                      If  set,  b\bba\bas\bsh\bh  matches  filenames in a case-insensitive
+                      If set, b\bba\bas\bsh\bh matches  filenames  in  a  case-insensitive
                       fashion when performing pathname expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be
                       E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
               n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
-                      If  set,  b\bba\bas\bsh\bh  matches  patterns  in a case-insensitive
+                      If set, b\bba\bas\bsh\bh  matches  patterns  in  a  case-insensitive
                       fashion when performing matching while executing c\bca\bas\bse\be or
                       [\b[[\b[ conditional commands.
               n\bnu\bul\bll\blg\bgl\blo\bob\bb
-                      If  set,  b\bba\bas\bsh\bh allows patterns which match no files (see
-                      P\bPa\bat\bth\bhn\bna\bam\bme\bE\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) to expand to  a  null  string,
+                      If set, b\bba\bas\bsh\bh allows patterns which match no  files  (see
+                      P\bPa\bat\bth\bhn\bna\bam\bme\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  above)  to expand to a null string,
                       rather than themselves.
               p\bpr\bro\bog\bgc\bco\bom\bmp\bp
                       If set, the programmable completion facilities (see P\bPr\bro\bo-\b-
@@ -4853,47 +4862,47 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       enabled by default.
               p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
                       If set, prompt strings undergo parameter expansion, com-
-                      mand  substitution,  arithmetic  expansion,  and   quote
-                      removal  after  being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+                      mand   substitution,  arithmetic  expansion,  and  quote
+                      removal after being expanded as described  in  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
                       above.  This option is enabled by default.
               r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
-                      The  shell  sets  this  option  if  it  is  started   in
+                      The   shell  sets  this  option  if  it  is  started  in
                       restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL 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.
               s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
-                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
+                      If  set,  the s\bsh\bhi\bif\bft\bt builtin prints an error message when
                       the shift count exceeds the number of positional parame-
                       ters.
               s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
                       If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH 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.
               x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
-                      If  set,  the  e\bec\bch\bho\bo  builtin  expands   backslash-escape
+                      If   set,  the  e\bec\bch\bho\bo  builtin  expands  backslash-escape
                       sequences by default.
        s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
-              Suspend  the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
               signal.  A login shell cannot be suspended; the -\b-f\bf 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 -\b-f\bf  is  not  sup-
+              tus  is  0  unless the shell is a login shell and -\b-f\bf is not sup-
               plied, or if job control is not enabled.
        t\bte\bes\bst\bt _\be_\bx_\bp_\br
        [\b[ _\be_\bx_\bp_\br ]\b]
-              Return  a  status  of  0 or 1 depending on the evaluation of the
-              conditional expression _\be_\bx_\bp_\br.  Each operator and operand must  be
-              a  separate argument.  Expressions are composed of the primaries
-              described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.   t\bte\bes\bst\bt  does  not
+              Return a status of 0 or 1 depending on  the  evaluation  of  the
+              conditional  expression _\be_\bx_\bp_\br.  Each operator and operand must be
+              a separate argument.  Expressions are composed of the  primaries
+              described  above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.  t\bte\bes\bst\bt does not
               accept any options, nor does it accept and ignore an argument of
               -\b--\b- 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.
               !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
               (\b( _\be_\bx_\bp_\br )\b)
-                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
+                     Returns  the value of _\be_\bx_\bp_\br.  This may be used to override
                      the normal precedence of operators.
               _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
                      True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
@@ -4910,108 +4919,108 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, 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 C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  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  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, 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 C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
                      result of the expression is the result of the binary test
-                     using the first and third arguments as operands.  The  -\b-a\ba
-                     and  -\b-o\bo  operators  are  considered binary operators when
-                     there are three arguments.  If the first argument  is  !\b!,
-                     the  value is the negation of the two-argument test using
+                     using  the first and third arguments as operands.  The -\b-a\ba
+                     and -\b-o\bo operators are  considered  binary  operators  when
+                     there  are  three arguments.  If the first argument is !\b!,
+                     the value is the negation of the two-argument test  using
                      the second and third arguments.  If the first argument is
                      exactly (\b( and the third argument is exactly )\b), 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 !\b!, 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.
 
-       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
+       t\bti\bim\bme\bes\bs  Print  the  accumulated  user and system times for the shell and
               for processes run from the shell.  The return status is 0.
 
        t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
-              The  command  _\ba_\br_\bg  is  to  be  read  and executed when the shell
-              receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\br_\bg is absent (and  there  is  a
-              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
-              original disposition (the value it  had  upon  entrance  to  the
-              shell).   If _\ba_\br_\bg is the null string the signal specified by each
-              _\bs_\bi_\bg_\bs_\bp_\be_\bis ignored by the shell and by the commands it  invokes.
-              If  _\ba_\br_\bg  is  not present and -\b-p\bp has been supplied, then the trap
-              commands associated with each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are  displayed.   If  no
-              arguments  are  supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
-              list of commands associated with each  signal.   The  -\b-l\b option
-              causes  the shell to print a list of signal names and their cor-
-              responding numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal  name
-              defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>,  or  a signal number.  Signal names are
-              case insensitive and the SIG prefix is optional.  If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc
-              is  E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit from the shell.
-              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is executed before  every
+              The command _\ba_\br_\bg is to  be  read  and  executed  when  the  shell
+              receives  signal(s)  _\bs_\bi_\bg_\bs_\bp_\be_\bc.   If _\ba_\br_\bg is absent (and there is a
+              single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified  signal  is  reset  to  its
+              original  disposition  (the  value  it  had upon entrance to the
+              shell).  If _\ba_\br_\bg is the null string the signal specified by  each
+              _\bs_\bi_\bg_\bs_\bp_\be_\b is ignored by the shell and by the commands it invokes.
+              If _\ba_\br_\bg is not present and -\b-p\bp has been supplied,  then  the  trap
+              commands  associated  with  each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are displayed.  If no
+              arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp  prints  the
+              list  of  commands  associated  with each signal.  The -\b-l\bl option
+              causes the shell to print a list of signal names and their  cor-
+              responding  numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal name
+              defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal  number.   Signal  names  are
+              case  insensitive  and the SIG prefix is optional.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc
+              is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit from the  shell.
+              If  a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is executed before every
               _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command, _\bs_\be_\bl_\be_\bc_\bt command, every
               arithmetic _\bf_\bo_\br command, and before the first command executes in
-              a  shell  function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer to the
-              description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option  to  the  s\bsh\bho\bop\bpt\bt  builtin  for
-              details  of  its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR,
-              the command _\ba_\br_\bg is executed whenever  a  simple  command  has  a
-              non-zero  exit status, subject to the following conditions.  The
-              E\bER\bRR\btrap is not executed if the failed command is  part  of  the
-              command  list  immediately  following  a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
-              part of the test in an _\bi_\bf statement, part of a command  executed
-              in  a  &\b&&\b&  or |\b||\b| list, or if the command's return value is being
-              inverted via !\b!.  These are the same  conditions  obeyed  by  the
+              a shell function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer  to  the
+              description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option  to the s\bsh\bho\bop\bpt\bt builtin for
+              details of its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,
+              the  command  _\ba_\br_\bg  is  executed  whenever a simple command has a
+              non-zero exit status, subject to the following conditions.   The
+              E\bER\bRR\b trap  is  not executed if the failed command is part of the
+              command list immediately following a  w\bwh\bhi\bil\ble\be  or  u\bun\bnt\bti\bil\b keyword,
+              part  of the test in an _\bi_\bf statement, part of a command executed
+              in a &\b&&\b& or |\b||\b| list, or if the command's return  value  is  being
+              inverted  via  !\b!.   These  are the same conditions obeyed by the
               e\ber\brr\bre\bex\bxi\bit\bt option.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is exe-
               cuted each time a shell function or a script executed with the .\b.
-              or  s\bso\bou\bur\brc\bce\be  builtins  finishes  executing.  Signals ignored upon
-              entry to the shell cannot be trapped or reset.  Trapped  signals
+              or s\bso\bou\bur\brc\bce\be 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 _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
 
        t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
-              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+              With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted  if
               used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
-              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
-              _\bf_\bi_\bl_\bif  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
-              builtin,  or disk file, respectively.  If the _\bn_\ba_\bm_\be is not found,
-              then nothing  is  printed,  and  an  exit  status  of  false  is
-              returned.   If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the
+              string which is one of _\ba_\bl_\bi_\ba_\bs,  _\bk_\be_\by_\bw_\bo_\br_\bd,  _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn,  _\bb_\bu_\bi_\bl_\bt_\bi_\bn,  or
+              _\bf_\bi_\bl_\b if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word, function,
+              builtin, or disk file, respectively.  If the _\bn_\ba_\bm_\be is not  found,
+              then  nothing  is  printed,  and  an  exit  status  of  false is
+              returned.  If the -\b-p\bp option is used,  t\bty\byp\bpe\be  either  returns  the
               name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
               fied as a command name, or nothing if ``type -t name'' would not
-              return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,
+              return  _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
               even if ``type -t name'' would not return _\bf_\bi_\bl_\be.  If a command is
-              hashed, -\b-p\bp and -\b-P\bP print the hashed value,  not  necessarily  the
+              hashed,  -\b-p\bp  and  -\b-P\bP print the hashed value, not necessarily the
               file that appears first in P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is used, t\bty\byp\bpe\be
-              prints all of the places that contain an executable named  _\bn_\ba_\bm_\be.
-              This  includes  aliases  and  functions,  if  and only if the -\b-p\bp
-              option is not also used.  The table of hashed  commands  is  not
-              consulted  when  using -\b-a\ba.  The -\b-f\bf option suppresses shell func-
-              tion lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true  if
+              prints  all of the places that contain an executable named _\bn_\ba_\bm_\be.
+              This includes aliases and functions,  if  and  only  if  the  -\b-p\bp
+              option  is  not  also used.  The table of hashed commands is not
+              consulted when using -\b-a\ba.  The -\b-f\bf option suppresses  shell  func-
+              tion  lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true if
               all of the arguments are found, false if any are not found.
 
        u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
-              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 -\b-H\bH and -\b-S\bS 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 -\b-H\bH nor -\b-S\bS 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 -\b-H\bH nor -\b-S\bS is speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current hard limit,  the  current  soft  limit,  and  no  limit,
-              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
-              soft limit of the resource is printed, unless the -\b-H\bH  option  is
+              current  hard  limit,  the  current  soft  limit,  and no limit,
+              respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the  current  value  of  the
+              soft  limit  of the resource is printed, unless the -\b-H\bH 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 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The  maximum  size  of files written by the shell and its
+              -\b-f\bf     The maximum size of files written by the  shell  and  its
                      children
               -\b-i\bi     The maximum number of pending signals
               -\b-l\bl     The maximum size that may be locked into memory
-              -\b-m\bm     The maximum resident set size
+              -\b-m\bm     The  maximum resident set size (many systems do not honor
+                     this limit)
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set)
               -\b-p\bp     The pipe size in 512-byte blocks (this may not be set)
@@ -5163,7 +5173,7 @@ A\bAU\bUT\bTH\bHO\bOR\bRS\bS
        bfox@gnu.org
 
        Chet Ramey, Case Western Reserve University
-       chet@po.cwru.edu
+       chet.ramey@case.edu
 
 B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        If you find a bug in b\bba\bas\bsh\bh,\b, you should report it.  But first, you should
@@ -5214,4 +5224,4 @@ B\bBU\bUG\bGS\bS
 
 
 
-GNU Bash-4.0                   2008 December 29                        BASH(1)
+GNU Bash-4.0                    2009 February 7                        BASH(1)
index 4308214b178a3a4883e5b485da730545fb692b8e..87eadfe695c5829bd71f1f6c7e25a7f813dab584 100644 (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
index 484176445facaff651a0ac5272b8f8a473117d0e..a710a1ca82de81b4154de7221af5c9c55a626c74 100644 (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>
 <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>
index a2dbc5c069ca061179f6eed06cbf96708cc898c5..e7f4b133a537cd97a7c2fc5630c2ee2ca3bb829f 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.19.2
-%%CreationDate: Wed Feb 18 15:33:01 2009
+%%CreationDate: Mon Feb 23 11:56:03 2009
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -5551,476 +5551,487 @@ F F2(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775
 G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 511.2 Q(UIL)-.11 E
 (TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 523.2
 R .062(uiltin command documented in this section as accepting options p\
-receded by)-.2 F F1<ad>108 535.2 Q F0(accepts)3.8 E F1<adad>3.8 E F0 1.3
-(to signify the end of the options.)3.8 F -.15(Fo)6.3 G 3.8(re).15 G 1.3
-(xample, the)-3.95 F F1(:)3.8 E F0(,)A F1(true)3.8 E F0(,)A F1(false)3.8
-E F0 3.8(,a)C(nd)-3.8 E F1(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not)
-.2 F(accept options.)108 547.2 Q F1(:)108 565.2 Q F0([)2.5 E F2(ar)A
-(guments)-.37 E F0(])A .451(No ef)144 577.2 R .451
-(fect; the command does nothing be)-.25 F .452(yond e)-.15 F(xpanding)
--.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an)3.222 F
-2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144 589.2 R
-(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 606 Q F2
+receded by)-.2 F F1<ad>108 535.2 Q F0(accepts)2.534 E F1<adad>2.534 E F0
+.034(to signify the end of the options.)2.534 F(The)5.034 E F1(:)2.534 E
+F0(,)A F1(true)2.534 E F0(,)A F1(false)2.534 E F0 2.534(,a)C(nd)-2.534 E
+F1(test)2.534 E F0 -.2(bu)2.534 G .033(iltins do not accept options and)
+.2 F .077(do not treat)108 547.2 R F1<adad>2.577 E F0(specially)2.577 E
+5.077(.T)-.65 G(he)-5.077 E F1(exit)2.577 E F0(,)A F1(logout)2.577 E F0
+(,)A F1(br)2.577 E(eak)-.18 E F0(,)A F1(continue)2.577 E F0(,)A F1(let)
+2.577 E F0 2.577(,a)C(nd)-2.577 E F1(shift)2.577 E F0 -.2(bu)2.577 G
+.077(iltins accept and process ar).2 F(gu-)-.18 E .32(ments be)108 559.2
+R .32(ginning with)-.15 F F1<ad>2.82 E F0 .32(without requiring)2.82 F
+F1<adad>2.82 E F0 5.319(.O)C .319(ther b)-5.319 F .319
+(uiltins that accept ar)-.2 F .319(guments b)-.18 F .319
+(ut are not speci\214ed as)-.2 F 1.143(accepting options interpret ar)
+108 571.2 R 1.143(guments be)-.18 F 1.143(ginning with)-.15 F F1<ad>
+3.643 E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143
+(lid options and require).25 F F1<adad>3.644 E F0 1.144(to pre)3.644 F
+-.15(ve)-.25 G 1.144(nt this).15 F(interpretation.)108 583.2 Q F1(:)108
+601.2 Q F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .452(No ef)144 613.2 R
+.452(fect; the command does nothing be)-.25 F .452(yond e)-.15 F
+(xpanding)-.15 E F2(ar)3.282 E(guments)-.37 E F0 .451(and performing an)
+3.221 F 2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. A)144
+625.2 R(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 642 Q F2
 (\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108
-618 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0
-(])A 1.02(Read and e)144 630 R -.15(xe)-.15 G 1.02(cute commands from)
+654 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0
+(])A 1.02(Read and e)144 666 R -.15(xe)-.15 G 1.02(cute commands from)
 .15 F F2(\214lename)5.43 E F0 1.02(in the current shell en)3.7 F 1.02
 (vironment and return the e)-.4 F(xit)-.15 E 1.68
-(status of the last command e)144 642 R -.15(xe)-.15 G 1.68(cuted from)
+(status of the last command e)144 678 R -.15(xe)-.15 G 1.68(cuted from)
 .15 F F2(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F2(\214lename)6.09
-E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 654
+E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 690
 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
 (are used to \214nd the directory containing)2.858 F F2(\214lename)3.108
 E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F4 -.666(PA)
-3.108 G(TH)-.189 E F0 .832(need not be e)144 666 R -.15(xe)-.15 G 3.332
-(cutable. When).15 F F1(bash)3.332 E F0 .832(is not in)3.332 F F2 .832
-(posix mode)3.332 F F0 3.332(,t)C .833
-(he current directory is searched if no)-3.332 F .982
-(\214le is found in)144 678 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+3.108 G(TH)-.189 E F0 .833(need not be e)144 702 R -.15(xe)-.15 G 3.333
+(cutable. When).15 F F1(bash)3.333 E F0 .832(is not in)3.333 F F2 .832
+(posix mode)3.332 F F0 3.332(,t)C .832
+(he current directory is searched if no)-3.332 F .981
+(\214le is found in)144 714 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
 /Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F1(sour)3.481 E(cepath)-.18
 E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)3.481 G .981
-(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 690
-S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F(y)-.15
+(iltin command is turned of).2 F .982(f, the)-.25 F F4 -.666(PA)144 726
+S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F(y)-.15
 E F2(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F 2.612
-(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F2
-(\214lename)144 702 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842
-(cuted. Otherwise).15 F .342(the positional parameters are unchanged.)
-2.842 F .341(The return status is the)5.341 F .716
-(status of the last command e)144 714 R .716
-(xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G
-.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 726 Q
-F0(is not found or cannot be read.)2.68 E(GNU Bash-4.0)72 768 Q
-(2009 February 7)140.96 E(47)190.95 E 0 Cg EP
+(yb)-.15 G .112(ecome the positional parameters when)-2.612 F
+(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(47)190.95 E 0 Cg EP
 %%Page: 48 48
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(alias)108 84 Q F0([)2.5 E F1<ad70>A F0 2.5
-(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
-(..])-2.5 E F1(Alias)144 96 Q F0 2.725(with no ar)5.225 F 2.724
-(guments or with the)-.18 F F1<ad70>5.224 E F0 2.724
-(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E
-F2(name)144 108 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
-.58(When ar)5.58 F .58
-(guments are supplied, an alias is de\214ned for each)-.18 F F2(name)
-3.08 E F0(whose)144 120 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15
-(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F2(value)
+-.35 E/F1 10/Times-Italic@0 SF(\214lename)144 84 Q F0 .341(is e)2.841 F
+-.15(xe)-.15 G 2.841(cuted. Otherwise).15 F .341
+(the positional parameters are unchanged.)2.841 F .342
+(The return status is the)5.342 F .716(status of the last command e)144
+96 R .716(xited within the script \(0 if no commands are e)-.15 F -.15
+(xe)-.15 G .716(cuted\), and f).15 F .715(alse if)-.1 F F1(\214lename)
+145.91 108 Q F0(is not found or cannot be read.)2.68 E/F2 10
+/Times-Bold@0 SF(alias)108 124.8 Q F0([)2.5 E F2<ad70>A F0 2.5(][)C F1
+(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E F2(Alias)144
+136.8 Q F0 2.724(with no ar)5.224 F 2.724(guments or with the)-.18 F F2
+<ad70>5.224 E F0 2.724(option prints the list of aliases in the form)
+5.224 F F2(alias)5.225 E F1(name)144 148.8 Q F0(=)A F1(value)A F0 .58
+(on standard output.)3.08 F .58(When ar)5.58 F .58
+(guments are supplied, an alias is de\214ned for each)-.18 F F1(name)
+3.08 E F0(whose)144 160.8 Q F1(value)2.895 E F0 .395(is gi)2.895 F -.15
+(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F1(value)
 5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395
 (ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054
-(stitution when the alias is e)144 132 R 2.554(xpanded. F)-.15 F .054
-(or each)-.15 F F2(name)2.554 E F0 .054(in the ar)2.554 F .054
-(gument list for which no)-.18 F F2(value)2.554 E F0 .054(is sup-)2.554
-F 1.314(plied, the name and v)144 144 R 1.314
-(alue of the alias is printed.)-.25 F F1(Alias)6.314 E F0 1.314
-(returns true unless a)3.814 F F2(name)3.814 E F0 1.313(is gi)3.814 F
--.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E
-(which no alias has been de\214ned.)144 156 Q F1(bg)108 172.8 Q F0([)2.5
-E F2(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 184.8 R
-F2(jobspec)3.244 E F0 .745
-(in the background, as if it had been started with)3.244 F F1(&)3.245 E
-F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 196.8 Q F0 .672
-(is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the)
--3.172 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
-(bg)5.671 E F2(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418
-(when job control is disabled or)144 208.8 R 2.919(,w)-.4 G .419
-(hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G
-(peci\214ed)-2.919 E F2(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G
-(ot)-2.919 E(found or w)144 220.8 Q(as started without job control.)-.1
-E F1(bind)108 237.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
-2.5(][)C F1(\255lpsvPSV)-2.5 E F0(])A F1(bind)108 249.6 Q F0([)2.5 E F1
-<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1<ad71>-2.5 E F2
-(function)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(function)2.5 E F0 2.5(][)C
-F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 261.6 Q F0
-([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0(])A F1<ad66>2.5 E F2
-(\214lename)2.5 E F1(bind)108 273.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
-G(ymap)-.2 E F0(])A F1<ad78>2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(shell\255command)A F1(bind)108 285.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
-2.5 G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(function\255name)A F1(bind)108 297.6 Q F2 -.37(re)2.5 G
-(adline\255command).37 E F0 .239(Display current)144 309.6 R F1 -.18(re)
-2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239
-(nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238
-(equence to a).15 F F1 -.18(re)2.738 G(adline).18 E F0 .238(function or)
-2.738 F .475(macro, or set a)144 321.6 R F1 -.18(re)2.975 G(adline).18 E
-F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F
-.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F2
-(.inputr)144 333.6 Q(c)-.37 E F0 2.984(,b).31 G .484
-(ut each binding or command must be passed as a separate ar)-3.184 F
-.483(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
-(re\255read\255init\255\214le'. Options,)144 345.6 R(if supplied, ha)2.5
-E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144
-357.6 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 369.6 Q F2 -.1(ke)5.158 G
-(ymap)-.2 E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af)
-.15 F 2.659(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E
-F2 -.1(ke)180 381.6 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
-(emacs, emacs\255standar)5.693 F 3.192
+(stitution when the alias is e)144 172.8 R 2.554(xpanded. F)-.15 F .054
+(or each)-.15 F F1(name)2.554 E F0 .054(in the ar)2.554 F .054
+(gument list for which no)-.18 F F1(value)2.554 E F0 .053(is sup-)2.553
+F 1.313(plied, the name and v)144 184.8 R 1.314
+(alue of the alias is printed.)-.25 F F2(Alias)6.314 E F0 1.314
+(returns true unless a)3.814 F F1(name)3.814 E F0 1.314(is gi)3.814 F
+-.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E
+(which no alias has been de\214ned.)144 196.8 Q F2(bg)108 213.6 Q F0([)
+2.5 E F1(jobspec)A F0(...])2.5 E .745(Resume each suspended job)144
+225.6 R F1(jobspec)3.245 E F0 .745
+(in the background, as if it had been started with)3.245 F F2(&)3.244 E
+F0 5.744(.I)C(f)-5.744 E F1(job-)4.984 E(spec)144 237.6 Q F0 .671
+(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the)
+-3.171 F F1(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F2
+(bg)5.672 E F1(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419
+(when job control is disabled or)144 249.6 R 2.919(,w)-.4 G .419
+(hen run with job control enabled, an)-2.919 F 2.918(ys)-.15 G
+(peci\214ed)-2.918 E F1(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G
+(ot)-2.918 E(found or w)144 261.6 Q(as started without job control.)-.1
+E F2(bind)108 278.4 Q F0([)2.5 E F2<ad6d>A F1 -.1(ke)2.5 G(ymap)-.2 E F0
+2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 290.4 Q F0([)2.5 E F2
+<ad6d>A F1 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F2<ad71>-2.5 E F1
+(function)2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(function)2.5 E F0 2.5(][)C
+F2<ad72>-2.5 E F1 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 302.4 Q F0
+([)2.5 E F2<ad6d>A F1 -.1(ke)2.5 G(ymap)-.2 E F0(])A F2<ad66>2.5 E F1
+(\214lename)2.5 E F2(bind)108 314.4 Q F0([)2.5 E F2<ad6d>A F1 -.1(ke)2.5
+G(ymap)-.2 E F0(])A F2<ad78>2.5 E F1 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F1
+(shell\255command)A F2(bind)108 326.4 Q F0([)2.5 E F2<ad6d>A F1 -.1(ke)
+2.5 G(ymap)-.2 E F0(])A F1 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F1
+(function\255name)A F2(bind)108 338.4 Q F1 -.37(re)2.5 G
+(adline\255command).37 E F0 .238(Display current)144 350.4 R F2 -.18(re)
+2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239
+(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
+(equence to a).15 F F2 -.18(re)2.739 G(adline).18 E F0 .239(function or)
+2.739 F .476(macro, or set a)144 362.4 R F2 -.18(re)2.976 G(adline).18 E
+F0 -.25(va)2.976 G 2.976(riable. Each).25 F .476(non-option ar)2.976 F
+.475(gument is a command as it w)-.18 F .475(ould appear in)-.1 F F1
+(.inputr)144 374.4 Q(c)-.37 E F0 2.983(,b).31 G .484
+(ut each binding or command must be passed as a separate ar)-3.183 F
+.484(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
+(re\255read\255init\255\214le'. Options,)144 386.4 R(if supplied, ha)2.5
+E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6d>144
+398.4 Q F1 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 410.4 Q F1 -.1(ke)5.159 G
+(ymap)-.2 E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658(map to be af)
+.15 F 2.658(fected by the subsequent bindings.)-.25 F(Acceptable)7.658 E
+F1 -.1(ke)180 422.4 S(ymap)-.2 E F0 3.192(names are)5.882 F F1 3.192
+(emacs, emacs\255standar)5.692 F 3.193
 (d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-(vi\255command)180 393.6 Q F0 4.429(,a)C(nd)-4.429 E F2(vi\255insert)
-4.429 E F0(.).68 E F2(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G
-1.929(lent to).25 F F2(vi\255command)4.429 E F0(;)A F2(emacs)4.429 E F0
-1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 F F2
-(emacs\255standar)180 405.6 Q(d)-.37 E F0(.)A F1<ad6c>144 417.6 Q F0
-(List the names of all)27.52 E F1 -.18(re)2.5 G(adline).18 E F0
-(functions.)2.5 E F1<ad70>144 429.6 Q F0(Display)24.74 E F1 -.18(re)2.5
+(vi\255command)180 434.4 Q F0 4.43(,a)C(nd)-4.43 E F1(vi\255insert)4.429
+E F0(.).68 E F1(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.929
+(lent to).25 F F1(vi\255command)4.429 E F0(;)A F1(emacs)4.429 E F0 1.929
+(is equi)4.429 F -.25(va)-.25 G 1.929(lent to).25 F F1(emacs\255standar)
+180 446.4 Q(d)-.37 E F0(.)A F2<ad6c>144 458.4 Q F0
+(List the names of all)27.52 E F2 -.18(re)2.5 G(adline).18 E F0
+(functions.)2.5 E F2<ad70>144 470.4 Q F0(Display)24.74 E F2 -.18(re)2.5
 G(adline).18 E F0(function names and bindings in such a w)2.5 E
-(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 441.6
-Q F0(List current)24.19 E F1 -.18(re)2.5 G(adline).18 E F0
-(function names and bindings.)2.5 E F1<ad73>144 453.6 Q F0(Display)26.41
-E F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G
+(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F2<ad50>144 482.4
+Q F0(List current)24.19 E F2 -.18(re)2.5 G(adline).18 E F0
+(function names and bindings.)2.5 E F2<ad73>144 494.4 Q F0(Display)26.41
+E F2 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G
 1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo)
--.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 465.6 S 2.5(yt).1 G
-(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 477.6 Q
-F0(Display)24.74 E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)
+-.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 506.4 S 2.5(yt).1 G
+(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F2<ad53>144 518.4 Q
+F0(Display)24.74 E F2 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)
 -.05 G(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
-(utput.)-2.5 E F1<ad76>144 489.6 Q F0(Display)25.3 E F1 -.18(re)2.5 G
+(utput.)-2.5 E F2<ad76>144 530.4 Q F0(Display)25.3 E F2 -.18(re)2.5 G
 (adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
 (alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
-(an be re-read.)-2.5 E F1<ad56>144 501.6 Q F0(List current)23.08 E F1
+(an be re-read.)-2.5 E F2<ad56>144 542.4 Q F0(List current)23.08 E F2
 -.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
-(alues.)-.25 E F1<ad66>144 513.6 Q F2(\214lename)2.5 E F0(Read k)180
-525.6 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
-F1<ad71>144 537.6 Q F2(function)2.5 E F0(Query about which k)180 549.6 Q
+(alues.)-.25 E F2<ad66>144 554.4 Q F1(\214lename)2.5 E F0(Read k)180
+566.4 Q .3 -.15(ey b)-.1 H(indings from).15 E F1(\214lename)2.5 E F0(.)A
+F2<ad71>144 578.4 Q F1(function)2.5 E F0(Query about which k)180 590.4 Q
 -.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H
-(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 561.6 Q F2(function)
-2.5 E F0(Unbind all k)180 573.6 Q -.15(ey)-.1 G 2.5(sb).15 G
-(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 585.6 Q
-F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 597.6 Q .3 -.15(ve a)-.15 H .3
--.15(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0
-(.)A F1<ad78>144 609.6 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2
-(shell\255command)A F0(Cause)180 621.6 Q F2(shell\255command)4.325 E F0
+(he named).1 E F1(function)2.5 E F0(.)A F2<ad75>144 602.4 Q F1(function)
+2.5 E F0(Unbind all k)180 614.4 Q -.15(ey)-.1 G 2.5(sb).15 G
+(ound to the named)-2.5 E F1(function)2.5 E F0(.)A F2<ad72>144 626.4 Q
+F1 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 638.4 Q .3 -.15(ve a)-.15 H .3
+-.15(ny c).15 H(urrent binding for).15 E F1 -.1(ke)2.5 G(yseq)-.2 E F0
+(.)A F2<ad78>144 650.4 Q F1 -.1(ke)2.5 G(yseq)-.2 E F2(:)A F1
+(shell\255command)A F0(Cause)180 662.4 Q F1(shell\255command)4.325 E F0
 1.825(to be e)4.325 F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)
--.25 G(r).15 E F2 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F
-(When)6.825 E F2(shell\255com-)4.325 E(mand)180 633.6 Q F0 1.113(is e)
-3.614 F -.15(xe)-.15 G 1.113(cuted, the shell sets the).15 F F1
+-.25 G(r).15 E F1 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F
+(When)6.825 E F1(shell\255com-)4.325 E(mand)180 674.4 Q F0 1.113(is e)
+3.613 F -.15(xe)-.15 G 1.113(cuted, the shell sets the).15 F F2
 (READLINE_LINE)3.613 E F0 -.25(va)3.613 G 1.113
-(riable to the contents of the).25 F F1 -.18(re)180 645.6 S(adline).18 E
-F0 .586(line b)3.086 F(uf)-.2 E .586(fer and the)-.25 F F1
-(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .587
-(riable to the current location of the).25 F 1.241(insertion point.)180
-657.6 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
-(cuted command changes the v).15 F 1.241(alue of)-.25 F F1
-(READLINE_LINE)3.741 E F0(or)3.74 E F1(READLINE_POINT)180 669.6 Q F0 2.5
-(,t)C(hose ne)-2.5 E 2.5(wv)-.25 G
+(riable to the contents of the).25 F F2 -.18(re)180 686.4 S(adline).18 E
+F0 .587(line b)3.087 F(uf)-.2 E .587(fer and the)-.25 F F2
+(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .586
+(riable to the current location of the).25 F 1.24(insertion point.)180
+698.4 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
+(cuted command changes the v).15 F 1.241(alue of)-.25 F F2
+(READLINE_LINE)3.741 E F0(or)3.741 E F2(READLINE_POINT)180 710.4 Q F0
+2.5(,t)C(hose ne)-2.5 E 2.5(wv)-.25 G
 (alues will be re\215ected in the editing state.)-2.75 E(The return v)
-144 686.4 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+144 727.2 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
 (ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
-E F1(br)108 703.2 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054
-(Exit from within a)144 715.2 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1
-(while)2.554 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
-(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
-(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
-(ls.).15 E F2(n)5.415 E F0 .055(must be)2.795 F/F3 10/Symbol SF<b3>2.555
-E F0(1.)2.555 E(If)144 727.2 Q F2(n)3.075 E F0 .215(is greater than the\
- number of enclosing loops, all enclosing loops are e)2.955 F 2.714
-(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(GNU Bash-4.0)72 768
-Q(2009 February 7)140.96 E(48)190.95 E 0 Cg EP
+E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(48)190.95 E 0 Cg EP
 %%Page: 49 49
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(is 0 unless)144 84 Q/F1 10/Times-Italic@0 SF(n)2.5 E F0
-(is not greater than or equal to 1.)2.5 E/F2 10/Times-Bold@0 SF -.2(bu)
-108 100.8 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E F1
-(ar)A(guments)-.37 E F0(])A(Ex)144 112.8 Q .792
-(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F1
+-.35 E/F1 10/Times-Bold@0 SF(br)108 84 Q(eak)-.18 E F0([)2.5 E/F2 10
+/Times-Italic@0 SF(n)A F0(])A .055(Exit from within a)144 96 R F1 -.25
+(fo)2.555 G(r).25 E F0(,)A F1(while)2.555 E F0(,)A F1(until)2.555 E F0
+2.555(,o)C(r)-2.555 E F1(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)
+2.555 E F0 .055(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E
+-.15(ve)-.25 G(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F3 10
+/Symbol SF<b3>2.554 E F0(1.)2.554 E(If)144 108 Q F2(n)3.074 E F0 .215(i\
+s greater than the number of enclosing loops, all enclosing loops are e)
+2.954 F 2.715(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E
+(is 0 unless)144 120 Q F2(n)2.5 E F0(is not greater than or equal to 1.)
+2.5 E F1 -.2(bu)108 136.8 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E
+F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A(Ex)144 148.8 Q .793
+(ecute the speci\214ed shell b)-.15 F .793(uiltin, passing it)-.2 F F2
 (ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293
-F .793(xit status.)-.15 F .793(This is useful)5.793 F .616
+F .792(xit status.)-.15 F .792(This is useful)5.792 F .615
 (when de\214ning a function whose name is the same as a shell b)144
-124.8 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
-136.8 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0
+160.8 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144
+172.8 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
 -.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
-5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 148.8 Q(alse if)-.1
-E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
-(uiltin command.)-.2 E F2(caller)108 165.6 Q F0([)2.5 E F1 -.2(ex)C(pr)
-.2 E F0(])A .254(Returns the conte)144 177.6 R .254(xt of an)-.15 F
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 184.8 Q(alse if)-.1
+E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
+(uiltin command.)-.2 E F1(caller)108 201.6 Q F0([)2.5 E F2 -.2(ex)C(pr)
+.2 E F0(])A .253(Returns the conte)144 213.6 R .254(xt of an)-.15 F
 2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
 (ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 189.6 Q
-(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F1 -.2
-(ex)3.062 G(pr).2 E F0(,)A F2(caller)3.062 E F0 .562
+.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 225.6 Q
+(ce)-.18 E F0 -.2(bu)3.063 G 3.063(iltins. W).2 F(ithout)-.4 E F2 -.2
+(ex)3.062 G(pr).2 E F0(,)A F1(caller)3.062 E F0 .562
 (displays the line number and source \214lename of the current)3.062 F
-.254(subroutine call.)144 201.6 R .254(If a non-ne)5.254 F -.05(ga)-.15
-G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
-F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253
-(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\
+.253(subroutine call.)144 237.6 R .253(If a non-ne)5.253 F -.05(ga)-.15
+G(ti).05 E .553 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
+F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .254
+(displays the line number)2.754 F 2.754(,s)-.4 G(ub-)-2.754 E 1.327(rou\
 tine name, and source \214le corresponding to that position in the curr\
-ent e)144 213.6 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
-(This e)144 225.6 R .001(xtra information may be used, for e)-.15 F .001
-(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E
-3.019(0. The)144 237.6 R .519(return v)3.019 F .519
-(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52
-(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52
-(does not corre-)3.02 F(spond to a v)144 249.6 Q
-(alid position in the call stack.)-.25 E F2(cd)108 266.4 Q F0([)2.5 E F2
-(\255L|-P)A F0 2.5(][)C F1(dir)-2.5 E F0(])A .21
-(Change the current directory to)144 278.4 R F1(dir)2.71 E F0 5.21(.T)C
-.21(he v)-5.21 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(HOME)2.71 E F0 .21
-(is the def)2.46 F(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21(he v)
--5.21 F(ariable)-.25 E F3(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776
-(de\214nes the search path for the directory containing)144 290.4 R F1
-(dir)3.276 E F0 5.777(.A).73 G(lternati)-5.777 E 1.077 -.15(ve d)-.25 H
-.777(irectory names in).15 F F3(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0
-.764(are separated by a colon \(:\).)144 302.4 R 3.264(An)5.764 G .764
-(ull directory name in)-3.264 F F3(CDP)3.264 E -.855(AT)-.666 G(H).855 E
-F0 .764(is the same as the current direc-)3.014 F(tory)144 314.4 Q 2.973
-(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F2(.)A F0 -.74('')C 5.473(.I)
-.74 G(f)-5.473 E F1(dir)3.323 E F0(be)3.703 E .474
-(gins with a slash \(/\), then)-.15 F F3(CDP)2.974 E -.855(AT)-.666 G(H)
-.855 E F0 .474(is not used. The)2.724 F F2<ad50>2.974 E F0 .474
-(option says to use)2.974 F .58(the ph)144 326.4 R .58
+ent e)144 249.6 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
+144 261.6 Q(xtra information may be used, for e)-.15 E .001
+(xample, to print a stack trace.)-.15 F .001(The current frame is frame)
+5.001 F 3.02(0. The)144 273.6 R .52(return v)3.02 F .52
+(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .519
+(cuting a subroutine call or).15 F F2 -.2(ex)3.019 G(pr).2 E F0 .519
+(does not corre-)3.019 F(spond to a v)144 285.6 Q
+(alid position in the call stack.)-.25 E F1(cd)108 302.4 Q F0([)2.5 E F1
+(\255L|-P)A F0 2.5(][)C F2(dir)-2.5 E F0(])A .21
+(Change the current directory to)144 314.4 R F2(dir)2.71 E F0 5.21(.T)C
+.21(he v)-5.21 F(ariable)-.25 E/F4 9/Times-Bold@0 SF(HOME)2.71 E F0 .21
+(is the def)2.46 F(ault)-.1 E F2(dir)2.71 E F0 5.21(.T).73 G .21(he v)
+-5.21 F(ariable)-.25 E F4(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .777
+(de\214nes the search path for the directory containing)144 326.4 R F2
+(dir)3.276 E F0 5.776(.A).73 G(lternati)-5.776 E 1.076 -.15(ve d)-.25 H
+.776(irectory names in).15 F F4(CDP)3.276 E -.855(AT)-.666 G(H).855 E F0
+.764(are separated by a colon \(:\).)144 338.4 R 3.264(An)5.764 G .764
+(ull directory name in)-3.264 F F4(CDP)3.264 E -.855(AT)-.666 G(H).855 E
+F0 .764(is the same as the current direc-)3.014 F(tory)144 350.4 Q 2.974
+(,i)-.65 G .474(.e., `)-2.974 F(`)-.74 E F1(.)A F0 -.74('')C 5.474(.I)
+.74 G(f)-5.474 E F2(dir)3.324 E F0(be)3.704 E .474
+(gins with a slash \(/\), then)-.15 F F4(CDP)2.974 E -.855(AT)-.666 G(H)
+.855 E F0 .473(is not used. The)2.724 F F1<ad50>2.973 E F0 .473
+(option says to use)2.973 F .579(the ph)144 362.4 R .579
 (ysical directory structure instead of follo)-.05 F .579
-(wing symbolic links \(see also the)-.25 F F2<ad50>3.079 E F0 .579
-(option to the)3.079 F F2(set)144 338.4 Q F0 -.2(bu)3.383 G .883
-(iltin command\); the).2 F F2<ad4c>3.383 E F0 .884
+(wing symbolic links \(see also the)-.25 F F1<ad50>3.08 E F0 .58
+(option to the)3.08 F F1(set)144 374.4 Q F0 -.2(bu)3.384 G .884
+(iltin command\); the).2 F F1<ad4c>3.384 E F0 .884
 (option forces symbolic links to be follo)3.384 F 3.384(wed. An)-.25 F
-(ar)3.384 E .884(gument of)-.18 F F2<ad>3.384 E F0(is)3.384 E(equi)144
-350.4 Q -.25(va)-.25 G .063(lent to).25 F F3($OLDPWD)2.563 E/F4 9
-/Times-Roman@0 SF(.)A F0 .063(If a non-empty directory name from)4.563 F
-F2(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .062(is used, or if)2.562 F F2
-<ad>2.562 E F0 .062(is the \214rst)2.562 F(ar)144 362.4 Q .116(gument, \
+(ar)3.383 E .883(gument of)-.18 F F1<ad>3.383 E F0(is)3.383 E(equi)144
+386.4 Q -.25(va)-.25 G .062(lent to).25 F F4($OLDPWD)2.562 E/F5 9
+/Times-Roman@0 SF(.)A F0 .062(If a non-empty directory name from)4.562 F
+F1(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .063(is used, or if)2.562 F F1
+<ad>2.563 E F0 .063(is the \214rst)2.563 F(ar)144 398.4 Q .116(gument, \
 and the directory change is successful, the absolute pathname of the ne)
--.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165
-(tory is written to the standard output.)144 374.4 R 1.164(The return v)
-6.164 F 1.164(alue is true if the directory w)-.25 F 1.164
-(as successfully)-.1 F(changed; f)144 386.4 Q(alse otherwise.)-.1 E F2
-(command)108 403.2 Q F0([)2.5 E F2(\255pVv)A F0(])A F1(command)2.5 E F0
-([)2.5 E F1(ar)A(g)-.37 E F0(...])2.5 E(Run)144 415.2 Q F1(command)2.956
-E F0(with)3.527 E F1(ar)3.087 E(gs)-.37 E F0 .257
+-.18 F 2.615(ww)-.25 G .115(orking direc-)-2.715 F 1.164
+(tory is written to the standard output.)144 410.4 R 1.164(The return v)
+6.164 F 1.165(alue is true if the directory w)-.25 F 1.165
+(as successfully)-.1 F(changed; f)144 422.4 Q(alse otherwise.)-.1 E F1
+(command)108 439.2 Q F0([)2.5 E F1(\255pVv)A F0(])A F2(command)2.5 E F0
+([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Run)144 451.2 Q F2(command)2.957
+E F0(with)3.527 E F2(ar)3.087 E(gs)-.37 E F0 .257
 (suppressing the normal shell function lookup. Only b)3.027 F .257
-(uiltin commands or)-.2 F .502(commands found in the)144 427.2 R F3
--.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002
-(cuted. If).15 F(the)3.002 E F2<ad70>3.002 E F0 .502(option is gi)3.002
-F -.15(ve)-.25 G .501(n, the search for).15 F F1(command)3.201 E F0(is)
-3.771 E .231(performed using a def)144 439.2 R .231(ault v)-.1 F .231
-(alue for)-.25 F F2 -.74(PA)2.731 G(TH)-.21 E F0 .231
+(uiltin commands or)-.2 F .501(commands found in the)144 463.2 R F4
+-.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)-.15 G 3.002
+(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502(option is gi)3.002
+F -.15(ve)-.25 G .502(n, the search for).15 F F2(command)3.202 E F0(is)
+3.772 E .232(performed using a def)144 475.2 R .231(ault v)-.1 F .231
+(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0 .231
 (that is guaranteed to \214nd all of the standard utilities.)2.731 F(If)
-5.232 E .175(either the)144 451.2 R F2<ad56>2.675 E F0(or)2.675 E F2
-<ad76>2.675 E F0 .175(option is supplied, a description of)2.675 F F1
-(command)2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F2<ad76>2.674 E
-F0 .174(option causes)2.674 F 3.11(as)144 463.2 S .61(ingle w)-3.11 F
+5.231 E .174(either the)144 487.2 R F1<ad56>2.674 E F0(or)2.674 E F1
+<ad76>2.674 E F0 .175(option is supplied, a description of)2.674 F F2
+(command)2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F1<ad76>2.675 E
+F0 .175(option causes)2.675 F 3.11(as)144 499.2 S .61(ingle w)-3.11 F
 .61(ord indicating the command or \214le name used to in)-.1 F -.2(vo)
--.4 G -.1(ke).2 G F1(command)3.41 E F0 .61(to be displayed; the)3.88 F
-F2<ad56>144 475.2 Q F0 .25(option produces a more v)2.75 F .25
-(erbose description.)-.15 F .249(If the)5.25 F F2<ad56>2.749 E F0(or)
-2.749 E F2<ad76>2.749 E F0 .249(option is supplied, the e)2.749 F .249
-(xit status)-.15 F 1.004(is 0 if)144 487.2 R F1(command)3.704 E F0 -.1
-(wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005
-(If neither option is supplied and an error occurred or)6.005 F F1
-(command)144.2 499.2 Q F0 1.599(cannot be found, the e)4.869 F 1.599
-(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598
-(xit status of the)-.15 F F2(command)4.098 E F0 -.2(bu)144 511.2 S
-(iltin is the e).2 E(xit status of)-.15 E F1(command)2.5 E F0(.).77 E F2
-(compgen)108 528 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d)
--.37 E F0(])A .012(Generate possible completion matches for)144 540 R F1
-(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F1(option)2.513 E
-F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982
-(accepted by the)144 552 R F2(complete)3.482 E F0 -.2(bu)3.481 G .981
-(iltin with the e).2 F .981(xception of)-.15 F F2<ad70>3.481 E F0(and)
-3.481 E F2<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the)
--3.481 F 1.415(standard output.)144 564 R 1.415(When using the)6.415 F
-F2<ad46>3.915 E F0(or)3.915 E F2<ad43>3.915 E F0 1.415(options, the v)
+-.4 G -.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F
+F1<ad56>144 511.2 Q F0 .249(option produces a more v)2.749 F .249
+(erbose description.)-.15 F .249(If the)5.249 F F1<ad56>2.749 E F0(or)
+2.749 E F1<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
+(xit status)-.15 F 1.005(is 0 if)144 523.2 R F2(command)3.705 E F0 -.1
+(wa)4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004
+(If neither option is supplied and an error occurred or)6.005 F F2
+(command)144.2 535.2 Q F0 1.598(cannot be found, the e)4.868 F 1.599
+(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599
+(xit status of the)-.15 F F1(command)4.099 E F0 -.2(bu)144 547.2 S
+(iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1
+(compgen)108 564 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
+-.37 E F0(])A .013(Generate possible completion matches for)144 576 R F2
+(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513 E
+F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981
+(accepted by the)144 588 R F1(complete)3.481 E F0 -.2(bu)3.481 G .981
+(iltin with the e).2 F .981(xception of)-.15 F F1<ad70>3.481 E F0(and)
+3.481 E F1<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
+-3.481 F 1.415(standard output.)144 600 R 1.415(When using the)6.415 F
+F1<ad46>3.915 E F0(or)3.915 E F1<ad43>3.915 E F0 1.415(options, the v)
 3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25
-F(grammable completion f)144 576 Q(acilities, while a)-.1 E -.25(va)-.2
+F(grammable completion f)144 612 Q(acilities, while a)-.1 E -.25(va)-.2
 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)-.25
-E .352(The matches will be generated in the same w)144 600 R .352
+E .352(The matches will be generated in the same w)144 636 R .352
 (ay as if the programmable completion code had gen-)-.1 F .02(erated th\
 em directly from a completion speci\214cation with the same \215ags.)144
-612 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)2.52
-F(those completions matching)144 624 Q F1(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 648 Q
+648 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)2.52
+F(those completions matching)144 660 Q F2(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 684 Q
 (alue is true unless an in)-.25 E -.25(va)-.4 G
-(lid option is supplied, or no matches were generated.).25 E F2
-(complete)108 664.8 Q F0([)3.034 E F2(\255abcdefgjksuv)A F0 3.034(][)C
-F2<ad6f>-3.034 E F1(comp-option)3.034 E F0 3.034(][)C F2<ad45>-3.034 E
-F0 3.033(][)C F2<ad41>-3.033 E F1(action)3.033 E F0 3.033(][)C F2<ad47>
--3.033 E F1(globpat)3.033 E F0 3.033(][)C F2<ad57>-3.033 E F1(wor)3.033
-E(dlist)-.37 E F0 3.033(][)C F2<ad46>-3.033 E F1(function)3.033 E F0(])A
-([)108 676.8 Q F2<ad43>A F1(command)2.5 E F0(])A([)144 688.8 Q F2<ad58>A
-F1(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F1(pr)2.5 E(e\214x)-.37
-E F0 2.5(][)C F2<ad53>-2.5 E F1(suf)2.5 E<8c78>-.18 E F0(])A F1(name)2.5
-E F0([)2.5 E F1(name ...)A F0(])A F2(complete \255pr)108 700.8 Q F0([)
-2.5 E F2<ad45>A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .634
-(Specify ho)144 712.8 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
-(uments to each).18 F F1(name)3.134 E F0 .634(should be completed.)3.134
-F .633(If the)5.634 F F2<ad70>3.133 E F0 .633
-(option is supplied, or if no)3.133 F .139(options are supplied, e)144
-724.8 R .139(xisting completion speci\214cations are printed in a w)-.15
-F .14(ay that allo)-.1 F .14(ws them to be)-.25 F(GNU Bash-4.0)72 768 Q
-(2009 February 7)140.96 E(49)190.95 E 0 Cg EP
+(lid option is supplied, or no matches were generated.).25 E F1
+(complete)108 700.8 Q F0([)3.033 E F1(\255abcdefgjksuv)A F0 3.033(][)C
+F1<ad6f>-3.033 E F2(comp-option)3.033 E F0 3.033(][)C F1<ad45>-3.033 E
+F0 3.033(][)C F1<ad41>-3.033 E F2(action)3.033 E F0 3.033(][)C F1<ad47>
+-3.033 E F2(globpat)3.033 E F0 3.034(][)C F1<ad57>-3.034 E F2(wor)3.034
+E(dlist)-.37 E F0 3.034(][)C F1<ad46>-3.034 E F2(function)3.034 E F0(])A
+([)108 712.8 Q F1<ad43>A F2(command)2.5 E F0(])A([)144 724.8 Q F1<ad58>A
+F2(\214lterpat)2.5 E F0 2.5(][)C F1<ad50>-2.5 E F2(pr)2.5 E(e\214x)-.37
+E F0 2.5(][)C F1<ad53>-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])A F2(name)2.5
+E F0([)2.5 E F2(name ...)A F0(])A(GNU Bash-4.0)72 768 Q(2009 February 7)
+140.96 E(49)190.95 E 0 Cg EP
 %%Page: 50 50
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .31(reused as input.)144 84 R(The)5.31 E/F1 10/Times-Bold@0 SF
-<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31
-(ompletion speci\214cation for each)-2.81 F/F2 10/Times-Italic@0 SF
+-.35 E/F1 10/Times-Bold@0 SF(complete \255pr)108 84 Q F0([)2.5 E F1
+<ad45>A F0 2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0(...])2.5 E
+.633(Specify ho)144 96 R 3.133(wa)-.25 G -.18(rg)-3.133 G .633
+(uments to each).18 F F2(name)3.133 E F0 .633(should be completed.)3.133
+F .634(If the)5.634 F F1<ad70>3.134 E F0 .634
+(option is supplied, or if no)3.134 F .14(options are supplied, e)144
+108 R .139(xisting completion speci\214cations are printed in a w)-.15 F
+.139(ay that allo)-.1 F .139(ws them to be)-.25 F .31(reused as input.)
+144 120 R(The)5.31 E F1<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)
+-.15 G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2
 (name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E
-F2(name)2.81 E F0(s)A 1.392
-(are supplied, all completion speci\214cations.)144 96 R(The)6.392 E F1
-<ad45>3.892 E F0 1.393(option indicates that the remaining options)3.893
-F 1.304(and actions should apply to `)144 108 R(`empty')-.74 E 3.804('c)
+F2(name)2.81 E F0(s)A 1.393
+(are supplied, all completion speci\214cations.)144 132 R(The)6.393 E F1
+<ad45>3.893 E F0 1.392(option indicates that the remaining options)3.892
+F 1.304(and actions should apply to `)144 144 R(`empty')-.74 E 3.804('c)
 -.74 G 1.304(ommand completion; that is, completion attempted on a)
--3.804 F(blank line.)144 120 Q 1.437
+-3.804 F(blank line.)144 156 Q 1.438
 (The process of applying these completion speci\214cations when w)144
-144 R 1.438(ord completion is attempted is)-.1 F(described abo)144 156 Q
+180 R 1.437(ord completion is attempted is)-.1 F(described abo)144 192 Q
 .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
-F0(.)A .556(Other options, if speci\214ed, ha)144 180 R .856 -.15(ve t)
+F0(.)A .555(Other options, if speci\214ed, ha)144 216 R .855 -.15(ve t)
 -.2 H .555(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F
-.555(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1<ad57>3.055 E F0
-3.055(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722
-(options \(and, if necessary)144 192 R 3.222(,t)-.65 G(he)-3.222 E F1
-<ad50>3.222 E F0(and)3.222 E F1<ad53>3.222 E F0 .723
-(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
-(sion before the)144 204 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
-(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 216 Q F2
-(comp-option)2.5 E F0(The)184 228 Q F2(comp-option)2.791 E F0 .291
+.555(guments to the)-.18 F F1<ad47>3.056 E F0(,)A F1<ad57>3.056 E F0
+3.056(,a)C(nd)-3.056 E F1<ad58>3.056 E F0 .723
+(options \(and, if necessary)144 228 R 3.223(,t)-.65 G(he)-3.223 E F1
+<ad50>3.223 E F0(and)3.223 E F1<ad53>3.223 E F0 .722
+(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
+(sion before the)144 240 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 252 Q F2
+(comp-option)2.5 E F0(The)184 264 Q F2(comp-option)2.79 E F0 .291
 (controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
 .15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
-(yond the simple)-.15 F(generation of completions.)184 240 Q F2
-(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 252 Q F0
-.281(Perform the rest of the def)224 264 R(ault)-.1 E F1(bash)2.781 E F0
-.281(completions if the compspec generates no)2.781 F(matches.)224 276 Q
-F1(default)184 288 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 G(ef)
--5.376 E 2.875(ault \214lename completion if the compspec generates no)
--.1 F(matches.)224 300 Q F1(dir)184 312 Q(names)-.15 E F0(Perform direc\
-tory name completion if the compspec generates no matches.)224 324 Q F1
-(\214lenames)184 336 Q F0 -.7(Te)224 348 S .137(ll readline that the co\
-mpspec generates \214lenames, so it can perform an).7 F 2.637<798c>-.15
-G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 360 R 2.634
+(yond the simple)-.15 F(generation of completions.)184 276 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 288 Q F0
+.281(Perform the rest of the def)224 300 R(ault)-.1 E F1(bash)2.781 E F0
+.281(completions if the compspec generates no)2.781 F(matches.)224 312 Q
+F1(default)184 324 Q F0 2.875(Use readline')10 F 5.375(sd)-.55 G(ef)
+-5.375 E 2.876(ault \214lename completion if the compspec generates no)
+-.1 F(matches.)224 336 Q F1(dir)184 348 Q(names)-.15 E F0(Perform direc\
+tory name completion if the compspec generates no matches.)224 360 Q F1
+(\214lenames)184 372 Q F0 -.7(Te)224 384 S .137(ll readline that the co\
+mpspec generates \214lenames, so it can perform an).7 F 2.636<798c>-.15
+G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 396 R 2.634
 (ea)-.1 G .134(dding a slash to directory names, quoting spe-)-2.634 F
-.45(cial characters, or suppressing trailing spaces\).)224 372 R .45
-(Intended to be used with shell)5.45 F(functions.)224 384 Q F1(nospace)
-184 396 Q F0 -.7(Te)6.11 G .22
+.45(cial characters, or suppressing trailing spaces\).)224 408 R .45
+(Intended to be used with shell)5.45 F(functions.)224 420 Q F1(nospace)
+184 432 Q F0 -.7(Te)6.11 G .22
 (ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F
-.22(ords completed at the end)-.1 F(of the line.)224 408 Q F1(plusdirs)
-184 420 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
+.22(ords completed at the end)-.1 F(of the line.)224 444 Q F1(plusdirs)
+184 456 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
 (atches de\214ned by the compspec are generated, directory name)-4.485 F
-.584(completion is attempted and an)224 432 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 444
-Q F1<ad41>144 456 Q F2(action)2.5 E F0(The)184 468 Q F2(action)2.5 E F0
+.583(completion is attempted and an)224 468 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224 480
+Q F1<ad41>144 492 Q F2(action)2.5 E F0(The)184 504 Q F2(action)2.5 E F0
 (may be one of the follo)2.5 E
 (wing to generate a list of possible completions:)-.25 E F1(alias)184
-480 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
-E F0(.)A F1(arrayv)184 492 Q(ar)-.1 E F0(Array v)224 504 Q
-(ariable names.)-.25 E F1 4.7(binding Readline)184 516 R F0 -.1(ke)2.5 G
-2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 528 S(iltin).2 E F0
+516 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
+E F0(.)A F1(arrayv)184 528 Q(ar)-.1 E F0(Array v)224 540 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 552 R F0 -.1(ke)2.5 G
+2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 564 S(iltin).2 E F0
 (Names of shell b)11.85 E(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 540
-Q F0(Command names.)224 552 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 564 Q(ectory)-.18 E F0(Directory names.)224 576 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 588
-Q F0(Names of disabled shell b)224 600 Q(uiltins.)-.2 E F1(enabled)184
-612 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
-624 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 576
+Q F0(Command names.)224 588 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 600 Q(ectory)-.18 E F0(Directory names.)224 612 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 624
+Q F0(Names of disabled shell b)224 636 Q(uiltins.)-.2 E F1(enabled)184
+648 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
+660 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
 -.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
-636 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
-E F0(.)A F1(function)184 648 Q F0(Names of shell functions.)224 660 Q F1
-(gr)184 672 Q(oup)-.18 E F0(Group names.)14.62 E
-(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-684 Q F0(Help topics as accepted by the)224 696 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(50)
-190.95 E 0 Cg EP
+672 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
+E F0(.)A F1(function)184 684 Q F0(Names of shell functions.)224 696 Q F1
+(gr)184 708 Q(oup)-.18 E F0(Group names.)14.62 E
+(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A(GNU Bash-4.0)72 768
+Q(2009 February 7)140.96 E(50)190.95 E 0 Cg EP
 %%Page: 51 51
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(hostname)184 84 Q F0(Hostnames, as tak)224
-96 Q(en from the \214le speci\214ed by the)-.1 E/F2 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 108 Q F0
+-.35 E/F1 10/Times-Bold@0 SF(helptopic)184 84 Q F0
+(Help topics as accepted by the)224 96 Q F1(help)2.5 E F0 -.2(bu)2.5 G
+(iltin.).2 E F1(hostname)184 108 Q F0(Hostnames, as tak)224 120 Q
+(en from the \214le speci\214ed by the)-.1 E/F2 9/Times-Bold@0 SF
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 132 Q F0
 (Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 120 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 132 Q(ed w)-.15 E 2.5(ords. May)
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 144 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 156 Q(ed w)-.15 E 2.5(ords. May)
 -.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
-144 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
--.25 G(.).15 E F1(ser)184 156 Q(vice)-.1 E F0(Service names.)10.67 E
-(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 168 Q
+168 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
+-.25 G(.).15 E F1(ser)184 180 Q(vice)-.1 E F0(Service names.)10.67 E
+(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 192 Q
 F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
 F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
-(shopt)184 180 Q F0(Shell option names as accepted by the)16.66 E F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 192 Q F0
-(Signal names.)14.99 E F1(stopped)184 204 Q F0
+(shopt)184 204 Q F0(Shell option names as accepted by the)16.66 E F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 216 Q F0
+(Signal names.)14.99 E F1(stopped)184 228 Q F0
 (Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
-.15 E F1(user)184 216 Q F0(User names.)21.67 E
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 228 S
+.15 E F1(user)184 240 Q F0(User names.)21.67 E
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 252 S
 (riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 240 Q/F3
-10/Times-Italic@0 SF(globpat)2.5 E F0 1.41(The \214lename e)184 252 R
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 264 Q/F3
+10/Times-Italic@0 SF(globpat)2.5 E F0 1.411(The \214lename e)184 276 R
 1.411(xpansion pattern)-.15 F F3(globpat)3.911 E F0 1.411(is e)3.911 F
-1.411(xpanded to generate the possible comple-)-.15 F(tions.)184 264 Q
-F1<ad57>144 276 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 288 Q F3(wor)3.64
-E(dlist)-.37 E F0 1.14(is split using the characters in the)3.64 F F2
-(IFS)3.64 E F0 1.139(special v)3.39 F 1.139(ariable as delimiters, and)
--.25 F 2.007(each resultant w)184 300 R 2.007(ord is e)-.1 F 4.507
-(xpanded. The)-.15 F 2.008(possible completions are the members of the)
-4.507 F(resultant list which match the w)184 312 Q(ord being completed.)
--.1 E F1<ad43>144 324 Q F3(command)2.5 E(command)184 336 Q F0 1.056
-(is e)3.556 F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
+1.411(xpanded to generate the possible comple-)-.15 F(tions.)184 288 Q
+F1<ad57>144 300 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 312 Q F3(wor)
+3.639 E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639
+F F2(IFS)3.64 E F0 1.14(special v)3.39 F 1.14
+(ariable as delimiters, and)-.25 F 2.008(each resultant w)184 324 R
+2.008(ord is e)-.1 F 4.508(xpanded. The)-.15 F 2.007
+(possible completions are the members of the)4.508 F
+(resultant list which match the w)184 336 Q(ord being completed.)-.1 E
+F1<ad43>144 348 Q F3(command)2.5 E(command)184 360 Q F0 1.055(is e)3.555
+F -.15(xe)-.15 G 1.055(cuted in a subshell en).15 F 1.056
 (vironment, and its output is used as the possible)-.4 F(completions.)
-184 348 Q F1<ad46>144 360 Q F3(function)2.5 E F0 1.18
-(The shell function)184 372 R F3(function)3.68 E F0 1.181(is e)3.681 F
--.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.681
-(vironment. When)-.4 F 1.181(it \214n-)3.681 F .932
-(ishes, the possible completions are retrie)184 384 R -.15(ve)-.25 G
+184 372 Q F1<ad46>144 384 Q F3(function)2.5 E F0 1.181
+(The shell function)184 396 R F3(function)3.681 E F0 1.181(is e)3.681 F
+-.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.68
+(vironment. When)-.4 F 1.18(it \214n-)3.68 F .932
+(ishes, the possible completions are retrie)184 408 R -.15(ve)-.25 G
 3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F2
-(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 396 S(riable.)
-.25 E F1<ad58>144 408 Q F3(\214lterpat)2.5 E(\214lterpat)184 420 Q F0
-.733(is a pattern as used for \214lename e)3.233 F 3.233(xpansion. It)
+(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 420 S(riable.)
+.25 E F1<ad58>144 432 Q F3(\214lterpat)2.5 E(\214lterpat)184 444 Q F0
+.733(is a pattern as used for \214lename e)3.234 F 3.233(xpansion. It)
 -.15 F .733(is applied to the list of possible)3.233 F 1.596
-(completions generated by the preceding options and ar)184 432 R 1.596
-(guments, and each completion)-.18 F(matching)184 444 Q F3(\214lterpat)
-3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
-(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
-(in)3.204 E F3(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
-(tes the pattern;).05 F(in this case, an)184 456 Q 2.5(yc)-.15 G
+(completions generated by the preceding options and ar)184 456 R 1.596
+(guments, and each completion)-.18 F(matching)184 468 Q F3(\214lterpat)
+3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
+(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F3(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
+(tes the pattern;).05 F(in this case, an)184 480 Q 2.5(yc)-.15 G
 (ompletion not matching)-2.5 E F3(\214lterpat)2.5 E F0(is remo)2.5 E
--.15(ve)-.15 G(d.).15 E F1<ad50>144 468 Q F3(pr)2.5 E(e\214x)-.37 E(pr)
-184 480 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
+-.15(ve)-.15 G(d.).15 E F1<ad50>144 492 Q F3(pr)2.5 E(e\214x)-.37 E(pr)
+184 504 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
 (ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 492 Q F1<ad53>144 504 Q F3(suf)2.5 E
+-.15(ve)-.2 G(been applied.)184 516 Q F1<ad53>144 528 Q F3(suf)2.5 E
 2.81(\214x suf)-.18 F<8c78>-.18 E F0
 (is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E .466(The return v)144 520.8 R
-.466(alue is true unless an in)-.25 F -.25(va)-.4 G .466
-(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
-(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
-(plied without a)144 532.8 R F3(name)3.862 E F0(ar)3.862 E 1.361
-(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
-1.361(ompletion speci\214cation for a).15 F F3(name)144 544.8 Q F0
+E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 544.8 R
+.467(alue is true unless an in)-.25 F -.25(va)-.4 G .466
+(lid option is supplied, an option other than).25 F F1<ad70>2.966 E F0
+(or)2.966 E F1<ad72>2.966 E F0 .466(is sup-)2.966 F 1.361
+(plied without a)144 556.8 R F3(name)3.861 E F0(ar)3.861 E 1.361
+(gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H
+1.362(ompletion speci\214cation for a).15 F F3(name)144 568.8 Q F0
 (for which no speci\214cation e)2.5 E
 (xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 561.6 Q F0([)2.5 E F1<ad6f>A F3(option)2.5 E F0 2.5(][)C
+F1(compopt)108 585.6 Q F0([)2.5 E F1<ad6f>A F3(option)2.5 E F0 2.5(][)C
 F1(+o)-2.5 E F3(option)2.5 E F0 2.5(][)C F3(name)-2.5 E F0(])A .447
-(Modify completion options for each)144 573.6 R F3(name)2.947 E F0 .447
+(Modify completion options for each)144 597.6 R F3(name)2.947 E F0 .447
 (according to the)2.947 F F3(option)2.947 E F0 .447
-(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .726
-(completion if no)144 585.6 R F3(name)3.226 E F0 3.226(sa)C .726
-(re supplied.)-3.226 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa)
-C .725(re gi)-3.225 F -.15(ve)-.25 G .725
-(n, display the completion options for).15 F(each)144 597.6 Q F3(name)
-3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
+(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .725
+(completion if no)144 609.6 R F3(name)3.225 E F0 3.225(sa)C .725
+(re supplied.)-3.225 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .726
+(n, display the completion options for).15 F(each)144 621.6 Q F3(name)
+3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v)
 5.724 F .724(alues of)-.25 F F3(option)3.224 E F0 .724(are those v)3.224
-F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 609.6 Q F0 -.2(bu)
+F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 633.6 Q F0 -.2(bu)
 2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v)
-108 626.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327
+108 650.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327
 (lid option is supplied, an attempt is made to modify the options for a)
-.25 F F3(name)108 638.4 Q F0(for which no completion speci\214cation e)
-2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 655.2 Q
-F0([)2.5 E F3(n)A F0(])A 1.753(Resume the ne)144 667.2 R 1.753
+.25 F F3(name)108 662.4 Q F0(for which no completion speci\214cation e)
+2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 679.2 Q
+F0([)2.5 E F3(n)A F0(])A 1.754(Resume the ne)144 691.2 R 1.754
 (xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
 F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
-(select)4.254 E F0 4.254(loop. If)4.254 F F3(n)4.614 E F0 1.754
-(is speci\214ed,)4.494 F 1.209(resume at the)144 679.2 R F3(n)3.709 E F0
+(select)4.254 E F0 4.253(loop. If)4.254 F F3(n)4.613 E F0 1.753
+(is speci\214ed,)4.493 F 1.208(resume at the)144 703.2 R F3(n)3.709 E F0
 1.209(th enclosing loop.)B F3(n)6.569 E F0 1.209(must be)3.949 F/F4 10
 /Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F3(n)4.069 E F0 1.209
-(is greater than the number of enclosing)3.949 F .513
-(loops, the last enclosing loop \(the `)144 691.2 R(`top-le)-.74 E -.15
-(ve)-.25 G(l').15 E 3.013('l)-.74 G .513(oop\) is resumed.)-3.013 F .514
-(The return v)5.514 F .514(alue is 0 unless)-.25 F F3(n)3.014 E F0(is)
-3.014 E(not greater than or equal to 1.)144 703.2 Q(GNU Bash-4.0)72 768
+(is greater than the number of enclosing)3.949 F .514
+(loops, the last enclosing loop \(the `)144 715.2 R(`top-le)-.74 E -.15
+(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
+(The return v)5.513 F .513(alue is 0 unless)-.25 F F3(n)3.013 E F0(is)
+3.013 E(not greater than or equal to 1.)144 727.2 Q(GNU Bash-4.0)72 768
 Q(2009 February 7)140.96 E(51)190.95 E 0 Cg EP
 %%Page: 52 52
 %%BeginPageSetup
 /Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E
 F1(typeset)108 96 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>
 -2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])
--2.5 E 1.265(Declare v)144 108 R 1.265(ariables and/or gi)-.25 F 1.565
--.15(ve t)-.25 H 1.265(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
-F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.764
-(nt).15 G 1.264(hen display the v)-3.764 F 1.264(alues of)-.25 F -.25
-(va)144 120 S 3.482(riables. The).25 F F1<ad70>3.482 E F0 .982
-(option will display the attrib)3.482 F .982(utes and v)-.2 F .983
-(alues of each)-.25 F F2(name)3.483 E F0 5.983(.W).18 G(hen)-5.983 E F1
-<ad70>3.483 E F0 .983(is used)3.483 F(with)144 132 Q F2(name)3.58 E F0
-(ar)3.58 E 1.079(guments, additional options are ignored.)-.18 F(When)
+-2.5 E 1.264(Declare v)144 108 R 1.264(ariables and/or gi)-.25 F 1.564
+-.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
+F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765
+(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25
+(va)144 120 S 3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
+(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
+(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 132 Q F2(name)3.579 E F0
+(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F(When)
 6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2(name)
-3.579 E F0(ar)3.579 E(gu-)-.18 E .15(ments, it will display the attrib)
-144 144 R .15(utes and v)-.2 F .151(alues of all v)-.25 F .151
-(ariables ha)-.25 F .151(ving the attrib)-.2 F .151
-(utes speci\214ed by the)-.2 F .047(additional options.)144 156 R .047
-(If no other options are supplied with)5.047 F F1<ad70>2.547 E F0(,)A F1
-(declar)2.547 E(e)-.18 E F0 .046(will display the attrib)2.546 F .046
-(utes and)-.2 F -.25(va)144 168 S 1.362(lues of all shell v).25 F 3.862
-(ariables. The)-.25 F F1<ad66>3.862 E F0 1.363
-(option will restrict the display to shell functions.)3.862 F(The)6.363
-E F1<ad46>3.863 E F0 2.422(option inhibits the display of function de\
-\214nitions; only the function name and attrib)144 180 R 2.422(utes are)
--.2 F 2.663(printed. If)144 192 R(the)2.663 E F1(extdeb)2.663 E(ug)-.2 E
-F0 .164(shell option is enabled using)2.663 F F1(shopt)2.664 E F0 2.664
-(,t)C .164(he source \214le name and line number)-2.664 F 1.382
+3.58 E F0(ar)3.58 E(gu-)-.18 E .151(ments, it will display the attrib)
+144 144 R .151(utes and v)-.2 F .151(alues of all v)-.25 F .15
+(ariables ha)-.25 F .15(ving the attrib)-.2 F .15
+(utes speci\214ed by the)-.2 F .046(additional options.)144 156 R .046
+(If no other options are supplied with)5.046 F F1<ad70>2.547 E F0(,)A F1
+(declar)2.547 E(e)-.18 E F0 .047(will display the attrib)2.547 F .047
+(utes and)-.2 F -.25(va)144 168 S 1.363(lues of all shell v).25 F 3.863
+(ariables. The)-.25 F F1<ad66>3.863 E F0 1.362
+(option will restrict the display to shell functions.)3.863 F(The)6.362
+E F1<ad46>3.862 E F0 2.422(option inhibits the display of function de\
+\214nitions; only the function name and attrib)144 180 R 2.423(utes are)
+-.2 F 2.664(printed. If)144 192 R(the)2.664 E F1(extdeb)2.664 E(ug)-.2 E
+F0 .164(shell option is enabled using)2.664 F F1(shopt)2.664 E F0 2.664
+(,t)C .163(he source \214le name and line number)-2.664 F 1.382
 (where the function is de\214ned are displayed as well.)144 204 R(The)
 6.382 E F1<ad46>3.882 E F0 1.382(option implies)3.882 F F1<ad66>3.882 E
-F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .793
+F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794
 (options can be used to restrict output to v)144 216 R .794
-(ariables with the speci\214ed attrib)-.25 F .794(ute or to gi)-.2 F
-1.094 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 228 Q(utes:)-.2 E F1
+(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F
+1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 228 Q(utes:)-.2 E F1
 <ad61>144 240 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15
 (xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5
 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 252 Q F0(Each)23.08
 E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15
 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
 .15 E F1<ad66>144 264 Q F0(Use function names only)26.97 E(.)-.65 E F1
-<ad69>144 276 Q F0 .558(The v)27.52 F .558
+<ad69>144 276 Q F0 .557(The v)27.52 F .558
 (ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
-(va)-.25 G .558(luation \(see).25 F/F3 9/Times-Bold@0 SF .557
+(va)-.25 G .558(luation \(see).25 F/F3 9/Times-Bold@0 SF .558
 (ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 288 Q F0
 (is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.)
--.25 E F1<ad6c>144 300 Q F0 .909(When the v)27.52 F .909
+-.25 E F1<ad6c>144 300 Q F0 .91(When the v)27.52 F .909
 (ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to lo).15 F(wer)
+(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer)
 -.25 E(-)-.2 E 2.5(case. The)180 312 R(upper)2.5 E(-case attrib)-.2 E
 (ute is disabled.)-.2 E F1<ad72>144 324 Q F0(Mak)25.86 E(e)-.1 E F2
-(name)5.047 E F0 5.047(sr)C(eadonly)-5.047 E 7.547(.T)-.65 G 2.546
-(hese names cannot then be assigned v)-7.547 F 2.546
+(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E 7.546(.T)-.65 G 2.546
+(hese names cannot then be assigned v)-7.546 F 2.547
 (alues by subsequent)-.25 F(assignment statements or unset.)180 336 Q F1
-<ad74>144 348 Q F0(Gi)26.97 E .729 -.15(ve e)-.25 H(ach).15 E F2(name)
-2.929 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
+<ad74>144 348 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E F2(name)
+2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
 (ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG)
--.1 E F0(and)2.93 E F1(RETURN)2.93 E F0(traps from the calling shell.)
+-.1 E F0(and)2.929 E F1(RETURN)2.929 E F0(traps from the calling shell.)
 180 360 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
-(ariables.)-.25 E F1<ad75>144 372 Q F0 .91(When the v)24.74 F .909
+(ariables.)-.25 E F1<ad75>144 372 Q F0 .909(When the v)24.74 F .909
 (ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to upper).15 F
-(-)-.2 E 2.5(case. The)180 384 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
+(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to upper).15 F(-)
+-.2 E 2.5(case. The)180 384 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
 (ute is disabled.)-.2 E F1<ad78>144 396 Q F0(Mark)25.3 E F2(name)2.5 E
 F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
-(vironment.)-.4 E .12(Using `+' instead of `\255' turns of)144 412.8 R
-2.62(ft)-.25 G .12(he attrib)-2.62 F .121(ute instead, with the e)-.2 F
-.121(xceptions that)-.15 F F1(+a)2.621 E F0 .121(may not be used)2.621 F
-1.237(to destro)144 424.8 R 3.737(ya)-.1 G 3.737(na)-3.737 G 1.237
+(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 412.8 R
+2.621(ft)-.25 G .121(he attrib)-2.621 F .121(ute instead, with the e)-.2
+F .12(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F
+1.236(to destro)144 424.8 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237
 (rray v)-3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F
 (emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib)
--.18 F 3.737(ute. When)-.2 F 1.236(used in a)3.737 F .311(function, mak)
-144 436.8 R .311(es each)-.1 F F2(name)2.811 E F1 .311
-(local, as with the local)2.811 F F0 2.811(command. If)2.811 F 2.811(av)
-2.811 G .312(ariable name is follo)-3.061 F .312(wed by)-.25 F(=)144
-448.8 Q F2(value)A F0 3.239(,t)C .739(he v)-3.239 F .739(alue of the v)
--.25 F .739(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738
-(he return v)-5.738 F .738(alue is 0 unless an in)-.25 F -.25(va)-.4 G
-.738(lid option is).25 F .603
+-.18 F 3.737(ute. When)-.2 F 1.237(used in a)3.737 F .312(function, mak)
+144 436.8 R .312(es each)-.1 F F2(name)2.812 E F1 .311
+(local, as with the local)2.812 F F0 2.811(command. If)2.811 F 2.811(av)
+2.811 G .311(ariable name is follo)-3.061 F .311(wed by)-.25 F(=)144
+448.8 Q F2(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)
+-.25 F .738(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738
+(he return v)-5.738 F .739(alue is 0 unless an in)-.25 F -.25(va)-.4 G
+.739(lid option is).25 F .603
 (encountered, an attempt is made to de\214ne a function using)144 460.8
 R/F4 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na)
--3.103 G .604(ttempt is made to)-3.103 F 1.243(assign a v)144 472.8 R
-1.243(alue to a readonly v)-.25 F 1.242
-(ariable, an attempt is made to assign a v)-.25 F 1.242
+-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 472.8 R
+1.242(alue to a readonly v)-.25 F 1.242
+(ariable, an attempt is made to assign a v)-.25 F 1.243
 (alue to an array v)-.25 F(ariable)-.25 E 1.386
 (without using the compound assignment syntax \(see)144 484.8 R F1
 (Arrays)3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F
-F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 496.8 S .172
+F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 496.8 S .171
 (lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
-F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .171
+F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172
 (ariable, an)-.25 F .96(attempt is made to turn of)144 508.8 R 3.46(fa)
 -.25 G .96(rray status for an array v)-3.46 F .96
 (ariable, or an attempt is made to display a)-.25 F(non-e)144 520.8 Q
 (xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 537.6
 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0
--.4(Wi)144 549.6 S .329
+-.4(Wi)144 549.6 S .328
 (thout options, displays the list of currently remembered directories.)
-.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
+.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238
 (single line with directory names separated by spaces.)144 561.6 R 1.238
 (Directories are added to the list with the)6.238 F F1(pushd)144 573.6 Q
 F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
 2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 585.6 Q F2(n)A F0
-1.565(Displays the)25.3 F F2(n)4.065 E F0 1.565
-(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
-(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+1.564(Displays the)25.3 F F2(n)4.064 E F0 1.565
+(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1
+(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
 (without options, starting with zero.)180 597.6 Q F1<ad>144 609.6 Q F2
 (n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
 (th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
@@ -6142,9 +6153,9 @@ F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
 .324(ault listing format uses a tilde to denote the home direc-)-.1 F
 (tory)180 657.6 Q(.)-.65 E F1<ad70>144 669.6 Q F0
 (Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-681.6 Q F0 .272(Print the directory stack with one entry per line, pre\
-\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773
-G(he)-2.773 E(stack.)180 693.6 Q .258(The return v)144 710.4 R .258
+681.6 Q F0 .273(Print the directory stack with one entry per line, pre\
+\214xing each entry with its inde)25.3 F 2.772(xi)-.15 G 2.772(nt)-2.772
+G(he)-2.772 E(stack.)180 693.6 Q .257(The return v)144 710.4 R .258
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
 (lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
 -.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
@@ -6160,46 +6171,46 @@ BP
 (jobspec)-2.5 E F0(...])2.5 E -.4(Wi)144 96 S .295(thout options, each)
 .4 F F2(jobspec)4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df)
 .15 G .295(rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795
-(obs. If).15 F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .244
+(obs. If).15 F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .243
 (and neither)144 108 R F1 .243(\255a nor \255r is supplied, the shell')
-2.744 F 2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243
-(ent job)-.37 F F1 .243(is used.)2.743 F .243(If the \255h option)5.243
-F .333(is gi)144 120 R -.1(ve)-.1 G .333(n, each).1 F F2(jobspec)4.574 E
+2.743 F 2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243
+(ent job)-.37 F F1 .243(is used.)2.743 F .244(If the \255h option)5.243
+F .334(is gi)144 120 R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E
 F0 .334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334
 (rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F
-/F3 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .334(is not sent to)2.584 F 1.19
-(the job if the shell recei)144 132 R -.15(ve)-.25 G 3.689(sa).15 G F3
-(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2(jobspec)
+/F3 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .333(is not sent to)2.584 F
+1.189(the job if the shell recei)144 132 R -.15(ve)-.25 G 3.689(sa).15 G
+F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2(jobspec)
 5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>3.689 E F0
-1.189(nor the)3.689 F F1<ad72>3.689 E F0 1.569(option is supplied, the)
-144 144 R F2(curr)4.069 E 1.569(ent job)-.37 F F0 1.569(is used.)4.069 F
-1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.57(is supplied, the)4.38 F
-F1<ad61>4.07 E F0 1.57(option means to)4.07 F(remo)144 156 Q .904 -.15
-(ve o)-.15 H 3.104(rm).15 G .604(ark all jobs; the)-3.104 F F1<ad72>
-3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.413
-E .603(gument restricts operation to running)-.18 F 2.5(jobs. The)144
+1.19(nor the)3.69 F F1<ad72>3.69 E F0 1.57(option is supplied, the)144
+144 R F2(curr)4.07 E 1.57(ent job)-.37 F F0 1.57(is used.)4.07 F 1.569
+(If no)6.569 F F2(jobspec)5.809 E F0 1.569(is supplied, the)4.379 F F1
+<ad61>4.069 E F0 1.569(option means to)4.069 F(remo)144 156 Q .903 -.15
+(ve o)-.15 H 3.103(rm).15 G .603(ark all jobs; the)-3.103 F F1<ad72>
+3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.414
+E .604(gument restricts operation to running)-.18 F 2.5(jobs. The)144
 168 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
 (does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 184.8 Q
 F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-.394(Output the)144 196.8 R F2(ar)2.894 E(g)-.37 E F0 .394
+.395(Output the)144 196.8 R F2(ar)2.895 E(g)-.37 E F0 .395
 (s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895
-(wline. The)-.25 F .395(return status is al)2.895 F -.1(wa)-.1 G .395
-(ys 0.).1 F(If)5.395 E F1<ad6e>2.895 E F0 .549
+(wline. The)-.25 F .394(return status is al)2.895 F -.1(wa)-.1 G .394
+(ys 0.).1 F(If)5.394 E F1<ad6e>2.894 E F0 .548
 (is speci\214ed, the trailing ne)144 208.8 R .548(wline is suppressed.)
 -.25 F .548(If the)5.548 F F1<ad65>3.048 E F0 .548(option is gi)3.048 F
 -.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 220.8 Q
-.052(wing backslash-escaped characters is enabled.)-.25 F(The)5.052 E F1
-<ad45>2.552 E F0 .053(option disables the interpretation of these)2.553
-F 1.503(escape characters, e)144 232.8 R -.15(ve)-.25 G 4.003(no).15 G
-4.003(ns)-4.003 G 1.502(ystems where the)-4.003 F 4.002(ya)-.15 G 1.502
-(re interpreted by def)-4.002 F 4.002(ault. The)-.1 F F1(xpg_echo)4.002
-E F0(shell)4.002 E .009
+.053(wing backslash-escaped characters is enabled.)-.25 F(The)5.053 E F1
+<ad45>2.553 E F0 .052(option disables the interpretation of these)2.552
+F 1.502(escape characters, e)144 232.8 R -.15(ve)-.25 G 4.002(no).15 G
+4.002(ns)-4.002 G 1.502(ystems where the)-4.002 F 4.002(ya)-.15 G 1.502
+(re interpreted by def)-4.002 F 4.003(ault. The)-.1 F F1(xpg_echo)4.003
+E F0(shell)4.003 E .009
 (option may be used to dynamically determine whether or not)144 244.8 R
-F1(echo)2.509 E F0 -.15(ex)2.51 G .01(pands these escape characters).15
-F .66(by def)144 256.8 R(ault.)-.1 E F1(echo)5.66 E F0 .66
-(does not interpret)3.16 F F1<adad>3.16 E F0 .659
-(to mean the end of options.)3.159 F F1(echo)5.659 E F0 .659
-(interprets the follo)3.159 F(wing)-.25 E(escape sequences:)144 268.8 Q
+F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters)
+.15 F .659(by def)144 256.8 R(ault.)-.1 E F1(echo)5.659 E F0 .659
+(does not interpret)3.159 F F1<adad>3.159 E F0 .659
+(to mean the end of options.)3.159 F F1(echo)5.66 E F0 .66
+(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 268.8 Q
 F1(\\a)144 280.8 Q F0(alert \(bell\))28.22 E F1(\\b)144 292.8 Q F0
 (backspace)27.66 E F1(\\c)144 304.8 Q F0(suppress further output)28.78 E
 F1(\\e)144 316.8 Q F0(an escape character)28.78 E F1(\\f)144 328.8 Q F0
@@ -6214,137 +6225,137 @@ F0(horizontal tab)29.89 E F1(\\v)144 376.8 Q F0 -.15(ve)28.22 G
 (xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
 -.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 429.6 Q F0([)2.5 E
 F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2
-(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .277
+(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278
 (Enable and disable b)144 441.6 R .278(uiltin shell commands.)-.2 F .278
 (Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
-(ws a disk command which has)-.25 F .834(the same name as a shell b)144
+(ws a disk command which has)-.25 F .833(the same name as a shell b)144
 453.6 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
-(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.333
-(nt).15 G(hough)-3.333 E .989(the shell normally searches for b)144
-465.6 R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>
-3.489 E F0 .99(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F
-1.582(abled; otherwise,)144 477.6 R F2(names)4.082 E F0 1.582
-(are enabled.)4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582
-(xample, to use the)-4.232 F F1(test)4.082 E F0 1.582
-(binary found via the)4.082 F F3 -.666(PA)4.081 G(TH)-.189 E F0 .08
-(instead of the shell b)144 489.6 R .08(uiltin v)-.2 F .08(ersion, run)
--.15 F/F5 10/Courier@0 SF .081(enable -n test)2.58 F F0 5.081(.T)C(he)
--5.081 E F1<ad66>2.581 E F0 .081(option means to load the ne)2.581 F(w)
--.25 E -.2(bu)144 501.6 S 1.525(iltin command).2 F F2(name)4.385 E F0
-1.524(from shared object)4.204 F F2(\214lename)4.024 E F0 4.024(,o).18 G
-4.024(ns)-4.024 G 1.524(ystems that support dynamic loading.)-4.024 F
-(The)144 513.6 Q F1<ad64>2.866 E F0 .366(option will delete a b)2.866 F
-.366(uiltin pre)-.2 F .366(viously loaded with)-.25 F F1<ad66>2.867 E F0
-5.367(.I)C 2.867(fn)-5.367 G(o)-2.867 E F2(name)2.867 E F0(ar)2.867 E
-.367(guments are gi)-.18 F -.15(ve)-.25 G .367(n, or).15 F .399(if the)
-144 525.6 R F1<ad70>2.899 E F0 .399
-(option is supplied, a list of shell b)2.899 F .399(uiltins is printed.)
--.2 F -.4(Wi)5.399 G .399(th no other option ar).4 F .398(guments, the)
--.18 F .098(list consists of all enabled shell b)144 537.6 R 2.598
-(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098(is supplied, only disabled b)
-2.598 F .099(uiltins are printed.)-.2 F(If)5.099 E F1<ad61>2.599 E F0
-1.917(is supplied, the list printed includes all b)144 549.6 R 1.916
-(uiltins, with an indication of whether or not each is)-.2 F 2.878
-(enabled. If)144 561.6 R F1<ad73>2.878 E F0 .379
-(is supplied, the output is restricted to the POSIX)2.878 F F2(special)
-2.879 E F0 -.2(bu)2.879 G 2.879(iltins. The).2 F .379(return v)2.879 F
-(alue)-.25 E .995(is 0 unless a)144 573.6 R F2(name)3.855 E F0 .994
-(is not a shell b)3.675 F .994(uiltin or there is an error loading a ne)
--.2 F 3.494(wb)-.25 G .994(uiltin from a shared)-3.694 F(object.)144
+(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334
+(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 465.6
+R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0
+.989(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581
+(abled; otherwise,)144 477.6 R F2(names)4.082 E F0 1.582(are enabled.)
+4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F
+F1(test)4.082 E F0 1.582(binary found via the)4.082 F F3 -.666(PA)4.082
+G(TH)-.189 E F0 .081(instead of the shell b)144 489.6 R .081(uiltin v)
+-.2 F .081(ersion, run)-.15 F/F5 10/Courier@0 SF .081(enable -n test)
+2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
+(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 501.6 S 1.524
+(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F
+F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524
+(ystems that support dynamic loading.)-4.024 F(The)144 513.6 Q F1<ad64>
+2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F
+.367(viously loaded with)-.25 F F1<ad66>2.866 E F0 5.366(.I)C 2.866(fn)
+-5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi)
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 525.6 R F1<ad70>
+2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
+(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
+F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
+537.6 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
+(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F
+(If)5.098 E F1<ad61>2.598 E F0 1.916
+(is supplied, the list printed includes all b)144 549.6 R 1.916
+(uiltins, with an indication of whether or not each is)-.2 F 2.879
+(enabled. If)144 561.6 R F1<ad73>2.879 E F0 .379
+(is supplied, the output is restricted to the POSIX)2.879 F F2(special)
+2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F
+(alue)-.25 E .994(is 0 unless a)144 573.6 R F2(name)3.854 E F0 .994
+(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne)
+-.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144
 585.6 Q F1 -2.3 -.15(ev a)108 602.4 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(The)144 614.4 Q F2(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671
-(re read and concatenated together into a single command.)-3.17 F .671
-(This command is then read)5.671 F .495(and e)144 626.4 R -.15(xe)-.15 G
-.495(cuted by the shell, and its e).15 F .495
+E F0(...])2.5 E(The)144 614.4 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C
+.671(re read and concatenated together into a single command.)-3.171 F
+.67(This command is then read)5.67 F .495(and e)144 626.4 R -.15(xe)-.15
+.495(cuted by the shell, and its e).15 F .495
 (xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
 (ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
 -2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 638.4 Q
 (guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
 (exec)108 655.2 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
 (name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
--.37 E F0(]])A(If)144 667.2 Q F2(command)3.005 E F0 .305
-(is speci\214ed, it replaces the shell.)3.575 F .305(No ne)5.305 F 2.805
-(wp)-.25 G .306(rocess is created.)-2.805 F(The)5.306 E F2(ar)3.136 E
-(guments)-.37 E F0(become)3.076 E .177(the ar)144 679.2 R .177
+-.37 E F0(]])A(If)144 667.2 Q F2(command)3.006 E F0 .306
+(is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805
+(wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 679.2 R .176
 (guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
 (he)-2.676 E F1<ad6c>2.676 E F0 .176
-(option is supplied, the shell places a dash at the be)2.676 F .176
-(ginning of)-.15 F .499(the zeroth ar)144 691.2 R .499(gument passed to)
--.18 F F2(command)2.999 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2
-(lo)2.999 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.5 E F1<ad63>3 E F0
-.5(option causes)3 F F2(com-)3.2 E(mand)144 703.2 Q F0 .639(to be e)
-3.909 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(option is supplied, the shell places a dash at the be)2.676 F .177
+(ginning of)-.15 F .5(the zeroth ar)144 691.2 R .5(gument passed to)-.18
+F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999
+E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0
+.499(option causes)2.999 F F2(com-)3.199 E(mand)144 703.2 Q F0 .638
+(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
 (vironment. If)-.4 F F1<ad61>3.138 E F0 .638
-(is supplied, the shell passes)3.138 F F2(name)3.498 E F0 .638(as the)
-3.318 F 1.077(zeroth ar)144 715.2 R 1.077(gument to the e)-.18 F -.15
+(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
+3.319 F 1.078(zeroth ar)144 715.2 R 1.077(gument to the e)-.18 F -.15
 (xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
 1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
-.15 F(non-interacti)144 727.2 Q 2.002 -.15(ve s)-.25 H 1.702(hell e).15
-F 1.702(xits, unless the shell option)-.15 F F1(execfail)4.201 E F0
-1.701(is enabled, in which case it returns)4.201 F(GNU Bash-4.0)72 768 Q
+.15 F(non-interacti)144 727.2 Q 2.001 -.15(ve s)-.25 H 1.701(hell e).15
+F 1.701(xits, unless the shell option)-.15 F F1(execfail)4.201 E F0
+1.702(is enabled, in which case it returns)4.201 F(GNU Bash-4.0)72 768 Q
 (2009 February 7)140.96 E(53)190.95 E 0 Cg EP
 %%Page: 54 54
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E -.1(fa)144 84 S 2.563(ilure. An).1 F(interacti)2.563 E .363 -.15
-(ve s)-.25 H .063(hell returns f).15 F .064
+-.35 E -.1(fa)144 84 S 2.564(ilure. An).1 F(interacti)2.564 E .364 -.15
+(ve s)-.25 H .064(hell returns f).15 F .064
 (ailure if the \214le cannot be e)-.1 F -.15(xe)-.15 G 2.564(cuted. If)
-.15 F/F1 10/Times-Italic@0 SF(command)2.764 E F0 .064(is not speci-)
-3.334 F .742(\214ed, an)144 96 R 3.242(yr)-.15 G .742(edirections tak)
--3.242 F 3.242(ee)-.1 G -.25(ff)-3.242 G .742
-(ect in the current shell, and the return status is 0.).25 F .741
-(If there is a redi-)5.741 F(rection error)144 108 Q 2.5(,t)-.4 G
+.15 F/F1 10/Times-Italic@0 SF(command)2.763 E F0 .063(is not speci-)
+3.333 F .741(\214ed, an)144 96 R 3.241(yr)-.15 G .741(edirections tak)
+-3.241 F 3.241(ee)-.1 G -.25(ff)-3.241 G .742
+(ect in the current shell, and the return status is 0.).25 F .742
+(If there is a redi-)5.742 F(rection error)144 108 Q 2.5(,t)-.4 G
 (he return status is 1.)-2.5 E/F2 10/Times-Bold@0 SF(exit)108 124.8 Q F0
-([)2.5 E F1(n)A F0 6.29(]C)C .095(ause the shell to e)-6.29 F .095
-(xit with a status of)-.15 F F1(n)2.595 E F0 5.095(.I)C(f)-5.095 E F1(n)
-2.955 E F0 .096(is omitted, the e)2.835 F .096
+([)2.5 E F1(n)A F0 6.29(]C)C .096(ause the shell to e)-6.29 F .096
+(xit with a status of)-.15 F F1(n)2.596 E F0 5.096(.I)C(f)-5.096 E F1(n)
+2.955 E F0 .095(is omitted, the e)2.835 F .095
 (xit status is that of the last command)-.15 F -.15(exe)144 136.8 S 2.5
 (cuted. A).15 F(trap on)2.5 E/F3 9/Times-Bold@0 SF(EXIT)2.5 E F0(is e)
 2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E F2
 (export)108 153.6 Q F0([)2.5 E F2(\255fn)A F0 2.5(][).833 G F1(name)-2.5
 E F0([=)A F1(wor)A(d)-.37 E F0(]] ...)A F2(export \255p)108 165.6 Q F0
-.257(The supplied)144 177.6 R F1(names)3.117 E F0 .257(are mark)3.027 F
+.256(The supplied)144 177.6 R F1(names)3.117 E F0 .257(are mark)3.027 F
 .257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
-(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.626
-(commands. If)144 189.6 R(the)2.626 E F2<ad66>2.626 E F0 .127
+(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627
+(commands. If)144 189.6 R(the)2.627 E F2<ad66>2.627 E F0 .127
 (option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F1(names)2.987 E
 F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F1(names)2.987 E
-F0 .127(are gi)2.897 F -.15(ve)-.25 G .127(n, or if the).15 F F2<ad70>
-144 201.6 Q F0 .66(option is supplied, a list of all names that are e)
-3.16 F .659(xported in this shell is printed.)-.15 F(The)5.659 E F2
-<ad6e>3.159 E F0(option)3.159 E 1.586(causes the e)144 213.6 R 1.586
+F0 .127(are gi)2.897 F -.15(ve)-.25 G .126(n, or if the).15 F F2<ad70>
+144 201.6 Q F0 .659(option is supplied, a list of all names that are e)
+3.159 F .66(xported in this shell is printed.)-.15 F(The)5.66 E F2<ad6e>
+3.16 E F0(option)3.16 E 1.587(causes the e)144 213.6 R 1.587
 (xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
 (rom each)-4.086 F F1(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
-1.587(ariable name is follo)-4.336 F 1.587(wed by)-.25 F(=)144 225.6 Q
-F1(wor)A(d)-.37 E F0 2.804(,t)C .304(he v)-2.804 F .304(alue of the v)
+1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 225.6 Q
+F1(wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v)
 -.25 F .304(ariable is set to)-.25 F F1(wor)2.804 E(d)-.37 E F0(.)A F2
-(export)5.304 E F0 .304(returns an e)2.804 F .303
-(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .293
+(export)5.304 E F0 .304(returns an e)2.804 F .304
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .294
 (option is encountered, one of the)144 237.6 R F1(names)2.793 E F0 .293
 (is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
-F F2<ad66>2.793 E F0 .294(is supplied with a)2.793 F F1(name)144.36
+F F2<ad66>2.793 E F0 .293(is supplied with a)2.793 F F1(name)144.36
 249.6 Q F0(that is not a function.)2.68 E F2(fc)108 266.4 Q F0([)2.5 E
 F2<ad65>A F1(ename)2.5 E F0 2.5(][)C F2(\255lnr)-2.5 E F0 2.5(][)C F1
 <8c72>-2.5 E(st)-.1 E F0 2.5(][)C F1(last)-2.5 E F0(])A F2(fc \255s)108
 278.4 Q F0([)2.5 E F1(pat)A F0(=)A F1 -.37(re)C(p).37 E F0 2.5(][)C F1
-(cmd)-2.5 E F0(])A .478(Fix Command.)144 290.4 R .478
-(In the \214rst form, a range of commands from)5.478 F F1<8c72>4.888 E
-(st)-.1 E F0(to)3.658 E F1(last)3.068 E F0 .477
-(is selected from the his-)3.658 F .881(tory list.)144 302.4 R F1 -.45
-(Fi)5.881 G -.1(rs).45 G(t).1 E F0(and)4.061 E F1(last)3.471 E F0 .882
+(cmd)-2.5 E F0(])A .477(Fix Command.)144 290.4 R .478
+(In the \214rst form, a range of commands from)5.477 F F1<8c72>4.888 E
+(st)-.1 E F0(to)3.658 E F1(last)3.068 E F0 .478
+(is selected from the his-)3.658 F .882(tory list.)144 302.4 R F1 -.45
+(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F1(last)3.472 E F0 .882
 (may be speci\214ed as a string \(to locate the last command be)4.062 F
-.882(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
+.881(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
 314.4 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
--.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .796(umber is used as an)
-.15 F(of)144 326.4 Q .276(fset from the current command number\).)-.25 F
-(If)5.276 E F1(last)2.866 E F0 .277
-(is not speci\214ed it is set to the current command)3.456 F .093
+-.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .797(umber is used as an)
+.15 F(of)144 326.4 Q .277(fset from the current command number\).)-.25 F
+(If)5.277 E F1(last)2.867 E F0 .276
+(is not speci\214ed it is set to the current command)3.457 F .092
 (for listing \(so that)144 338.4 R/F4 10/Courier@0 SF .092
 (fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to)
 2.592 F F1<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F1<8c72>
-4.502 E(st)-.1 E F0 .092(is not)3.272 F
+4.502 E(st)-.1 E F0 .093(is not)3.273 F
 (speci\214ed it is set to the pre)144 350.4 Q
 (vious command for editing and \25516 for listing.)-.25 E(The)144 374.4
 Q F2<ad6e>2.522 E F0 .022
@@ -6353,165 +6364,165 @@ F2<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
 (rses the order of).15 F .438(the commands.)144 386.4 R .438(If the)
 5.438 F F2<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
 (n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.334(the editor gi)144 398.4 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E
-F1(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835
+.335(the editor gi)144 398.4 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
+F1(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
 (do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
-F(If)5.335 E F1(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G
-(n,).15 E .631(the v)144 410.4 R .631(alue of the)-.25 F F3(FCEDIT)3.131
-E F0 -.25(va)2.881 G .631(riable is used, and the v).25 F .631(alue of)
--.25 F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.13 E F0 .63
-(is not set.)2.88 F .63(If nei-)5.63 F .95(ther v)144 422.4 R .95
-(ariable is set,)-.25 F F1(vi)5.116 E F0 .95(is used.)5.116 F .951
-(When editing is complete, the edited commands are echoed and)5.95 F
--.15(exe)144 434.4 S(cuted.).15 E .04(In the second form,)144 458.4 R F1
-(command)2.54 E F0 .04(is re-e)2.54 F -.15(xe)-.15 G .039
-(cuted after each instance of).15 F F1(pat)2.539 E F0 .039
-(is replaced by)2.539 F F1 -.37(re)2.539 G(p).37 E F0 5.039(.A)C(useful)
--2.5 E .406(alias to use with this is)144 470.4 R F4 .406(r='fc \255s')
-2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4
-6.406(rc)2.906 G(c)-6.406 E F0 .406(runs the last command be)2.906 F
-.407(ginning with)-.15 F F4(cc)144 482.4 Q F0(and typing)2.5 E F4(r)2.5
-E F0(re-e)2.5 E -.15(xe)-.15 G(cutes the last command.).15 E .142
+F(If)5.334 E F1(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+(n,).15 E .63(the v)144 410.4 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E
+F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25
+F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
+(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 422.4 R .951
+(ariable is set,)-.25 F F1(vi)5.117 E F0 .951(is used.)5.117 F .95
+(When editing is complete, the edited commands are echoed and)5.951 F
+-.15(exe)144 434.4 S(cuted.).15 E .039(In the second form,)144 458.4 R
+F1(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15 G .039
+(cuted after each instance of).15 F F1(pat)2.54 E F0 .04(is replaced by)
+2.54 F F1 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)-2.5 E .406
+(alias to use with this is)144 470.4 R F4 .406(r='fc \255s')2.906 F F0
+2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4 6.406(rc)2.906
+G(c)-6.406 E F0 .406(runs the last command be)2.906 F .406(ginning with)
+-.15 F F4(cc)144 482.4 Q F0(and typing)2.5 E F4(r)2.5 E F0(re-e)2.5 E
+-.15(xe)-.15 G(cutes the last command.).15 E .142
 (If the \214rst form is used, the return v)144 506.4 R .142
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
 (lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F1(last)2.732 E F0 .454(specify history lines out of range.)144 518.4
+E F1(last)2.732 E F0 .455(specify history lines out of range.)144 518.4
 R .454(If the)5.454 F F2<ad65>2.954 E F0 .454
-(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
-(alue of the)-.25 F .788(last command e)144 530.4 R -.15(xe)-.15 G .788
-(cuted or f).15 F .787
+(option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454
+(alue of the)-.25 F .787(last command e)144 530.4 R -.15(xe)-.15 G .787
+(cuted or f).15 F .788
 (ailure if an error occurs with the temporary \214le of commands.)-.1 F
-.787(If the)5.787 F 1.135
+.788(If the)5.788 F 1.136
 (second form is used, the return status is that of the command re-e)144
-542.4 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F1(cmd)3.836 E F0 1.136
-(does not)4.406 F(specify a v)144 554.4 Q
+542.4 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F1(cmd)3.835 E F0 1.135
+(does not)4.405 F(specify a v)144 554.4 Q
 (alid history line, in which case)-.25 E F2(fc)2.5 E F0(returns f)2.5 E
 (ailure.)-.1 E F2(fg)108 571.2 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume)
-144 583.2 Q F1(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
+144 583.2 Q F1(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413
 (ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
 (he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1(jobspec)5.653 E F0
-1.413(is not present, the)4.223 F(shell')144 595.2 Q 3.116(sn)-.55 G
-.616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)-.37 F F0 .617
-(is used.)3.116 F .617(The return v)5.617 F .617
+1.414(is not present, the)4.223 F(shell')144 595.2 Q 3.117(sn)-.55 G
+.617(otion of the)-3.117 F F1(curr)3.117 E .617(ent job)-.37 F F0 .617
+(is used.)3.117 F .617(The return v)5.617 F .616
 (alue is that of the command placed into the)-.25 F(fore)144 607.2 Q
-.363(ground, or f)-.15 F .363
-(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
+.362(ground, or f)-.15 F .362
+(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .363
 (hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 619.2 Q
-F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F1(jobspec)
+F0 .004(does not specify a v)2.815 F .004(alid job or)-.25 F F1(jobspec)
 4.244 E F0 .004(speci\214es a job that w)2.814 F .004
 (as started without job control.)-.1 F F2(getopts)108 636 Q F1
 (optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)-.37 E F0(])A F2(getopts)144
 648 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.294 F F1
-(optstring)6.023 E F0 .793(contains the option)3.513 F .149
-(characters to be recognized; if a character is follo)144 660 R .15
-(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45
--.15(ve a)-.2 H(n).15 E(ar)144 672 Q .579
-(gument, which should be separated from it by white space.)-.18 F .578
+(is used by shell procedures to parse positional parameters.)3.293 F F1
+(optstring)6.023 E F0 .793(contains the option)3.513 F .15
+(characters to be recognized; if a character is follo)144 660 R .149
+(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
+-.15(ve a)-.2 H(n).15 E(ar)144 672 Q .578
+(gument, which should be separated from it by white space.)-.18 F .579
 (The colon and question mark char)5.579 F(-)-.2 E 1.665
 (acters may not be used as option characters.)144 684 R 1.665
 (Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F2(getopts)
-4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797
-(option in the shell v)144 696 R(ariable)-.25 E F1(name)3.297 E F0 3.297
-(,i).18 G(nitializing)-3.297 E F1(name)3.657 E F0 .797(if it does not e)
-3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G 3.296(ft)-3.296 G
-.796(he ne)-3.296 F(xt)-.15 E(ar)144 708 Q .085
+4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
+(option in the shell v)144 696 R(ariable)-.25 E F1(name)3.296 E F0 3.296
+(,i).18 G(nitializing)-3.296 E F1(name)3.657 E F0 .797(if it does not e)
+3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G 3.297(ft)-3.297 G
+.797(he ne)-3.297 F(xt)-.15 E(ar)144 708 Q .085
 (gument to be processed into the v)-.18 F(ariable)-.25 E F3(OPTIND)2.585
 E/F5 9/Times-Roman@0 SF(.)A F3(OPTIND)4.585 E F0 .085
-(is initialized to 1 each time the shell)2.335 F .846
+(is initialized to 1 each time the shell)2.335 F .845
 (or a shell script is in)144 720 R -.2(vo)-.4 G -.1(ke).2 G 3.345
 (d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F2
-(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E
+(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E
 (GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(54)190.95 E 0 Cg EP
 %%Page: 55 55
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .803(into the v)144 84 R(ariable)-.25 E/F1 9/Times-Bold@0 SF(OPT)
-3.303 E(ARG)-.81 E/F2 9/Times-Roman@0 SF(.)A F0 .803
-(The shell does not reset)5.303 F F1(OPTIND)3.303 E F0 .804
-(automatically; it must be manually)3.054 F .294
+-.35 E .804(into the v)144 84 R(ariable)-.25 E/F1 9/Times-Bold@0 SF(OPT)
+3.304 E(ARG)-.81 E/F2 9/Times-Roman@0 SF(.)A F0 .803
+(The shell does not reset)5.304 F F1(OPTIND)3.303 E F0 .803
+(automatically; it must be manually)3.053 F .293
 (reset between multiple calls to)144 96 R/F3 10/Times-Bold@0 SF(getopts)
 2.793 E F0 .293(within the same shell in)2.793 F -.2(vo)-.4 G .293
-(cation if a ne).2 F 2.793(ws)-.25 G .293(et of parameters)-2.793 F
-(is to be used.)144 108 Q 2.043(When the end of options is encountered,)
+(cation if a ne).2 F 2.793(ws)-.25 G .294(et of parameters)-2.793 F
+(is to be used.)144 108 Q 2.044(When the end of options is encountered,)
 144 132 R F3(getopts)4.543 E F0 -.15(ex)4.543 G 2.043
-(its with a return v).15 F 2.044(alue greater than zero.)-.25 F F3
+(its with a return v).15 F 2.043(alue greater than zero.)-.25 F F3
 (OPTIND)144 144 Q F0(is set to the inde)2.5 E 2.5(xo)-.15 G 2.5(ft)-2.5
 G(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F3(name)2.5 E F0
-(is set to ?.)2.5 E F3(getopts)144 168 Q F0 2.393
-(normally parses the positional parameters, b)4.893 F 2.392
-(ut if more ar)-.2 F 2.392(guments are gi)-.18 F -.15(ve)-.25 G 4.892
-(ni).15 G(n)-4.892 E/F4 10/Times-Italic@0 SF(ar)4.892 E(gs)-.37 E F0(,)
+(is set to ?.)2.5 E F3(getopts)144 168 Q F0 2.392
+(normally parses the positional parameters, b)4.892 F 2.392
+(ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
+(ni).15 G(n)-4.893 E/F4 10/Times-Italic@0 SF(ar)4.893 E(gs)-.37 E F0(,)
 .27 E F3(getopts)144 180 Q F0(parses those instead.)2.5 E F3(getopts)144
-204 Q F0 1.165(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665
+204 Q F0 1.166(can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665
 (ays. If)-3.765 F 1.165(the \214rst character of)3.665 F F4(optstring)
-3.895 E F0 1.166(is a colon,)3.886 F F4(silent)4.006 E F0(error)4.346 E
-1.264(reporting is used.)144 216 R 1.263
+3.895 E F0 1.165(is a colon,)3.885 F F4(silent)4.005 E F0(error)4.345 E
+1.263(reporting is used.)144 216 R 1.263
 (In normal operation diagnostic messages are printed when in)6.263 F
--.25(va)-.4 G 1.263(lid options or).25 F .393(missing option ar)144 228
-R .393(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
+-.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144 228
+R .394(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
 -.25 E F1(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
 (will be displayed, e)144 240 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5
 G(he \214rst character of)-2.5 E F4(optstring)2.73 E F0(is not a colon.)
-2.72 E .667(If an in)144 264 R -.25(va)-.4 G .667(lid option is seen,)
-.25 F F3(getopts)3.167 E F0 .667(places ? into)3.167 F F4(name)3.527 E
-F0 .666(and, if not silent, prints an error message)3.347 F .399
-(and unsets)144 276 R F1(OPT)2.899 E(ARG)-.81 E F2(.)A F0(If)4.899 E F3
+2.72 E .666(If an in)144 264 R -.25(va)-.4 G .666(lid option is seen,)
+.25 F F3(getopts)3.166 E F0 .667(places ? into)3.167 F F4(name)3.527 E
+F0 .667(and, if not silent, prints an error message)3.347 F .4
+(and unsets)144 276 R F1(OPT)2.9 E(ARG)-.81 E F2(.)A F0(If)4.899 E F3
 (getopts)2.899 E F0 .399
 (is silent, the option character found is placed in)2.899 F F1(OPT)2.899
-E(ARG)-.81 E F0 .4(and no)2.65 F(diagnostic message is printed.)144 288
-Q 1.242(If a required ar)144 312 R 1.242(gument is not found, and)-.18 F
-F3(getopts)3.741 E F0 1.241(is not silent, a question mark \()3.741 F F3
-(?).833 E F0 3.741(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F
-F4(name)144 324 Q F0(,).18 E F1(OPT)2.734 E(ARG)-.81 E F0 .234
-(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F3
-(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F3(:).833 E
-F0(\)).833 E(is placed in)144 336 Q F4(name)2.86 E F0(and)2.68 E F1(OPT)
-2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F3
-(getopts)144 360 Q F0 .902
+E(ARG)-.81 E F0 .399(and no)2.649 F(diagnostic message is printed.)144
+288 Q 1.241(If a required ar)144 312 R 1.241(gument is not found, and)
+-.18 F F3(getopts)3.741 E F0 1.241(is not silent, a question mark \()
+3.741 F F3(?).833 E F0 3.742(\)i).833 G 3.742(sp)-3.742 G 1.242
+(laced in)-3.742 F F4(name)144 324 Q F0(,).18 E F1(OPT)2.735 E(ARG)-.81
+E F0 .234(is unset, and a diagnostic message is printed.)2.485 F(If)
+5.234 E F3(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F3
+(:).833 E F0(\)).833 E(is placed in)144 336 Q F4(name)2.86 E F0(and)2.68
+E F1(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25
+E F3(getopts)144 360 Q F0 .902
 (returns true if an option, speci\214ed or unspeci\214ed, is found.)
-3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
+3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
 (options is encountered or an error occurs.)144 372 Q F3(hash)108 388.8
 Q F0([)2.5 E F3(\255lr)A F0 2.5(][)C F3<ad70>-2.5 E F4(\214lename)2.5 E
 F0 2.5(][)C F3(\255dt)-2.5 E F0 2.5(][)C F4(name)-2.5 E F0(])A -.15(Fo)
-144 400.8 S 3.554(re).15 G(ach)-3.554 E F4(name)3.554 E F0 3.554(,t).18
+144 400.8 S 3.555(re).15 G(ach)-3.555 E F4(name)3.555 E F0 3.555(,t).18
 G 1.054(he full \214le name of the command is determined by searching t\
-he directories in)-3.554 F F3($P)144 412.8 Q -.95(AT)-.74 G(H).95 E F0
-.35(and remembered.)2.85 F .35(If the)5.35 F F3<ad70>2.85 E F0 .349
+he directories in)-3.555 F F3($P)144 412.8 Q -.95(AT)-.74 G(H).95 E F0
+.349(and remembered.)2.849 F .349(If the)5.349 F F3<ad70>2.849 E F0 .349
 (option is supplied, no path search is performed, and)2.849 F F4
-(\214lename)4.759 E F0 .452
+(\214lename)4.76 E F0 .452
 (is used as the full \214le name of the command.)144 424.8 R(The)5.452 E
-F3<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .453
-(get all remem-)-.18 F .593(bered locations.)144 436.8 R(The)5.593 E F3
-<ad64>3.093 E F0 .593(option causes the shell to for)3.093 F .592
-(get the remembered location of each)-.18 F F4(name)3.092 E F0(.)A .02
-(If the)144 448.8 R F3<ad74>2.52 E F0 .02
-(option is supplied, the full pathname to which each)2.52 F F4(name)
-2.521 E F0 .021(corresponds is printed.)2.521 F .021(If multi-)5.021 F
-(ple)144 460.8 Q F4(name)3.704 E F0(ar)3.704 E 1.204
+F3<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .452
+(get all remem-)-.18 F .592(bered locations.)144 436.8 R(The)5.592 E F3
+<ad64>3.092 E F0 .593(option causes the shell to for)3.092 F .593
+(get the remembered location of each)-.18 F F4(name)3.093 E F0(.)A .021
+(If the)144 448.8 R F3<ad74>2.521 E F0 .021
+(option is supplied, the full pathname to which each)2.521 F F4(name)
+2.52 E F0 .02(corresponds is printed.)2.52 F .02(If multi-)5.02 F(ple)
+144 460.8 Q F4(name)3.703 E F0(ar)3.703 E 1.203
 (guments are supplied with)-.18 F F3<ad74>3.703 E F0 3.703(,t)C(he)
--3.703 E F4(name)3.703 E F0 1.203
+-3.703 E F4(name)3.703 E F0 1.204
 (is printed before the hashed full pathname.)3.703 F(The)144 472.8 Q F3
-<ad6c>3.215 E F0 .715(option causes output to be displayed in a format \
-that may be reused as input.)3.215 F .716(If no ar)5.716 F(gu-)-.18 E
-1.184(ments are gi)144 484.8 R -.15(ve)-.25 G 1.184(n, or if only).15 F
-F3<ad6c>3.684 E F0 1.183
+<ad6c>3.216 E F0 .715(option causes output to be displayed in a format \
+that may be reused as input.)3.216 F .715(If no ar)5.715 F(gu-)-.18 E
+1.183(ments are gi)144 484.8 R -.15(ve)-.25 G 1.183(n, or if only).15 F
+F3<ad6c>3.683 E F0 1.184
 (is supplied, information about remembered commands is printed.)3.684 F
 (The return status is true unless a)144 496.8 Q F4(name)2.86 E F0
 (is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
 E F3(help)108 513.6 Q F0([)2.5 E F3(\255dms)A F0 2.5(][)C F4(pattern)
--2.5 E F0(])A .866(Display helpful information about b)144 525.6 R .867
-(uiltin commands.)-.2 F(If)5.867 E F4(pattern)4.617 E F0 .867
-(is speci\214ed,)3.607 F F3(help)3.367 E F0(gi)3.367 E -.15(ve)-.25 G
-3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
-537.6 R F4(pattern)2.807 E F0 2.807(;o).24 G .307
-(therwise help for all the b)-2.807 F .306
+-2.5 E F0(])A .867(Display helpful information about b)144 525.6 R .867
+(uiltin commands.)-.2 F(If)5.867 E F4(pattern)4.617 E F0 .866
+(is speci\214ed,)3.607 F F3(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 G
+3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
+537.6 R F4(pattern)2.806 E F0 2.807(;o).24 G .307
+(therwise help for all the b)-2.807 F .307
 (uiltins and shell control struc-)-.2 F(tures is printed.)144 549.6 Q F3
 <ad64>144 561.6 Q F0(Display a short description of each)24.74 E F4
-(pattern)2.5 E F3(-m)146.5 573.6 Q F0(Display the description of each)
-21.84 E F4(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
+(pattern)2.5 E F3<ad6d>144 573.6 Q F0(Display the description of each)
+21.97 E F4(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
 -2.5 E F3<ad73>144 585.6 Q F0
 (Display only a short usage synopsis for each)26.41 E F4(pattern)2.5 E
 F0(The return status is 0 unless no command matches)108 597.6 Q F4
@@ -6523,15 +6534,15 @@ F3(history \255p)108 662.4 Q F4(ar)2.5 E(g)-.37 E F0([)2.5 E F4(ar)A 2.5
 -.37 E F0([)2.5 E F4(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
 686.4 S .752
 (th no options, display the command history list with line numbers.).4 F
-.752(Lines listed with a)5.752 F F3(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
-G 1.231(been modi\214ed.)144 698.4 R 1.231(An ar)6.231 F 1.231
-(gument of)-.18 F F4(n)4.091 E F0 1.231(lists only the last)3.971 F F4
-(n)4.091 E F0 3.73(lines. If)3.97 F 1.23(the shell v)3.73 F(ariable)-.25
-E F3(HISTTIME-)3.73 E(FORMA)144 710.4 Q(T)-.95 E F0 .249
-(is set and not null, it is used as a format string for)2.749 F F4
-(strftime)2.75 E F0 .25(\(3\) to display the time stamp)B 3.118
-(associated with each displayed history entry)144 722.4 R 8.118(.N)-.65
-G 5.617(oi)-8.118 G(nterv)-5.617 E 3.117
+.752(Lines listed with a)5.752 F F3(*)3.251 E F0(ha)3.251 E -.15(ve)-.2
+G 1.23(been modi\214ed.)144 698.4 R 1.23(An ar)6.23 F 1.23(gument of)
+-.18 F F4(n)4.09 E F0 1.231(lists only the last)3.97 F F4(n)4.091 E F0
+3.731(lines. If)3.971 F 1.231(the shell v)3.731 F(ariable)-.25 E F3
+(HISTTIME-)3.731 E(FORMA)144 710.4 Q(T)-.95 E F0 .25
+(is set and not null, it is used as a format string for)2.75 F F4
+(strftime)2.749 E F0 .249(\(3\) to display the time stamp)B 3.117
+(associated with each displayed history entry)144 722.4 R 8.117(.N)-.65
+G 5.618(oi)-8.117 G(nterv)-5.618 E 3.118
 (ening blank is printed between the)-.15 F(GNU Bash-4.0)72 768 Q
 (2009 February 7)140.96 E(55)190.95 E 0 Cg EP
 %%Page: 56 56
@@ -6539,76 +6550,77 @@ G 5.617(oi)-8.118 G(nterv)-5.617 E 3.117
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .083(formatted time stamp and the history line.)144 84 R(If)5.084
-E/F1 10/Times-Italic@0 SF(\214lename)2.584 E F0 .084
-(is supplied, it is used as the name of the his-)2.584 F .097
-(tory \214le; if not, the v)144 96 R .097(alue of)-.25 F/F2 9
-/Times-Bold@0 SF(HISTFILE)2.597 E F0 .096(is used.)2.347 F .096
-(Options, if supplied, ha)5.096 F .396 -.15(ve t)-.2 H .096(he follo).15
-F .096(wing meanings:)-.25 F/F3 10/Times-Bold@0 SF<ad63>144 108 Q F0
+-.35 E .084(formatted time stamp and the history line.)144 84 R(If)5.084
+E/F1 10/Times-Italic@0 SF(\214lename)2.584 E F0 .083
+(is supplied, it is used as the name of the his-)2.584 F .096
+(tory \214le; if not, the v)144 96 R .096(alue of)-.25 F/F2 9
+/Times-Bold@0 SF(HISTFILE)2.596 E F0 .097(is used.)2.346 F .097
+(Options, if supplied, ha)5.097 F .397 -.15(ve t)-.2 H .097(he follo).15
+F .097(wing meanings:)-.25 F/F3 10/Times-Bold@0 SF<ad63>144 108 Q F0
 (Clear the history list by deleting all the entries.)25.86 E F3<ad64>144
 120 Q F1(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
-180 132 Q F1(of)2.5 E(fset)-.18 E F0(.)A F3<ad61>144 144 Q F0 .598
-(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598
-(istory lines \(history lines entered since the be)-3.098 F .599
+180 132 Q F1(of)2.5 E(fset)-.18 E F0(.)A F3<ad61>144 144 Q F0 .599
+(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.099('h)-.74 G .598
+(istory lines \(history lines entered since the be)-3.099 F .598
 (ginning of the current)-.15 F F3(bash)180 156 Q F0
 (session\) to the history \214le.)2.5 E F3<ad6e>144 168 Q F0 .854(Read \
 the history lines not already read from the history \214le into the cur\
-rent history list.)24.74 F .772
+rent history list.)24.74 F .773
 (These are lines appended to the history \214le since the be)180 180 R
-.773(ginning of the current)-.15 F F3(bash)3.273 E F0(ses-)3.273 E
+.772(ginning of the current)-.15 F F3(bash)3.272 E F0(ses-)3.272 E
 (sion.)180 192 Q F3<ad72>144 204 Q F0(Read the contents of the history \
 \214le and use them as the current history)25.86 E(.)-.65 E F3<ad77>144
 216 Q F0(Write the current history to the history \214le, o)23.08 E -.15
 (ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G(ontents.)
--2.5 E F3<ad70>144 228 Q F0 .626
+-2.5 E F3<ad70>144 228 Q F0 .625
 (Perform history substitution on the follo)24.74 F(wing)-.25 E F1(ar)
-3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
+3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F
 2.975(output. Does)180 240 R .475
 (not store the results in the history list.)2.975 F(Each)5.475 E F1(ar)
 2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 252 Q(xpansion.)-.15 E F3<ad73>144 264 Q F0 .363
-(Store the)26.41 F F1(ar)3.193 E(gs)-.37 E F0 .363
-(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
+(normal history e)180 252 Q(xpansion.)-.15 E F3<ad73>144 264 Q F0 .362
+(Store the)26.41 F F1(ar)3.192 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363
 (he last command in the history list is)-5.363 F(remo)180 276 Q -.15(ve)
 -.15 G 2.5(db).15 G(efore the)-2.5 E F1(ar)2.83 E(gs)-.37 E F0
 (are added.)2.77 E .28(If the)144 292.8 R F3(HISTTIMEFORMA)2.78 E(T)-.95
 E F0 .28
 (is set, the time stamp information associated with each history entry)
-2.78 F .54(is written to the history \214le, mark)144 304.8 R .539
-(ed with the history comment character)-.1 F 5.539(.W)-.55 G .539
-(hen the history \214le is)-5.539 F 1.778(read, lines be)144 316.8 R
-1.778(ginning with the history comment character follo)-.15 F 1.779
+2.78 F .539(is written to the history \214le, mark)144 304.8 R .539
+(ed with the history comment character)-.1 F 5.54(.W)-.55 G .54
+(hen the history \214le is)-5.54 F 1.779(read, lines be)144 316.8 R
+1.779(ginning with the history comment character follo)-.15 F 1.778
 (wed immediately by a digit are)-.25 F 1.424
 (interpreted as timestamps for the pre)144 328.8 R 1.424
 (vious history line.)-.25 F 1.424(The return v)6.424 F 1.424
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
 ncountered, an error occurs while reading or writing the history \214le\
-, an in)144 340.8 R -.25(va)-.4 G(lid).25 E F1(of)3 E(fset)-.18 E F0(is)
-3 E(supplied as an ar)144 352.8 Q(gument to)-.18 E F3<ad64>2.5 E F0 2.5
-(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15
-E(gument to)-.18 E F3<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E F3(jobs)108
-369.6 Q F0([)2.5 E F3(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])2.5
-E F3(jobs \255x)108 381.6 Q F1(command)2.5 E F0([)2.5 E F1(ar)2.5 E(gs)
--.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 393.6 Q .3
--.15(ve j)-.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F3<ad6c>144 405.6 Q F0
+, an in)144 340.8 R -.25(va)-.4 G(lid).25 E F1(of)2.999 E(fset)-.18 E F0
+(is)2.999 E(supplied as an ar)144 352.8 Q(gument to)-.18 E F3<ad64>2.5 E
+F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E
+(xpansion supplied as an ar)-.15 E(gument to)-.18 E F3<ad70>2.5 E F0 -.1
+(fa)2.5 G(ils.).1 E F3(jobs)108 369.6 Q F0([)2.5 E F3(\255lnprs)A F0 2.5
+(][)C F1(jobspec)A F0(... ])2.5 E F3(jobs \255x)108 381.6 Q F1(command)
+2.5 E F0([)2.5 E F1(ar)2.5 E(gs)-.37 E F0(... ])2.5 E
+(The \214rst form lists the acti)144 393.6 Q .3 -.15(ve j)-.25 H 2.5
+(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F3<ad6c>144 405.6 Q F0
 (List process IDs in addition to the normal information.)27.52 E F3
 <ad70>144 417.6 Q F0(List only the process ID of the job')24.74 E 2.5
 (sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F3<ad6e>144 429.6 Q F0
-.194(Display information only about jobs that ha)24.74 F .494 -.15(ve c)
--.2 H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F
+.193(Display information only about jobs that ha)24.74 F .494 -.15(ve c)
+-.2 H .194(hanged status since the user w).15 F .194(as last noti-)-.1 F
 (\214ed of their status.)180 441.6 Q F3<ad72>144 453.6 Q F0
 (Restrict output to running jobs.)25.86 E F3<ad73>144 465.6 Q F0
 (Restrict output to stopped jobs.)26.41 E(If)144 482.4 Q F1(jobspec)
-4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313
-(n, output is restricted to information about that job).15 F 5.314(.T)
--.4 G .314(he return status is 0 unless)-5.314 F(an in)144 494.4 Q -.25
+4.554 E F0 .314(is gi)3.124 F -.15(ve)-.25 G .314
+(n, output is restricted to information about that job).15 F 5.313(.T)
+-.4 G .313(he return status is 0 unless)-5.313 F(an in)144 494.4 Q -.25
 (va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F1(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 511.2 R F3
-<ad78>2.895 E F0 .394(option is supplied,)2.894 F F3(jobs)2.894 E F0
+E F1(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 511.2 R F3
+<ad78>2.894 E F0 .394(option is supplied,)2.894 F F3(jobs)2.894 E F0
 .394(replaces an)2.894 F(y)-.15 E F1(jobspec)4.634 E F0 .394(found in)
-3.204 F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .394
+3.204 F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .395
 (with the corre-)3.164 F(sponding process group ID, and e)144 523.2 Q
 -.15(xe)-.15 G(cutes).15 E F1(command)2.7 E F0(passing it)3.27 E F1(ar)
 2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
@@ -6616,44 +6628,44 @@ F3(kill)108 540 Q F0([)2.5 E F3<ad73>A F1(sigspec)2.5 E F0(|)2.5 E F3
 <ad6e>2.5 E F1(signum)2.5 E F0(|)2.5 E F3<ad>2.5 E F1(sigspec)A F0 2.5
 (][)C F1(pid)-2.5 E F0(|)2.5 E F1(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F3
 (kill \255l)108 552 Q F0([)2.5 E F1(sigspec)A F0(|)2.5 E F1 -.2(ex)2.5 G
-(it_status).2 E F0(])A .119(Send the signal named by)144 564 R F1
-(sigspec)2.959 E F0(or)2.929 E F1(signum)2.959 E F0 .119
-(to the processes named by)2.939 F F1(pid)3.87 E F0(or)3.39 E F1
-(jobspec)2.62 E F0(.).31 E F1(sigspec)5.46 E F0(is)2.93 E .319
-(either a case-insensiti)144 576 R .619 -.15(ve s)-.25 H .319
-(ignal name such as).15 F F2(SIGKILL)2.819 E F0 .318
-(\(with or without the)2.569 F F2(SIG)2.818 E F0 .318
-(pre\214x\) or a signal)2.568 F(number;)144 588 Q F1(signum)4.188 E F0
-1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F1(sigspec)
+(it_status).2 E F0(])A .12(Send the signal named by)144 564 R F1
+(sigspec)2.96 E F0(or)2.93 E F1(signum)2.96 E F0 .119
+(to the processes named by)2.939 F F1(pid)3.869 E F0(or)3.389 E F1
+(jobspec)2.619 E F0(.).31 E F1(sigspec)5.459 E F0(is)2.929 E .318
+(either a case-insensiti)144 576 R .618 -.15(ve s)-.25 H .318
+(ignal name such as).15 F F2(SIGKILL)2.818 E F0 .319
+(\(with or without the)2.569 F F2(SIG)2.819 E F0 .319
+(pre\214x\) or a signal)2.569 F(number;)144 588 Q F1(signum)4.189 E F0
+1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F1(sigspec)
 4.189 E F0 1.349(is not present, then)4.159 F F2(SIGTERM)3.849 E F0
-1.349(is assumed.)3.599 F(An)6.349 E(ar)144 600 Q .523(gument of)-.18 F
+1.348(is assumed.)3.599 F(An)6.348 E(ar)144 600 Q .522(gument of)-.18 F
 F3<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
 F3<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
 .15 F .28(of the signals corresponding to the ar)144 612 R .28
 (guments are listed, and the return status is 0.)-.18 F(The)5.28 E F1
--.2(ex)2.78 G(it_status).2 E F0(ar)144 624 Q .378(gument to)-.18 F F3
-<ad6c>2.878 E F0 .378
-(is a number specifying either a signal number or the e)2.878 F .377
-(xit status of a process termi-)-.15 F .593(nated by a signal.)144 636 R
+-.2(ex)2.78 G(it_status).2 E F0(ar)144 624 Q .377(gument to)-.18 F F3
+<ad6c>2.877 E F0 .378
+(is a number specifying either a signal number or the e)2.877 F .378
+(xit status of a process termi-)-.15 F .594(nated by a signal.)144 636 R
 F3(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
-.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F
+.593(as successfully sent, or f)-.1 F .593(alse if an error)-.1 F
 (occurs or an in)144 648 Q -.25(va)-.4 G(lid option is encountered.).25
 E F3(let)108 664.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0
-(...])2.5 E(Each)144 676.8 Q F1(ar)3.965 E(g)-.37 E F0 1.135
-(is an arithmetic e)3.855 F 1.134(xpression to be e)-.15 F -.25(va)-.25
-G 1.134(luated \(see).25 F F2 1.134(ARITHMETIC EV)3.634 F(ALU)-1.215 E
--.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.134(If the)
-5.634 F(last)144 688.8 Q F1(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
+(...])2.5 E(Each)144 676.8 Q F1(ar)3.964 E(g)-.37 E F0 1.134
+(is an arithmetic e)3.854 F 1.134(xpression to be e)-.15 F -.25(va)-.25
+G 1.135(luated \(see).25 F F2 1.135(ARITHMETIC EV)3.635 F(ALU)-1.215 E
+-.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.135(If the)
+5.635 F(last)144 688.8 Q F1(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
 (luates to 0,).25 E F3(let)2.5 E F0(returns 1; 0 is returned otherwise.)
 2.5 E F3(local)108 705.6 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(name)
 -2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 717.6 S
 2.56(re).15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06
 (ariable named)-.25 F F1(name)2.92 E F0 .06(is created, and assigned)
 2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)-5.06 E F1(option)2.56 E F0
-.06(can be)2.56 F(an)144 729.6 Q 4.514(yo)-.15 G 4.514(ft)-4.514 G 2.014
-(he options accepted by)-4.514 F F3(declar)4.514 E(e)-.18 E F0 7.014(.W)
-C(hen)-7.014 E F3(local)4.514 E F0 2.013
+.06(can be)2.56 F(an)144 729.6 Q 4.513(yo)-.15 G 4.513(ft)-4.513 G 2.013
+(he options accepted by)-4.513 F F3(declar)4.514 E(e)-.18 E F0 7.014(.W)
+C(hen)-7.014 E F3(local)4.514 E F0 2.014
 (is used within a function, it causes the)4.514 F(GNU Bash-4.0)72 768 Q
 (2009 February 7)140.96 E(56)190.95 E 0 Cg EP
 %%Page: 57 57
@@ -6661,13 +6673,13 @@ C(hen)-7.014 E F3(local)4.514 E F0 2.013
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E -.25(va)144 84 S(riable).25 E/F1 10/Times-Italic@0 SF(name)3.87 E
-F0 1.01(to ha)3.69 F 1.31 -.15(ve a v)-.2 H 1.011
+-.35 E -.25(va)144 84 S(riable).25 E/F1 10/Times-Italic@0 SF(name)3.871
+E F0 1.011(to ha)3.691 F 1.311 -.15(ve a v)-.2 H 1.011
 (isible scope restricted to that function and its children.).15 F -.4
-(Wi)6.011 G 1.011(th no oper).4 F(-)-.2 E(ands,)144 96 Q/F2 10
-/Times-Bold@0 SF(local)3.242 E F0 .741(writes a list of local v)3.241 F
+(Wi)6.01 G 1.01(th no oper).4 F(-)-.2 E(ands,)144 96 Q/F2 10
+/Times-Bold@0 SF(local)3.241 E F0 .741(writes a list of local v)3.241 F
 .741(ariables to the standard output.)-.25 F .741(It is an error to use)
-5.741 F F2(local)3.241 E F0(when)3.241 E 1.34(not within a function.)144
+5.741 F F2(local)3.241 E F0(when)3.242 E 1.34(not within a function.)144
 108 R 1.34(The return status is 0 unless)6.34 F F2(local)3.84 E F0 1.34
 (is used outside a function, an in)3.84 F -.25(va)-.4 G(lid).25 E F1
 (name)144.36 120 Q F0(is supplied, or)2.68 E F1(name)2.5 E F0
@@ -6685,11 +6697,11 @@ F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1(origin)2.5 E F0
 (arr)-2.5 E(ay)-.15 E F0(])A 1.006
 (Read lines from the standard input into array v)144 177.6 R(ariable)
 -.25 E F1(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G
-1.006(rom \214le descriptor)-3.506 F F1(fd)3.506 E F0 1.005(if the)3.506
-F F2<ad75>3.505 E F0 1.086(option is supplied.)144 189.6 R 1.086(The v)
-6.086 F(ariable)-.25 E F2(MAPFILE)3.586 E F0 1.086(is the def)3.586 F
-(ault)-.1 E F1(arr)3.587 E(ay)-.15 E F0 6.087(.O)C 1.087
-(ptions, if supplied, ha)-6.087 F 1.387 -.15(ve t)-.2 H(he).15 E(follo)
+1.006(rom \214le descriptor)-3.506 F F1(fd)3.506 E F0 1.006(if the)3.506
+F F2<ad75>3.506 E F0 1.087(option is supplied.)144 189.6 R 1.087(The v)
+6.087 F(ariable)-.25 E F2(MAPFILE)3.587 E F0 1.086(is the def)3.587 F
+(ault)-.1 E F1(arr)3.586 E(ay)-.15 E F0 6.086(.O)C 1.086
+(ptions, if supplied, ha)-6.086 F 1.386 -.15(ve t)-.2 H(he).15 E(follo)
 144 201.6 Q(wing meanings:)-.25 E F2<ad6e>144 213.6 Q F0(Cop)24.74 E 2.5
 (ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F1(count)2.7 E F0 2.5(lines. If)3.18
 F F1(count)2.5 E F0(is 0, all lines are copied.)2.5 E F2<ad4f>144 225.6
@@ -6705,7 +6717,7 @@ Q F0(Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2
 2.5 E F0(lines are read.)2.5 E(The)5 E F2<ad63>2.5 E F0
 (option speci\214es)2.5 E F1(quantum)2.5 E F0(.).32 E F2<ad63>144 285.6
 Q F0(Specify the number of lines read between each call to)25.86 E F1
-(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 302.4 Q F2<ad43>2.968 E F0 .467
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 302.4 Q F2<ad43>2.967 E F0 .467
 (is speci\214ed without)2.967 F F2<ad63>2.967 E F0 2.967(,t)C .467
 (he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F1
 (callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
@@ -6717,22 +6729,21 @@ E F1(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 326.4 S
 (ut before the array element is assigned.)-.2 E
 (If not supplied with an e)144 343.2 Q(xplicit origin,)-.15 E F2
 (map\214le)2.5 E F0(will clear)2.5 E F1(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E F2(map\214le)144 360 Q F0 .996
-(returns successfully unless an in)3.496 F -.25(va)-.4 G .996
-(lid option or option ar).25 F .995(gument is supplied, or)-.18 F F1
-(arr)3.495 E(ay)-.15 E F0(is)3.495 E(in)144 372 Q -.25(va)-.4 G
+(before assigning to it.)2.5 E F2(map\214le)144 360 Q F0 .995
+(returns successfully unless an in)3.495 F -.25(va)-.4 G .996
+(lid option or option ar).25 F .996(gument is supplied, or)-.18 F F1
+(arr)3.496 E(ay)-.15 E F0(is)3.496 E(in)144 372 Q -.25(va)-.4 G
 (lid or unassignable.).25 E F2(popd)108 388.8 Q F0<5bad>2.5 E F2(n)A F0
 2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A(Remo)144
-400.8 Q -.15(ve)-.15 G 2.799(se).15 G .299
-(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G .299(th no ar)
-.4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .3
-(he top directory from the)-2.799 F 1.479(stack, and performs a)144
-412.8 R F2(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
-(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478
-(uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15
-F(wing)-.25 E(meanings:)144 424.8 Q F2<ad6e>144 436.8 Q F0 .551
-(Suppresses the normal change of directory when remo)24.74 F .551
-(ving directories from the stack, so)-.15 F
+400.8 Q -.15(ve)-.15 G 2.8(se).15 G .3(ntries from the directory stack.)
+-2.8 F -.4(Wi)5.299 G .299(th no ar).4 F .299(guments, remo)-.18 F -.15
+(ve)-.15 G 2.799(st).15 G .299(he top directory from the)-2.799 F 1.478
+(stack, and performs a)144 412.8 R F2(cd)3.978 E F0 1.479(to the ne)
+3.978 F 3.979(wt)-.25 G 1.479(op directory)-3.979 F 6.479(.A)-.65 G -.18
+(rg)-6.479 G 1.479(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H
+1.479(he follo).15 F(wing)-.25 E(meanings:)144 424.8 Q F2<ad6e>144 436.8
+Q F0 .551(Suppresses the normal change of directory when remo)24.74 F
+.551(ving directories from the stack, so)-.15 F
 (that only the stack is manipulated.)180 448.8 Q F2(+)144 460.8 Q F1(n)A
 F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F1(n)2.64 E F0
 .14(th entry counting from the left of the list sho)B .14(wn by)-.25 F
@@ -6740,17 +6751,18 @@ F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
 472.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
 (remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
 -.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 484.8 Q F1(n)A F0
-(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F1(n)3.759 E F0
-1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
-F F2(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
-496.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15
-(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 513.6 R F2(popd)
-3.144 E F0 .644(command is successful, a)3.144 F F2(dirs)3.143 E F0 .643
-(is performed as well, and the return status is 0.)3.143 F F2(popd)5.643
-E F0 .415(returns f)144 525.6 R .415(alse if an in)-.1 F -.25(va)-.4 G
-.415(lid option is encountered, the directory stack is empty).25 F 2.916
-(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
+(Remo)25.3 E -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F1(n)3.76 E F0
+1.259(th entry counting from the right of the list sho)B 1.259(wn by)
+-.25 F F2(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
+(zero. F)180 496.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
+E F3(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
+513.6 R F2(popd)3.143 E F0 .643(command is successful, a)3.143 F F2
+(dirs)3.143 E F0 .644(is performed as well, and the return status is 0.)
+3.143 F F2(popd)5.644 E F0 .416(returns f)144 525.6 R .416
+(alse if an in)-.1 F -.25(va)-.4 G .415
+(lid option is encountered, the directory stack is empty).25 F 2.915
+(,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
 (tory stack entry is speci\214ed, or the directory change f)144 537.6 Q
 (ails.)-.1 E F2(printf)108 554.4 Q F0([)2.5 E F2<ad76>A F1(var)2.5 E F0
 (])A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A .372
@@ -6758,32 +6770,32 @@ E F0 .415(returns f)144 525.6 R .415(alse if an in)-.1 F -.25(va)-.4 G
 (to the standard output under the control of the)2.872 F F1(format)2.872
 E F0 5.372(.T)C(he)-5.372 E F1(format)2.872 E F0 1.804(is a character s\
 tring which contains three types of objects: plain characters, which ar\
-e simply)144 578.4 R .159
+e simply)144 578.4 R .158
 (copied to standard output, character escape sequences, which are con)
-144 590.4 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\
+144 590.4 R -.15(ve)-.4 G .159(rted and copied to the stan-).15 F .499(\
 dard output, and format speci\214cations, each of which causes printing\
- of the ne)144 602.4 R .5(xt successi)-.15 F -.15(ve)-.25 G F1(ar)3.15 E
-(gu-)-.37 E(ment)144 614.4 Q F0 5.424(.I)C 2.924(na)-5.424 G .424
-(ddition to the standard)-2.924 F F1(printf)2.924 E F0 .424
-(\(1\) formats,)B F2(%b)2.924 E F0(causes)2.923 E F2(printf)2.923 E F0
-.423(to e)2.923 F .423(xpand backslash escape)-.15 F .976
+ of the ne)144 602.4 R .499(xt successi)-.15 F -.15(ve)-.25 G F1(ar)
+3.149 E(gu-)-.37 E(ment)144 614.4 Q F0 5.423(.I)C 2.923(na)-5.423 G .423
+(ddition to the standard)-2.923 F F1(printf)2.923 E F0 .424
+(\(1\) formats,)B F2(%b)2.924 E F0(causes)2.924 E F2(printf)2.924 E F0
+.424(to e)2.924 F .424(xpand backslash escape)-.15 F .977
 (sequences in the corresponding)144 626.4 R F1(ar)3.476 E(gument)-.37 E
 F0(\(e)3.476 E .976(xcept that)-.15 F F2(\\c)3.476 E F0 .976
-(terminates output, backslashes in)3.476 F F2<5c08>3.477 E F0(,)A F2
-(\\")3.477 E F0(,)A(and)144 638.4 Q F2(\\?)3.422 E F0 .922(are not remo)
-3.422 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
-(ginning with)-.15 F F2(\\0)3.422 E F0 .921
+(terminates output, backslashes in)3.476 F F2<5c08>3.476 E F0(,)A F2
+(\\")3.476 E F0(,)A(and)144 638.4 Q F2(\\?)3.421 E F0 .921(are not remo)
+3.421 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
+(ginning with)-.15 F F2(\\0)3.422 E F0 .922
 (may contain up to four digits\), and)3.422 F F2(%q)144 650.4 Q F0
-(causes)3.63 E F2(printf)3.63 E F0 1.13(to output the corresponding)3.63
-F F1(ar)3.631 E(gument)-.37 E F0 1.131
+(causes)3.631 E F2(printf)3.631 E F0 1.131(to output the corresponding)
+3.631 F F1(ar)3.631 E(gument)-.37 E F0 1.13
 (in a format that can be reused as shell)3.631 F(input.)144 662.4 Q(The)
-144 686.4 Q F2<ad76>2.904 E F0 .404
-(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E
+144 686.4 Q F2<ad76>2.903 E F0 .404
+(option causes the output to be assigned to the v)2.903 F(ariable)-.25 E
 F1(var)2.904 E F0 .404(rather than being printed to the)2.904 F
-(standard output.)144 698.4 Q(The)144 722.4 Q F1(format)3.423 E F0 .923
-(is reused as necessary to consume all of the)3.423 F F1(ar)3.423 E
+(standard output.)144 698.4 Q(The)144 722.4 Q F1(format)3.424 E F0 .923
+(is reused as necessary to consume all of the)3.424 F F1(ar)3.423 E
 (guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format)
-3.423 E F0 .924(requires more)3.424 F(GNU Bash-4.0)72 768 Q
+3.423 E F0 .923(requires more)3.423 F(GNU Bash-4.0)72 768 Q
 (2009 February 7)140.96 E(57)190.95 E 0 Cg EP
 %%Page: 58 58
 %%BeginPageSetup
@@ -6791,27 +6803,27 @@ BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Italic@0 SF(ar)144 84 Q(guments)-.37 E F0 .033
-(than are supplied, the e)2.534 F .033
+(than are supplied, the e)2.533 F .033
 (xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
-.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,)
 -.25 F(as appropriate, had been supplied.)144 96 Q(The return v)5 E
 (alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E/F2 10
 /Times-Bold@0 SF(pushd)108 112.8 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)
 -2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 124.8 Q
-F0([)2.5 E F2<ad6e>A F0 2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a direc\
-tory to the top of the directory stack, or rotates the stack, making th\
-e ne)144 136.8 R 3.14(wt)-.25 G .64(op of the)-3.14 F 1.316
-(stack the current w)144 148.8 R 1.316(orking directory)-.1 F 6.316(.W)
--.65 G 1.315(ith no ar)-6.716 F 1.315(guments, e)-.18 F 1.315
-(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315(irectories and)-3.815 F
-.871(returns 0, unless the directory stack is empty)144 160.8 R 5.871
-(.A)-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172
--.15(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144
+F0([)2.5 E F2<ad6e>A F0 2.5(][)C F1(dir)-2.5 E F0(])A .64(Adds a direct\
+ory to the top of the directory stack, or rotates the stack, making the\
+ ne)144 136.8 R 3.139(wt)-.25 G .639(op of the)-3.139 F 1.315
+(stack the current w)144 148.8 R 1.315(orking directory)-.1 F 6.315(.W)
+-.65 G 1.315(ith no ar)-6.715 F 1.315(guments, e)-.18 F 1.316
+(xchanges the top tw)-.15 F 3.816(od)-.1 G 1.316(irectories and)-3.816 F
+.872(returns 0, unless the directory stack is empty)144 160.8 R 5.871
+(.A)-.65 G -.18(rg)-5.871 G .871(uments, if supplied, ha).18 F 1.171
+-.15(ve t)-.2 H .871(he follo).15 F .871(wing mean-)-.25 F(ings:)144
 172.8 Q F2<ad6e>144 184.8 Q F0 .902(Suppresses the normal change of dir\
 ectory when adding directories to the stack, so that)24.74 F
 (only the stack is manipulated.)180 196.8 Q F2(+)144 208.8 Q F1(n)A F0
-1.267(Rotates the stack so that the)25.3 F F1(n)3.767 E F0 1.268
-(th directory \(counting from the left of the list sho)B 1.268(wn by)
+1.268(Rotates the stack so that the)25.3 F F1(n)3.768 E F0 1.267
+(th directory \(counting from the left of the list sho)B 1.267(wn by)
 -.25 F F2(dirs)180 220.8 Q F0 2.5(,s)C
 (tarting with zero\) is at the top.)-2.5 E F2<ad>144 232.8 Q F1(n)A F0
 .92(Rotates the stack so that the)25.3 F F1(n)3.42 E F0 .92
@@ -6819,26 +6831,26 @@ ectory when adding directories to the stack, so that)24.74 F
 F F2(dirs)180 244.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
 -2.5 E F1(dir)144.35 256.8 Q F0(Adds)23.98 E F1(dir)2.85 E F0
 (to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
-G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 273.6
-R F2(pushd)2.988 E F0 .488(command is successful, a)2.988 F F2(dirs)
-2.988 E F0 .488(is performed as well.)2.988 F .489
-(If the \214rst form is used,)5.488 F F2(pushd)2.989 E F0 1.04
-(returns 0 unless the cd to)144 285.6 R F1(dir)3.89 E F0 -.1(fa)4.27 G
-3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F2(pushd)3.539 E F0
-1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144
-297.6 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\
-ment is speci\214ed, or the directory change to the)-.15 F
-(speci\214ed ne)144 309.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
-(ails.)-.1 E F2(pwd)108 326.4 Q F0([)2.5 E F2(\255LP)A F0(])A .845
+G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .489(If the)144 273.6
+R F2(pushd)2.989 E F0 .489(command is successful, a)2.989 F F2(dirs)
+2.988 E F0 .488(is performed as well.)2.988 F .488
+(If the \214rst form is used,)5.488 F F2(pushd)2.988 E F0 1.039
+(returns 0 unless the cd to)144 285.6 R F1(dir)3.889 E F0 -.1(fa)4.269 G
+3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F2(pushd)3.54 E F0
+1.04(returns 0 unless the directory)3.54 F .847(stack is empty)144 297.6
+R 3.347(,an)-.65 G(on-e)-3.347 E .847(xistent directory stack element i\
+s speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144
+309.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F2(pwd)108
+326.4 Q F0([)2.5 E F2(\255LP)A F0(])A .844
 (Print the absolute pathname of the current w)144 338.4 R .845
-(orking directory)-.1 F 5.844(.T)-.65 G .844
-(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
+(orking directory)-.1 F 5.845(.T)-.65 G .845
+(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
 350.4 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2
 .181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2
-(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
-(enabled. If)144 362.4 R(the)3.264 E F2<ad4c>3.264 E F0 .763
-(option is used, the pathname printed may contain symbolic links.)3.264
-F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\
+(set)2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263
+(enabled. If)144 362.4 R(the)3.263 E F2<ad4c>3.263 E F0 .763
+(option is used, the pathname printed may contain symbolic links.)3.263
+F .764(The return)5.764 F 1.36(status is 0 unless an error occurs while\
  reading the name of the current directory or an in)144 374.4 R -.25(va)
 -.4 G(lid).25 E(option is supplied.)144 386.4 Q F2 -.18(re)108 403.2 S
 (ad).18 E F0([)2.5 E F2(\255ers)A F0 2.5(][)C F2<ad61>-2.5 E F1(aname)
@@ -6848,55 +6860,55 @@ E F1(te)2.5 E(xt)-.2 E F0 2.5(][)C F2<ad6e>-2.5 E F1(nc)2.5 E(har)-.15 E
 F2<ad74>-2.5 E F1(timeout)2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E
 F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .516(One line is read from the\
  standard input, or from the \214le descriptor)144 415.2 R F1(fd)3.016 E
-F0 .516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 427.2 Q
-F2<ad75>2.538 E F0 .038(option, and the \214rst w)2.538 F .038
-(ord is assigned to the \214rst)-.1 F F1(name)2.539 E F0 2.539(,t).18 G
-.039(he second w)-2.539 F .039(ord to the second)-.1 F F1(name)2.539 E
+F0 .516(supplied as an ar)3.016 F .517(gument to)-.18 F(the)144 427.2 Q
+F2<ad75>2.539 E F0 .039(option, and the \214rst w)2.539 F .038
+(ord is assigned to the \214rst)-.1 F F1(name)2.538 E F0 2.538(,t).18 G
+.038(he second w)-2.538 F .038(ord to the second)-.1 F F1(name)2.538 E
 F0(,).18 E .42(and so on, with lefto)144 439.2 R -.15(ve)-.15 G 2.92(rw)
 .15 G .42(ords and their interv)-3.02 F .42
 (ening separators assigned to the last)-.15 F F1(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 451.2 R .54(wer w)-.25
-F .541(ords read from the input stream than names, the remaining names \
-are assigned empty)-.1 F -.25(va)144 463.2 S 2.511(lues. The).25 F .011
-(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .541(are fe)144 451.2 R .541(wer w)
+-.25 F .541(ords read from the input stream than names, the remaining n\
+ames are assigned empty)-.1 F -.25(va)144 463.2 S 2.51(lues. The).25 F
+.011(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
 (are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
-(backslash character \()2.511 F F2(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
-(be used to remo)144 475.2 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
-1.891(pecial meaning for the ne).15 F 1.891
+(backslash character \()2.511 F F2(\\)A F0 2.511(\)m)C(ay)-2.511 E 1.891
+(be used to remo)144 475.2 R 2.191 -.15(ve a)-.15 H 2.191 -.15(ny s).15
+H 1.891(pecial meaning for the ne).15 F 1.89
 (xt character read and for line continuation.)-.15 F
 (Options, if supplied, ha)144 487.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 499.2 Q F1(aname)2.5 E F0 1.05(The w)
-180 511.2 R 1.049
+(wing meanings:)-.25 E F2<ad61>144 499.2 Q F1(aname)2.5 E F0 1.049
+(The w)180 511.2 R 1.049
 (ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.25 E F1(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
-F1(aname)180.33 523.2 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
--.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0
-(ar)2.5 E(guments are ignored.)-.18 E F2<ad64>144 535.2 Q F1(delim)2.5 E
-F0(The \214rst character of)180 547.2 Q F1(delim)2.5 E F0
+-.25 E F1(aname)3.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F1
+(aname)180.33 523.2 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25
+(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0(ar)2.5
+E(guments are ignored.)-.18 E F2<ad64>144 535.2 Q F1(delim)2.5 E F0
+(The \214rst character of)180 547.2 Q F1(delim)2.5 E F0
 (is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
-F2<ad65>144 559.2 Q F0 .372
+F2<ad65>144 559.2 Q F0 .373
 (If the standard input is coming from a terminal,)25.86 F F2 -.18(re)
-2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
--.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
+2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.872 E F0(abo)2.622 E
+-.15(ve)-.15 G 2.872(\)i).15 G 2.872(su)-2.872 G(sed)-2.872 E .218
 (to obtain the line.)180 571.2 R .218
 (Readline uses the current \(or def)5.218 F .218
 (ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
 (acti)180 583.2 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
-F2<ad69>144 595.2 Q F1(te)2.5 E(xt)-.2 E F0(If)10.78 E F2 -.18(re)2.715
-G(adline).18 E F0 .216(is being used to read the line,)2.715 F F1(te)
+F2<ad69>144 595.2 Q F1(te)2.5 E(xt)-.2 E F0(If)10.78 E F2 -.18(re)2.716
+G(adline).18 E F0 .216(is being used to read the line,)2.716 F F1(te)
 2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
-.216(fer before edit-)-.25 F(ing be)180 607.2 Q(gins.)-.15 E F2<ad6e>144
+.215(fer before edit-)-.25 F(ing be)180 607.2 Q(gins.)-.15 E F2<ad6e>144
 619.2 Q F1(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 631.2 S(ad).18 E
-F0 1.395(returns after reading)3.895 F F1(nc)3.895 E(har)-.15 E(s)-.1 E
-F0 1.395(characters rather than w)3.895 F 1.394
+F0 1.394(returns after reading)3.894 F F1(nc)3.894 E(har)-.15 E(s)-.1 E
+F0 1.395(characters rather than w)3.894 F 1.395
 (aiting for a complete line of)-.1 F(input.)180 643.2 Q F2<ad70>144
-655.2 Q F1(pr)2.5 E(ompt)-.45 E F0(Display)180 667.2 Q F1(pr)3.66 E
-(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161
+655.2 Q F1(pr)2.5 E(ompt)-.45 E F0(Display)180 667.2 Q F1(pr)3.661 E
+(ompt)-.45 E F0 1.161(on standard error)3.661 F 3.661(,w)-.4 G 1.161
 (ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read)
 -.25 F(an)180 679.2 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
 (prompt is displayed only if input is coming from a terminal.)2.5 E F2
-<ad72>144 691.2 Q F0 .544(Backslash does not act as an escape character)
-25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
+<ad72>144 691.2 Q F0 .543(Backslash does not act as an escape character)
+25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of)
 -5.543 F(the line.)180 703.2 Q(In particular)5 E 2.5(,ab)-.4 G
 (ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
 -.25 E F2<ad73>144 715.2 Q F0(Silent mode.)26.41 E
@@ -6908,29 +6920,29 @@ BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Bold@0 SF<ad74>144 84 Q/F2 10/Times-Italic@0 SF
-(timeout)2.5 E F0(Cause)180 96 Q F1 -.18(re)3.548 G(ad).18 E F0 1.048
-(to time out and return f)3.548 F 1.048
+(timeout)2.5 E F0(Cause)180 96 Q F1 -.18(re)3.549 G(ad).18 E F0 1.048
+(to time out and return f)3.549 F 1.048
 (ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 108 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997
-(may be a decimal number with a fractional portion follo)3.497 F(wing)
+180 108 Q F0(seconds.)3.496 E F2(timeout)5.996 E F0 .997
+(may be a decimal number with a fractional portion follo)3.496 F(wing)
 -.25 E .576(the decimal point.)180 120 R .576(This option is only ef)
 5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G
-(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142
+(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .141
 (pipe, or other special \214le; it has no ef)180 132 R .142
-(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E
-F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 144 S(ad).18 E
-F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113
-(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114
+(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.142 E
+F2(timeout)2.642 E F0 .142(is 0,)2.642 F F1 -.18(re)180 144 S(ad).18 E
+F0 .113(returns success if input is a)2.614 F -.25(va)-.2 G .113
+(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .113
 (ailure otherwise.)-2.713 F(The e)180 156 Q
 (xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
 E F1<ad75>144 168 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
-14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 184.8 R F2(names)3.052 E F0
-.192(are supplied, the line read is assigned to the v)2.962 F(ariable)
--.25 E/F3 9/Times-Bold@0 SF(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF
-(.)A F0 .191(The return code is zero,)4.691 F 1.343
-(unless end-of-\214le is encountered,)144 196.8 R F1 -.18(re)3.843 G(ad)
+14.46 E F2(fd)2.5 E F0(.)A .191(If no)144 184.8 R F2(names)3.051 E F0
+.191(are supplied, the line read is assigned to the v)2.961 F(ariable)
+-.25 E/F3 9/Times-Bold@0 SF(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF
+(.)A F0 .192(The return code is zero,)4.692 F 1.344
+(unless end-of-\214le is encountered,)144 196.8 R F1 -.18(re)3.844 G(ad)
 .18 E F0 1.343
-(times out \(in which case the return code is greater than)3.843 F
+(times out \(in which case the return code is greater than)3.844 F
 (128\), or an in)144 208.8 Q -.25(va)-.4 G
 (lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1
 <ad75>2.5 E F0(.)A F1 -.18(re)108 225.6 S(adonly).18 E F0([)2.5 E F1
@@ -6938,105 +6950,105 @@ E F1<ad75>144 168 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
 F0 2.5(].)C(..])-2.5 E .77(The gi)144 237.6 R -.15(ve)-.25 G(n).15 E F2
 (names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77
 (alues of these)-.25 F F2(names)3.63 E F0 .77
-(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 249.6 R
-1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
-(option is supplied, the functions corresponding to the)3.596 F F2
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 261.6 Q 3.334(ed. The)
+(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 249.6 R
+1.097(If the)6.097 F F1<ad66>3.597 E F0 1.097
+(option is supplied, the functions corresponding to the)3.597 F F2
+(names)3.596 E F0 1.096(are so)3.596 F(mark)144 261.6 Q 3.334(ed. The)
 -.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
 (ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
 -3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .537(ables to associati)144 273.6 R .837 -.15(ve a)-.25 H 3.037
+-.25 E .538(ables to associati)144 273.6 R .838 -.15(ve a)-.25 H 3.038
 (rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
 (guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
-3.038 E F0 .538(option is supplied, a list)3.038 F .081
-(of all readonly names is printed.)144 285.6 R(The)5.081 E F1<ad70>2.581
-E F0 .08(option causes output to be displayed in a format that may)2.581
-F 1.176(be reused as input.)144 297.6 R 1.176(If a v)6.176 F 1.176
+3.038 E F0 .537(option is supplied, a list)3.038 F .08
+(of all readonly names is printed.)144 285.6 R(The)5.08 E F1<ad70>2.58 E
+F0 .081(option causes output to be displayed in a format that may)2.58 F
+1.177(be reused as input.)144 297.6 R 1.177(If a v)6.177 F 1.176
 (ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0
-3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)-.25 F 1.177
-(ariable is set to)-.25 F F2(wor)144 309.6 Q(d)-.37 E F0 6.206(.T)C
-1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G 1.205
-(lid option is encountered, one of the).25 F F2(names)4.065 E F0 1.205
-(is not a)3.975 F -.25(va)144 321.6 S(lid shell v).25 E
+3.676(,t)C 1.176(he v)-3.676 F 1.176(alue of the v)-.25 F 1.176
+(ariable is set to)-.25 F F2(wor)144 309.6 Q(d)-.37 E F0 6.205(.T)C
+1.205(he return status is 0 unless an in)-6.205 F -.25(va)-.4 G 1.206
+(lid option is encountered, one of the).25 F F2(names)4.066 E F0 1.206
+(is not a)3.976 F -.25(va)144 321.6 S(lid shell v).25 E
 (ariable name, or)-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2
 (name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 338.4 S
-(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586
+(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .587
 (Causes a function to e)144 350.4 R .587(xit with the return v)-.15 F
 .587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587
-E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335
+E F2(n)3.447 E F0 .586(is omitted, the return status is)3.327 F 1.335
 (that of the last command e)144 362.4 R -.15(xe)-.15 G 1.335
 (cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
 1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe)
 144 374.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
 5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794
-(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795
-(cuting that script).15 F .246(and return either)144 386.4 R F2(n)3.106
-E F0 .246(or the e)2.986 F .246(xit status of the last command e)-.15 F
--.15(xe)-.15 G .246(cuted within the script as the e).15 F .245
-(xit sta-)-.15 F .081(tus of the script.)144 398.4 R .082
+(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .794
+(cuting that script).15 F .245(and return either)144 386.4 R F2(n)3.105
+E F0 .246(or the e)2.985 F .246(xit status of the last command e)-.15 F
+-.15(xe)-.15 G .246(cuted within the script as the e).15 F .246
+(xit sta-)-.15 F .082(tus of the script.)144 398.4 R .082
 (If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
-(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082
-(he return sta-)-2.582 F 2.306(tus is f)144 410.4 R 4.806(alse. An)-.1 F
-4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN)
-4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e)
+(cution of a script by).15 F F1(.)2.582 E F0 2.581(,t).833 G .081
+(he return sta-)-2.581 F 2.305(tus is f)144 410.4 R 4.805(alse. An)-.1 F
+4.805(yc)-.15 G 2.305(ommand associated with the)-4.805 F F1(RETURN)
+4.805 E F0 2.306(trap is e)4.806 F -.15(xe)-.15 G 2.306(cuted before e)
 .15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
 144 422.4 Q F1(set)108 439.2 Q F0([)2.5 E F1
 (\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5
 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 451.2 Q F0
 ([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)
 2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 463.2 S
-.835(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.836(ariable are displayed in a format that can be)-.25 F .784
+.836(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
+.835(ariable are displayed in a format that can be)-.25 F .784
 (reused as input for setting or resetting the currently-set v)144 475.2
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 487.2 R F2 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
+(riables cannot be).25 F 2.947(reset. In)144 487.2 R F2 .447(posix mode)
+2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
 (ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 499.2 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
-(after option processing are treated as v)144 511.2 R 1.624
+(The output is sorted according to the current)5.447 F 3.53
+(locale. When)144 499.2 R 1.031(options are speci\214ed, the)3.53 F
+3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
+-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
+1.624(after option processing are treated as v)144 511.2 R 1.623
 (alues for the positional parameters and are assigned, in)-.25 F(order)
 144 523.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
 F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 535.2 Q
-F0 .54(Automatically mark v)29.3 F .539
-(ariables and functions which are modi\214ed or created for e)-.25 F
-.539(xport to)-.15 F(the en)184 547.2 Q
-(vironment of subsequent commands.)-.4 E F1<ad62>144 559.2 Q F0 .131
+F0 .539(Automatically mark v)29.3 F .539
+(ariables and functions which are modi\214ed or created for e)-.25 F .54
+(xport to)-.15 F(the en)184 547.2 Q(vironment of subsequent commands.)
+-.4 E F1<ad62>144 559.2 Q F0 .132
 (Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
 (primary prompt.)184 571.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 583.2 Q F0
-.511(Exit immediately if a)29.86 F F2(pipeline)3.011 E F0 .511
-(\(which may consist of a single)3.011 F F2 .51(simple command)3.01 F F0
-3.01(\), a)B F2(sub-)3.01 E(shell)184 595.2 Q F0 .872
-(command enclosed in parentheses, or one of the commands e)3.372 F -.15
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 583.2 Q F0 .51
+(Exit immediately if a)29.86 F F2(pipeline)3.01 E F0 .511
+(\(which may consist of a single)3.011 F F2 .511(simple command)3.011 F
+F0 3.011(\), a)B F2(sub-)3.011 E(shell)184 595.2 Q F0 .872
+(command enclosed in parentheses, or one of the commands e)3.373 F -.15
 (xe)-.15 G .872(cuted as part of a).15 F .399
 (command list enclosed by braces \(see)184 607.2 R F3 .399
 (SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G
-.399(xits with a non-zero)-3.049 F 3.968(status. The)184 619.2 R 1.468
-(shell does not e)3.968 F 1.468(xit if the command that f)-.15 F 1.468
-(ails is part of the command list)-.1 F .57(immediately follo)184 631.2
-R .57(wing a)-.25 F F1(while)3.07 E F0(or)3.07 E F1(until)3.07 E F0 -.1
-(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .569
-(wing the)-.25 F F1(if)3.069 E F0(or)3.069 E F1(elif)3.069 E F0(reserv)
-184 643.2 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G
+.399(xits with a non-zero)-3.049 F 3.969(status. The)184 619.2 R 1.468
+(shell does not e)3.969 F 1.468(xit if the command that f)-.15 F 1.468
+(ails is part of the command list)-.1 F .569(immediately follo)184 631.2
+R .569(wing a)-.25 F F1(while)3.069 E F0(or)3.069 E F1(until)3.069 E F0
+-.1(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .57
+(wing the)-.25 F F1(if)3.07 E F0(or)3.07 E F1(elif)3.07 E F0(reserv)184
+643.2 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G
 .544(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044
 E F0(or)3.044 E/F5 10/Symbol SF<efef>3.044 E F0 .544(list e)3.044 F .544
-(xcept the command)-.15 F(follo)184 655.2 Q 1.231(wing the \214nal)-.25
-F F1(&&)3.731 E F0(or)3.731 E F5<efef>3.731 E F0 3.731(,a)C 1.531 -.15
-(ny c)-3.731 H 1.231(ommand in a pipeline b).15 F 1.23
-(ut the last, or if the com-)-.2 F(mand')184 667.2 Q 3.19(sr)-.55 G .69
-(eturn v)-3.19 F .69(alue is being in)-.25 F -.15(ve)-.4 G .69
+(xcept the command)-.15 F(follo)184 655.2 Q 1.23(wing the \214nal)-.25 F
+F1(&&)3.73 E F0(or)3.73 E F5<efef>3.73 E F0 3.73(,a)C 1.53 -.15(ny c)
+-3.73 H 1.231(ommand in a pipeline b).15 F 1.231
+(ut the last, or if the com-)-.2 F(mand')184 667.2 Q 3.191(sr)-.55 G
+.691(eturn v)-3.191 F .691(alue is being in)-.25 F -.15(ve)-.4 G .691
 (rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR)
-3.191 E F0 3.191(,i)C 3.191(fs)-3.191 G .691(et, is e)-3.191 F -.15(xe)
--.15 G .691(cuted before).15 F .687(the shell e)184 679.2 R 3.186
-(xits. This)-.15 F .686(option applies to the shell en)3.186 F .686
-(vironment and each subshell en)-.4 F(viron-)-.4 E .658
+3.19 E F0 3.19(,i)C 3.19(fs)-3.19 G .69(et, is e)-3.19 F -.15(xe)-.15 G
+.69(cuted before).15 F .686(the shell e)184 679.2 R 3.186(xits. This)
+-.15 F .686(option applies to the shell en)3.186 F .686
+(vironment and each subshell en)-.4 F(viron-)-.4 E .659
 (ment separately \(see)184 691.2 R F1 .659(COMMAND EXECUTION ENVIR)3.159
-F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .659(\), and may).15 F
+F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .658(\), and may).15 F
 (cause subshells to e)184 703.2 Q(xit before e)-.15 E -.15(xe)-.15 G
 (cuting all the commands in the subshell.).15 E F1<ad66>144 715.2 Q F0
 (Disable pathname e)30.97 E(xpansion.)-.15 E(GNU Bash-4.0)72 768 Q
@@ -7046,25 +7058,25 @@ F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .659(\), and may).15 F
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF<ad68>144 84 Q F0 2.239
-(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G 2.238
-(re look)-4.738 F 2.238(ed up for e)-.1 F -.15(xe)-.15 G 4.738
-(cution. This).15 F(is)4.738 E(enabled by def)184 96 Q(ault.)-.1 E F1
-<ad6b>144 108 Q F0 .513(All ar)28.74 F .514
+-.35 E/F1 10/Times-Bold@0 SF<ad68>144 84 Q F0 2.238
+(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G 2.239
+(re look)-4.738 F 2.239(ed up for e)-.1 F -.15(xe)-.15 G 4.739
+(cution. This).15 F(is)4.739 E(enabled by def)184 96 Q(ault.)-.1 E F1
+<ad6b>144 108 Q F0 .514(All ar)28.74 F .514
 (guments in the form of assignment statements are placed in the en)-.18
-F .514(vironment for a)-.4 F
+F .513(vironment for a)-.4 F
 (command, not just those that precede the command name.)184 120 Q F1
-<ad6d>144 132 Q F0 .149(Monitor mode.)25.97 F .149
-(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
-.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .636
+<ad6d>144 132 Q F0 .148(Monitor mode.)25.97 F .148
+(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
+.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .637
 (on systems that support it \(see)184 144 R/F2 9/Times-Bold@0 SF .636
 (JOB CONTR)3.136 F(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136
-(\). Background).15 F .637(processes run in a)3.136 F .642
-(separate process group and a line containing their e)184 156 R .641
+(\). Background).15 F .636(processes run in a)3.136 F .641
+(separate process group and a line containing their e)184 156 R .642
 (xit status is printed upon their com-)-.15 F(pletion.)184 168 Q F1
-<ad6e>144 180 Q F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F
--.15(xe)-.15 G .652(cute them.).15 F .653
-(This may be used to check a shell script for)5.652 F(syntax errors.)184
+<ad6e>144 180 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F
+-.15(xe)-.15 G .653(cute them.).15 F .652
+(This may be used to check a shell script for)5.653 F(syntax errors.)184
 192 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
 F1<ad6f>144 204 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The)
 184 216 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E
@@ -7081,14 +7093,14 @@ F0 2.5(option. This)224 300 R(also af)2.5 E(fects the editing interf)
 184 324 Q F0(Same as)224 336 Q F1<ad54>2.5 E F0(.)A F1(err)184 348 Q
 (exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1(hashall)184 360
 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 372 Q F0
-(Same as)224 384 Q F1<ad48>2.5 E F0(.)A F1(history)184 396 Q F0 .587
+(Same as)224 384 Q F1<ad48>2.5 E F0(.)A F1(history)184 396 Q F0 .586
 (Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
 (escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E F2(HIST)3.087 E
 (OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF(.)A F0 .587(This option is)
 5.087 F(on by def)224 408 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H
-(hells.).15 E F1(ignor)184 420 Q(eeof)-.18 E F0 1.656(The ef)224 432 R
-1.656(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF
-(IGNOREEOF=10)4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted)
+(hells.).15 E F1(ignor)184 420 Q(eeof)-.18 E F0 1.657(The ef)224 432 R
+1.657(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF
+(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted)
 .15 E(\(see)224 444 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
 (ve)-.15 G(\).).15 E F1 -.1(ke)184 456 S(yw).1 E(ord)-.1 E F0(Same as)
 224 468 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 480 Q F0(Same as)5.56 E F1
@@ -7099,21 +7111,21 @@ F0(.)A F1(noglob)184 528 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1
 (Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 564 Q F0(Same as)6.66
 E F1<ad75>2.5 E F0(.)A F1(onecmd)184 576 Q F0(Same as)6.67 E F1<ad74>2.5
 E F0(.)A F1(ph)184 588 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E
-F0(.)A F1(pipefail)184 600 Q F0 1.03(If set, the return v)7.77 F 1.029
-(alue of a pipeline is the v)-.25 F 1.029
-(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 612 R
+F0(.)A F1(pipefail)184 600 Q F0 1.029(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.03
+(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 612 R
 1.136
 (xit with a non-zero status, or zero if all commands in the pipeline)
 -.15 F -.15(ex)224 624 S(it successfully).15 E 5(.T)-.65 G
 (his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 636 Q F0
-2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
+2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
 2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
 (fers from the)-.25 F(POSIX standard to match the standard \()224 648 Q
 F3(posix mode)A F0(\).)A F1(pri)184 660 Q(vileged)-.1 E F0(Same as)224
 672 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 684 S(rbose).1 E F0(Same as)
-7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 696 Q F0 1.465
-(Use a vi-style command line editing interf)32.22 F 3.966(ace. This)-.1
-F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F(interf)224 708 Q
+7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 696 Q F0 1.466
+(Use a vi-style command line editing interf)32.22 F 3.965(ace. This)-.1
+F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F(interf)224 708 Q
 (ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A(GNU Bash-4.0)
 72 768 Q(2009 February 7)140.96 E(60)190.95 E 0 Cg EP
 %%Page: 61 61
@@ -7122,39 +7134,39 @@ BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Bold@0 SF(xtrace)184 84 Q F0(Same as)13.35 E F1<ad78>
-2.5 E F0(.)A(If)184 102 Q F1<ad6f>3.053 E F0 .553(is supplied with no)
-3.053 F/F2 10/Times-Italic@0 SF(option\255name)3.053 E F0 3.053(,t)C
-.553(he v)-3.053 F .552(alues of the current options are printed.)-.25 F
-(If)5.552 E F1(+o)184 114 Q F0 1.071(is supplied with no)3.571 F F2
-(option\255name)3.571 E F0 3.571(,as)C 1.071(eries of)-3.571 F F1(set)
-3.572 E F0 1.072(commands to recreate the current)3.572 F
+2.5 E F0(.)A(If)184 102 Q F1<ad6f>3.052 E F0 .552(is supplied with no)
+3.052 F/F2 10/Times-Italic@0 SF(option\255name)3.053 E F0 3.053(,t)C
+.553(he v)-3.053 F .553(alues of the current options are printed.)-.25 F
+(If)5.553 E F1(+o)184 114 Q F0 1.072(is supplied with no)3.572 F F2
+(option\255name)3.572 E F0 3.572(,a)C 1.071(series of)-.001 F F1(set)
+3.571 E F0 1.071(commands to recreate the current)3.571 F
 (option settings is displayed on the standard output.)184 126 Q F1<ad70>
-144 138 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F2(privile)4.822 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
+144 138 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
 /F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)
--.27 E F0 1.071(\214les are not pro-)3.322 F 1.5
-(cessed, shell functions are not inherited from the en)184 150 R 1.501
-(vironment, and the)-.4 F F3(SHELLOPTS)4.001 E/F4 9/Times-Roman@0 SF(,)A
-F1(CDP)184 162 Q -.95(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1
+-.27 E F0 1.072(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 150 R 1.5
+(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F1
+(CDP)184 162 Q -.95(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1
 (GLOBIGNORE)5.603 E F0 -.25(va)5.603 G 3.103(riables, if the).25 F 5.603
 (ya)-.15 G 3.103(ppear in the en)-5.603 F 3.103(vironment, are)-.4 F
-2.617(ignored. If)184 174 R .117(the shell is started with the ef)2.617
-F(fecti)-.25 E .418 -.15(ve u)-.25 H .118
+2.618(ignored. If)184 174 R .118(the shell is started with the ef)2.618
+F(fecti)-.25 E .418 -.15(ve u)-.25 H .117
 (ser \(group\) id not equal to the real user).15 F 1.018
 (\(group\) id, and the)184 186 R F1<ad70>3.518 E F0 1.018
 (option is not supplied, these actions are tak)3.518 F 1.018
-(en and the ef)-.1 F(fecti)-.25 E -.15(ve)-.25 G .286
+(en and the ef)-.1 F(fecti)-.25 E -.15(ve)-.25 G .287
 (user id is set to the real user id.)184 198 R .286(If the)5.286 F F1
-<ad70>2.786 E F0 .287(option is supplied at startup, the ef)2.786 F
-(fecti)-.25 E .587 -.15(ve u)-.25 H(ser).15 E .103(id is not reset.)184
-210 R -.45(Tu)5.103 G .102(rning this option of).45 F 2.602(fc)-.25 G
-.102(auses the ef)-2.602 F(fecti)-.25 E .402 -.15(ve u)-.25 H .102
+<ad70>2.786 E F0 .286(option is supplied at startup, the ef)2.786 F
+(fecti)-.25 E .586 -.15(ve u)-.25 H(ser).15 E .102(id is not reset.)184
+210 R -.45(Tu)5.102 G .102(rning this option of).45 F 2.602(fc)-.25 G
+.102(auses the ef)-2.602 F(fecti)-.25 E .402 -.15(ve u)-.25 H .103
 (ser and group ids to be set to).15 F(the real user and group ids.)184
 222 Q F1<ad74>144 234 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
-G(cuting one command.).15 E F1<ad75>144 246 Q F0 -.35(Tr)28.74 G .444
+G(cuting one command.).15 E F1<ad75>144 246 Q F0 -.35(Tr)28.74 G .445
 (eat unset v).35 F .444
 (ariables as an error when performing parameter e)-.25 F 2.944
-(xpansion. If)-.15 F -.15(ex)2.945 G .445(pansion is).15 F .52
+(xpansion. If)-.15 F -.15(ex)2.944 G .444(pansion is).15 F .519
 (attempted on an unset v)184 258 R .519
 (ariable, the shell prints an error message, and, if not interacti)-.25
 F -.15(ve)-.25 G(,).15 E -.15(ex)184 270 S(its with a non-zero status.)
@@ -7162,37 +7174,37 @@ F -.15(ve)-.25 G(,).15 E -.15(ex)184 270 S(its with a non-zero status.)
 -.15 G(re read.)-2.5 E F1<ad78>144 294 Q F0 .315(After e)29.3 F .315
 (xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
 2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
-F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 306 R F1
+F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 306 R F1
 -.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
 (xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)
 3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 318 Q
 (xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 330 Q F0 2.578(The shell performs brace e)27.63 F 2.578
+<ad42>144 330 Q F0 2.579(The shell performs brace e)27.63 F 2.578
 (xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
--.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 342 Q
-(ault.)-.1 E F1<ad43>144 354 Q F0 .214(If set,)27.08 F F1(bash)2.714 E
-F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 342 Q
+(ault.)-.1 E F1<ad43>144 354 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
 (xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
-2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
-3.053(tors. This)184 366 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
+3.054(tors. This)184 366 R .553(may be o)3.053 F -.15(ve)-.15 G .553
 (rridden when creating output \214les by using the redirection opera-)
 .15 F(tor)184 378 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 390 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
--2.604 F F1(ERR)2.604 E F0 .103
-(is inherited by shell functions, command substitutions, and com-)2.604
-F .838(mands e)184 402 R -.15(xe)-.15 G .838(cuted in a subshell en).15
-F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
-(trap is normally not inherited in)3.339 F(such cases.)184 414 Q F1
-<ad48>144 426 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
-(style history substitution.)5.532 F .531(This option is on by def)5.532
-F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 438 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 450 Q F0 1.164
+<ad45>144 390 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
+-2.603 F F1(ERR)2.603 E F0 .104
+(is inherited by shell functions, command substitutions, and com-)2.603
+F .839(mands e)184 402 R -.15(xe)-.15 G .839(cuted in a subshell en).15
+F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
+(trap is normally not inherited in)3.338 F(such cases.)184 414 Q F1
+<ad48>144 426 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
+(style history substitution.)5.531 F .531(This option is on by def)5.531
+F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 438 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 450 Q F0 1.165
 (If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
-(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165
-(cuting commands such as).15 F F1(cd)3.665 E F0 2.822
+(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
+(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
 (that change the current w)184 462 R 2.822(orking directory)-.1 F 7.822
-(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821
-(ysical directory structure)-.05 F 2.685(instead. By)184 474 R(def)2.685
+(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
+(ysical directory structure)-.05 F 2.686(instead. By)184 474 R(def)2.686
 E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
 (ws the logical chain of directories when performing com-)-.25 F
 (mands which change the current directory)184 486 Q(.)-.65 E F1<ad54>144
@@ -7203,41 +7215,41 @@ E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
 (cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
 (UG)-.1 E F0(and)4.432 E F1(RETURN)184 522 Q F0
 (traps are normally not inherited in such cases.)2.5 E F1<adad>144 534 Q
-F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
 (his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.4 E(the positional parameters are set to the)184 546 Q F2
-(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
+(Otherwise,)5.401 E(the positional parameters are set to the)184 546 Q
+F2(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
 (ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
-558 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2
-(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G
-1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 570 R
-F1<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
-(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no)
-3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B
+558 Q F0 1.945(Signal the end of options, cause all remaining)34.3 F F2
+(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G
+1.944(ssigned to the positional)-4.444 F 3.445(parameters. The)184 570 R
+F1<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
+(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
+3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
 (parameters remain unchanged.)184 582 Q .425(The options are of)144
 598.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
 (ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F .178
-(to be turned of)144 610.8 R 2.678(f. The)-.25 F .178
+(Using + rather than \255 causes these options)5.425 F .177
+(to be turned of)144 610.8 R 2.677(f. The)-.25 F .178
 (options can also be speci\214ed as ar)2.678 F .178(guments to an in)
--.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
+-.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
 (current set of options may be found in)144 622.8 R F1<24ad>2.566 E F0
 5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
-(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
+(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
 (is encountered.)144 634.8 Q F1(shift)108 651.6 Q F0([)2.5 E F2(n)A F0
-(])A .429(The positional parameters from)144 663.6 R F2(n)2.929 E F0
-.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
-.428(rameters represented by the num-).15 F(bers)144 675.6 Q F1($#)2.582
-E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
-(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
--.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
-.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
+(])A .428(The positional parameters from)144 663.6 R F2(n)2.928 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
+.429(rameters represented by the num-).15 F(bers)144 675.6 Q F1($#)2.583
+E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
+(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
+-.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
+.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
 (is 0, no parameters are changed.)144 687.6 R(If)5.06 E F2(n)2.92 E F0
 .06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
 (If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 699.6 R
-.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
-.144(is greater than)2.884 F F1($#)2.644 E F0
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 699.6 R
+.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
+.143(is greater than)2.883 F F1($#)2.643 E F0
 (or less than zero; otherwise 0.)144 711.6 Q(GNU Bash-4.0)72 768 Q
 (2009 February 7)140.96 E(61)190.95 E 0 Cg EP
 %%Page: 62 62
@@ -7252,100 +7264,100 @@ E F0(...])2.5 E -.8(To)144 96 S .222(ggle the v).8 F .222(alues of v)
 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1<ad70>2.722
 E F0 .721(option, a list of all settable options is displayed, with an \
 indication of whether or not each is set.)144 108 R(The)144 120 Q F1
-<ad70>2.828 E F0 .327(option causes output to be displayed in a form th\
-at may be reused as input.)2.828 F .327(Other options)5.327 F(ha)144 132
+<ad70>2.827 E F0 .327(option causes output to be displayed in a form th\
+at may be reused as input.)2.827 F .328(Other options)5.328 F(ha)144 132
 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad73>144
 144 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 E F0(.)A F1<ad75>144
 156 Q F0(Disable \(unset\) each)24.74 E F2(optname)2.5 E F0(.)A F1<ad71>
 144 168 Q F0 .003(Suppresses normal output \(quiet mode\); the return s\
-tatus indicates whether the)24.74 F F2(optname)2.504 E F0(is)2.504 E
-.256(set or unset.)180 180 R .256(If multiple)5.256 F F2(optname)2.756 E
-F0(ar)2.756 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G
-(ith)-2.756 E F1<ad71>2.756 E F0 2.755(,t)C .255
-(he return status is zero if)-2.755 F(all)180 192 Q F2(optnames)2.5 E F0
+tatus indicates whether the)24.74 F F2(optname)2.503 E F0(is)2.503 E
+.255(set or unset.)180 180 R .255(If multiple)5.255 F F2(optname)2.755 E
+F0(ar)2.755 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G
+(ith)-2.756 E F1<ad71>2.756 E F0 2.756(,t)C .256
+(he return status is zero if)-2.756 F(all)180 192 Q F2(optnames)2.5 E F0
 (are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 204 Q F0
 (Restricts the v)25.3 E(alues of)-.25 E F2(optname)2.5 E F0
 (to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0(option to the)2.5
-E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127(If either)144 220.8 R F1
-<ad73>2.627 E F0(or)2.627 E F1<ad75>2.627 E F0 .127(is used with no)
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .128(If either)144 220.8 R F1
+<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0 .127(is used with no)
 2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
-(guments, the display is limited to those options which)-.18 F 1.024
-(are set or unset, respecti)144 232.8 R -.15(ve)-.25 G(ly).15 E 6.024
-(.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F1(shopt)3.523 E F0
-1.023(options are disabled \(unset\) by)3.523 F(def)144 244.8 Q(ault.)
+(guments, the display is limited to those options which)-.18 F 1.023
+(are set or unset, respecti)144 232.8 R -.15(ve)-.25 G(ly).15 E 6.023
+(.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0
+1.024(options are disabled \(unset\) by)3.524 F(def)144 244.8 Q(ault.)
 -.1 E 1.544(The return status when listing options is zero if all)144
-261.6 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
-4.045 F .696
+261.6 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
+4.044 F .696
 (When setting or unsetting options, the return status is zero unless an)
-144 273.6 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695
+144 273.6 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696
 (alid shell)-.25 F(option.)144 285.6 Q(The list of)144 302.4 Q F1(shopt)
-2.5 E F0(options is:)2.5 E F1(autocd)144 320.4 Q F0 .199
+2.5 E F0(options is:)2.5 E F1(autocd)144 320.4 Q F0 .2
 (If set, a command name that is the name of a directory is e)11.11 F
--.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
+-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
 (ment to the)184 332.4 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
 (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 344.4 Q(ars)-.1 E F0 .156(If set, an ar)184 356.4 R .156
-(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
+F1(cdable_v)144 344.4 Q(ars)-.1 E F0 .155(If set, an ar)184 356.4 R .155
+(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
 (iltin command that is not a directory is assumed to be the).2 F
 (name of a v)184 368.4 Q(ariable whose v)-.25 E
 (alue is the directory to change to.)-.25 E F1(cdspell)144 380.4 Q F0
 1.055
 (If set, minor errors in the spelling of a directory component in a)
-10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 392.4 R 1.488(errors check)3.988 F 1.487
-(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
--.4 G(nd)-3.987 E .552(one character too man)184 404.4 R 4.352 -.65
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
+(corrected. The)184 392.4 R 1.487(errors check)3.987 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
+-.4 G(nd)-3.988 E .552(one character too man)184 404.4 R 4.352 -.65
 (y. I)-.15 H 3.052(fac).65 G .552
 (orrection is found, the corrected \214le name is printed, and)-3.052 F
 (the command proceeds.)184 416.4 Q
 (This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(checkhash)144 428.4 Q F0 2.08(If set,)184 440.4 R F1(bash)4.58
-E F0 2.079(checks that a command found in the hash table e)4.58 F 2.079
-(xists before trying to)-.15 F -.15(exe)184 452.4 S(cute it.).15 E
+.15 E F1(checkhash)144 428.4 Q F0 2.079(If set,)184 440.4 R F1(bash)
+4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
+2.08(xists before trying to)-.15 F -.15(exe)184 452.4 S(cute it.).15 E
 (If a hashed command no longer e)5 E
 (xists, a normal path search is performed.)-.15 E F1(checkjobs)144 464.4
-Q F0 .448(If set,)184 476.4 R F1(bash)2.948 E F0 .448
-(lists the status of an)2.948 F 2.949(ys)-.15 G .449
-(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.439(shell. If)184 488.4 R(an)3.439 E 3.439(yj)-.15 G
-.938(obs are running, this causes the e)-3.439 F .938
-(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 1.456
+Q F0 .449(If set,)184 476.4 R F1(bash)2.949 E F0 .449
+(lists the status of an)2.949 F 2.949(ys)-.15 G .448
+(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.438(shell. If)184 488.4 R(an)3.438 E 3.438(yj)-.15 G
+.938(obs are running, this causes the e)-3.438 F .938
+(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456
 (attempted without an interv)184 500.4 R 1.456(ening command \(see)-.15
 F F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G
 3.956(\). The).15 F(shell)3.956 E(al)184 512.4 Q -.1(wa)-.1 G
 (ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)
--2.5 E F1(checkwinsize)144 524.4 Q F0 .797(If set,)184 536.4 R F1(bash)
-3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G .796
-(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G .796
-(pdates the)-3.296 F -.25(va)184 548.4 S(lues of).25 E/F3 9/Times-Bold@0
+-2.5 E F1(checkwinsize)144 524.4 Q F0 .796(If set,)184 536.4 R F1(bash)
+3.296 E F0 .796(checks the windo)3.296 F 3.296(ws)-.25 G .797
+(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G .797
+(pdates the)-3.297 F -.25(va)184 548.4 S(lues of).25 E/F3 9/Times-Bold@0
 SF(LINES)2.5 E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A
 F1(cmdhist)144 560.4 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
 (attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
 (ll lines of a multiple-line command in the same history).15 F(entry)184
 572.4 Q 5(.T)-.65 G(his allo)-5 E
 (ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 584.4
-Q F0 .42(If set,)184 596.4 R F1(bash)2.92 E F0 .42(changes its beha)2.92
-F .419(vior to that of v)-.2 F .419
+Q F0 .419(If set,)184 596.4 R F1(bash)2.919 E F0 .419(changes its beha)
+2.919 F .419(vior to that of v)-.2 F .42
 (ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E
 (to the conditional command')184 608.4 Q 2.5(s=)-.55 G 2.5(~o)-2.5 G
-(perator)-2.5 E(.)-.55 E F1(dirspell)144 620.4 Q F0 .858(If set,)7.77 F
-F1(bash)3.358 E F0 .858
-(attempts spelling correction on directory names during w)3.358 F .859
+(perator)-2.5 E(.)-.55 E F1(dirspell)144 620.4 Q F0 .859(If set,)7.77 F
+F1(bash)3.359 E F0 .858
+(attempts spelling correction on directory names during w)3.359 F .858
 (ord completion if)-.1 F
 (the directory name initially supplied does not e)184 632.4 Q(xist.)-.15
 E F1(dotglob)144 644.4 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
 (includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
 -.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 656.4 Q F0 1.386
-(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
+(xpansion.)-.15 E F1(execfail)144 656.4 Q F0 1.387
+(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
 (hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.387(cute the \214le speci\214ed as an).15 F(ar)184 668.4 Q
+1.386(cute the \214le speci\214ed as an).15 F(ar)184 668.4 Q
 (gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
 (An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
 E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 680.4 Q
-F0 .717(If set, aliases are e)184 692.4 R .717(xpanded as described abo)
+F0 .716(If set, aliases are e)184 692.4 R .717(xpanded as described abo)
 -.15 F 1.017 -.15(ve u)-.15 H(nder).15 E F3(ALIASES)3.217 E F4(.)A F0
-.716(This option is enabled)5.217 F(by def)184 704.4 Q
+.717(This option is enabled)5.217 F(by def)184 704.4 Q
 (ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash-4.0)
 72 768 Q(2009 February 7)140.96 E(62)190.95 E 0 Cg EP
 %%Page: 63 63
@@ -7355,31 +7367,31 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Bold@0 SF(extdeb)144 84 Q(ug)-.2 E F0(If set, beha)
 184 96 Q(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1
-(1.)184 108 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F
-F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
+(1.)184 108 Q F0(The)28.5 E F1<ad46>4.251 E F0 1.751(option to the)4.251
+F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
 (iltin displays the source \214le name and line).2 F
 (number corresponding to each function name supplied as an ar)220 120 Q
 (gument.)-.18 E F1(2.)184 132 Q F0 1.667(If the command run by the)28.5
 F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
 1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 144
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 156 Q F0 .84
-(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
-(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 156 Q F0 .841
+(If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
 (exe)220 168 S .488
 (cuting in a subroutine \(a shell function or a shell script e).15 F
 -.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
 (sour)220 180 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
 -.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184
-192 R(ASH_ARGC)-.3 E F0(and)3.775 E F1 -.3(BA)3.775 G(SH_ARGV).3 E F0
-1.276(are updated as described in their descrip-)3.775 F(tions abo)220
+192 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0
+1.275(are updated as described in their descrip-)3.776 F(tions abo)220
 204 Q -.15(ve)-.15 G(.).15 E F1(5.)184 216 Q F0 1.359
 (Function tracing is enabled:)28.5 F 1.359
 (command substitution, shell functions, and sub-)6.359 F(shells in)220
 228 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F2 10
 /Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
 (DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 240 Q F0 .804(Error tracing is enabled:)28.5 F .805
-(command substitution, shell functions, and subshells)5.804 F(in)220 252
+184 240 Q F0 .805(Error tracing is enabled:)28.5 F .804
+(command substitution, shell functions, and subshells)5.805 F(in)220 252
 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2
 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
 (trap.)2.5 E F1(extglob)144 264 Q F0 .4(If set, the e)8.89 F .4
@@ -7391,48 +7403,48 @@ E F0(")A F2(string)A F0 4.973("q)C 2.473(uoting is performed within)
 -4.973 F F1(${)4.973 E F2(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
 (pansions).15 E(enclosed in double quotes.)184 312 Q
 (This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 324 Q F0
-1.425(If set, patterns which f)7.77 F 1.425
-(ail to match \214lenames during pathname e)-.1 F 1.424
+1.424(If set, patterns which f)7.77 F 1.425
+(ail to match \214lenames during pathname e)-.1 F 1.425
 (xpansion result in an)-.15 F -.15(ex)184 336 S(pansion error).15 E(.)
 -.55 E F1 -.25(fo)144 348 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
 .585(If set, the suf)184 360 R<8c78>-.25 E .585(es speci\214ed by the)
 -.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w)
 -.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 372 R .32
 (ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
-(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.329
-(pletions. See)184 384 R/F3 9/Times-Bold@0 SF .829(SHELL V)3.329 F
-(ARIABLES)-1.215 E F0(abo)3.079 E 1.129 -.15(ve f)-.15 H .83
-(or a description of).15 F F1(FIGNORE)3.33 E F0 5.83(.T)C .83
-(his option)-5.83 F(is enabled by def)184 396 Q(ault.)-.1 E F1(globstar)
-144 408 Q F0 .44(If set, the pattern)5 F F1(**)2.94 E F0 .44
-(used in a \214lename e)2.94 F .439(xpansion conte)-.15 F .439
-(xt will match a \214les and zero or)-.15 F 1.297
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.33
+(pletions. See)184 384 R/F3 9/Times-Bold@0 SF .83(SHELL V)3.33 F
+(ARIABLES)-1.215 E F0(abo)3.08 E 1.13 -.15(ve f)-.15 H .829
+(or a description of).15 F F1(FIGNORE)3.329 E F0 5.829(.T)C .829
+(his option)-5.829 F(is enabled by def)184 396 Q(ault.)-.1 E F1
+(globstar)144 408 Q F0 .439(If set, the pattern)5 F F1(**)2.939 E F0
+.439(used in a \214lename e)2.939 F .439(xpansion conte)-.15 F .44
+(xt will match a \214les and zero or)-.15 F 1.298
 (more directories and subdirectories.)184 420 R 1.298
-(If the pattern is follo)6.297 F 1.298(wed by a)-.25 F F1(/)3.798 E F0
-3.798(,o)C 1.298(nly directories)-3.798 F(and subdirectories match.)184
+(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0
+3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184
 432 Q F1(gnu_errfmt)144 444 Q F0(If set, shell error messages are writt\
 en in the standard GNU error message format.)184 456 Q F1(histappend)144
-468 Q F0 .384
+468 Q F0 .383
 (If set, the history list is appended to the \214le named by the v)184
-480 R .383(alue of the)-.25 F F1(HISTFILE)2.883 E F0 -.25(va)2.883 G
+480 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G
 (ri-).25 E(able when the shell e)184 492 Q(xits, rather than o)-.15 E
 -.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 504 Q(eedit)-.18
-E F0 .575(If set, and)184 516 R F1 -.18(re)3.075 G(adline).18 E F0 .575
-(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
-(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
-(tory substitution.)184 528 Q F1(histv)144 540 Q(erify)-.1 E F0 .403
+E F0 .576(If set, and)184 516 R F1 -.18(re)3.076 G(adline).18 E F0 .575
+(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575
+(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
+(tory substitution.)184 528 Q F1(histv)144 540 Q(erify)-.1 E F0 .402
 (If set, and)184 552 R F1 -.18(re)2.903 G(adline).18 E F0 .403
 (is being used, the results of history substitution are not immediately)
-2.903 F .661(passed to the shell parser)184 564 R 5.661(.I)-.55 G .662
-(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
-G(adline).18 E F0(editing)3.162 E -.2(bu)184 576 S -.25(ff).2 G(er).25 E
+2.903 F .662(passed to the shell parser)184 564 R 5.662(.I)-.55 G .661
+(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
+G(adline).18 E F0(editing)3.161 E -.2(bu)184 576 S -.25(ff).2 G(er).25 E
 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 588 Q F0 1.182(If set, and)184 600 R F1 -.18(re)3.682
-G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
-(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
-612 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
-F3(READLINE)3.881 E F0(abo)184 624 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(hostcomplete)144 588 Q F0 1.181(If set, and)184 600 R F1 -.18(re)3.681
+G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
+(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
+612 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
+F3(READLINE)3.88 E F0(abo)184 624 Q -.15(ve)-.15 G 2.5(\). This).15 F
 (is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 636 Q F0(If set,)
 184 648 Q F1(bash)2.5 E F0(will send)2.5 E F3(SIGHUP)2.5 E F0
 (to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
@@ -7442,11 +7454,11 @@ F3(READLINE)3.881 E F0(abo)184 624 Q -.15(ve)-.15 G 2.5(\). This).15 F
 (ord and all remaining characters on)-.1 F .967
 (that line to be ignored in an interacti)184 684 R 1.267 -.15(ve s)-.25
 H .967(hell \(see).15 F F3(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
-G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 696 Q
-(ault.)-.1 E F1(lithist)144 708 Q F0 .655(If set, and the)15.55 F F1
-(cmdhist)3.155 E F0 .654(option is enabled, multi-line commands are sa)
-3.154 F -.15(ve)-.2 G 3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)
--3.154 F(with embedded ne)184 720 Q
+G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 696 Q
+(ault.)-.1 E F1(lithist)144 708 Q F0 .654(If set, and the)15.55 F F1
+(cmdhist)3.154 E F0 .654(option is enabled, multi-line commands are sa)
+3.154 F -.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)
+-3.155 F(with embedded ne)184 720 Q
 (wlines rather than using semicolon separators where possible.)-.25 E
 (GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(63)190.95 E 0 Cg EP
 %%Page: 64 64
@@ -7456,43 +7468,43 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Bold@0 SF(login_shell)144 84 Q F0 .486
 (The shell sets this option if it is started as a login shell \(see)184
-96 R/F2 9/Times-Bold@0 SF(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)
-2.737 E -.15(ve)-.15 G 2.987(\). The).15 F -.25(va)184 108 S
-(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .815
-(If set, and a \214le that)184 132 R F1(bash)3.315 E F0 .814
-(is checking for mail has been accessed since the last time it)3.315 F
+96 R/F2 9/Times-Bold@0 SF(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)
+2.736 E -.15(ve)-.15 G 2.986(\). The).15 F -.25(va)184 108 S
+(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .814
+(If set, and a \214le that)184 132 R F1(bash)3.314 E F0 .815
+(is checking for mail has been accessed since the last time it)3.314 F
 -.1(wa)184 144 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
 (`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
 (has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
-(no_empty_cmd_completion)144 156 Q F0 .145(If set, and)184 168 R F1 -.18
-(re)2.645 G(adline).18 E F0 .145(is being used,)2.645 F F1(bash)2.646 E
-F0 .146(will not attempt to search the)2.646 F F1 -.74(PA)2.646 G(TH)
--.21 E F0 .146(for possible)2.646 F
+(no_empty_cmd_completion)144 156 Q F0 .146(If set, and)184 168 R F1 -.18
+(re)2.646 G(adline).18 E F0 .146(is being used,)2.646 F F1(bash)2.646 E
+F0 .145(will not attempt to search the)2.646 F F1 -.74(PA)2.645 G(TH)
+-.21 E F0 .145(for possible)2.645 F
 (completions when completion is attempted on an empty line.)184 180 Q F1
-(nocaseglob)144 192 Q F0 .437(If set,)184 204 R F1(bash)2.937 E F0 .436
-(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
-H .436(ashion when performing pathname).05 F -.15(ex)184 216 S
+(nocaseglob)144 192 Q F0 .436(If set,)184 204 R F1(bash)2.936 E F0 .436
+(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
+H .437(ashion when performing pathname).05 F -.15(ex)184 216 S
 (pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.193(If set,)184
-240 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti)
-3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.194(If set,)184
+240 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
 F(while e)184 252 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
 E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 264 Q F0
-.855(If set,)184 276 R F1(bash)3.355 E F0(allo)3.355 E .855
-(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854
-(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o)
--3.354 E -.15(ex)184 288 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .676
+.854(If set,)184 276 R F1(bash)3.354 E F0(allo)3.354 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
+(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
+-3.355 E -.15(ex)184 288 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .677
 (If set, the programmable completion f)184 312 R .677(acilities \(see)
--.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
+-.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E
 -.15(ve)-.15 G(\)).15 E(are enabled.)184 324 Q
 (This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 336 Q(omptv)
--.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 348 R 1.448
-(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 360 S .17(pansion, and quote remo).15 F -.25(va)-.15
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 348 R 1.448
+(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 360 S .171(pansion, and quote remo).15 F -.25(va)-.15
 G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
--.15 F F2(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15
-E(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384
+-.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
+(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384
 S(stricted_shell).18 E F0 1.069
 (The shell sets this option if it is started in restricted mode \(see)
 184 396 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 408 Q 4.178
@@ -7500,39 +7512,39 @@ S(stricted_shell).18 E F0 1.069
 1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
 184 420 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
 -.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 432 Q(erbose)-.1 E F0 .502(If set, the)184 444 R F1
-(shift)3.002 E F0 -.2(bu)3.002 G .501
-(iltin prints an error message when the shift count e).2 F .501
+F1(shift_v)144 432 Q(erbose)-.1 E F0 .501(If set, the)184 444 R F1
+(shift)3.001 E F0 -.2(bu)3.001 G .501
+(iltin prints an error message when the shift count e).2 F .502
 (xceeds the number)-.15 F(of positional parameters.)184 456 Q F1(sour)
-144 468 Q(cepath)-.18 E F0 .77(If set, the)184 480 R F1(sour)3.27 E(ce)
--.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47 F
-.771(alue of)-.25 F F2 -.666(PA)3.271 G(TH)-.189 E F0 .771
-(to \214nd the directory containing the)3.021 F
-(\214le supplied as an ar)184 492 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 504 Q F0
-(If set, the)184 516 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
-(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
-108 528 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 540 R -.15
-(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)-.25
-G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
-(login shell cannot be)3.501 F .022(suspended; the)144 552 R F1<ad66>
-2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
-(rride this and force the suspension.).15 F .023(The return status is)
-5.023 F 2.5(0u)144 564 S(nless the shell is a login shell and)-2.5 E F1
+144 468 Q(cepath)-.18 E F0 .771(If set, the)184 480 R F1(sour)3.271 E
+(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
+-3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
+(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
+184 492 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 504 Q F0(If set, the)184 516 Q F1(echo)2.5 E F0
+-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
+E(ault.)-.1 E F1(suspend)108 528 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
+(Suspend the e)144 540 R -.15(xe)-.15 G 1.001
+(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
+F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
+3.502 F .023(suspended; the)144 552 R F1<ad66>2.523 E F0 .023
+(option can be used to o)2.523 F -.15(ve)-.15 G .022
+(rride this and force the suspension.).15 F .022(The return status is)
+5.022 F 2.5(0u)144 564 S(nless the shell is a login shell and)-2.5 E F1
 <ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
 F1(test)108 576 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 588 Q F3 -.2(ex)2.5 G
 (pr).2 E F1(])2.5 E F0 1.15
 (Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
 (luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
-(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.187
+(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
 (operator and operand must be a separate ar)144 600 R 3.688
-(gument. Expressions)-.18 F 1.188(are composed of the primaries)3.688 F
-1.89(described abo)144 612 R 2.19 -.15(ve u)-.15 H(nder).15 E F2
-(CONDITION)4.39 E 1.89(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
-F1(test)6.39 E F0 1.889(does not accept an)4.389 F 4.389(yo)-.15 G 1.889
-(ptions, nor)-4.389 F(does it accept and ignore an ar)144 624 Q
+(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
+1.889(described abo)144 612 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
+(CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
+F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89
+(ptions, nor)-4.39 F(does it accept and ignore an ar)144 624 Q
 (gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E .785(Expressions may be combined using the follo)144 642 R .786
+E .786(Expressions may be combined using the follo)144 642 R .785
 (wing operators, listed in decreasing order of prece-)-.25 F 2.5
 (dence. The)144 654 R -.25(eva)2.5 G
 (luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
@@ -7564,38 +7576,38 @@ F0 -.25(eva)2.5 G(luate conditional e).25 E
 E 2.5(2a)144 178.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
 180 190.8 R .37(gument is)-.18 F F2(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
 F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .38(If the \214rst ar)180 202.8 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .679
--.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.879 E(TION)180
-214.8 Q .552(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
+(gument is null.)-.18 F .379(If the \214rst ar)180 202.8 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .68
+-.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.88 E(TION)180
+214.8 Q .553(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
 (the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
 .552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 226.8 Q
 (alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
 (xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 238.8 S -.18(rg)-2.5 G
-(uments).18 E .024(If the second ar)180 250.8 R .023
+(uments).18 E .023(If the second ar)180 250.8 R .023
 (gument is one of the binary conditional operators listed abo)-.18 F
-.323 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.523 E(DITION)180 262.8 Q
-1.477(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
+.324 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.524 E(DITION)180 262.8 Q
+1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
 1.477(xpression is the result of the binary test)-.15 F .513
 (using the \214rst and third ar)180 274.8 R .513(guments as operands.)
 -.18 F(The)5.513 E F2<ad61>3.013 E F0(and)3.013 E F2<ad6f>3.013 E F0
-.512(operators are considered)3.013 F .972
+.513(operators are considered)3.013 F .972
 (binary operators when there are three ar)180 286.8 R 3.472(guments. If)
 -.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F2(!)3.472 E F0
-3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 298.8
-R -.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884
-(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18
-F .883(the \214rst)3.383 F(ar)180 310.8 Q .874(gument is e)-.18 F
-(xactly)-.15 E F2(\()3.374 E F0 .875(and the third ar)3.374 F .875
-(gument is e)-.18 F(xactly)-.15 E F2(\))3.375 E F0 3.375(,t)C .875
-(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar)
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 298.8
+R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884
+(gument test using the second and third ar)-.18 F 3.384(guments. If)-.18
+F .884(the \214rst)3.384 F(ar)180 310.8 Q .875(gument is e)-.18 F
+(xactly)-.15 E F2(\()3.375 E F0 .875(and the third ar)3.375 F .875
+(gument is e)-.18 F(xactly)-.15 E F2(\))3.375 E F0 3.374(,t)C .874
+(he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar)
 180 322.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
--.15 E(alse.)-.1 E 2.5(4a)144 334.8 S -.18(rg)-2.5 G(uments).18 E .385
-(If the \214rst ar)180 346.8 R .385(gument is)-.18 F F2(!)2.885 E F0
-2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .384
-(tion of the three-ar).05 F .384(gument e)-.18 F .384(xpression com-)
--.15 F 1.647(posed of the remaining ar)180 358.8 R 4.147
-(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
+-.15 E(alse.)-.1 E 2.5(4a)144 334.8 S -.18(rg)-2.5 G(uments).18 E .384
+(If the \214rst ar)180 346.8 R .384(gument is)-.18 F F2(!)2.884 E F0
+2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385
+(tion of the three-ar).05 F .385(gument e)-.18 F .385(xpression com-)
+-.15 F 1.648(posed of the remaining ar)180 358.8 R 4.147
+(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
 (xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
 (according to precedence using the rules listed abo)180 370.8 Q -.15(ve)
 -.15 G(.).15 E 2.5(5o)144 382.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
@@ -7606,52 +7618,53 @@ F .883(the \214rst)3.383 F(ar)180 310.8 Q .874(gument is e)-.18 F
 accumulated user and system times for the shell and for processes run f\
 rom the shell.)13.23 F(The return status is 0.)144 435.6 Q F2(trap)108
 452.4 Q F0([)2.5 E F2(\255lp)A F0 2.5(][)C([)-2.5 E F1(ar)A(g)-.37 E F0
-(])A F1(sigspec)2.5 E F0(...])2.5 E .703(The command)144 464.4 R F1(ar)
-3.533 E(g)-.37 E F0 .703(is to be read and e)3.423 F -.15(xe)-.15 G .702
-(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202(ss).15 G
-(ignal\(s\))-3.202 E F1(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F1
-(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
+(])A F1(sigspec)2.5 E F0(...])2.5 E .702(The command)144 464.4 R F1(ar)
+3.532 E(g)-.37 E F0 .702(is to be read and e)3.422 F -.15(xe)-.15 G .702
+(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G
+(ignal\(s\))-3.203 E F1(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F1
+(ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single)
 144 476.4 R F1(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F2<ad>3.108 E
 F0 3.108(,e)C .608
 (ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 488.4 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .658
+.658(\(the v)144 488.4 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .659
 (is the null string the signal speci\214ed by each)3.378 F F1(sigspec)
-144.34 500.4 Q F0 .58(is ignored by the shell and by the commands it in)
-3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F1(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F2<ad70>3.081 E F0(has)3.081 E 1.215
+144.34 500.4 Q F0 .581
+(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
+-.1(ke).2 G 3.08(s. If).1 F F1(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F2<ad70>3.08 E F0(has)3.08 E 1.214
 (been supplied, then the trap commands associated with each)144 512.4 R
-F1(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
+F1(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
 F(gu-)-.18 E .86(ments are supplied or if only)144 524.4 R F2<ad70>3.36
 E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F2(trap)3.36 E F0 .86
 (prints the list of commands associated with each)3.36 F 2.83
 (signal. The)144 536.4 R F2<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F 4.31
-(bers. Each)144 548.4 R F1(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F1(signal.h)A F0 1.811
-(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E .745
+to print a list of signal names and their corresponding num-)2.83 F
+4.311(bers. Each)144 548.4 R F1(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F1(signal.h)A F0 1.81
+(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E .745
 (names are case insensiti)144 560.4 R 1.045 -.15(ve a)-.25 H .745
 (nd the SIG pre\214x is optional.).15 F .745(If a)5.745 F F1(sigspec)
 3.585 E F0(is)3.555 E F3(EXIT)3.245 E F0 .745(\(0\) the command)2.995 F
-F1(ar)144.33 572.4 Q(g)-.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G 1.629
+F1(ar)144.33 572.4 Q(g)-.37 E F0 1.63(is e)4.35 F -.15(xe)-.15 G 1.63
 (cuted on e).15 F 1.63(xit from the shell.)-.15 F 1.63(If a)6.63 F F1
-(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E F4(,)A F0 1.63
-(the command)3.88 F F1(ar)4.46 E(g)-.37 E F0 1.63(is e)4.35 F -.15(xe)
--.15 G(cuted).15 E 1.207(before e)144 584.4 R -.15(ve)-.25 G(ry).15 E F1
-1.207(simple command)3.707 F F0(,)A F1(for)3.707 E F0(command,)3.706 E
-F1(case)3.706 E F0(command,)3.706 E F1(select)3.706 E F0 1.206
-(command, e)3.706 F -.15(ve)-.25 G 1.206(ry arithmetic).15 F F1(for)144
-596.4 Q F0 .412(command, and before the \214rst command e)2.912 F -.15
-(xe)-.15 G .412(cutes in a shell function \(see).15 F F3 .413
-(SHELL GRAMMAR)2.912 F F0(abo)144 608.4 Q -.15(ve)-.15 G 2.666
-(\). Refer).15 F .166(to the description of the)2.666 F F2(extdeb)2.666
+(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E F4(,)A F0 1.629
+(the command)3.88 F F1(ar)4.459 E(g)-.37 E F0 1.629(is e)4.349 F -.15
+(xe)-.15 G(cuted).15 E 1.206(before e)144 584.4 R -.15(ve)-.25 G(ry).15
+E F1 1.206(simple command)3.706 F F0(,)A F1(for)3.706 E F0(command,)
+3.706 E F1(case)3.706 E F0(command,)3.706 E F1(select)3.707 E F0 1.207
+(command, e)3.707 F -.15(ve)-.25 G 1.207(ry arithmetic).15 F F1(for)144
+596.4 Q F0 .412(command, and before the \214rst command e)2.913 F -.15
+(xe)-.15 G .412(cutes in a shell function \(see).15 F F3 .412
+(SHELL GRAMMAR)2.912 F F0(abo)144 608.4 Q -.15(ve)-.15 G 2.665
+(\). Refer).15 F .166(to the description of the)2.665 F F2(extdeb)2.666
 E(ug)-.2 E F0 .166(option to the)2.666 F F2(shopt)2.666 E F0 -.2(bu)
-2.666 G .166(iltin for details of its ef).2 F(fect)-.25 E .508(on the)
-144 620.4 R F2(DEB)3.008 E(UG)-.1 E F0 3.008(trap. If)3.008 F(a)3.008 E
+2.666 G .166(iltin for details of its ef).2 F(fect)-.25 E .509(on the)
+144 620.4 R F2(DEB)3.009 E(UG)-.1 E F0 3.009(trap. If)3.009 F(a)3.009 E
 F1(sigspec)3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508
-(the command)2.758 F F1(ar)3.338 E(g)-.37 E F0 .509(is e)3.228 F -.15
-(xe)-.15 G .509(cuted whene).15 F -.15(ve)-.25 G 3.009(ras).15 G .509
-(imple com-)-3.009 F 2.506(mand has a non\255zero e)144 632.4 R 2.506
+(the command)2.758 F F1(ar)3.338 E(g)-.37 E F0 .508(is e)3.228 F -.15
+(xe)-.15 G .508(cuted whene).15 F -.15(ve)-.25 G 3.008(ras).15 G .508
+(imple com-)-3.008 F 2.506(mand has a non\255zero e)144 632.4 R 2.506
 (xit status, subject to the follo)-.15 F 2.506(wing conditions.)-.25 F
 (The)7.506 E F3(ERR)5.006 E F0 2.506(trap is not)4.756 F -.15(exe)144
 644.4 S .105(cuted if the f).15 F .105
@@ -7660,18 +7673,18 @@ F1(sigspec)3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508
 (ke)144 656.4 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F1(if)
 3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G
 .549(cuted in a).15 F F2(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
-3.049 E F0 .549(list, or if)3.049 F .577(the command')144 668.4 R 3.077
-(sr)-.55 G .577(eturn v)-3.077 F .577(alue is being in)-.25 F -.15(ve)
--.4 G .577(rted via).15 F F2(!)3.077 E F0 5.578(.T)C .578
-(hese are the same conditions obe)-5.578 F .578(yed by the)-.15 F F2
-(err)144 680.4 Q(exit)-.18 E F0 3.031(option. If)3.031 F(a)3.031 E F1
-(sigspec)3.371 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
+3.049 E F0 .549(list, or if)3.049 F .578(the command')144 668.4 R 3.078
+(sr)-.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)
+-.4 G .578(rted via).15 F F2(!)3.078 E F0 5.577(.T)C .577
+(hese are the same conditions obe)-5.577 F .577(yed by the)-.15 F F2
+(err)144 680.4 Q(exit)-.18 E F0 3.03(option. If)3.03 F(a)3.03 E F1
+(sigspec)3.37 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
 (the command)2.781 F F1(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
-(xe)-.15 G .53(cuted each time a shell function).15 F .316
+(xe)-.15 G .531(cuted each time a shell function).15 F .317
 (or a script e)144 692.4 R -.15(xe)-.15 G .317(cuted with the).15 F F2
 (.)2.817 E F0(or)2.817 E F2(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G
 .317(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
-.317(ignored upon entry to)2.817 F .787
+.316(ignored upon entry to)2.817 F .787
 (the shell cannot be trapped or reset.)144 704.4 R -.35(Tr)5.787 G .787
 (apped signals that are not being ignored are reset to their).35 F 1.1
 (original v)144 716.4 R 1.1
@@ -7687,70 +7700,70 @@ BP
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
 -.35 E/F1 10/Times-Bold@0 SF(type)108 84 Q F0([)2.5 E F1(\255aftpP)A F0
 (])A/F2 10/Times-Italic@0 SF(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5
-E -.4(Wi)144 96 S .174(th no options, indicate ho).4 F 2.674(we)-.25 G
-(ach)-2.674 E F2(name)3.034 E F0 -.1(wo)2.854 G .173
-(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
-F1<ad74>144 108 Q F0 .842(option is used,)3.342 F F1(type)3.342 E F0
+E -.4(Wi)144 96 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G
+(ach)-2.673 E F2(name)3.033 E F0 -.1(wo)2.853 G .174
+(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
+F1<ad74>144 108 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
 .843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
 F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
-(,).24 E F2 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F2
-(\214le)5.253 E F0(if)3.523 E F2(name)144.36 120 Q F0 .087
-(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
-(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2
-(name)2.946 E F0 .086(is not)2.766 F .118
+(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
+(\214le)5.252 E F0(if)3.522 E F2(name)144.36 120 Q F0 .086
+(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
+(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
+(name)2.947 E F0 .087(is not)2.767 F .119
 (found, then nothing is printed, and an e)144 132 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
-F1<ad70>2.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
+F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
 (either returns the name of the disk \214le that w)144 144 R .855
 (ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
-156 R/F3 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
-(uld not return).1 F F2(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F1
-<ad50>3.141 E F0 .641(option forces a)3.141 F/F4 9/Times-Bold@0 SF -.666
-(PA)3.141 G(TH)-.189 E F0 .113(search for each)144 168 R F2(name)2.613 E
-F0 2.613(,e)C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F3 .113
+.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
+144 156 R/F3 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141 G
+.641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E F1
+<ad50>3.14 E F0 .64(option forces a)3.14 F/F4 9/Times-Bold@0 SF -.666
+(PA)3.14 G(TH)-.189 E F0 .112(search for each)144 168 R F2(name)2.612 E
+F0 2.612(,e)C -.15(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F3 .113
 (type -t name)2.613 F F0 -.1(wo)2.613 G .113(uld not return).1 F F2
-(\214le)2.613 E F0 5.113(.I).18 G 2.613(fa)-5.113 G .112
-(command is hashed,)-.001 F F1<ad70>2.612 E F0(and)144 180 Q F1<ad50>
-2.944 E F0 .444(print the hashed v)2.944 F .444
+(\214le)2.613 E F0 5.113(.I).18 G 2.613(fac)-5.113 G .113
+(ommand is hashed,)-2.613 F F1<ad70>2.613 E F0(and)144 180 Q F1<ad50>
+2.945 E F0 .445(print the hashed v)2.945 F .444
 (alue, not necessarily the \214le that appears \214rst in)-.25 F F4
--.666(PA)2.945 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .445(If the)
-4.945 F F1<ad61>2.945 E F0(option)2.945 E .265(is used,)144 192 R F1
+-.666(PA)2.944 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .444(If the)
+4.944 F F1<ad61>2.944 E F0(option)2.944 E .265(is used,)144 192 R F1
 (type)2.765 E F0 .265(prints all of the places that contain an e)2.765 F
 -.15(xe)-.15 G .265(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18
-G .265(his includes aliases)-5.265 F .426
+G .265(his includes aliases)-5.265 F .427
 (and functions, if and only if the)144 204 R F1<ad70>2.926 E F0 .426
-(option is not also used.)2.926 F .427
-(The table of hashed commands is not)5.426 F .549(consulted when using)
-144 216 R F1<ad61>3.049 E F0 5.549(.T)C(he)-5.549 E F1<ad66>3.049 E F0
-.548(option suppresses shell function lookup, as with the)3.049 F F1
-(command)3.048 E F0 -.2(bu)144 228 S(iltin.).2 E F1(type)5 E F0
+(option is not also used.)2.926 F .426
+(The table of hashed commands is not)5.426 F .548(consulted when using)
+144 216 R F1<ad61>3.048 E F0 5.548(.T)C(he)-5.548 E F1<ad66>3.048 E F0
+.549(option suppresses shell function lookup, as with the)3.048 F F1
+(command)3.049 E F0 -.2(bu)144 228 S(iltin.).2 E F1(type)5 E F0
 (returns true if all of the ar)2.5 E(guments are found, f)-.18 E
 (alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 244.8
 Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2
-(limit)A F0(]])A(Pro)144 256.8 Q .243(vides control o)-.15 F -.15(ve)
--.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244
+(limit)A F0(]])A(Pro)144 256.8 Q .244(vides control o)-.15 F -.15(ve)
+-.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244
 (ilable to the shell and to processes started by it, on systems).25 F
-.944(that allo)144 268.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
-(The)5.944 E F1<ad48>3.444 E F0(and)3.444 E F1<ad53>3.444 E F0 .943
+.943(that allo)144 268.8 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
+(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
 (options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 280.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
+144 280.8 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
 (hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.708 F .426(be increased up to the v)144 292.8 R .426
-(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
-F0(nor)2.925 E F1<ad53>2.925 E F0 .425
-(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+ft limit may)2.709 F .425(be increased up to the v)144 292.8 R .425
+(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
+F0(nor)2.926 E F1<ad53>2.926 E F0 .426
+(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
 304.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
 (can be a number in the unit speci\214ed for the resource or one)3.319 F
-.742(of the special v)144 316.8 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
+.741(of the special v)144 316.8 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
 (soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
 C .741(hich stand for the current hard limit, the current)-3.241 F .78
 (soft limit, and no limit, respecti)144 328.8 R -.15(ve)-.25 G(ly).15 E
 5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
 (is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .499(resource is printed, unless the)144 340.8 R F1<ad48>2.999 E F0
-.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
+F .498(resource is printed, unless the)144 340.8 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
 (more than one resource is speci\214ed, the)2.999 F
 (limit name and unit are printed before the v)144 352.8 Q 2.5
 (alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
@@ -7767,8 +7780,8 @@ F0(The maximum size of \214les written by the shell and its children)
 (The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
 (ystems do not honor this limit\))-2.5 E F1<ad6e>144 472.8 Q F0 .791(Th\
 e maximum number of open \214le descriptors \(most systems do not allo)
-24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
-(be set\))180 484.8 Q F1<ad70>144 496.8 Q F0
+24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
+484.8 Q F1<ad70>144 496.8 Q F0
 (The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
 <ad71>144 508.8 Q F0
 (The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144
@@ -7784,15 +7797,15 @@ F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
 F0 .343(is gi)3.523 F -.15(ve)-.25 G .343(n, it is the ne).15 F 2.843
 (wv)-.25 G .343(alue of the speci\214ed resource \(the)-3.093 F F1<ad61>
 2.843 E F0 .343(option is display only\).)2.843 F .343(If no)5.343 F
-.175(option is gi)144 621.6 R -.15(ve)-.25 G .175(n, then).15 F F1<ad66>
-2.675 E F0 .175(is assumed.)2.675 F -1.11(Va)5.175 G .175
-(lues are in 1024-byte increments, e)1.11 F .176(xcept for)-.15 F F1
-<ad74>2.676 E F0 2.676(,w)C .176(hich is in)-2.676 F(seconds,)144 633.6
-Q F1<ad70>2.516 E F0 2.516(,w)C .016
-(hich is in units of 512-byte blocks, and)-2.516 F F1<ad54>2.516 E F0(,)
-A F1<ad62>2.515 E F0(,)A F1<ad6e>2.515 E F0 2.515(,a)C(nd)-2.515 E F1
-<ad75>2.515 E F0 2.515(,w)C .015(hich are unscaled v)-2.515 F(al-)-.25 E
-3.787(ues. The)144 645.6 R 1.287(return status is 0 unless an in)3.787 F
+.176(option is gi)144 621.6 R -.15(ve)-.25 G .176(n, then).15 F F1<ad66>
+2.676 E F0 .175(is assumed.)2.676 F -1.11(Va)5.175 G .175
+(lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F1
+<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 633.6
+Q F1<ad70>2.515 E F0 2.515(,w)C .015
+(hich is in units of 512-byte blocks, and)-2.515 F F1<ad54>2.516 E F0(,)
+A F1<ad62>2.516 E F0(,)A F1<ad6e>2.516 E F0 2.516(,a)C(nd)-2.516 E F1
+<ad75>2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E
+3.788(ues. The)144 645.6 R 1.287(return status is 0 unless an in)3.787 F
 -.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
 (gument is supplied, or an error occurs)-.18 F(while setting a ne)144
 657.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 674.4 Q F0([)2.5 E F1
@@ -7802,7 +7815,7 @@ A F1<ad62>2.515 E F0(,)A F1<ad6e>2.515 E F0 2.515(,a)C(nd)-2.515 E F1
 (gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
 therwise it is interpreted as a symbolic mode mask similar to that acce\
 pted by)144 698.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-710.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+710.4 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
 (alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
 (option causes the mask to be)2.882 F .547
 (printed in symbolic form; the def)144 722.4 R .547
@@ -7814,9 +7827,9 @@ pted by)144 698.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Italic@0 SF(mode)144.38 84 Q F0 .552
-(is omitted, the output is in a form that may be reused as input.)3.232
-F .551(The return status is 0 if the)5.551 F(mode w)144 96 Q
+-.35 E/F1 10/Times-Italic@0 SF(mode)144.38 84 Q F0 .551
+(is omitted, the output is in a form that may be reused as input.)3.231
+F .552(The return status is 0 if the)5.552 F(mode w)144 96 Q
 (as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E
 (gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E/F2 10
 /Times-Bold@0 SF(unalias)108 112.8 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1
@@ -7827,50 +7840,50 @@ F(If)6.655 E F2<ad61>4.155 E F0 1.655
 (ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
 (alue is true unless a supplied)-.25 E F1(name)2.86 E F0
 (is not a de\214ned alias.)2.68 E F2(unset)108 153.6 Q F0<5bad>2.5 E F2
-(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 165.6 S 3.107
-(re).15 G(ach)-3.107 E F1(name)3.107 E F0 3.107(,r).18 G(emo)-3.107 E
-.907 -.15(ve t)-.15 H .607(he corresponding v).15 F .607
-(ariable or function.)-.25 F .606(If no options are supplied, or the)
-5.607 F F2<ad76>144 177.6 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
-.304(n, each).15 F F1(name)3.164 E F0 .305(refers to a shell v)2.985 F
-2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .305
-(riables may not be unset.).25 F(If)5.305 E F2<ad66>144 189.6 Q F0 .46
-(is speci\214ed, each)2.96 F F1(name)3.32 E F0 .459
-(refers to a shell function, and the function de\214nition is remo)3.14
-F -.15(ve)-.15 G 2.959(d. Each).15 F .902(unset v)144 201.6 R .902
+(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 165.6 S 3.106
+(re).15 G(ach)-3.106 E F1(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
+.906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607
+(ariable or function.)-.25 F .607(If no options are supplied, or the)
+5.607 F F2<ad76>144 177.6 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
+.305(n, each).15 F F1(name)3.165 E F0 .305(refers to a shell v)2.985 F
+2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304
+(riables may not be unset.).25 F(If)5.304 E F2<ad66>144 189.6 Q F0 .459
+(is speci\214ed, each)2.959 F F1(name)3.319 E F0 .459
+(refers to a shell function, and the function de\214nition is remo)3.139
+F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 201.6 R .903
 (ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
-(rom the en)-3.402 F .903(vironment passed to subsequent commands.)-.4 F
-(If)5.903 E(an)144 213.6 Q 4.285(yo)-.15 G(f)-4.285 E/F3 9/Times-Bold@0
-SF(RANDOM)4.285 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
+(rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F
+(If)5.902 E(an)144 213.6 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0
+SF(RANDOM)4.284 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
 (LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME)
 -.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST)
-4.284 E -.495(AC)-.81 G(K).495 E F0(are)4.034 E .328(unset, the)144
-225.6 R 2.828(yl)-.15 G .328(ose their special properties, e)-2.828 F
+4.285 E -.495(AC)-.81 G(K).495 E F0(are)4.035 E .329(unset, the)144
+225.6 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
 -.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya)
--.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .329
+-.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .328
 (xit status is true)-.15 F(unless a)144 237.6 Q F1(name)2.86 E F0
 (is readonly)2.68 E(.)-.65 E F2(wait)108 254.4 Q F0([)2.5 E F1 2.5(n.)C
 (..)-2.5 E F0(])A -.8(Wa)144 266.4 S .288
 (it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F1(n)3.148 E F0 .287(may be a process ID or a)3.028 F .722
+(Each)5.288 E F1(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
 (job speci\214cation; if a job spec is gi)144 278.4 R -.15(ve)-.25 G
 .722(n, all processes in that job').15 F 3.222(sp)-.55 G .722
 (ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E
-F1(n)3.583 E F0(is)3.463 E 1.266(not gi)144 290.4 R -.15(ve)-.25 G 1.266
-(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265
-(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265
-(nd the return status is zero.)-3.765 F(If)6.265 E F1(n)4.125 E F0 .456
+F1(n)3.582 E F0(is)3.462 E 1.265(not gi)144 290.4 R -.15(ve)-.25 G 1.265
+(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
+(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
+(nd the return status is zero.)-3.765 F(If)6.266 E F1(n)4.126 E F0 .457
 (speci\214es a non-e)144 302.4 R .457
 (xistent process or job, the return status is 127.)-.15 F .457
 (Otherwise, the return status is the)5.457 F -.15(ex)144 314.4 S
 (it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
 /F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 331.2 Q F0(If)108 343.2 Q
-F2(bash)4.397 E F0 1.897(is started with the name)4.397 F F2(rbash)4.397
-E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2<ad72>4.397 E F0 1.896
-(option is supplied at in)4.397 F -.2(vo)-.4 G 1.896
-(cation, the shell becomes).2 F 3.445(restricted. A)108 355.2 R .945
-(restricted shell is used to set up an en)3.445 F .946
-(vironment more controlled than the standard shell.)-.4 F(It)5.946 E
+F2(bash)4.396 E F0 1.896(is started with the name)4.396 F F2(rbash)4.397
+E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2<ad72>4.397 E F0 1.897
+(option is supplied at in)4.397 F -.2(vo)-.4 G 1.897
+(cation, the shell becomes).2 F 3.446(restricted. A)108 355.2 R .945
+(restricted shell is used to set up an en)3.446 F .945
+(vironment more controlled than the standard shell.)-.4 F(It)5.945 E
 (beha)108 367.2 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2
 (bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
 (wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 384
@@ -7884,7 +7897,7 @@ F2 -.74(PA)2.5 G(TH)-.21 E F0(,)A F2(ENV)2.5 E F0 2.5(,o)C(r)-2.5 E F2
 (iltin command).2 E 32.5<8353>108 451.2 S .351
 (pecifying a \214lename containing a slash as an ar)-32.5 F .351
 (gument to the)-.18 F F2<ad70>2.851 E F0 .351(option to the)2.851 F F2
-(hash)2.851 E F0 -.2(bu)2.851 G .351(iltin com-).2 F(mand)144 463.2 Q
+(hash)2.852 E F0 -.2(bu)2.852 G .352(iltin com-).2 F(mand)144 463.2 Q
 32.5<8369>108 480 S(mporting function de\214nitions from the shell en)
 -32.5 E(vironment at startup)-.4 E 32.5<8370>108 496.8 S(arsing the v)
 -32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
@@ -7904,8 +7917,8 @@ S(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F2(set +r)
 (These restrictions are enforced after an)108 614.4 Q 2.5(ys)-.15 G
 (tartup \214les are read.)-2.5 E 1.566
 (When a command that is found to be a shell script is e)108 631.2 R -.15
-(xe)-.15 G 1.567(cuted \(see).15 F F3 1.567(COMMAND EXECUTION)4.067 F F0
-(abo)3.817 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 643.2 Q F0(turns of)
+(xe)-.15 G 1.566(cuted \(see).15 F F3 1.566(COMMAND EXECUTION)4.066 F F0
+(abo)3.816 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 643.2 Q F0(turns of)
 2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15
 E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F5(SEE ALSO)72
 660 Q F1(Bash Refer)108 672 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5
@@ -7941,20 +7954,20 @@ E F0(The personal initialization \214le, e)144 208.8 Q -.15(xe)-.15 G
 (oundation)-.15 E(bfox@gnu.or)108 321.6 Q(g)-.18 E(Chet Rame)108 338.4 Q
 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)
 -2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108 350.4 Q(y@case.edu)-.15
-E F2 -.11(BU)72 367.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .568
+E F2 -.11(BU)72 367.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567
 (If you \214nd a b)108 379.2 R .568(ug in)-.2 F F3(bash,)3.068 E F0 .568
 (you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F
-3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .567(ug, and)-.2
-F 5.625(that it appears in the latest v)108 391.2 R 5.625(ersion of)-.15
-F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.626
-(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626
+3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .568(ug, and)-.2
+F 5.626(that it appears in the latest v)108 391.2 R 5.625(ersion of)-.15
+F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625
+(ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625
 (ilable from).25 F F1(ftp://ftp.gnu.or)108 403.2 Q(g/pub/bash/)-.37 E F0
-(.)A .411(Once you ha)108 420 R .711 -.15(ve d)-.2 H .411
-(etermined that a b).15 F .411(ug actually e)-.2 F .411(xists, use the)
--.15 F F1(bashb)3.18 E(ug)-.2 E F0 .41(command to submit a b)3.13 F .41
-(ug report.)-.2 F(If)5.41 E .594(you ha)108 432 R .894 -.15(ve a \214)
--.2 H .595(x, you are encouraged to mail that as well!).15 F .595
-(Suggestions and `philosophical' b)5.595 F .595(ug reports may)-.2 F
+(.)A .41(Once you ha)108 420 R .71 -.15(ve d)-.2 H .41
+(etermined that a b).15 F .41(ug actually e)-.2 F .411(xists, use the)
+-.15 F F1(bashb)3.181 E(ug)-.2 E F0 .411(command to submit a b)3.131 F
+.411(ug report.)-.2 F(If)5.411 E .595(you ha)108 432 R .895 -.15
+(ve a \214)-.2 H .595(x, you are encouraged to mail that as well!).15 F
+.594(Suggestions and `philosophical' b)5.595 F .594(ug reports may)-.2 F
 (be mailed to)108 444 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
 (or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3(gnu.bash.b)2.5 E(ug)
 -.2 E F0(.)A(ALL b)108 460.8 Q(ug reports should include:)-.2 E(The v)
@@ -7968,23 +7981,23 @@ G(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 542.4 Q(ug)-.2 E F0
 559.2 Q(ug reports concerning this manual page should be directed to)-.2
 E F1 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E F2 -.11(BU)72 576 S
 (GS).11 E F0(It')108 588 Q 2.5(st)-.55 G(oo big and too slo)-2.5 E -.65
-(w.)-.25 G 1.869(There are some subtle dif)108 604.8 R 1.869
+(w.)-.25 G 1.868(There are some subtle dif)108 604.8 R 1.868
 (ferences between)-.25 F F3(bash)4.369 E F0 1.869(and traditional v)
-4.369 F 1.869(ersions of)-.15 F F3(sh)4.368 E F0 4.368(,m)C 1.868
-(ostly because of the)-4.368 F/F4 9/Times-Bold@0 SF(POSIX)108 616.8 Q F0
+4.369 F 1.869(ersions of)-.15 F F3(sh)4.369 E F0 4.369(,m)C 1.869
+(ostly because of the)-4.369 F/F4 9/Times-Bold@0 SF(POSIX)108 616.8 Q F0
 (speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 633.6 Q
 (Shell b)108 650.4 Q
 (uiltin commands and functions are not stoppable/restartable.)-.2 E
 1.315(Compound commands and command sequences of the form `a ; b ; c' a\
-re not handled gracefully when)108 667.2 R .39
+re not handled gracefully when)108 667.2 R .389
 (process suspension is attempted.)108 679.2 R .389
-(When a process is stopped, the shell immediately e)5.39 F -.15(xe)-.15
-G .389(cutes the ne).15 F .389(xt com-)-.15 F .192
-(mand in the sequence.)108 691.2 R .192(It suf)5.192 F .192(\214ces to \
-place the sequence of commands between parentheses to force it into a)
--.25 F(subshell, which may be stopped as a unit.)108 703.2 Q(Array v)108
-720 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash-4.0)
-72 768 Q(2009 February 7)140.96 E(68)190.95 E 0 Cg EP
+(When a process is stopped, the shell immediately e)5.389 F -.15(xe)-.15
+G .39(cutes the ne).15 F .39(xt com-)-.15 F .193(mand in the sequence.)
+108 691.2 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\
+ommands between parentheses to force it into a)-.25 F
+(subshell, which may be stopped as a unit.)108 703.2 Q(Array v)108 720 Q
+(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash-4.0)72
+768 Q(2009 February 7)140.96 E(68)190.95 E 0 Cg EP
 %%Page: 69 69
 %%BeginPageSetup
 BP
index 398936e262f70a9267efde9e9caee0e85349a63b..2648c6296bdf8d6655a3f0d7bdfaefdd70dae672 100644 (file)
 @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}
index c290999ee8e65cf5d4ea8ecaea6a49d5a812381e..6f948903eb792ab9d2d1181cbca2f54933886e4b 100644 (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}}
index ec9201b08d7da956c5081a9d661d3b67dd3160f2..455fa10165ef2a8c459503c73049af4a0a1f2b4b 100644 (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}
index 2891246f77db70d4ff3997701ebf5200095a2d06..f4f8808a6fa2c7132517d6aa5692c83202ca3145 100644 (file)
Binary files a/doc/bashref.dvi and b/doc/bashref.dvi differ
index 630de5c44a65f1cc0fdf4e831fe207629ffe9ad8..48460af2525bd7510ca8176a9af44f39fe1954d0 100644 (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>
 
index 44e8d9b5d3d6dd5de2bf60e935e45abe7953007c..941dddd0a9659e0af19b39b6e1302ffd44145811 100644 (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.
 
 \1f
 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>.
 
 \1f
 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 Expansion\7f70602
 Node: Pattern Matching\7f72742
 Node: Quote Removal\7f76381
 Node: Redirections\7f76676
-Node: Executing Commands\7f84819
-Node: Simple Command Expansion\7f85489
-Node: Command Search and Execution\7f87419
-Node: Command Execution Environment\7f89756
-Node: Environment\7f92742
-Node: Exit Status\7f94402
-Node: Signals\7f96023
-Node: Shell Scripts\7f97991
-Node: Shell Builtin Commands\7f100509
-Node: Bourne Shell Builtins\7f102186
-Node: Bash Builtins\7f119504
-Node: Modifying Shell Behavior\7f143695
-Node: The Set Builtin\7f144040
-Node: The Shopt Builtin\7f153080
-Node: Special Builtins\7f163942
-Node: Shell Variables\7f164921
-Node: Bourne Shell Variables\7f165361
-Node: Bash Variables\7f167342
-Node: Bash Features\7f189660
-Node: Invoking Bash\7f190543
-Node: Bash Startup Files\7f196352
-Node: Interactive Shells\7f201321
-Node: What is an Interactive Shell?\7f201731
-Node: Is this Shell Interactive?\7f202380
-Node: Interactive Shell Behavior\7f203195
-Node: Bash Conditional Expressions\7f206475
-Node: Shell Arithmetic\7f210054
-Node: Aliases\7f212800
-Node: Arrays\7f215372
-Node: The Directory Stack\7f219214
-Node: Directory Stack Builtins\7f219928
-Node: Printing a Prompt\7f222820
-Node: The Restricted Shell\7f225572
-Node: Bash POSIX Mode\7f227404
-Node: Job Control\7f235257
-Node: Job Control Basics\7f235717
-Node: Job Control Builtins\7f240330
-Node: Job Control Variables\7f244694
-Node: Command Line Editing\7f245852
-Node: Introduction and Notation\7f247419
-Node: Readline Interaction\7f249041
-Node: Readline Bare Essentials\7f250232
-Node: Readline Movement Commands\7f252021
-Node: Readline Killing Commands\7f252986
-Node: Readline Arguments\7f254906
-Node: Searching\7f255950
-Node: Readline Init File\7f258136
-Node: Readline Init File Syntax\7f259283
-Node: Conditional Init Constructs\7f272517
-Node: Sample Init File\7f275050
-Node: Bindable Readline Commands\7f278167
-Node: Commands For Moving\7f279374
-Node: Commands For History\7f280518
-Node: Commands For Text\7f283673
-Node: Commands For Killing\7f286346
-Node: Numeric Arguments\7f288797
-Node: Commands For Completion\7f289936
-Node: Keyboard Macros\7f293703
-Node: Miscellaneous Commands\7f294274
-Node: Readline vi Mode\7f299585
-Node: Programmable Completion\7f300499
-Node: Programmable Completion Builtins\7f306332
-Node: Using History Interactively\7f314758
-Node: Bash History Facilities\7f315442
-Node: Bash History Builtins\7f318356
-Node: History Interaction\7f322213
-Node: Event Designators\7f324918
-Node: Word Designators\7f325933
-Node: Modifiers\7f327572
-Node: Installing Bash\7f328976
-Node: Basic Installation\7f330113
-Node: Compilers and Options\7f332805
-Node: Compiling For Multiple Architectures\7f333546
-Node: Installation Names\7f335210
-Node: Specifying the System Type\7f336028
-Node: Sharing Defaults\7f336744
-Node: Operation Controls\7f337417
-Node: Optional Features\7f338375
-Node: Reporting Bugs\7f347777
-Node: Major Differences From The Bourne Shell\7f348971
-Node: GNU Free Documentation License\7f365658
-Node: Indexes\7f388119
-Node: Builtin Index\7f388573
-Node: Reserved Word Index\7f395400
-Node: Variable Index\7f397848
-Node: Function Index\7f409654
-Node: Concept Index\7f416386
+Node: Executing Commands\7f84824
+Node: Simple Command Expansion\7f85494
+Node: Command Search and Execution\7f87424
+Node: Command Execution Environment\7f89761
+Node: Environment\7f92747
+Node: Exit Status\7f94407
+Node: Signals\7f96028
+Node: Shell Scripts\7f97996
+Node: Shell Builtin Commands\7f100514
+Node: Bourne Shell Builtins\7f102542
+Node: Bash Builtins\7f119883
+Node: Modifying Shell Behavior\7f144182
+Node: The Set Builtin\7f144527
+Node: The Shopt Builtin\7f153971
+Node: Special Builtins\7f164833
+Node: Shell Variables\7f165812
+Node: Bourne Shell Variables\7f166252
+Node: Bash Variables\7f168233
+Node: Bash Features\7f190572
+Node: Invoking Bash\7f191455
+Node: Bash Startup Files\7f197264
+Node: Interactive Shells\7f202233
+Node: What is an Interactive Shell?\7f202643
+Node: Is this Shell Interactive?\7f203292
+Node: Interactive Shell Behavior\7f204107
+Node: Bash Conditional Expressions\7f207387
+Node: Shell Arithmetic\7f210966
+Node: Aliases\7f213712
+Node: Arrays\7f216284
+Node: The Directory Stack\7f220126
+Node: Directory Stack Builtins\7f220840
+Node: Printing a Prompt\7f223732
+Node: The Restricted Shell\7f226484
+Node: Bash POSIX Mode\7f228316
+Node: Job Control\7f236169
+Node: Job Control Basics\7f236629
+Node: Job Control Builtins\7f241242
+Node: Job Control Variables\7f245606
+Node: Command Line Editing\7f246764
+Node: Introduction and Notation\7f248331
+Node: Readline Interaction\7f249953
+Node: Readline Bare Essentials\7f251144
+Node: Readline Movement Commands\7f252933
+Node: Readline Killing Commands\7f253898
+Node: Readline Arguments\7f255818
+Node: Searching\7f256862
+Node: Readline Init File\7f259048
+Node: Readline Init File Syntax\7f260195
+Node: Conditional Init Constructs\7f273429
+Node: Sample Init File\7f275962
+Node: Bindable Readline Commands\7f279079
+Node: Commands For Moving\7f280286
+Node: Commands For History\7f281430
+Node: Commands For Text\7f284585
+Node: Commands For Killing\7f287258
+Node: Numeric Arguments\7f289709
+Node: Commands For Completion\7f290848
+Node: Keyboard Macros\7f294615
+Node: Miscellaneous Commands\7f295186
+Node: Readline vi Mode\7f300497
+Node: Programmable Completion\7f301411
+Node: Programmable Completion Builtins\7f307244
+Node: Using History Interactively\7f315670
+Node: Bash History Facilities\7f316354
+Node: Bash History Builtins\7f319268
+Node: History Interaction\7f323125
+Node: Event Designators\7f325830
+Node: Word Designators\7f326845
+Node: Modifiers\7f328484
+Node: Installing Bash\7f329888
+Node: Basic Installation\7f331025
+Node: Compilers and Options\7f333717
+Node: Compiling For Multiple Architectures\7f334458
+Node: Installation Names\7f336122
+Node: Specifying the System Type\7f336940
+Node: Sharing Defaults\7f337656
+Node: Operation Controls\7f338329
+Node: Optional Features\7f339287
+Node: Reporting Bugs\7f348689
+Node: Major Differences From The Bourne Shell\7f349886
+Node: GNU Free Documentation License\7f366573
+Node: Indexes\7f389034
+Node: Builtin Index\7f389488
+Node: Reserved Word Index\7f396315
+Node: Variable Index\7f398763
+Node: Function Index\7f410569
+Node: Concept Index\7f417301
 \1f
 End Tag Table
index 2d50c9fff89fe7d72b493ca7dbe19da6950d23ec..cc17914d64c4cd6727e4e282ccc332b2fd7fa71b 100644 (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).
index fba11043459d6d5ffa85e83052bcd8073cc1c530..b89d027caebb0471157d5048ff1d9ec8abd1b717 100644 (file)
@@ -11,7 +11,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2009.02.05:0805
+%DVIPSSource:  TeX output 2009.02.23:1156
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -4537,19 +4537,19 @@ letter
 TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5
 b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31
 b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.0,)g(for)f
-Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.0.)3145 1697 y(Decem)m(b)s(er)g(2008)
-150 4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
-b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
-y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
-b(oundation)p 150 5141 3600 17 v eop end
+Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.0.)3180 1697 y(F)-8
+b(ebruary)30 b(2009)150 4935 y Fr(Chet)45 b(Ramey)-11
+b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
+5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
+-11 b(oundation)p 150 5141 3600 17 v eop end
 %%Page: 2 2
 TeXDict begin 2 1 bop 150 2889 a Ft(This)35 b(text)h(is)g(a)g(brief)f
 (description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.0,)c(29)f(Decem)m(b)s
-(er)g(2008\).)150 3133 y(This)f(is)g(Edition)h(4.0,)h(last)g(up)s
-(dated)d(29)i(Decem)m(b)s(er)h(2008,)h(of)d Fq(The)g(GNU)i(Bash)e
-(Reference)i(Man)m(ual)p Ft(,)150 3243 y(for)e Fs(Bash)p
-Ft(,)g(V)-8 b(ersion)31 b(4.0.)150 3377 y(Cop)m(yrigh)m(t)602
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.0,)c(13)f(F)-8
+b(ebruary)30 b(2009\).)150 3133 y(This)g(is)h(Edition)g(4.0,)h(last)g
+(up)s(dated)e(13)h(F)-8 b(ebruary)31 b(2009,)i(of)e Fq(The)g(GNU)g
+(Bash)g(Reference)h(Man)m(ual)p Ft(,)150 3243 y(for)e
+Fs(Bash)p Ft(,)g(V)-8 b(ersion)31 b(4.0.)150 3377 y(Cop)m(yrigh)m(t)602
 3374 y(c)577 3377 y Fp(\015)f Ft(1988{2009)35 b(F)-8
 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150
 3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
@@ -4769,7 +4769,7 @@ b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
 b Ft(54)449 3093 y(4.4)92 b(Sp)s(ecial)31 b(Builtins)22
 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)52 b Ft(58)150 3335 y Fr(5)135
+g(.)g(.)g(.)g(.)g(.)g(.)52 b Ft(59)150 3335 y Fr(5)135
 b(Shell)45 b(V)-11 b(ariables)10 b Fn(.)21 b(.)e(.)h(.)f(.)g(.)h(.)f(.)
 h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
 (.)h(.)f(.)55 b Fr(61)449 3472 y Ft(5.1)92 b(Bourne)30
@@ -5362,7 +5362,7 @@ Fs(TEXTDOMAIN)p Ft(.mo.)150 4415 y Fk(3.1.3)63 b(Commen)m(ts)275
 (teractiv)m(e)k(shell)d(in)f(whic)m(h)h(the)f Fs(interactive_comments)
 150 4792 y Ft(option)41 b(to)h(the)f Fs(shopt)e Ft(builtin)i(is)g
 (enabled)g(\(see)g(Section)h(4.3.2)h([The)d(Shopt)g(Builtin],)45
-b(page)c(54\),)150 4902 y(a)d(w)m(ord)f(b)s(eginning)g(with)h(`)p
+b(page)c(55\),)150 4902 y(a)d(w)m(ord)f(b)s(eginning)g(with)h(`)p
 Fs(#)p Ft(')g(causes)g(that)g(w)m(ord)g(and)f(all)h(remaining)g(c)m
 (haracters)h(on)f(that)g(line)g(to)150 5011 y(b)s(e)33
 b(ignored.)52 b(An)33 b(in)m(teractiv)m(e)k(shell)d(without)g(the)h
@@ -5622,7 +5622,7 @@ Ft(corresp)s(onding)20 b(to)i(the)g(\014rst)f Fq(pattern)630
 1924 y Ft(that)42 b(matc)m(hes)g Fq(w)m(ord)p Ft(.)73
 b(If)41 b(the)g(shell)g(option)h Fs(nocasematch)c Ft(\(see)k(the)g
 (description)f(of)630 2034 y Fs(shopt)34 b Ft(in)h(Section)h(4.3.2)h
-([The)e(Shopt)f(Builtin],)k(page)e(54\))g(is)g(enabled,)g(the)g(matc)m
+([The)e(Shopt)f(Builtin],)k(page)e(55\))g(is)g(enabled,)g(the)g(matc)m
 (h)g(is)630 2144 y(p)s(erformed)29 b(without)i(regard)g(to)g(the)g
 (case)h(of)f(alphab)s(etic)g(c)m(haracters.)44 b(The)30
 b(`)p Fs(|)p Ft(')h(is)g(used)630 2253 y(to)e(separate)g(m)m(ultiple)g
@@ -5742,7 +5742,7 @@ g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
 59 b(If)36 b(the)g(shell)g(option)h Fs(nocasematch)630
 5340 y Ft(\(see)42 b(the)f(description)g(of)h Fs(shopt)d
 Ft(in)i(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)45
-b(page)d(54\))p eop end
+b(page)d(55\))p eop end
 %%Page: 13 19
 TeXDict begin 13 18 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)630 299
@@ -5767,7 +5767,7 @@ b(is)g(0)g(if)f(the)h(string)g(matc)m(hes)g(the)g(pattern,)g(and)f(1)h
 (return)630 1305 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39
 b(the)h(shell)f(option)h Fs(nocasematch)d Ft(\(see)j(the)g(description)
 g(of)f Fs(shopt)f Ft(in)630 1415 y(Section)32 b(4.3.2)g([The)f(Shopt)f
-(Builtin],)i(page)g(54\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s
+(Builtin],)i(page)g(55\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s
 (erformed)630 1524 y(without)36 b(regard)g(to)h(the)f(case)h(of)f
 (alphab)s(etic)h(c)m(haracters.)59 b(An)m(y)36 b(part)g(of)h(the)f
 (pattern)630 1634 y(ma)m(y)g(b)s(e)g(quoted)g(to)g(force)g(it)h(to)f(b)
@@ -6748,7 +6748,7 @@ Fs(dotglob)150 4635 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g
 b(other)g(cases,)i(the)e(`)p Fs(.)p Ft(')h(c)m(haracter)h(is)e(not)h
 (treated)g(sp)s(ecially)-8 b(.)275 4878 y(See)28 b(the)g(description)g
 (of)g Fs(shopt)e Ft(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i
-(page)g(54,)g(for)f(a)g(descrip-)150 4987 y(tion)j(of)f(the)h
+(page)g(55,)g(for)f(a)g(descrip-)150 4987 y(tion)j(of)f(the)h
 Fs(nocaseglob)p Ft(,)d Fs(nullglob)p Ft(,)g Fs(failglob)p
 Ft(,)h(and)g Fs(dotglob)g Ft(options.)275 5121 y(The)j
 Fs(GLOBIGNORE)f Ft(shell)i(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(used)f
@@ -6910,11 +6910,12 @@ e(expansion,)i(command)150 4330 y(substitution,)31 b(arithmetic)h
 y Ft(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f
 (1\))i(and)e(standard)f(error)i(\(\014le)g(descriptor)f(2\))h(to)h(the)
 150 4958 y(\014le)h Fq(dirlist)p Ft(,)h(while)f(the)h(command)390
-5094 y Fs(ls)47 b(2>&1)g(>)g Fj(dirlist)150 5230 y Ft(directs)34
-b(only)g(the)f(standard)g(output)g(to)h(\014le)g Fq(dirlist)p
-Ft(,)h(b)s(ecause)e(the)h(standard)f(error)g(w)m(as)h(duplicated)150
-5340 y(as)d(standard)e(output)h(b)s(efore)g(the)h(standard)e(output)h
-(w)m(as)h(redirected)g(to)g Fq(dirlist)p Ft(.)p eop end
+5094 y Fs(ls)47 b(2>&1)g(>)g Fj(dirlist)150 5230 y Ft(directs)28
+b(only)f(the)h(standard)e(output)i(to)g(\014le)f Fq(dirlist)p
+Ft(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)h(made)f(a)h(cop)m
+(y)150 5340 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g
+(standard)g(output)g(w)m(as)g(redirected)h(to)g Fq(dirlist)p
+Ft(.)p eop end
 %%Page: 27 33
 TeXDict begin 27 32 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)275 299
@@ -7223,7 +7224,7 @@ b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m(y)f(default)g(or)
 g(with)g(command-line)g(argumen)m(ts\))h(or)330 4439
 y(b)m(y)c Fs(set)225 4575 y Fp(\017)60 b Ft(options)31
 b(enabled)f(b)m(y)g Fs(shopt)f Ft(\(see)j(Section)f(4.3.2)h([The)e
-(Shopt)g(Builtin],)h(page)g(54\))225 4711 y Fp(\017)60
+(Shopt)g(Builtin],)h(page)g(55\))225 4711 y Fp(\017)60
 b Ft(shell)31 b(aliases)g(de\014ned)f(with)g Fs(alias)f
 Ft(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(79\))225
 4847 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f
@@ -7400,7 +7401,7 @@ Ft(builtin)h(\(see)150 4751 y(Section)f(7.2)g([Job)f(Con)m(trol)h
 Fs(SIGHUP)d Ft(using)h Fs(disown)150 4860 y(-h)p Ft(.)275
 4991 y(If)38 b(the)h Fs(huponexit)e Ft(shell)i(option)g(has)g(b)s(een)f
 (set)i(with)f Fs(shopt)e Ft(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150
-5100 y(Builtin],)31 b(page)g(54\),)h(Bash)f(sends)e(a)i
+5100 y(Builtin],)31 b(page)g(55\),)h(Bash)f(sends)e(a)i
 Fs(SIGHUP)e Ft(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login)
 e(shell)g(exits.)275 5230 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
 (command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h(for)e(whic)
@@ -7482,1694 +7483,1713 @@ eop end
 %%Page: 35 41
 TeXDict begin 35 40 bop 150 -116 a Ft(Chapter)30 b(4:)41
 b(Shell)30 b(Builtin)h(Commands)2069 b(35)150 299 y Fo(4)80
-b(Shell)53 b(Builtin)f(Commands)275 535 y Ft(Builtin)25
+b(Shell)53 b(Builtin)f(Commands)275 545 y Ft(Builtin)25
 b(commands)f(are)h(con)m(tained)h(within)e(the)h(shell)g(itself.)40
 b(When)24 b(the)h(name)g(of)g(a)g(builtin)f(com-)150
-645 y(mand)i(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f
+655 y(mand)i(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f
 (simple)h(command)f(\(see)h(Section)g(3.2.1)h([Simple)f(Commands],)150
-754 y(page)21 b(8\),)j(the)d(shell)g(executes)h(the)f(command)f
+764 y(page)21 b(8\),)j(the)d(shell)g(executes)h(the)f(command)f
 (directly)-8 b(,)24 b(without)d(in)m(v)m(oking)h(another)f(program.)37
-b(Builtin)150 864 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
+b(Builtin)150 874 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
 (functionalit)m(y)h(imp)s(ossible)e(or)h(incon)m(v)m(enien)m(t)h(to)f
-(obtain)150 974 y(with)30 b(separate)h(utilities.)275
-1109 y(This)c(section)j(brie\015y)e(describ)s(es)g(the)h(builtins)f
+(obtain)150 984 y(with)30 b(separate)h(utilities.)275
+1122 y(This)c(section)j(brie\015y)e(describ)s(es)g(the)h(builtins)f
 (whic)m(h)g(Bash)h(inherits)f(from)g(the)h(Bourne)g(Shell,)g(as)150
-1218 y(w)m(ell)i(as)g(the)g(builtin)e(commands)h(whic)m(h)h(are)f
+1232 y(w)m(ell)i(as)g(the)g(builtin)e(commands)h(whic)m(h)h(are)f
 (unique)g(to)h(or)f(ha)m(v)m(e)i(b)s(een)d(extended)i(in)f(Bash.)275
-1354 y(Sev)m(eral)45 b(builtin)e(commands)h(are)h(describ)s(ed)e(in)h
+1370 y(Sev)m(eral)45 b(builtin)e(commands)h(are)h(describ)s(ed)e(in)h
 (other)g(c)m(hapters:)69 b(builtin)43 b(commands)h(whic)m(h)150
-1463 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
+1480 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
 (con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h
-(Builtins],)150 1573 y(page)40 b(90\),)j(the)c(directory)h(stac)m(k)g
+(Builtins],)150 1590 y(page)40 b(90\),)j(the)c(directory)h(stac)m(k)g
 (\(see)g(Section)g(6.8.1)h([Directory)g(Stac)m(k)f(Builtins],)i(page)e
-(82\),)j(the)150 1682 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
+(82\),)j(the)150 1699 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
 ([Bash)f(History)g(Builtins],)h(page)g(121\),)h(and)d(the)h
-(programmable)150 1792 y(completion)32 b(facilities)g(\(see)g(Section)f
+(programmable)150 1809 y(completion)32 b(facilities)g(\(see)g(Section)f
 (8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(116\).)275
-1927 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
-g(b)m(y)g Fl(posix)g Ft(or)g(Bash.)275 2062 y(Unless)20
-b(otherwise)h(noted,)h(eac)m(h)g(builtin)e(command)g(do)s(cumen)m(ted)g
-(as)h(accepting)h(options)e(preceded)150 2172 y(b)m(y)31
-b(`)p Fs(-)p Ft(')g(accepts)i(`)p Fs(--)p Ft(')e(to)h(signify)f(the)h
-(end)e(of)i(the)f(options.)44 b(F)-8 b(or)32 b(example,)g(the)f
-Fs(:)p Ft(,)h Fs(true)p Ft(,)e Fs(false)p Ft(,)h(and)150
-2282 y Fs(test)e Ft(builtins)h(do)g(not)h(accept)h(options.)150
-2541 y Fr(4.1)68 b(Bourne)45 b(Shell)g(Builtins)275 2786
-y Ft(The)31 b(follo)m(wing)i(shell)e(builtin)h(commands)f(are)h
-(inherited)f(from)g(the)h(Bourne)f(Shell.)45 b(These)31
-b(com-)150 2895 y(mands)e(are)i(implemen)m(ted)g(as)g(sp)s(eci\014ed)e
-(b)m(y)i(the)f Fl(posix)g Ft(standard.)150 3056 y Fs(:)g
-Ft(\(a)h(colon\))870 3165 y Fs(:)47 b([)p Fj(arguments)11
-b Fs(])630 3300 y Ft(Do)43 b(nothing)f(b)s(ey)m(ond)g(expanding)f
-Fq(argumen)m(ts)46 b Ft(and)c(p)s(erforming)f(redirections.)76
-b(The)630 3410 y(return)29 b(status)i(is)f(zero.)150
-3570 y Fs(.)g Ft(\(a)h(p)s(erio)s(d\))870 3679 y Fs(.)47
+1947 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
+g(b)m(y)g Fl(posix)g Ft(or)g(Bash.)275 2086 y(Unless)39
+b(otherwise)h(noted,)i(eac)m(h)f(builtin)e(command)g(do)s(cumen)m(ted)g
+(as)h(accepting)h(options)f(pre-)150 2196 y(ceded)33
+b(b)m(y)h(`)p Fs(-)p Ft(')f(accepts)i(`)p Fs(--)p Ft(')e(to)h(signify)f
+(the)h(end)e(of)i(the)f(options.)50 b(The)33 b Fs(:)p
+Ft(,)h Fs(true)p Ft(,)f Fs(false)p Ft(,)f(and)h Fs(test)150
+2305 y Ft(builtins)i(do)g(not)h(accept)g(options)g(and)f(do)g(not)h
+(treat)g(`)p Fs(--)p Ft(')f(sp)s(ecially)-8 b(.)57 b(The)35
+b Fs(exit)p Ft(,)h Fs(logout)p Ft(,)f Fs(break)p Ft(,)150
+2415 y Fs(continue)p Ft(,)29 b Fs(let)p Ft(,)i(and)g
+Fs(shift)f Ft(builtins)g(accept)j(and)e(pro)s(cess)g(argumen)m(ts)g(b)s
+(eginning)g(with)g(`)p Fs(-)p Ft(')g(with-)150 2524 y(out)f(requiring)f
+(`)p Fs(--)p Ft('.)41 b(Other)29 b(builtins)h(that)g(accept)h(argumen)m
+(ts)f(but)g(are)g(not)g(sp)s(eci\014ed)f(as)h(accepting)150
+2634 y(options)25 b(in)m(terpret)f(argumen)m(ts)h(b)s(eginning)e(with)h
+(`)p Fs(-)p Ft(')h(as)f(in)m(v)-5 b(alid)25 b(options)g(and)e(require)h
+(`)p Fs(--)p Ft(')g(to)h(prev)m(en)m(t)150 2743 y(this)30
+b(in)m(terpretation.)150 3011 y Fr(4.1)68 b(Bourne)45
+b(Shell)g(Builtins)275 3259 y Ft(The)31 b(follo)m(wing)i(shell)e
+(builtin)h(commands)f(are)h(inherited)f(from)g(the)h(Bourne)f(Shell.)45
+b(These)31 b(com-)150 3369 y(mands)e(are)i(implemen)m(ted)g(as)g(sp)s
+(eci\014ed)e(b)m(y)i(the)f Fl(posix)g Ft(standard.)150
+3534 y Fs(:)g Ft(\(a)h(colon\))870 3644 y Fs(:)47 b([)p
+Fj(arguments)11 b Fs(])630 3781 y Ft(Do)43 b(nothing)f(b)s(ey)m(ond)g
+(expanding)f Fq(argumen)m(ts)46 b Ft(and)c(p)s(erforming)f
+(redirections.)76 b(The)630 3890 y(return)29 b(status)i(is)f(zero.)150
+4054 y Fs(.)g Ft(\(a)h(p)s(erio)s(d\))870 4163 y Fs(.)47
 b Fj(filename)57 b Fs([)p Fj(arguments)11 b Fs(])630
-3814 y Ft(Read)34 b(and)f(execute)i(commands)e(from)g(the)h
+4300 y Ft(Read)34 b(and)f(execute)i(commands)e(from)g(the)h
 Fq(\014lename)39 b Ft(argumen)m(t)34 b(in)f(the)h(curren)m(t)g(shell)
-630 3924 y(con)m(text.)45 b(If)31 b Fq(\014lename)37
+630 4409 y(con)m(text.)45 b(If)31 b Fq(\014lename)37
 b Ft(do)s(es)31 b(not)g(con)m(tain)i(a)e(slash,)h(the)g
 Fs(PATH)e Ft(v)-5 b(ariable)32 b(is)f(used)f(to)i(\014nd)630
-4033 y Fq(\014lename)p Ft(.)52 b(When)34 b(Bash)g(is)h(not)f(in)g
+4519 y Fq(\014lename)p Ft(.)52 b(When)34 b(Bash)g(is)h(not)f(in)g
 Fl(posix)f Ft(mo)s(de,)i(the)g(curren)m(t)f(directory)g(is)g(searc)m
-(hed)630 4143 y(if)d Fq(\014lename)36 b Ft(is)31 b(not)h(found)d(in)i
+(hed)630 4629 y(if)d Fq(\014lename)36 b Ft(is)31 b(not)h(found)d(in)i
 Fs($PATH)p Ft(.)41 b(If)31 b(an)m(y)g Fq(argumen)m(ts)k
-Ft(are)c(supplied,)f(they)i(b)s(ecome)630 4253 y(the)e(p)s(ositional)h
+Ft(are)c(supplied,)f(they)i(b)s(ecome)630 4738 y(the)e(p)s(ositional)h
 (parameters)g(when)e Fq(\014lename)35 b Ft(is)30 b(executed.)42
-b(Otherwise)30 b(the)g(p)s(ositional)630 4362 y(parameters)43
+b(Otherwise)30 b(the)g(p)s(ositional)630 4848 y(parameters)43
 b(are)h(unc)m(hanged.)79 b(The)42 b(return)g(status)i(is)f(the)g(exit)h
-(status)g(of)f(the)g(last)630 4472 y(command)37 b(executed,)k(or)c
+(status)g(of)f(the)g(last)630 4957 y(command)37 b(executed,)k(or)c
 (zero)h(if)g(no)f(commands)g(are)h(executed.)63 b(If)36
-b Fq(\014lename)43 b Ft(is)38 b(not)630 4581 y(found,)22
+b Fq(\014lename)43 b Ft(is)38 b(not)630 5067 y(found,)22
 b(or)f(cannot)g(b)s(e)f(read,)j(the)e(return)f(status)h(is)g(non-zero.)
 38 b(This)20 b(builtin)h(is)f(equiv)-5 b(alen)m(t)630
-4691 y(to)31 b Fs(source)p Ft(.)150 4851 y Fs(break)870
-4986 y(break)46 b([)p Fj(n)11 b Fs(])630 5121 y Ft(Exit)45
-b(from)f(a)g Fs(for)p Ft(,)k Fs(while)p Ft(,)e Fs(until)p
-Ft(,)h(or)d Fs(select)f Ft(lo)s(op.)83 b(If)44 b Fq(n)g
-Ft(is)g(supplied,)j(the)e Fq(n)p Ft(th)630 5230 y(enclosing)c(lo)s(op)f
-(is)h(exited.)70 b Fq(n)40 b Ft(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i
-(equal)f(to)h(1.)70 b(The)40 b(return)630 5340 y(status)31
-b(is)f(zero)h(unless)f Fq(n)g Ft(is)g(not)h(greater)g(than)g(or)f
-(equal)h(to)g(1.)p eop end
+5176 y(to)31 b Fs(source)p Ft(.)150 5340 y Fs(break)p
+eop end
 %%Page: 36 42
 TeXDict begin 36 41 bop 150 -116 a Ft(36)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(cd)870 430 y(cd)47
-b([-L|-P])f([)p Fj(directory)11 b Fs(])630 562 y Ft(Change)37
-b(the)g(curren)m(t)f(w)m(orking)i(directory)f(to)h Fq(directory)p
-Ft(.)60 b(If)37 b Fq(directory)45 b Ft(is)37 b(not)g(giv)m(en,)630
-671 y(the)31 b(v)-5 b(alue)31 b(of)g(the)g Fs(HOME)e
-Ft(shell)i(v)-5 b(ariable)32 b(is)f(used.)40 b(If)31
-b(the)g(shell)g(v)-5 b(ariable)31 b Fs(CDPATH)e Ft(exists,)630
-781 y(it)f(is)f(used)f(as)h(a)h(searc)m(h)f(path.)40
-b(If)26 b Fq(directory)35 b Ft(b)s(egins)27 b(with)g(a)g(slash,)h
-Fs(CDPATH)d Ft(is)i(not)g(used.)630 913 y(The)h(`)p Fs(-P)p
-Ft(')h(option)g(means)f(to)h(not)g(follo)m(w)h(sym)m(b)s(olic)f(links;)
-g(sym)m(b)s(olic)g(links)f(are)h(follo)m(w)m(ed)630 1022
-y(b)m(y)23 b(default)h(or)g(with)f(the)h(`)p Fs(-L)p
-Ft(')f(option.)39 b(If)23 b Fq(directory)32 b Ft(is)23
-b(`)p Fs(-)p Ft(',)j(it)e(is)f(equiv)-5 b(alen)m(t)25
-b(to)g Fs($OLDPWD)p Ft(.)630 1154 y(If)33 b(a)h(non-empt)m(y)g
+b(Reference)g(Man)m(ual)870 299 y Fs(break)46 b([)p Fj(n)11
+b Fs(])630 431 y Ft(Exit)45 b(from)f(a)g Fs(for)p Ft(,)k
+Fs(while)p Ft(,)e Fs(until)p Ft(,)h(or)d Fs(select)f
+Ft(lo)s(op.)83 b(If)44 b Fq(n)g Ft(is)g(supplied,)j(the)e
+Fq(n)p Ft(th)630 541 y(enclosing)c(lo)s(op)f(is)h(exited.)70
+b Fq(n)40 b Ft(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i(equal)f(to)h(1.)
+70 b(The)40 b(return)630 650 y(status)31 b(is)f(zero)h(unless)f
+Fq(n)g Ft(is)g(not)h(greater)g(than)g(or)f(equal)h(to)g(1.)150
+806 y Fs(cd)870 938 y(cd)47 b([-L|-P])f([)p Fj(directory)11
+b Fs(])630 1071 y Ft(Change)37 b(the)g(curren)m(t)f(w)m(orking)i
+(directory)f(to)h Fq(directory)p Ft(.)60 b(If)37 b Fq(directory)45
+b Ft(is)37 b(not)g(giv)m(en,)630 1180 y(the)31 b(v)-5
+b(alue)31 b(of)g(the)g Fs(HOME)e Ft(shell)i(v)-5 b(ariable)32
+b(is)f(used.)40 b(If)31 b(the)g(shell)g(v)-5 b(ariable)31
+b Fs(CDPATH)e Ft(exists,)630 1290 y(it)f(is)f(used)f(as)h(a)h(searc)m
+(h)f(path.)40 b(If)26 b Fq(directory)35 b Ft(b)s(egins)27
+b(with)g(a)g(slash,)h Fs(CDPATH)d Ft(is)i(not)g(used.)630
+1422 y(The)h(`)p Fs(-P)p Ft(')h(option)g(means)f(to)h(not)g(follo)m(w)h
+(sym)m(b)s(olic)f(links;)g(sym)m(b)s(olic)g(links)f(are)h(follo)m(w)m
+(ed)630 1532 y(b)m(y)23 b(default)h(or)g(with)f(the)h(`)p
+Fs(-L)p Ft(')f(option.)39 b(If)23 b Fq(directory)32 b
+Ft(is)23 b(`)p Fs(-)p Ft(',)j(it)e(is)f(equiv)-5 b(alen)m(t)25
+b(to)g Fs($OLDPWD)p Ft(.)630 1664 y(If)33 b(a)h(non-empt)m(y)g
 (directory)g(name)f(from)g Fs(CDPATH)f Ft(is)h(used,)h(or)g(if)f(`)p
-Fs(-)p Ft(')h(is)f(the)h(\014rst)f(argu-)630 1263 y(men)m(t,)28
+Fs(-)p Ft(')h(is)f(the)h(\014rst)f(argu-)630 1774 y(men)m(t,)28
 b(and)e(the)h(directory)g(c)m(hange)h(is)f(successful,)h(the)f
-(absolute)g(pathname)g(of)f(the)h(new)630 1373 y(w)m(orking)k
+(absolute)g(pathname)g(of)f(the)h(new)630 1883 y(w)m(orking)k
 (directory)g(is)f(written)g(to)i(the)e(standard)g(output.)630
-1504 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g
-(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 1614
-y(erwise.)150 1767 y Fs(continue)870 1899 y(continue)46
-b([)p Fj(n)11 b Fs(])630 2030 y Ft(Resume)32 b(the)g(next)g(iteration)i
+2016 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g
+(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 2125
+y(erwise.)150 2281 y Fs(continue)870 2413 y(continue)46
+b([)p Fj(n)11 b Fs(])630 2545 y Ft(Resume)32 b(the)g(next)g(iteration)i
 (of)e(an)g(enclosing)h Fs(for)p Ft(,)f Fs(while)p Ft(,)f
-Fs(until)p Ft(,)g(or)h Fs(select)f Ft(lo)s(op.)630 2140
+Fs(until)p Ft(,)g(or)h Fs(select)f Ft(lo)s(op.)630 2655
 y(If)f Fq(n)h Ft(is)g(supplied,)e(the)j(execution)g(of)f(the)g
 Fq(n)p Ft(th)f(enclosing)i(lo)s(op)f(is)f(resumed.)42
-b Fq(n)30 b Ft(m)m(ust)h(b)s(e)630 2250 y(greater)39
+b Fq(n)30 b Ft(m)m(ust)h(b)s(e)630 2765 y(greater)39
 b(than)f(or)g(equal)g(to)h(1.)63 b(The)38 b(return)e(status)j(is)e
-(zero)i(unless)e Fq(n)h Ft(is)g(not)g(greater)630 2359
-y(than)30 b(or)g(equal)h(to)g(1.)150 2513 y Fs(eval)870
-2644 y(eval)47 b([)p Fj(arguments)11 b Fs(])630 2776
+(zero)i(unless)e Fq(n)h Ft(is)g(not)g(greater)630 2874
+y(than)30 b(or)g(equal)h(to)g(1.)150 3029 y Fs(eval)870
+3162 y(eval)47 b([)p Fj(arguments)11 b Fs(])630 3294
 y Ft(The)25 b(argumen)m(ts)h(are)g(concatenated)i(together)f(in)m(to)f
-(a)g(single)h(command,)f(whic)m(h)g(is)f(then)630 2885
+(a)g(single)h(command,)f(whic)m(h)g(is)f(then)630 3404
 y(read)35 b(and)g(executed,)j(and)d(its)h(exit)g(status)g(returned)e
 (as)h(the)h(exit)g(status)g(of)g Fs(eval)p Ft(.)54 b(If)630
-2995 y(there)31 b(are)f(no)h(argumen)m(ts)f(or)h(only)f(empt)m(y)h
+3513 y(there)31 b(are)f(no)h(argumen)m(ts)f(or)h(only)f(empt)m(y)h
 (argumen)m(ts,)g(the)f(return)g(status)g(is)h(zero.)150
-3148 y Fs(exec)870 3280 y(exec)47 b([-cl])f([-a)h Fj(name)11
+3669 y Fs(exec)870 3801 y(exec)47 b([-cl])f([-a)h Fj(name)11
 b Fs(])46 b([)p Fj(command)56 b Fs([)p Fj(arguments)11
-b Fs(]])630 3411 y Ft(If)36 b Fq(command)k Ft(is)c(supplied,)h(it)g
+b Fs(]])630 3934 y Ft(If)36 b Fq(command)k Ft(is)c(supplied,)h(it)g
 (replaces)h(the)e(shell)h(without)f(creating)i(a)f(new)f(pro)s(cess.)
-630 3521 y(If)h(the)g(`)p Fs(-l)p Ft(')g(option)h(is)f(supplied,)g(the)
+630 4043 y(If)h(the)g(`)p Fs(-l)p Ft(')g(option)h(is)f(supplied,)g(the)
 h(shell)f(places)h(a)g(dash)e(at)i(the)f(b)s(eginning)f(of)i(the)630
-3630 y(zeroth)e(argumen)m(t)h(passed)e(to)h Fq(command)p
+4153 y(zeroth)e(argumen)m(t)h(passed)e(to)h Fq(command)p
 Ft(.)57 b(This)35 b(is)h(what)f(the)h Fs(login)e Ft(program)i(do)s(es.)
-630 3740 y(The)d(`)p Fs(-c)p Ft(')h(option)g(causes)g
+630 4262 y(The)d(`)p Fs(-c)p Ft(')h(option)g(causes)g
 Fq(command)j Ft(to)e(b)s(e)e(executed)i(with)e(an)h(empt)m(y)g(en)m
-(vironmen)m(t.)630 3850 y(If)d(`)p Fs(-a)p Ft(')h(is)g(supplied,)f(the)
+(vironmen)m(t.)630 4372 y(If)d(`)p Fs(-a)p Ft(')h(is)g(supplied,)f(the)
 h(shell)g(passes)f Fq(name)37 b Ft(as)32 b(the)g(zeroth)g(argumen)m(t)g
-(to)h Fq(command)p Ft(.)630 3959 y(If)45 b(no)g Fq(command)k
+(to)h Fq(command)p Ft(.)630 4482 y(If)45 b(no)g Fq(command)k
 Ft(is)c(sp)s(eci\014ed,)k(redirections)d(ma)m(y)g(b)s(e)f(used)f(to)j
-(a\013ect)g(the)e(curren)m(t)630 4069 y(shell)33 b(en)m(vironmen)m(t.)
+(a\013ect)g(the)e(curren)m(t)630 4591 y(shell)33 b(en)m(vironmen)m(t.)
 48 b(If)32 b(there)h(are)g(no)f(redirection)h(errors,)g(the)g(return)e
-(status)i(is)g(zero;)630 4178 y(otherwise)e(the)f(return)g(status)g(is)
-h(non-zero.)150 4332 y Fs(exit)870 4463 y(exit)47 b([)p
-Fj(n)11 b Fs(])630 4595 y Ft(Exit)30 b(the)g(shell,)h(returning)d(a)j
+(status)i(is)g(zero;)630 4701 y(otherwise)e(the)f(return)g(status)g(is)
+h(non-zero.)150 4856 y Fs(exit)870 4988 y(exit)47 b([)p
+Fj(n)11 b Fs(])630 5121 y Ft(Exit)30 b(the)g(shell,)h(returning)d(a)j
 (status)f(of)g Fq(n)f Ft(to)h(the)g(shell's)g(paren)m(t.)41
-b(If)30 b Fq(n)f Ft(is)h(omitted,)h(the)630 4704 y(exit)c(status)g(is)g
+b(If)30 b Fq(n)f Ft(is)h(omitted,)h(the)630 5230 y(exit)c(status)g(is)g
 (that)g(of)g(the)g(last)g(command)f(executed.)41 b(An)m(y)26
-b(trap)h(on)f Fs(EXIT)f Ft(is)i(executed)630 4814 y(b)s(efore)j(the)h
-(shell)f(terminates.)150 4967 y Fs(export)870 5099 y(export)46
-b([-fn])g([-p])h([)p Fj(name)11 b Fs([=)p Fj(value)g
-Fs(]])630 5230 y Ft(Mark)40 b(eac)m(h)h Fq(name)k Ft(to)40
-b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s(cesses)f(in)g(the)h(en)m
-(vironmen)m(t.)70 b(If)39 b(the)630 5340 y(`)p Fs(-f)p
-Ft(')29 b(option)h(is)g(supplied,)f(the)g Fq(name)5 b
-Ft(s)30 b(refer)f(to)h(shell)g(functions;)f(otherwise)h(the)g(names)p
-eop end
+b(trap)h(on)f Fs(EXIT)f Ft(is)i(executed)630 5340 y(b)s(efore)j(the)h
+(shell)f(terminates.)p eop end
 %%Page: 37 43
 TeXDict begin 37 42 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(37)630 299 y(refer)36
-b(to)i(shell)e(v)-5 b(ariables.)60 b(The)36 b(`)p Fs(-n)p
-Ft(')h(option)g(means)f(to)h(no)g(longer)g(mark)f(eac)m(h)i
-Fq(name)630 408 y Ft(for)h(exp)s(ort.)65 b(If)39 b(no)g
-Fq(names)j Ft(are)d(supplied,)h(or)f(if)g(the)g(`)p Fs(-p)p
-Ft(')g(option)g(is)g(giv)m(en,)j(a)d(list)h(of)630 518
-y(exp)s(orted)c(names)h(is)f(displa)m(y)m(ed.)60 b(The)37
-b(`)p Fs(-p)p Ft(')f(option)h(displa)m(ys)g(output)f(in)g(a)h(form)f
-(that)630 628 y(ma)m(y)c(b)s(e)e(reused)g(as)i(input.)42
+b(Shell)30 b(Builtin)h(Commands)2069 b(37)150 299 y Fs(export)870
+432 y(export)46 b([-fn])g([-p])h([)p Fj(name)11 b Fs([=)p
+Fj(value)g Fs(]])630 565 y Ft(Mark)40 b(eac)m(h)h Fq(name)k
+Ft(to)40 b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s(cesses)f(in)g(the)h
+(en)m(vironmen)m(t.)70 b(If)39 b(the)630 675 y(`)p Fs(-f)p
+Ft(')29 b(option)h(is)g(supplied,)f(the)g Fq(name)5 b
+Ft(s)30 b(refer)f(to)h(shell)g(functions;)f(otherwise)h(the)g(names)630
+784 y(refer)36 b(to)i(shell)e(v)-5 b(ariables.)60 b(The)36
+b(`)p Fs(-n)p Ft(')h(option)g(means)f(to)h(no)g(longer)g(mark)f(eac)m
+(h)i Fq(name)630 894 y Ft(for)h(exp)s(ort.)65 b(If)39
+b(no)g Fq(names)j Ft(are)d(supplied,)h(or)f(if)g(the)g(`)p
+Fs(-p)p Ft(')g(option)g(is)g(giv)m(en,)j(a)d(list)h(of)630
+1003 y(exp)s(orted)c(names)h(is)f(displa)m(y)m(ed.)60
+b(The)37 b(`)p Fs(-p)p Ft(')f(option)h(displa)m(ys)g(output)f(in)g(a)h
+(form)f(that)630 1113 y(ma)m(y)c(b)s(e)e(reused)g(as)i(input.)42
 b(If)30 b(a)i(v)-5 b(ariable)31 b(name)h(is)f(follo)m(w)m(ed)h(b)m(y)f
 (=)p Fq(v)-5 b(alue)p Ft(,)32 b(the)f(v)-5 b(alue)32
-b(of)630 737 y(the)f(v)-5 b(ariable)31 b(is)f(set)h(to)g
-Fq(v)-5 b(alue)p Ft(.)630 870 y(The)29 b(return)e(status)j(is)f(zero)h
+b(of)630 1223 y(the)f(v)-5 b(ariable)31 b(is)f(set)h(to)g
+Fq(v)-5 b(alue)p Ft(.)630 1356 y(The)29 b(return)e(status)j(is)f(zero)h
 (unless)e(an)h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f(one)i
-(of)f(the)g(names)630 980 y(is)h(not)h(a)f(v)-5 b(alid)31
+(of)f(the)g(names)630 1465 y(is)h(not)h(a)f(v)-5 b(alid)31
 b(shell)f(v)-5 b(ariable)31 b(name,)f(or)h(`)p Fs(-f)p
 Ft(')f(is)g(supplied)f(with)g(a)i(name)f(that)h(is)f(not)h(a)630
-1089 y(shell)g(function.)150 1246 y Fs(getopts)870 1379
+1575 y(shell)g(function.)150 1731 y Fs(getopts)870 1864
 y(getopts)46 b Fj(optstring)56 b(name)h Fs([)p Fj(args)11
-b Fs(])630 1512 y(getopts)28 b Ft(is)i(used)g(b)m(y)g(shell)g(scripts)g
+b Fs(])630 1998 y(getopts)28 b Ft(is)i(used)g(b)m(y)g(shell)g(scripts)g
 (to)g(parse)g(p)s(ositional)h(parameters.)41 b Fq(optstring)d
-Ft(con-)630 1622 y(tains)k(the)g(option)f(c)m(haracters)i(to)g(b)s(e)d
+Ft(con-)630 2107 y(tains)k(the)g(option)f(c)m(haracters)i(to)g(b)s(e)d
 (recognized;)49 b(if)42 b(a)f(c)m(haracter)j(is)d(follo)m(w)m(ed)i(b)m
-(y)f(a)630 1731 y(colon,)33 b(the)f(option)g(is)g(exp)s(ected)g(to)h
+(y)f(a)630 2217 y(colon,)33 b(the)f(option)g(is)g(exp)s(ected)g(to)h
 (ha)m(v)m(e)g(an)e(argumen)m(t,)i(whic)m(h)f(should)e(b)s(e)h
-(separated)630 1841 y(from)37 b(it)h(b)m(y)f(white)h(space.)63
+(separated)630 2326 y(from)37 b(it)h(b)m(y)f(white)h(space.)63
 b(The)37 b(colon)h(\(`)p Fs(:)p Ft('\))h(and)d(question)i(mark)f(\(`)p
-Fs(?)p Ft('\))i(ma)m(y)f(not)g(b)s(e)630 1951 y(used)g(as)g(option)h(c)
+Fs(?)p Ft('\))i(ma)m(y)f(not)g(b)s(e)630 2436 y(used)g(as)g(option)h(c)
 m(haracters.)67 b(Eac)m(h)39 b(time)g(it)g(is)f(in)m(v)m(ok)m(ed,)k
-Fs(getopts)37 b Ft(places)i(the)g(next)630 2060 y(option)29
+Fs(getopts)37 b Ft(places)i(the)g(next)630 2545 y(option)29
 b(in)f(the)h(shell)g(v)-5 b(ariable)30 b Fq(name)p Ft(,)f(initializing)
 i Fq(name)j Ft(if)28 b(it)h(do)s(es)g(not)g(exist,)h(and)e(the)630
-2170 y(index)33 b(of)g(the)h(next)f(argumen)m(t)h(to)g(b)s(e)e(pro)s
+2655 y(index)33 b(of)g(the)h(next)f(argumen)m(t)h(to)g(b)s(e)e(pro)s
 (cessed)h(in)m(to)h(the)g(v)-5 b(ariable)34 b Fs(OPTIND)p
-Ft(.)48 b Fs(OPTIND)630 2279 y Ft(is)41 b(initialized)i(to)f(1)f(eac)m
+Ft(.)48 b Fs(OPTIND)630 2765 y Ft(is)41 b(initialized)i(to)f(1)f(eac)m
 (h)h(time)g(the)f(shell)g(or)g(a)g(shell)g(script)g(is)g(in)m(v)m(ok)m
-(ed.)74 b(When)41 b(an)630 2389 y(option)36 b(requires)e(an)h(argumen)m
+(ed.)74 b(When)41 b(an)630 2874 y(option)36 b(requires)e(an)h(argumen)m
 (t,)i Fs(getopts)c Ft(places)j(that)g(argumen)m(t)g(in)m(to)g(the)f(v)
--5 b(ariable)630 2498 y Fs(OPTARG)p Ft(.)55 b(The)35
+-5 b(ariable)630 2984 y Fs(OPTARG)p Ft(.)55 b(The)35
 b(shell)g(do)s(es)h(not)g(reset)g Fs(OPTIND)e Ft(automatically;)41
-b(it)36 b(m)m(ust)f(b)s(e)g(man)m(ually)630 2608 y(reset)i(b)s(et)m(w)m
+b(it)36 b(m)m(ust)f(b)s(e)g(man)m(ually)630 3093 y(reset)i(b)s(et)m(w)m
 (een)g(m)m(ultiple)h(calls)f(to)g Fs(getopts)e Ft(within)h(the)h(same)g
-(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 2718 y(new)30
+(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 3203 y(new)30
 b(set)h(of)f(parameters)h(is)f(to)i(b)s(e)d(used.)630
-2851 y(When)41 b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k
+3336 y(When)41 b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k
 Fs(getopts)39 b Ft(exits)j(with)f(a)h(return)e(v)-5 b(alue)630
-2960 y(greater)32 b(than)e(zero.)41 b Fs(OPTIND)29 b
+3446 y(greater)32 b(than)e(zero.)41 b Fs(OPTIND)29 b
 Ft(is)h(set)h(to)g(the)g(index)f(of)g(the)h(\014rst)f(non-option)g
-(argumen)m(t,)630 3070 y(and)g Fs(name)f Ft(is)h(set)h(to)g(`)p
-Fs(?)p Ft('.)630 3203 y Fs(getopts)c Ft(normally)j(parses)e(the)i(p)s
+(argumen)m(t,)630 3555 y(and)g Fs(name)f Ft(is)h(set)h(to)g(`)p
+Fs(?)p Ft('.)630 3688 y Fs(getopts)c Ft(normally)j(parses)e(the)i(p)s
 (ositional)g(parameters,)g(but)e(if)i(more)f(argumen)m(ts)h(are)630
-3313 y(giv)m(en)h(in)f Fq(args)p Ft(,)h Fs(getopts)e
-Ft(parses)h(those)h(instead.)630 3446 y Fs(getopts)h
+3798 y(giv)m(en)h(in)f Fq(args)p Ft(,)h Fs(getopts)e
+Ft(parses)h(those)h(instead.)630 3931 y Fs(getopts)h
 Ft(can)h(rep)s(ort)g(errors)g(in)h(t)m(w)m(o)h(w)m(a)m(ys.)51
 b(If)33 b(the)h(\014rst)e(c)m(haracter)k(of)d Fq(optstring)42
-b Ft(is)34 b(a)630 3555 y(colon,)i Fq(silen)m(t)i Ft(error)33
+b Ft(is)34 b(a)630 4041 y(colon,)i Fq(silen)m(t)i Ft(error)33
 b(rep)s(orting)h(is)h(used.)51 b(In)33 b(normal)i(op)s(eration)f
-(diagnostic)i(messages)630 3665 y(are)30 b(prin)m(ted)e(when)g(in)m(v)
+(diagnostic)i(messages)630 4150 y(are)30 b(prin)m(ted)e(when)g(in)m(v)
 -5 b(alid)30 b(options)g(or)f(missing)g(option)g(argumen)m(ts)h(are)f
-(encoun)m(tered.)630 3774 y(If)34 b(the)g(v)-5 b(ariable)35
+(encoun)m(tered.)630 4260 y(If)34 b(the)g(v)-5 b(ariable)35
 b Fs(OPTERR)d Ft(is)i(set)h(to)f(0,)i(no)e(error)g(messages)h(will)f(b)
-s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630 3884 y(the)c(\014rst)e(c)m
+s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630 4369 y(the)c(\014rst)e(c)m
 (haracter)j(of)f Fs(optstring)d Ft(is)i(not)h(a)f(colon.)630
-4017 y(If)39 b(an)h(in)m(v)-5 b(alid)41 b(option)f(is)g(seen,)i
+4502 y(If)39 b(an)h(in)m(v)-5 b(alid)41 b(option)f(is)g(seen,)i
 Fs(getopts)c Ft(places)j(`)p Fs(?)p Ft(')f(in)m(to)h
-Fq(name)k Ft(and,)d(if)e(not)g(silen)m(t,)630 4127 y(prin)m(ts)f(an)h
+Fq(name)k Ft(and,)d(if)e(not)g(silen)m(t,)630 4612 y(prin)m(ts)f(an)h
 (error)f(message)h(and)f(unsets)g Fs(OPTARG)p Ft(.)67
 b(If)39 b Fs(getopts)f Ft(is)i(silen)m(t,)j(the)c(option)630
-4236 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f Fs(OPTARG)f
+4722 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f Fs(OPTARG)f
 Ft(and)h(no)g(diagnostic)i(message)f(is)g(prin)m(ted.)630
-4369 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f
+4855 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f
 Fs(getopts)f Ft(is)i(not)h(silen)m(t,)h(a)e(question)g(mark)630
-4479 y(\(`)p Fs(?)p Ft('\))h(is)g(placed)g(in)f Fq(name)p
+4964 y(\(`)p Fs(?)p Ft('\))h(is)g(placed)g(in)f Fq(name)p
 Ft(,)h Fs(OPTARG)e Ft(is)h(unset,)h(and)f(a)g(diagnostic)i(message)g
-(is)e(prin)m(ted.)39 b(If)630 4589 y Fs(getopts)28 b
+(is)e(prin)m(ted.)39 b(If)630 5074 y Fs(getopts)28 b
 Ft(is)h(silen)m(t,)i(then)e(a)h(colon)h(\(`)p Fs(:)p
 Ft('\))f(is)g(placed)g(in)f Fq(name)35 b Ft(and)29 b
-Fs(OPTARG)f Ft(is)h(set)h(to)h(the)630 4698 y(option)g(c)m(haracter)h
-(found.)150 4855 y Fs(hash)870 4988 y(hash)47 b([-r])f([-p)h
+Fs(OPTARG)f Ft(is)h(set)h(to)h(the)630 5183 y(option)g(c)m(haracter)h
+(found.)150 5340 y Fs(hash)p eop end
+%%Page: 38 44
+TeXDict begin 38 43 bop 150 -116 a Ft(38)2572 b(Bash)31
+b(Reference)g(Man)m(ual)870 299 y Fs(hash)47 b([-r])f([-p)h
 Fj(filename)11 b Fs(])45 b([-dt])h([)p Fj(name)11 b Fs(])630
-5121 y Ft(Remem)m(b)s(er)36 b(the)g(full)g(pathnames)g(of)g(commands)g
+438 y Ft(Remem)m(b)s(er)36 b(the)g(full)g(pathnames)g(of)g(commands)g
 (sp)s(eci\014ed)g(as)g Fq(name)41 b Ft(argumen)m(ts,)e(so)630
-5230 y(they)34 b(need)h(not)f(b)s(e)g(searc)m(hed)h(for)f(on)g
+547 y(they)34 b(need)h(not)f(b)s(e)g(searc)m(hed)h(for)f(on)g
 (subsequen)m(t)f(in)m(v)m(o)s(cations.)55 b(The)34 b(commands)g(are)630
-5340 y(found)39 b(b)m(y)i(searc)m(hing)g(through)f(the)h(directories)g
+657 y(found)39 b(b)m(y)i(searc)m(hing)g(through)f(the)h(directories)g
 (listed)g(in)f Fs($PATH)p Ft(.)70 b(The)40 b(`)p Fs(-p)p
-Ft(')g(option)p eop end
-%%Page: 38 44
-TeXDict begin 38 43 bop 150 -116 a Ft(38)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(inhibits)38 b(the)h(path)g(searc)m
-(h,)j(and)c Fq(\014lename)44 b Ft(is)39 b(used)f(as)i(the)f(lo)s
-(cation)h(of)f Fq(name)p Ft(.)66 b(The)630 408 y(`)p
-Fs(-r)p Ft(')28 b(option)g(causes)g(the)g(shell)h(to)f(forget)h(all)g
-(remem)m(b)s(ered)e(lo)s(cations.)41 b(The)28 b(`)p Fs(-d)p
-Ft(')f(option)630 518 y(causes)38 b(the)g(shell)g(to)g(forget)g(the)g
-(remem)m(b)s(ered)f(lo)s(cation)i(of)f(eac)m(h)h Fq(name)p
-Ft(.)62 b(If)37 b(the)h(`)p Fs(-t)p Ft(')630 628 y(option)22
-b(is)g(supplied,)g(the)g(full)f(pathname)h(to)g(whic)m(h)g(eac)m(h)g
-Fq(name)27 b Ft(corresp)s(onds)20 b(is)i(prin)m(ted.)630
-737 y(If)33 b(m)m(ultiple)h Fq(name)k Ft(argumen)m(ts)c(are)f(supplied)
-f(with)h(`)p Fs(-t)p Ft(')g(the)h Fq(name)k Ft(is)c(prin)m(ted)e(b)s
-(efore)630 847 y(the)h(hashed)f(full)g(pathname.)48 b(The)32
-b(`)p Fs(-l)p Ft(')h(option)g(causes)g(output)f(to)i(b)s(e)e(displa)m
-(y)m(ed)h(in)g(a)630 956 y(format)f(that)g(ma)m(y)g(b)s(e)f(reused)g
-(as)g(input.)43 b(If)31 b(no)h(argumen)m(ts)g(are)f(giv)m(en,)j(or)d
-(if)g(only)h(`)p Fs(-l)p Ft(')630 1066 y(is)j(supplied,)f(information)h
-(ab)s(out)g(remem)m(b)s(ered)f(commands)g(is)h(prin)m(ted.)53
-b(The)34 b(return)630 1176 y(status)d(is)f(zero)h(unless)f(a)h
+Ft(')g(option)630 766 y(inhibits)e(the)h(path)g(searc)m(h,)j(and)c
+Fq(\014lename)44 b Ft(is)39 b(used)f(as)i(the)f(lo)s(cation)h(of)f
+Fq(name)p Ft(.)66 b(The)630 876 y(`)p Fs(-r)p Ft(')28
+b(option)g(causes)g(the)g(shell)h(to)f(forget)h(all)g(remem)m(b)s(ered)
+e(lo)s(cations.)41 b(The)28 b(`)p Fs(-d)p Ft(')f(option)630
+986 y(causes)38 b(the)g(shell)g(to)g(forget)g(the)g(remem)m(b)s(ered)f
+(lo)s(cation)i(of)f(eac)m(h)h Fq(name)p Ft(.)62 b(If)37
+b(the)h(`)p Fs(-t)p Ft(')630 1095 y(option)22 b(is)g(supplied,)g(the)g
+(full)f(pathname)h(to)g(whic)m(h)g(eac)m(h)g Fq(name)27
+b Ft(corresp)s(onds)20 b(is)i(prin)m(ted.)630 1205 y(If)33
+b(m)m(ultiple)h Fq(name)k Ft(argumen)m(ts)c(are)f(supplied)f(with)h(`)p
+Fs(-t)p Ft(')g(the)h Fq(name)k Ft(is)c(prin)m(ted)e(b)s(efore)630
+1314 y(the)h(hashed)f(full)g(pathname.)48 b(The)32 b(`)p
+Fs(-l)p Ft(')h(option)g(causes)g(output)f(to)i(b)s(e)e(displa)m(y)m(ed)
+h(in)g(a)630 1424 y(format)f(that)g(ma)m(y)g(b)s(e)f(reused)g(as)g
+(input.)43 b(If)31 b(no)h(argumen)m(ts)g(are)f(giv)m(en,)j(or)d(if)g
+(only)h(`)p Fs(-l)p Ft(')630 1534 y(is)j(supplied,)f(information)h(ab)s
+(out)g(remem)m(b)s(ered)f(commands)g(is)h(prin)m(ted.)53
+b(The)34 b(return)630 1643 y(status)d(is)f(zero)h(unless)f(a)h
 Fq(name)k Ft(is)c(not)f(found)f(or)i(an)f(in)m(v)-5 b(alid)31
-b(option)g(is)f(supplied.)150 1340 y Fs(pwd)870 1477
-y(pwd)47 b([-LP])630 1614 y Ft(Prin)m(t)24 b(the)h(absolute)g(pathname)
+b(option)g(is)f(supplied.)150 1811 y Fs(pwd)870 1950
+y(pwd)47 b([-LP])630 2089 y Ft(Prin)m(t)24 b(the)h(absolute)g(pathname)
 g(of)f(the)h(curren)m(t)f(w)m(orking)h(directory)-8 b(.)40
-b(If)23 b(the)i(`)p Fs(-P)p Ft(')f(option)630 1724 y(is)36
+b(If)23 b(the)i(`)p Fs(-P)p Ft(')f(option)630 2198 y(is)36
 b(supplied,)f(the)h(pathname)f(prin)m(ted)g(will)h(not)g(con)m(tain)h
 (sym)m(b)s(olic)f(links.)55 b(If)35 b(the)h(`)p Fs(-L)p
-Ft(')630 1833 y(option)44 b(is)g(supplied,)i(the)e(pathname)f(prin)m
+Ft(')630 2308 y(option)44 b(is)g(supplied,)i(the)e(pathname)f(prin)m
 (ted)h(ma)m(y)g(con)m(tain)h(sym)m(b)s(olic)f(links.)80
-b(The)630 1943 y(return)26 b(status)h(is)h(zero)g(unless)e(an)h(error)g
+b(The)630 2418 y(return)26 b(status)h(is)h(zero)g(unless)e(an)h(error)g
 (is)g(encoun)m(tered)g(while)h(determining)f(the)g(name)630
-2052 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5
-b(alid)31 b(option)g(is)f(supplied.)150 2217 y Fs(readonly)870
-2354 y(readonly)46 b([-aApf])f([)p Fj(name)11 b Fs([=)p
-Fj(value)g Fs(]])43 b(...)630 2491 y Ft(Mark)24 b(eac)m(h)h
+2527 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5
+b(alid)31 b(option)g(is)f(supplied.)150 2695 y Fs(readonly)870
+2834 y(readonly)46 b([-aApf])f([)p Fj(name)11 b Fs([=)p
+Fj(value)g Fs(]])43 b(...)630 2973 y Ft(Mark)24 b(eac)m(h)h
 Fq(name)k Ft(as)24 b(readonly)-8 b(.)39 b(The)24 b(v)-5
 b(alues)24 b(of)g(these)g(names)g(ma)m(y)g(not)g(b)s(e)g(c)m(hanged)g
-(b)m(y)630 2600 y(subsequen)m(t)e(assignmen)m(t.)39 b(If)22
+(b)m(y)630 3082 y(subsequen)m(t)e(assignmen)m(t.)39 b(If)22
 b(the)h(`)p Fs(-f)p Ft(')f(option)i(is)e(supplied,)h(eac)m(h)h
-Fq(name)k Ft(refers)22 b(to)i(a)f(shell)630 2710 y(function.)39
+Fq(name)k Ft(refers)22 b(to)i(a)f(shell)630 3192 y(function.)39
 b(The)26 b(`)p Fs(-a)p Ft(')h(option)g(means)g(eac)m(h)h
 Fq(name)k Ft(refers)26 b(to)i(an)e(indexed)h(arra)m(y)g(v)-5
-b(ariable;)630 2819 y(the)33 b(`)p Fs(-A)p Ft(')g(option)g(means)g(eac)
+b(ariable;)630 3302 y(the)33 b(`)p Fs(-A)p Ft(')g(option)g(means)g(eac)
 m(h)h Fq(name)k Ft(refers)32 b(to)h(an)g(asso)s(ciativ)m(e)j(arra)m(y)d
-(v)-5 b(ariable.)49 b(If)32 b(no)630 2929 y Fq(name)f
+(v)-5 b(ariable.)49 b(If)32 b(no)630 3411 y Fq(name)f
 Ft(argumen)m(ts)26 b(are)g(giv)m(en,)i(or)d(if)h(the)g(`)p
 Fs(-p)p Ft(')f(option)h(is)g(supplied,)f(a)h(list)h(of)e(all)i
-(readonly)630 3039 y(names)37 b(is)g(prin)m(ted.)59 b(The)37
+(readonly)630 3521 y(names)37 b(is)g(prin)m(ted.)59 b(The)37
 b(`)p Fs(-p)p Ft(')f(option)i(causes)f(output)g(to)g(b)s(e)f(displa)m
-(y)m(ed)i(in)e(a)i(format)630 3148 y(that)25 b(ma)m(y)g(b)s(e)f(reused)
+(y)m(ed)i(in)e(a)i(format)630 3630 y(that)25 b(ma)m(y)g(b)s(e)f(reused)
 g(as)h(input.)38 b(If)24 b(a)h(v)-5 b(ariable)25 b(name)g(is)g(follo)m
 (w)m(ed)h(b)m(y)e(=)p Fq(v)-5 b(alue)p Ft(,)27 b(the)d(v)-5
-b(alue)630 3258 y(of)27 b(the)g(v)-5 b(ariable)27 b(is)g(set)g(to)g
+b(alue)630 3740 y(of)27 b(the)g(v)-5 b(ariable)27 b(is)g(set)g(to)g
 Fq(v)-5 b(alue)p Ft(.)40 b(The)26 b(return)g(status)h(is)f(zero)i
-(unless)e(an)g(in)m(v)-5 b(alid)27 b(option)630 3367
+(unless)e(an)g(in)m(v)-5 b(alid)27 b(option)630 3850
 y(is)j(supplied,)f(one)h(of)g(the)g Fq(name)35 b Ft(argumen)m(ts)30
 b(is)g(not)g(a)g(v)-5 b(alid)31 b(shell)f(v)-5 b(ariable)30
-b(or)g(function)630 3477 y(name,)h(or)f(the)h(`)p Fs(-f)p
+b(or)g(function)630 3959 y(name,)h(or)f(the)h(`)p Fs(-f)p
 Ft(')f(option)h(is)f(supplied)f(with)h(a)h(name)f(that)h(is)g(not)f(a)h
-(shell)g(function.)150 3641 y Fs(return)870 3778 y(return)46
-b([)p Fj(n)11 b Fs(])630 3915 y Ft(Cause)30 b(a)g(shell)g(function)g
+(shell)g(function.)150 4127 y Fs(return)870 4266 y(return)46
+b([)p Fj(n)11 b Fs(])630 4405 y Ft(Cause)30 b(a)g(shell)g(function)g
 (to)h(exit)f(with)g(the)g(return)f(v)-5 b(alue)31 b Fq(n)p
 Ft(.)40 b(If)29 b Fq(n)h Ft(is)g(not)g(supplied,)f(the)630
-4025 y(return)35 b(v)-5 b(alue)37 b(is)f(the)g(exit)h(status)f(of)h
+4514 y(return)35 b(v)-5 b(alue)37 b(is)f(the)g(exit)h(status)f(of)h
 (the)f(last)h(command)f(executed)h(in)f(the)g(function.)630
-4134 y(This)21 b(ma)m(y)i(also)g(b)s(e)e(used)g(to)i(terminate)g
+4624 y(This)21 b(ma)m(y)i(also)g(b)s(e)e(used)g(to)i(terminate)g
 (execution)g(of)f(a)h(script)f(b)s(eing)f(executed)i(with)f(the)630
-4244 y Fs(.)27 b Ft(\(or)g Fs(source)p Ft(\))f(builtin,)i(returning)e
+4734 y Fs(.)27 b Ft(\(or)g Fs(source)p Ft(\))f(builtin,)i(returning)e
 (either)h Fq(n)g Ft(or)g(the)g(exit)h(status)g(of)f(the)g(last)h
-(command)630 4354 y(executed)46 b(within)f(the)g(script)g(as)h(the)f
+(command)630 4843 y(executed)46 b(within)f(the)g(script)g(as)h(the)f
 (exit)h(status)g(of)f(the)h(script.)85 b(An)m(y)45 b(command)630
-4463 y(asso)s(ciated)30 b(with)e(the)g Fs(RETURN)f Ft(trap)h(is)g
+4953 y(asso)s(ciated)30 b(with)e(the)g Fs(RETURN)f Ft(trap)h(is)g
 (executed)h(b)s(efore)f(execution)h(resumes)f(after)h(the)630
-4573 y(function)38 b(or)f(script.)63 b(The)38 b(return)e(status)i(is)g
+5062 y(function)38 b(or)f(script.)63 b(The)38 b(return)e(status)i(is)g
 (non-zero)h(if)e Fs(return)g Ft(is)g(used)g(outside)i(a)630
-4682 y(function)30 b(and)g(not)g(during)g(the)g(execution)i(of)e(a)h
+5172 y(function)30 b(and)g(not)g(during)g(the)g(execution)i(of)e(a)h
 (script)f(b)m(y)h Fs(.)f Ft(or)g Fs(source)p Ft(.)150
-4847 y Fs(shift)870 4984 y(shift)46 b([)p Fj(n)11 b Fs(])630
-5121 y Ft(Shift)41 b(the)g(p)s(ositional)h(parameters)g(to)g(the)f
-(left)h(b)m(y)g Fq(n)p Ft(.)73 b(The)40 b(p)s(ositional)j(parameters)
-630 5230 y(from)34 b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45
-b Fs($#)34 b Ft(are)g(renamed)g(to)h Fs($1)k Ft(.)22
-b(.)g(.)46 b Fs($#)p Ft(-)p Fq(n)p Ft(.)51 b(P)m(arameters)36
-b(represen)m(ted)e(b)m(y)g(the)630 5340 y(n)m(um)m(b)s(ers)25
-b Fs($#)i Ft(to)g Fs($#)p Ft(-)p Fq(n)p Fs(+)p Ft(1)g(are)g(unset.)39
-b Fq(n)26 b Ft(m)m(ust)h(b)s(e)f(a)i(non-negativ)m(e)h(n)m(um)m(b)s(er)
-c(less)i(than)g(or)p eop end
+5340 y Fs(shift)p eop end
 %%Page: 39 45
 TeXDict begin 39 44 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(39)630 299 y(equal)33
-b(to)h Fs($#)p Ft(.)47 b(If)33 b Fq(n)f Ft(is)h(zero)g(or)g(greater)h
-(than)f Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630
-408 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g
+b(Shell)30 b(Builtin)h(Commands)2069 b(39)870 299 y Fs(shift)46
+b([)p Fj(n)11 b Fs(])630 432 y Ft(Shift)41 b(the)g(p)s(ositional)h
+(parameters)g(to)g(the)f(left)h(b)m(y)g Fq(n)p Ft(.)73
+b(The)40 b(p)s(ositional)j(parameters)630 542 y(from)34
+b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45 b Fs($#)34
+b Ft(are)g(renamed)g(to)h Fs($1)k Ft(.)22 b(.)g(.)46
+b Fs($#)p Ft(-)p Fq(n)p Ft(.)51 b(P)m(arameters)36 b(represen)m(ted)e
+(b)m(y)g(the)630 651 y(n)m(um)m(b)s(ers)25 b Fs($#)i
+Ft(to)g Fs($#)p Ft(-)p Fq(n)p Fs(+)p Ft(1)g(are)g(unset.)39
+b Fq(n)26 b Ft(m)m(ust)h(b)s(e)f(a)i(non-negativ)m(e)h(n)m(um)m(b)s(er)
+c(less)i(than)g(or)630 761 y(equal)33 b(to)h Fs($#)p
+Ft(.)47 b(If)33 b Fq(n)f Ft(is)h(zero)g(or)g(greater)h(than)f
+Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630
+871 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g
 (is)f(assumed)g(to)h(b)s(e)f(1.)48 b(The)32 b(return)g(status)h(is)f
-(zero)630 518 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g
+(zero)630 980 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g
 Fs($#)e Ft(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150
-677 y Fs(test)150 787 y([)432 b Ft(Ev)-5 b(aluate)32
+1137 y Fs(test)150 1247 y([)432 b Ft(Ev)-5 b(aluate)32
 b(a)f(conditional)h(expression)e Fq(expr)p Ft(.)41 b(Eac)m(h)31
 b(op)s(erator)g(and)f(op)s(erand)g(m)m(ust)h(b)s(e)f(a)630
-897 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed)e
-(of)i(the)f(primaries)g(describ)s(ed)f(b)s(elo)m(w)630
-1006 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h
+1357 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed)
+e(of)i(the)f(primaries)g(describ)s(ed)f(b)s(elo)m(w)630
+1466 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h
 (page)g(77.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630
-1116 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d
+1576 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d
 (ignore)i(an)f(argumen)m(t)g(of)g(`)p Fs(--)p Ft(')g(as)h(signifying)f
-(the)630 1225 y(end)j(of)g(options.)630 1360 y(When)g(the)h
+(the)630 1685 y(end)j(of)g(options.)630 1819 y(When)g(the)h
 Fs([)f Ft(form)g(is)g(used,)g(the)g(last)i(argumen)m(t)e(to)i(the)e
-(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 1494
+(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 1952
 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m
 (wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-1604 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
+2062 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
 b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h
-(argumen)m(ts;)g(see)630 1714 y(b)s(elo)m(w.)630 1873
+(argumen)m(ts;)g(see)630 2171 y(b)s(elo)m(w.)630 2329
 y Fs(!)f Fj(expr)210 b Ft(T)-8 b(rue)30 b(if)g Fq(expr)37
-b Ft(is)30 b(false.)630 2032 y Fs(\()g Fj(expr)40 b Fs(\))122
+b Ft(is)30 b(false.)630 2486 y Fs(\()g Fj(expr)40 b Fs(\))122
 b Ft(Returns)23 b(the)i(v)-5 b(alue)25 b(of)f Fq(expr)p
 Ft(.)38 b(This)24 b(ma)m(y)h(b)s(e)e(used)h(to)h(o)m(v)m(erride)g(the)g
-(normal)1110 2142 y(precedence)31 b(of)f(op)s(erators.)630
-2301 y Fj(expr1)39 b Fs(-a)30 b Fj(expr2)1110 2411 y
+(normal)1110 2595 y(precedence)31 b(of)f(op)s(erators.)630
+2753 y Fj(expr1)39 b Fs(-a)30 b Fj(expr2)1110 2862 y
 Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expr1)37 b Ft(and)30
-b Fq(expr2)38 b Ft(are)30 b(true.)630 2570 y Fj(expr1)39
-b Fs(-o)30 b Fj(expr2)1110 2680 y Ft(T)-8 b(rue)30 b(if)g(either)h
+b Fq(expr2)38 b Ft(are)30 b(true.)630 3020 y Fj(expr1)39
+b Fs(-o)30 b Fj(expr2)1110 3129 y Ft(T)-8 b(rue)30 b(if)g(either)h
 Fq(expr1)38 b Ft(or)30 b Fq(expr2)37 b Ft(is)31 b(true.)630
-2839 y(The)37 b Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5
+3286 y(The)37 b Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5
 b(aluate)39 b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)
-630 2949 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)
-630 3108 y(0)h(argumen)m(ts)1110 3218 y(The)f(expression)g(is)g(false.)
-630 3377 y(1)h(argumen)m(t)1110 3487 y(The)f(expression)g(is)g(true)h
+630 3396 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)
+630 3553 y(0)h(argumen)m(ts)1110 3663 y(The)f(expression)g(is)g(false.)
+630 3820 y(1)h(argumen)m(t)1110 3930 y(The)f(expression)g(is)g(true)h
 (if)f(and)g(only)g(if)h(the)f(argumen)m(t)h(is)f(not)h(n)m(ull.)630
-3646 y(2)g(argumen)m(ts)1110 3756 y(If)f(the)h(\014rst)f(argumen)m(t)h
+4087 y(2)g(argumen)m(ts)1110 4196 y(If)f(the)h(\014rst)f(argumen)m(t)h
 (is)g(`)p Fs(!)p Ft(',)g(the)g(expression)g(is)g(true)f(if)h(and)f
-(only)h(if)g(the)1110 3866 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
+(only)h(if)g(the)1110 4306 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
 b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)
-1110 3975 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
-([Bash)g(Conditional)g(Expres-)1110 4085 y(sions],)34
+1110 4416 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
+([Bash)g(Conditional)g(Expres-)1110 4525 y(sions],)34
 b(page)f(77\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e
-(test)j(is)f(true.)47 b(If)1110 4194 y(the)33 b(\014rst)g(argumen)m(t)h
+(test)j(is)f(true.)47 b(If)1110 4635 y(the)33 b(\014rst)g(argumen)m(t)h
 (is)f(not)g(a)h(v)-5 b(alid)34 b(unary)e(op)s(erator,)i(the)g
-(expression)f(is)1110 4304 y(false.)630 4463 y(3)e(argumen)m(ts)1110
-4573 y(If)k(the)g(second)g(argumen)m(t)g(is)g(one)h(of)f(the)g(binary)f
-(conditional)j(op)s(erators)1110 4682 y(\(see)23 b(Section)g(6.4)f
+(expression)f(is)1110 4744 y(false.)630 4902 y(3)e(argumen)m(ts)1110
+5011 y(If)k(the)g(second)g(argumen)m(t)g(is)g(one)h(of)f(the)g(binary)f
+(conditional)j(op)s(erators)1110 5121 y(\(see)23 b(Section)g(6.4)f
 ([Bash)h(Conditional)f(Expressions],)h(page)g(77\),)i(the)d(result)1110
-4792 y(of)44 b(the)h(expression)f(is)g(the)g(result)g(of)h(the)f
-(binary)g(test)h(using)e(the)i(\014rst)1110 4902 y(and)31
+5230 y(of)44 b(the)h(expression)f(is)g(the)g(result)g(of)h(the)f
+(binary)g(test)h(using)e(the)i(\014rst)1110 5340 y(and)31
 b(third)g(argumen)m(ts)i(as)f(op)s(erands.)44 b(The)31
-b(`)p Fs(-a)p Ft(')h(and)g(`)p Fs(-o)p Ft(')f(op)s(erators)i(are)1110
-5011 y(considered)25 b(binary)g(op)s(erators)g(when)f(there)i(are)f
-(three)h(argumen)m(ts.)39 b(If)25 b(the)1110 5121 y(\014rst)j(argumen)m
-(t)h(is)g(`)p Fs(!)p Ft(',)h(the)f(v)-5 b(alue)29 b(is)g(the)g
-(negation)i(of)e(the)g(t)m(w)m(o-argumen)m(t)1110 5230
-y(test)38 b(using)f(the)g(second)g(and)g(third)f(argumen)m(ts.)61
-b(If)37 b(the)g(\014rst)f(argumen)m(t)1110 5340 y(is)j(exactly)i(`)p
-Fs(\()p Ft(')f(and)f(the)g(third)g(argumen)m(t)h(is)f(exactly)i(`)p
-Fs(\))p Ft(',)h(the)e(result)f(is)p eop end
+b(`)p Fs(-a)p Ft(')h(and)g(`)p Fs(-o)p Ft(')f(op)s(erators)i(are)p
+eop end
 %%Page: 40 46
 TeXDict begin 40 45 bop 150 -116 a Ft(40)2572 b(Bash)31
-b(Reference)g(Man)m(ual)1110 299 y(the)46 b(one-argumen)m(t)g(test)h
-(of)f(the)f(second)h(argumen)m(t.)86 b(Otherwise,)50
-b(the)1110 408 y(expression)30 b(is)h(false.)630 569
-y(4)g(argumen)m(ts)1110 678 y(If)h(the)i(\014rst)e(argumen)m(t)h(is)g
-(`)p Fs(!)p Ft(',)h(the)f(result)g(is)g(the)g(negation)h(of)f(the)g
-(three-)1110 788 y(argumen)m(t)h(expression)f(comp)s(osed)h(of)f(the)h
-(remaining)g(argumen)m(ts.)50 b(Oth-)1110 897 y(erwise,)34
-b(the)f(expression)g(is)g(parsed)g(and)f(ev)-5 b(aluated)34
-b(according)h(to)e(prece-)1110 1007 y(dence)e(using)e(the)i(rules)f
-(listed)h(ab)s(o)m(v)m(e.)630 1167 y(5)g(or)f(more)h(argumen)m(ts)1110
-1277 y(The)43 b(expression)f(is)i(parsed)e(and)g(ev)-5
-b(aluated)45 b(according)f(to)f(precedence)1110 1386
-y(using)30 b(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)150
-1547 y Fs(times)870 1681 y(times)630 1816 y Ft(Prin)m(t)37
-b(out)h(the)g(user)e(and)h(system)g(times)h(used)f(b)m(y)g(the)h(shell)
-f(and)g(its)h(c)m(hildren.)61 b(The)630 1926 y(return)29
-b(status)i(is)f(zero.)150 2086 y Fs(trap)870 2221 y(trap)47
-b([-lp])f([)p Fj(arg)11 b Fs(])46 b([)p Fj(sigspec)56
-b Fs(...)o(])630 2356 y Ft(The)43 b(commands)f(in)h Fq(arg)51
-b Ft(are)44 b(to)g(b)s(e)e(read)h(and)g(executed)h(when)e(the)h(shell)g
-(receiv)m(es)630 2465 y(signal)36 b Fq(sigsp)s(ec)p Ft(.)57
-b(If)35 b Fq(arg)44 b Ft(is)36 b(absen)m(t)g(\(and)f(there)h(is)g(a)f
-(single)i Fq(sigsp)s(ec)6 b Ft(\))35 b(or)h(equal)g(to)h(`)p
-Fs(-)p Ft(',)630 2575 y(eac)m(h)28 b(sp)s(eci\014ed)e(signal's)h(disp)s
+b(Reference)g(Man)m(ual)1110 299 y(considered)25 b(binary)g(op)s
+(erators)g(when)f(there)i(are)f(three)h(argumen)m(ts.)39
+b(If)25 b(the)1110 408 y(\014rst)j(argumen)m(t)h(is)g(`)p
+Fs(!)p Ft(',)h(the)f(v)-5 b(alue)29 b(is)g(the)g(negation)i(of)e(the)g
+(t)m(w)m(o-argumen)m(t)1110 518 y(test)38 b(using)f(the)g(second)g(and)
+g(third)f(argumen)m(ts.)61 b(If)37 b(the)g(\014rst)f(argumen)m(t)1110
+628 y(is)j(exactly)i(`)p Fs(\()p Ft(')f(and)f(the)g(third)g(argumen)m
+(t)h(is)f(exactly)i(`)p Fs(\))p Ft(',)h(the)e(result)f(is)1110
+737 y(the)46 b(one-argumen)m(t)g(test)h(of)f(the)f(second)h(argumen)m
+(t.)86 b(Otherwise,)50 b(the)1110 847 y(expression)30
+b(is)h(false.)630 993 y(4)g(argumen)m(ts)1110 1103 y(If)h(the)i
+(\014rst)e(argumen)m(t)h(is)g(`)p Fs(!)p Ft(',)h(the)f(result)g(is)g
+(the)g(negation)h(of)f(the)g(three-)1110 1212 y(argumen)m(t)h
+(expression)f(comp)s(osed)h(of)f(the)h(remaining)g(argumen)m(ts.)50
+b(Oth-)1110 1322 y(erwise,)34 b(the)f(expression)g(is)g(parsed)g(and)f
+(ev)-5 b(aluated)34 b(according)h(to)e(prece-)1110 1431
+y(dence)e(using)e(the)i(rules)f(listed)h(ab)s(o)m(v)m(e.)630
+1577 y(5)g(or)f(more)h(argumen)m(ts)1110 1687 y(The)43
+b(expression)f(is)i(parsed)e(and)g(ev)-5 b(aluated)45
+b(according)f(to)f(precedence)1110 1797 y(using)30 b(the)g(rules)g
+(listed)h(ab)s(o)m(v)m(e.)150 1943 y Fs(times)870 2071
+y(times)630 2198 y Ft(Prin)m(t)37 b(out)h(the)g(user)e(and)h(system)g
+(times)h(used)f(b)m(y)g(the)h(shell)f(and)g(its)h(c)m(hildren.)61
+b(The)630 2308 y(return)29 b(status)i(is)f(zero.)150
+2454 y Fs(trap)870 2582 y(trap)47 b([-lp])f([)p Fj(arg)11
+b Fs(])46 b([)p Fj(sigspec)56 b Fs(...)o(])630 2710 y
+Ft(The)43 b(commands)f(in)h Fq(arg)51 b Ft(are)44 b(to)g(b)s(e)e(read)h
+(and)g(executed)h(when)e(the)h(shell)g(receiv)m(es)630
+2819 y(signal)36 b Fq(sigsp)s(ec)p Ft(.)57 b(If)35 b
+Fq(arg)44 b Ft(is)36 b(absen)m(t)g(\(and)f(there)h(is)g(a)f(single)i
+Fq(sigsp)s(ec)6 b Ft(\))35 b(or)h(equal)g(to)h(`)p Fs(-)p
+Ft(',)630 2929 y(eac)m(h)28 b(sp)s(eci\014ed)e(signal's)h(disp)s
 (osition)f(is)h(reset)g(to)g(the)g(v)-5 b(alue)27 b(it)g(had)f(when)f
-(the)i(shell)g(w)m(as)630 2685 y(started.)63 b(If)37
+(the)i(shell)g(w)m(as)630 3039 y(started.)63 b(If)37
 b Fq(arg)46 b Ft(is)37 b(the)h(n)m(ull)g(string,)h(then)e(the)h(signal)
 h(sp)s(eci\014ed)d(b)m(y)i(eac)m(h)h Fq(sigsp)s(ec)k
-Ft(is)630 2794 y(ignored)36 b(b)m(y)g(the)g(shell)g(and)g(commands)f
+Ft(is)630 3148 y(ignored)36 b(b)m(y)g(the)g(shell)g(and)g(commands)f
 (it)i(in)m(v)m(ok)m(es.)59 b(If)35 b Fq(arg)45 b Ft(is)36
-b(not)g(presen)m(t)g(and)f(`)p Fs(-p)p Ft(')630 2904
+b(not)g(presen)m(t)g(and)f(`)p Fs(-p)p Ft(')630 3258
 y(has)e(b)s(een)g(supplied,)f(the)i(shell)f(displa)m(ys)h(the)f(trap)g
-(commands)g(asso)s(ciated)i(with)e(eac)m(h)630 3013 y
+(commands)g(asso)s(ciated)i(with)e(eac)m(h)630 3367 y
 Fq(sigsp)s(ec)p Ft(.)40 b(If)29 b(no)g(argumen)m(ts)g(are)g(supplied,)f
 (or)h(only)g(`)p Fs(-p)p Ft(')g(is)g(giv)m(en,)h Fs(trap)e
-Ft(prin)m(ts)g(the)h(list)630 3123 y(of)f(commands)f(asso)s(ciated)i
+Ft(prin)m(ts)g(the)h(list)630 3477 y(of)f(commands)f(asso)s(ciated)i
 (with)f(eac)m(h)h(signal)f(n)m(um)m(b)s(er)e(in)i(a)g(form)f(that)h(ma)
-m(y)h(b)s(e)e(reused)630 3232 y(as)c(shell)g(input.)37
+m(y)h(b)s(e)e(reused)630 3587 y(as)c(shell)g(input.)37
 b(The)23 b(`)p Fs(-l)p Ft(')f(option)i(causes)f(the)g(shell)g(to)g
 (prin)m(t)g(a)g(list)g(of)g(signal)h(names)f(and)630
-3342 y(their)33 b(corresp)s(onding)f(n)m(um)m(b)s(ers.)47
+3696 y(their)33 b(corresp)s(onding)f(n)m(um)m(b)s(ers.)47
 b(Eac)m(h)34 b Fq(sigsp)s(ec)39 b Ft(is)33 b(either)g(a)h(signal)g
-(name)f(or)g(a)g(signal)630 3452 y(n)m(um)m(b)s(er.)46
+(name)f(or)g(a)g(signal)630 3806 y(n)m(um)m(b)s(er.)46
 b(Signal)33 b(names)g(are)g(case)h(insensitiv)m(e)f(and)g(the)f
 Fs(SIG)g Ft(pre\014x)g(is)h(optional.)48 b(If)33 b(a)630
-3561 y Fq(sigsp)s(ec)h Ft(is)28 b Fs(0)f Ft(or)h Fs(EXIT)p
+3915 y Fq(sigsp)s(ec)h Ft(is)28 b Fs(0)f Ft(or)h Fs(EXIT)p
 Ft(,)f Fq(arg)37 b Ft(is)27 b(executed)i(when)e(the)h(shell)g(exits.)41
 b(If)27 b(a)i Fq(sigsp)s(ec)k Ft(is)28 b Fs(DEBUG)p Ft(,)630
-3671 y(the)40 b(command)g Fq(arg)48 b Ft(is)40 b(executed)h(b)s(efore)f
+4025 y(the)40 b(command)g Fq(arg)48 b Ft(is)40 b(executed)h(b)s(efore)f
 (ev)m(ery)g(simple)g(command,)j Fs(for)c Ft(command,)630
-3780 y Fs(case)28 b Ft(command,)i Fs(select)d Ft(command,)j(ev)m(ery)g
+4134 y Fs(case)28 b Ft(command,)i Fs(select)d Ft(command,)j(ev)m(ery)g
 (arithmetic)h Fs(for)d Ft(command,)i(and)e(b)s(efore)630
-3890 y(the)k(\014rst)e(command)h(executes)i(in)e(a)h(shell)f(function.)
+4244 y(the)k(\014rst)e(command)h(executes)i(in)e(a)h(shell)f(function.)
 44 b(Refer)31 b(to)h(the)g(description)f(of)h(the)630
-4000 y Fs(extglob)40 b Ft(option)i(to)g(the)g Fs(shopt)e
+4354 y Fs(extglob)40 b Ft(option)i(to)g(the)g Fs(shopt)e
 Ft(builtin)h(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)630
-4109 y(page)g(54\))g(for)e(details)i(of)f(its)h(e\013ect)g(on)f(the)g
+4463 y(page)g(55\))g(for)e(details)i(of)f(its)h(e\013ect)g(on)f(the)g
 Fs(DEBUG)f Ft(trap.)69 b(If)39 b(a)i Fq(sigsp)s(ec)k
-Ft(is)40 b Fs(ERR)p Ft(,)i(the)630 4219 y(command)h Fq(arg)52
+Ft(is)40 b Fs(ERR)p Ft(,)i(the)630 4573 y(command)h Fq(arg)52
 b Ft(is)44 b(executed)g(whenev)m(er)g(a)g(simple)f(command)h(has)f(a)h
-(non-zero)g(exit)630 4328 y(status,)30 b(sub)5 b(ject)30
+(non-zero)g(exit)630 4682 y(status,)30 b(sub)5 b(ject)30
 b(to)g(the)g(follo)m(wing)h(conditions.)41 b(The)30 b
 Fs(ERR)e Ft(trap)i(is)g(not)g(executed)g(if)g(the)630
-4438 y(failed)38 b(command)g(is)f(part)h(of)f(the)h(command)g(list)g
-(immediately)h(follo)m(wing)g(an)e Fs(until)630 4548
-y Ft(or)k Fs(while)f Ft(k)m(eyw)m(ord,)k(part)d(of)g(the)h(test)g(in)e
-(an)h Fs(if)g Ft(statemen)m(t,)46 b(part)40 b(of)i(a)f(command)630
-4657 y(executed)31 b(in)e(a)h Fs(&&)f Ft(or)h Fs(||)f
-Ft(list,)i(or)f(if)g(the)g(command's)f(return)g(status)h(is)g(b)s(eing)
-f(in)m(v)m(erted)630 4767 y(using)37 b Fs(!)p Ft(.)63
-b(These)38 b(are)g(the)g(same)g(conditions)h(ob)s(ey)m(ed)f(b)m(y)g
-(the)g Fs(errexit)d Ft(option.)64 b(If)38 b(a)630 4876
-y Fq(sigsp)s(ec)h Ft(is)33 b Fs(RETURN)p Ft(,)g(the)h(command)f
-Fq(arg)41 b Ft(is)34 b(executed)g(eac)m(h)h(time)f(a)f(shell)h
-(function)f(or)630 4986 y(a)e(script)f(executed)h(with)f(the)h
-Fs(.)f Ft(or)g Fs(source)f Ft(builtins)h(\014nishes)f(executing.)630
-5121 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i(to)g(the)f(shell)h
-(cannot)g(b)s(e)f(trapp)s(ed)f(or)h(reset.)59 b(T)-8
-b(rapp)s(ed)630 5230 y(signals)37 b(that)f(are)h(not)f(b)s(eing)f
-(ignored)h(are)h(reset)f(to)h(their)f(original)h(v)-5
-b(alues)37 b(in)e(a)i(c)m(hild)630 5340 y(pro)s(cess)30
-b(when)f(it)i(is)g(created.)p eop end
+4792 y(failed)e(command)g(is)g(part)f(of)h(the)g(command)f(list)i
+(immediately)g(follo)m(wing)g(an)f Fs(until)e Ft(or)630
+4902 y Fs(while)31 b Ft(k)m(eyw)m(ord,)i(part)g(of)f(the)g(test)i
+(follo)m(wing)f(the)g Fs(if)f Ft(or)g Fs(elif)f Ft(reserv)m(ed)i(w)m
+(ords,)f(part)630 5011 y(of)e(a)h(command)e(executed)i(in)f(a)g
+Fs(&&)f Ft(or)h Fs(||)g Ft(list,)h(or)f(if)g(the)g(command's)g(return)f
+(status)h(is)630 5121 y(b)s(eing)h(in)m(v)m(erted)h(using)g
+Fs(!)p Ft(.)43 b(These)32 b(are)f(the)h(same)g(conditions)g(ob)s(ey)m
+(ed)g(b)m(y)f(the)h Fs(errexit)630 5230 y Ft(option.)45
+b(If)32 b(a)g Fq(sigsp)s(ec)37 b Ft(is)32 b Fs(RETURN)p
+Ft(,)e(the)i(command)g Fq(arg)40 b Ft(is)32 b(executed)g(eac)m(h)h
+(time)g(a)f(shell)630 5340 y(function)e(or)g(a)h(script)f(executed)i
+(with)e(the)g Fs(.)g Ft(or)h Fs(source)d Ft(builtins)i(\014nishes)f
+(executing.)p eop end
 %%Page: 41 47
 TeXDict begin 41 46 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(41)630 299 y(The)30
-b(return)f(status)i(is)f(zero)h(unless)f(a)h Fq(sigsp)s(ec)36
+b(Shell)30 b(Builtin)h(Commands)2069 b(41)630 299 y(Signals)37
+b(ignored)f(up)s(on)f(en)m(try)i(to)g(the)f(shell)h(cannot)g(b)s(e)f
+(trapp)s(ed)f(or)h(reset.)59 b(T)-8 b(rapp)s(ed)630 408
+y(signals)37 b(that)f(are)h(not)f(b)s(eing)f(ignored)h(are)h(reset)f
+(to)h(their)f(original)h(v)-5 b(alues)37 b(in)e(a)i(c)m(hild)630
+518 y(pro)s(cess)30 b(when)f(it)i(is)g(created.)630 650
+y(The)f(return)f(status)i(is)f(zero)h(unless)f(a)h Fq(sigsp)s(ec)36
 b Ft(do)s(es)30 b(not)h(sp)s(ecify)f(a)g(v)-5 b(alid)31
-b(signal.)150 454 y Fs(umask)870 586 y(umask)46 b([-p])h([-S])g([)p
-Fj(mode)11 b Fs(])630 718 y Ft(Set)30 b(the)f(shell)h(pro)s(cess's)f
+b(signal.)150 805 y Fs(umask)870 937 y(umask)46 b([-p])h([-S])g([)p
+Fj(mode)11 b Fs(])630 1069 y Ft(Set)30 b(the)f(shell)h(pro)s(cess's)f
 (\014le)h(creation)g(mask)g(to)g Fq(mo)s(de)p Ft(.)40
 b(If)29 b Fq(mo)s(de)34 b Ft(b)s(egins)29 b(with)g(a)h(digit,)630
-828 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s(er;)
-e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f(mo)s
-(de)630 937 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f(the)g
-Fs(chmod)e Ft(command.)40 b(If)28 b Fq(mo)s(de)34 b Ft(is)28
-b(omitted,)j(the)630 1047 y(curren)m(t)36 b(v)-5 b(alue)36
-b(of)g(the)h(mask)f(is)g(prin)m(ted.)57 b(If)35 b(the)h(`)p
-Fs(-S)p Ft(')g(option)h(is)f(supplied)f(without)h(a)630
-1156 y Fq(mo)s(de)k Ft(argumen)m(t,)d(the)e(mask)g(is)g(prin)m(ted)g
-(in)g(a)h(sym)m(b)s(olic)f(format.)55 b(If)35 b(the)g(`)p
-Fs(-p)p Ft(')g(option)630 1266 y(is)f(supplied,)f(and)g
+1179 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s
+(er;)e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f
+(mo)s(de)630 1289 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f
+(the)g Fs(chmod)e Ft(command.)40 b(If)28 b Fq(mo)s(de)34
+b Ft(is)28 b(omitted,)j(the)630 1398 y(curren)m(t)36
+b(v)-5 b(alue)36 b(of)g(the)h(mask)f(is)g(prin)m(ted.)57
+b(If)35 b(the)h(`)p Fs(-S)p Ft(')g(option)h(is)f(supplied)f(without)h
+(a)630 1508 y Fq(mo)s(de)k Ft(argumen)m(t,)d(the)e(mask)g(is)g(prin)m
+(ted)g(in)g(a)h(sym)m(b)s(olic)f(format.)55 b(If)35 b(the)g(`)p
+Fs(-p)p Ft(')g(option)630 1617 y(is)f(supplied,)f(and)g
 Fq(mo)s(de)38 b Ft(is)33 b(omitted,)j(the)e(output)f(is)g(in)h(a)g
-(form)f(that)h(ma)m(y)g(b)s(e)f(reused)630 1376 y(as)e(input.)41
+(form)f(that)h(ma)m(y)g(b)s(e)f(reused)630 1727 y(as)e(input.)41
 b(The)31 b(return)f(status)h(is)g(zero)h(if)e(the)h(mo)s(de)g(is)g
-(successfully)g(c)m(hanged)g(or)g(if)g(no)630 1485 y
+(successfully)g(c)m(hanged)g(or)g(if)g(no)630 1837 y
 Fq(mo)s(de)k Ft(argumen)m(t)c(is)f(supplied,)g(and)f(non-zero)i
-(otherwise.)630 1617 y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in)
+(otherwise.)630 1969 y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in)
 m(terpreted)h(as)f(an)g(o)s(ctal)i(n)m(um)m(b)s(er,)e(eac)m(h)i(n)m(um)
-m(b)s(er)d(of)630 1727 y(the)f(umask)g(is)h(subtracted)f(from)f
+m(b)s(er)d(of)630 2078 y(the)f(umask)g(is)h(subtracted)f(from)f
 Fs(7)p Ft(.)53 b(Th)m(us,)34 b(a)h(umask)e(of)i Fs(022)e
-Ft(results)h(in)g(p)s(ermissions)630 1837 y(of)d Fs(755)p
-Ft(.)150 1991 y Fs(unset)870 2124 y(unset)46 b([-fv])h([)p
-Fj(name)11 b Fs(])630 2256 y Ft(Eac)m(h)34 b(v)-5 b(ariable)33
+Ft(results)h(in)g(p)s(ermissions)630 2188 y(of)d Fs(755)p
+Ft(.)150 2343 y Fs(unset)870 2475 y(unset)46 b([-fv])h([)p
+Fj(name)11 b Fs(])630 2607 y Ft(Eac)m(h)34 b(v)-5 b(ariable)33
 b(or)g(function)g Fq(name)38 b Ft(is)33 b(remo)m(v)m(ed.)50
 b(If)32 b(no)h(options)h(are)f(supplied,)g(or)g(the)630
-2365 y(`)p Fs(-v)p Ft(')h(option)h(is)g(giv)m(en,)h(eac)m(h)g
+2717 y(`)p Fs(-v)p Ft(')h(option)h(is)g(giv)m(en,)h(eac)m(h)g
 Fq(name)k Ft(refers)34 b(to)h(a)g(shell)f(v)-5 b(ariable.)54
-b(If)34 b(the)h(`)p Fs(-f)p Ft(')f(option)h(is)630 2475
+b(If)34 b(the)h(`)p Fs(-f)p Ft(')f(option)h(is)630 2826
 y(giv)m(en,)27 b(the)d Fq(name)5 b Ft(s)25 b(refer)f(to)h(shell)g
 (functions,)g(and)f(the)g(function)g(de\014nition)g(is)h(remo)m(v)m
-(ed.)630 2585 y(Readonly)32 b(v)-5 b(ariables)33 b(and)f(functions)f
+(ed.)630 2936 y(Readonly)32 b(v)-5 b(ariables)33 b(and)f(functions)f
 (ma)m(y)i(not)f(b)s(e)g(unset.)45 b(The)32 b(return)f(status)h(is)g
-(zero)630 2694 y(unless)e(a)g Fq(name)36 b Ft(is)30 b(readonly)-8
-b(.)150 2945 y Fr(4.2)68 b(Bash)45 b(Builtin)g(Commands)275
-3186 y Ft(This)30 b(section)j(describ)s(es)e(builtin)h(commands)f(whic)
+(zero)630 3046 y(unless)e(a)g Fq(name)36 b Ft(is)30 b(readonly)-8
+b(.)150 3296 y Fr(4.2)68 b(Bash)45 b(Builtin)g(Commands)275
+3538 y Ft(This)30 b(section)j(describ)s(es)e(builtin)h(commands)f(whic)
 m(h)g(are)i(unique)d(to)j(or)f(ha)m(v)m(e)h(b)s(een)e(extended)g(in)150
-3296 y(Bash.)41 b(Some)30 b(of)h(these)g(commands)f(are)g(sp)s
-(eci\014ed)g(in)g(the)h Fl(posix)e Ft(standard.)150 3451
-y Fs(alias)870 3583 y(alias)46 b([-p])h([)p Fj(name)11
-b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 3715 y Ft(Without)h(argumen)
+3647 y(Bash.)41 b(Some)30 b(of)h(these)g(commands)f(are)g(sp)s
+(eci\014ed)g(in)g(the)h Fl(posix)e Ft(standard.)150 3802
+y Fs(alias)870 3934 y(alias)46 b([-p])h([)p Fj(name)11
+b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 4067 y Ft(Without)h(argumen)
 m(ts)f(or)g(with)g(the)h(`)p Fs(-p)p Ft(')f(option,)k
 Fs(alias)41 b Ft(prin)m(ts)i(the)g(list)h(of)f(aliases)630
-3825 y(on)36 b(the)g(standard)f(output)h(in)f(a)i(form)e(that)i(allo)m
+4176 y(on)36 b(the)g(standard)f(output)h(in)f(a)i(form)e(that)i(allo)m
 (ws)g(them)f(to)g(b)s(e)g(reused)f(as)h(input.)56 b(If)630
-3934 y(argumen)m(ts)29 b(are)g(supplied,)f(an)h(alias)h(is)f(de\014ned)
+4286 y(argumen)m(ts)29 b(are)g(supplied,)f(an)h(alias)h(is)f(de\014ned)
 e(for)i(eac)m(h)h Fq(name)k Ft(whose)28 b Fq(v)-5 b(alue)35
-b Ft(is)29 b(giv)m(en.)630 4044 y(If)39 b(no)h Fq(v)-5
+b Ft(is)29 b(giv)m(en.)630 4395 y(If)39 b(no)h Fq(v)-5
 b(alue)45 b Ft(is)40 b(giv)m(en,)j(the)d(name)f(and)g(v)-5
 b(alue)40 b(of)g(the)g(alias)h(is)f(prin)m(ted.)68 b(Aliases)41
-b(are)630 4154 y(describ)s(ed)29 b(in)h(Section)i(6.6)f([Aliases],)h
-(page)f(79.)150 4308 y Fs(bind)870 4441 y(bind)47 b([-m)g
-Fj(keymap)11 b Fs(])45 b([-lpsvPSV])870 4550 y(bind)i([-m)g
+b(are)630 4505 y(describ)s(ed)29 b(in)h(Section)i(6.6)f([Aliases],)h
+(page)f(79.)150 4660 y Fs(bind)870 4792 y(bind)47 b([-m)g
+Fj(keymap)11 b Fs(])45 b([-lpsvPSV])870 4902 y(bind)i([-m)g
 Fj(keymap)11 b Fs(])45 b([-q)i Fj(function)11 b Fs(])45
 b([-u)h Fj(function)11 b Fs(])45 b([-r)i Fj(keyseq)11
-b Fs(])870 4660 y(bind)47 b([-m)g Fj(keymap)11 b Fs(])45
-b(-f)i Fj(filename)870 4769 y Fs(bind)g([-m)g Fj(keymap)11
-b Fs(])45 b(-x)i Fj(keyseq:shell-command)870 4879 y Fs(bind)g([-m)g
+b Fs(])870 5011 y(bind)47 b([-m)g Fj(keymap)11 b Fs(])45
+b(-f)i Fj(filename)870 5121 y Fs(bind)g([-m)g Fj(keymap)11
+b Fs(])45 b(-x)i Fj(keyseq:shell-command)870 5230 y Fs(bind)g([-m)g
 Fj(keymap)11 b Fs(])45 b Fj(keyseq:function-name)870
-4989 y Fs(bind)i Fj(readline-command)630 5121 y Ft(Displa)m(y)26
-b(curren)m(t)f(Readline)h(\(see)g(Chapter)f(8)g([Command)g(Line)g
-(Editing],)i(page)f(93\))g(k)m(ey)630 5230 y(and)36 b(function)g
-(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g(to)h(a)f(Readline)g
-(function)f(or)h(macro,)630 5340 y(or)44 b(set)h(a)g(Readline)f(v)-5
-b(ariable.)83 b(Eac)m(h)45 b(non-option)g(argumen)m(t)f(is)g(a)h
-(command)f(as)g(it)p eop end
+5340 y Fs(bind)i Fj(readline-command)p eop end
 %%Page: 42 48
 TeXDict begin 42 47 bop 150 -116 a Ft(42)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(w)m(ould)42 b(app)s(ear)f(in)h(a)h
-(Readline)g(initialization)i(\014le)d(\(see)h(Section)g(8.3)g
-([Readline)g(Init)630 408 y(File],)g(page)c(96\),)k(but)38
-b(eac)m(h)i(binding)e(or)h(command)g(m)m(ust)g(b)s(e)f(passed)g(as)i(a)
-f(separate)630 518 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs
-("\\C-x\\C-r":re-read-init-f)o(ile)p Ft('.)630 652 y(Options,)e(if)h
-(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630
-811 y Fs(-m)e Fj(keymap)1110 921 y Ft(Use)54 b Fq(k)m(eymap)j
-Ft(as)d(the)g(k)m(eymap)g(to)h(b)s(e)e(a\013ected)i(b)m(y)f(the)g
-(subsequen)m(t)1110 1031 y(bindings.)46 b(Acceptable)34
-b Fq(k)m(eymap)i Ft(names)c(are)h Fs(emacs)p Ft(,)f Fs(emacs-standard)p
-Ft(,)1110 1140 y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p
-Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p
-Ft(,)f(and)1110 1250 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38
-b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e Fs(vi-command)p
-Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110 1359
-y(to)31 b Fs(emacs-standard)p Ft(.)630 1518 y Fs(-l)384
-b Ft(List)31 b(the)f(names)g(of)h(all)g(Readline)g(functions.)630
-1678 y Fs(-p)384 b Ft(Displa)m(y)34 b(Readline)f(function)g(names)g
-(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m(a)m(y)f(that)1110
-1787 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g(in)g(a)h(Readline)
-g(initialization)i(\014le.)630 1946 y Fs(-P)384 b Ft(List)31
-b(curren)m(t)f(Readline)h(function)f(names)g(and)g(bindings.)630
-2105 y Fs(-v)384 b Ft(Displa)m(y)25 b(Readline)f(v)-5
-b(ariable)25 b(names)f(and)f(v)-5 b(alues)24 b(in)g(suc)m(h)f(a)i(w)m
-(a)m(y)f(that)h(they)1110 2215 y(can)31 b(b)s(e)e(used)h(as)h(input)e
-(or)h(in)g(a)h(Readline)g(initialization)j(\014le.)630
-2374 y Fs(-V)384 b Ft(List)31 b(curren)m(t)f(Readline)h(v)-5
-b(ariable)31 b(names)f(and)g(v)-5 b(alues.)630 2533 y
-Fs(-s)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s
-(ound)f(to)i(macros)g(and)f(the)g(strings)1110 2643 y(they)d(output)f
-(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g(can)g(b)s(e)f(used)g(as)h
-(input)e(or)i(in)g(a)1110 2752 y(Readline)d(initialization)i(\014le.)
-630 2911 y Fs(-S)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g
+b(Reference)g(Man)m(ual)630 299 y(Displa)m(y)26 b(curren)m(t)f
+(Readline)h(\(see)g(Chapter)f(8)g([Command)g(Line)g(Editing],)i(page)f
+(93\))g(k)m(ey)630 408 y(and)36 b(function)g(bindings,)i(bind)d(a)i(k)m
+(ey)g(sequence)g(to)h(a)f(Readline)g(function)f(or)h(macro,)630
+518 y(or)44 b(set)h(a)g(Readline)f(v)-5 b(ariable.)83
+b(Eac)m(h)45 b(non-option)g(argumen)m(t)f(is)g(a)h(command)f(as)g(it)
+630 628 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)g(initialization)i
+(\014le)d(\(see)h(Section)g(8.3)g([Readline)g(Init)630
+737 y(File],)g(page)c(96\),)k(but)38 b(eac)m(h)i(binding)e(or)h
+(command)g(m)m(ust)g(b)s(e)f(passed)g(as)i(a)f(separate)630
+847 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs("\\C-x\\C-r":re-read-init-f)o
+(ile)p Ft('.)630 981 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g
+(follo)m(wing)h(meanings:)630 1139 y Fs(-m)e Fj(keymap)1110
+1249 y Ft(Use)54 b Fq(k)m(eymap)j Ft(as)d(the)g(k)m(eymap)g(to)h(b)s(e)
+e(a\013ected)i(b)m(y)f(the)g(subsequen)m(t)1110 1358
+y(bindings.)46 b(Acceptable)34 b Fq(k)m(eymap)i Ft(names)c(are)h
+Fs(emacs)p Ft(,)f Fs(emacs-standard)p Ft(,)1110 1468
+y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p
+Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p Ft(,)f(and)1110
+1577 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5
+b(alen)m(t)41 b(to)e Fs(vi-command)p Ft(;)i Fs(emacs)c
+Ft(is)i(equiv)-5 b(alen)m(t)1110 1687 y(to)31 b Fs(emacs-standard)p
+Ft(.)630 1845 y Fs(-l)384 b Ft(List)31 b(the)f(names)g(of)h(all)g
+(Readline)g(functions.)630 2004 y Fs(-p)384 b Ft(Displa)m(y)34
+b(Readline)f(function)g(names)g(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m
+(a)m(y)f(that)1110 2113 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g
+(in)g(a)h(Readline)g(initialization)i(\014le.)630 2271
+y Fs(-P)384 b Ft(List)31 b(curren)m(t)f(Readline)h(function)f(names)g
+(and)g(bindings.)630 2430 y Fs(-v)384 b Ft(Displa)m(y)25
+b(Readline)f(v)-5 b(ariable)25 b(names)f(and)f(v)-5 b(alues)24
+b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 2539
+y(can)31 b(b)s(e)e(used)h(as)h(input)e(or)h(in)g(a)h(Readline)g
+(initialization)j(\014le.)630 2698 y Fs(-V)384 b Ft(List)31
+b(curren)m(t)f(Readline)h(v)-5 b(ariable)31 b(names)f(and)g(v)-5
+b(alues.)630 2856 y Fs(-s)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g
 (sequences)f(b)s(ound)f(to)i(macros)g(and)f(the)g(strings)1110
-3021 y(they)31 b(output.)630 3180 y Fs(-f)f Fj(filename)1110
-3290 y Ft(Read)h(k)m(ey)g(bindings)e(from)h Fq(\014lename)p
-Ft(.)630 3449 y Fs(-q)g Fj(function)1110 3558 y Ft(Query)g(ab)s(out)g
-(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h(the)f(named)f
-Fq(function)p Ft(.)630 3717 y Fs(-u)g Fj(function)1110
-3827 y Ft(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i(the)f(named)g
-Fq(function)p Ft(.)630 3986 y Fs(-r)g Fj(keyseq)1110
-4096 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f(binding)f(for)h
-Fq(k)m(eyseq)p Ft(.)630 4255 y Fs(-x)g Fj(keyseq:shell-command)1110
-4364 y Ft(Cause)35 b Fq(shell-command)k Ft(to)d(b)s(e)f(executed)h
+2966 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g
+(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 3075
+y(Readline)d(initialization)i(\014le.)630 3233 y Fs(-S)384
+b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s(ound)f(to)i
+(macros)g(and)f(the)g(strings)1110 3343 y(they)31 b(output.)630
+3501 y Fs(-f)f Fj(filename)1110 3611 y Ft(Read)h(k)m(ey)g(bindings)e
+(from)h Fq(\014lename)p Ft(.)630 3769 y Fs(-q)g Fj(function)1110
+3879 y Ft(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h
+(the)f(named)f Fq(function)p Ft(.)630 4037 y Fs(-u)g
+Fj(function)1110 4147 y Ft(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i
+(the)f(named)g Fq(function)p Ft(.)630 4305 y Fs(-r)g
+Fj(keyseq)1110 4415 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f(binding)f
+(for)h Fq(k)m(eyseq)p Ft(.)630 4573 y Fs(-x)g Fj(keyseq:shell-command)
+1110 4682 y Ft(Cause)35 b Fq(shell-command)k Ft(to)d(b)s(e)f(executed)h
 (whenev)m(er)f Fq(k)m(eyseq)j Ft(is)d(en)m(tered.)1110
-4474 y(When)46 b Fq(shell-command)k Ft(is)c(executed,)51
-b(the)46 b(shell)g(sets)g(the)g Fs(READLINE_)1110 4583
+4792 y(When)46 b Fq(shell-command)k Ft(is)c(executed,)51
+b(the)46 b(shell)g(sets)g(the)g Fs(READLINE_)1110 4902
 y(LINE)37 b Ft(v)-5 b(ariable)38 b(to)g(the)g(con)m(ten)m(ts)i(of)e
-(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 4693
+(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 5011
 y Fs(READLINE_POINT)e Ft(v)-5 b(ariable)39 b(to)h(the)e(curren)m(t)h
-(lo)s(cation)h(of)f(the)g(insertion)1110 4803 y(p)s(oin)m(t.)59
+(lo)s(cation)h(of)f(the)g(insertion)1110 5121 y(p)s(oin)m(t.)59
 b(If)37 b(the)f(executed)i(command)e(c)m(hanges)i(the)f(v)-5
-b(alue)37 b(of)f Fs(READLINE_)1110 4912 y(LINE)29 b Ft(or)h
+b(alue)37 b(of)f Fs(READLINE_)1110 5230 y(LINE)29 b Ft(or)h
 Fs(READLINE_POINT)p Ft(,)c(those)31 b(new)e(v)-5 b(alues)31
-b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 5022 y(editing)h(state.)
-630 5181 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v)
--5 b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s(ccurs.)
-150 5340 y Fs(builtin)p eop end
+b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 5340 y(editing)h(state.)p
+eop end
 %%Page: 43 49
 TeXDict begin 43 48 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(43)870 299 y Fs(builtin)46
-b([)p Fj(shell-builtin)54 b Fs([)p Fj(args)11 b Fs(]])630
-439 y Ft(Run)35 b(a)i(shell)f(builtin,)i(passing)e(it)h
-Fq(args)p Ft(,)h(and)e(return)f(its)i(exit)g(status.)59
-b(This)35 b(is)i(useful)630 548 y(when)29 b(de\014ning)h(a)g(shell)h
+b(Shell)30 b(Builtin)h(Commands)2069 b(43)630 299 y(The)26
+b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v)-5
+b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s(ccurs.)150
+461 y Fs(builtin)870 596 y(builtin)46 b([)p Fj(shell-builtin)54
+b Fs([)p Fj(args)11 b Fs(]])630 732 y Ft(Run)35 b(a)i(shell)f(builtin,)
+i(passing)e(it)h Fq(args)p Ft(,)h(and)e(return)f(its)i(exit)g(status.)
+59 b(This)35 b(is)i(useful)630 842 y(when)29 b(de\014ning)h(a)g(shell)h
 (function)f(with)g(the)g(same)h(name)f(as)h(a)g(shell)f(builtin,)g
-(retaining)630 658 y(the)k(functionalit)m(y)h(of)f(the)f(builtin)g
+(retaining)630 951 y(the)k(functionalit)m(y)h(of)f(the)f(builtin)g
 (within)g(the)h(function.)50 b(The)33 b(return)g(status)h(is)f(non-)630
-768 y(zero)e(if)g Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin)
-g(command.)150 938 y Fs(caller)870 1078 y(caller)46 b([)p
-Fj(expr)11 b Fs(])630 1218 y Ft(Returns)34 b(the)g(con)m(text)j(of)e
-(an)m(y)g(activ)m(e)i(subroutine)c(call)j(\(a)f(shell)g(function)f(or)h
-(a)g(script)630 1328 y(executed)c(with)f(the)h Fs(.)f
-Ft(or)g Fs(source)f Ft(builtins\).)630 1468 y(Without)45
+1061 y(zero)e(if)g Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f
+(builtin)g(command.)150 1223 y Fs(caller)870 1358 y(caller)46
+b([)p Fj(expr)11 b Fs(])630 1494 y Ft(Returns)34 b(the)g(con)m(text)j
+(of)e(an)m(y)g(activ)m(e)i(subroutine)c(call)j(\(a)f(shell)g(function)f
+(or)h(a)g(script)630 1604 y(executed)c(with)f(the)h Fs(.)f
+Ft(or)g Fs(source)f Ft(builtins\).)630 1739 y(Without)45
 b Fq(expr)p Ft(,)j Fs(caller)43 b Ft(displa)m(ys)i(the)f(line)h(n)m(um)
-m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 1577
+m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 1849
 y(curren)m(t)35 b(subroutine)g(call.)58 b(If)35 b(a)h(non-negativ)m(e)i
 (in)m(teger)f(is)f(supplied)e(as)i Fq(expr)p Ft(,)h Fs(caller)630
-1687 y Ft(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
+1958 y Ft(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
 (name,)44 b(and)c(source)g(\014le)h(corresp)s(onding)e(to)630
-1797 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
+2068 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
 (stac)m(k.)54 b(This)34 b(extra)h(information)g(ma)m(y)630
-1906 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
+2178 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
 (k)h(trace.)42 b(The)29 b(curren)m(t)i(frame)f(is)g(frame)h(0.)630
-2046 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g
+2313 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g
 (is)h(not)f(executing)h(a)g(subroutine)e(call)i(or)g
-Fq(expr)630 2156 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5
+Fq(expr)630 2423 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5
 b(alid)30 b(p)s(osition)h(in)f(the)g(call)i(stac)m(k.)150
-2326 y Fs(command)870 2466 y(command)46 b([-pVv])g Fj(command)56
-b Fs([)p Fj(arguments)g Fs(...)o(])630 2606 y Ft(Runs)32
+2585 y Fs(command)870 2720 y(command)46 b([-pVv])g Fj(command)56
+b Fs([)p Fj(arguments)g Fs(...)o(])630 2856 y Ft(Runs)32
 b Fq(command)k Ft(with)d Fq(argumen)m(ts)k Ft(ignoring)c(an)m(y)g
-(shell)h(function)e(named)h Fq(command)p Ft(.)630 2716
+(shell)h(function)e(named)h Fq(command)p Ft(.)630 2966
 y(Only)39 b(shell)i(builtin)e(commands)h(or)g(commands)f(found)g(b)m(y)
-h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 2826 y(executed.)g(If)23
+h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 3075 y(executed.)g(If)23
 b(there)h(is)f(a)h(shell)f(function)g(named)g Fs(ls)p
 Ft(,)i(running)c(`)p Fs(command)29 b(ls)p Ft(')23 b(within)g(the)630
-2935 y(function)33 b(will)g(execute)i(the)f(external)g(command)f
+3185 y(function)33 b(will)g(execute)i(the)f(external)g(command)f
 Fs(ls)f Ft(instead)i(of)f(calling)i(the)e(function)630
-3045 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p
+3294 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p
 Ft(')h(option)g(means)f(to)h(use)g(a)f(default)h(v)-5
-b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 3154 y(guaran)m(teed)35
+b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 3404 y(guaran)m(teed)35
 b(to)f(\014nd)e(all)j(of)f(the)g(standard)f(utilities.)52
-b(The)33 b(return)g(status)h(in)f(this)h(case)630 3264
+b(The)33 b(return)g(status)h(in)f(this)h(case)630 3513
 y(is)29 b(127)g(if)g Fq(command)j Ft(cannot)d(b)s(e)e(found)h(or)g(an)g
 (error)h(o)s(ccurred,)f(and)g(the)h(exit)g(status)g(of)630
-3373 y Fq(command)34 b Ft(otherwise.)630 3513 y(If)25
+3623 y Fq(command)34 b Ft(otherwise.)630 3759 y(If)25
 b(either)g(the)h(`)p Fs(-V)p Ft(')f(or)g(`)p Fs(-v)p
 Ft(')g(option)g(is)g(supplied,)h(a)f(description)g(of)h
-Fq(command)i Ft(is)d(prin)m(ted.)630 3623 y(The)i(`)p
+Fq(command)i Ft(is)d(prin)m(ted.)630 3868 y(The)i(`)p
 Fs(-v)p Ft(')h(option)h(causes)f(a)h(single)f(w)m(ord)g(indicating)h
-(the)f(command)g(or)g(\014le)g(name)g(used)630 3733 y(to)36
+(the)f(command)g(or)g(\014le)g(name)g(used)630 3978 y(to)36
 b(in)m(v)m(ok)m(e)g Fq(command)j Ft(to)c(b)s(e)g(displa)m(y)m(ed;)j
 (the)d(`)p Fs(-V)p Ft(')g(option)g(pro)s(duces)e(a)j(more)f(v)m(erb)s
-(ose)630 3842 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
+(ose)630 4088 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
 (status)h(is)g(zero)h(if)f Fq(command)k Ft(is)c(found,)h(and)630
-3952 y(non-zero)31 b(if)f(not.)150 4122 y Fs(declare)870
-4262 y(declare)46 b([-aAfFilrtux])e([-p])j([)p Fj(name)11
-b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 4402 y Ft(Declare)29
+4197 y(non-zero)31 b(if)f(not.)150 4359 y Fs(declare)870
+4495 y(declare)46 b([-aAfFilrtux])e([-p])j([)p Fj(name)11
+b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 4630 y Ft(Declare)29
 b(v)-5 b(ariables)28 b(and)e(giv)m(e)j(them)e(attributes.)40
 b(If)27 b(no)g Fq(name)5 b Ft(s)27 b(are)h(giv)m(en,)h(then)e(displa)m
-(y)630 4512 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
-b(instead.)630 4652 y(The)d(`)p Fs(-p)p Ft(')g(option)g(will)h(displa)m
+(y)630 4740 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
+b(instead.)630 4876 y(The)d(`)p Fs(-p)p Ft(')g(option)g(will)h(displa)m
 (y)f(the)h(attributes)f(and)g(v)-5 b(alues)28 b(of)h(eac)m(h)g
-Fq(name)p Ft(.)40 b(When)28 b(`)p Fs(-p)p Ft(')630 4762
+Fq(name)p Ft(.)40 b(When)28 b(`)p Fs(-p)p Ft(')630 4985
 y(is)i(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31
-b(additional)g(options)f(are)h(ignored.)630 4902 y(When)36
+b(additional)g(options)f(are)h(ignored.)630 5121 y(When)36
 b(`)p Fs(-p)p Ft(')f(is)h(supplied)f(without)h Fq(name)41
 b Ft(argumen)m(ts,)d Fs(declare)c Ft(will)i(displa)m(y)g(the)g(at-)630
-5011 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
+5230 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
 b(ariables)31 b(ha)m(ving)h(the)f(attributes)g(sp)s(eci\014ed)f(b)m(y)h
-(the)g(addi-)630 5121 y(tional)h(options.)41 b(If)30
+(the)g(addi-)630 5340 y(tional)h(options.)41 b(If)30
 b(no)g(other)h(options)g(are)g(supplied)e(with)h(`)p
-Fs(-p)p Ft(',)g Fs(declare)f Ft(will)i(displa)m(y)630
-5230 y(the)f(attributes)g(and)e(v)-5 b(alues)30 b(of)g(all)g(shell)g(v)
--5 b(ariables.)41 b(The)29 b(`)p Fs(-f)p Ft(')g(option)h(will)g
-(restrict)g(the)630 5340 y(displa)m(y)h(to)g(shell)f(functions.)p
-eop end
+Fs(-p)p Ft(',)g Fs(declare)f Ft(will)i(displa)m(y)p eop
+end
 %%Page: 44 50
 TeXDict begin 44 49 bop 150 -116 a Ft(44)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(The)36 b(`)p Fs(-F)p
-Ft(')h(option)g(inhibits)f(the)h(displa)m(y)g(of)g(function)g
-(de\014nitions;)i(only)e(the)g(function)630 408 y(name)30
-b(and)f(attributes)i(are)f(prin)m(ted.)40 b(If)30 b(the)g
-Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled)g(using)630
-518 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f
-(Builtin],)k(page)e(54\),)i(the)d(source)h(\014le)f(name)h(and)630
-628 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h
+b(Reference)g(Man)m(ual)630 299 y(the)f(attributes)g(and)e(v)-5
+b(alues)30 b(of)g(all)g(shell)g(v)-5 b(ariables.)41 b(The)29
+b(`)p Fs(-f)p Ft(')g(option)h(will)g(restrict)g(the)630
+408 y(displa)m(y)h(to)g(shell)f(functions.)630 545 y(The)36
+b(`)p Fs(-F)p Ft(')h(option)g(inhibits)f(the)h(displa)m(y)g(of)g
+(function)g(de\014nitions;)i(only)e(the)g(function)630
+655 y(name)30 b(and)f(attributes)i(are)f(prin)m(ted.)40
+b(If)30 b(the)g Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled)g(using)
+630 765 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f
+(Builtin],)k(page)e(55\),)i(the)d(source)h(\014le)f(name)h(and)630
+874 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h
 (de\014ned)e(are)i(displa)m(y)m(ed)h(as)e(w)m(ell.)64
-b(`)p Fs(-F)p Ft(')38 b(implies)630 737 y(`)p Fs(-f)p
+b(`)p Fs(-F)p Ft(')38 b(implies)630 984 y(`)p Fs(-f)p
 Ft('.)i(The)28 b(follo)m(wing)i(options)f(can)f(b)s(e)g(used)g(to)h
 (restrict)g(output)f(to)h(v)-5 b(ariables)30 b(with)e(the)630
-847 y(sp)s(eci\014ed)i(attributes)h(or)f(to)h(giv)m(e)h(v)-5
-b(ariables)31 b(attributes:)630 1000 y Fs(-a)384 b Ft(Eac)m(h)36
+1093 y(sp)s(eci\014ed)i(attributes)h(or)f(to)h(giv)m(e)h(v)-5
+b(ariables)31 b(attributes:)630 1258 y Fs(-a)384 b Ft(Eac)m(h)36
 b Fq(name)k Ft(is)34 b(an)h(indexed)g(arra)m(y)g(v)-5
 b(ariable)36 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)1110
-1110 y(page)31 b(80\).)630 1263 y Fs(-A)384 b Ft(Eac)m(h)24
+1367 y(page)31 b(80\).)630 1532 y Fs(-A)384 b Ft(Eac)m(h)24
 b Fq(name)k Ft(is)23 b(an)g(asso)s(ciativ)m(e)j(arra)m(y)e(v)-5
 b(ariable)24 b(\(see)g(Section)g(6.7)g([Arra)m(ys],)1110
-1373 y(page)31 b(80\).)630 1526 y Fs(-f)384 b Ft(Use)31
-b(function)f(names)g(only)-8 b(.)630 1680 y Fs(-i)384
+1641 y(page)31 b(80\).)630 1806 y Fs(-f)384 b Ft(Use)31
+b(function)f(names)g(only)-8 b(.)630 1970 y Fs(-i)384
 b Ft(The)36 b(v)-5 b(ariable)37 b(is)f(to)h(b)s(e)f(treated)h(as)g(an)f
 (in)m(teger;)41 b(arithmetic)c(ev)-5 b(aluation)1110
-1789 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(78\))h
-(is)f(p)s(erformed)e(when)h(the)1110 1899 y(v)-5 b(ariable)31
-b(is)g(assigned)f(a)h(v)-5 b(alue.)630 2052 y Fs(-l)384
+2080 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(78\))h
+(is)f(p)s(erformed)e(when)h(the)1110 2189 y(v)-5 b(ariable)31
+b(is)g(assigned)f(a)h(v)-5 b(alue.)630 2354 y Fs(-l)384
 b Ft(When)26 b(the)g(v)-5 b(ariable)27 b(is)f(assigned)g(a)g(v)-5
 b(alue,)28 b(all)f(upp)s(er-case)e(c)m(haracters)j(are)1110
-2162 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)43 b(The)30
-b(upp)s(er-case)g(attribute)h(is)g(disabled.)630 2315
+2463 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)43 b(The)30
+b(upp)s(er-case)g(attribute)h(is)g(disabled.)630 2628
 y Fs(-r)384 b Ft(Mak)m(e)25 b Fq(name)5 b Ft(s)23 b(readonly)-8
 b(.)39 b(These)24 b(names)f(cannot)h(then)f(b)s(e)g(assigned)h(v)-5
-b(alues)1110 2425 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h
-(statemen)m(ts)h(or)f(unset.)630 2578 y Fs(-t)384 b Ft(Giv)m(e)33
+b(alues)1110 2737 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h
+(statemen)m(ts)h(or)f(unset.)630 2902 y Fs(-t)384 b Ft(Giv)m(e)33
 b(eac)m(h)h Fq(name)j Ft(the)32 b Fs(trace)f Ft(attribute.)46
-b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 2688
+b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 3011
 y Fs(DEBUG)26 b Ft(and)h Fs(RETURN)f Ft(traps)h(from)g(the)h(calling)h
-(shell.)40 b(The)27 b(trace)i(attribute)1110 2798 y(has)h(no)g(sp)s
-(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 2951 y
+(shell.)40 b(The)27 b(trace)i(attribute)1110 3121 y(has)h(no)g(sp)s
+(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 3285 y
 Fs(-u)384 b Ft(When)28 b(the)h(v)-5 b(ariable)29 b(is)f(assigned)h(a)f
 (v)-5 b(alue,)30 b(all)f(lo)m(w)m(er-case)i(c)m(haracters)f(are)1110
-3061 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40 b(The)30
-b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630 3214
+3395 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40 b(The)30
+b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630 3559
 y Fs(-x)384 b Ft(Mark)30 b(eac)m(h)h Fq(name)k Ft(for)29
 b(exp)s(ort)h(to)g(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110
-3324 y(ronmen)m(t.)630 3477 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g
+3669 y(ronmen)m(t.)630 3833 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g
 (`)p Fs(-)p Ft(')g(turns)f(o\013)i(the)f(attribute)h(instead,)g(with)f
-(the)g(exceptions)h(that)630 3587 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f
+(the)g(exceptions)h(that)630 3943 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f
 (b)s(e)f(used)g(to)i(destro)m(y)g(an)f(arra)m(y)g(v)-5
 b(ariable)31 b(and)f(`)p Fs(+r)p Ft(')g(will)g(not)g(remo)m(v)m(e)i
-(the)630 3696 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h
+(the)630 4052 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h
 (function,)g Fs(declare)e Ft(mak)m(es)j(eac)m(h)f Fq(name)35
-b Ft(lo)s(cal,)630 3806 y(as)24 b(with)g(the)g Fs(local)e
+b Ft(lo)s(cal,)630 4162 y(as)24 b(with)g(the)g Fs(local)e
 Ft(command.)39 b(If)23 b(a)i(v)-5 b(ariable)24 b(name)g(is)g(follo)m(w)
 m(ed)i(b)m(y)e(=)p Fq(v)-5 b(alue)p Ft(,)25 b(the)f(v)-5
-b(alue)630 3915 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
-Fq(v)-5 b(alue)p Ft(.)630 4047 y(The)35 b(return)f(status)i(is)g(zero)g
+b(alue)630 4271 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
+Fq(v)-5 b(alue)p Ft(.)630 4408 y(The)35 b(return)f(status)i(is)g(zero)g
 (unless)f(an)g(in)m(v)-5 b(alid)36 b(option)g(is)g(encoun)m(tered,)h
-(an)f(attempt)630 4156 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g
+(an)f(attempt)630 4518 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g
 (using)f(`)p Fs(-f)f(foo=bar)p Ft(',)h(an)h(attempt)g(is)g(made)g(to)h
-(assign)630 4266 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
+(assign)630 4628 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
 b(ariable,)47 b(an)42 b(attempt)h(is)f(made)g(to)h(assign)f(a)h(v)-5
-b(alue)42 b(to)h(an)630 4376 y(arra)m(y)30 b(v)-5 b(ariable)30
+b(alue)42 b(to)h(an)630 4737 y(arra)m(y)30 b(v)-5 b(ariable)30
 b(without)g(using)e(the)i(comp)s(ound)e(assignmen)m(t)i(syn)m(tax)g
-(\(see)h(Section)f(6.7)630 4485 y([Arra)m(ys],)47 b(page)c(80\),)48
+(\(see)h(Section)f(6.7)630 4847 y([Arra)m(ys],)47 b(page)c(80\),)48
 b(one)43 b(of)g(the)g Fq(names)k Ft(is)c(not)g(a)g(v)-5
 b(alid)43 b(shell)g(v)-5 b(ariable)44 b(name,)i(an)630
-4595 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
+4956 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
 (for)g(a)h(readonly)f(v)-5 b(ariable,)29 b(an)e(attempt)630
-4704 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
+5066 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
 (arra)m(y)h(v)-5 b(ariable,)30 b(or)e(an)g(attempt)i(is)e(made)g(to)630
-4814 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p
-Fs(-f)p Ft('.)150 4967 y Fs(echo)870 5099 y(echo)47 b([-neE])f([)p
-Fj(arg)57 b Fs(...)o(])630 5230 y Ft(Output)31 b(the)i
-Fq(arg)8 b Ft(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)g(with)f
-(a)h(newline.)47 b(The)32 b(return)630 5340 y(status)40
-b(is)g(alw)m(a)m(ys)h(0.)69 b(If)39 b(`)p Fs(-n)p Ft(')h(is)f(sp)s
-(eci\014ed,)j(the)e(trailing)h(newline)e(is)h(suppressed.)66
-b(If)p eop end
+5176 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p
+Fs(-f)p Ft('.)150 5340 y Fs(echo)p eop end
 %%Page: 45 51
 TeXDict begin 45 50 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(45)630 299 y(the)29
-b(`)p Fs(-e)p Ft(')g(option)g(is)h(giv)m(en,)g(in)m(terpretation)g(of)g
-(the)f(follo)m(wing)h(bac)m(kslash-escap)s(ed)g(c)m(har-)630
-408 y(acters)38 b(is)f(enabled.)60 b(The)36 b(`)p Fs(-E)p
-Ft(')h(option)g(disables)g(the)g(in)m(terpretation)h(of)f(these)g
-(escap)s(e)630 518 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g(where)f
-(they)h(are)g(in)m(terpreted)h(b)m(y)e(default.)55 b(The)34
-b Fs(xpg_)630 628 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s(e)e(used)h
-(to)h(dynamically)g(determine)f(whether)f(or)i(not)f
-Fs(echo)630 737 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g
+b(Shell)30 b(Builtin)h(Commands)2069 b(45)870 299 y Fs(echo)47
+b([-neE])f([)p Fj(arg)57 b Fs(...)o(])630 436 y Ft(Output)31
+b(the)i Fq(arg)8 b Ft(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)
+g(with)f(a)h(newline.)47 b(The)32 b(return)630 545 y(status)40
+b(is)g(alw)m(a)m(ys)h(0.)69 b(If)39 b(`)p Fs(-n)p Ft(')h(is)f(sp)s
+(eci\014ed,)j(the)e(trailing)h(newline)e(is)h(suppressed.)66
+b(If)630 655 y(the)29 b(`)p Fs(-e)p Ft(')g(option)g(is)h(giv)m(en,)g
+(in)m(terpretation)g(of)g(the)f(follo)m(wing)h(bac)m(kslash-escap)s(ed)
+g(c)m(har-)630 765 y(acters)38 b(is)f(enabled.)60 b(The)36
+b(`)p Fs(-E)p Ft(')h(option)g(disables)g(the)g(in)m(terpretation)h(of)f
+(these)g(escap)s(e)630 874 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g
+(where)f(they)h(are)g(in)m(terpreted)h(b)m(y)e(default.)55
+b(The)34 b Fs(xpg_)630 984 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s(e)
+e(used)h(to)h(dynamically)g(determine)f(whether)f(or)i(not)f
+Fs(echo)630 1093 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g
 (b)m(y)g(default.)70 b Fs(echo)39 b Ft(do)s(es)h(not)g(in)m(terpret)h
-(`)p Fs(--)p Ft(')f(to)630 847 y(mean)30 b(the)h(end)f(of)g(options.)
-630 976 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f
-(sequences:)630 1126 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630
-1275 y Fs(\\b)384 b Ft(bac)m(kspace)630 1425 y Fs(\\c)g
-Ft(suppress)28 b(further)h(output)630 1574 y Fs(\\e)384
-b Ft(escap)s(e)630 1724 y Fs(\\f)g Ft(form)30 b(feed)630
-1873 y Fs(\\n)384 b Ft(new)30 b(line)630 2022 y Fs(\\r)384
-b Ft(carriage)32 b(return)630 2172 y Fs(\\t)384 b Ft(horizon)m(tal)32
-b(tab)630 2321 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
-2471 y Fs(\\\\)384 b Ft(bac)m(kslash)630 2620 y Fs(\\0)p
+(`)p Fs(--)p Ft(')f(to)630 1203 y(mean)30 b(the)h(end)f(of)g(options.)
+630 1340 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)
+f(sequences:)630 1504 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630
+1669 y Fs(\\b)384 b Ft(bac)m(kspace)630 1833 y Fs(\\c)g
+Ft(suppress)28 b(further)h(output)630 1998 y Fs(\\e)384
+b Ft(escap)s(e)630 2162 y Fs(\\f)g Ft(form)30 b(feed)630
+2326 y Fs(\\n)384 b Ft(new)30 b(line)630 2491 y Fs(\\r)384
+b Ft(carriage)32 b(return)630 2655 y Fs(\\t)384 b Ft(horizon)m(tal)32
+b(tab)630 2819 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
+2984 y Fs(\\\\)384 b Ft(bac)m(kslash)630 3148 y Fs(\\0)p
 Fj(nnn)240 b Ft(the)32 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e(v)-5
 b(alue)33 b(is)f(the)g(o)s(ctal)i(v)-5 b(alue)32 b Fq(nnn)f
-Ft(\(zero)i(to)1110 2730 y(three)e(o)s(ctal)g(digits\))630
-2879 y Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
+Ft(\(zero)i(to)1110 3258 y(three)e(o)s(ctal)g(digits\))630
+3422 y Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g
 (whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
-b(alue)40 b Fq(HH)1110 2989 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
-(digits\))150 3138 y Fs(enable)870 3268 y(enable)46 b([-a])h([-dnps])f
+b(alue)40 b Fq(HH)1110 3532 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))150 3696 y Fs(enable)870 3833 y(enable)46 b([-a])h([-dnps])f
 ([-f)g Fj(filename)11 b Fs(])45 b([)p Fj(name)57 b Fs(...)o(])630
-3397 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
+3970 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
 b(Disabling)37 b(a)g(builtin)e(allo)m(ws)i(a)f(disk)630
-3507 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
-(builtin)e(to)i(b)s(e)f(executed)h(without)630 3616 y(sp)s(ecifying)27
+4080 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
+(builtin)e(to)i(b)s(e)f(executed)h(without)630 4189 y(sp)s(ecifying)27
 b(a)g(full)g(pathname,)g(ev)m(en)h(though)f(the)g(shell)g(normally)g
-(searc)m(hes)h(for)f(builtins)630 3726 y(b)s(efore)32
+(searc)m(hes)h(for)f(builtins)630 4299 y(b)s(efore)32
 b(disk)f(commands.)46 b(If)31 b(`)p Fs(-n)p Ft(')h(is)g(used,)g(the)g
 Fq(name)5 b Ft(s)32 b(b)s(ecome)h(disabled.)45 b(Otherwise)630
-3836 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8
+4408 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8
 b(or)45 b(example,)k(to)c(use)f(the)g Fs(test)f Ft(binary)h(found)f
-(via)h Fs($PATH)630 3945 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g
+(via)h Fs($PATH)630 4518 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g
 (v)m(ersion,)h(t)m(yp)s(e)g(`)p Fs(enable)e(-n)h(test)p
-Ft('.)630 4075 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f
+Ft('.)630 4655 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f
 (supplied,)j(or)d(no)h Fq(name)k Ft(argumen)m(ts)c(app)s(ear,)i(a)e
-(list)g(of)g(shell)630 4184 y(builtins)37 b(is)h(prin)m(ted.)63
+(list)g(of)g(shell)630 4765 y(builtins)37 b(is)h(prin)m(ted.)63
 b(With)38 b(no)f(other)h(argumen)m(ts,)j(the)d(list)g(consists)g(of)g
-(all)h(enabled)630 4294 y(shell)33 b(builtins.)46 b(The)32
+(all)h(enabled)630 4874 y(shell)33 b(builtins.)46 b(The)32
 b(`)p Fs(-a)p Ft(')h(option)g(means)f(to)i(list)f(eac)m(h)h(builtin)e
-(with)g(an)g(indication)i(of)630 4403 y(whether)c(or)g(not)h(it)g(is)f
-(enabled.)630 4533 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h
+(with)g(an)g(indication)i(of)630 4984 y(whether)c(or)g(not)h(it)g(is)f
+(enabled.)630 5121 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h
 (load)g(the)f(new)f(builtin)h(command)g Fq(name)45 b
-Ft(from)40 b(shared)630 4643 y(ob)5 b(ject)27 b Fq(\014lename)p
+Ft(from)40 b(shared)630 5230 y(ob)5 b(ject)27 b Fq(\014lename)p
 Ft(,)g(on)f(systems)g(that)h(supp)s(ort)d(dynamic)i(loading.)40
-b(The)26 b(`)p Fs(-d)p Ft(')g(option)h(will)630 4752
+b(The)26 b(`)p Fs(-d)p Ft(')g(option)h(will)630 5340
 y(delete)32 b(a)e(builtin)g(loaded)h(with)f(`)p Fs(-f)p
-Ft('.)630 4882 y(If)h(there)g(are)g(no)g(options,)h(a)f(list)h(of)f
-(the)g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)43 b(The)31
-b(`)p Fs(-s)p Ft(')f(option)630 4991 y(restricts)f Fs(enable)e
-Ft(to)i(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)40
+Ft('.)p eop end
+%%Page: 46 52
+TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y(If)g(there)g(are)g(no)g(options,)h(a)
+f(list)h(of)f(the)g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)43
+b(The)31 b(`)p Fs(-s)p Ft(')f(option)630 408 y(restricts)f
+Fs(enable)e Ft(to)i(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)40
 b(If)27 b(`)p Fs(-s)p Ft(')i(is)f(used)g(with)g(`)p Fs(-f)p
-Ft(',)h(the)f(new)630 5101 y(builtin)i(b)s(ecomes)h(a)f(sp)s(ecial)h
+Ft(',)h(the)f(new)630 518 y(builtin)i(b)s(ecomes)h(a)f(sp)s(ecial)h
 (builtin)f(\(see)i(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)g(page)g
-(59\).)630 5230 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
+(59\).)630 650 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
 Fq(name)k Ft(is)26 b(not)g(a)h(shell)f(builtin)g(or)g(there)g(is)g(an)g
-(error)630 5340 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
-(ob)5 b(ject.)p eop end
-%%Page: 46 52
-TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(help)870 435 y(help)47
-b([-dms])f([)p Fj(pattern)11 b Fs(])630 571 y Ft(Displa)m(y)40
-b(helpful)e(information)h(ab)s(out)g(builtin)f(commands.)66
-b(If)38 b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 681
-y Fs(help)28 b Ft(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)e
-(matc)m(hing)i Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630
-791 y(the)h(builtins)e(is)i(prin)m(ted.)630 927 y(Options,)f(if)h
+(error)630 760 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
+(ob)5 b(ject.)150 915 y Fs(help)870 1047 y(help)47 b([-dms])f([)p
+Fj(pattern)11 b Fs(])630 1179 y Ft(Displa)m(y)40 b(helpful)e
+(information)h(ab)s(out)g(builtin)f(commands.)66 b(If)38
+b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 1288 y Fs(help)28
+b Ft(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)e(matc)m(hing)i
+Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630 1398
+y(the)h(builtins)e(is)i(prin)m(ted.)630 1530 y(Options,)f(if)h
 (supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630
-1090 y Fs(-d)384 b Ft(Displa)m(y)32 b(a)e(short)g(description)h(of)f
-(eac)m(h)i Fq(pattern)630 1253 y Fs(-m)384 b Ft(Displa)m(y)32
+1685 y Fs(-d)384 b Ft(Displa)m(y)32 b(a)e(short)g(description)h(of)f
+(eac)m(h)i Fq(pattern)630 1840 y Fs(-m)384 b Ft(Displa)m(y)32
 b(the)e(description)g(of)h(eac)m(h)h Fq(pattern)e Ft(in)g(a)h
-(manpage-lik)m(e)h(format)630 1416 y Fs(-s)384 b Ft(Displa)m(y)32
+(manpage-lik)m(e)h(format)630 1994 y Fs(-s)384 b Ft(Displa)m(y)32
 b(only)e(a)h(short)f(usage)h(synopsis)e(for)i(eac)m(h)g
-Fq(pattern)630 1578 y Ft(The)f(return)f(status)i(is)f(zero)h(unless)f
-(no)g(command)h(matc)m(hes)g Fq(pattern)p Ft(.)150 1741
-y Fs(let)870 1878 y(let)47 b Fj(expression)55 b Fs([)p
-Fj(expression)11 b Fs(])630 2014 y Ft(The)41 b Fs(let)g
+Fq(pattern)630 2149 y Ft(The)f(return)f(status)i(is)f(zero)h(unless)f
+(no)g(command)h(matc)m(hes)g Fq(pattern)p Ft(.)150 2304
+y Fs(let)870 2436 y(let)47 b Fj(expression)55 b Fs([)p
+Fj(expression)11 b Fs(])630 2568 y Ft(The)41 b Fs(let)g
 Ft(builtin)g(allo)m(ws)i(arithmetic)f(to)h(b)s(e)d(p)s(erformed)g(on)i
-(shell)g(v)-5 b(ariables.)74 b(Eac)m(h)630 2123 y Fq(expression)31
+(shell)g(v)-5 b(ariables.)74 b(Eac)m(h)630 2678 y Fq(expression)31
 b Ft(is)g(ev)-5 b(aluated)32 b(according)f(to)h(the)f(rules)g(giv)m(en)
-h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 2233
+h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 2787
 y(Arithmetic],)51 b(page)46 b(78.)87 b(If)45 b(the)g(last)h
 Fq(expression)g Ft(ev)-5 b(aluates)47 b(to)f(0,)k Fs(let)44
-b Ft(returns)g(1;)630 2343 y(otherwise)31 b(0)g(is)f(returned.)150
-2505 y Fs(local)870 2642 y(local)46 b([)p Fj(option)11
+b Ft(returns)g(1;)630 2897 y(otherwise)31 b(0)g(is)f(returned.)150
+3051 y Fs(local)870 3184 y(local)46 b([)p Fj(option)11
 b Fs(])45 b Fj(name)11 b Fs([=)p Fj(value)g Fs(])44 b(...)630
-2778 y Ft(F)-8 b(or)27 b(eac)m(h)g(argumen)m(t,)g(a)f(lo)s(cal)h(v)-5
+3316 y Ft(F)-8 b(or)27 b(eac)m(h)g(argumen)m(t,)g(a)f(lo)s(cal)h(v)-5
 b(ariable)27 b(named)e Fq(name)31 b Ft(is)26 b(created,)i(and)d
-(assigned)h Fq(v)-5 b(alue)p Ft(.)630 2888 y(The)37 b
+(assigned)h Fq(v)-5 b(alue)p Ft(.)630 3425 y(The)37 b
 Fq(option)h Ft(can)f(b)s(e)g(an)m(y)h(of)f(the)h(options)g(accepted)g
 (b)m(y)g Fs(declare)p Ft(.)59 b Fs(local)36 b Ft(can)i(only)630
-2997 y(b)s(e)j(used)h(within)f(a)i(function;)48 b(it)42
+3535 y(b)s(e)j(used)h(within)f(a)i(function;)48 b(it)42
 b(mak)m(es)h(the)f(v)-5 b(ariable)43 b Fq(name)48 b Ft(ha)m(v)m(e)43
-b(a)f(visible)h(scop)s(e)630 3107 y(restricted)c(to)g(that)g(function)f
+b(a)f(visible)h(scop)s(e)630 3645 y(restricted)c(to)g(that)g(function)f
 (and)f(its)i(c)m(hildren.)64 b(The)38 b(return)f(status)h(is)h(zero)g
-(unless)630 3216 y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h
+(unless)630 3754 y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h
 (an)e(in)m(v)-5 b(alid)41 b Fq(name)46 b Ft(is)40 b(supplied,)i(or)e
-Fq(name)45 b Ft(is)c(a)630 3326 y(readonly)30 b(v)-5
-b(ariable.)150 3489 y Fs(logout)870 3625 y(logout)46
-b([)p Fj(n)11 b Fs(])630 3761 y Ft(Exit)31 b(a)g(login)g(shell,)g
+Fq(name)45 b Ft(is)c(a)630 3864 y(readonly)30 b(v)-5
+b(ariable.)150 4018 y Fs(logout)870 4151 y(logout)46
+b([)p Fj(n)11 b Fs(])630 4283 y Ft(Exit)31 b(a)g(login)g(shell,)g
 (returning)e(a)i(status)g(of)f Fq(n)g Ft(to)h(the)g(shell's)f(paren)m
-(t.)150 3924 y Fs(mapfile)870 4060 y(mapfile)46 b([-n)h
+(t.)150 4437 y Fs(mapfile)870 4570 y(mapfile)46 b([-n)h
 Fj(count)11 b Fs(])45 b([-O)i Fj(origin)11 b Fs(])46
 b([-s)g Fj(count)11 b Fs(])46 b([-t])h([-u)g Fj(fd)11
-b Fs(])46 b([)870 4170 y(-C)h Fj(callback)11 b Fs(])45
+b Fs(])46 b([)870 4679 y(-C)h Fj(callback)11 b Fs(])45
 b([-c)i Fj(quantum)11 b Fs(])45 b([)p Fj(array)11 b Fs(])630
-4306 y Ft(Read)35 b(lines)h(from)f(the)g(standard)g(input)f(in)m(to)i
+4811 y Ft(Read)35 b(lines)h(from)f(the)g(standard)g(input)f(in)m(to)i
 (arra)m(y)g(v)-5 b(ariable)36 b Fq(arra)m(y)p Ft(,)h(or)f(from)e
-(\014le)i(de-)630 4416 y(scriptor)f Fq(fd)j Ft(if)d(the)h(`)p
+(\014le)i(de-)630 4921 y(scriptor)f Fq(fd)j Ft(if)d(the)h(`)p
 Fs(-u)p Ft(')f(option)h(is)f(supplied.)54 b(The)35 b(v)-5
 b(ariable)36 b Fs(MAPFILE)d Ft(is)i(the)h(default)630
-4525 y Fq(arra)m(y)p Ft(.)41 b(Options,)30 b(if)h(supplied,)e(ha)m(v)m
-(e)j(the)e(follo)m(wing)i(meanings:)630 4688 y Fs(-n)384
+5031 y Fq(arra)m(y)p Ft(.)41 b(Options,)30 b(if)h(supplied,)e(ha)m(v)m
+(e)j(the)e(follo)m(wing)i(meanings:)630 5185 y Fs(-n)384
 b Ft(Cop)m(y)30 b(at)h(most)g Fq(coun)m(t)i Ft(lines.)41
 b(If)30 b Fq(coun)m(t)j Ft(is)d(0,)h(all)h(lines)e(are)h(copied.)630
-4851 y Fs(-O)384 b Ft(Begin)31 b(assigning)g(to)g Fq(arra)m(y)39
+5340 y Fs(-O)384 b Ft(Begin)31 b(assigning)g(to)g Fq(arra)m(y)39
 b Ft(at)31 b(index)f Fq(origin)p Ft(.)41 b(The)30 b(default)h(index)f
-(is)g(0.)630 5014 y Fs(-s)384 b Ft(Discard)31 b(the)f(\014rst)g
-Fq(coun)m(t)j Ft(lines)e(read.)630 5177 y Fs(-t)384 b
-Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(line)g(from)f(eac)m(h)i(line)e
-(read.)630 5340 y Fs(-u)384 b Ft(Read)31 b(lines)f(from)g(\014le)h
-(descriptor)f Fq(fd)j Ft(instead)e(of)f(the)h(standard)e(input.)p
-eop end
+(is)g(0.)p eop end
 %%Page: 47 53
 TeXDict begin 47 52 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y Fs(-C)384
-b Ft(Ev)-5 b(aluate)43 b Fq(callbac)m(k)49 b Ft(eac)m(h)42
-b(time)g Fq(quan)m(tum)p Ft(P)f(lines)h(are)f(read.)74
-b(The)41 b(`)p Fs(-c)p Ft(')1110 408 y(option)31 b(sp)s(eci\014es)f
-Fq(quan)m(tum)p Ft(.)630 573 y Fs(-c)384 b Ft(Sp)s(ecify)30
-b(the)g(n)m(um)m(b)s(er)f(of)i(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m
-(h)g(call)h(to)f Fq(callbac)m(k)p Ft(.)630 737 y(If)e(`)p
-Fs(-C)p Ft(')g(is)h(sp)s(eci\014ed)f(without)g(`)p Fs(-c)p
-Ft(',)h(the)g(default)g(quan)m(tum)f(is)g(5000.)42 b(When)30
-b Fq(callbac)m(k)37 b Ft(is)630 847 y(ev)-5 b(aluated,)35
-b(it)e(is)f(supplied)g(the)g(index)g(of)h(the)g(next)g(arra)m(y)g
-(elemen)m(t)h(to)f(b)s(e)f(assigned)h(as)630 956 y(an)f(additional)h
-(argumen)m(t.)46 b Fq(callbac)m(k)40 b Ft(is)32 b(ev)-5
-b(aluated)33 b(after)g(the)f(line)h(is)f(read)g(but)f(b)s(efore)630
-1066 y(the)g(arra)m(y)f(elemen)m(t)i(is)f(assigned.)630
-1203 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g
+b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y Fs(-s)384
+b Ft(Discard)31 b(the)f(\014rst)g Fq(coun)m(t)j Ft(lines)e(read.)630
+458 y Fs(-t)384 b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(line)g(from)f
+(eac)m(h)i(line)e(read.)630 618 y Fs(-u)384 b Ft(Read)31
+b(lines)f(from)g(\014le)h(descriptor)f Fq(fd)j Ft(instead)e(of)f(the)h
+(standard)e(input.)630 777 y Fs(-C)384 b Ft(Ev)-5 b(aluate)43
+b Fq(callbac)m(k)49 b Ft(eac)m(h)42 b(time)g Fq(quan)m(tum)p
+Ft(P)f(lines)h(are)f(read.)74 b(The)41 b(`)p Fs(-c)p
+Ft(')1110 887 y(option)31 b(sp)s(eci\014es)f Fq(quan)m(tum)p
+Ft(.)630 1046 y Fs(-c)384 b Ft(Sp)s(ecify)30 b(the)g(n)m(um)m(b)s(er)f
+(of)i(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m(h)g(call)h(to)f
+Fq(callbac)m(k)p Ft(.)630 1205 y(If)e(`)p Fs(-C)p Ft(')g(is)h(sp)s
+(eci\014ed)f(without)g(`)p Fs(-c)p Ft(',)h(the)g(default)g(quan)m(tum)f
+(is)g(5000.)42 b(When)30 b Fq(callbac)m(k)37 b Ft(is)630
+1315 y(ev)-5 b(aluated,)35 b(it)e(is)f(supplied)g(the)g(index)g(of)h
+(the)g(next)g(arra)m(y)g(elemen)m(t)h(to)f(b)s(e)f(assigned)h(as)630
+1425 y(an)f(additional)h(argumen)m(t.)46 b Fq(callbac)m(k)40
+b Ft(is)32 b(ev)-5 b(aluated)33 b(after)g(the)f(line)h(is)f(read)g(but)
+f(b)s(efore)630 1534 y(the)g(arra)m(y)f(elemen)m(t)i(is)f(assigned.)630
+1669 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g
 Fs(mapfile)c Ft(will)j(clear)g Fq(arra)m(y)34 b Ft(b)s(efore)24
-b(assigning)630 1313 y(to)31 b(it.)630 1450 y Fs(mapfile)41
+b(assigning)630 1778 y(to)31 b(it.)630 1913 y Fs(mapfile)41
 b Ft(returns)g(successfully)i(unless)e(an)i(in)m(v)-5
 b(alid)43 b(option)g(or)g(option)g(argumen)m(t)g(is)630
-1559 y(supplied,)29 b(or)i Fq(arra)m(y)38 b Ft(is)31
-b(in)m(v)-5 b(alid)31 b(or)f(unassignable.)150 1724 y
-Fs(printf)870 1861 y(printf)46 b([-v)h Fj(var)11 b Fs(])46
-b Fj(format)57 b Fs([)p Fj(arguments)11 b Fs(])630 1998
+2022 y(supplied,)29 b(or)i Fq(arra)m(y)38 b Ft(is)31
+b(in)m(v)-5 b(alid)31 b(or)f(unassignable.)150 2182 y
+Fs(printf)870 2316 y(printf)46 b([-v)h Fj(var)11 b Fs(])46
+b Fj(format)57 b Fs([)p Fj(arguments)11 b Fs(])630 2451
 y Ft(W)-8 b(rite)27 b(the)g(formatted)f Fq(argumen)m(ts)k
 Ft(to)d(the)f(standard)f(output)h(under)e(the)i(con)m(trol)i(of)e(the)
-630 2107 y Fq(format)p Ft(.)41 b(The)28 b Fq(format)j
+630 2560 y Fq(format)p Ft(.)41 b(The)28 b Fq(format)j
 Ft(is)e(a)g(c)m(haracter)i(string)d(whic)m(h)h(con)m(tains)h(three)f(t)
-m(yp)s(es)g(of)g(ob)5 b(jects:)630 2217 y(plain)28 b(c)m(haracters,)j
+m(yp)s(es)g(of)g(ob)5 b(jects:)630 2670 y(plain)28 b(c)m(haracters,)j
 (whic)m(h)d(are)h(simply)f(copied)h(to)h(standard)d(output,)i(c)m
-(haracter)h(escap)s(e)630 2326 y(sequences,)g(whic)m(h)f(are)g(con)m(v)
+(haracter)h(escap)s(e)630 2780 y(sequences,)g(whic)m(h)f(are)g(con)m(v)
 m(erted)i(and)d(copied)i(to)f(the)h(standard)e(output,)h(and)g(format)
-630 2436 y(sp)s(eci\014cations,)39 b(eac)m(h)e(of)g(whic)m(h)f(causes)g
+630 2889 y(sp)s(eci\014cations,)39 b(eac)m(h)e(of)g(whic)m(h)f(causes)g
 (prin)m(ting)g(of)h(the)f(next)h(successiv)m(e)g Fq(argumen)m(t)p
-Ft(.)630 2545 y(In)31 b(addition)h(to)h(the)e(standard)g
+Ft(.)630 2999 y(In)31 b(addition)h(to)h(the)e(standard)g
 Fs(printf\(1\))f Ft(formats,)i(`)p Fs(\045b)p Ft(')g(causes)g
-Fs(printf)e Ft(to)j(expand)630 2655 y(bac)m(kslash)39
+Fs(printf)e Ft(to)j(expand)630 3108 y(bac)m(kslash)39
 b(escap)s(e)g(sequences)f(in)h(the)f(corresp)s(onding)f
 Fq(argumen)m(t)p Ft(,)k(\(except)f(that)f(`)p Fs(\\c)p
-Ft(')630 2765 y(terminates)44 b(output,)j(bac)m(kslashes)d(in)f(`)p
+Ft(')630 3218 y(terminates)44 b(output,)j(bac)m(kslashes)d(in)f(`)p
 Fs(\\')p Ft(',)k(`)p Fs(\\")p Ft(',)g(and)c(`)p Fs(\\?)p
-Ft(')g(are)h(not)g(remo)m(v)m(ed,)k(and)630 2874 y(o)s(ctal)25
+Ft(')g(are)h(not)g(remo)m(v)m(ed,)k(and)630 3328 y(o)s(ctal)25
 b(escap)s(es)f(b)s(eginning)f(with)g(`)p Fs(\\0)p Ft(')h(ma)m(y)g(con)m
 (tain)h(up)e(to)h(four)f(digits\),)j(and)d(`)p Fs(\045q)p
-Ft(')h(causes)630 2984 y Fs(printf)31 b Ft(to)i(output)f(the)h(corresp)
+Ft(')h(causes)630 3437 y Fs(printf)31 b Ft(to)i(output)f(the)h(corresp)
 s(onding)f Fq(argumen)m(t)j Ft(in)d(a)h(format)g(that)g(can)g(b)s(e)f
-(reused)630 3093 y(as)f(shell)f(input.)630 3230 y(The)24
+(reused)630 3547 y(as)f(shell)f(input.)630 3681 y(The)24
 b(`)p Fs(-v)p Ft(')h(option)g(causes)g(the)g(output)g(to)g(b)s(e)f
 (assigned)h(to)h(the)f(v)-5 b(ariable)25 b Fq(v)-5 b(ar)32
-b Ft(rather)24 b(than)630 3340 y(b)s(eing)30 b(prin)m(ted)g(to)h(the)g
-(standard)e(output.)630 3477 y(The)i Fq(format)i Ft(is)f(reused)e(as)i
+b Ft(rather)24 b(than)630 3791 y(b)s(eing)30 b(prin)m(ted)g(to)h(the)g
+(standard)e(output.)630 3925 y(The)i Fq(format)i Ft(is)f(reused)e(as)i
 (necessary)f(to)i(consume)e(all)h(of)f(the)h Fq(argumen)m(ts)p
-Ft(.)44 b(If)30 b(the)i Fq(for-)630 3587 y(mat)c Ft(requires)e(more)g
+Ft(.)44 b(If)30 b(the)i Fq(for-)630 4035 y(mat)c Ft(requires)e(more)g
 Fq(argumen)m(ts)k Ft(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f
-(sp)s(eci\014cations)630 3696 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
+(sp)s(eci\014cations)630 4144 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
 (v)-5 b(alue)29 b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)
-s(een)g(supplied.)38 b(The)630 3806 y(return)29 b(v)-5
+s(een)g(supplied.)38 b(The)630 4254 y(return)29 b(v)-5
 b(alue)31 b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
-3970 y Fs(read)870 4107 y(read)47 b([-ers])f([-a)h Fj(aname)11
+4413 y Fs(read)870 4548 y(read)47 b([-ers])f([-a)h Fj(aname)11
 b Fs(])45 b([-d)i Fj(delim)11 b Fs(])46 b([-i)h Fj(text)11
 b Fs(])46 b([-n)g Fj(nchars)11 b Fs(])46 b([-p)h Fj(prompt)11
-b Fs(])45 b([-t)i Fj(time-)870 4217 y(out)11 b Fs(])46
+b Fs(])45 b([-t)i Fj(time-)870 4658 y(out)11 b Fs(])46
 b([-u)h Fj(fd)11 b Fs(])46 b([)p Fj(name)57 b Fs(...])630
-4354 y Ft(One)26 b(line)h(is)g(read)f(from)h(the)f(standard)g(input,)h
+4792 y Ft(One)26 b(line)h(is)g(read)f(from)h(the)f(standard)g(input,)h
 (or)g(from)f(the)h(\014le)f(descriptor)h Fq(fd)i Ft(supplied)630
-4463 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)p Fs(-u)p
+4902 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)p Fs(-u)p
 Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h(assigned)h(to)f
-(the)h(\014rst)630 4573 y Fq(name)p Ft(,)29 b(the)f(second)h(w)m(ord)e
+(the)h(\014rst)630 5011 y Fq(name)p Ft(,)29 b(the)f(second)h(w)m(ord)e
 (to)i(the)g(second)f Fq(name)p Ft(,)h(and)e(so)i(on,)g(with)f(lefto)m
-(v)m(er)i(w)m(ords)e(and)630 4682 y(their)g(in)m(terv)m(ening)h
+(v)m(er)i(w)m(ords)e(and)630 5121 y(their)g(in)m(terv)m(ening)h
 (separators)g(assigned)f(to)h(the)f(last)h Fq(name)p
 Ft(.)40 b(If)27 b(there)i(are)f(few)m(er)g(w)m(ords)630
-4792 y(read)44 b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c
-(remaining)h(names)g(are)g(assigned)630 4902 y(empt)m(y)31
+5230 y(read)44 b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c
+(remaining)h(names)g(are)g(assigned)630 5340 y(empt)m(y)31
 b(v)-5 b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5
 b(alue)31 b(of)g(the)f Fs(IFS)g Ft(v)-5 b(ariable)31
-b(are)g(used)f(to)h(split)630 5011 y(the)37 b(line)h(in)m(to)g(w)m
-(ords.)61 b(The)36 b(bac)m(kslash)i(c)m(haracter)h(`)p
-Fs(\\)p Ft(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630
-5121 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e
-(and)g(for)g(line)h(con)m(tin)m(uation.)69 b(If)39 b(no)630
-5230 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h
-(to)g(the)f(v)-5 b(ariable)29 b Fs(REPLY)p Ft(.)39 b(The)28
-b(return)630 5340 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is)
-g(encoun)m(tered,)h Fs(read)e Ft(times)h(out)g(\(in)g(whic)m(h)f(case)i
-(the)p eop end
+b(are)g(used)f(to)h(split)p eop end
 %%Page: 48 54
 TeXDict begin 48 53 bop 150 -116 a Ft(48)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(return)e(co)s(de)i(is)g(greater)g
-(than)g(128\),)h(or)f(an)f(in)m(v)-5 b(alid)31 b(\014le)g(descriptor)f
-(is)h(supplied)e(as)i(the)630 408 y(argumen)m(t)g(to)g(`)p
-Fs(-u)p Ft('.)630 544 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g
-(follo)m(wing)h(meanings:)630 707 y Fs(-a)e Fj(aname)114
-b Ft(The)34 b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)
-e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110 816 y Fq(aname)p
-Ft(,)29 b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m
-(v)m(ed)i(from)d Fq(aname)34 b Ft(b)s(efore)1110 926
-y(the)d(assignmen)m(t.)41 b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30
-b(are)h(ignored.)630 1088 y Fs(-d)f Fj(delim)114 b Ft(The)41
-b(\014rst)h(c)m(haracter)h(of)f Fq(delim)g Ft(is)g(used)g(to)g
-(terminate)h(the)f(input)f(line,)1110 1198 y(rather)30
-b(than)g(newline.)630 1360 y Fs(-e)384 b Ft(Readline)28
-b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i(page)f(93\))h(is)
-f(used)1110 1469 y(to)42 b(obtain)f(the)g(line.)73 b(Readline)41
-b(uses)g(the)g(curren)m(t)g(\(or)g(default,)j(if)d(line)1110
-1579 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j(editing)f
-(settings.)630 1741 y Fs(-i)e Fj(text)162 b Ft(If)36
-b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j
-Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 1851 y(editing)31
-b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 2013
-y Fs(-n)f Fj(nchars)1110 2122 y Fs(read)38 b Ft(returns)f(after)j
+b(Reference)g(Man)m(ual)630 299 y(the)37 b(line)h(in)m(to)g(w)m(ords.)
+61 b(The)36 b(bac)m(kslash)i(c)m(haracter)h(`)p Fs(\\)p
+Ft(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630
+408 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e
+(and)g(for)g(line)h(con)m(tin)m(uation.)69 b(If)39 b(no)630
+518 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h
+(to)g(the)f(v)-5 b(ariable)29 b Fs(REPLY)p Ft(.)39 b(The)28
+b(return)630 628 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is)g
+(encoun)m(tered,)h Fs(read)e Ft(times)h(out)g(\(in)g(whic)m(h)f(case)i
+(the)630 737 y(return)i(co)s(de)i(is)g(greater)g(than)g(128\),)h(or)f
+(an)f(in)m(v)-5 b(alid)31 b(\014le)g(descriptor)f(is)h(supplied)e(as)i
+(the)630 847 y(argumen)m(t)g(to)g(`)p Fs(-u)p Ft('.)630
+980 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
+(meanings:)630 1137 y Fs(-a)e Fj(aname)114 b Ft(The)34
+b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)e(of)g(the)g
+(arra)m(y)h(v)-5 b(ariable)1110 1247 y Fq(aname)p Ft(,)29
+b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m(v)m(ed)i
+(from)d Fq(aname)34 b Ft(b)s(efore)1110 1357 y(the)d(assignmen)m(t.)41
+b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30 b(are)h(ignored.)630
+1514 y Fs(-d)f Fj(delim)114 b Ft(The)41 b(\014rst)h(c)m(haracter)h(of)f
+Fq(delim)g Ft(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110
+1623 y(rather)30 b(than)g(newline.)630 1781 y Fs(-e)384
+b Ft(Readline)28 b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i
+(page)f(93\))h(is)f(used)1110 1890 y(to)42 b(obtain)f(the)g(line.)73
+b(Readline)41 b(uses)g(the)g(curren)m(t)g(\(or)g(default,)j(if)d(line)
+1110 2000 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j
+(editing)f(settings.)630 2157 y Fs(-i)e Fj(text)162 b
+Ft(If)36 b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j
+Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 2267 y(editing)31
+b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 2424
+y Fs(-n)f Fj(nchars)1110 2534 y Fs(read)38 b Ft(returns)f(after)j
 (reading)f Fq(nc)m(hars)j Ft(c)m(haracters)e(rather)f(than)g(w)m
-(aiting)1110 2232 y(for)30 b(a)h(complete)h(line)e(of)h(input.)630
-2394 y Fs(-p)f Fj(prompt)1110 2504 y Ft(Displa)m(y)38
+(aiting)1110 2643 y(for)30 b(a)h(complete)h(line)e(of)h(input.)630
+2800 y Fs(-p)f Fj(prompt)1110 2910 y Ft(Displa)m(y)38
 b Fq(prompt)p Ft(,)g(without)e(a)h(trailing)h(newline,)h(b)s(efore)d
-(attempting)i(to)1110 2613 y(read)f(an)m(y)h(input.)60
+(attempting)i(to)1110 3020 y(read)f(an)m(y)h(input.)60
 b(The)37 b(prompt)g(is)g(displa)m(y)m(ed)h(only)f(if)g(input)g(is)g
-(coming)1110 2723 y(from)30 b(a)h(terminal.)630 2885
+(coming)1110 3129 y(from)30 b(a)h(terminal.)630 3286
 y Fs(-r)384 b Ft(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash)
 d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)1110
-2995 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
-(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 3104
+3396 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
+(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 3506
 y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i(a)g
-(line)f(con)m(tin)m(uation.)630 3267 y Fs(-s)384 b Ft(Silen)m(t)28
+(line)f(con)m(tin)m(uation.)630 3663 y Fs(-s)384 b Ft(Silen)m(t)28
 b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f(a)h(terminal,)h(c)
-m(haracters)g(are)f(not)1110 3376 y(ec)m(ho)s(ed.)630
-3538 y Fs(-t)i Fj(timeout)1110 3648 y Ft(Cause)23 b Fs(read)f
+m(haracters)g(are)f(not)1110 3772 y(ec)m(ho)s(ed.)630
+3930 y Fs(-t)i Fj(timeout)1110 4039 y Ft(Cause)23 b Fs(read)f
 Ft(to)i(time)f(out)h(and)e(return)g(failure)h(if)g(a)h(complete)g(line)
-g(of)f(input)1110 3758 y(is)44 b(not)f(read)h(within)e
+g(of)f(input)1110 4149 y(is)44 b(not)f(read)h(within)e
 Fq(timeout)47 b Ft(seconds.)80 b Fq(timeout)46 b Ft(ma)m(y)e(b)s(e)f(a)
-h(decimal)1110 3867 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s
+h(decimal)1110 4258 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s
 (ortion)d(follo)m(wing)j(the)f(decimal)g(p)s(oin)m(t.)40
-b(This)1110 3977 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c
+b(This)1110 4368 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c
 Fs(read)g Ft(is)h(reading)g(input)f(from)g(a)h(terminal,)1110
-4086 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no)
-h(e\013ect)h(when)e(reading)h(from)g(regular)1110 4196
+4478 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no)
+h(e\013ect)h(when)e(reading)h(from)g(regular)1110 4587
 y(\014les.)55 b(If)34 b Fq(timeout)k Ft(is)d(0,)i Fs(read)d
 Ft(returns)g(success)h(if)g(input)g(is)g(a)m(v)-5 b(ailable)37
-b(on)1110 4305 y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure)
-e(otherwise.)69 b(The)39 b(exit)h(status)g(is)1110 4415
+b(on)1110 4697 y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure)
+e(otherwise.)69 b(The)39 b(exit)h(status)g(is)1110 4806
 y(greater)32 b(than)e(128)h(if)g(the)f(timeout)i(is)e(exceeded.)630
-4577 y Fs(-u)g Fj(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g
-(descriptor)h Fq(fd)p Ft(.)150 4739 y Fs(readarray)870
-4849 y(readarray)45 b([-n)i Fj(count)11 b Fs(])46 b([-O)h
+4964 y Fs(-u)g Fj(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g
+(descriptor)h Fq(fd)p Ft(.)150 5121 y Fs(readarray)870
+5230 y(readarray)45 b([-n)i Fj(count)11 b Fs(])46 b([-O)h
 Fj(origin)11 b Fs(])45 b([-s)i Fj(count)11 b Fs(])46
-b([-t])g([-u)h Fj(fd)11 b Fs(])47 b([)870 4959 y(-C)g
+b([-t])g([-u)h Fj(fd)11 b Fs(])47 b([)870 5340 y(-C)g
 Fj(callback)11 b Fs(])45 b([-c)i Fj(quantum)11 b Fs(])45
-b([)p Fj(array)11 b Fs(])630 5094 y Ft(Read)35 b(lines)h(from)f(the)g
-(standard)g(input)f(in)m(to)i(arra)m(y)g(v)-5 b(ariable)36
-b Fq(arra)m(y)p Ft(,)h(or)f(from)e(\014le)i(de-)630 5204
-y(scriptor)30 b Fq(fd)k Ft(if)c(the)g(`)p Fs(-u)p Ft(')h(option)f(is)h
-(supplied.)630 5340 y(A)f(synon)m(ym)g(for)g Fs(mapfile)p
-Ft(.)p eop end
+b([)p Fj(array)11 b Fs(])p eop end
 %%Page: 49 55
 TeXDict begin 49 54 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(49)150 299 y Fs(source)870
-435 y(source)46 b Fj(filename)630 571 y Ft(A)30 b(synon)m(ym)g(for)g
+b(Shell)30 b(Builtin)h(Commands)2069 b(49)630 299 y(Read)35
+b(lines)h(from)f(the)g(standard)g(input)f(in)m(to)i(arra)m(y)g(v)-5
+b(ariable)36 b Fq(arra)m(y)p Ft(,)h(or)f(from)e(\014le)i(de-)630
+408 y(scriptor)30 b Fq(fd)k Ft(if)c(the)g(`)p Fs(-u)p
+Ft(')h(option)f(is)h(supplied.)630 542 y(A)f(synon)m(ym)g(for)g
+Fs(mapfile)p Ft(.)150 700 y Fs(source)870 833 y(source)46
+b Fj(filename)630 967 y Ft(A)30 b(synon)m(ym)g(for)g
 Fs(.)g Ft(\(see)i(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g
-(35\).)150 734 y Fs(type)870 870 y(type)47 b([-afptP])e([)p
-Fj(name)57 b Fs(...)o(])630 1006 y Ft(F)-8 b(or)42 b(eac)m(h)g
+(35\).)150 1124 y Fs(type)870 1258 y(type)47 b([-afptP])e([)p
+Fj(name)57 b Fs(...)o(])630 1391 y Ft(F)-8 b(or)42 b(eac)m(h)g
 Fq(name)p Ft(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)g(b)s(e)g(in)m
-(terpreted)g(if)g(used)f(as)i(a)f(command)630 1116 y(name.)630
-1252 y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i
+(terpreted)g(if)g(used)f(as)i(a)f(command)630 1501 y(name.)630
+1634 y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i
 Fs(type)d Ft(prin)m(ts)g(a)i(single)f(w)m(ord)g(whic)m(h)g(is)g(one)g
-(of)h(`)p Fs(alias)p Ft(',)630 1362 y(`)p Fs(function)p
+(of)h(`)p Fs(alias)p Ft(',)630 1744 y(`)p Fs(function)p
 Ft(',)32 b(`)p Fs(builtin)p Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p
 Fs(keyword)p Ft(',)f(if)h Fq(name)38 b Ft(is)33 b(an)f(alias,)j(shell)e
-(function,)630 1471 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
+(function,)630 1854 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
 (reserv)m(ed)g(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55
-b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 1581
+b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 1963
 y(found,)29 b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g
-Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 1717
+Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 2097
 y(If)39 b(the)g(`)p Fs(-p)p Ft(')g(option)h(is)f(used,)i
 Fs(type)d Ft(either)h(returns)f(the)i(name)f(of)g(the)g(disk)g(\014le)g
-(that)630 1826 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
+(that)630 2206 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
 (`)p Fs(-t)p Ft(')h(w)m(ould)f(not)g(return)g(`)p Fs(file)p
-Ft('.)630 1963 y(The)23 b(`)p Fs(-P)p Ft(')h(option)g(forces)g(a)g
+Ft('.)630 2340 y(The)23 b(`)p Fs(-P)p Ft(')h(option)g(forces)g(a)g
 (path)g(searc)m(h)g(for)g(eac)m(h)g Fq(name)p Ft(,)i(ev)m(en)e(if)g(`)p
-Fs(-t)p Ft(')g(w)m(ould)f(not)h(return)630 2072 y(`)p
-Fs(file)p Ft('.)630 2208 y(If)34 b(a)i(command)e(is)h(hashed,)g(`)p
+Fs(-t)p Ft(')g(w)m(ould)f(not)h(return)630 2450 y(`)p
+Fs(file)p Ft('.)630 2583 y(If)34 b(a)i(command)e(is)h(hashed,)g(`)p
 Fs(-p)p Ft(')g(and)f(`)p Fs(-P)p Ft(')h(prin)m(t)f(the)h(hashed)f(v)-5
-b(alue,)37 b(not)e(necessarily)630 2318 y(the)c(\014le)f(that)h(app)s
-(ears)f(\014rst)f(in)h Fs($PATH)p Ft(.)630 2454 y(If)36
+b(alue,)37 b(not)e(necessarily)630 2693 y(the)c(\014le)f(that)h(app)s
+(ears)f(\014rst)f(in)h Fs($PATH)p Ft(.)630 2826 y(If)36
 b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g Fs(type)f
 Ft(returns)f(all)j(of)f(the)g(places)g(that)g(con)m(tain)h(an)f(exe-)
-630 2564 y(cutable)d(named)f Fq(\014le)p Ft(.)50 b(This)33
+630 2936 y(cutable)d(named)f Fq(\014le)p Ft(.)50 b(This)33
 b(includes)g(aliases)i(and)e(functions,)h(if)f(and)g(only)h(if)f(the)h
-(`)p Fs(-p)p Ft(')630 2673 y(option)d(is)f(not)h(also)g(used.)630
-2809 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g(used,)g
+(`)p Fs(-p)p Ft(')630 3045 y(option)d(is)f(not)h(also)g(used.)630
+3179 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g(used,)g
 Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i
-(functions,)g(as)g(with)630 2919 y(the)k Fs(command)d
-Ft(builtin.)630 3055 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h
+(functions,)g(as)g(with)630 3289 y(the)k Fs(command)d
+Ft(builtin.)630 3422 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h
 (of)f(the)h Fq(names)i Ft(are)e(found,)e(non-zero)i(if)f(an)m(y)g(are)h
-(not)630 3165 y(found.)150 3328 y Fs(typeset)870 3464
+(not)630 3532 y(found.)150 3689 y Fs(typeset)870 3823
 y(typeset)46 b([-afFrxi])f([-p])i([)p Fj(name)11 b Fs([=)p
-Fj(value)g Fs(])43 b(...)o(])630 3600 y Ft(The)29 b Fs(typeset)f
+Fj(value)g Fs(])43 b(...)o(])630 3956 y Ft(The)29 b Fs(typeset)f
 Ft(command)h(is)g(supplied)g(for)g(compatibilit)m(y)j(with)d(the)h
-(Korn)e(shell;)j(ho)m(w-)630 3709 y(ev)m(er,)g(it)g(has)f(b)s(een)g
+(Korn)e(shell;)j(ho)m(w-)630 4066 y(ev)m(er,)g(it)g(has)f(b)s(een)g
 (deprecated)h(in)f(fa)m(v)m(or)i(of)e(the)h Fs(declare)d
-Ft(builtin)i(command.)150 3872 y Fs(ulimit)870 4008 y(ulimit)46
+Ft(builtin)i(command.)150 4224 y Fs(ulimit)870 4357 y(ulimit)46
 b([-abcdefilmnpqrstuvxHST])41 b([)p Fj(limit)11 b Fs(])630
-4144 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i(o)m(v)m(er)g(the)f
+4491 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i(o)m(v)m(er)g(the)f
 (resources)f(a)m(v)-5 b(ailable)29 b(to)e(pro)s(cesses)f(started)h(b)m
-(y)g(the)630 4254 y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e
+(y)g(the)630 4600 y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e
 (con)m(trol.)41 b(If)28 b(an)g(option)h(is)f(giv)m(en,)i(it)e(is)h(in)m
-(terpreted)630 4364 y(as)i(follo)m(ws:)630 4526 y Fs(-S)384
+(terpreted)630 4710 y(as)i(follo)m(ws:)630 4867 y Fs(-S)384
 b Ft(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)g(asso)s(ciated)h
-(with)e(a)h(resource.)630 4689 y Fs(-H)384 b Ft(Change)30
+(with)e(a)h(resource.)630 5025 y Fs(-H)384 b Ft(Change)30
 b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h(with)e(a)h
-(resource.)630 4852 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h
-(are)g(rep)s(orted.)630 5015 y Fs(-b)384 b Ft(The)30
-b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)e(size.)630
-5177 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(core)g(\014les)
-f(created.)630 5340 y Fs(-d)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g
-(a)g(pro)s(cess's)f(data)h(segmen)m(t.)p eop end
+(resource.)630 5182 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h
+(are)g(rep)s(orted.)630 5340 y Fs(-b)384 b Ft(The)30
+b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)e(size.)p eop
+end
 %%Page: 50 56
 TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(-e)384 b Ft(The)30
+b(Reference)g(Man)m(ual)630 299 y Fs(-c)384 b Ft(The)30
+b(maxim)m(um)g(size)h(of)g(core)g(\014les)f(created.)630
+475 y Fs(-d)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(a)g(pro)s
+(cess's)f(data)h(segmen)m(t.)630 651 y Fs(-e)384 b Ft(The)30
 b(maxim)m(um)g(sc)m(heduling)h(priorit)m(y)f(\()p Fs(")p
-Ft(nice)p Fs(")p Ft(\).)630 483 y Fs(-f)384 b Ft(The)30
+Ft(nice)p Fs(")p Ft(\).)630 826 y Fs(-f)384 b Ft(The)30
 b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)g(shell)h
-(and)f(its)h(c)m(hildren.)630 667 y Fs(-i)384 b Ft(The)30
+(and)f(its)h(c)m(hildren.)630 1002 y Fs(-i)384 b Ft(The)30
 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s(ending)e(signals.)630
-851 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
-(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 1035
-y Fs(-m)384 b Ft(The)30 b(maxim)m(um)g(residen)m(t)h(set)g(size.)630
-1219 y Fs(-n)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(op)s
-(en)e(\014le)i(descriptors.)630 1403 y Fs(-p)384 b Ft(The)30
-b(pip)s(e)f(bu\013er)h(size.)630 1587 y Fs(-q)384 b Ft(The)30
-b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m(ytes)g(in)f(POSIX)f(message)j
-(queues.)630 1771 y Fs(-r)384 b Ft(The)30 b(maxim)m(um)g(real-time)i
-(sc)m(heduling)f(priorit)m(y)-8 b(.)630 1955 y Fs(-s)384
-b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)630 2139
-y Fs(-t)384 b Ft(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g(time)h
-(in)f(seconds.)630 2323 y Fs(-u)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m
-(b)s(er)f(of)i(pro)s(cesses)f(a)m(v)-5 b(ailable)33 b(to)e(a)f(single)i
-(user.)630 2507 y Fs(-v)384 b Ft(The)29 b(maxim)m(um)h(amoun)m(t)g(of)g
-(virtual)g(memory)g(a)m(v)-5 b(ailable)32 b(to)e(the)g(pro)s(cess.)630
-2691 y Fs(-x)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
-(\014le)f(lo)s(c)m(ks.)630 2875 y Fs(-T)384 b Ft(The)30
-b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 3059
-y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g(the)g(new)f(v)-5
-b(alue)34 b(of)f(the)h(sp)s(eci\014ed)f(resource;)i(the)f(sp)s(ecial)g
-Fq(limit)630 3168 y Ft(v)-5 b(alues)27 b Fs(hard)p Ft(,)g
-Fs(soft)p Ft(,)g(and)g Fs(unlimited)d Ft(stand)j(for)g(the)g(curren)m
-(t)g(hard)f(limit,)j(the)e(curren)m(t)630 3278 y(soft)38
-b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
+1178 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
+(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 1354
+y Fs(-m)384 b Ft(The)36 b(maxim)m(um)g(residen)m(t)h(set)g(size)g
+(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 1464
+y(limit\).)630 1640 y Fs(-n)384 b Ft(The)38 b(maxim)m(um)h(n)m(um)m(b)s
+(er)e(of)i(op)s(en)f(\014le)h(descriptors)g(\(most)g(systems)g(do)1110
+1749 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)
+630 1925 y Fs(-p)384 b Ft(The)30 b(pip)s(e)f(bu\013er)h(size.)630
+2101 y Fs(-q)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
+(ytes)g(in)f(POSIX)f(message)j(queues.)630 2277 y Fs(-r)384
+b Ft(The)30 b(maxim)m(um)g(real-time)i(sc)m(heduling)f(priorit)m(y)-8
+b(.)630 2453 y Fs(-s)384 b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)
+630 2628 y Fs(-t)384 b Ft(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g
+(time)h(in)f(seconds.)630 2804 y Fs(-u)384 b Ft(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(pro)s(cesses)f(a)m(v)-5
+b(ailable)33 b(to)e(a)f(single)i(user.)630 2980 y Fs(-v)384
+b Ft(The)29 b(maxim)m(um)h(amoun)m(t)g(of)g(virtual)g(memory)g(a)m(v)-5
+b(ailable)32 b(to)e(the)g(pro)s(cess.)630 3156 y Fs(-x)384
+b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(\014le)f(lo)s(c)m
+(ks.)630 3332 y Fs(-T)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f
+(of)i(threads.)630 3508 y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g
+(the)g(new)f(v)-5 b(alue)34 b(of)f(the)h(sp)s(eci\014ed)f(resource;)i
+(the)f(sp)s(ecial)g Fq(limit)630 3617 y Ft(v)-5 b(alues)27
+b Fs(hard)p Ft(,)g Fs(soft)p Ft(,)g(and)g Fs(unlimited)d
+Ft(stand)j(for)g(the)g(curren)m(t)g(hard)f(limit,)j(the)e(curren)m(t)
+630 3727 y(soft)38 b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
 b(.)66 b(A)38 b(hard)f(limit)h(cannot)h(b)s(e)e(increased)i(b)m(y)f(a)
-630 3387 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
+630 3836 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
 (limit)h(ma)m(y)g(b)s(e)e(increased)h(up)f(to)i(the)f(v)-5
-b(alue)38 b(of)630 3497 y(the)c(hard)f(limit.)51 b(Otherwise,)35
+b(alue)38 b(of)630 3946 y(the)c(hard)f(limit.)51 b(Otherwise,)35
 b(the)f(curren)m(t)f(v)-5 b(alue)35 b(of)f(the)f(soft)i(limit)f(for)g
-(the)g(sp)s(eci\014ed)630 3606 y(resource)27 b(is)h(prin)m(ted,)f
+(the)g(sp)s(eci\014ed)630 4056 y(resource)27 b(is)h(prin)m(ted,)f
 (unless)g(the)g(`)p Fs(-H)p Ft(')g(option)h(is)f(supplied.)38
-b(When)27 b(setting)h(new)f(limits,)630 3716 y(if)40
+b(When)27 b(setting)h(new)f(limits,)630 4165 y(if)40
 b(neither)f(`)p Fs(-H)p Ft(')h(nor)f(`)p Fs(-S)p Ft(')h(is)f(supplied,)
 i(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits)g(are)g(set.)69
-b(If)630 3826 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p
+b(If)630 4275 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p
 Fs(-f)p Ft(')g(is)g(assumed.)55 b(V)-8 b(alues)36 b(are)f(in)g(1024-b)m
-(yte)j(incremen)m(ts,)630 3935 y(except)d(for)f(`)p Fs(-t)p
+(yte)j(incremen)m(ts,)630 4384 y(except)d(for)f(`)p Fs(-t)p
 Ft(',)g(whic)m(h)g(is)g(in)g(seconds,)h(`)p Fs(-p)p Ft(',)g(whic)m(h)e
 (is)h(in)g(units)f(of)h(512-b)m(yte)i(blo)s(c)m(ks,)630
-4045 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
+4494 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
 Ft(',)g(whic)m(h)g(are)h(unscaled)f(v)-5 b(alues.)630
-4192 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5
+4637 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5
 b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)h(or)630
-4301 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
-150 4485 y Fs(unalias)870 4632 y(unalias)46 b([-a])g([)p
-Fj(name)57 b Fs(...)47 b(])630 4779 y Ft(Remo)m(v)m(e)39
+4746 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
+150 4922 y Fs(unalias)870 5065 y(unalias)46 b([-a])g([)p
+Fj(name)57 b Fs(...)47 b(])630 5208 y Ft(Remo)m(v)m(e)39
 b(eac)m(h)f Fq(name)k Ft(from)36 b(the)h(list)h(of)f(aliases.)61
 b(If)36 b(`)p Fs(-a)p Ft(')h(is)g(supplied,)h(all)f(aliases)i(are)630
-4888 y(remo)m(v)m(ed.)j(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)
-i(6.6)f([Aliases],)h(page)f(79.)150 5207 y Fr(4.3)68
-b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)p eop end
+5317 y(remo)m(v)m(ed.)j(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)
+i(6.6)f([Aliases],)h(page)f(79.)p eop end
 %%Page: 51 57
 TeXDict begin 51 56 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(51)150 299 y Fk(4.3.1)63
-b(The)41 b(Set)g(Builtin)275 548 y Ft(This)27 b(builtin)h(is)h(so)f
+b(Shell)30 b(Builtin)h(Commands)2069 b(51)150 299 y Fr(4.3)68
+b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 634 y Fk(4.3.1)63
+b(The)41 b(Set)g(Builtin)275 879 y Ft(This)27 b(builtin)h(is)h(so)f
 (complicated)i(that)f(it)g(deserv)m(es)g(its)g(o)m(wn)f(section.)42
 b Fs(set)27 b Ft(allo)m(ws)j(y)m(ou)f(to)g(c)m(hange)150
-657 y(the)k(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
+989 y(the)k(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
 (p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h
-(and)150 767 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
-933 y Fs(set)870 1070 y(set)47 b([--abefhkmnptuvxBCEHPT])41
+(and)150 1098 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
+1259 y Fs(set)870 1394 y(set)47 b([--abefhkmnptuvxBCEHPT])41
 b([-o)47 b Fj(option)11 b Fs(])46 b([)p Fj(argument)55
-b Fs(...])870 1179 y(set)47 b([+abefhkmnptuvxBCEHPT])42
+b Fs(...])870 1504 y(set)47 b([+abefhkmnptuvxBCEHPT])42
 b([+o)47 b Fj(option)11 b Fs(])45 b([)p Fj(argument)56
-b Fs(...)o(])630 1316 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
+b Fs(...)o(])630 1639 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
 (are)g(supplied,)g Fs(set)f Ft(displa)m(ys)g(the)h(names)g(and)f(v)-5
-b(alues)23 b(of)g(all)630 1426 y(shell)j(v)-5 b(ariables)27
+b(alues)23 b(of)g(all)630 1748 y(shell)j(v)-5 b(ariables)27
 b(and)e(functions,)h(sorted)g(according)h(to)g(the)f(curren)m(t)f(lo)s
-(cale,)k(in)c(a)i(format)630 1535 y(that)i(ma)m(y)h(b)s(e)e(reused)g
+(cale,)k(in)c(a)i(format)630 1858 y(that)i(ma)m(y)h(b)s(e)e(reused)g
 (as)h(input)f(for)h(setting)h(or)e(resetting)i(the)f(curren)m(tly-set)h
-(v)-5 b(ariables.)630 1645 y(Read-only)37 b(v)-5 b(ariables)37
+(v)-5 b(ariables.)630 1967 y(Read-only)37 b(v)-5 b(ariables)37
 b(cannot)h(b)s(e)e(reset.)59 b(In)36 b Fl(posix)g Ft(mo)s(de,)i(only)f
-(shell)f(v)-5 b(ariables)38 b(are)630 1755 y(listed.)630
-1891 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f
+(shell)f(v)-5 b(ariables)38 b(are)630 2077 y(listed.)630
+2212 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f
 (shell)h(attributes.)41 b(Options,)29 b(if)g(sp)s(ec-)630
-2001 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
-2165 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h
+2322 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
+2482 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h
 (whic)m(h)g(are)g(mo)s(di\014ed)f(or)h(created)h(for)f(ex-)1110
-2275 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
-(commands.)630 2439 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f
+2591 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
+(commands.)630 2752 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f
 (terminated)h(bac)m(kground)g(jobs)f(to)h(b)s(e)f(rep)s(orted)1110
-2548 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting)
-g(the)g(next)g(primary)g(prompt.)630 2712 y Fs(-e)384
-b Ft(Exit)37 b(immediately)h(if)e(a)h(simple)f(command)g(\(see)i
-(Section)f(3.2.1)h([Simple)1110 2822 y(Commands],)31
-b(page)i(8\))f(exits)g(with)g(a)g(non-zero)g(status,)g(unless)f(the)h
-(com-)1110 2931 y(mand)f(that)h(fails)h(is)f(part)f(of)h(the)g(command)
-g(list)g(immediately)h(follo)m(wing)1110 3041 y(a)41
-b Fs(while)d Ft(or)j Fs(until)e Ft(k)m(eyw)m(ord,)k(part)d(of)g(the)h
-(test)g(in)f(an)g Fs(if)g Ft(statemen)m(t,)1110 3150
-y(part)33 b(of)h(a)g(command)f(executed)i(in)e(a)h Fs(&&)f
-Ft(or)g Fs(||b)g Ft(list,)i(an)m(y)f(command)f(in)1110
-3260 y(a)g(pip)s(eline)e(but)h(the)g(last,)i(or)f(if)f(the)g(command's)
-g(return)f(status)i(is)f(b)s(eing)1110 3370 y(in)m(v)m(erted)38
-b(using)e Fs(!)p Ft(.)60 b(F)-8 b(ailing)39 b(simple)e(commands)f(that)
-i(are)f(part)g(of)g(shell)1110 3479 y(functions)e(or)g(command)g(lists)
-h(enclosed)g(in)f(braces)g(or)h(paren)m(theses)f(sat-)1110
-3589 y(isfying)d(the)f(ab)s(o)m(v)m(e)i(conditions)f(do)g(not)f(cause)h
-(the)g(shell)g(to)g(exit.)45 b(A)32 b(trap)1110 3698
-y(on)e Fs(ERR)p Ft(,)g(if)g(set,)i(is)e(executed)h(b)s(efore)f(the)h
-(shell)f(exits.)630 3862 y Fs(-f)384 b Ft(Disable)31
-b(\014le)g(name)f(generation)i(\(globbing\).)630 4026
-y Fs(-h)384 b Ft(Lo)s(cate)33 b(and)e(remem)m(b)s(er)h(\(hash\))g
-(commands)f(as)h(they)g(are)g(lo)s(ok)m(ed)h(up)e(for)1110
-4136 y(execution.)42 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g
-(default.)630 4300 y Fs(-k)384 b Ft(All)34 b(argumen)m(ts)g(in)f(the)h
-(form)f(of)g(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110
-4410 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
-(those)i(that)f(precede)g(the)1110 4519 y(command)30
-b(name.)630 4683 y Fs(-m)384 b Ft(Job)30 b(con)m(trol)i(is)e(enabled)h
-(\(see)g(Chapter)f(7)g([Job)h(Con)m(trol],)g(page)g(89\).)630
-4847 y Fs(-n)384 b Ft(Read)21 b(commands)f(but)g(do)h(not)g(execute)h
-(them;)i(this)d(ma)m(y)g(b)s(e)f(used)g(to)h(c)m(hec)m(k)1110
-4957 y(a)42 b(script)g(for)g(syn)m(tax)g(errors.)75 b(This)41
-b(option)h(is)g(ignored)g(b)m(y)g(in)m(teractiv)m(e)1110
-5066 y(shells.)630 5230 y Fs(-o)30 b Fj(option-name)1110
-5340 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i
-Fq(option-name)5 b Ft(:)p eop end
+2861 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting)
+g(the)g(next)g(primary)g(prompt.)630 3021 y Fs(-e)384
+b Ft(Exit)65 b(immediately)g(if)f(a)h(pip)s(eline)e(\(see)i(Section)g
+(3.2.2)h([Pip)s(elines],)1110 3131 y(page)56 b(8\),)62
+b(whic)m(h)55 b(ma)m(y)h(consist)f(of)h(a)f(single)h(simple)f(command)g
+(\(see)1110 3241 y(Section)43 b(3.2.1)i([Simple)d(Commands],)j(page)e
+(8\),)k(a)c(subshell)e(command)1110 3350 y(enclosed)32
+b(in)f(paren)m(theses)h(\(see)h(Section)f(3.2.4.3)i([Command)d
+(Grouping],)1110 3460 y(page)h(13\),)h(or)e(one)g(of)h(the)f(commands)g
+(executed)h(as)f(part)g(of)h(a)f(command)1110 3569 y(list)37
+b(enclosed)g(b)m(y)f(braces)g(\(see)h(Section)g(3.2.4.3)h([Command)e
+(Grouping],)1110 3679 y(page)48 b(13\))g(returns)d(a)j(non-zero)f
+(status.)91 b(The)46 b(shell)h(do)s(es)g(not)g(exit)h(if)1110
+3789 y(the)39 b(command)f(that)h(fails)g(is)f(part)g(of)h(the)f
+(command)h(list)g(immediately)1110 3898 y(follo)m(wing)47
+b(a)f Fs(while)e Ft(or)h Fs(until)f Ft(k)m(eyw)m(ord,)50
+b(part)45 b(of)h(the)g(test)g(in)f(an)h Fs(if)1110 4008
+y Ft(statemen)m(t,)31 b(part)d(of)h(an)m(y)g(command)f(executed)h(in)g
+(a)g Fs(&&)e Ft(or)i Fs(||)f Ft(list)h(except)1110 4117
+y(the)48 b(command)h(follo)m(wing)g(the)g(\014nal)f Fs(&&)f
+Ft(or)i Fs(||)p Ft(,)j(an)m(y)d(command)f(in)g(a)1110
+4227 y(pip)s(eline)39 b(but)f(the)i(last,)i(or)d(if)g(the)h(command's)f
+(return)f(status)h(is)g(b)s(eing)1110 4337 y(in)m(v)m(erted)33
+b(with)e Fs(!)p Ft(.)45 b(A)32 b(trap)g(on)f Fs(ERR)p
+Ft(,)h(if)g(set,)h(is)f(executed)g(b)s(efore)g(the)g(shell)1110
+4446 y(exits.)1110 4581 y(This)e(option)h(applies)f(to)h(the)g(shell)g
+(en)m(vironmen)m(t)g(and)f(eac)m(h)h(subshell)f(en-)1110
+4691 y(vironmen)m(t)j(separately)i(\(see)f(Section)g(3.7.3)h([Command)d
+(Execution)i(En-)1110 4800 y(vironmen)m(t],)i(page)f(31\),)i(and)d(ma)m
+(y)h(cause)f(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110
+4910 y(cuting)d(all)g(the)g(commands)f(in)g(the)g(subshell.)630
+5070 y Fs(-f)384 b Ft(Disable)31 b(\014le)g(name)f(generation)i
+(\(globbing\).)630 5230 y Fs(-h)384 b Ft(Lo)s(cate)33
+b(and)e(remem)m(b)s(er)h(\(hash\))g(commands)f(as)h(they)g(are)g(lo)s
+(ok)m(ed)h(up)e(for)1110 5340 y(execution.)42 b(This)29
+b(option)i(is)g(enabled)f(b)m(y)g(default.)p eop end
 %%Page: 52 58
 TeXDict begin 52 57 bop 150 -116 a Ft(52)2572 b(Bash)31
-b(Reference)g(Man)m(ual)1110 299 y Fs(allexport)1590
-408 y Ft(Same)f(as)h Fs(-a)p Ft(.)1110 560 y Fs(braceexpand)1590
-669 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 821 y Fs(emacs)240
+b(Reference)g(Man)m(ual)630 299 y Fs(-k)384 b Ft(All)34
+b(argumen)m(ts)g(in)f(the)h(form)f(of)g(assignmen)m(t)h(statemen)m(ts)i
+(are)d(placed)h(in)1110 408 y(the)k(en)m(vironmen)m(t)g(for)g(a)g
+(command,)h(not)f(just)f(those)i(that)f(precede)g(the)1110
+518 y(command)30 b(name.)630 680 y Fs(-m)384 b Ft(Job)30
+b(con)m(trol)i(is)e(enabled)h(\(see)g(Chapter)f(7)g([Job)h(Con)m
+(trol],)g(page)g(89\).)630 842 y Fs(-n)384 b Ft(Read)21
+b(commands)f(but)g(do)h(not)g(execute)h(them;)i(this)d(ma)m(y)g(b)s(e)f
+(used)g(to)h(c)m(hec)m(k)1110 951 y(a)42 b(script)g(for)g(syn)m(tax)g
+(errors.)75 b(This)41 b(option)h(is)g(ignored)g(b)m(y)g(in)m(teractiv)m
+(e)1110 1061 y(shells.)630 1223 y Fs(-o)30 b Fj(option-name)1110
+1332 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i
+Fq(option-name)5 b Ft(:)1110 1494 y Fs(allexport)1590
+1604 y Ft(Same)30 b(as)h Fs(-a)p Ft(.)1110 1765 y Fs(braceexpand)1590
+1875 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 2037 y Fs(emacs)240
 b Ft(Use)25 b(an)f Fs(emacs)p Ft(-st)m(yle)h(line)f(editing)h(in)m
-(terface)h(\(see)g(Chapter)e(8)1590 930 y([Command)38
+(terface)h(\(see)g(Chapter)e(8)1590 2146 y([Command)38
 b(Line)g(Editing],)i(page)f(93\).)66 b(This)37 b(also)i(a\013ects)1590
-1040 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
-Fs(read)f(-e)p Ft(.)1110 1191 y Fs(errexit)144 b Ft(Same)30
-b(as)h Fs(-e)p Ft(.)1110 1343 y Fs(errtrace)96 b Ft(Same)30
-b(as)h Fs(-E)p Ft(.)1110 1494 y Fs(functrace)1590 1604
-y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 1755 y Fs(hashall)144
-b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 1906 y Fs(histexpand)1590
-2016 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 2167 y Fs(history)144
+2256 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
+Fs(read)f(-e)p Ft(.)1110 2418 y Fs(errexit)144 b Ft(Same)30
+b(as)h Fs(-e)p Ft(.)1110 2579 y Fs(errtrace)96 b Ft(Same)30
+b(as)h Fs(-E)p Ft(.)1110 2741 y Fs(functrace)1590 2851
+y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 3013 y Fs(hashall)144
+b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 3174 y Fs(histexpand)1590
+3284 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 3446 y Fs(history)144
 b Ft(Enable)39 b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h
-(Section)h(9.1)1590 2277 y([Bash)d(History)g(F)-8 b(acilities],)41
-b(page)c(121.)60 b(This)36 b(option)h(is)f(on)1590 2386
+(Section)h(9.1)1590 3555 y([Bash)d(History)g(F)-8 b(acilities],)41
+b(page)c(121.)60 b(This)36 b(option)h(is)f(on)1590 3665
 y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
-2538 y Fs(ignoreeof)1590 2647 y Ft(An)d(in)m(teractiv)m(e)j(shell)e
-(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 2799
+3827 y Fs(ignoreeof)1590 3936 y Ft(An)d(in)m(teractiv)m(e)j(shell)e
+(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 4098
 y Fs(keyword)144 b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110
-2950 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110
-3101 y Fs(noclobber)1590 3211 y Ft(Same)f(as)h Fs(-C)p
-Ft(.)1110 3362 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p
-Ft(.)1110 3513 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p
-Ft(.)1110 3665 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110
-3816 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110
-3968 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110
-4119 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110
-4270 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110
-4422 y Fs(pipefail)96 b Ft(If)44 b(set,)k(the)d(return)e(v)-5
-b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i(the)f(v)-5 b(alue)45
-b(of)1590 4531 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
-(exit)g(with)f(a)g(non-zero)1590 4641 y(status,)28 b(or)f(zero)g(if)f
-(all)i(commands)e(in)g(the)h(pip)s(eline)f(exit)i(suc-)1590
-4750 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
-(default.)1110 4902 y Fs(posix)240 b Ft(Change)30 b(the)g(b)s(eha)m
-(vior)h(of)f(Bash)g(where)g(the)g(default)h(op)s(era-)1590
-5011 y(tion)25 b(di\013ers)f(from)g(the)h Fl(posix)f
-Ft(standard)f(to)i(matc)m(h)h(the)f(stan-)1590 5121 y(dard)32
-b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j(page)e(85\).)
-1590 5230 y(This)k(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)g(b)s(eha)m
-(v)m(e)g(as)g(a)f(strict)h(su-)1590 5340 y(p)s(erset)30
-b(of)h(that)f(standard.)p eop end
+4260 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110
+4422 y Fs(noclobber)1590 4531 y Ft(Same)f(as)h Fs(-C)p
+Ft(.)1110 4693 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p
+Ft(.)1110 4855 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p
+Ft(.)1110 5016 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110
+5178 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110
+5340 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)p
+eop end
 %%Page: 53 59
 TeXDict begin 53 58 bop 150 -116 a Ft(Chapter)30 b(4:)41
 b(Shell)30 b(Builtin)h(Commands)2069 b(53)1110 299 y
-Fs(privileged)1590 408 y Ft(Same)30 b(as)h Fs(-p)p Ft(.)1110
-560 y Fs(verbose)144 b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110
-712 y Fs(vi)384 b Ft(Use)36 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g
-(editing)g(in)m(terface.)58 b(This)35 b(also)h(a\013ects)1590
-822 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
-Fs(read)f(-e)p Ft(.)1110 973 y Fs(xtrace)192 b Ft(Same)30
-b(as)h Fs(-x)p Ft(.)630 1125 y Fs(-p)384 b Ft(T)-8 b(urn)33
-b(on)h(privileged)h(mo)s(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f
-Fs($BASH_ENV)e Ft(and)h Fs($ENV)1110 1235 y Ft(\014les)k(are)h(not)g
-(pro)s(cessed,)h(shell)f(functions)f(are)h(not)f(inherited)h(from)f
-(the)1110 1344 y(en)m(vironmen)m(t,)47 b(and)42 b(the)h
-Fs(SHELLOPTS)p Ft(,)g Fs(CDPATH)e Ft(and)i Fs(GLOBIGNORE)c
-Ft(v)-5 b(ari-)1110 1454 y(ables,)36 b(if)e(they)g(app)s(ear)g(in)g
-(the)g(en)m(vironmen)m(t,)i(are)f(ignored.)53 b(If)33
-b(the)i(shell)1110 1563 y(is)i(started)h(with)f(the)g(e\013ectiv)m(e)j
-(user)d(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110
-1673 y(user)h(\(group\))h(id,)i(and)d(the)h Fs(-p)f Ft(option)i(is)e
-(not)i(supplied,)f(these)h(actions)1110 1783 y(are)32
-b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)h(to)f
-(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 1892 y
-Fs(-p)i Ft(option)h(is)g(supplied)f(at)h(startup,)h(the)f(e\013ectiv)m
-(e)i(user)d(id)g(is)h(not)g(reset.)1110 2002 y(T)-8 b(urning)35
-b(this)i(option)g(o\013)g(causes)g(the)g(e\013ectiv)m(e)i(user)d(and)g
-(group)g(ids)g(to)1110 2111 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f
-(and)g(group)g(ids.)630 2263 y Fs(-t)384 b Ft(Exit)31
-b(after)g(reading)f(and)g(executing)h(one)g(command.)630
-2415 y Fs(-u)384 b Ft(T)-8 b(reat)38 b(unset)e(v)-5 b(ariables)37
-b(as)h(an)e(error)h(when)e(p)s(erforming)h(parameter)h(ex-)1110
-2524 y(pansion.)58 b(An)36 b(error)f(message)j(will)e(b)s(e)g(written)g
-(to)h(the)g(standard)e(error,)1110 2634 y(and)30 b(a)h(non-in)m
-(teractiv)m(e)i(shell)d(will)h(exit.)630 2786 y Fs(-v)384
-b Ft(Prin)m(t)30 b(shell)h(input)e(lines)i(as)g(they)f(are)h(read.)630
-2937 y Fs(-x)384 b Ft(Prin)m(t)21 b(a)h(trace)h(of)f(simple)f
-(commands,)i Fs(for)e Ft(commands,)i Fs(case)d Ft(commands,)1110
-3047 y Fs(select)29 b Ft(commands,)j(and)e(arithmetic)j
-Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110 3157
-y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f(are)
-h(expanded)f(and)f(b)s(efore)1110 3266 y(they)i(are)g(executed.)49
+Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110 467
+y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110
+636 y Fs(pipefail)96 b Ft(If)44 b(set,)k(the)d(return)e(v)-5
+b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i(the)f(v)-5 b(alue)45
+b(of)1590 746 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)
+g(with)f(a)g(non-zero)1590 855 y(status,)28 b(or)f(zero)g(if)f(all)i
+(commands)e(in)g(the)h(pip)s(eline)f(exit)i(suc-)1590
+965 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
+(default.)1110 1133 y Fs(posix)240 b Ft(Change)30 b(the)g(b)s(eha)m
+(vior)h(of)f(Bash)g(where)g(the)g(default)h(op)s(era-)1590
+1243 y(tion)25 b(di\013ers)f(from)g(the)h Fl(posix)f
+Ft(standard)f(to)i(matc)m(h)h(the)f(stan-)1590 1353 y(dard)32
+b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j(page)e(85\).)
+1590 1462 y(This)k(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)g(b)s(eha)m
+(v)m(e)g(as)g(a)f(strict)h(su-)1590 1572 y(p)s(erset)30
+b(of)h(that)f(standard.)1110 1740 y Fs(privileged)1590
+1850 y Ft(Same)g(as)h Fs(-p)p Ft(.)1110 2019 y Fs(verbose)144
+b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110 2187 y Fs(vi)384
+b Ft(Use)36 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g(editing)g(in)m
+(terface.)58 b(This)35 b(also)h(a\013ects)1590 2297 y(the)31
+b(editing)g(in)m(terface)h(used)d(for)h Fs(read)f(-e)p
+Ft(.)1110 2465 y Fs(xtrace)192 b Ft(Same)30 b(as)h Fs(-x)p
+Ft(.)630 2634 y Fs(-p)384 b Ft(T)-8 b(urn)33 b(on)h(privileged)h(mo)s
+(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f Fs($BASH_ENV)e
+Ft(and)h Fs($ENV)1110 2744 y Ft(\014les)k(are)h(not)g(pro)s(cessed,)h
+(shell)f(functions)f(are)h(not)f(inherited)h(from)f(the)1110
+2853 y(en)m(vironmen)m(t,)47 b(and)42 b(the)h Fs(SHELLOPTS)p
+Ft(,)g Fs(CDPATH)e Ft(and)i Fs(GLOBIGNORE)c Ft(v)-5 b(ari-)1110
+2963 y(ables,)36 b(if)e(they)g(app)s(ear)g(in)g(the)g(en)m(vironmen)m
+(t,)i(are)f(ignored.)53 b(If)33 b(the)i(shell)1110 3072
+y(is)i(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d(\(group\))g(id)g
+(not)g(equal)h(to)g(the)f(real)1110 3182 y(user)h(\(group\))h(id,)i
+(and)d(the)h Fs(-p)f Ft(option)i(is)e(not)i(supplied,)f(these)h
+(actions)1110 3292 y(are)32 b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j
+(user)c(id)h(is)g(set)h(to)f(the)h(real)f(user)g(id.)45
+b(If)32 b(the)1110 3401 y Fs(-p)i Ft(option)h(is)g(supplied)f(at)h
+(startup,)h(the)f(e\013ectiv)m(e)i(user)d(id)g(is)h(not)g(reset.)1110
+3511 y(T)-8 b(urning)35 b(this)i(option)g(o\013)g(causes)g(the)g
+(e\013ectiv)m(e)i(user)d(and)g(group)g(ids)g(to)1110
+3620 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f(and)g(group)g(ids.)630
+3789 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h
+(one)g(command.)630 3957 y Fs(-u)384 b Ft(T)-8 b(reat)38
+b(unset)e(v)-5 b(ariables)37 b(as)h(an)e(error)h(when)e(p)s(erforming)h
+(parameter)h(ex-)1110 4067 y(pansion.)58 b(An)36 b(error)f(message)j
+(will)e(b)s(e)g(written)g(to)h(the)g(standard)e(error,)1110
+4177 y(and)30 b(a)h(non-in)m(teractiv)m(e)i(shell)d(will)h(exit.)630
+4345 y Fs(-v)384 b Ft(Prin)m(t)30 b(shell)h(input)e(lines)i(as)g(they)f
+(are)h(read.)630 4514 y Fs(-x)384 b Ft(Prin)m(t)21 b(a)h(trace)h(of)f
+(simple)f(commands,)i Fs(for)e Ft(commands,)i Fs(case)d
+Ft(commands,)1110 4623 y Fs(select)29 b Ft(commands,)j(and)e
+(arithmetic)j Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110
+4733 y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f
+(are)h(expanded)f(and)f(b)s(efore)1110 4843 y(they)i(are)g(executed.)49
 b(The)32 b(v)-5 b(alue)33 b(of)g(the)g Fs(PS4)f Ft(v)-5
-b(ariable)34 b(is)f(expanded)f(and)1110 3376 y(the)24
+b(ariable)34 b(is)f(expanded)f(and)1110 4952 y(the)24
 b(resultan)m(t)h(v)-5 b(alue)24 b(is)g(prin)m(ted)g(b)s(efore)f(the)h
-(command)g(and)f(its)i(expanded)1110 3485 y(argumen)m(ts.)630
-3637 y Fs(-B)384 b Ft(The)41 b(shell)g(will)g(p)s(erform)f(brace)h
-(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 3747
+(command)g(and)f(its)i(expanded)1110 5062 y(argumen)m(ts.)630
+5230 y Fs(-B)384 b Ft(The)41 b(shell)g(will)g(p)s(erform)f(brace)h
+(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 5340
 y(Expansion],)30 b(page)h(18\).)42 b(This)30 b(option)h(is)f(on)g(b)m
-(y)h(default.)630 3898 y Fs(-C)384 b Ft(Prev)m(en)m(t)25
+(y)h(default.)p eop end
+%%Page: 54 60
+TeXDict begin 54 59 bop 150 -116 a Ft(54)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(-C)384 b Ft(Prev)m(en)m(t)25
 b(output)e(redirection)h(using)f(`)p Fs(>)p Ft(',)i(`)p
 Fs(>&)p Ft(',)g(and)e(`)p Fs(<>)p Ft(')g(from)h(o)m(v)m(erwriting)1110
-4008 y(existing)31 b(\014les.)630 4160 y Fs(-E)384 b
-Ft(If)39 b(set,)j(an)m(y)e(trap)f(on)g Fs(ERR)g Ft(is)g(inherited)g(b)m
-(y)g(shell)h(functions,)h(command)1110 4269 y(substitutions,)35
+408 y(existing)31 b(\014les.)630 582 y Fs(-E)384 b Ft(If)39
+b(set,)j(an)m(y)e(trap)f(on)g Fs(ERR)g Ft(is)g(inherited)g(b)m(y)g
+(shell)h(functions,)h(command)1110 692 y(substitutions,)35
 b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.)
-1110 4379 y(The)d Fs(ERR)f Ft(trap)i(is)f(normally)h(not)f(inherited)g
-(in)g(suc)m(h)g(cases.)630 4531 y Fs(-H)384 b Ft(Enable)38
+1110 801 y(The)d Fs(ERR)f Ft(trap)i(is)f(normally)h(not)f(inherited)g
+(in)g(suc)m(h)g(cases.)630 975 y Fs(-H)384 b Ft(Enable)38
 b(`)p Fs(!)p Ft(')h(st)m(yle)h(history)e(substitution)g(\(see)h
-(Section)h(9.3)f([History)g(In-)1110 4640 y(teraction],)g(page)d
+(Section)h(9.3)f([History)g(In-)1110 1084 y(teraction],)g(page)d
 (123\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
-(teractiv)m(e)1110 4750 y(shells.)630 4902 y Fs(-P)384
+(teractiv)m(e)1110 1194 y(shells.)630 1368 y Fs(-P)384
 b Ft(If)43 b(set,)k(do)c(not)g(follo)m(w)h(sym)m(b)s(olic)g(links)e
-(when)g(p)s(erforming)g(commands)1110 5011 y(suc)m(h)29
+(when)g(p)s(erforming)g(commands)1110 1477 y(suc)m(h)29
 b(as)h Fs(cd)f Ft(whic)m(h)g(c)m(hange)h(the)g(curren)m(t)f(directory)
--8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 5121 y(tory)j(is)g(used)
+-8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 1587 y(tory)j(is)g(used)
 f(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i
-(c)m(hain)f(of)1110 5230 y(directories)j(when)d(p)s(erforming)h
+(c)m(hain)f(of)1110 1696 y(directories)j(when)d(p)s(erforming)h
 (commands)g(whic)m(h)g(c)m(hange)i(the)f(curren)m(t)1110
-5340 y(directory)-8 b(.)p eop end
-%%Page: 54 60
-TeXDict begin 54 59 bop 150 -116 a Ft(54)2572 b(Bash)31
-b(Reference)g(Man)m(ual)1110 299 y(F)-8 b(or)31 b(example,)g(if)f(`)p
+1806 y(directory)-8 b(.)1110 1947 y(F)g(or)31 b(example,)g(if)f(`)p
 Fs(/usr/sys)p Ft(')e(is)i(a)g(sym)m(b)s(olic)h(link)f(to)g(`)p
-Fs(/usr/local/sys)p Ft(')1110 408 y(then:)1350 547 y
-Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 656 y(/usr/sys)1350
-766 y($)g(cd)h(..;)f(pwd)1350 875 y(/usr)1110 1014 y
-Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350 1152
-y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1262 y(/usr/local/sys)
-1350 1371 y($)g(cd)h(..;)f(pwd)1350 1481 y(/usr/local)630
-1648 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g(on)g
+Fs(/usr/local/sys)p Ft(')1110 2057 y(then:)1350 2199
+y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 2308 y(/usr/sys)1350
+2418 y($)g(cd)h(..;)f(pwd)1350 2527 y(/usr)1110 2669
+y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350 2811
+y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 2920 y(/usr/local/sys)
+1350 3030 y($)g(cd)h(..;)f(pwd)1350 3139 y(/usr/local)630
+3313 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g(on)g
 Fs(DEBUG)e Ft(and)i Fs(RETURN)e Ft(are)i(inherited)g(b)m(y)f(shell)i
-(func-)1110 1757 y(tions,)k(command)d(substitutions,)h(and)f(commands)g
-(executed)h(in)f(a)h(sub-)1110 1867 y(shell)33 b(en)m(vironmen)m(t.)49
+(func-)1110 3423 y(tions,)k(command)d(substitutions,)h(and)f(commands)g
+(executed)h(in)f(a)h(sub-)1110 3532 y(shell)33 b(en)m(vironmen)m(t.)49
 b(The)32 b Fs(DEBUG)g Ft(and)g Fs(RETURN)f Ft(traps)h(are)i(normally)f
-(not)1110 1976 y(inherited)d(in)g(suc)m(h)g(cases.)630
-2143 y Fs(--)384 b Ft(If)31 b(no)h(argumen)m(ts)f(follo)m(w)i(this)f
+(not)1110 3642 y(inherited)d(in)g(suc)m(h)g(cases.)630
+3815 y Fs(--)384 b Ft(If)31 b(no)h(argumen)m(ts)f(follo)m(w)i(this)f
 (option,)g(then)f(the)h(p)s(ositional)h(parameters)1110
-2253 y(are)h(unset.)49 b(Otherwise,)34 b(the)g(p)s(ositional)g
-(parameters)g(are)g(set)g(to)g(the)g Fq(ar-)1110 2362
+3925 y(are)h(unset.)49 b(Otherwise,)34 b(the)g(p)s(ositional)g
+(parameters)g(are)g(set)g(to)g(the)g Fq(ar-)1110 4034
 y(gumen)m(ts)p Ft(,)d(ev)m(en)g(if)f(some)h(of)g(them)f(b)s(egin)g
-(with)g(a)h(`)p Fs(-)p Ft('.)630 2529 y Fs(-)432 b Ft(Signal)45
+(with)g(a)h(`)p Fs(-)p Ft('.)630 4208 y Fs(-)432 b Ft(Signal)45
 b(the)g(end)f(of)h(options,)k(cause)c(all)h(remaining)e
-Fq(argumen)m(ts)49 b Ft(to)d(b)s(e)1110 2639 y(assigned)38
+Fq(argumen)m(ts)49 b Ft(to)d(b)s(e)1110 4318 y(assigned)38
 b(to)h(the)f(p)s(ositional)h(parameters.)65 b(The)37
 b(`)p Fs(-x)p Ft(')h(and)g(`)p Fs(-v)p Ft(')g(options)1110
-2748 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f
+4427 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f
 (argumen)m(ts,)i(the)f(p)s(ositional)h(parameters)1110
-2858 y(remain)k(unc)m(hanged.)630 3025 y(Using)d(`)p
+4537 y(remain)k(unc)m(hanged.)630 4710 y(Using)d(`)p
 Fs(+)p Ft(')h(rather)f(than)g(`)p Fs(-)p Ft(')g(causes)h(these)f
 (options)h(to)g(b)s(e)e(turned)g(o\013.)40 b(The)27 b(options)h(can)630
-3134 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e
+4820 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e
 (the)g(shell.)56 b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g
-(b)s(e)630 3244 y(found)29 b(in)h Fs($-)p Ft(.)630 3382
+(b)s(e)630 4930 y(found)29 b(in)h Fs($-)p Ft(.)630 5071
 y(The)43 b(remaining)h(N)f Fq(argumen)m(ts)48 b Ft(are)c(p)s(ositional)
-g(parameters)g(and)f(are)h(assigned,)j(in)630 3492 y(order,)30
+g(parameters)g(and)f(are)h(assigned,)j(in)630 5181 y(order,)30
 b(to)h Fs($1)p Ft(,)f Fs($2)p Ft(,)36 b(.)22 b(.)g(.)42
 b Fs($N)p Ft(.)e(The)30 b(sp)s(ecial)h(parameter)g Fs(#)f
-Ft(is)g(set)h(to)g(N.)630 3630 y(The)f(return)f(status)i(is)f(alw)m(a)m
+Ft(is)g(set)h(to)g(N.)630 5322 y(The)f(return)f(status)i(is)f(alw)m(a)m
 (ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(supplied.)150 3869 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)275
-4121 y Ft(This)29 b(builtin)h(allo)m(ws)i(y)m(ou)e(to)i(c)m(hange)f
-(additional)g(shell)g(optional)g(b)s(eha)m(vior.)150
-4291 y Fs(shopt)870 4430 y(shopt)46 b([-pqsu])g([-o])h([)p
-Fj(optname)56 b Fs(...)o(])630 4568 y Ft(T)-8 b(oggle)47
+(supplied.)p eop end
+%%Page: 55 61
+TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(55)150 299 y Fk(4.3.2)63
+b(The)41 b(Shopt)h(Builtin)275 544 y Ft(This)29 b(builtin)h(allo)m(ws)i
+(y)m(ou)e(to)i(c)m(hange)f(additional)g(shell)g(optional)g(b)s(eha)m
+(vior.)150 704 y Fs(shopt)870 839 y(shopt)46 b([-pqsu])g([-o])h([)p
+Fj(optname)56 b Fs(...)o(])630 974 y Ft(T)-8 b(oggle)47
 b(the)d(v)-5 b(alues)45 b(of)g(v)-5 b(ariables)45 b(con)m(trolling)i
 (optional)f(shell)e(b)s(eha)m(vior.)84 b(With)45 b(no)630
-4677 y(options,)32 b(or)f(with)g(the)g(`)p Fs(-p)p Ft(')g(option,)h(a)g
+1083 y(options,)32 b(or)f(with)g(the)g(`)p Fs(-p)p Ft(')g(option,)h(a)g
 (list)f(of)h(all)g(settable)g(options)g(is)f(displa)m(y)m(ed,)h(with)
-630 4787 y(an)i(indication)i(of)f(whether)f(or)g(not)h(eac)m(h)h(is)e
+630 1193 y(an)i(indication)i(of)f(whether)f(or)g(not)h(eac)m(h)h(is)e
 (set.)54 b(The)34 b(`)p Fs(-p)p Ft(')h(option)g(causes)g(output)f(to)
-630 4897 y(b)s(e)i(displa)m(y)m(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b)
+630 1303 y(b)s(e)i(displa)m(y)m(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b)
 s(e)e(reused)h(as)g(input.)58 b(Other)36 b(options)g(ha)m(v)m(e)i(the)
-630 5006 y(follo)m(wing)32 b(meanings:)630 5173 y Fs(-s)384
+630 1412 y(follo)m(wing)32 b(meanings:)630 1572 y Fs(-s)384
 b Ft(Enable)30 b(\(set\))i(eac)m(h)f Fq(optname)p Ft(.)630
-5340 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h
-Fq(optname)p Ft(.)p eop end
-%%Page: 55 61
-TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y Fs(-q)384
-b Ft(Suppresses)28 b(normal)h(output;)h(the)g(return)e(status)i
-(indicates)h(whether)e(the)1110 408 y Fq(optname)37 b
-Ft(is)31 b(set)h(or)f(unset.)43 b(If)31 b(m)m(ultiple)h
-Fq(optname)37 b Ft(argumen)m(ts)31 b(are)h(giv)m(en)1110
-518 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d(return)f(status)h(is)g(zero)h
-(if)f(all)g Fq(optnames)k Ft(are)d(enabled;)1110 628
-y(non-zero)31 b(otherwise.)630 775 y Fs(-o)384 b Ft(Restricts)28
-b(the)g(v)-5 b(alues)28 b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i
-(de\014ned)f(for)g(the)g(`)p Fs(-o)p Ft(')h(op-)1110
-885 y(tion)23 b(to)h(the)f Fs(set)f Ft(builtin)h(\(see)g(Section)h
-(4.3.1)h([The)d(Set)i(Builtin],)h(page)e(51\).)630 1033
-y(If)29 b(either)i(`)p Fs(-s)p Ft(')f(or)g(`)p Fs(-u)p
-Ft(')f(is)h(used)g(with)f(no)h Fq(optname)35 b Ft(argumen)m(ts,)c(the)f
-(displa)m(y)g(is)g(limited)630 1142 y(to)h(those)g(options)g(whic)m(h)f
-(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m(ely)-8 b(.)630
-1271 y(Unless)30 b(otherwise)h(noted,)g(the)g Fs(shopt)d
-Ft(options)j(are)g(disabled)f(\(o\013)7 b(\))32 b(b)m(y)e(default.)630
-1400 y(The)d(return)f(status)i(when)f(listing)h(options)g(is)f(zero)i
-(if)e(all)i Fq(optnames)i Ft(are)d(enabled,)g(non-)630
-1509 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g
-(options,)i(the)e(return)f(status)h(is)g(zero)630 1619
-y(unless)30 b(an)g Fq(optname)36 b Ft(is)30 b(not)h(a)g(v)-5
-b(alid)30 b(shell)h(option.)630 1747 y(The)f(list)h(of)f
-Fs(shopt)f Ft(options)i(is:)630 1895 y Fs(autocd)192
-b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h(is)f(the)g(name)g(of)h
-(a)f(directory)h(is)f(executed)1110 2005 y(as)j(if)f(it)h(w)m(ere)f
-(the)h(argumen)m(t)g(to)g(the)f Fs(cd)g Ft(command.)40
-b(This)29 b(option)g(is)h(only)1110 2114 y(used)g(b)m(y)g(in)m
-(teractiv)m(e)j(shells.)630 2262 y Fs(cdable_vars)1110
-2372 y Ft(If)h(this)h(is)g(set,)i(an)e(argumen)m(t)g(to)h(the)f
-Fs(cd)f Ft(builtin)h(command)f(that)i(is)f(not)1110 2481
-y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h(name)f(of)h(a)g(v)
--5 b(ariable)31 b(whose)g(v)-5 b(alue)31 b(is)1110 2591
-y(the)g(directory)f(to)i(c)m(hange)f(to.)630 2738 y Fs(cdspell)144
-b Ft(If)27 b(set,)h(minor)f(errors)f(in)h(the)g(sp)s(elling)h(of)f(a)g
-(directory)h(comp)s(onen)m(t)f(in)g(a)h Fs(cd)1110 2848
-y Ft(command)i(will)h(b)s(e)f(corrected.)43 b(The)30
-b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110
-2958 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
+1732 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h
+Fq(optname)p Ft(.)630 1893 y Fs(-q)384 b Ft(Suppresses)28
+b(normal)h(output;)h(the)g(return)e(status)i(indicates)h(whether)e(the)
+1110 2002 y Fq(optname)37 b Ft(is)31 b(set)h(or)f(unset.)43
+b(If)31 b(m)m(ultiple)h Fq(optname)37 b Ft(argumen)m(ts)31
+b(are)h(giv)m(en)1110 2112 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d
+(return)f(status)h(is)g(zero)h(if)f(all)g Fq(optnames)k
+Ft(are)d(enabled;)1110 2221 y(non-zero)31 b(otherwise.)630
+2381 y Fs(-o)384 b Ft(Restricts)28 b(the)g(v)-5 b(alues)28
+b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i(de\014ned)f(for)g(the)g
+(`)p Fs(-o)p Ft(')h(op-)1110 2491 y(tion)23 b(to)h(the)f
+Fs(set)f Ft(builtin)h(\(see)g(Section)h(4.3.1)h([The)d(Set)i(Builtin],)
+h(page)e(51\).)630 2651 y(If)29 b(either)i(`)p Fs(-s)p
+Ft(')f(or)g(`)p Fs(-u)p Ft(')f(is)h(used)g(with)f(no)h
+Fq(optname)35 b Ft(argumen)m(ts,)c(the)f(displa)m(y)g(is)g(limited)630
+2761 y(to)h(those)g(options)g(whic)m(h)f(are)h(set)f(or)h(unset,)f
+(resp)s(ectiv)m(ely)-8 b(.)630 2896 y(Unless)30 b(otherwise)h(noted,)g
+(the)g Fs(shopt)d Ft(options)j(are)g(disabled)f(\(o\013)7
+b(\))32 b(b)m(y)e(default.)630 3030 y(The)d(return)f(status)i(when)f
+(listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i
+Ft(are)d(enabled,)g(non-)630 3140 y(zero)40 b(otherwise.)66
+b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
+(status)h(is)g(zero)630 3250 y(unless)30 b(an)g Fq(optname)36
+b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)630
+3384 y(The)f(list)h(of)f Fs(shopt)f Ft(options)i(is:)630
+3545 y Fs(autocd)192 b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h
+(is)f(the)g(name)g(of)h(a)f(directory)h(is)f(executed)1110
+3654 y(as)j(if)f(it)h(w)m(ere)f(the)h(argumen)m(t)g(to)g(the)f
+Fs(cd)g Ft(command.)40 b(This)29 b(option)g(is)h(only)1110
+3764 y(used)g(b)m(y)g(in)m(teractiv)m(e)j(shells.)630
+3924 y Fs(cdable_vars)1110 4033 y Ft(If)h(this)h(is)g(set,)i(an)e
+(argumen)m(t)g(to)h(the)f Fs(cd)f Ft(builtin)h(command)f(that)i(is)f
+(not)1110 4143 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h
+(name)f(of)h(a)g(v)-5 b(ariable)31 b(whose)g(v)-5 b(alue)31
+b(is)1110 4253 y(the)g(directory)f(to)i(c)m(hange)f(to.)630
+4413 y Fs(cdspell)144 b Ft(If)27 b(set,)h(minor)f(errors)f(in)h(the)g
+(sp)s(elling)h(of)f(a)g(directory)h(comp)s(onen)m(t)f(in)g(a)h
+Fs(cd)1110 4522 y Ft(command)i(will)h(b)s(e)f(corrected.)43
+b(The)30 b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110
+4632 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
 b(and)40 b(a)i(c)m(haracter)h(to)s(o)g(man)m(y)-8 b(.)74
-b(If)42 b(a)1110 3067 y(correction)25 b(is)e(found,)g(the)h(corrected)g
-(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 3177
+b(If)42 b(a)1110 4742 y(correction)25 b(is)e(found,)g(the)h(corrected)g
+(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 4851
 y(pro)s(ceeds.)40 b(This)30 b(option)h(is)f(only)h(used)e(b)m(y)h(in)m
-(teractiv)m(e)k(shells.)630 3324 y Fs(checkhash)1110
-3434 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
-(command)f(found)g(in)g(the)h(hash)f(table)1110 3544
+(teractiv)m(e)k(shells.)630 5011 y Fs(checkhash)1110
+5121 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
+(command)f(found)g(in)g(the)h(hash)f(table)1110 5230
 y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48
-b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 3653
-y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)630
-3801 y Fs(checkjobs)1110 3911 y Ft(If)d(set,)i(Bash)e(lists)h(the)g
-(status)g(of)f(an)m(y)h(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore)
-1110 4020 y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72
-b(If)41 b(an)m(y)g(jobs)f(are)i(running,)g(this)f(causes)1110
-4130 y(the)30 b(exit)g(to)g(b)s(e)f(deferred)g(un)m(til)h(a)f(second)h
-(exit)g(is)g(attempted)h(without)e(an)1110 4239 y(in)m(terv)m(ening)j
-(command)e(\(see)h(Chapter)f(7)h([Job)f(Con)m(trol],)i(page)f(89\).)42
-b(The)1110 4349 y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h
-(if)g(an)m(y)f(jobs)g(are)h(stopp)s(ed.)630 4497 y Fs(checkwinsize)1110
-4606 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j
-(after)f(eac)m(h)g(command)f(and,)j(if)1110 4716 y(necessary)-8
+b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 5340
+y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)p
+eop end
+%%Page: 56 62
+TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(checkjobs)1110 408
+y Ft(If)d(set,)i(Bash)e(lists)h(the)g(status)g(of)f(an)m(y)h(stopp)s
+(ed)f(and)g(running)e(jobs)i(b)s(efore)1110 518 y(exiting)42
+b(an)f(in)m(teractiv)m(e)j(shell.)72 b(If)41 b(an)m(y)g(jobs)f(are)i
+(running,)g(this)f(causes)1110 628 y(the)30 b(exit)g(to)g(b)s(e)f
+(deferred)g(un)m(til)h(a)f(second)h(exit)g(is)g(attempted)h(without)e
+(an)1110 737 y(in)m(terv)m(ening)j(command)e(\(see)h(Chapter)f(7)h
+([Job)f(Con)m(trol],)i(page)f(89\).)42 b(The)1110 847
+y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h(if)g(an)m(y)f
+(jobs)g(are)h(stopp)s(ed.)630 1009 y Fs(checkwinsize)1110
+1118 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j
+(after)f(eac)m(h)g(command)f(and,)j(if)1110 1228 y(necessary)-8
 b(,)31 b(up)s(dates)f(the)g(v)-5 b(alues)31 b(of)g Fs(LINES)e
-Ft(and)g Fs(COLUMNS)p Ft(.)630 4863 y Fs(cmdhist)144
+Ft(and)g Fs(COLUMNS)p Ft(.)630 1390 y Fs(cmdhist)144
 b Ft(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)g(all)g(lines)f
-(of)g(a)h(m)m(ultiple-line)g(command)1110 4973 y(in)c(the)g(same)g
+(of)g(a)h(m)m(ultiple-line)g(command)1110 1499 y(in)c(the)g(same)g
 (history)g(en)m(try)-8 b(.)42 b(This)30 b(allo)m(ws)i(easy)g
-(re-editing)g(of)f(m)m(ulti-line)1110 5083 y(commands.)630
-5230 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s
+(re-editing)g(of)f(m)m(ulti-line)1110 1609 y(commands.)630
+1771 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s
 (eha)m(vior)f(to)i(that)f(of)f(v)m(ersion)h(3.1)h(with)e(resp)s(ect)
-1110 5340 y(to)k(quoted)g(argumen)m(ts)f(to)h(the)g(conditional)h
-(command's)e(=)p Fs(~)g Ft(op)s(erator.)p eop end
-%%Page: 56 62
-TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(dirspell)96 b Ft(If)26
-b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g(directory)g
-(names)f(during)1110 408 y(w)m(ord)36 b(completion)h(if)f(the)g
-(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110
-518 y(exist.)630 677 y Fs(dotglob)144 b Ft(If)27 b(set,)i(Bash)f
+1110 1880 y(to)k(quoted)g(argumen)m(ts)f(to)h(the)g(conditional)h
+(command's)e(=)p Fs(~)g Ft(op)s(erator.)630 2042 y Fs(dirspell)96
+b Ft(If)26 b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g
+(directory)g(names)f(during)1110 2151 y(w)m(ord)36 b(completion)h(if)f
+(the)g(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110
+2261 y(exist.)630 2423 y Fs(dotglob)144 b Ft(If)27 b(set,)i(Bash)f
 (includes)g(\014lenames)g(b)s(eginning)f(with)g(a)h(`.')41
-b(in)27 b(the)h(results)g(of)1110 787 y(\014lename)j(expansion.)630
-946 y Fs(execfail)96 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m
+b(in)27 b(the)h(results)g(of)1110 2532 y(\014lename)j(expansion.)630
+2694 y Fs(execfail)96 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m
 (teractiv)m(e)i(shell)e(will)f(not)h(exit)h(if)e(it)h(cannot)h(execute)
-1110 1056 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)
+1110 2804 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)
 h(the)f Fs(exec)f Ft(builtin)h(command.)39 b(An)1110
-1166 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e
-Fs(exec)f Ft(fails.)630 1325 y Fs(expand_aliases)1110
-1435 y Ft(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b)
-s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 1544 y(tion)38
+2913 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e
+Fs(exec)f Ft(fails.)630 3075 y Fs(expand_aliases)1110
+3185 y Ft(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b)
+s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 3294 y(tion)38
 b(6.6)h([Aliases],)j(page)d(79.)64 b(This)37 b(option)h(is)g(enabled)g
-(b)m(y)g(default)g(for)1110 1654 y(in)m(teractiv)m(e)33
-b(shells.)630 1813 y Fs(extdebug)96 b Ft(If)30 b(set,)h(b)s(eha)m(vior)
+(b)m(y)g(default)g(for)1110 3404 y(in)m(teractiv)m(e)33
+b(shells.)630 3566 y Fs(extdebug)96 b Ft(If)30 b(set,)h(b)s(eha)m(vior)
 g(in)m(tended)f(for)g(use)g(b)m(y)g(debuggers)g(is)h(enabled:)1159
-1948 y(1.)61 b(The)32 b(`)p Fs(-F)p Ft(')g(option)h(to)g(the)g
+3701 y(1.)61 b(The)32 b(`)p Fs(-F)p Ft(')g(option)h(to)g(the)g
 Fs(declare)d Ft(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290
-2057 y(Builtins],)29 b(page)g(41\))g(displa)m(ys)f(the)g(source)h
-(\014le)f(name)g(and)f(line)h(n)m(um-)1290 2167 y(b)s(er)h(corresp)s
+3811 y(Builtins],)29 b(page)g(41\))g(displa)m(ys)f(the)g(source)h
+(\014le)f(name)g(and)f(line)h(n)m(um-)1290 3921 y(b)s(er)h(corresp)s
 (onding)g(to)i(eac)m(h)g(function)f(name)g(supplied)f(as)i(an)f(argu-)
-1290 2276 y(men)m(t.)1159 2411 y(2.)61 b(If)20 b(the)h(command)g(run)e
+1290 4030 y(men)m(t.)1159 4166 y(2.)61 b(If)20 b(the)h(command)g(run)e
 (b)m(y)i(the)f Fs(DEBUG)g Ft(trap)g(returns)g(a)h(non-zero)g(v)-5
-b(alue,)1290 2521 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
-(not)i(executed.)1159 2655 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
+b(alue,)1290 4275 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
+(not)i(executed.)1159 4411 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
 (y)i(the)f Fs(DEBUG)f Ft(trap)h(returns)f(a)i(v)-5 b(alue)38
-b(of)f(2,)1290 2765 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
-(subroutine)e(\(a)i(shell)g(function)f(or)1290 2874 y(a)h(shell)h
+b(of)f(2,)1290 4521 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
+(subroutine)e(\(a)i(shell)g(function)f(or)1290 4630 y(a)h(shell)h
 (script)f(executed)h(b)m(y)f(the)g Fs(.)g Ft(or)g Fs(source)e
-Ft(builtins\),)j(a)g(call)g(to)1290 2984 y Fs(return)29
-b Ft(is)h(sim)m(ulated.)1159 3118 y(4.)61 b Fs(BASH_ARGC)34
+Ft(builtins\),)j(a)g(call)g(to)1290 4740 y Fs(return)29
+b Ft(is)h(sim)m(ulated.)1159 4876 y(4.)61 b Fs(BASH_ARGC)34
 b Ft(and)i Fs(BASH_ARGV)e Ft(are)j(up)s(dated)e(as)h(describ)s(ed)g(in)
-g(their)1290 3228 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
-(V)-8 b(ariables],)32 b(page)f(61\).)1159 3362 y(5.)61
+g(their)1290 4985 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
+(V)-8 b(ariables],)32 b(page)f(61\).)1159 5121 y(5.)61
 b(F)-8 b(unction)57 b(tracing)g(is)g(enabled:)93 b(command)56
-b(substitution,)63 b(shell)1290 3472 y(functions,)30
-b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
-Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 3582
-y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)1159 3716
-y(6.)61 b(Error)74 b(tracing)i(is)f(enabled:)131 b(command)74
-b(substitution,)87 b(shell)1290 3826 y(functions,)30
+b(substitution,)63 b(shell)1290 5230 y(functions,)30
 b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
-Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 3935
-y Fs(ERROR)f Ft(trap.)630 4095 y Fs(extglob)144 b Ft(If)26
-b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g(describ)s
-(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 4204 y(Section)j(3.5.8.1)i([P)m
-(attern)f(Matc)m(hing],)g(page)f(25\))h(are)f(enabled.)630
-4364 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p
-Fj(string)11 b Fs(')46 b Ft(and)j Fs($")p Fj(string)11
+Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 5340
+y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)p eop end
+%%Page: 57 63
+TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(57)1159 299 y(6.)61
+b(Error)74 b(tracing)i(is)f(enabled:)131 b(command)74
+b(substitution,)87 b(shell)1290 408 y(functions,)30 b(and)f(subshells)g
+(in)m(v)m(ok)m(ed)j(with)d Fs(\()h Fj(command)39 b Fs(\))30
+b Ft(inherit)g(the)1290 518 y Fs(ERROR)f Ft(trap.)630
+667 y Fs(extglob)144 b Ft(If)26 b(set,)i(the)f(extended)f(pattern)h
+(matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)1110
+777 y(Section)j(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(25\))h
+(are)f(enabled.)630 927 y Fs(extquote)96 b Ft(If)49 b(set,)54
+b Fs($')p Fj(string)11 b Fs(')46 b Ft(and)j Fs($")p Fj(string)11
 b Fs(")46 b Ft(quoting)k(is)f(p)s(erformed)e(within)1110
-4473 y Fs(${)p Fj(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h
-(in)g(double)f(quotes.)51 b(This)32 b(option)1110 4583
-y(is)e(enabled)h(b)m(y)f(default.)630 4742 y Fs(failglob)96
+1036 y Fs(${)p Fj(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h
+(in)g(double)f(quotes.)51 b(This)32 b(option)1110 1146
+y(is)e(enabled)h(b)m(y)f(default.)630 1295 y Fs(failglob)96
 b Ft(If)30 b(set,)g(patterns)g(whic)m(h)g(fail)h(to)g(matc)m(h)g
-(\014lenames)f(during)e(pathname)i(ex-)1110 4852 y(pansion)g(result)g
-(in)g(an)g(expansion)h(error.)630 5011 y Fs(force_fignore)1110
-5121 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y)i
+(\014lenames)f(during)e(pathname)i(ex-)1110 1405 y(pansion)g(result)g
+(in)g(an)g(expansion)h(error.)630 1554 y Fs(force_fignore)1110
+1664 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y)i
 (the)f Fs(FIGNORE)f Ft(shell)h(v)-5 b(ariable)44 b(cause)1110
-5230 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m
-(ord)h(completion)i(ev)m(en)f(if)g(the)1110 5340 y(ignored)37
+1773 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m
+(ord)h(completion)i(ev)m(en)f(if)g(the)1110 1883 y(ignored)37
 b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g(completions.)62
-b(See)37 b(Section)h(5.2)p eop end
-%%Page: 57 63
-TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(57)1110 299 y([Bash)24
-b(V)-8 b(ariables],)27 b(page)e(61,)h(for)d(a)h(description)g(of)g
-Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 408 y(is)30
-b(enabled)h(b)m(y)f(default.)630 568 y Fs(globstar)96
+b(See)37 b(Section)h(5.2)1110 1993 y([Bash)24 b(V)-8
+b(ariables],)27 b(page)e(61,)h(for)d(a)h(description)g(of)g
+Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 2102 y(is)30
+b(enabled)h(b)m(y)f(default.)630 2252 y Fs(globstar)96
 b Ft(If)38 b(set,)j(the)e(pattern)f(`)p Fs(**)p Ft(')h(used)e(in)i(a)f
-(\014lename)h(expansion)f(con)m(text)j(will)1110 677
+(\014lename)h(expansion)f(con)m(text)j(will)1110 2361
 y(matc)m(h)f(a)g(\014les)f(and)f(zero)i(or)g(more)f(directories)h(and)f
-(sub)s(directories.)66 b(If)1110 787 y(the)30 b(pattern)g(is)g(follo)m
+(sub)s(directories.)66 b(If)1110 2471 y(the)30 b(pattern)g(is)g(follo)m
 (w)m(ed)i(b)m(y)d(a)i(`)p Fs(/)p Ft(',)f(only)g(directories)h(and)f
-(sub)s(directories)1110 897 y(matc)m(h.)630 1056 y Fs(gnu_errfmt)1110
-1166 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
-h(the)g(standard)f Fl(gnu)g Ft(error)1110 1275 y(message)c(format.)630
-1435 y Fs(histappend)1110 1544 y Ft(If)c(set,)j(the)e(history)g(list)g
+(sub)s(directories)1110 2580 y(matc)m(h.)630 2730 y Fs(gnu_errfmt)1110
+2839 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
+h(the)g(standard)f Fl(gnu)g Ft(error)1110 2949 y(message)c(format.)630
+3098 y Fs(histappend)1110 3208 y Ft(If)c(set,)j(the)e(history)g(list)g
 (is)g(app)s(ended)e(to)j(the)f(\014le)g(named)f(b)m(y)h(the)g(v)-5
-b(alue)29 b(of)1110 1654 y(the)d Fs(HISTFILE)d Ft(v)-5
+b(alue)29 b(of)1110 3318 y(the)d Fs(HISTFILE)d Ft(v)-5
 b(ariable)26 b(when)e(the)h(shell)h(exits,)h(rather)e(than)h(o)m(v)m
-(erwriting)1110 1763 y(the)31 b(\014le.)630 1923 y Fs(histreedit)1110
-2032 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
+(erwriting)1110 3427 y(the)31 b(\014le.)630 3577 y Fs(histreedit)1110
+3686 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
 (user)g(is)g(giv)m(en)h(the)g(opp)s(ortunit)m(y)1110
-2142 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
-2301 y Fs(histverify)1110 2411 y Ft(If)35 b(set,)i(and)e(Readline)h(is)
+3796 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
+3945 y Fs(histverify)1110 4055 y Ft(If)35 b(set,)i(and)e(Readline)h(is)
 f(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110
-2521 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
-(parser.)59 b(Instead,)38 b(the)1110 2630 y(resulting)i(line)f(is)h
+4164 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
+(parser.)59 b(Instead,)38 b(the)1110 4274 y(resulting)i(line)f(is)h
 (loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h(allo)m(wing)
-1110 2740 y(further)29 b(mo)s(di\014cation.)630 2899
-y Fs(hostcomplete)1110 3009 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f
+1110 4384 y(further)29 b(mo)s(di\014cation.)630 4533
+y Fs(hostcomplete)1110 4643 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f
 (b)s(eing)g(used,)h(Bash)g(will)f(attempt)h(to)g(p)s(erform)1110
-3118 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
-(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 3228 y(pleted)g(\(see)h
+4752 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
+(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 4862 y(pleted)g(\(see)h
 (Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g
-(110\).)1110 3337 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
-630 3497 y Fs(huponexit)1110 3606 y Ft(If)i(set,)i(Bash)f(will)h(send)d
+(110\).)1110 4971 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
+630 5121 y Fs(huponexit)1110 5230 y Ft(If)i(set,)i(Bash)f(will)h(send)d
 Fs(SIGHUP)h Ft(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
-1110 3716 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
-(page)f(33\).)630 3875 y Fs(interactive_comments)1110
-3985 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p
+1110 5340 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
+(page)f(33\).)p eop end
+%%Page: 58 64
+TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31
+b(Reference)g(Man)m(ual)630 299 y Fs(interactive_comments)1110
+408 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p
 Fs(#)p Ft(')g(to)h(cause)f(that)h(w)m(ord)f(and)f(all)i(remain-)1110
-4095 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f
-(ignored)g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110
-4204 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
-4364 y Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h
-Fs(cmdhist)e Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
-4473 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
-(edded)g(newlines)h(rather)g(than)f(using)1110 4583 y(semicolon)32
-b(separators)f(where)e(p)s(ossible.)630 4742 y Fs(login_shell)1110
-4852 y Ft(The)35 b(shell)h(sets)g(this)f(option)h(if)g(it)g(is)f
+518 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f(ignored)
+g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110 628 y(This)30
+b(option)g(is)h(enabled)f(b)m(y)g(default.)630 777 y
+Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h Fs(cmdhist)e
+Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
+887 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
+(edded)g(newlines)h(rather)g(than)f(using)1110 996 y(semicolon)32
+b(separators)f(where)e(p)s(ossible.)630 1146 y Fs(login_shell)1110
+1255 y Ft(The)35 b(shell)h(sets)g(this)f(option)h(if)g(it)g(is)f
 (started)h(as)g(a)g(login)g(shell)g(\(see)g(Sec-)1110
-4961 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(71\).)41
+1365 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(71\).)41
 b(The)28 b(v)-5 b(alue)29 b(ma)m(y)g(not)f(b)s(e)g(c)m(hanged.)630
-5121 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
+1514 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
 (Bash)f(is)h(c)m(hec)m(king)h(for)f(mail)g(has)f(b)s(een)g(accessed)
-1110 5230 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m
+1110 1624 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m
 (ed,)k(the)c(message)h Fs("The)k(mail)h(in)f Fj(mail-)1110
-5340 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)p
-eop end
-%%Page: 58 64
-TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(no_empty_cmd_completion)1110
-408 y Ft(If)f(set,)g(and)g(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g
-(will)g(not)g(attempt)i(to)e(searc)m(h)1110 518 y(the)25
-b Fs(PATH)f Ft(for)h(p)s(ossible)f(completions)j(when)d(completion)i
-(is)f(attempted)h(on)1110 628 y(an)k(empt)m(y)h(line.)630
-823 y Fs(nocaseglob)1110 933 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g
-(\014lenames)g(in)f(a)h(case-insensitiv)m(e)j(fashion)c(when)1110
-1042 y(p)s(erforming)29 b(\014lename)i(expansion.)630
-1238 y Fs(nocasematch)1110 1347 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g
-(patterns)g(in)f(a)h(case-insensitiv)m(e)i(fashion)d(when)1110
-1457 y(p)s(erforming)31 b(matc)m(hing)i(while)f(executing)i
-Fs(case)d Ft(or)h Fs([[)g Ft(conditional)h(com-)1110
-1567 y(mands.)630 1762 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e
-(allo)m(ws)g(\014lename)g(patterns)g(whic)m(h)f(matc)m(h)h(no)g
-(\014les)f(to)i(expand)1110 1872 y(to)31 b(a)g(n)m(ull)f(string,)h
-(rather)f(than)g(themselv)m(es.)630 2067 y Fs(progcomp)96
-b Ft(If)25 b(set,)i(the)f(programmable)g(completion)g(facilities)i
-(\(see)f(Section)f(8.6)h([Pro-)1110 2177 y(grammable)45
-b(Completion],)k(page)c(115\))h(are)f(enabled.)82 b(This)44
-b(option)h(is)1110 2286 y(enabled)30 b(b)m(y)h(default.)630
-2482 y Fs(promptvars)1110 2591 y Ft(If)24 b(set,)i(prompt)d(strings)h
-(undergo)f(parameter)i(expansion,)g(command)f(sub-)1110
-2701 y(stitution,)34 b(arithmetic)f(expansion,)g(and)e(quote)i(remo)m
-(v)-5 b(al)33 b(after)g(b)s(eing)e(ex-)1110 2811 y(panded)39
+1733 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)
+630 1883 y Fs(no_empty_cmd_completion)1110 1993 y Ft(If)f(set,)g(and)g
+(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g(will)g(not)g(attempt)i(to)e
+(searc)m(h)1110 2102 y(the)25 b Fs(PATH)f Ft(for)h(p)s(ossible)f
+(completions)j(when)d(completion)i(is)f(attempted)h(on)1110
+2212 y(an)k(empt)m(y)h(line.)630 2361 y Fs(nocaseglob)1110
+2471 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
+(case-insensitiv)m(e)j(fashion)c(when)1110 2580 y(p)s(erforming)29
+b(\014lename)i(expansion.)630 2730 y Fs(nocasematch)1110
+2839 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
+(case-insensitiv)m(e)i(fashion)d(when)1110 2949 y(p)s(erforming)31
+b(matc)m(hing)i(while)f(executing)i Fs(case)d Ft(or)h
+Fs([[)g Ft(conditional)h(com-)1110 3059 y(mands.)630
+3208 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e(allo)m(ws)g
+(\014lename)g(patterns)g(whic)m(h)f(matc)m(h)h(no)g(\014les)f(to)i
+(expand)1110 3318 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g
+(themselv)m(es.)630 3467 y Fs(progcomp)96 b Ft(If)25
+b(set,)i(the)f(programmable)g(completion)g(facilities)i(\(see)f
+(Section)f(8.6)h([Pro-)1110 3577 y(grammable)45 b(Completion],)k(page)c
+(115\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
+3686 y(enabled)30 b(b)m(y)h(default.)630 3836 y Fs(promptvars)1110
+3945 y Ft(If)24 b(set,)i(prompt)d(strings)h(undergo)f(parameter)i
+(expansion,)g(command)f(sub-)1110 4055 y(stitution,)34
+b(arithmetic)f(expansion,)g(and)e(quote)i(remo)m(v)-5
+b(al)33 b(after)g(b)s(eing)e(ex-)1110 4164 y(panded)39
 b(as)i(describ)s(ed)e(b)s(elo)m(w)i(\(see)g(Section)g(6.9)g([Prin)m
-(ting)g(a)g(Prompt],)1110 2920 y(page)31 b(83\).)42 b(This)30
-b(option)g(is)h(enabled)f(b)m(y)g(default.)630 3116 y
-Fs(restricted_shell)1110 3225 y Ft(The)40 b(shell)h(sets)g(this)g
+(ting)g(a)g(Prompt],)1110 4274 y(page)31 b(83\).)42 b(This)30
+b(option)g(is)h(enabled)f(b)m(y)g(default.)630 4423 y
+Fs(restricted_shell)1110 4533 y Ft(The)40 b(shell)h(sets)g(this)g
 (option)g(if)g(it)h(is)e(started)i(in)e(restricted)i(mo)s(de)e(\(see)
-1110 3335 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e
+1110 4643 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e
 (84\).)56 b(The)34 b(v)-5 b(alue)35 b(ma)m(y)h(not)1110
-3444 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f
-(the)h(startup)g(\014les)f(are)i(executed,)1110 3554
+4752 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f
+(the)h(startup)g(\014les)f(are)i(executed,)1110 4862
 y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g(disco)m(v)m(er)h
-(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 3664
-y(stricted.)630 3859 y Fs(shift_verbose)1110 3969 y Ft(If)g(this)g(is)g
+(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 4971
+y(stricted.)630 5121 y Fs(shift_verbose)1110 5230 y Ft(If)g(this)g(is)g
 (set,)j(the)d Fs(shift)f Ft(builtin)h(prin)m(ts)f(an)h(error)g(message)
-i(when)d(the)1110 4078 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m
-(b)s(er)e(of)h(p)s(ositional)i(parameters.)630 4274 y
-Fs(sourcepath)1110 4383 y Ft(If)22 b(set,)j(the)e Fs(source)e
-Ft(builtin)h(uses)g(the)h(v)-5 b(alue)23 b(of)g Fs(PATH)e
-Ft(to)j(\014nd)d(the)h(directory)1110 4493 y(con)m(taining)29
-b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m(t.)40
-b(This)27 b(option)h(is)f(enabled)1110 4603 y(b)m(y)j(default.)630
-4798 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e
+i(when)d(the)1110 5340 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m
+(b)s(er)e(of)h(p)s(ositional)i(parameters.)p eop end
+%%Page: 59 65
+TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(59)630 299 y Fs(sourcepath)1110
+408 y Ft(If)22 b(set,)j(the)e Fs(source)e Ft(builtin)h(uses)g(the)h(v)
+-5 b(alue)23 b(of)g Fs(PATH)e Ft(to)j(\014nd)d(the)h(directory)1110
+518 y(con)m(taining)29 b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m
+(t.)40 b(This)27 b(option)h(is)f(enabled)1110 628 y(b)m(y)j(default.)
+630 787 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e
 Ft(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f
-(de-)1110 4908 y(fault.)630 5103 y(The)c(return)f(status)i(when)f
+(de-)1110 897 y(fault.)630 1056 y(The)c(return)f(status)i(when)f
 (listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i
-Ft(are)d(enabled,)g(non-)630 5213 y(zero)40 b(otherwise.)66
+Ft(are)d(enabled,)g(non-)630 1166 y(zero)40 b(otherwise.)66
 b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
-(status)h(is)g(zero)630 5322 y(unless)30 b(an)g Fq(optname)36
-b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)p
-eop end
-%%Page: 59 65
-TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(59)150 299 y Fr(4.4)68
-b(Sp)t(ecial)45 b(Builtins)275 543 y Ft(F)-8 b(or)40
-b(historical)i(reasons,)g(the)f Fl(posix)e Ft(standard)g(has)h
-(classi\014ed)g(sev)m(eral)i(builtin)d(commands)h(as)150
-653 y Fm(sp)-5 b(e)g(cial)p Ft(.)84 b(When)44 b(Bash)g(is)g(executing)i
-(in)d Fl(posix)h Ft(mo)s(de,)j(the)e(sp)s(ecial)f(builtins)g(di\013er)g
-(from)g(other)150 762 y(builtin)30 b(commands)g(in)g(three)h(resp)s
-(ects:)199 897 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s
-(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)199
-1031 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)
+(status)h(is)g(zero)630 1275 y(unless)30 b(an)g Fq(optname)36
+b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)150
+1533 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)275 1777
+y Ft(F)-8 b(or)40 b(historical)i(reasons,)g(the)f Fl(posix)e
+Ft(standard)g(has)h(classi\014ed)g(sev)m(eral)i(builtin)d(commands)h
+(as)150 1886 y Fm(sp)-5 b(e)g(cial)p Ft(.)84 b(When)44
+b(Bash)g(is)g(executing)i(in)d Fl(posix)h Ft(mo)s(de,)j(the)e(sp)s
+(ecial)f(builtins)g(di\013er)g(from)g(other)150 1996
+y(builtin)30 b(commands)g(in)g(three)h(resp)s(ects:)199
+2130 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s(efore)h
+(shell)h(functions)f(during)f(command)h(lo)s(okup.)199
+2265 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)
 g(status,)h(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199
-1166 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f
+2399 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f
 (command)g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m
-(t)330 1275 y(after)i(the)f(command)h(completes.)275
-1435 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f
+(t)330 2509 y(after)i(the)f(command)h(completes.)275
+2668 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f
 Ft(mo)s(de,)j(these)f(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m
-(tly)h(than)150 1544 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e
+(tly)h(than)150 2778 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e
 (commands.)41 b(The)30 b(Bash)g Fl(posix)g Ft(mo)s(de)g(is)g(describ)s
-(ed)f(in)h(Section)h(6.11)150 1654 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
-(85.)275 1788 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h
-(builtins:)390 1923 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
-(exit)g(export)f(readonly)f(return)h(set)390 2032 y(shift)g(trap)h
+(ed)f(in)h(Section)h(6.11)150 2888 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
+(85.)275 3022 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h
+(builtins:)390 3156 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
+(exit)g(export)f(readonly)f(return)h(set)390 3266 y(shift)g(trap)h
 (unset)p eop end
 %%Page: 60 66
 TeXDict begin 60 65 bop 150 -116 a Ft(60)2572 b(Bash)31
@@ -9268,7 +9288,7 @@ b(The)25 b(n)m(um)m(b)s(er)g(of)h(parameters)g(to)g(the)g(curren)m(t)
 1833 y(is)g(pushed)f(on)m(to)i Fs(BASH_ARGC)p Ft(.)59
 b(The)37 b(shell)g(sets)h Fs(BASH_ARGC)c Ft(only)k(when)e(in)h
 (extended)630 1943 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i
-([The)d(Shopt)g(Builtin],)j(page)e(54)h(for)e(a)h(description)630
+([The)d(Shopt)g(Builtin],)j(page)e(55)h(for)e(a)h(description)630
 2052 y(of)31 b(the)f Fs(extdebug)e Ft(option)j(to)g(the)g
 Fs(shopt)e Ft(builtin\).)150 2217 y Fs(BASH_ARGV)630
 2326 y Ft(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f
@@ -9281,7 +9301,7 @@ Fs(shopt)e Ft(builtin\).)150 2217 y Fs(BASH_ARGV)630
 (on)m(to)i Fs(BASH_ARGV)p Ft(.)66 b(The)40 b(shell)630
 2765 y(sets)28 b Fs(BASH_ARGV)e Ft(only)i(when)f(in)h(extended)g
 (debugging)g(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630
-2874 y(Shopt)i(Builtin],)h(page)g(54)g(for)f(a)h(description)f(of)h
+2874 y(Shopt)i(Builtin],)h(page)g(55)g(for)f(a)h(description)f(of)h
 (the)f Fs(extdebug)e Ft(option)j(to)g(the)f Fs(shopt)630
 2984 y Ft(builtin\).)150 3148 y Fs(BASH_CMDS)630 3258
 y Ft(An)i(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 b(ariable)35
@@ -9413,38 +9433,39 @@ b(If)33 b Fs(COMP_WORDBREAKS)c Ft(is)34 b(unset,)g(it)f(loses)i(its)e
 (subsequen)m(tly)f(reset.)150 3134 y Fs(COMP_WORDS)630
 3244 y Ft(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the)
 g(individual)f(w)m(ords)h(in)f(the)h(curren)m(t)g(command)630
-3354 y(line.)76 b(The)41 b(w)m(ords)h(are)g(split)h(on)e(shell)i(metac)
-m(haracters)h(as)e(the)h(shell)f(parser)f(w)m(ould)630
-3463 y(separate)31 b(them.)40 b(This)29 b(v)-5 b(ariable)30
-b(is)g(a)m(v)-5 b(ailable)32 b(only)d(in)g(shell)h(functions)f(in)m(v)m
-(ok)m(ed)i(b)m(y)f(the)630 3573 y(programmable)42 b(completion)h
-(facilities)h(\(see)e(Section)h(8.6)f([Programmable)h(Comple-)630
-3682 y(tion],)31 b(page)g(115\).)150 3833 y Fs(COMPREPLY)630
-3943 y Ft(An)37 b(arra)m(y)h(v)-5 b(ariable)38 b(from)f(whic)m(h)g
-(Bash)g(reads)g(the)h(p)s(ossible)e(completions)j(generated)630
-4052 y(b)m(y)33 b(a)g(shell)h(function)f(in)m(v)m(ok)m(ed)h(b)m(y)f
-(the)g(programmable)h(completion)g(facilit)m(y)h(\(see)f(Sec-)630
-4162 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(115\).)150
-4313 y Fs(DIRSTACK)96 b Ft(An)26 b(arra)m(y)h(v)-5 b(ariable)28
-b(con)m(taining)g(the)f(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f
-(directory)i(stac)m(k.)41 b(Direc-)630 4422 y(tories)33
-b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e(the)h(order)f(they)h(are)g
-(displa)m(y)m(ed)g(b)m(y)f(the)h Fs(dirs)e Ft(builtin.)630
-4532 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g(this)g(arra)m(y)g(v)-5
-b(ariable)31 b(ma)m(y)g(b)s(e)e(used)h(to)h(mo)s(dify)e(directories)630
-4641 y(already)41 b(in)f(the)h(stac)m(k,)k(but)40 b(the)h
-Fs(pushd)e Ft(and)h Fs(popd)f Ft(builtins)h(m)m(ust)h(b)s(e)e(used)h
-(to)i(add)630 4751 y(and)37 b(remo)m(v)m(e)h(directories.)63
-b(Assignmen)m(t)37 b(to)h(this)f(v)-5 b(ariable)38 b(will)g(not)f(c)m
-(hange)i(the)e(cur-)630 4861 y(ren)m(t)c(directory)-8
-b(.)47 b(If)32 b Fs(DIRSTACK)e Ft(is)i(unset,)g(it)h(loses)g(its)g(sp)s
-(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)630
-4970 y(subsequen)m(tly)d(reset.)150 5121 y Fs(EMACS)240
-b Ft(If)31 b(Bash)h(\014nds)d(this)j(v)-5 b(ariable)32
-b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f
-(v)-5 b(alue)630 5230 y(`)p Fs(t)p Ft(',)38 b(it)e(assumes)g(that)g
-(the)h(shell)f(is)g(running)e(in)i(an)g(emacs)g(shell)h(bu\013er)e(and)
-g(disables)630 5340 y(line)c(editing.)p eop end
+3354 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as)
+h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Fs(COMP_)630
+3463 y(WORDBREAKS)34 b Ft(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60
+b(This)36 b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39
+b(only)e(in)f(shell)h(func-)630 3573 y(tions)32 b(in)m(v)m(ok)m(ed)i(b)
+m(y)d(the)i(programmable)f(completion)h(facilities)h(\(see)f(Section)g
+(8.6)g([Pro-)630 3682 y(grammable)e(Completion],)g(page)g(115\).)150
+3833 y Fs(COMPREPLY)630 3943 y Ft(An)37 b(arra)m(y)h(v)-5
+b(ariable)38 b(from)f(whic)m(h)g(Bash)g(reads)g(the)h(p)s(ossible)e
+(completions)j(generated)630 4052 y(b)m(y)33 b(a)g(shell)h(function)f
+(in)m(v)m(ok)m(ed)h(b)m(y)f(the)g(programmable)h(completion)g(facilit)m
+(y)h(\(see)f(Sec-)630 4162 y(tion)d(8.6)g([Programmable)g(Completion],)
+h(page)f(115\).)150 4313 y Fs(DIRSTACK)96 b Ft(An)26
+b(arra)m(y)h(v)-5 b(ariable)28 b(con)m(taining)g(the)f(curren)m(t)f
+(con)m(ten)m(ts)j(of)e(the)f(directory)i(stac)m(k.)41
+b(Direc-)630 4422 y(tories)33 b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e
+(the)h(order)f(they)h(are)g(displa)m(y)m(ed)g(b)m(y)f(the)h
+Fs(dirs)e Ft(builtin.)630 4532 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g
+(this)g(arra)m(y)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)e(used)h(to)h(mo)
+s(dify)e(directories)630 4641 y(already)41 b(in)f(the)h(stac)m(k,)k
+(but)40 b(the)h Fs(pushd)e Ft(and)h Fs(popd)f Ft(builtins)h(m)m(ust)h
+(b)s(e)e(used)h(to)i(add)630 4751 y(and)37 b(remo)m(v)m(e)h
+(directories.)63 b(Assignmen)m(t)37 b(to)h(this)f(v)-5
+b(ariable)38 b(will)g(not)f(c)m(hange)i(the)e(cur-)630
+4861 y(ren)m(t)c(directory)-8 b(.)47 b(If)32 b Fs(DIRSTACK)e
+Ft(is)i(unset,)g(it)h(loses)g(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m
+(en)h(if)f(it)h(is)630 4970 y(subsequen)m(tly)d(reset.)150
+5121 y Fs(EMACS)240 b Ft(If)31 b(Bash)h(\014nds)d(this)j(v)-5
+b(ariable)32 b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f
+(starts)h(with)f(v)-5 b(alue)630 5230 y(`)p Fs(t)p Ft(',)38
+b(it)e(assumes)g(that)g(the)h(shell)f(is)g(running)e(in)i(an)g(emacs)g
+(shell)h(bu\013er)e(and)g(disables)630 5340 y(line)c(editing.)p
+eop end
 %%Page: 65 71
 TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(5:)41
 b(Shell)30 b(V)-8 b(ariables)2459 b(65)150 299 y Fs(EUID)288
@@ -9860,7 +9881,7 @@ g(b)s(e)f(recognized.)150 2081 y Fs(--debugger)630 2191
 y Ft(Arrange)j(for)g(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e
 (executed)i(b)s(efore)f(the)g(shell)g(starts.)49 b(T)-8
 b(urns)630 2301 y(on)25 b(extended)g(debugging)g(mo)s(de)f(\(see)i
-(Section)g(4.3.2)h([The)d(Shopt)h(Builtin],)i(page)e(54)h(for)630
+(Section)g(4.3.2)h([The)d(Shopt)h(Builtin],)i(page)e(55)h(for)630
 2410 y(a)35 b(description)f(of)h(the)g Fs(extdebug)d
 Ft(option)j(to)g(the)f Fs(shopt)f Ft(builtin\))i(and)f(shell)g
 (function)630 2520 y(tracing)d(\(see)g(Section)h(4.3.1)g([The)e(Set)g
@@ -9959,7 +9980,7 @@ b(implies)i(the)f(`)p Fs(-n)p Ft(')h(option;)g(no)f(commands)g(will)h
 b Fs(])630 4792 y Fq(shopt)p 854 4792 28 4 v 40 w(option)44
 b Ft(is)g(one)h(of)f(the)g(shell)h(options)f(accepted)h(b)m(y)f(the)h
 Fs(shopt)d Ft(builtin)i(\(see)630 4902 y(Section)28 b(4.3.2)g([The)f
-(Shopt)f(Builtin],)i(page)f(54\).)41 b(If)26 b Fq(shopt)p
+(Shopt)f(Builtin],)i(page)f(55\).)41 b(If)26 b Fq(shopt)p
 2690 4902 V 40 w(option)h Ft(is)g(presen)m(t,)h(`)p Fs(-O)p
 Ft(')f(sets)630 5011 y(the)40 b(v)-5 b(alue)40 b(of)f(that)h(option;)45
 b(`)p Fs(+O)p Ft(')40 b(unsets)e(it.)69 b(If)39 b Fq(shopt)p
@@ -10249,7 +10270,7 @@ b(syn)m(tax)f(errors)g(will)h(not)g(cause)g(the)f(shell)h(to)g(exit.)
 (enabled)f(b)m(y)h(default)330 4838 y(\(see)35 b(the)g(description)f
 (of)h(the)f Fs(cdspell)f Ft(option)h(to)i(the)e Fs(shopt)f
 Ft(builtin)h(in)g(Section)h(4.3.2)h([The)330 4947 y(Shopt)30
-b(Builtin],)h(page)g(54\).)154 5098 y(21.)61 b(The)42
+b(Builtin],)h(page)g(55\).)154 5098 y(21.)61 b(The)42
 b(shell)h(will)g(c)m(hec)m(k)h(the)f(v)-5 b(alue)43 b(of)f(the)h
 Fs(TMOUT)e Ft(v)-5 b(ariable)44 b(and)e(exit)h(if)g(a)g(command)f(is)h
 (not)330 5208 y(read)30 b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s
@@ -10490,7 +10511,7 @@ b(unctions],)150 1792 y(page)31 b(14\).)275 1936 y(Aliases)i(are)h(not)
 e(expanded)g(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j
 (unless)c(the)h Fs(expand_aliases)150 2045 y Ft(shell)e(option)f(is)h
 (set)g(using)f Fs(shopt)f Ft(\(see)i(Section)g(4.3.2)h([The)e(Shopt)g
-(Builtin],)h(page)g(54\).)275 2189 y(The)38 b(rules)h(concerning)h(the)
+(Builtin],)h(page)g(55\).)275 2189 y(The)38 b(rules)h(concerning)h(the)
 f(de\014nition)g(and)g(use)g(of)g(aliases)i(are)e(somewhat)h
 (confusing.)67 b(Bash)150 2299 y(alw)m(a)m(ys)42 b(reads)f(at)h(least)g
 (one)f(complete)i(line)e(of)g(input)f(b)s(efore)h(executing)h(an)m(y)f
@@ -11175,7 +11196,7 @@ Fs(SIGCHLD)e Ft(is)i(executed)150 1564 y(for)30 b(eac)m(h)i(c)m(hild)e
 (exit)g(Bash)f(is)h(made)f(while)g(jobs)f(are)i(stopp)s(ed,)f(\(or)h
 (running,)e(if)h(the)g Fs(checkjobs)150 1812 y Ft(option)e(is)f
 (enabled)h({)g(see)g(Section)g(4.3.2)h([The)e(Shopt)g(Builtin],)j(page)
-e(54\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150
+e(55\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150
 1922 y(message,)k(and)c(if)i(the)f Fs(checkjobs)e Ft(option)j(is)f
 (enabled,)i(lists)e(the)h(jobs)f(and)f(their)i(statuses.)39
 b(The)25 b Fs(jobs)150 2032 y Ft(command)36 b(ma)m(y)h(then)f(b)s(e)f
@@ -13980,7 +14001,7 @@ s(duce)e(it.)150 2182 y Fs(bashbug)d Ft(inserts)i(the)h(\014rst)f
 (three)g(items)h(automatically)i(in)m(to)f(the)e(template)i(it)f(pro)m
 (vides)f(for)g(\014ling)h(a)150 2291 y(bug)h(rep)s(ort.)275
 2426 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
-(ual)f(to)h Fs(chet@po.CWRU.Edu)p Ft(.)p eop end
+(ual)f(to)h Fs(chet.ramey@case.edu)p Ft(.)p eop end
 %%Page: 136 142
 TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
@@ -14305,7 +14326,7 @@ f(the)g Fs(.)g Ft(or)330 2737 y Fs(source)c Ft(builtins)g(\(see)j
 2874 y Fp(\017)60 b Ft(Bash)43 b(includes)g(the)g Fs(shopt)f
 Ft(builtin,)k(for)d(\014ner)f(con)m(trol)j(of)e(shell)h(optional)g
 (capabilities)h(\(see)330 2984 y(Section)c(4.3.2)g([The)f(Shopt)f
-(Builtin],)k(page)d(54\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f
+(Builtin],)k(page)d(55\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f
 (b)s(e)f(set)i(and)330 3093 y(unset)30 b(at)h(shell)g(in)m(v)m(o)s
 (cation)h(\(see)f(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)g(page)h
 (71\).)225 3230 y Fp(\017)60 b Ft(Bash)45 b(has)f(m)m(uc)m(h)g(more)h
@@ -15065,7 +15086,7 @@ b Fb(41)150 2869 y Fe(break)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b
 Fb(35)150 2962 y Fe(builtin)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
 (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(42)150
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150
 3225 y Fr(C)150 3352 y Fe(caller)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)
 h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35
@@ -15112,7 +15133,7 @@ f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
 5340 y Fe(export)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
 f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(36)2025 977
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(37)2025 977
 y Fr(F)2025 1104 y Fe(fc)14 b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
 f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
 (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)41
@@ -15185,7 +15206,7 @@ h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
 (.)g(.)h(.)f(.)g(.)37 b Fb(38)150 606 y Fe(shopt)11 b
 Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
 (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-g(.)h(.)f(.)g(.)37 b Fb(54)150 697 y Fe(source)10 b Fc(.)j(.)g(.)f(.)g
+g(.)h(.)f(.)g(.)37 b Fb(55)150 697 y Fe(source)10 b Fc(.)j(.)g(.)f(.)g
 (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35
 b Fb(49)150 788 y Fe(suspend)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
index 04178bc9f8015ee8dc91617bee807794417b0659..036ec6f69847cc18774415c028444cde815ac065 100644 (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
index faf90a00dca0ede161bc81f19122a18d69f3ead4..cfe9257285096073e746272540269ccbeedb38bf 100644 (file)
@@ -14,8 +14,12 @@ N\bNA\bAM\bME\bE
 B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        Unless otherwise noted, each builtin command documented in this section
        as accepting options preceded by -\b- accepts -\b--\b- to signify the end of the
-       options.   For  example,  the  :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not
-       accept options.
+       options.   The  :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not accept options
+       and do not treat -\b--\b- specially.  The e\bex\bxi\bit\bt, l\blo\bog\bgo\bou\but\bt, b\bbr\bre\bea\bak\bk, c\bco\bon\bnt\bti\bin\bnu\bue\be, l\ble\bet\bt,
+       and  s\bsh\bhi\bif\bft\bt builtins accept and process arguments beginning with -\b- with-
+       out requiring -\b--\b-.  Other builtins that accept  arguments  but  are  not
+       specified  as accepting options interpret arguments beginning with -\b- as
+       invalid options and require -\b--\b- to prevent this interpretation.
        :\b: [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
               No effect; the command does nothing beyond  expanding  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
               and  performing any specified redirections.  A zero exit code is
@@ -625,7 +629,7 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and  shell  control
               structures is printed.
               -\b-d\bd     Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
-               -\b-m\bm    Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
+              -\b-m\b    Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
                      format
               -\b-s\bs     Display only a short usage synopsis for each _\bp_\ba_\bt_\bt_\be_\br_\bn
        The return status is 0 unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
@@ -846,7 +850,7 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               occurs while reading the name of the  current  directory  or  an
               invalid option is supplied.
 
-       r\bre\bea\bad\b [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b- _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
+       r\bre\bea\bad\b[-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt
        _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
               One  line  is  read  from  the  standard input, or from the file
               descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and  the
@@ -951,32 +955,37 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-b\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.
-              -\b-e\be      Exit immediately if a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd (see S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+              -\b-e\be      Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist  of  a
+                      single  _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd),  a _\bs_\bu_\bb_\bs_\bh_\be_\bl_\bl command enclosed in
+                      parentheses, or one of the commands executed as part  of
+                      a  command  list  enclosed  by braces (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
                       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  w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
-                      part of the test in an i\bif\bf statement, part of  a  command
-                      executed  in  a &\b&&\b& or |\b||\b| list, any command in a pipeline
-                      but the last, or if the command's return value is  being
-                      inverted  via  !\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 E\bER\bRR\bR, if set, is exe-
-                      cuted before the shell exits.
+                      exit  if  the  command that fails is part of the command
+                      list immediately following a  w\bwh\bhi\bil\ble\be  or  u\bun\bnt\bti\bil\bl  keyword,
+                      part  of  the  test  following  the  i\bif\bf or e\bel\bli\bif\bf reserved
+                      words, part of any command executed in a &\b&&\b& or  |\b||\b|  list
+                      except  the  command  following  the final &\b&&\b& or |\b||\b|, any
+                      command in a pipeline but the last, or if the  command's
+                      return  value  is being inverted with !\b!.  A trap on E\bER\bRR\bR,
+                      if set, is executed before the shell exits.  This option
+                      applies to the shell environment and each subshell envi-
+                      ronment separately (see  C\bCO\bOM\bMM\bMA\bAN\bND\bD  E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+                      above), and may cause subshells to exit before executing
+                      all the commands in the subshell.
               -\b-f\bf      Disable pathname expansion.
-              -\b-h\bh      Remember  the location of commands as they are looked up
+              -\b-h\bh      Remember the location of commands as they are looked  up
                       for execution.  This is enabled by default.
-              -\b-k\bk      All arguments in the form of assignment  statements  are
-                      placed  in the environment for a command, not just those
+              -\b-k\bk      All  arguments  in the form of assignment statements are
+                      placed in the environment for a command, not just  those
                       that precede the command name.
-              -\b-m\bm      Monitor mode.  Job control is enabled.  This  option  is
-                      on  by  default  for  interactive shells on systems that
-                      support it (see J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   Background  pro-
-                      cesses  run  in a separate process group and a line con-
-                      taining their exit status is printed upon their  comple-
+              -\b-m\bm      Monitor  mode.   Job control is enabled.  This option is
+                      on by default for interactive  shells  on  systems  that
+                      support  it  (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL above).  Background pro-
+                      cesses run in a separate process group and a  line  con-
+                      taining  their exit status is printed upon their comple-
                       tion.
               -\b-n\bn      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.
               -\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
                       The _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be can be one of the following:
@@ -984,10 +993,10 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               Same as -\b-a\ba.
                       b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
                               Same as -\b-B\bB.
-                      e\bem\bma\bac\bcs\bs   Use  an  emacs-style command line editing inter-
+                      e\bem\bma\bac\bcs\bs   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 -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option.  This also  affects  the
+                              the  -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg  option.  This also affects the
                               editing interface used for r\bre\bea\bad\bd -\b-e\be.
                       e\ber\brr\brt\btr\bra\bac\bce\be
                               Same as -\b-E\bE.
@@ -1001,8 +1010,8 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               H\bHI\bIS\bST\bTO\bOR\bRY\bY.  This option is on by default in inter-
                               active shells.
                       i\big\bgn\bno\bor\bre\bee\beo\bof\bf
-                              The   effect   is   as   if  the  shell  command
-                              ``IGNOREEOF=10'' had been  executed  (see  S\bSh\bhe\bel\bll\bl
+                              The  effect  is  as   if   the   shell   command
+                              ``IGNOREEOF=10''  had  been  executed (see S\bSh\bhe\bel\bll\bl
                               V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
                       k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
                       m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
@@ -1017,213 +1026,213 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       p\bph\bhy\bys\bsi\bic\bca\bal\bl
                               Same as -\b-P\bP.
                       p\bpi\bip\bpe\bef\bfa\bai\bil\bl
-                              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.
-                      p\bpo\bos\bsi\bix\bx   Change  the  behavior  of b\bba\bas\bsh\bh where the default
-                              operation differs from  the  POSIX  standard  to
+                      p\bpo\bos\bsi\bix\bx   Change the behavior of b\bba\bas\bsh\bh  where  the  default
+                              operation  differs  from  the  POSIX standard to
                               match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
                       p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
                               Same as -\b-p\bp.
                       v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
-                      v\bvi\bi      Use  a  vi-style command line editing interface.
+                      v\bvi\bi      Use a vi-style command line  editing  interface.
                               This also affects the editing interface used for
                               r\bre\bea\bad\bd -\b-e\be.
                       x\bxt\btr\bra\bac\bce\be  Same as -\b-x\bx.
                       If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
-                      current options are printed.  If +\b+o\bo is supplied with  no
-                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be,  a  series  of s\bse\bet\bt commands to recreate the
-                      current option settings is  displayed  on  the  standard
+                      current  options are printed.  If +\b+o\bo is supplied with no
+                      _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, a series of s\bse\bet\bt commands  to  recreate  the
+                      current  option  settings  is  displayed on the standard
                       output.
-              -\b-p\bp      Turn  on  _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd  mode.   In this mode, the $\b$E\bEN\bNV\bV and
-                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bfiles are not processed, shell  functions  are
-                      not  inherited  from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
-                      C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they appear in  the
-                      environment,  are ignored.  If the shell is started with
+              -\b-p\bp      Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode.  In this  mode,  the  $\b$E\bEN\bNV\b and
+                      $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\b files  are not processed, shell functions are
+                      not inherited from the environment, and  the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
+                      C\bCD\bDP\bPA\bAT\bTH\bH,  and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE 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  -\b-p\bp option is not supplied, these
-                      actions are taken and the effective user id  is  set  to
-                      the  real  user  id.   If  the  -\b-p\bp 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 -\b-p\bp option  is  not  supplied,  these
+                      actions  are  taken  and the effective user id is set to
+                      the real user id.  If  the  -\b-p\bp  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.
               -\b-t\bt      Exit after reading and executing one command.
               -\b-u\bu      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.
               -\b-v\bv      Print shell input lines as they are read.
-              -\b-x\bx      After  expanding  each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
+              -\b-x\bx      After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br  command,  c\bca\bas\bse\be
                       command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
-                      play  the expanded value of P\bPS\bS4\b4, followed by the command
+                      play the expanded value of P\bPS\bS4\b4, followed by the  command
                       and its expanded arguments or associated word list.
-              -\b-B\bB      The shell performs brace expansion (see B\bBr\bra\bac\bce\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+              -\b-B\bB      The  shell performs brace expansion (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
                       above).  This is on by default.
-              -\b-C\bC      If  set,  b\bba\bas\bsh\bh  does not overwrite an existing file with
-                      the >\b>, >\b>&\b&, and <\b<>\b> redirection operators.   This  may  be
+              -\b-C\bC      If set, b\bba\bas\bsh\bh does not overwrite an  existing  file  with
+                      the  >\b>,  >\b>&\b&,  and <\b<>\b> redirection operators.  This may be
                       overridden when creating output files by using the redi-
                       rection operator >\b>|\b| instead of >\b>.
               -\b-E\bE      If set, any trap on E\bER\bRR\bR is inherited by shell functions,
-                      command  substitutions,  and commands executed in a sub-
-                      shell environment.  The E\bER\bRR\bR trap is normally not  inher-
+                      command substitutions, and commands executed in  a  sub-
+                      shell  environment.  The E\bER\bRR\bR trap is normally not inher-
                       ited in such cases.
               -\b-H\bH      Enable !\b!  style history substitution.  This option is on
                       by default when the shell is interactive.
-              -\b-P\bP      If set, the shell does not follow  symbolic  links  when
-                      executing  commands  such  as c\bcd\bd that change the current
+              -\b-P\bP      If  set,  the  shell does not follow symbolic links when
+                      executing commands such as c\bcd\bd that  change  the  current
                       working  directory.   It  uses  the  physical  directory
                       structure instead.  By default, b\bba\bas\bsh\bh follows the logical
-                      chain of  directories  when  performing  commands  which
+                      chain  of  directories  when  performing  commands which
                       change the current directory.
-              -\b-T\bT      If  set,  any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
-                      shell functions,  command  substitutions,  and  commands
-                      executed  in  a  subshell  environment.   The  D\bDE\bEB\bBU\bUG\bG and
+              -\b-T\bT      If set, any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are  inherited  by
+                      shell  functions,  command  substitutions,  and commands
+                      executed in  a  subshell  environment.   The  D\bDE\bEB\bBU\bUG\b and
                       R\bRE\bET\bTU\bUR\bRN\bN traps are normally not inherited in such cases.
-              -\b--\b-      If no arguments follow this option, then the  positional
+              -\b--\b-      If  no arguments follow this option, then the positional
                       parameters are unset.  Otherwise, the positional parame-
-                      ters are set to the _\ba_\br_\bgs, even if  some  of  them  begin
+                      ters  are  set  to  the _\ba_\br_\bgs, even if some of them begin
                       with a -\b-.
-              -\b-       Signal  the  end of options, cause all remaining _\ba_\br_\bgs to
+              -\b-       Signal the end of options, cause all remaining  _\ba_\br_\bgs  to
                       be assigned to the positional parameters.  The -\b-x\bx and -\b-v\bv
                       options are turned off.  If there are no _\ba_\br_\bgs, 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 $\b$-\b-.  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 $\b$-\b-.   The
               return status is always true unless an invalid option is encoun-
               tered.
 
        s\bsh\bhi\bif\bft\bt [_\bn]
-              The  positional  parameters  from _\bn+1 ... are renamed to $\b$1\b1 .\b..\b..\b..\b.
-              Parameters represented by the numbers  $\b$#\b#  down  to  $\b$#\b#-_\bn+1  are
-              unset.   _\bn  must  be a non-negative number less than or equal to
-              $\b$#\b#.  If _\bn is 0, no parameters are changed.  If _\bn is  not  given,
-              it  is assumed to be 1.  If _\bn is greater than $\b$#\b#, the positional
-              parameters are not changed.  The return status is  greater  than
+              The positional parameters from _\bn+1 ... are renamed  to  $\b$1\b .\b..\b..\b..\b.
+              Parameters  represented  by  the  numbers  $\b$#\b# down to $\b$#\b#-_\bn+1 are
+              unset.  _\bn must be a non-negative number less than  or  equal  to
+              $\b$#\b#.   If  _\bn is 0, no parameters are changed.  If _\bn is not given,
+              it is assumed to be 1.  If _\bn is greater than $\b$#\b#, the  positional
+              parameters  are  not changed.  The return status is greater than
               zero if _\bn is greater than $\b$#\b# or less than zero; otherwise 0.
 
        s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
               Toggle the values of variables controlling optional shell behav-
               ior.  With no options, or with the -\b-p\bp option, a list of all set-
               table options is displayed, with an indication of whether or not
-              each is set.  The -\b-p\bp option causes output to be displayed  in  a
-              form  that  may be reused as input.  Other options have the fol-
+              each  is  set.  The -\b-p\bp option causes output to be displayed in a
+              form that may be reused as input.  Other options have  the  fol-
               lowing meanings:
               -\b-s\bs     Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
               -\b-u\bu     Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
-              -\b-q\bq     Suppresses normal output (quiet mode); the return  status
+              -\b-q\bq     Suppresses  normal output (quiet mode); the return status
                      indicates whether the _\bo_\bp_\bt_\bn_\ba_\bm_\be is set or unset.  If multi-
-                     ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return  sta-
-                     tus  is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero other-
+                     ple  _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return sta-
+                     tus is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero  other-
                      wise.
-              -\b-o\bo     Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those  defined  for
+              -\b-o\bo     Restricts  the  values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those defined for
                      the -\b-o\bo option to the s\bse\bet\bt builtin.
 
-              If  either  -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, the dis-
+              If either -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments,  the  dis-
               play is limited to those options which are set or unset, respec-
-              tively.   Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are disabled
+              tively.  Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are  disabled
               (unset) by default.
 
-              The return status when listing options is zero if  all  _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
-              are  enabled,  non-zero  otherwise.   When  setting or unsetting
-              options, the return status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  not  a
+              The  return  status when listing options is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
+              are enabled, non-zero  otherwise.   When  setting  or  unsetting
+              options,  the  return  status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be is not a
               valid shell option.
 
               The list of s\bsh\bho\bop\bpt\bt options is:
 
-              a\bau\but\bto\boc\bcd\bd  If  set,  a command name that is the name of a directory
-                      is executed as if it were the argument to  the  c\bcd\b com-
+              a\bau\but\bto\boc\bcd\bd  If set, a command name that is the name of  a  directory
+                      is  executed  as  if it were the argument to the c\bcd\bd com-
                       mand.  This option is only used by interactive shells.
               c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
-                      If  set,  an  argument to the c\bcd\bd builtin command that is
-                      not a directory is assumed to be the name of a  variable
+                      If set, an argument to the c\bcd\bd builtin  command  that  is
+                      not  a directory is assumed to be the name of a variable
                       whose value is the directory to change to.
               c\bcd\bds\bsp\bpe\bel\bll\bl If set, minor errors in the spelling of a directory com-
-                      ponent in a c\bcd\bd command will be  corrected.   The  errors
+                      ponent  in  a  c\bcd\bd 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.
               c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
                       If set, b\bba\bas\bsh\bh 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.
               c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
                       If set, b\bba\bas\bsh\bh 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 J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above).   The  shell  always  postpones
+                      second exit is attempted without an intervening  command
+                      (see  J\bJO\bOB\bB  C\bCO\bON\bNT\bTR\bRO\bOL\bL  above).   The shell always postpones
                       exiting if any jobs are stopped.
               c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
-                      If  set,  b\bba\bas\bsh\bh checks the window size after each command
-                      and, if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and  C\bCO\bOL\bL-\b-
+                      If set, b\bba\bas\bsh\bh checks the window size after  each  command
+                      and,  if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bL-\b-
                       U\bUM\bMN\bNS\bS.
-              c\bcm\bmd\bdh\bhi\bis\bst\bt If  set,  b\bba\bas\bsh\bh attempts to save all lines of a multiple-
-                      line command in the same  history  entry.   This  allows
+              c\bcm\bmd\bdh\bhi\bis\bst\bt If set, b\bba\bas\bsh\bh attempts to save all lines of  a  multiple-
+                      line  command  in  the  same history entry.  This allows
                       easy re-editing of multi-line commands.
               c\bco\bom\bmp\bpa\bat\bt3\b31\b1
                       If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.1
                       with respect to quoted arguments to the conditional com-
                       mand's =~ operator.
               d\bdi\bir\brs\bsp\bpe\bel\bll\bl
-                      If  set,  b\bba\bas\bsh\bh attempts spelling correction on directory
-                      names during word completion if the directory name  ini-
+                      If set, b\bba\bas\bsh\bh attempts spelling correction  on  directory
+                      names  during word completion if the directory name ini-
                       tially supplied does not exist.
-              d\bdo\bot\btg\bgl\blo\bob\bb If  set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
+              d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.'  in
                       the results of pathname expansion.
               e\bex\bxe\bec\bcf\bfa\bai\bil\bl
                       If set, a non-interactive shell will not exit if it can-
-                      not  execute  the  file  specified as an argument to the
-                      e\bex\bxe\bec\bbuiltin command.  An  interactive  shell  does  not
+                      not execute the file specified as  an  argument  to  the
+                      e\bex\bxe\bec\b builtin  command.   An  interactive shell does not
                       exit if e\bex\bxe\bec\bc fails.
               e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
-                      If  set,  aliases  are expanded as described above under
+                      If set, aliases are expanded as  described  above  under
                       A\bAL\bLI\bIA\bAS\bSE\bES\bS.  This option is enabled by default for interac-
                       tive shells.
               e\bex\bxt\btd\bde\beb\bbu\bug\bg
-                      If  set,  behavior  intended  for  use  by  debuggers is
+                      If set,  behavior  intended  for  use  by  debuggers  is
                       enabled:
                       1\b1.\b.     The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
                              source file name and line number corresponding to
                              each function name supplied as an argument.
-                      2\b2.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  trap  returns  a
-                             non-zero  value,  the next command is skipped and
+                      2\b2.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG trap returns a
+                             non-zero value, the next command is  skipped  and
                              not executed.
-                      3\b3.\b.     If the command run by the D\bDE\bEB\bBU\bUG\bG  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  .\b.  or s\bso\bou\bur\brc\bce\be builtins), a call to
+                      3\b3.\b.     If  the  command  run by the D\bDE\bEB\bBU\bUG\bG 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 .\b. or s\bso\bou\bur\brc\bce\be  builtins),  a  call  to
                              r\bre\bet\btu\bur\brn\bn is simulated.
-                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\band B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as  described
+                      4\b4.\b.     B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\b and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
                              in their descriptions above.
-                      5\b5.\b.     Function  tracing  is enabled:  command substitu-
+                      5\b5.\b.     Function tracing is enabled:   command  substitu-
                              tion, shell functions, and subshells invoked with
                              (\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
-                      6\b6.\b.     Error  tracing is enabled:  command substitution,
-                             shell functions, and  subshells  invoked  with  (\b(
+                      6\b6.\b.     Error tracing is enabled:  command  substitution,
+                             shell  functions,  and  subshells  invoked with (\b(
                              _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bRO\bOR\bR trap.
               e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
                       above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
               e\bex\bxt\btq\bqu\buo\bot\bte\be
-                      If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg"  quoting  is  performed
-                      within   $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}   expansions  enclosed  in  double
+                      If  set,  $\b$'_\bs_\bt_\br_\bi_\bn_\bg'  and  $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
+                      within  $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b}  expansions  enclosed   in   double
                       quotes.  This option is enabled by default.
               f\bfa\bai\bil\blg\bgl\blo\bob\bb
-                      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.
               f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
-                      If  set,  the  suffixes  specified  by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
-                      variable cause words to be ignored when performing  word
+                      If set, the suffixes  specified  by  the  F\bFI\bIG\bGN\bNO\bOR\bRE\b shell
+                      variable  cause words to be ignored when performing word
                       completion even if the ignored words are the only possi-
                       ble  completions.   See  S\bSH\bHE\bEL\bLL\bL  V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS  above  for  a
-                      description  of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled by
+                      description of  F\bFI\bIG\bGN\bNO\bOR\bRE\bE.   This  option  is  enabled  by
                       default.
               g\bgl\blo\bob\bbs\bst\bta\bar\br
                       If set, the pattern *\b**\b* used in a filename expansion con-
@@ -1234,58 +1243,58 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       If set, shell error messages are written in the standard
                       GNU error message format.
               h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
-                      If set, the history list is appended to the  file  named
-                      by  the  value  of  the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell
+                      If  set,  the history list is appended to the file named
+                      by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  variable  when  the  shell
                       exits, rather than overwriting the file.
               h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
-                      If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given  the
+                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given the
                       opportunity to re-edit a failed history substitution.
               h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
-                      If  set, and r\bre\bea\bad\bdl\bli\bin\bne\be 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 r\bre\bea\bad\bdl\bli\bin\bne\be 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 r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
                       fication.
               h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
                       If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
-                      perform hostname completion when a word containing  a  @\b@
-                      is   being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under  R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
+                      perform  hostname  completion when a word containing a @\b@
+                      is  being  completed  (see  C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg  under   R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
                       above).  This is enabled by default.
               h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
                       If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
                       active login shell exits.
               i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
                       If set, allow a word beginning with #\b# to cause that word
-                      and all remaining characters on that line to be  ignored
-                      in  an  interactive  shell  (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS above).  This
+                      and  all remaining characters on that line to be ignored
+                      in an interactive  shell  (see  C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS  above).   This
                       option is enabled by default.
-              l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option  is  enabled,  multi-line
+              l\bli\bit\bth\bhi\bis\bst\bt If  set,  and  the c\bcm\bmd\bdh\bhi\bis\bst\bt option is enabled, multi-line
                       commands are saved to the history with embedded newlines
                       rather than using semicolon separators where possible.
               l\blo\bog\bgi\bin\bn_\b_s\bsh\bhe\bel\bll\bl
-                      The shell sets this option if it is started as  a  login
-                      shell  (see  I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN  above).   The  value may not be
+                      The  shell  sets this option if it is started as a login
+                      shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN above).   The  value  may  not  be
                       changed.
               m\bma\bai\bil\blw\bwa\bar\brn\bn
-                      If set, and a file that b\bba\bas\bsh\bh is checking  for  mail  has
-                      been  accessed  since  the last time it was checked, the
-                      message ``The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read''  is  dis-
+                      If  set,  and  a file that b\bba\bas\bsh\bh is checking for mail has
+                      been accessed since the last time it  was  checked,  the
+                      message  ``The  mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read'' is dis-
                       played.
               n\bno\bo_\b_e\bem\bmp\bpt\bty\by_\b_c\bcm\bmd\bd_\b_c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
-                      If  set,  and  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used,  b\bba\bas\bsh\bh will not
+                      If set, and  r\bre\bea\bad\bdl\bli\bin\bne\be  is  being  used,  b\bba\bas\bsh\bh  will  not
                       attempt to search the P\bPA\bAT\bTH\bH for possible completions when
                       completion is attempted on an empty line.
               n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb
-                      If  set,  b\bba\bas\bsh\bh  matches  filenames in a case-insensitive
+                      If set, b\bba\bas\bsh\bh matches  filenames  in  a  case-insensitive
                       fashion when performing pathname expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be
                       E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
               n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
-                      If  set,  b\bba\bas\bsh\bh  matches  patterns  in a case-insensitive
+                      If set, b\bba\bas\bsh\bh  matches  patterns  in  a  case-insensitive
                       fashion when performing matching while executing c\bca\bas\bse\be or
                       [\b[[\b[ conditional commands.
               n\bnu\bul\bll\blg\bgl\blo\bob\bb
-                      If  set,  b\bba\bas\bsh\bh allows patterns which match no files (see
-                      P\bPa\bat\bth\bhn\bna\bam\bme\bE\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) to expand to  a  null  string,
+                      If set, b\bba\bas\bsh\bh allows patterns which match no  files  (see
+                      P\bPa\bat\bth\bhn\bna\bam\bme\b E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  above)  to expand to a null string,
                       rather than themselves.
               p\bpr\bro\bog\bgc\bco\bom\bmp\bp
                       If set, the programmable completion facilities (see P\bPr\bro\bo-\b-
@@ -1293,47 +1302,47 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       enabled by default.
               p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
                       If set, prompt strings undergo parameter expansion, com-
-                      mand  substitution,  arithmetic  expansion,  and   quote
-                      removal  after  being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+                      mand   substitution,  arithmetic  expansion,  and  quote
+                      removal after being expanded as described  in  P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
                       above.  This option is enabled by default.
               r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
-                      The  shell  sets  this  option  if  it  is  started   in
+                      The   shell  sets  this  option  if  it  is  started  in
                       restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL 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.
               s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
-                      If set, the s\bsh\bhi\bif\bft\bt builtin prints an error  message  when
+                      If  set,  the s\bsh\bhi\bif\bft\bt builtin prints an error message when
                       the shift count exceeds the number of positional parame-
                       ters.
               s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
                       If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH 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.
               x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
-                      If  set,  the  e\bec\bch\bho\bo  builtin  expands   backslash-escape
+                      If   set,  the  e\bec\bch\bho\bo  builtin  expands  backslash-escape
                       sequences by default.
        s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
-              Suspend  the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
               signal.  A login shell cannot be suspended; the -\b-f\bf 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 -\b-f\bf  is  not  sup-
+              tus  is  0  unless the shell is a login shell and -\b-f\bf is not sup-
               plied, or if job control is not enabled.
        t\bte\bes\bst\bt _\be_\bx_\bp_\br
        [\b[ _\be_\bx_\bp_\br ]\b]
-              Return  a  status  of  0 or 1 depending on the evaluation of the
-              conditional expression _\be_\bx_\bp_\br.  Each operator and operand must  be
-              a  separate argument.  Expressions are composed of the primaries
-              described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.   t\bte\bes\bst\bt  does  not
+              Return a status of 0 or 1 depending on  the  evaluation  of  the
+              conditional  expression _\be_\bx_\bp_\br.  Each operator and operand must be
+              a separate argument.  Expressions are composed of the  primaries
+              described  above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.  t\bte\bes\bst\bt does not
               accept any options, nor does it accept and ignore an argument of
               -\b--\b- 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.
               !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
               (\b( _\be_\bx_\bp_\br )\b)
-                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
+                     Returns  the value of _\be_\bx_\bp_\br.  This may be used to override
                      the normal precedence of operators.
               _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
                      True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
@@ -1350,108 +1359,108 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, 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 C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  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  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, 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 C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
                      result of the expression is the result of the binary test
-                     using the first and third arguments as operands.  The  -\b-a\ba
-                     and  -\b-o\bo  operators  are  considered binary operators when
-                     there are three arguments.  If the first argument  is  !\b!,
-                     the  value is the negation of the two-argument test using
+                     using  the first and third arguments as operands.  The -\b-a\ba
+                     and -\b-o\bo operators are  considered  binary  operators  when
+                     there  are  three arguments.  If the first argument is !\b!,
+                     the value is the negation of the two-argument test  using
                      the second and third arguments.  If the first argument is
                      exactly (\b( and the third argument is exactly )\b), 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 !\b!, 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.
 
-       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
+       t\bti\bim\bme\bes\bs  Print  the  accumulated  user and system times for the shell and
               for processes run from the shell.  The return status is 0.
 
        t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
-              The  command  _\ba_\br_\bg  is  to  be  read  and executed when the shell
-              receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\br_\bg is absent (and  there  is  a
-              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
-              original disposition (the value it  had  upon  entrance  to  the
-              shell).   If _\ba_\br_\bg is the null string the signal specified by each
-              _\bs_\bi_\bg_\bs_\bp_\be_\bis ignored by the shell and by the commands it  invokes.
-              If  _\ba_\br_\bg  is  not present and -\b-p\bp has been supplied, then the trap
-              commands associated with each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are  displayed.   If  no
-              arguments  are  supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
-              list of commands associated with each  signal.   The  -\b-l\b option
-              causes  the shell to print a list of signal names and their cor-
-              responding numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal  name
-              defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>,  or  a signal number.  Signal names are
-              case insensitive and the SIG prefix is optional.  If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc
-              is  E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit from the shell.
-              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is executed before  every
+              The command _\ba_\br_\bg is to  be  read  and  executed  when  the  shell
+              receives  signal(s)  _\bs_\bi_\bg_\bs_\bp_\be_\bc.   If _\ba_\br_\bg is absent (and there is a
+              single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified  signal  is  reset  to  its
+              original  disposition  (the  value  it  had upon entrance to the
+              shell).  If _\ba_\br_\bg is the null string the signal specified by  each
+              _\bs_\bi_\bg_\bs_\bp_\be_\b is ignored by the shell and by the commands it invokes.
+              If _\ba_\br_\bg is not present and -\b-p\bp has been supplied,  then  the  trap
+              commands  associated  with  each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are displayed.  If no
+              arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp  prints  the
+              list  of  commands  associated  with each signal.  The -\b-l\bl option
+              causes the shell to print a list of signal names and their  cor-
+              responding  numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal name
+              defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal  number.   Signal  names  are
+              case  insensitive  and the SIG prefix is optional.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc
+              is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit from the  shell.
+              If  a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is executed before every
               _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command, _\bs_\be_\bl_\be_\bc_\bt command, every
               arithmetic _\bf_\bo_\br command, and before the first command executes in
-              a  shell  function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer to the
-              description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option  to  the  s\bsh\bho\bop\bpt\bt  builtin  for
-              details  of  its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR,
-              the command _\ba_\br_\bg is executed whenever  a  simple  command  has  a
-              non-zero  exit status, subject to the following conditions.  The
-              E\bER\bRR\btrap is not executed if the failed command is  part  of  the
-              command  list  immediately  following  a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword,
-              part of the test in an _\bi_\bf statement, part of a command  executed
-              in  a  &\b&&\b&  or |\b||\b| list, or if the command's return value is being
-              inverted via !\b!.  These are the same  conditions  obeyed  by  the
+              a shell function  (see  S\bSH\bHE\bEL\bLL\bL  G\bGR\bRA\bAM\bMM\bMA\bAR\bR  above).   Refer  to  the
+              description  of  the  e\bex\bxt\btd\bde\beb\bbu\bug\bg  option  to the s\bsh\bho\bop\bpt\bt builtin for
+              details of its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,
+              the  command  _\ba_\br_\bg  is  executed  whenever a simple command has a
+              non-zero exit status, subject to the following conditions.   The
+              E\bER\bRR\b trap  is  not executed if the failed command is part of the
+              command list immediately following a  w\bwh\bhi\bil\ble\be  or  u\bun\bnt\bti\bil\b keyword,
+              part  of the test in an _\bi_\bf statement, part of a command executed
+              in a &\b&&\b& or |\b||\b| list, or if the command's return  value  is  being
+              inverted  via  !\b!.   These  are the same conditions obeyed by the
               e\ber\brr\bre\bex\bxi\bit\bt option.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is exe-
               cuted each time a shell function or a script executed with the .\b.
-              or  s\bso\bou\bur\brc\bce\be  builtins  finishes  executing.  Signals ignored upon
-              entry to the shell cannot be trapped or reset.  Trapped  signals
+              or s\bso\bou\bur\brc\bce\be 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 _\bs_\bi_\bg_\bs_\bp_\be_\bc is invalid; otherwise t\btr\bra\bap\bp returns true.
 
        t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
-              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+              With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted  if
               used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
-              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
-              _\bf_\bi_\bl_\bif  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
-              builtin,  or disk file, respectively.  If the _\bn_\ba_\bm_\be is not found,
-              then nothing  is  printed,  and  an  exit  status  of  false  is
-              returned.   If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the
+              string which is one of _\ba_\bl_\bi_\ba_\bs,  _\bk_\be_\by_\bw_\bo_\br_\bd,  _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn,  _\bb_\bu_\bi_\bl_\bt_\bi_\bn,  or
+              _\bf_\bi_\bl_\b if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word, function,
+              builtin, or disk file, respectively.  If the _\bn_\ba_\bm_\be is not  found,
+              then  nothing  is  printed,  and  an  exit  status  of  false is
+              returned.  If the -\b-p\bp option is used,  t\bty\byp\bpe\be  either  returns  the
               name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
               fied as a command name, or nothing if ``type -t name'' would not
-              return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,
+              return  _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
               even if ``type -t name'' would not return _\bf_\bi_\bl_\be.  If a command is
-              hashed, -\b-p\bp and -\b-P\bP print the hashed value,  not  necessarily  the
+              hashed,  -\b-p\bp  and  -\b-P\bP print the hashed value, not necessarily the
               file that appears first in P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is used, t\bty\byp\bpe\be
-              prints all of the places that contain an executable named  _\bn_\ba_\bm_\be.
-              This  includes  aliases  and  functions,  if  and only if the -\b-p\bp
-              option is not also used.  The table of hashed  commands  is  not
-              consulted  when  using -\b-a\ba.  The -\b-f\bf option suppresses shell func-
-              tion lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true  if
+              prints  all of the places that contain an executable named _\bn_\ba_\bm_\be.
+              This includes aliases and functions,  if  and  only  if  the  -\b-p\bp
+              option  is  not  also used.  The table of hashed commands is not
+              consulted when using -\b-a\ba.  The -\b-f\bf option suppresses  shell  func-
+              tion  lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true if
               all of the arguments are found, false if any are not found.
 
        u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
-              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 -\b-H\bH and -\b-S\bS 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 -\b-H\bH nor -\b-S\bS 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 -\b-H\bH nor -\b-S\bS is speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current hard limit,  the  current  soft  limit,  and  no  limit,
-              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
-              soft limit of the resource is printed, unless the -\b-H\bH  option  is
+              current  hard  limit,  the  current  soft  limit,  and no limit,
+              respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the  current  value  of  the
+              soft  limit  of the resource is printed, unless the -\b-H\bH 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 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The  maximum  size  of files written by the shell and its
+              -\b-f\bf     The maximum size of files written by the  shell  and  its
                      children
               -\b-i\bi     The maximum number of pending signals
               -\b-l\bl     The maximum size that may be locked into memory
-              -\b-m\bm     The maximum resident set size
+              -\b-m\bm     The  maximum resident set size (many systems do not honor
+                     this limit)
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set)
               -\b-p\bp     The pipe size in 512-byte blocks (this may not be set)
index 7d00230db1f62c740987edfd0f74e8f623dba825..b0eeb9a9b8d0cdb7fbfee41aeb07e5fd231b9e31 100644 (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
 %%+ font Times-Italic
@@ -251,418 +251,431 @@ imes, trap, true, type, typeset, ulimit, umask, unalias, unset, w)108
 .329 E(UIL)-.11 E(TIN COMMANDS)-1.007 E F0 .063
 (Unless otherwise noted, each b)108 172.8 R .062(uiltin command documen\
 ted in this section as accepting options preceded by)-.2 F F2<ad>108
-184.8 Q F0(accepts)3.8 E F2<adad>3.8 E F0 1.3
-(to signify the end of the options.)3.8 F -.15(Fo)6.3 G 3.8(re).15 G 1.3
-(xample, the)-3.95 F F2(:)3.8 E F0(,)A F2(true)3.8 E F0(,)A F2(false)3.8
-E F0 3.8(,a)C(nd)-3.8 E F2(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not)
-.2 F(accept options.)108 196.8 Q F2(:)108 214.8 Q F0([)2.5 E/F3 10
-/Times-Italic@0 SF(ar)A(guments)-.37 E F0(])A .452(No ef)144 226.8 R
-.452(fect; the command does nothing be)-.25 F .452(yond e)-.15 F
-(xpanding)-.15 E F3(ar)3.282 E(guments)-.37 E F0 .451(and performing an)
-3.221 F 2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. A)144
-238.8 R(zero e)2.5 E(xit code is returned.)-.15 E F2(.)110.5 255.6 Q F3
-(\214lename)6.666 E F0([)2.5 E F3(ar)A(guments)-.37 E F0(])A F2(sour)108
-267.6 Q(ce)-.18 E F3(\214lename)2.5 E F0([)2.5 E F3(ar)A(guments)-.37 E
-F0(])A 1.02(Read and e)144 279.6 R -.15(xe)-.15 G 1.02
-(cute commands from).15 F F3(\214lename)5.43 E F0 1.02
+184.8 Q F0(accepts)2.533 E F2<adad>2.533 E F0 .034
+(to signify the end of the options.)2.533 F(The)5.034 E F2(:)2.534 E F0
+(,)A F2(true)2.534 E F0(,)A F2(false)2.534 E F0 2.534(,a)C(nd)-2.534 E
+F2(test)2.534 E F0 -.2(bu)2.534 G .034(iltins do not accept options and)
+.2 F .078(do not treat)108 196.8 R F2<adad>2.577 E F0(specially)2.577 E
+5.077(.T)-.65 G(he)-5.077 E F2(exit)2.577 E F0(,)A F2(logout)2.577 E F0
+(,)A F2(br)2.577 E(eak)-.18 E F0(,)A F2(continue)2.577 E F0(,)A F2(let)
+2.577 E F0 2.577(,a)C(nd)-2.577 E F2(shift)2.577 E F0 -.2(bu)2.577 G
+.077(iltins accept and process ar).2 F(gu-)-.18 E .319(ments be)108
+208.8 R .319(ginning with)-.15 F F2<ad>2.819 E F0 .319
+(without requiring)2.819 F F2<adad>2.819 E F0 5.319(.O)C .319(ther b)
+-5.319 F .319(uiltins that accept ar)-.2 F .32(guments b)-.18 F .32
+(ut are not speci\214ed as)-.2 F 1.144(accepting options interpret ar)
+108 220.8 R 1.144(guments be)-.18 F 1.144(ginning with)-.15 F F2<ad>
+3.643 E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143
+(lid options and require).25 F F2<adad>3.643 E F0 1.143(to pre)3.643 F
+-.15(ve)-.25 G 1.143(nt this).15 F(interpretation.)108 232.8 Q F2(:)108
+250.8 Q F0([)2.5 E/F3 10/Times-Italic@0 SF(ar)A(guments)-.37 E F0(])A
+.451(No ef)144 262.8 R .451(fect; the command does nothing be)-.25 F
+.452(yond e)-.15 F(xpanding)-.15 E F3(ar)3.282 E(guments)-.37 E F0 .452
+(and performing an)3.222 F 2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5
+(redirections. A)144 274.8 R(zero e)2.5 E(xit code is returned.)-.15 E
+F2(.)110.5 291.6 Q F3(\214lename)6.666 E F0([)2.5 E F3(ar)A(guments)-.37
+E F0(])A F2(sour)108 303.6 Q(ce)-.18 E F3(\214lename)2.5 E F0([)2.5 E F3
+(ar)A(guments)-.37 E F0(])A 1.02(Read and e)144 315.6 R -.15(xe)-.15 G
+1.02(cute commands from).15 F F3(\214lename)5.43 E F0 1.02
 (in the current shell en)3.7 F 1.02(vironment and return the e)-.4 F
-(xit)-.15 E 1.68(status of the last command e)144 291.6 R -.15(xe)-.15 G
+(xit)-.15 E 1.68(status of the last command e)144 327.6 R -.15(xe)-.15 G
 1.68(cuted from).15 F F3(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F3
 (\214lename)6.09 E F0 1.68(does not contain a slash, \214le)4.36 F .608
-(names in)144 303.6 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E
+(names in)144 339.6 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E
 F0 .608(are used to \214nd the directory containing)2.858 F F3
 (\214lename)3.108 E F0 5.608(.T).18 G .608(he \214le searched for in)
--5.608 F F4 -.666(PA)3.108 G(TH)-.189 E F0 .833(need not be e)144 315.6
-R -.15(xe)-.15 G 3.333(cutable. When).15 F F2(bash)3.333 E F0 .832
-(is not in)3.333 F F3 .832(posix mode)3.332 F F0 3.332(,t)C .832
-(he current directory is searched if no)-3.332 F .981
-(\214le is found in)144 327.6 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+-5.608 F F4 -.666(PA)3.108 G(TH)-.189 E F0 .832(need not be e)144 351.6
+R -.15(xe)-.15 G 3.332(cutable. When).15 F F2(bash)3.332 E F0 .832
+(is not in)3.332 F F3 .832(posix mode)3.332 F F0 3.332(,t)C .833
+(he current directory is searched if no)-3.332 F .982
+(\214le is found in)144 363.6 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
 /Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F2(sour)3.481 E(cepath)-.18
 E F0 .981(option to the)3.481 F F2(shopt)3.481 E F0 -.2(bu)3.481 G .981
-(iltin command is turned of).2 F .982(f, the)-.25 F F4 -.666(PA)144
-339.6 S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F
+(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144
+375.6 S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F
 (y)-.15 E F3(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F
 2.612(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F3
-(\214lename)144 351.6 Q F0 .341(is e)2.841 F -.15(xe)-.15 G 2.841
-(cuted. Otherwise).15 F .341(the positional parameters are unchanged.)
-2.841 F .342(The return status is the)5.342 F .716
-(status of the last command e)144 363.6 R .716
+(\214lename)144 387.6 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842
+(cuted. Otherwise).15 F .342(the positional parameters are unchanged.)
+2.842 F .341(The return status is the)5.341 F .716
+(status of the last command e)144 399.6 R .716
 (xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G
-.716(cuted\), and f).15 F .715(alse if)-.1 F F3(\214lename)145.91 375.6
-Q F0(is not found or cannot be read.)2.68 E F2(alias)108 392.4 Q F0([)
+.716(cuted\), and f).15 F .716(alse if)-.1 F F3(\214lename)145.91 411.6
+Q F0(is not found or cannot be read.)2.68 E F2(alias)108 428.4 Q F0([)
 2.5 E F2<ad70>A F0 2.5(][)C F3(name)-2.5 E F0([=)A F3(value)A F0 2.5(].)
-C(..])-2.5 E F2(Alias)144 404.4 Q F0 2.724(with no ar)5.224 F 2.724
+C(..])-2.5 E F2(Alias)144 440.4 Q F0 2.725(with no ar)5.225 F 2.724
 (guments or with the)-.18 F F2<ad70>5.224 E F0 2.724
-(option prints the list of aliases in the form)5.224 F F2(alias)5.225 E
-F3(name)144 416.4 Q F0(=)A F3(value)A F0 .58(on standard output.)3.08 F
+(option prints the list of aliases in the form)5.224 F F2(alias)5.224 E
+F3(name)144 452.4 Q F0(=)A F3(value)A F0 .58(on standard output.)3.08 F
 .58(When ar)5.58 F .58
 (guments are supplied, an alias is de\214ned for each)-.18 F F3(name)
-3.08 E F0(whose)144 428.4 Q F3(value)2.895 E F0 .395(is gi)2.895 F -.15
+3.08 E F0(whose)144 464.4 Q F3(value)2.895 E F0 .395(is gi)2.895 F -.15
 (ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F3(value)
 5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395
 (ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054
-(stitution when the alias is e)144 440.4 R 2.554(xpanded. F)-.15 F .054
+(stitution when the alias is e)144 476.4 R 2.554(xpanded. F)-.15 F .054
 (or each)-.15 F F3(name)2.554 E F0 .054(in the ar)2.554 F .054
-(gument list for which no)-.18 F F3(value)2.554 E F0 .053(is sup-)2.553
-F 1.313(plied, the name and v)144 452.4 R 1.314
+(gument list for which no)-.18 F F3(value)2.554 E F0 .054(is sup-)2.554
+F 1.314(plied, the name and v)144 488.4 R 1.314
 (alue of the alias is printed.)-.25 F F2(Alias)6.314 E F0 1.314
-(returns true unless a)3.814 F F3(name)3.814 E F0 1.314(is gi)3.814 F
--.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E
-(which no alias has been de\214ned.)144 464.4 Q F2(bg)108 481.2 Q F0([)
-2.5 E F3(jobspec)A F0(...])2.5 E .745(Resume each suspended job)144
-493.2 R F3(jobspec)3.245 E F0 .745
-(in the background, as if it had been started with)3.245 F F2(&)3.244 E
-F0 5.744(.I)C(f)-5.744 E F3(job-)4.984 E(spec)144 505.2 Q F0 .671
-(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the)
--3.171 F F3(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F2
-(bg)5.672 E F3(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419
-(when job control is disabled or)144 517.2 R 2.919(,w)-.4 G .419
-(hen run with job control enabled, an)-2.919 F 2.918(ys)-.15 G
-(peci\214ed)-2.918 E F3(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G
-(ot)-2.918 E(found or w)144 529.2 Q(as started without job control.)-.1
-E F2(bind)108 546 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0
-2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 558 Q F0([)2.5 E F2
+(returns true unless a)3.814 F F3(name)3.814 E F0 1.313(is gi)3.814 F
+-.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E
+(which no alias has been de\214ned.)144 500.4 Q F2(bg)108 517.2 Q F0([)
+2.5 E F3(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144
+529.2 R F3(jobspec)3.244 E F0 .745
+(in the background, as if it had been started with)3.244 F F2(&)3.245 E
+F0 5.745(.I)C(f)-5.745 E F3(job-)4.985 E(spec)144 541.2 Q F0 .672
+(is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the)
+-3.172 F F3(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F2
+(bg)5.671 E F3(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418
+(when job control is disabled or)144 553.2 R 2.919(,w)-.4 G .419
+(hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G
+(peci\214ed)-2.919 E F3(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G
+(ot)-2.919 E(found or w)144 565.2 Q(as started without job control.)-.1
+E F2(bind)108 582 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0
+2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 594 Q F0([)2.5 E F2
 <ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F2<ad71>-2.5 E F3
 (function)2.5 E F0 2.5(][)C F2<ad75>-2.5 E F3(function)2.5 E F0 2.5(][)C
-F2<ad72>-2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 570 Q F0([)
+F2<ad72>-2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 606 Q F0([)
 2.5 E F2<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0(])A F2<ad66>2.5 E F3
-(\214lename)2.5 E F2(bind)108 582 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5 G
+(\214lename)2.5 E F2(bind)108 618 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5 G
 (ymap)-.2 E F0(])A F2<ad78>2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3
-(shell\255command)A F2(bind)108 594 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5
+(shell\255command)A F2(bind)108 630 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5
 G(ymap)-.2 E F0(])A F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3
-(function\255name)A F2(bind)108 606 Q F3 -.37(re)2.5 G
-(adline\255command).37 E F0 .238(Display current)144 618 R F2 -.18(re)
-2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239
-(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
-(equence to a).15 F F2 -.18(re)2.739 G(adline).18 E F0 .239(function or)
-2.739 F .476(macro, or set a)144 630 R F2 -.18(re)2.976 G(adline).18 E
-F0 -.25(va)2.976 G 2.976(riable. Each).25 F .476(non-option ar)2.976 F
-.475(gument is a command as it w)-.18 F .475(ould appear in)-.1 F F3
-(.inputr)144 642 Q(c)-.37 E F0 2.983(,b).31 G .484
-(ut each binding or command must be passed as a separate ar)-3.183 F
-.484(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
-(re\255read\255init\255\214le'. Options,)144 654 R(if supplied, ha)2.5 E
-.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6d>144 666
-Q F3 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 678 Q F3 -.1(ke)5.159 G(ymap)-.2
-E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.658
-(fected by the subsequent bindings.)-.25 F(Acceptable)7.658 E F3 -.1(ke)
-180 690 S(ymap)-.2 E F0 3.192(names are)5.882 F F3 3.192
-(emacs, emacs\255standar)5.692 F 3.193
+(function\255name)A F2(bind)108 642 Q F3 -.37(re)2.5 G
+(adline\255command).37 E F0 .239(Display current)144 654 R F2 -.18(re)
+2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239
+(nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238
+(equence to a).15 F F2 -.18(re)2.738 G(adline).18 E F0 .238(function or)
+2.738 F .475(macro, or set a)144 666 R F2 -.18(re)2.975 G(adline).18 E
+F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F
+.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F3
+(.inputr)144 678 Q(c)-.37 E F0 2.984(,b).31 G .484
+(ut each binding or command must be passed as a separate ar)-3.184 F
+.483(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
+(re\255read\255init\255\214le'. Options,)144 690 R(if supplied, ha)2.5 E
+.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6d>144 702
+Q F3 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 714 Q F3 -.1(ke)5.158 G(ymap)-.2
+E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.659
+(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E F3 -.1(ke)
+180 726 S(ymap)-.2 E F0 3.193(names are)5.883 F F3 3.193
+(emacs, emacs\255standar)5.693 F 3.192
 (d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-(vi\255command)180 702 Q F0 4.43(,a)C(nd)-4.43 E F3(vi\255insert)4.429 E
-F0(.).68 E F3(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.929
-(lent to).25 F F3(vi\255command)4.429 E F0(;)A F3(emacs)4.429 E F0 1.929
-(is equi)4.429 F -.25(va)-.25 G 1.929(lent to).25 F F3(emacs\255standar)
-180 714 Q(d)-.37 E F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(1)
-203.725 E 0 Cg EP
+F0(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(1)203.725 E 0 Cg EP
 %%Page: 2 2
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad6c>144 84 Q F0(List the names of all)27.52 E F1 -.18
-(re)2.5 G(adline).18 E F0(functions.)2.5 E F1<ad70>144 96 Q F0(Display)
-24.74 E F1 -.18(re)2.5 G(adline).18 E F0
+/Times-Italic@0 SF(vi\255command)180 84 Q F0 4.429(,a)C(nd)-4.429 E F1
+(vi\255insert)4.429 E F0(.).68 E F1(vi)6.929 E F0 1.929(is equi)4.429 F
+-.25(va)-.25 G 1.929(lent to).25 F F1(vi\255command)4.429 E F0(;)A F1
+(emacs)4.429 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25
+F F1(emacs\255standar)180 96 Q(d)-.37 E F0(.)A/F2 10/Times-Bold@0 SF
+<ad6c>144 108 Q F0(List the names of all)27.52 E F2 -.18(re)2.5 G
+(adline).18 E F0(functions.)2.5 E F2<ad70>144 120 Q F0(Display)24.74 E
+F2 -.18(re)2.5 G(adline).18 E F0
 (function names and bindings in such a w)2.5 E(ay that the)-.1 E 2.5(yc)
--.15 G(an be re-read.)-2.5 E F1<ad50>144 108 Q F0(List current)24.19 E
-F1 -.18(re)2.5 G(adline).18 E F0(function names and bindings.)2.5 E F1
-<ad73>144 120 Q F0(Display)26.41 E F1 -.18(re)3.655 G(adline).18 E F0
+-.15 G(an be re-read.)-2.5 E F2<ad50>144 132 Q F0(List current)24.19 E
+F2 -.18(re)2.5 G(adline).18 E F0(function names and bindings.)2.5 E F2
+<ad73>144 144 Q F0(Display)26.41 E F2 -.18(re)3.655 G(adline).18 E F0
 -.1(ke)3.655 G 3.655(ys)-.05 G 1.155
 (equences bound to macros and the strings the)-3.655 F 3.655(yo)-.15 G
-1.155(utput in such a)-3.655 F -.1(wa)180 132 S 2.5(yt).1 G(hat the)-2.5
-E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 144 Q F0(Display)24.74
-E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G
+1.155(utput in such a)-3.655 F -.1(wa)180 156 S 2.5(yt).1 G(hat the)-2.5
+E 2.5(yc)-.15 G(an be re-read.)-2.5 E F2<ad53>144 168 Q F0(Display)24.74
+E F2 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G
 (equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
-(utput.)-2.5 E F1<ad76>144 156 Q F0(Display)25.3 E F1 -.18(re)2.5 G
+(utput.)-2.5 E F2<ad76>144 180 Q F0(Display)25.3 E F2 -.18(re)2.5 G
 (adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
 (alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
-(an be re-read.)-2.5 E F1<ad56>144 168 Q F0(List current)23.08 E F1 -.18
+(an be re-read.)-2.5 E F2<ad56>144 192 Q F0(List current)23.08 E F2 -.18
 (re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E(alues.)
--.25 E F1<ad66>144 180 Q/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0
-(Read k)180 192 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)
-2.5 E F0(.)A F1<ad71>144 204 Q F2(function)2.5 E F0(Query about which k)
-180 216 Q -.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4
-H(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 228 Q F2(function)
-2.5 E F0(Unbind all k)180 240 Q -.15(ey)-.1 G 2.5(sb).15 G
-(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 252 Q F2
--.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 264 Q .3 -.15(ve a)-.15 H .3 -.15
-(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(.)A
-F1<ad78>144 276 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command)
-A F0(Cause)180 288 Q F2(shell\255command)4.325 E F0 1.825(to be e)4.325
-F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)-.25 G(r).15 E F2 -.1
-(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F(When)6.825 E F2
-(shell\255com-)4.325 E(mand)180 300 Q F0 1.113(is e)3.613 F -.15(xe)-.15
-G 1.113(cuted, the shell sets the).15 F F1(READLINE_LINE)3.613 E F0 -.25
-(va)3.613 G 1.113(riable to the contents of the).25 F F1 -.18(re)180 312
-S(adline).18 E F0 .587(line b)3.087 F(uf)-.2 E .587(fer and the)-.25 F
-F1(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .586
-(riable to the current location of the).25 F 1.24(insertion point.)180
-324 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
-(cuted command changes the v).15 F 1.241(alue of)-.25 F F1
-(READLINE_LINE)3.741 E F0(or)3.741 E F1(READLINE_POINT)180 336 Q F0 2.5
+-.25 E F2<ad66>144 204 Q F1(\214lename)2.5 E F0(Read k)180 216 Q .3 -.15
+(ey b)-.1 H(indings from).15 E F1(\214lename)2.5 E F0(.)A F2<ad71>144
+228 Q F1(function)2.5 E F0(Query about which k)180 240 Q -.15(ey)-.1 G
+2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H(he named).1 E F1
+(function)2.5 E F0(.)A F2<ad75>144 252 Q F1(function)2.5 E F0
+(Unbind all k)180 264 Q -.15(ey)-.1 G 2.5(sb).15 G(ound to the named)
+-2.5 E F1(function)2.5 E F0(.)A F2<ad72>144 276 Q F1 -.1(ke)2.5 G(yseq)
+-.2 E F0(Remo)180 288 Q .3 -.15(ve a)-.15 H .3 -.15(ny c).15 H
+(urrent binding for).15 E F1 -.1(ke)2.5 G(yseq)-.2 E F0(.)A F2<ad78>144
+300 Q F1 -.1(ke)2.5 G(yseq)-.2 E F2(:)A F1(shell\255command)A F0(Cause)
+180 312 Q F1(shell\255command)4.325 E F0 1.825(to be e)4.325 F -.15(xe)
+-.15 G 1.825(cuted whene).15 F -.15(ve)-.25 G(r).15 E F1 -.1(ke)4.325 G
+(yseq)-.2 E F0 1.825(is entered.)4.325 F(When)6.825 E F1(shell\255com-)
+4.325 E(mand)180 324 Q F0 1.113(is e)3.614 F -.15(xe)-.15 G 1.113
+(cuted, the shell sets the).15 F F2(READLINE_LINE)3.613 E F0 -.25(va)
+3.613 G 1.113(riable to the contents of the).25 F F2 -.18(re)180 336 S
+(adline).18 E F0 .586(line b)3.086 F(uf)-.2 E .586(fer and the)-.25 F F2
+(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .587
+(riable to the current location of the).25 F 1.241(insertion point.)180
+348 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241
+(cuted command changes the v).15 F 1.241(alue of)-.25 F F2
+(READLINE_LINE)3.741 E F0(or)3.74 E F2(READLINE_POINT)180 360 Q F0 2.5
 (,t)C(hose ne)-2.5 E 2.5(wv)-.25 G
 (alues will be re\215ected in the editing state.)-2.75 E(The return v)
-144 352.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+144 376.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
 (ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
-E F1(br)108 369.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055
-(Exit from within a)144 381.6 R F1 -.25(fo)2.555 G(r).25 E F0(,)A F1
-(while)2.555 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
-(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
-(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
-(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F3 10/Symbol SF<b3>2.554
-E F0(1.)2.554 E(If)144 393.6 Q F2(n)3.074 E F0 .215(is greater than the\
- number of enclosing loops, all enclosing loops are e)2.954 F 2.715
-(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E(is 0 unless)144
-405.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
-(bu)108 422.4 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
-F2(ar)A(guments)-.37 E F0(])A(Ex)144 434.4 Q .793
-(ecute the speci\214ed shell b)-.15 F .793(uiltin, passing it)-.2 F F2
+E F2(br)108 393.6 Q(eak)-.18 E F0([)2.5 E F1(n)A F0(])A .054
+(Exit from within a)144 405.6 R F2 -.25(fo)2.554 G(r).25 E F0(,)A F2
+(while)2.554 E F0(,)A F2(until)2.555 E F0 2.555(,o)C(r)-2.555 E F2
+(select)2.555 E F0 2.555(loop. If)2.555 F F1(n)2.555 E F0 .055
+(is speci\214ed, break)2.555 F F1(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
+(ls.).15 E F1(n)5.415 E F0 .055(must be)2.795 F/F3 10/Symbol SF<b3>2.555
+E F0(1.)2.555 E(If)144 417.6 Q F1(n)3.075 E F0 .215(is greater than the\
+ number of enclosing loops, all enclosing loops are e)2.955 F 2.714
+(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(is 0 unless)144
+429.6 Q F1(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F2 -.2
+(bu)108 446.4 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
+F1(ar)A(guments)-.37 E F0(])A(Ex)144 458.4 Q .792
+(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F1
 (ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293
-F .792(xit status.)-.15 F .792(This is useful)5.792 F .615
+F .793(xit status.)-.15 F .793(This is useful)5.793 F .616
 (when de\214ning a function whose name is the same as a shell b)144
-446.4 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144
-458.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
+470.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
+482.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0
 -.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
-5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 470.4 Q(alse if)-.1
-E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
-(uiltin command.)-.2 E F1(caller)108 487.2 Q F0([)2.5 E F2 -.2(ex)C(pr)
-.2 E F0(])A .253(Returns the conte)144 499.2 R .254(xt of an)-.15 F
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 494.4 Q(alse if)-.1
+E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
+(uiltin command.)-.2 E F2(caller)108 511.2 Q F0([)2.5 E F1 -.2(ex)C(pr)
+.2 E F0(])A .254(Returns the conte)144 523.2 R .254(xt of an)-.15 F
 2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
 (ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 511.2 Q
-(ce)-.18 E F0 -.2(bu)3.063 G 3.063(iltins. W).2 F(ithout)-.4 E F2 -.2
-(ex)3.062 G(pr).2 E F0(,)A F1(caller)3.062 E F0 .562
+.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 535.2 Q
+(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F1 -.2
+(ex)3.062 G(pr).2 E F0(,)A F2(caller)3.062 E F0 .562
 (displays the line number and source \214lename of the current)3.062 F
-.253(subroutine call.)144 523.2 R .253(If a non-ne)5.253 F -.05(ga)-.15
-G(ti).05 E .553 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
-F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .254
-(displays the line number)2.754 F 2.754(,s)-.4 G(ub-)-2.754 E 1.327(rou\
+.254(subroutine call.)144 547.2 R .254(If a non-ne)5.254 F -.05(ga)-.15
+G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
+F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253
+(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\
 tine name, and source \214le corresponding to that position in the curr\
-ent e)144 535.2 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
-144 547.2 Q(xtra information may be used, for e)-.15 E .001
-(xample, to print a stack trace.)-.15 F .001(The current frame is frame)
-5.001 F 3.02(0. The)144 559.2 R .52(return v)3.02 F .52
-(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .519
-(cuting a subroutine call or).15 F F2 -.2(ex)3.019 G(pr).2 E F0 .519
-(does not corre-)3.019 F(spond to a v)144 571.2 Q
-(alid position in the call stack.)-.25 E F1(cd)108 588 Q F0([)2.5 E F1
-(\255L|-P)A F0 2.5(][)C F2(dir)-2.5 E F0(])A .21
-(Change the current directory to)144 600 R F2(dir)2.71 E F0 5.21(.T)C
+ent e)144 559.2 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
+(This e)144 571.2 R .001(xtra information may be used, for e)-.15 F .001
+(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E
+3.019(0. The)144 583.2 R .519(return v)3.019 F .519
+(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52
+(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52
+(does not corre-)3.02 F(spond to a v)144 595.2 Q
+(alid position in the call stack.)-.25 E F2(cd)108 612 Q F0([)2.5 E F2
+(\255L|-P)A F0 2.5(][)C F1(dir)-2.5 E F0(])A .21
+(Change the current directory to)144 624 R F1(dir)2.71 E F0 5.21(.T)C
 .21(he v)-5.21 F(ariable)-.25 E/F4 9/Times-Bold@0 SF(HOME)2.71 E F0 .21
-(is the def)2.46 F(ault)-.1 E F2(dir)2.71 E F0 5.21(.T).73 G .21(he v)
--5.21 F(ariable)-.25 E F4(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .777
-(de\214nes the search path for the directory containing)144 612 R F2
-(dir)3.276 E F0 5.776(.A).73 G(lternati)-5.776 E 1.076 -.15(ve d)-.25 H
-.776(irectory names in).15 F F4(CDP)3.276 E -.855(AT)-.666 G(H).855 E F0
-.764(are separated by a colon \(:\).)144 624 R 3.264(An)5.764 G .764
+(is the def)2.46 F(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21(he v)
+-5.21 F(ariable)-.25 E F4(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776
+(de\214nes the search path for the directory containing)144 636 R F1
+(dir)3.276 E F0 5.777(.A).73 G(lternati)-5.777 E 1.077 -.15(ve d)-.25 H
+.777(irectory names in).15 F F4(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0
+.764(are separated by a colon \(:\).)144 648 R 3.264(An)5.764 G .764
 (ull directory name in)-3.264 F F4(CDP)3.264 E -.855(AT)-.666 G(H).855 E
-F0 .764(is the same as the current direc-)3.014 F(tory)144 636 Q 2.974
-(,i)-.65 G .474(.e., `)-2.974 F(`)-.74 E F1(.)A F0 -.74('')C 5.474(.I)
-.74 G(f)-5.474 E F2(dir)3.324 E F0(be)3.704 E .474
+F0 .764(is the same as the current direc-)3.014 F(tory)144 660 Q 2.973
+(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F2(.)A F0 -.74('')C 5.473(.I)
+.74 G(f)-5.473 E F1(dir)3.323 E F0(be)3.703 E .474
 (gins with a slash \(/\), then)-.15 F F4(CDP)2.974 E -.855(AT)-.666 G(H)
-.855 E F0 .473(is not used. The)2.724 F F1<ad50>2.973 E F0 .473
-(option says to use)2.973 F .579(the ph)144 648 R .579
+.855 E F0 .474(is not used. The)2.724 F F2<ad50>2.974 E F0 .474
+(option says to use)2.974 F .58(the ph)144 672 R .58
 (ysical directory structure instead of follo)-.05 F .579
-(wing symbolic links \(see also the)-.25 F F1<ad50>3.08 E F0 .58
-(option to the)3.08 F F1(set)144 660 Q F0 -.2(bu)3.384 G .884
-(iltin command\); the).2 F F1<ad4c>3.384 E F0 .884
+(wing symbolic links \(see also the)-.25 F F2<ad50>3.079 E F0 .579
+(option to the)3.079 F F2(set)144 684 Q F0 -.2(bu)3.383 G .883
+(iltin command\); the).2 F F2<ad4c>3.383 E F0 .884
 (option forces symbolic links to be follo)3.384 F 3.384(wed. An)-.25 F
-(ar)3.383 E .883(gument of)-.18 F F1<ad>3.383 E F0(is)3.383 E(equi)144
-672 Q -.25(va)-.25 G .062(lent to).25 F F4($OLDPWD)2.562 E/F5 9
-/Times-Roman@0 SF(.)A F0 .062(If a non-empty directory name from)4.562 F
-F1(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .063(is used, or if)2.562 F F1
-<ad>2.563 E F0 .063(is the \214rst)2.563 F(ar)144 684 Q .116(gument, an\
+(ar)3.384 E .884(gument of)-.18 F F2<ad>3.384 E F0(is)3.384 E(equi)144
+696 Q -.25(va)-.25 G .063(lent to).25 F F4($OLDPWD)2.563 E/F5 9
+/Times-Roman@0 SF(.)A F0 .063(If a non-empty directory name from)4.563 F
+F2(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .062(is used, or if)2.562 F F2
+<ad>2.562 E F0 .062(is the \214rst)2.562 F(ar)144 708 Q .116(gument, an\
 d the directory change is successful, the absolute pathname of the ne)
--.18 F 2.615(ww)-.25 G .115(orking direc-)-2.715 F 1.164
-(tory is written to the standard output.)144 696 R 1.164(The return v)
-6.164 F 1.165(alue is true if the directory w)-.25 F 1.165
-(as successfully)-.1 F(changed; f)144 708 Q(alse otherwise.)-.1 E
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(2)203.725 E 0 Cg EP
+-.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165
+(tory is written to the standard output.)144 720 R 1.164(The return v)
+6.164 F 1.164(alue is true if the directory w)-.25 F 1.164
+(as successfully)-.1 F(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(2)
+203.725 E 0 Cg EP
 %%Page: 3 3
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(command)108 84 Q F0([)2.5 E F1(\255pVv)A F0(])A/F2 10
-/Times-Italic@0 SF(command)2.5 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5
-E(Run)144 96 Q F2(command)2.957 E F0(with)3.527 E F2(ar)3.087 E(gs)-.37
-E F0 .257(suppressing the normal shell function lookup. Only b)3.027 F
-.257(uiltin commands or)-.2 F .501(commands found in the)144 108 R/F3 9
-/Times-Bold@0 SF -.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(changed; f)
+144 84 Q(alse otherwise.)-.1 E/F1 10/Times-Bold@0 SF(command)108 100.8 Q
+F0([)2.5 E F1(\255pVv)A F0(])A/F2 10/Times-Italic@0 SF(command)2.5 E F0
+([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Run)144 112.8 Q F2(command)2.956
+E F0(with)3.527 E F2(ar)3.087 E(gs)-.37 E F0 .257
+(suppressing the normal shell function lookup. Only b)3.027 F .257
+(uiltin commands or)-.2 F .502(commands found in the)144 124.8 R/F3 9
+/Times-Bold@0 SF -.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15
 (xe)-.15 G 3.002(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502
-(option is gi)3.002 F -.15(ve)-.25 G .502(n, the search for).15 F F2
-(command)3.202 E F0(is)3.772 E .232(performed using a def)144 120 R .231
-(ault v)-.1 F .231(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0 .231
-(that is guaranteed to \214nd all of the standard utilities.)2.731 F(If)
-5.231 E .174(either the)144 132 R F1<ad56>2.674 E F0(or)2.674 E F1<ad76>
-2.674 E F0 .175(option is supplied, a description of)2.674 F F2(command)
-2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F1<ad76>2.675 E F0 .175
-(option causes)2.675 F 3.11(as)144 144 S .61(ingle w)-3.11 F .61
-(ord indicating the command or \214le name used to in)-.1 F -.2(vo)-.4 G
--.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F F1
-<ad56>144 156 Q F0 .249(option produces a more v)2.749 F .249
-(erbose description.)-.15 F .249(If the)5.249 F F1<ad56>2.749 E F0(or)
-2.749 E F1<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
-(xit status)-.15 F 1.005(is 0 if)144 168 R F2(command)3.705 E F0 -.1(wa)
-4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004
+(option is gi)3.002 F -.15(ve)-.25 G .501(n, the search for).15 F F2
+(command)3.201 E F0(is)3.771 E .231(performed using a def)144 136.8 R
+.231(ault v)-.1 F .231(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0
+.231(that is guaranteed to \214nd all of the standard utilities.)2.731 F
+(If)5.232 E .175(either the)144 148.8 R F1<ad56>2.675 E F0(or)2.675 E F1
+<ad76>2.675 E F0 .175(option is supplied, a description of)2.675 F F2
+(command)2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F1<ad76>2.674 E
+F0 .174(option causes)2.674 F 3.11(as)144 160.8 S .61(ingle w)-3.11 F
+.61(ord indicating the command or \214le name used to in)-.1 F -.2(vo)
+-.4 G -.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F
+F1<ad56>144 172.8 Q F0 .25(option produces a more v)2.75 F .25
+(erbose description.)-.15 F .249(If the)5.25 F F1<ad56>2.749 E F0(or)
+2.749 E F1<ad76>2.749 E F0 .249(option is supplied, the e)2.749 F .249
+(xit status)-.15 F 1.004(is 0 if)144 184.8 R F2(command)3.704 E F0 -.1
+(wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005
 (If neither option is supplied and an error occurred or)6.005 F F2
-(command)144.2 180 Q F0 1.598(cannot be found, the e)4.868 F 1.599
-(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599
-(xit status of the)-.15 F F1(command)4.099 E F0 -.2(bu)144 192 S
+(command)144.2 196.8 Q F0 1.599(cannot be found, the e)4.869 F 1.599
+(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598
+(xit status of the)-.15 F F1(command)4.098 E F0 -.2(bu)144 208.8 S
 (iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1
-(compgen)108 208.8 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
--.37 E F0(])A .013(Generate possible completion matches for)144 220.8 R
+(compgen)108 225.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
+-.37 E F0(])A .012(Generate possible completion matches for)144 237.6 R
 F2(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513
-E F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981
-(accepted by the)144 232.8 R F1(complete)3.481 E F0 -.2(bu)3.481 G .981
+E F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982
+(accepted by the)144 249.6 R F1(complete)3.482 E F0 -.2(bu)3.481 G .981
 (iltin with the e).2 F .981(xception of)-.15 F F1<ad70>3.481 E F0(and)
-3.481 E F1<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
--3.481 F 1.415(standard output.)144 244.8 R 1.415(When using the)6.415 F
+3.481 E F1<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the)
+-3.481 F 1.415(standard output.)144 261.6 R 1.415(When using the)6.415 F
 F1<ad46>3.915 E F0(or)3.915 E F1<ad43>3.915 E F0 1.415(options, the v)
 3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25
-F(grammable completion f)144 256.8 Q(acilities, while a)-.1 E -.25(va)
+F(grammable completion f)144 273.6 Q(acilities, while a)-.1 E -.25(va)
 -.2 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)
--.25 E .352(The matches will be generated in the same w)144 280.8 R .352
+-.25 E .352(The matches will be generated in the same w)144 297.6 R .352
 (ay as if the programmable completion code had gen-)-.1 F .02(erated th\
 em directly from a completion speci\214cation with the same \215ags.)144
-292.8 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
-2.52 F(those completions matching)144 304.8 Q F2(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 328.8 Q
+309.6 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
+2.52 F(those completions matching)144 321.6 Q F2(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 345.6 Q
 (alue is true unless an in)-.25 E -.25(va)-.4 G
 (lid option is supplied, or no matches were generated.).25 E F1
-(complete)108 345.6 Q F0([)3.033 E F1(\255abcdefgjksuv)A F0 3.033(][)C
-F1<ad6f>-3.033 E F2(comp-option)3.033 E F0 3.033(][)C F1<ad45>-3.033 E
+(complete)108 362.4 Q F0([)3.034 E F1(\255abcdefgjksuv)A F0 3.034(][)C
+F1<ad6f>-3.034 E F2(comp-option)3.034 E F0 3.034(][)C F1<ad45>-3.034 E
 F0 3.033(][)C F1<ad41>-3.033 E F2(action)3.033 E F0 3.033(][)C F1<ad47>
--3.033 E F2(globpat)3.033 E F0 3.034(][)C F1<ad57>-3.034 E F2(wor)3.034
-E(dlist)-.37 E F0 3.034(][)C F1<ad46>-3.034 E F2(function)3.034 E F0(])A
-([)108 357.6 Q F1<ad43>A F2(command)2.5 E F0(])A([)144 369.6 Q F1<ad58>A
+-3.033 E F2(globpat)3.033 E F0 3.033(][)C F1<ad57>-3.033 E F2(wor)3.033
+E(dlist)-.37 E F0 3.033(][)C F1<ad46>-3.033 E F2(function)3.033 E F0(])A
+([)108 374.4 Q F1<ad43>A F2(command)2.5 E F0(])A([)144 386.4 Q F1<ad58>A
 F2(\214lterpat)2.5 E F0 2.5(][)C F1<ad50>-2.5 E F2(pr)2.5 E(e\214x)-.37
 E F0 2.5(][)C F1<ad53>-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])A F2(name)2.5
-E F0([)2.5 E F2(name ...)A F0(])A F1(complete \255pr)108 381.6 Q F0([)
-2.5 E F1<ad45>A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .633
-(Specify ho)144 393.6 R 3.133(wa)-.25 G -.18(rg)-3.133 G .633
-(uments to each).18 F F2(name)3.133 E F0 .633(should be completed.)3.133
-F .634(If the)5.634 F F1<ad70>3.134 E F0 .634
-(option is supplied, or if no)3.134 F .14(options are supplied, e)144
-405.6 R .139(xisting completion speci\214cations are printed in a w)-.15
-F .139(ay that allo)-.1 F .139(ws them to be)-.25 F .31
-(reused as input.)144 417.6 R(The)5.31 E F1<ad72>2.81 E F0 .31
-(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31
-(ompletion speci\214cation for each)-2.81 F F2(name)2.81 E F0 2.81(,o)C
-1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F2(name)2.81 E F0(s)A 1.393
-(are supplied, all completion speci\214cations.)144 429.6 R(The)6.393 E
-F1<ad45>3.893 E F0 1.392(option indicates that the remaining options)
-3.892 F 1.304(and actions should apply to `)144 441.6 R(`empty')-.74 E
+E F0([)2.5 E F2(name ...)A F0(])A F1(complete \255pr)108 398.4 Q F0([)
+2.5 E F1<ad45>A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .634
+(Specify ho)144 410.4 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
+(uments to each).18 F F2(name)3.134 E F0 .634(should be completed.)3.134
+F .633(If the)5.634 F F1<ad70>3.133 E F0 .633
+(option is supplied, or if no)3.133 F .139(options are supplied, e)144
+422.4 R .139(xisting completion speci\214cations are printed in a w)-.15
+F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.)
+144 434.4 R(The)5.31 E F1<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)
+-.15 G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2
+(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E
+F2(name)2.81 E F0(s)A 1.392
+(are supplied, all completion speci\214cations.)144 446.4 R(The)6.392 E
+F1<ad45>3.892 E F0 1.393(option indicates that the remaining options)
+3.893 F 1.304(and actions should apply to `)144 458.4 R(`empty')-.74 E
 3.804('c)-.74 G 1.304
 (ommand completion; that is, completion attempted on a)-3.804 F
-(blank line.)144 453.6 Q 1.438
+(blank line.)144 470.4 Q 1.437
 (The process of applying these completion speci\214cations when w)144
-477.6 R 1.437(ord completion is attempted is)-.1 F(described abo)144
-489.6 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(.)A .555
-(Other options, if speci\214ed, ha)144 513.6 R .855 -.15(ve t)-.2 H .555
+494.4 R 1.438(ord completion is attempted is)-.1 F(described abo)144
+506.4 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(.)A .556
+(Other options, if speci\214ed, ha)144 530.4 R .856 -.15(ve t)-.2 H .555
 (he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
-(guments to the)-.18 F F1<ad47>3.056 E F0(,)A F1<ad57>3.056 E F0 3.056
-(,a)C(nd)-3.056 E F1<ad58>3.056 E F0 .723(options \(and, if necessary)
-144 525.6 R 3.223(,t)-.65 G(he)-3.223 E F1<ad50>3.223 E F0(and)3.223 E
-F1<ad53>3.223 E F0 .722
-(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
-(sion before the)144 537.6 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
-(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 549.6 Q
-F2(comp-option)2.5 E F0(The)184 561.6 Q F2(comp-option)2.79 E F0 .291
+(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1<ad57>3.055 E F0 3.055
+(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722(options \(and, if necessary)
+144 542.4 R 3.222(,t)-.65 G(he)-3.222 E F1<ad50>3.222 E F0(and)3.222 E
+F1<ad53>3.222 E F0 .723
+(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
+(sion before the)144 554.4 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 566.4 Q
+F2(comp-option)2.5 E F0(The)184 578.4 Q F2(comp-option)2.791 E F0 .291
 (controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
 .15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
-(yond the simple)-.15 F(generation of completions.)184 573.6 Q F2
-(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 585.6 Q F0
-.281(Perform the rest of the def)224 597.6 R(ault)-.1 E F1(bash)2.781 E
+(yond the simple)-.15 F(generation of completions.)184 590.4 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 602.4 Q F0
+.281(Perform the rest of the def)224 614.4 R(ault)-.1 E F1(bash)2.781 E
 F0 .281(completions if the compspec generates no)2.781 F(matches.)224
-609.6 Q F1(default)184 621.6 Q F0 2.875(Use readline')10 F 5.375(sd)-.55
-G(ef)-5.375 E 2.876
+626.4 Q F1(default)184 638.4 Q F0 2.876(Use readline')10 F 5.376(sd)-.55
+G(ef)-5.376 E 2.875
 (ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 633.6 Q F1(dir)184 645.6 Q(names)-.15 E F0(Perform directory name c\
-ompletion if the compspec generates no matches.)224 657.6 Q F1
-(\214lenames)184 669.6 Q F0 -.7(Te)224 681.6 S .137(ll readline that th\
-e compspec generates \214lenames, so it can perform an).7 F 2.636<798c>
--.15 G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 693.6 R
+224 650.4 Q F1(dir)184 662.4 Q(names)-.15 E F0(Perform directory name c\
+ompletion if the compspec generates no matches.)224 674.4 Q F1
+(\214lenames)184 686.4 Q F0 -.7(Te)224 698.4 S .137(ll readline that th\
+e compspec generates \214lenames, so it can perform an).7 F 2.637<798c>
+-.15 G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 710.4 R
 2.634(ea)-.1 G .134(dding a slash to directory names, quoting spe-)
 -2.634 F .45(cial characters, or suppressing trailing spaces\).)224
-705.6 R .45(Intended to be used with shell)5.45 F(functions.)224 717.6 Q
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(3)203.725 E 0 Cg EP
+722.4 R .45(Intended to be used with shell)5.45 F(GNU Bash-4.0)72 768 Q
+(2004 Apr 20)148.735 E(3)203.725 E 0 Cg EP
 %%Page: 4 4
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(nospace)184 84 Q F0 -.7(Te)6.11 G .22
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(functions.)
+224 84 Q/F1 10/Times-Bold@0 SF(nospace)184 96 Q F0 -.7(Te)6.11 G .22
 (ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F
-.22(ords completed at the end)-.1 F(of the line.)224 96 Q F1(plusdirs)
-184 108 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
+.22(ords completed at the end)-.1 F(of the line.)224 108 Q F1(plusdirs)
+184 120 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
 (atches de\214ned by the compspec are generated, directory name)-4.485 F
-.583(completion is attempted and an)224 120 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 132
-Q F1<ad41>144 144 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 156
+.584(completion is attempted and an)224 132 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224 144
+Q F1<ad41>144 156 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 168
 Q F2(action)2.5 E F0(may be one of the follo)2.5 E
 (wing to generate a list of possible completions:)-.25 E F1(alias)184
-168 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
-E F0(.)A F1(arrayv)184 180 Q(ar)-.1 E F0(Array v)224 192 Q
-(ariable names.)-.25 E F1 4.7(binding Readline)184 204 R F0 -.1(ke)2.5 G
-2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 216 S(iltin).2 E F0
+180 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
+E F0(.)A F1(arrayv)184 192 Q(ar)-.1 E F0(Array v)224 204 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 216 R F0 -.1(ke)2.5 G
+2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 228 S(iltin).2 E F0
 (Names of shell b)11.85 E(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 228
-Q F0(Command names.)224 240 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 252 Q(ectory)-.18 E F0(Directory names.)224 264 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 276
-Q F0(Names of disabled shell b)224 288 Q(uiltins.)-.2 E F1(enabled)184
-300 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
-312 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 240
+Q F0(Command names.)224 252 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 264 Q(ectory)-.18 E F0(Directory names.)224 276 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 288
+Q F0(Names of disabled shell b)224 300 Q(uiltins.)-.2 E F1(enabled)184
+312 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
+324 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
 -.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
-324 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
-E F0(.)A F1(function)184 336 Q F0(Names of shell functions.)224 348 Q F1
-(gr)184 360 Q(oup)-.18 E F0(Group names.)14.62 E
+336 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
+E F0(.)A F1(function)184 348 Q F0(Names of shell functions.)224 360 Q F1
+(gr)184 372 Q(oup)-.18 E F0(Group names.)14.62 E
 (May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-372 Q F0(Help topics as accepted by the)224 384 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 396 Q F0(Hostnames, as tak)224 408
+384 Q F0(Help topics as accepted by the)224 396 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E F1(hostname)184 408 Q F0(Hostnames, as tak)224 420
 Q(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 420 Q F0
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 432 Q F0
 (Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 432 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 444 Q(ed w)-.15 E 2.5(ords. May)
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 444 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 456 Q(ed w)-.15 E 2.5(ords. May)
 -.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
-456 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
--.25 G(.).15 E F1(ser)184 468 Q(vice)-.1 E F0(Service names.)10.67 E
-(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 480 Q
+468 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
+-.25 G(.).15 E F1(ser)184 480 Q(vice)-.1 E F0(Service names.)10.67 E
+(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 492 Q
 F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
 F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
-(shopt)184 492 Q F0(Shell option names as accepted by the)16.66 E F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 504 Q F0
-(Signal names.)14.99 E F1(stopped)184 516 Q F0
+(shopt)184 504 Q F0(Shell option names as accepted by the)16.66 E F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 516 Q F0
+(Signal names.)14.99 E F1(stopped)184 528 Q F0
 (Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
-.15 E F1(user)184 528 Q F0(User names.)21.67 E
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 540 S
+.15 E F1(user)184 540 Q F0(User names.)21.67 E
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 552 S
 (riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 552 Q F2
-(globpat)2.5 E F0 1.411(The \214lename e)184 564 R 1.411
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 564 Q F2
+(globpat)2.5 E F0 1.41(The \214lename e)184 576 R 1.411
 (xpansion pattern)-.15 F F2(globpat)3.911 E F0 1.411(is e)3.911 F 1.411
-(xpanded to generate the possible comple-)-.15 F(tions.)184 576 Q F1
-<ad57>144 588 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 600 Q F2(wor)3.639
-E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639 F F3
-(IFS)3.64 E F0 1.14(special v)3.39 F 1.14(ariable as delimiters, and)
--.25 F 2.008(each resultant w)184 612 R 2.008(ord is e)-.1 F 4.508
-(xpanded. The)-.15 F 2.007(possible completions are the members of the)
-4.508 F(resultant list which match the w)184 624 Q(ord being completed.)
--.1 E F1<ad43>144 636 Q F2(command)2.5 E(command)184 648 Q F0 1.055
-(is e)3.555 F -.15(xe)-.15 G 1.055(cuted in a subshell en).15 F 1.056
+(xpanded to generate the possible comple-)-.15 F(tions.)184 588 Q F1
+<ad57>144 600 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 612 Q F2(wor)3.64 E
+(dlist)-.37 E F0 1.14(is split using the characters in the)3.64 F F3
+(IFS)3.64 E F0 1.139(special v)3.39 F 1.139(ariable as delimiters, and)
+-.25 F 2.007(each resultant w)184 624 R 2.007(ord is e)-.1 F 4.507
+(xpanded. The)-.15 F 2.008(possible completions are the members of the)
+4.507 F(resultant list which match the w)184 636 Q(ord being completed.)
+-.1 E F1<ad43>144 648 Q F2(command)2.5 E(command)184 660 Q F0 1.056
+(is e)3.556 F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
 (vironment, and its output is used as the possible)-.4 F(completions.)
-184 660 Q F1<ad46>144 672 Q F2(function)2.5 E F0 1.181
-(The shell function)184 684 R F2(function)3.681 E F0 1.181(is e)3.681 F
--.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.68
-(vironment. When)-.4 F 1.18(it \214n-)3.68 F .932
-(ishes, the possible completions are retrie)184 696 R -.15(ve)-.25 G
+184 672 Q F1<ad46>144 684 Q F2(function)2.5 E F0 1.18
+(The shell function)184 696 R F2(function)3.68 E F0 1.181(is e)3.681 F
+-.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.681
+(vironment. When)-.4 F 1.181(it \214n-)3.681 F .932
+(ishes, the possible completions are retrie)184 708 R -.15(ve)-.25 G
 3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F3
-(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 708 S(riable.)
+(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 720 S(riable.)
 .25 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(4)203.725 E 0 Cg EP
 %%Page: 5 5
 %%BeginPageSetup
@@ -672,170 +685,170 @@ BP
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
 /Times-Bold@0 SF<ad58>144 84 Q/F2 10/Times-Italic@0 SF(\214lterpat)2.5 E
 (\214lterpat)184 96 Q F0 .733(is a pattern as used for \214lename e)
-3.234 F 3.233(xpansion. It)-.15 F .733
+3.233 F 3.233(xpansion. It)-.15 F .733
 (is applied to the list of possible)3.233 F 1.596
 (completions generated by the preceding options and ar)184 108 R 1.596
 (guments, and each completion)-.18 F(matching)184 120 Q F2(\214lterpat)
-3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
-(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
-(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
+3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
+(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F2(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
 (tes the pattern;).05 F(in this case, an)184 132 Q 2.5(yc)-.15 G
 (ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E
 -.15(ve)-.15 G(d.).15 E F1<ad50>144 144 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 156 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
+184 156 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
 (ginning of each possible completion after all other options ha)-.15 F
 -.15(ve)-.2 G(been applied.)184 168 Q F1<ad53>144 180 Q F2(suf)2.5 E
 2.81(\214x suf)-.18 F<8c78>-.18 E F0
 (is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 196.8 R
-.467(alue is true unless an in)-.25 F -.25(va)-.4 G .466
-(lid option is supplied, an option other than).25 F F1<ad70>2.966 E F0
-(or)2.966 E F1<ad72>2.966 E F0 .466(is sup-)2.966 F 1.361
-(plied without a)144 208.8 R F2(name)3.861 E F0(ar)3.861 E 1.361
-(gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H
-1.362(ompletion speci\214cation for a).15 F F2(name)144 220.8 Q F0
+E .3 -.15(ve b)-.2 H(een applied.).15 E .466(The return v)144 196.8 R
+.466(alue is true unless an in)-.25 F -.25(va)-.4 G .466
+(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
+(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
+(plied without a)144 208.8 R F2(name)3.862 E F0(ar)3.862 E 1.361
+(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
+1.361(ompletion speci\214cation for a).15 F F2(name)144 220.8 Q F0
 (for which no speci\214cation e)2.5 E
 (xists, or an error occurs adding a completion speci\214cation.)-.15 E
 F1(compopt)108 237.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
 F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .447
 (Modify completion options for each)144 249.6 R F2(name)2.947 E F0 .447
 (according to the)2.947 F F2(option)2.947 E F0 .447
-(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .725
-(completion if no)144 261.6 R F2(name)3.225 E F0 3.225(sa)C .725
-(re supplied.)-3.225 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
-C .725(re gi)-3.225 F -.15(ve)-.25 G .726
+(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .726
+(completion if no)144 261.6 R F2(name)3.226 E F0 3.226(sa)C .726
+(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .725
 (n, display the completion options for).15 F(each)144 273.6 Q F2(name)
-3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v)
+3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
 5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
-F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 285.6 Q F0 -.2(bu)
+F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 285.6 Q F0 -.2(bu)
 2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v)
 108 302.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327
 (lid option is supplied, an attempt is made to modify the options for a)
 .25 F F2(name)108 314.4 Q F0(for which no completion speci\214cation e)
 2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 331.2 Q
-F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 343.2 R 1.754
+F0([)2.5 E F2(n)A F0(])A 1.753(Resume the ne)144 343.2 R 1.753
 (xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
 F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
-(select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753
-(is speci\214ed,)4.493 F 1.208(resume at the)144 355.2 R F2(n)3.709 E F0
+(select)4.254 E F0 4.254(loop. If)4.254 F F2(n)4.614 E F0 1.754
+(is speci\214ed,)4.494 F 1.209(resume at the)144 355.2 R F2(n)3.709 E F0
 1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F3 10
 /Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
-(is greater than the number of enclosing)3.949 F .514
+(is greater than the number of enclosing)3.949 F .513
 (loops, the last enclosing loop \(the `)144 367.2 R(`top-le)-.74 E -.15
-(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
-(The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is)
-3.013 E(not greater than or equal to 1.)144 379.2 Q F1(declar)108 396 Q
+(ve)-.25 G(l').15 E 3.013('l)-.74 G .513(oop\) is resumed.)-3.013 F .514
+(The return v)5.514 F .514(alue is 0 unless)-.25 F F2(n)3.014 E F0(is)
+3.014 E(not greater than or equal to 1.)144 379.2 Q F1(declar)108 396 Q
 (e)-.18 E F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>-2.5 E F0
 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E F1
 (typeset)108 408 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1<ad70>
 -2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])
--2.5 E 1.264(Declare v)144 420 R 1.264(ariables and/or gi)-.25 F 1.564
--.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
-F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765
-(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25
-(va)144 432 S 3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
-(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
-(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
-<ad70>3.482 E F0 .982(is used)3.482 F(with)144 444 Q F2(name)3.579 E F0
-(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F(When)
+-2.5 E 1.265(Declare v)144 420 R 1.265(ariables and/or gi)-.25 F 1.565
+-.15(ve t)-.25 H 1.265(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
+F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.764
+(nt).15 G 1.264(hen display the v)-3.764 F 1.264(alues of)-.25 F -.25
+(va)144 432 S 3.482(riables. The).25 F F1<ad70>3.482 E F0 .982
+(option will display the attrib)3.482 F .982(utes and v)-.2 F .983
+(alues of each)-.25 F F2(name)3.483 E F0 5.983(.W).18 G(hen)-5.983 E F1
+<ad70>3.483 E F0 .983(is used)3.483 F(with)144 444 Q F2(name)3.58 E F0
+(ar)3.58 E 1.079(guments, additional options are ignored.)-.18 F(When)
 6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2(name)
-3.58 E F0(ar)3.58 E(gu-)-.18 E .151(ments, it will display the attrib)
-144 456 R .151(utes and v)-.2 F .151(alues of all v)-.25 F .15
-(ariables ha)-.25 F .15(ving the attrib)-.2 F .15
-(utes speci\214ed by the)-.2 F .046(additional options.)144 468 R .046
-(If no other options are supplied with)5.046 F F1<ad70>2.547 E F0(,)A F1
-(declar)2.547 E(e)-.18 E F0 .047(will display the attrib)2.547 F .047
-(utes and)-.2 F -.25(va)144 480 S 1.363(lues of all shell v).25 F 3.863
-(ariables. The)-.25 F F1<ad66>3.863 E F0 1.362
-(option will restrict the display to shell functions.)3.863 F(The)6.362
-E F1<ad46>3.862 E F0 2.422(option inhibits the display of function de\
-\214nitions; only the function name and attrib)144 492 R 2.423(utes are)
--.2 F 2.664(printed. If)144 504 R(the)2.664 E F1(extdeb)2.664 E(ug)-.2 E
-F0 .164(shell option is enabled using)2.664 F F1(shopt)2.664 E F0 2.664
-(,t)C .163(he source \214le name and line number)-2.664 F 1.382
+3.579 E F0(ar)3.579 E(gu-)-.18 E .15(ments, it will display the attrib)
+144 456 R .15(utes and v)-.2 F .151(alues of all v)-.25 F .151
+(ariables ha)-.25 F .151(ving the attrib)-.2 F .151
+(utes speci\214ed by the)-.2 F .047(additional options.)144 468 R .047
+(If no other options are supplied with)5.047 F F1<ad70>2.547 E F0(,)A F1
+(declar)2.547 E(e)-.18 E F0 .046(will display the attrib)2.546 F .046
+(utes and)-.2 F -.25(va)144 480 S 1.362(lues of all shell v).25 F 3.862
+(ariables. The)-.25 F F1<ad66>3.862 E F0 1.363
+(option will restrict the display to shell functions.)3.862 F(The)6.363
+E F1<ad46>3.863 E F0 2.422(option inhibits the display of function de\
+\214nitions; only the function name and attrib)144 492 R 2.422(utes are)
+-.2 F 2.663(printed. If)144 504 R(the)2.663 E F1(extdeb)2.663 E(ug)-.2 E
+F0 .164(shell option is enabled using)2.663 F F1(shopt)2.664 E F0 2.664
+(,t)C .164(he source \214le name and line number)-2.664 F 1.382
 (where the function is de\214ned are displayed as well.)144 516 R(The)
 6.382 E F1<ad46>3.882 E F0 1.382(option implies)3.882 F F1<ad66>3.882 E
-F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794
+F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .793
 (options can be used to restrict output to v)144 528 R .794
-(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F
-1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 540 Q(utes:)-.2 E F1
+(ariables with the speci\214ed attrib)-.25 F .794(ute or to gi)-.2 F
+1.094 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 540 Q(utes:)-.2 E F1
 <ad61>144 552 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15
 (xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5
 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 564 Q F0(Each)23.08
 E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15
 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
 .15 E F1<ad66>144 576 Q F0(Use function names only)26.97 E(.)-.65 E F1
-<ad69>144 588 Q F0 .557(The v)27.52 F .558
+<ad69>144 588 Q F0 .558(The v)27.52 F .558
 (ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
-(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .558
+(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .557
 (ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 600 Q F0
 (is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.)
--.25 E F1<ad6c>144 612 Q F0 .91(When the v)27.52 F .909
+-.25 E F1<ad6c>144 612 Q F0 .909(When the v)27.52 F .909
 (ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer)
+(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to lo).15 F(wer)
 -.25 E(-)-.2 E 2.5(case. The)180 624 R(upper)2.5 E(-case attrib)-.2 E
 (ute is disabled.)-.2 E F1<ad72>144 636 Q F0(Mak)25.86 E(e)-.1 E F2
-(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E 7.546(.T)-.65 G 2.546
-(hese names cannot then be assigned v)-7.546 F 2.547
+(name)5.047 E F0 5.047(sr)C(eadonly)-5.047 E 7.547(.T)-.65 G 2.546
+(hese names cannot then be assigned v)-7.547 F 2.546
 (alues by subsequent)-.25 F(assignment statements or unset.)180 648 Q F1
-<ad74>144 660 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E F2(name)
-2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
+<ad74>144 660 Q F0(Gi)26.97 E .729 -.15(ve e)-.25 H(ach).15 E F2(name)
+2.929 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
 (ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG)
--.1 E F0(and)2.929 E F1(RETURN)2.929 E F0(traps from the calling shell.)
+-.1 E F0(and)2.93 E F1(RETURN)2.93 E F0(traps from the calling shell.)
 180 672 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
-(ariables.)-.25 E F1<ad75>144 684 Q F0 .909(When the v)24.74 F .909
+(ariables.)-.25 E F1<ad75>144 684 Q F0 .91(When the v)24.74 F .909
 (ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to upper).15 F(-)
--.2 E 2.5(case. The)180 696 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
+(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to upper).15 F
+(-)-.2 E 2.5(case. The)180 696 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
 (ute is disabled.)-.2 E F1<ad78>144 708 Q F0(Mark)25.3 E F2(name)2.5 E
 F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
-(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 724.8 R
-2.621(ft)-.25 G .121(he attrib)-2.621 F .121(ute instead, with the e)-.2
-F .12(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F
+(vironment.)-.4 E .12(Using `+' instead of `\255' turns of)144 724.8 R
+2.62(ft)-.25 G .12(he attrib)-2.62 F .121(ute instead, with the e)-.2 F
+.121(xceptions that)-.15 F F1(+a)2.621 E F0 .121(may not be used)2.621 F
 (GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(5)203.725 E 0 Cg EP
 %%Page: 6 6
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.236
-(to destro)144 84 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237(rray v)-3.737
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.237
+(to destro)144 84 R 3.737(ya)-.1 G 3.737(na)-3.737 G 1.237(rray v)-3.737
 F 1.237(ariable and)-.25 F/F1 10/Times-Bold@0 SF 1.237(+r will not r)
 3.737 F(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237
-(eadonly attrib)-.18 F 3.737(ute. When)-.2 F 1.237(used in a)3.737 F
-.312(function, mak)144 96 R .312(es each)-.1 F/F2 10/Times-Italic@0 SF
-(name)2.812 E F1 .311(local, as with the local)2.812 F F0 2.811
-(command. If)2.811 F 2.811(av)2.811 G .311(ariable name is follo)-3.061
-F .311(wed by)-.25 F(=)144 108 Q F2(value)A F0 3.238(,t)C .738(he v)
--3.238 F .738(alue of the v)-.25 F .738(ariable is set to)-.25 F F2
-(value)3.238 E F0 5.738(.T)C .738(he return v)-5.738 F .739
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G .739(lid option is).25 F
+(eadonly attrib)-.18 F 3.737(ute. When)-.2 F 1.236(used in a)3.737 F
+.311(function, mak)144 96 R .311(es each)-.1 F/F2 10/Times-Italic@0 SF
+(name)2.811 E F1 .311(local, as with the local)2.811 F F0 2.811
+(command. If)2.811 F 2.811(av)2.811 G .312(ariable name is follo)-3.061
+F .312(wed by)-.25 F(=)144 108 Q F2(value)A F0 3.239(,t)C .739(he v)
+-3.239 F .739(alue of the v)-.25 F .739(ariable is set to)-.25 F F2
+(value)3.238 E F0 5.738(.T)C .738(he return v)-5.738 F .738
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .738(lid option is).25 F
 .603(encountered, an attempt is made to de\214ne a function using)144
 120 R/F3 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103
-(na)-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 132 R
-1.242(alue to a readonly v)-.25 F 1.242
-(ariable, an attempt is made to assign a v)-.25 F 1.243
+(na)-3.103 G .604(ttempt is made to)-3.103 F 1.243(assign a v)144 132 R
+1.243(alue to a readonly v)-.25 F 1.242
+(ariable, an attempt is made to assign a v)-.25 F 1.242
 (alue to an array v)-.25 F(ariable)-.25 E 1.386
 (without using the compound assignment syntax \(see)144 144 R F1(Arrays)
 3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F F2
-(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 156 S .171
+(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 156 S .172
 (lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
-F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172
+F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .171
 (ariable, an)-.25 F .96(attempt is made to turn of)144 168 R 3.46(fa)
 -.25 G .96(rray status for an array v)-3.46 F .96
 (ariable, or an attempt is made to display a)-.25 F(non-e)144 180 Q
 (xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 196.8
 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0
--.4(Wi)144 208.8 S .328
+-.4(Wi)144 208.8 S .329
 (thout options, displays the list of currently remembered directories.)
-.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238
+.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
 (single line with directory names separated by spaces.)144 220.8 R 1.238
 (Directories are added to the list with the)6.238 F F1(pushd)144 232.8 Q
 F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
 2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 244.8 Q F2(n)A F0
-1.564(Displays the)25.3 F F2(n)4.064 E F0 1.565
-(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1
-(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+1.565(Displays the)25.3 F F2(n)4.065 E F0 1.565
+(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
+(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
 (without options, starting with zero.)180 256.8 Q F1<ad>144 268.8 Q F2
 (n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
 (th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
@@ -846,9 +859,9 @@ F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
 .324(ault listing format uses a tilde to denote the home direc-)-.1 F
 (tory)180 316.8 Q(.)-.65 E F1<ad70>144 328.8 Q F0
 (Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-340.8 Q F0 .273(Print the directory stack with one entry per line, pre\
-\214xing each entry with its inde)25.3 F 2.772(xi)-.15 G 2.772(nt)-2.772
-G(he)-2.772 E(stack.)180 352.8 Q .257(The return v)144 369.6 R .258
+340.8 Q F0 .272(Print the directory stack with one entry per line, pre\
+\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773
+G(he)-2.773 E(stack.)180 352.8 Q .258(The return v)144 369.6 R .258
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
 (lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
 -.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
@@ -857,47 +870,46 @@ G(he)-2.772 E(stack.)180 352.8 Q .257(The return v)144 369.6 R .258
 (...])2.5 E -.4(Wi)144 410.4 S .295(thout options, each).4 F F2(jobspec)
 4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df).15 G .295
 (rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795(obs. If).15
-F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .243(and neither)
-144 422.4 R F1 .243(\255a nor \255r is supplied, the shell')2.743 F
+F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .244(and neither)
+144 422.4 R F1 .243(\255a nor \255r is supplied, the shell')2.744 F
 2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243(ent job)
--.37 F F1 .243(is used.)2.743 F .244(If the \255h option)5.243 F .334
-(is gi)144 434.4 R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0
+-.37 F F1 .243(is used.)2.743 F .243(If the \255h option)5.243 F .333
+(is gi)144 434.4 R -.1(ve)-.1 G .333(n, each).1 F F2(jobspec)4.574 E F0
 .334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334
 (rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F
-/F4 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .333(is not sent to)2.584 F
-1.189(the job if the shell recei)144 446.4 R -.15(ve)-.25 G 3.689(sa).15
-G F4(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2
-(jobspec)5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>
-3.689 E F0 1.19(nor the)3.69 F F1<ad72>3.69 E F0 1.57
-(option is supplied, the)144 458.4 R F2(curr)4.07 E 1.57(ent job)-.37 F
-F0 1.57(is used.)4.07 F 1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.569
-(is supplied, the)4.379 F F1<ad61>4.069 E F0 1.569(option means to)4.069
-F(remo)144 470.4 Q .903 -.15(ve o)-.15 H 3.103(rm).15 G .603
-(ark all jobs; the)-3.103 F F1<ad72>3.103 E F0 .603(option without a)
-3.103 F F2(jobspec)4.843 E F0(ar)3.414 E .604
-(gument restricts operation to running)-.18 F 2.5(jobs. The)144 482.4 R
-(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
+/F4 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .334(is not sent to)2.584 F 1.19
+(the job if the shell recei)144 446.4 R -.15(ve)-.25 G 3.689(sa).15 G F4
+(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2(jobspec)
+5.429 E F0 1.189(is present, and neither the)3.999 F F1<ad61>3.689 E F0
+1.189(nor the)3.689 F F1<ad72>3.689 E F0 1.569(option is supplied, the)
+144 458.4 R F2(curr)4.069 E 1.569(ent job)-.37 F F0 1.569(is used.)4.069
+F 1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.57(is supplied, the)4.38 F
+F1<ad61>4.07 E F0 1.57(option means to)4.07 F(remo)144 470.4 Q .904 -.15
+(ve o)-.15 H 3.104(rm).15 G .604(ark all jobs; the)-3.104 F F1<ad72>
+3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.413
+E .603(gument restricts operation to running)-.18 F 2.5(jobs. The)144
+482.4 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
 (does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 499.2 Q
 F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-.395(Output the)144 511.2 R F2(ar)2.895 E(g)-.37 E F0 .395
+.394(Output the)144 511.2 R F2(ar)2.894 E(g)-.37 E F0 .394
 (s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895
-(wline. The)-.25 F .394(return status is al)2.895 F -.1(wa)-.1 G .394
-(ys 0.).1 F(If)5.394 E F1<ad6e>2.894 E F0 .548
+(wline. The)-.25 F .395(return status is al)2.895 F -.1(wa)-.1 G .395
+(ys 0.).1 F(If)5.395 E F1<ad6e>2.895 E F0 .549
 (is speci\214ed, the trailing ne)144 523.2 R .548(wline is suppressed.)
 -.25 F .548(If the)5.548 F F1<ad65>3.048 E F0 .548(option is gi)3.048 F
 -.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 535.2 Q
-.053(wing backslash-escaped characters is enabled.)-.25 F(The)5.053 E F1
-<ad45>2.553 E F0 .052(option disables the interpretation of these)2.552
-F 1.502(escape characters, e)144 547.2 R -.15(ve)-.25 G 4.002(no).15 G
-4.002(ns)-4.002 G 1.502(ystems where the)-4.002 F 4.002(ya)-.15 G 1.502
-(re interpreted by def)-4.002 F 4.003(ault. The)-.1 F F1(xpg_echo)4.003
-E F0(shell)4.003 E .009
+.052(wing backslash-escaped characters is enabled.)-.25 F(The)5.052 E F1
+<ad45>2.552 E F0 .053(option disables the interpretation of these)2.553
+F 1.503(escape characters, e)144 547.2 R -.15(ve)-.25 G 4.003(no).15 G
+4.003(ns)-4.003 G 1.502(ystems where the)-4.003 F 4.002(ya)-.15 G 1.502
+(re interpreted by def)-4.002 F 4.002(ault. The)-.1 F F1(xpg_echo)4.002
+E F0(shell)4.002 E .009
 (option may be used to dynamically determine whether or not)144 559.2 R
-F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters)
-.15 F .659(by def)144 571.2 R(ault.)-.1 E F1(echo)5.659 E F0 .659
-(does not interpret)3.159 F F1<adad>3.159 E F0 .659
-(to mean the end of options.)3.159 F F1(echo)5.66 E F0 .66
-(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 583.2 Q
+F1(echo)2.509 E F0 -.15(ex)2.51 G .01(pands these escape characters).15
+F .66(by def)144 571.2 R(ault.)-.1 E F1(echo)5.66 E F0 .66
+(does not interpret)3.16 F F1<adad>3.16 E F0 .659
+(to mean the end of options.)3.159 F F1(echo)5.659 E F0 .659
+(interprets the follo)3.159 F(wing)-.25 E(escape sequences:)144 583.2 Q
 F1(\\a)144 595.2 Q F0(alert \(bell\))28.22 E F1(\\b)144 607.2 Q F0
 (backspace)27.66 E F1(\\c)144 619.2 Q F0(suppress further output)28.78 E
 F1(\\e)144 631.2 Q F0(an escape character)28.78 E F1(\\f)144 643.2 Q F0
@@ -920,129 +932,130 @@ BP
 (xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
 -.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 100.8 Q F0([)2.5 E
 F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2
-(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278
+(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .277
 (Enable and disable b)144 112.8 R .278(uiltin shell commands.)-.2 F .278
 (Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
-(ws a disk command which has)-.25 F .833(the same name as a shell b)144
+(ws a disk command which has)-.25 F .834(the same name as a shell b)144
 124.8 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
-(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334
-(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 136.8
-R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0
-.989(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581
-(abled; otherwise,)144 148.8 R F2(names)4.082 E F0 1.582(are enabled.)
-4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F
-F1(test)4.082 E F0 1.582(binary found via the)4.082 F/F3 9/Times-Bold@0
-SF -.666(PA)4.082 G(TH)-.189 E F0 .081(instead of the shell b)144 160.8
-R .081(uiltin v)-.2 F .081(ersion, run)-.15 F/F4 10/Courier@0 SF .081
-(enable -n test)2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
-(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 172.8 S 1.524
-(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F
+(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.333
+(nt).15 G(hough)-3.333 E .989(the shell normally searches for b)144
+136.8 R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>
+3.489 E F0 .99(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F
+1.582(abled; otherwise,)144 148.8 R F2(names)4.082 E F0 1.582
+(are enabled.)4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582
+(xample, to use the)-4.232 F F1(test)4.082 E F0 1.582
+(binary found via the)4.082 F/F3 9/Times-Bold@0 SF -.666(PA)4.081 G(TH)
+-.189 E F0 .08(instead of the shell b)144 160.8 R .08(uiltin v)-.2 F .08
+(ersion, run)-.15 F/F4 10/Courier@0 SF .081(enable -n test)2.58 F F0
+5.081(.T)C(he)-5.081 E F1<ad66>2.581 E F0 .081
+(option means to load the ne)2.581 F(w)-.25 E -.2(bu)144 172.8 S 1.525
+(iltin command).2 F F2(name)4.385 E F0 1.524(from shared object)4.204 F
 F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524
 (ystems that support dynamic loading.)-4.024 F(The)144 184.8 Q F1<ad64>
-2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F
-.367(viously loaded with)-.25 F F1<ad66>2.866 E F0 5.366(.I)C 2.866(fn)
--5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi)
--.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 196.8 R F1<ad70>
-2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
+2.866 E F0 .366(option will delete a b)2.866 F .366(uiltin pre)-.2 F
+.366(viously loaded with)-.25 F F1<ad66>2.867 E F0 5.367(.I)C 2.867(fn)
+-5.367 G(o)-2.867 E F2(name)2.867 E F0(ar)2.867 E .367(guments are gi)
+-.18 F -.15(ve)-.25 G .367(n, or).15 F .399(if the)144 196.8 R F1<ad70>
+2.899 E F0 .399(option is supplied, a list of shell b)2.899 F .399
 (uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
-F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
+F .398(guments, the)-.18 F .098(list consists of all enabled shell b)144
 208.8 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
-(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F
-(If)5.098 E F1<ad61>2.598 E F0 1.916
+(is supplied, only disabled b)2.598 F .099(uiltins are printed.)-.2 F
+(If)5.099 E F1<ad61>2.599 E F0 1.917
 (is supplied, the list printed includes all b)144 220.8 R 1.916
-(uiltins, with an indication of whether or not each is)-.2 F 2.879
-(enabled. If)144 232.8 R F1<ad73>2.879 E F0 .379
-(is supplied, the output is restricted to the POSIX)2.879 F F2(special)
-2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F
-(alue)-.25 E .994(is 0 unless a)144 244.8 R F2(name)3.854 E F0 .994
-(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne)
--.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144
+(uiltins, with an indication of whether or not each is)-.2 F 2.878
+(enabled. If)144 232.8 R F1<ad73>2.878 E F0 .379
+(is supplied, the output is restricted to the POSIX)2.878 F F2(special)
+2.879 E F0 -.2(bu)2.879 G 2.879(iltins. The).2 F .379(return v)2.879 F
+(alue)-.25 E .995(is 0 unless a)144 244.8 R F2(name)3.855 E F0 .994
+(is not a shell b)3.675 F .994(uiltin or there is an error loading a ne)
+-.2 F 3.494(wb)-.25 G .994(uiltin from a shared)-3.694 F(object.)144
 256.8 Q F1 -2.3 -.15(ev a)108 273.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(The)144 285.6 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C
-.671(re read and concatenated together into a single command.)-3.171 F
-.67(This command is then read)5.67 F .495(and e)144 297.6 R -.15(xe)-.15
-.495(cuted by the shell, and its e).15 F .495
+E F0(...])2.5 E(The)144 285.6 Q F2(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671
+(re read and concatenated together into a single command.)-3.17 F .671
+(This command is then read)5.671 F .495(and e)144 297.6 R -.15(xe)-.15 G
+.495(cuted by the shell, and its e).15 F .495
 (xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
 (ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
 -2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 309.6 Q
 (guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
 (exec)108 326.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
 (name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
--.37 E F0(]])A(If)144 338.4 Q F2(command)3.006 E F0 .306
-(is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805
-(wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E
-(guments)-.37 E F0(become)3.075 E .176(the ar)144 350.4 R .176
+-.37 E F0(]])A(If)144 338.4 Q F2(command)3.005 E F0 .305
+(is speci\214ed, it replaces the shell.)3.575 F .305(No ne)5.305 F 2.805
+(wp)-.25 G .306(rocess is created.)-2.805 F(The)5.306 E F2(ar)3.136 E
+(guments)-.37 E F0(become)3.076 E .177(the ar)144 350.4 R .177
 (guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
 (he)-2.676 E F1<ad6c>2.676 E F0 .176
-(option is supplied, the shell places a dash at the be)2.676 F .177
-(ginning of)-.15 F .5(the zeroth ar)144 362.4 R .5(gument passed to)-.18
-F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999
-E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0
-.499(option causes)2.999 F F2(com-)3.199 E(mand)144 374.4 Q F0 .638
-(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(option is supplied, the shell places a dash at the be)2.676 F .176
+(ginning of)-.15 F .499(the zeroth ar)144 362.4 R .499(gument passed to)
+-.18 F F2(command)2.999 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2
+(lo)2.999 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.5 E F1<ad63>3 E F0
+.5(option causes)3 F F2(com-)3.2 E(mand)144 374.4 Q F0 .639(to be e)
+3.909 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
 (vironment. If)-.4 F F1<ad61>3.138 E F0 .638
-(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
-3.319 F 1.078(zeroth ar)144 386.4 R 1.077(gument to the e)-.18 F -.15
+(is supplied, the shell passes)3.138 F F2(name)3.498 E F0 .638(as the)
+3.318 F 1.077(zeroth ar)144 386.4 R 1.077(gument to the e)-.18 F -.15
 (xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
 1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
-.15 F(non-interacti)144 398.4 Q .617 -.15(ve s)-.25 H .317(hell e).15 F
-.317(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318
+.15 F(non-interacti)144 398.4 Q .618 -.15(ve s)-.25 H .318(hell e).15 F
+.318(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .317
 (is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505
 (ure. An)144 410.4 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
 (hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15
 (xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
-(is not speci\214ed,)3.275 F(an)144 422.4 Q 3.036(yr)-.15 G .536
-(edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
+(is not speci\214ed,)3.275 F(an)144 422.4 Q 3.037(yr)-.15 G .537
+(edirections tak)-3.037 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
 (ect in the current shell, and the return status is 0.).25 F .536
 (If there is a redirection)5.536 F(error)144 434.4 Q 2.5(,t)-.4 G
 (he return status is 1.)-2.5 E F1(exit)108 451.2 Q F0([)2.5 E F2(n)A F0
-6.29(]C)C .096(ause the shell to e)-6.29 F .096(xit with a status of)
--.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095
-(is omitted, the e)2.835 F .095(xit status is that of the last command)
+6.29(]C)C .095(ause the shell to e)-6.29 F .095(xit with a status of)
+-.15 F F2(n)2.595 E F0 5.095(.I)C(f)-5.095 E F2(n)2.955 E F0 .096
+(is omitted, the e)2.835 F .096(xit status is that of the last command)
 -.15 F -.15(exe)144 463.2 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5
 E F0(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E
 F1(export)108 480 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5
 E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 492 Q F0
-.256(The supplied)144 504 R F2(names)3.117 E F0 .257(are mark)3.027 F
+.257(The supplied)144 504 R F2(names)3.117 E F0 .257(are mark)3.027 F
 .257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
-(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627
-(commands. If)144 516 R(the)2.627 E F1<ad66>2.627 E F0 .127
+(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.626
+(commands. If)144 516 R(the)2.626 E F1<ad66>2.626 E F0 .127
 (option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F2(names)2.987 E
 F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F2(names)2.987 E
-F0 .127(are gi)2.897 F -.15(ve)-.25 G .126(n, or if the).15 F F1<ad70>
-144 528 Q F0 .659(option is supplied, a list of all names that are e)
-3.159 F .66(xported in this shell is printed.)-.15 F(The)5.66 E F1<ad6e>
-3.16 E F0(option)3.16 E 1.587(causes the e)144 540 R 1.587
+F0 .127(are gi)2.897 F -.15(ve)-.25 G .127(n, or if the).15 F F1<ad70>
+144 528 Q F0 .66(option is supplied, a list of all names that are e)3.16
+F .659(xported in this shell is printed.)-.15 F(The)5.659 E F1<ad6e>
+3.159 E F0(option)3.159 E 1.586(causes the e)144 540 R 1.586
 (xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
 (rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
-1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 552 Q F2
-(wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v)-.25
+1.587(ariable name is follo)-4.336 F 1.587(wed by)-.25 F(=)144 552 Q F2
+(wor)A(d)-.37 E F0 2.804(,t)C .304(he v)-2.804 F .304(alue of the v)-.25
 F .304(ariable is set to)-.25 F F2(wor)2.804 E(d)-.37 E F0(.)A F1
-(export)5.304 E F0 .304(returns an e)2.804 F .304
-(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .294
+(export)5.304 E F0 .304(returns an e)2.804 F .303
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .293
 (option is encountered, one of the)144 564 R F2(names)2.793 E F0 .293
 (is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
-F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36 576
+F F1<ad66>2.793 E F0 .294(is supplied with a)2.793 F F2(name)144.36 576
 Q F0(that is not a function.)2.68 E F1(fc)108 592.8 Q F0([)2.5 E F1
 <ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
 <8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
 604.8 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
-(cmd)-2.5 E F0(])A .477(Fix Command.)144 616.8 R .478
-(In the \214rst form, a range of commands from)5.477 F F2<8c72>4.888 E
-(st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .478
-(is selected from the his-)3.658 F .882(tory list.)144 628.8 R F2 -.45
-(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F2(last)3.472 E F0 .882
+(cmd)-2.5 E F0(])A .478(Fix Command.)144 616.8 R .478
+(In the \214rst form, a range of commands from)5.478 F F2<8c72>4.888 E
+(st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .477
+(is selected from the his-)3.658 F .881(tory list.)144 628.8 R F2 -.45
+(Fi)5.881 G -.1(rs).45 G(t).1 E F0(and)4.061 E F2(last)3.471 E F0 .882
 (may be speci\214ed as a string \(to locate the last command be)4.062 F
-.881(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
+.882(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
 640.8 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
--.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .797(umber is used as an)
-.15 F(of)144 652.8 Q .277(fset from the current command number\).)-.25 F
-(If)5.277 E F2(last)2.867 E F0 .276
-(is not speci\214ed it is set to the current command)3.457 F .092
+-.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .796(umber is used as an)
+.15 F(of)144 652.8 Q .276(fset from the current command number\).)-.25 F
+(If)5.276 E F2(last)2.866 E F0 .277
+(is not speci\214ed it is set to the current command)3.456 F .093
 (for listing \(so that)144 664.8 R F4 .092(fc \255l \25510)2.592 F F0
 .092(prints the last 10 commands\) and to)2.592 F F2<8c72>4.502 E(st)-.1
-E F0 2.592(otherwise. If)3.272 F F2<8c72>4.502 E(st)-.1 E F0 .093
-(is not)3.273 F(speci\214ed it is set to the pre)144 676.8 Q
+E F0 2.592(otherwise. If)3.272 F F2<8c72>4.502 E(st)-.1 E F0 .092
+(is not)3.272 F(speci\214ed it is set to the pre)144 676.8 Q
 (vious command for editing and \25516 for listing.)-.25 E(The)144 700.8
 Q F1<ad6e>2.522 E F0 .022
 (option suppresses the command numbers when listing.)2.522 F(The)5.022 E
@@ -1050,10 +1063,10 @@ F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
 (rses the order of).15 F .438(the commands.)144 712.8 R .438(If the)
 5.438 F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
 (n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.335(the editor gi)144 724.8 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
-F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
+.334(the editor gi)144 724.8 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E
+F2(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835
 (do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
-F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+F(If)5.335 E F2(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G
 (n,).15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(7)203.725 E 0 Cg
 EP
 %%Page: 8 8
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .63(the v)
-144 84 R .63(alue of the)-.25 F/F1 9/Times-Bold@0 SF(FCEDIT)3.13 E F0
--.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25 F
-F1(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F1(FCEDIT)3.131 E F0 .631
-(is not set.)2.881 F .631(If nei-)5.631 F 1.884(ther v)144 96 R 1.884
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .631(the v)
+144 84 R .631(alue of the)-.25 F/F1 9/Times-Bold@0 SF(FCEDIT)3.131 E F0
+-.25(va)2.881 G .631(riable is used, and the v).25 F .631(alue of)-.25 F
+F1(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F1(FCEDIT)3.13 E F0 .63
+(is not set.)2.88 F .63(If nei-)5.63 F 1.884(ther v)144 96 R 1.884
 (ariable is set, is used.)-.25 F 1.884
 (When editing is complete, the edited commands are echoed and)6.884 F
--.15(exe)144 108 S(cuted.).15 E .039(In the second form,)144 132 R/F2 10
-/Times-Italic@0 SF(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15
-G .039(cuted after each instance of).15 F F2(pat)2.54 E F0 .04
-(is replaced by)2.54 F F2 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)
+-.15(exe)144 108 S(cuted.).15 E .04(In the second form,)144 132 R/F2 10
+/Times-Italic@0 SF(command)2.54 E F0 .04(is re-e)2.54 F -.15(xe)-.15 G
+.039(cuted after each instance of).15 F F2(pat)2.539 E F0 .039
+(is replaced by)2.539 F F2 -.37(re)2.539 G(p).37 E F0 5.039(.A)C(useful)
 -2.5 E .406(alias to use with this is)144 144 R/F3 10/Courier@0 SF .406
 (r='fc \255s')2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)
 -2.906 F F3 6.406(rc)2.906 G(c)-6.406 E F0 .406
-(runs the last command be)2.906 F .406(ginning with)-.15 F F3(cc)144 156
+(runs the last command be)2.906 F .407(ginning with)-.15 F F3(cc)144 156
 Q F0(and typing)2.5 E F3(r)2.5 E F0(re-e)2.5 E -.15(xe)-.15 G
 (cutes the last command.).15 E .142
 (If the \214rst form is used, the return v)144 180 R .142
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
 (lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .455(specify history lines out of range.)144 192 R
+E F2(last)2.732 E F0 .454(specify history lines out of range.)144 192 R
 .454(If the)5.454 F/F4 10/Times-Bold@0 SF<ad65>2.954 E F0 .454
-(option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454
-(alue of the)-.25 F .787(last command e)144 204 R -.15(xe)-.15 G .787
-(cuted or f).15 F .788
+(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
+(alue of the)-.25 F .788(last command e)144 204 R -.15(xe)-.15 G .788
+(cuted or f).15 F .787
 (ailure if an error occurs with the temporary \214le of commands.)-.1 F
-.788(If the)5.788 F 1.136
+.787(If the)5.787 F 1.135
 (second form is used, the return status is that of the command re-e)144
-216 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135
-(does not)4.405 F(specify a v)144 228 Q
+216 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F2(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 228 Q
 (alid history line, in which case)-.25 E F4(fc)2.5 E F0(returns f)2.5 E
 (ailure.)-.1 E F4(fg)108 244.8 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
-144 256.8 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413
+144 256.8 Q F2(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
 (ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
 (he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
-1.414(is not present, the)4.223 F(shell')144 268.8 Q 3.117(sn)-.55 G
-.617(otion of the)-3.117 F F2(curr)3.117 E .617(ent job)-.37 F F0 .617
-(is used.)3.117 F .617(The return v)5.617 F .616
+1.413(is not present, the)4.223 F(shell')144 268.8 Q 3.116(sn)-.55 G
+.616(otion of the)-3.116 F F2(curr)3.116 E .616(ent job)-.37 F F0 .617
+(is used.)3.116 F .617(The return v)5.617 F .617
 (alue is that of the command placed into the)-.25 F(fore)144 280.8 Q
-.362(ground, or f)-.15 F .362
-(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .363
+.363(ground, or f)-.15 F .363
+(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
 (hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 292.8 Q
-F0 .004(does not specify a v)2.815 F .004(alid job or)-.25 F F2(jobspec)
+F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F2(jobspec)
 4.244 E F0 .004(speci\214es a job that w)2.814 F .004
 (as started without job control.)-.1 F F4(getopts)108 309.6 Q F2
 (optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F4(getopts)144
 321.6 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.293 F F2
-(optstring)6.023 E F0 .793(contains the option)3.513 F .15
-(characters to be recognized; if a character is follo)144 333.6 R .149
-(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
--.15(ve a)-.2 H(n).15 E(ar)144 345.6 Q .578
-(gument, which should be separated from it by white space.)-.18 F .579
+(is used by shell procedures to parse positional parameters.)3.294 F F2
+(optstring)6.023 E F0 .793(contains the option)3.513 F .149
+(characters to be recognized; if a character is follo)144 333.6 R .15
+(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45
+-.15(ve a)-.2 H(n).15 E(ar)144 345.6 Q .579
+(gument, which should be separated from it by white space.)-.18 F .578
 (The colon and question mark char)5.579 F(-)-.2 E 1.665
 (acters may not be used as option characters.)144 357.6 R 1.665
 (Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F4(getopts)
-4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
-(option in the shell v)144 369.6 R(ariable)-.25 E F2(name)3.296 E F0
-3.296(,i).18 G(nitializing)-3.296 E F2(name)3.657 E F0 .797
-(if it does not e)3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G
-3.297(ft)-3.297 G .797(he ne)-3.297 F(xt)-.15 E(ar)144 381.6 Q .085
+4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797
+(option in the shell v)144 369.6 R(ariable)-.25 E F2(name)3.297 E F0
+3.297(,i).18 G(nitializing)-3.297 E F2(name)3.657 E F0 .797
+(if it does not e)3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G
+3.296(ft)-3.296 G .796(he ne)-3.296 F(xt)-.15 E(ar)144 381.6 Q .085
 (gument to be processed into the v)-.18 F(ariable)-.25 E F1(OPTIND)2.585
 E/F5 9/Times-Roman@0 SF(.)A F1(OPTIND)4.585 E F0 .085
-(is initialized to 1 each time the shell)2.335 F .845
+(is initialized to 1 each time the shell)2.335 F .846
 (or a shell script is in)144 393.6 R -.2(vo)-.4 G -.1(ke).2 G 3.345
 (d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F4
-(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804
-(into the v)144 405.6 R(ariable)-.25 E F1(OPT)3.304 E(ARG)-.81 E F5(.)A
-F0 .803(The shell does not reset)5.304 F F1(OPTIND)3.303 E F0 .803
-(automatically; it must be manually)3.053 F .293
+(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E .803
+(into the v)144 405.6 R(ariable)-.25 E F1(OPT)3.303 E(ARG)-.81 E F5(.)A
+F0 .803(The shell does not reset)5.303 F F1(OPTIND)3.303 E F0 .804
+(automatically; it must be manually)3.054 F .294
 (reset between multiple calls to)144 417.6 R F4(getopts)2.793 E F0 .293
 (within the same shell in)2.793 F -.2(vo)-.4 G .293(cation if a ne).2 F
-2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 429.6
-Q 2.044(When the end of options is encountered,)144 453.6 R F4(getopts)
-4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043
+2.793(ws)-.25 G .293(et of parameters)-2.793 F(is to be used.)144 429.6
+Q 2.043(When the end of options is encountered,)144 453.6 R F4(getopts)
+4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.044
 (alue greater than zero.)-.25 F F4(OPTIND)144 465.6 Q F0
 (is set to the inde)2.5 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
 (he \214rst non-option ar)-2.5 E(gument, and)-.18 E F4(name)2.5 E F0
-(is set to ?.)2.5 E F4(getopts)144 489.6 Q F0 2.392
-(normally parses the positional parameters, b)4.892 F 2.392
-(ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
-(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F4(getopts)144
-501.6 Q F0(parses those instead.)2.5 E F4(getopts)144 525.6 Q F0 1.166
-(can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
-1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.165
-(is a colon,)3.885 F F2(silent)4.005 E F0(error)4.345 E 1.263
+(is set to ?.)2.5 E F4(getopts)144 489.6 Q F0 2.393
+(normally parses the positional parameters, b)4.893 F 2.392
+(ut if more ar)-.2 F 2.392(guments are gi)-.18 F -.15(ve)-.25 G 4.892
+(ni).15 G(n)-4.892 E F2(ar)4.892 E(gs)-.37 E F0(,).27 E F4(getopts)144
+501.6 Q F0(parses those instead.)2.5 E F4(getopts)144 525.6 Q F0 1.165
+(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
+1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.166
+(is a colon,)3.886 F F2(silent)4.006 E F0(error)4.346 E 1.264
 (reporting is used.)144 537.6 R 1.263
 (In normal operation diagnostic messages are printed when in)6.263 F
--.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144
-549.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F
+-.25(va)-.4 G 1.263(lid options or).25 F .393(missing option ar)144
+549.6 R .393(guments are encountered.)-.18 F .394(If the v)5.394 F
 (ariable)-.25 E F1(OPTERR)2.894 E F0 .394
 (is set to 0, no error messages)2.644 F(will be displayed, e)144 561.6 Q
 -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
-F2(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 585.6 R
--.25(va)-.4 G .666(lid option is seen,).25 F F4(getopts)3.166 E F0 .667
-(places ? into)3.167 F F2(name)3.527 E F0 .667
-(and, if not silent, prints an error message)3.347 F .4(and unsets)144
-597.6 R F1(OPT)2.9 E(ARG)-.81 E F5(.)A F0(If)4.899 E F4(getopts)2.899 E
-F0 .399(is silent, the option character found is placed in)2.899 F F1
-(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F
-(diagnostic message is printed.)144 609.6 Q 1.241(If a required ar)144
-633.6 R 1.241(gument is not found, and)-.18 F F4(getopts)3.741 E F0
-1.241(is not silent, a question mark \()3.741 F F4(?).833 E F0 3.742
-(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F F2(name)144 645.6
-Q F0(,).18 E F1(OPT)2.735 E(ARG)-.81 E F0 .234
-(is unset, and a diagnostic message is printed.)2.485 F(If)5.234 E F4
-(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F4(:).833 E
+F2(optstring)2.73 E F0(is not a colon.)2.72 E .667(If an in)144 585.6 R
+-.25(va)-.4 G .667(lid option is seen,).25 F F4(getopts)3.167 E F0 .667
+(places ? into)3.167 F F2(name)3.527 E F0 .666
+(and, if not silent, prints an error message)3.347 F .399(and unsets)144
+597.6 R F1(OPT)2.899 E(ARG)-.81 E F5(.)A F0(If)4.899 E F4(getopts)2.899
+F0 .399(is silent, the option character found is placed in)2.899 F F1
+(OPT)2.899 E(ARG)-.81 E F0 .4(and no)2.65 F
+(diagnostic message is printed.)144 609.6 Q 1.242(If a required ar)144
+633.6 R 1.242(gument is not found, and)-.18 F F4(getopts)3.741 E F0
+1.241(is not silent, a question mark \()3.741 F F4(?).833 E F0 3.741
+(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F F2(name)144 645.6
+Q F0(,).18 E F1(OPT)2.734 E(ARG)-.81 E F0 .234
+(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F4
+(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F4(:).833 E
 F0(\)).833 E(is placed in)144 657.6 Q F2(name)2.86 E F0(and)2.68 E F1
 (OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F4
 (getopts)144 681.6 Q F0 .902
 (returns true if an option, speci\214ed or unspeci\214ed, is found.)
-3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
+3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
 (options is encountered or an error occurs.)144 693.6 Q(GNU Bash-4.0)72
 768 Q(2004 Apr 20)148.735 E(8)203.725 E 0 Cg EP
 %%Page: 9 9
@@ -1183,42 +1196,43 @@ BP
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
 /Times-Bold@0 SF(hash)108 84 Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1
 <ad70>-2.5 E/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0 2.5(][)C F1
-(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A -.15(Fo)144 96 S 3.555
-(re).15 G(ach)-3.555 E F2(name)3.555 E F0 3.555(,t).18 G 1.054(he full \
+(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A -.15(Fo)144 96 S 3.554
+(re).15 G(ach)-3.554 E F2(name)3.554 E F0 3.554(,t).18 G 1.054(he full \
 \214le name of the command is determined by searching the directories i\
-n)-3.555 F F1($P)144 108 Q -.95(AT)-.74 G(H).95 E F0 .349
-(and remembered.)2.849 F .349(If the)5.349 F F1<ad70>2.849 E F0 .349
+n)-3.554 F F1($P)144 108 Q -.95(AT)-.74 G(H).95 E F0 .35
+(and remembered.)2.85 F .35(If the)5.35 F F1<ad70>2.85 E F0 .349
 (option is supplied, no path search is performed, and)2.849 F F2
-(\214lename)4.76 E F0 .452
+(\214lename)4.759 E F0 .452
 (is used as the full \214le name of the command.)144 120 R(The)5.452 E
-F1<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .452
-(get all remem-)-.18 F .592(bered locations.)144 132 R(The)5.592 E F1
-<ad64>3.092 E F0 .593(option causes the shell to for)3.092 F .593
-(get the remembered location of each)-.18 F F2(name)3.093 E F0(.)A .021
-(If the)144 144 R F1<ad74>2.521 E F0 .021
-(option is supplied, the full pathname to which each)2.521 F F2(name)
-2.52 E F0 .02(corresponds is printed.)2.52 F .02(If multi-)5.02 F(ple)
-144 156 Q F2(name)3.703 E F0(ar)3.703 E 1.203(guments are supplied with)
--.18 F F1<ad74>3.703 E F0 3.703(,t)C(he)-3.703 E F2(name)3.703 E F0
-1.204(is printed before the hashed full pathname.)3.703 F(The)144 168 Q
-F1<ad6c>3.216 E F0 .715(option causes output to be displayed in a forma\
-t that may be reused as input.)3.216 F .715(If no ar)5.715 F(gu-)-.18 E
-1.183(ments are gi)144 180 R -.15(ve)-.25 G 1.183(n, or if only).15 F F1
-<ad6c>3.683 E F0 1.184
+F1<ad72>2.952 E F0 .452(option causes the shell to for)2.952 F .453
+(get all remem-)-.18 F .593(bered locations.)144 132 R(The)5.593 E F1
+<ad64>3.093 E F0 .593(option causes the shell to for)3.093 F .592
+(get the remembered location of each)-.18 F F2(name)3.092 E F0(.)A .02
+(If the)144 144 R F1<ad74>2.52 E F0 .02
+(option is supplied, the full pathname to which each)2.52 F F2(name)
+2.521 E F0 .021(corresponds is printed.)2.521 F .021(If multi-)5.021 F
+(ple)144 156 Q F2(name)3.704 E F0(ar)3.704 E 1.204
+(guments are supplied with)-.18 F F1<ad74>3.703 E F0 3.703(,t)C(he)
+-3.703 E F2(name)3.703 E F0 1.203
+(is printed before the hashed full pathname.)3.703 F(The)144 168 Q F1
+<ad6c>3.215 E F0 .715(option causes output to be displayed in a format \
+that may be reused as input.)3.215 F .716(If no ar)5.716 F(gu-)-.18 E
+1.184(ments are gi)144 180 R -.15(ve)-.25 G 1.184(n, or if only).15 F F1
+<ad6c>3.684 E F0 1.183
 (is supplied, information about remembered commands is printed.)3.684 F
 (The return status is true unless a)144 192 Q F2(name)2.86 E F0
 (is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
 E F1(help)108 208.8 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern)
--2.5 E F0(])A .867(Display helpful information about b)144 220.8 R .867
-(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .866
-(is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 G
-3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
-232.8 R F2(pattern)2.806 E F0 2.807(;o).24 G .307
-(therwise help for all the b)-2.807 F .307
+-2.5 E F0(])A .866(Display helpful information about b)144 220.8 R .867
+(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .867
+(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25 G
+3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
+232.8 R F2(pattern)2.807 E F0 2.807(;o).24 G .307
+(therwise help for all the b)-2.807 F .306
 (uiltins and shell control struc-)-.2 F(tures is printed.)144 244.8 Q F1
 <ad64>144 256.8 Q F0(Display a short description of each)24.74 E F2
-(pattern)2.5 E F1(-m)146.5 268.8 Q F0(Display the description of each)
-21.84 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
+(pattern)2.5 E F1<ad6d>144 268.8 Q F0(Display the description of each)
+21.97 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
 -2.5 E F1<ad73>144 280.8 Q F0
 (Display only a short usage synopsis for each)26.41 E F2(pattern)2.5 E
 F0(The return status is 0 unless no command matches)108 292.8 Q F2
@@ -1230,16 +1244,16 @@ F1(history \255p)108 357.6 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5
 -.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
 381.6 S .752
 (th no options, display the command history list with line numbers.).4 F
-.752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2
-G 1.23(been modi\214ed.)144 393.6 R 1.23(An ar)6.23 F 1.23(gument of)
--.18 F F2(n)4.09 E F0 1.231(lists only the last)3.97 F F2(n)4.091 E F0
-3.731(lines. If)3.971 F 1.231(the shell v)3.731 F(ariable)-.25 E F1
-(HISTTIME-)3.731 E(FORMA)144 405.6 Q(T)-.95 E F0 .25
-(is set and not null, it is used as a format string for)2.75 F F2
-(strftime)2.749 E F0 .249(\(3\) to display the time stamp)B .378
-(associated with each displayed history entry)144 417.6 R 5.378(.N)-.65
-G 2.878(oi)-5.378 G(nterv)-2.878 E .379
-(ening blank is printed between the format-)-.15 F .815
+.752(Lines listed with a)5.752 F F1(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
+G 1.231(been modi\214ed.)144 393.6 R 1.231(An ar)6.231 F 1.231
+(gument of)-.18 F F2(n)4.091 E F0 1.231(lists only the last)3.971 F F2
+(n)4.091 E F0 3.73(lines. If)3.97 F 1.23(the shell v)3.73 F(ariable)-.25
+E F1(HISTTIME-)3.73 E(FORMA)144 405.6 Q(T)-.95 E F0 .249
+(is set and not null, it is used as a format string for)2.749 F F2
+(strftime)2.75 E F0 .25(\(3\) to display the time stamp)B .379
+(associated with each displayed history entry)144 417.6 R 5.379(.N)-.65
+G 2.878(oi)-5.379 G(nterv)-2.878 E .378
+(ening blank is printed between the format-)-.15 F .814
 (ted time stamp and the history line.)144 429.6 R(If)5.814 E F2
 (\214lename)3.314 E F0 .814
 (is supplied, it is used as the name of the history)3.314 F
@@ -1248,47 +1262,48 @@ G 2.878(oi)-5.378 G(nterv)-2.878 E .379
 (ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad63>144 453.6 Q F0
 (Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
 465.6 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
-180 477.6 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 489.6 Q F0 .598
-(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598
-(istory lines \(history lines entered since the be)-3.098 F .599
+180 477.6 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 489.6 Q F0 .599
+(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.099('h)-.74 G .598
+(istory lines \(history lines entered since the be)-3.099 F .598
 (ginning of the current)-.15 F F1(bash)180 501.6 Q F0
 (session\) to the history \214le.)2.5 E F1<ad6e>144 513.6 Q F0 .854(Rea\
 d the history lines not already read from the history \214le into the c\
-urrent history list.)24.74 F .772
+urrent history list.)24.74 F .773
 (These are lines appended to the history \214le since the be)180 525.6 R
-.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
+.772(ginning of the current)-.15 F F1(bash)3.272 E F0(ses-)3.272 E
 (sion.)180 537.6 Q F1<ad72>144 549.6 Q F0(Read the contents of the hist\
 ory \214le and use them as the current history)25.86 E(.)-.65 E F1<ad77>
 144 561.6 Q F0(Write the current history to the history \214le, o)23.08
 E -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
-(ontents.)-2.5 E F1<ad70>144 573.6 Q F0 .626
+(ontents.)-2.5 E F1<ad70>144 573.6 Q F0 .625
 (Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar)
-3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
+3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F
 2.975(output. Does)180 585.6 R .475
 (not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
 2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
 (normal history e)180 597.6 Q(xpansion.)-.15 E F1<ad73>144 609.6 Q F0
-.363(Store the)26.41 F F2(ar)3.193 E(gs)-.37 E F0 .363
-(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
+.362(Store the)26.41 F F2(ar)3.192 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363
 (he last command in the history list is)-5.363 F(remo)180 621.6 Q -.15
 (ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
 (are added.)2.77 E .28(If the)144 638.4 R F1(HISTTIMEFORMA)2.78 E(T)-.95
 E F0 .28
 (is set, the time stamp information associated with each history entry)
-2.78 F .54(is written to the history \214le, mark)144 650.4 R .539
-(ed with the history comment character)-.1 F 5.539(.W)-.55 G .539
-(hen the history \214le is)-5.539 F 1.778(read, lines be)144 662.4 R
-1.778(ginning with the history comment character follo)-.15 F 1.779
+2.78 F .539(is written to the history \214le, mark)144 650.4 R .539
+(ed with the history comment character)-.1 F 5.54(.W)-.55 G .54
+(hen the history \214le is)-5.54 F 1.779(read, lines be)144 662.4 R
+1.779(ginning with the history comment character follo)-.15 F 1.778
 (wed immediately by a digit are)-.25 F 1.424
 (interpreted as timestamps for the pre)144 674.4 R 1.424
 (vious history line.)-.25 F 1.424(The return v)6.424 F 1.424
 (alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
 ncountered, an error occurs while reading or writing the history \214le\
-, an in)144 686.4 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is)
-3 E(supplied as an ar)144 698.4 Q(gument to)-.18 E F1<ad64>2.5 E F0 2.5
-(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15
-E(gument to)-.18 E F1<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E(GNU Bash-4.0)
-72 768 Q(2004 Apr 20)148.735 E(9)203.725 E 0 Cg EP
+, an in)144 686.4 R -.25(va)-.4 G(lid).25 E F2(of)2.999 E(fset)-.18 E F0
+(is)2.999 E(supplied as an ar)144 698.4 Q(gument to)-.18 E F1<ad64>2.5 E
+F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E
+(xpansion supplied as an ar)-.15 E(gument to)-.18 E F1<ad70>2.5 E F0 -.1
+(fa)2.5 G(ils.).1 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(9)
+203.725 E 0 Cg EP
 %%Page: 10 10
 %%BeginPageSetup
 BP
@@ -1303,20 +1318,20 @@ BP
 (wing meanings:)-.25 E F1<ad6c>144 120 Q F0
 (List process IDs in addition to the normal information.)27.52 E F1
 <ad70>144 132 Q F0(List only the process ID of the job')24.74 E 2.5(sp)
--.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad6e>144 144 Q F0 .194
+-.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad6e>144 144 Q F0 .193
 (Display information only about jobs that ha)24.74 F .494 -.15(ve c)-.2
-H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F
+H .194(hanged status since the user w).15 F .194(as last noti-)-.1 F
 (\214ed of their status.)180 156 Q F1<ad72>144 168 Q F0
 (Restrict output to running jobs.)25.86 E F1<ad73>144 180 Q F0
 (Restrict output to stopped jobs.)26.41 E(If)144 196.8 Q F2(jobspec)
-4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313
-(n, output is restricted to information about that job).15 F 5.314(.T)
--.4 G .314(he return status is 0 unless)-5.314 F(an in)144 208.8 Q -.25
+4.554 E F0 .314(is gi)3.124 F -.15(ve)-.25 G .314
+(n, output is restricted to information about that job).15 F 5.313(.T)
+-.4 G .313(he return status is 0 unless)-5.313 F(an in)144 208.8 Q -.25
 (va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 225.6 R F1
-<ad78>2.895 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
+E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 225.6 R F1
+<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
 .394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
-3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .394
+3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .395
 (with the corre-)3.164 F(sponding process group ID, and e)144 237.6 Q
 -.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)
 2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
@@ -1324,54 +1339,54 @@ F1(kill)108 254.4 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
 <ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A F0 2.5
 (][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1
 (kill \255l)108 266.4 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5
-G(it_status).2 E F0(])A .119(Send the signal named by)144 278.4 R F2
-(sigspec)2.959 E F0(or)2.929 E F2(signum)2.959 E F0 .119
-(to the processes named by)2.939 F F2(pid)3.87 E F0(or)3.39 E F2
-(jobspec)2.62 E F0(.).31 E F2(sigspec)5.46 E F0(is)2.93 E .319
-(either a case-insensiti)144 290.4 R .619 -.15(ve s)-.25 H .319
-(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.819 E F0 .318
-(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318
-(pre\214x\) or a signal)2.568 F(number;)144 302.4 Q F2(signum)4.188 E F0
-1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
+G(it_status).2 E F0(])A .12(Send the signal named by)144 278.4 R F2
+(sigspec)2.96 E F0(or)2.93 E F2(signum)2.96 E F0 .119
+(to the processes named by)2.939 F F2(pid)3.869 E F0(or)3.389 E F2
+(jobspec)2.619 E F0(.).31 E F2(sigspec)5.459 E F0(is)2.929 E .318
+(either a case-insensiti)144 290.4 R .618 -.15(ve s)-.25 H .318
+(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.818 E F0 .319
+(\(with or without the)2.569 F F3(SIG)2.819 E F0 .319
+(pre\214x\) or a signal)2.569 F(number;)144 302.4 Q F2(signum)4.189 E F0
+1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
 4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
-1.349(is assumed.)3.599 F(An)6.349 E(ar)144 314.4 Q .523(gument of)-.18
+1.348(is assumed.)3.599 F(An)6.348 E(ar)144 314.4 Q .522(gument of)-.18
 F F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)
 5.523 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when)
 .18 F F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523
 (n, the names).15 F .28(of the signals corresponding to the ar)144 326.4
 R .28(guments are listed, and the return status is 0.)-.18 F(The)5.28 E
-F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 338.4 Q .378(gument to)-.18 F
-F1<ad6c>2.878 E F0 .378
-(is a number specifying either a signal number or the e)2.878 F .377
-(xit status of a process termi-)-.15 F .593(nated by a signal.)144 350.4
+F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 338.4 Q .377(gument to)-.18 F
+F1<ad6c>2.877 E F0 .378
+(is a number specifying either a signal number or the e)2.877 F .378
+(xit status of a process termi-)-.15 F .594(nated by a signal.)144 350.4
 R F1(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
-.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F
+.593(as successfully sent, or f)-.1 F .593(alse if an error)-.1 F
 (occurs or an in)144 362.4 Q -.25(va)-.4 G(lid option is encountered.)
 .25 E F1(let)108 379.2 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(Each)144 391.2 Q F2(ar)3.965 E(g)-.37 E F0 1.135
-(is an arithmetic e)3.855 F 1.134(xpression to be e)-.15 F -.25(va)-.25
-G 1.134(luated \(see).25 F F3 1.134(ARITHMETIC EV)3.634 F(ALU)-1.215 E
--.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.134(If the)
-5.634 F(last)144 403.2 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
+E F0(...])2.5 E(Each)144 391.2 Q F2(ar)3.964 E(g)-.37 E F0 1.134
+(is an arithmetic e)3.854 F 1.134(xpression to be e)-.15 F -.25(va)-.25
+G 1.135(luated \(see).25 F F3 1.135(ARITHMETIC EV)3.635 F(ALU)-1.215 E
+-.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.135(If the)
+5.635 F(last)144 403.2 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
 (luates to 0,).25 E F1(let)2.5 E F0(returns 1; 0 is returned otherwise.)
 2.5 E F1(local)108 420 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(name)-2.5
 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 432 S 2.56(re)
 .15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06(ariable named)
 -.25 F F2(name)2.92 E F0 .06(is created, and assigned)2.74 F F2(value)
 2.56 E F0 5.06(.T).18 G(he)-5.06 E F2(option)2.56 E F0 .06(can be)2.56 F
-(an)144 444 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653
-(he options accepted by)-3.153 F F1(declar)3.153 E(e)-.18 E F0 5.652(.W)
-C(hen)-5.652 E F1(local)3.152 E F0 .652
+(an)144 444 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652
+(he options accepted by)-3.152 F F1(declar)3.152 E(e)-.18 E F0 5.652(.W)
+C(hen)-5.652 E F1(local)3.152 E F0 .653
 (is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-456 Q F2(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861
+456 Q F2(name)3.721 E F0 .861(to ha)3.541 F 1.161 -.15(ve a v)-.2 H .861
 (isible scope restricted to that function and its children.).15 F -.4
-(Wi)5.861 G .861(th no operands,).4 F F1(local)144 468 Q F0 1.165
-(writes a list of local v)3.665 F 1.165
+(Wi)5.86 G .86(th no operands,).4 F F1(local)144 468 Q F0 1.164
+(writes a list of local v)3.664 F 1.165
 (ariables to the standard output.)-.25 F 1.165(It is an error to use)
-6.165 F F1(local)3.664 E F0 1.164(when not)3.664 F .232
-(within a function.)144 480 R .233(The return status is 0 unless)5.232 F
+6.165 F F1(local)3.665 E F0 1.165(when not)3.665 F .233
+(within a function.)144 480 R .233(The return status is 0 unless)5.233 F
 F1(local)2.733 E F0 .233(is used outside a function, an in)2.733 F -.25
-(va)-.4 G(lid).25 E F2(name)3.093 E F0(is)2.913 E(supplied, or)144 492 Q
+(va)-.4 G(lid).25 E F2(name)3.092 E F0(is)2.912 E(supplied, or)144 492 Q
 F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108
 508.8 Q F0(Exit a login shell.)9.33 E F1(map\214le)108 525.6 Q F0([)2.5
 E F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0
@@ -1386,11 +1401,11 @@ F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2
 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A 1.006
 (Read lines from the standard input into array v)144 549.6 R(ariable)
 -.25 E F2(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G
-1.006(rom \214le descriptor)-3.506 F F2(fd)3.506 E F0 1.005(if the)3.506
-F F1<ad75>3.505 E F0 1.086(option is supplied.)144 561.6 R 1.086(The v)
-6.086 F(ariable)-.25 E F1(MAPFILE)3.586 E F0 1.086(is the def)3.586 F
-(ault)-.1 E F2(arr)3.587 E(ay)-.15 E F0 6.087(.O)C 1.087
-(ptions, if supplied, ha)-6.087 F 1.387 -.15(ve t)-.2 H(he).15 E(follo)
+1.006(rom \214le descriptor)-3.506 F F2(fd)3.506 E F0 1.006(if the)3.506
+F F1<ad75>3.506 E F0 1.087(option is supplied.)144 561.6 R 1.087(The v)
+6.087 F(ariable)-.25 E F1(MAPFILE)3.587 E F0 1.086(is the def)3.587 F
+(ault)-.1 E F2(arr)3.586 E(ay)-.15 E F0 6.086(.O)C 1.086
+(ptions, if supplied, ha)-6.086 F 1.386 -.15(ve t)-.2 H(he).15 E(follo)
 144 573.6 Q(wing meanings:)-.25 E F1<ad6e>144 585.6 Q F0(Cop)24.74 E 2.5
 (ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18
 F F2(count)2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 597.6
@@ -1406,7 +1421,7 @@ Q F0(Discard the \214rst)26.41 E F2(count)2.5 E F0(lines read.)2.5 E F1
 2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
 (option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 657.6
 Q F0(Specify the number of lines read between each call to)25.86 E F2
-(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 674.4 Q F1<ad43>2.968 E F0 .467
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 674.4 Q F1<ad43>2.967 E F0 .467
 (is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
 (he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
 (callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
@@ -1426,19 +1441,19 @@ BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(map\214le)144 84 Q F0 .996
-(returns successfully unless an in)3.496 F -.25(va)-.4 G .996
-(lid option or option ar).25 F .995(gument is supplied, or)-.18 F/F2 10
-/Times-Italic@0 SF(arr)3.495 E(ay)-.15 E F0(is)3.495 E(in)144 96 Q -.25
+/Times-Bold@0 SF(map\214le)144 84 Q F0 .995
+(returns successfully unless an in)3.495 F -.25(va)-.4 G .996
+(lid option or option ar).25 F .996(gument is supplied, or)-.18 F/F2 10
+/Times-Italic@0 SF(arr)3.496 E(ay)-.15 E F0(is)3.496 E(in)144 96 Q -.25
 (va)-.4 G(lid or unassignable.).25 E F1(popd)108 112.8 Q F0<5bad>2.5 E
 F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C<ad>-2.5 E F2(n)A F0(])A
-(Remo)144 124.8 Q -.15(ve)-.15 G 2.799(se).15 G .299
-(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G .299(th no ar)
-.4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .3
-(he top directory from the)-2.799 F 1.479(stack, and performs a)144
-136.8 R F1(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
-(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478
-(uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15
+(Remo)144 124.8 Q -.15(ve)-.15 G 2.8(se).15 G .3
+(ntries from the directory stack.)-2.8 F -.4(Wi)5.299 G .299(th no ar).4
+F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .299
+(he top directory from the)-2.799 F 1.478(stack, and performs a)144
+136.8 R F1(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
+(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.479
+(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H 1.479(he follo).15
 F(wing)-.25 E(meanings:)144 148.8 Q F1<ad6e>144 160.8 Q F0 .551
 (Suppresses the normal change of directory when remo)24.74 F .551
 (ving directories from the stack, so)-.15 F
@@ -1449,17 +1464,18 @@ F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
 196.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
 (remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
 -.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 208.8 Q F2(n)A F0
-(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F2(n)3.759 E F0
-1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
-F F1(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
-220.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15
-(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 237.6 R F1(popd)
-3.144 E F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643
-(is performed as well, and the return status is 0.)3.143 F F1(popd)5.643
-E F0 .415(returns f)144 249.6 R .415(alse if an in)-.1 F -.25(va)-.4 G
-.415(lid option is encountered, the directory stack is empty).25 F 2.916
-(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
+(Remo)25.3 E -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0
+1.259(th entry counting from the right of the list sho)B 1.259(wn by)
+-.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
+(zero. F)180 220.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
+E F3(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
+237.6 R F1(popd)3.143 E F0 .643(command is successful, a)3.143 F F1
+(dirs)3.143 E F0 .644(is performed as well, and the return status is 0.)
+3.143 F F1(popd)5.644 E F0 .416(returns f)144 249.6 R .416
+(alse if an in)-.1 F -.25(va)-.4 G .415
+(lid option is encountered, the directory stack is empty).25 F 2.915
+(,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
 (tory stack entry is speci\214ed, or the directory change f)144 261.6 Q
 (ails.)-.1 E F1(printf)108 278.4 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
 (])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .372
@@ -1467,53 +1483,53 @@ E F0 .415(returns f)144 249.6 R .415(alse if an in)-.1 F -.25(va)-.4 G
 (to the standard output under the control of the)2.872 F F2(format)2.872
 E F0 5.372(.T)C(he)-5.372 E F2(format)2.872 E F0 1.804(is a character s\
 tring which contains three types of objects: plain characters, which ar\
-e simply)144 302.4 R .159
+e simply)144 302.4 R .158
 (copied to standard output, character escape sequences, which are con)
-144 314.4 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\
+144 314.4 R -.15(ve)-.4 G .159(rted and copied to the stan-).15 F .499(\
 dard output, and format speci\214cations, each of which causes printing\
- of the ne)144 326.4 R .5(xt successi)-.15 F -.15(ve)-.25 G F2(ar)3.15 E
-(gu-)-.37 E(ment)144 338.4 Q F0 5.424(.I)C 2.924(na)-5.424 G .424
-(ddition to the standard)-2.924 F F2(printf)2.924 E F0 .424
-(\(1\) formats,)B F1(%b)2.924 E F0(causes)2.923 E F1(printf)2.923 E F0
-.423(to e)2.923 F .423(xpand backslash escape)-.15 F .976
+ of the ne)144 326.4 R .499(xt successi)-.15 F -.15(ve)-.25 G F2(ar)
+3.149 E(gu-)-.37 E(ment)144 338.4 Q F0 5.423(.I)C 2.923(na)-5.423 G .423
+(ddition to the standard)-2.923 F F2(printf)2.923 E F0 .424
+(\(1\) formats,)B F1(%b)2.924 E F0(causes)2.924 E F1(printf)2.924 E F0
+.424(to e)2.924 F .424(xpand backslash escape)-.15 F .977
 (sequences in the corresponding)144 350.4 R F2(ar)3.476 E(gument)-.37 E
 F0(\(e)3.476 E .976(xcept that)-.15 F F1(\\c)3.476 E F0 .976
-(terminates output, backslashes in)3.476 F F1<5c08>3.477 E F0(,)A F1
-(\\")3.477 E F0(,)A(and)144 362.4 Q F1(\\?)3.422 E F0 .922(are not remo)
-3.422 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
-(ginning with)-.15 F F1(\\0)3.422 E F0 .921
+(terminates output, backslashes in)3.476 F F1<5c08>3.476 E F0(,)A F1
+(\\")3.476 E F0(,)A(and)144 362.4 Q F1(\\?)3.421 E F0 .921(are not remo)
+3.421 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922
+(ginning with)-.15 F F1(\\0)3.422 E F0 .922
 (may contain up to four digits\), and)3.422 F F1(%q)144 374.4 Q F0
-(causes)3.63 E F1(printf)3.63 E F0 1.13(to output the corresponding)3.63
-F F2(ar)3.631 E(gument)-.37 E F0 1.131
+(causes)3.631 E F1(printf)3.631 E F0 1.131(to output the corresponding)
+3.631 F F2(ar)3.631 E(gument)-.37 E F0 1.13
 (in a format that can be reused as shell)3.631 F(input.)144 386.4 Q(The)
-144 410.4 Q F1<ad76>2.904 E F0 .404
-(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E
+144 410.4 Q F1<ad76>2.903 E F0 .404
+(option causes the output to be assigned to the v)2.903 F(ariable)-.25 E
 F2(var)2.904 E F0 .404(rather than being printed to the)2.904 F
-(standard output.)144 422.4 Q(The)144 446.4 Q F2(format)3.423 E F0 .923
-(is reused as necessary to consume all of the)3.423 F F2(ar)3.423 E
+(standard output.)144 422.4 Q(The)144 446.4 Q F2(format)3.424 E F0 .923
+(is reused as necessary to consume all of the)3.424 F F2(ar)3.423 E
 (guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
-3.423 E F0 .924(requires more)3.424 F F2(ar)144 458.4 Q(guments)-.37 E
-F0 .033(than are supplied, the e)2.534 F .033
+3.423 E F0 .923(requires more)3.423 F F2(ar)144 458.4 Q(guments)-.37 E
+F0 .033(than are supplied, the e)2.533 F .033
 (xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
-.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,)
 -.25 F(as appropriate, had been supplied.)144 470.4 Q(The return v)5 E
 (alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
 108 487.2 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
 <ad>-2.5 E F2(n)A F0(])A F1(pushd)108 499.2 Q F0([)2.5 E F1<ad6e>A F0
-2.5(][)C F2(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
-irectory stack, or rotates the stack, making the ne)144 511.2 R 3.14(wt)
--.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 523.2 R 1.316
-(orking directory)-.1 F 6.316(.W)-.65 G 1.315(ith no ar)-6.716 F 1.315
-(guments, e)-.18 F 1.315(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315
-(irectories and)-3.815 F .871
+2.5(][)C F2(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\
+rectory stack, or rotates the stack, making the ne)144 511.2 R 3.139(wt)
+-.25 G .639(op of the)-3.139 F 1.315(stack the current w)144 523.2 R
+1.315(orking directory)-.1 F 6.315(.W)-.65 G 1.315(ith no ar)-6.715 F
+1.315(guments, e)-.18 F 1.316(xchanges the top tw)-.15 F 3.816(od)-.1 G
+1.316(irectories and)-3.816 F .872
 (returns 0, unless the directory stack is empty)144 535.2 R 5.871(.A)
--.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15
-(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 547.2 Q
+-.65 G -.18(rg)-5.871 G .871(uments, if supplied, ha).18 F 1.171 -.15
+(ve t)-.2 H .871(he follo).15 F .871(wing mean-)-.25 F(ings:)144 547.2 Q
 F1<ad6e>144 559.2 Q F0 .902(Suppresses the normal change of directory w\
 hen adding directories to the stack, so that)24.74 F
 (only the stack is manipulated.)180 571.2 Q F1(+)144 583.2 Q F2(n)A F0
-1.267(Rotates the stack so that the)25.3 F F2(n)3.767 E F0 1.268
-(th directory \(counting from the left of the list sho)B 1.268(wn by)
+1.268(Rotates the stack so that the)25.3 F F2(n)3.768 E F0 1.267
+(th directory \(counting from the left of the list sho)B 1.267(wn by)
 -.25 F F1(dirs)180 595.2 Q F0 2.5(,s)C
 (tarting with zero\) is at the top.)-2.5 E F1<ad>144 607.2 Q F2(n)A F0
 .92(Rotates the stack so that the)25.3 F F2(n)3.42 E F0 .92
@@ -1521,119 +1537,119 @@ hen adding directories to the stack, so that)24.74 F
 F F1(dirs)180 619.2 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
 -2.5 E F2(dir)144.35 631.2 Q F0(Adds)23.98 E F2(dir)2.85 E F0
 (to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
-G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 648 R
-F1(pushd)2.988 E F0 .488(command is successful, a)2.988 F F1(dirs)2.988
-E F0 .488(is performed as well.)2.988 F .489
-(If the \214rst form is used,)5.488 F F1(pushd)2.989 E F0 1.04
-(returns 0 unless the cd to)144 660 R F2(dir)3.89 E F0 -.1(fa)4.27 G
-3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F1(pushd)3.539 E F0
-1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144 672
-R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack element i\
-s speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144
+G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .489(If the)144 648 R
+F1(pushd)2.989 E F0 .489(command is successful, a)2.989 F F1(dirs)2.988
+E F0 .488(is performed as well.)2.988 F .488
+(If the \214rst form is used,)5.488 F F1(pushd)2.988 E F0 1.039
+(returns 0 unless the cd to)144 660 R F2(dir)3.889 E F0 -.1(fa)4.269 G
+3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F1(pushd)3.54 E F0
+1.04(returns 0 unless the directory)3.54 F .847(stack is empty)144 672 R
+3.347(,an)-.65 G(on-e)-3.347 E .847(xistent directory stack element is \
+speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144
 684 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F1(pwd)108
-700.8 Q F0([)2.5 E F1(\255LP)A F0(])A .845
+700.8 Q F0([)2.5 E F1(\255LP)A F0(])A .844
 (Print the absolute pathname of the current w)144 712.8 R .845
-(orking directory)-.1 F 5.844(.T)-.65 G .844
-(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
+(orking directory)-.1 F 5.845(.T)-.65 G .845
+(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
 724.8 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
 .181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1
-(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F(GNU Bash-4.0)
+(set)2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F(GNU Bash-4.0)
 72 768 Q(2004 Apr 20)148.735 E(11)198.725 E 0 Cg EP
 %%Page: 12 12
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 3.264
-(enabled. If)144 84 R(the)3.264 E/F1 10/Times-Bold@0 SF<ad4c>3.264 E F0
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 3.263
+(enabled. If)144 84 R(the)3.263 E/F1 10/Times-Bold@0 SF<ad4c>3.263 E F0
 .763(option is used, the pathname printed may contain symbolic links.)
-3.264 F .763(The return)5.763 F 1.36(status is 0 unless an error occurs\
+3.263 F .764(The return)5.764 F 1.36(status is 0 unless an error occurs\
  while reading the name of the current directory or an in)144 96 R -.25
 (va)-.4 G(lid).25 E(option is supplied.)144 108 Q F1 -.18(re)108 124.8 S
 (ad).18 E F0([)2.5 E F1(\255ers)A F0 2.5(][)C F1<ad61>-2.5 E/F2 10
 /Times-Italic@0 SF(aname)2.5 E F0 2.5(][)C F1<ad64>-2.5 E F2(delim)2.5 E
-F0 2.5(][)C F1<ad>-2.5 E F2(te)2.5 E(xt)-.2 E F0 2.5(][)C F1<ad6e>-2.5 E
-F2(nc)2.5 E(har)-.15 E(s)-.1 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E
+F0 2.5(][)C F1<ad69>-2.5 E F2(te)2.5 E(xt)-.2 E F0 2.5(][)C F1<ad6e>-2.5
+F2(nc)2.5 E(har)-.15 E(s)-.1 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E
 (ompt)-.45 E F0 2.5(][)C F1<ad74>-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1
 <ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .516(\
 One line is read from the standard input, or from the \214le descriptor)
-144 136.8 R F2(fd)3.016 E F0 .516(supplied as an ar)3.016 F .516
-(gument to)-.18 F(the)144 148.8 Q F1<ad75>2.538 E F0 .038
-(option, and the \214rst w)2.538 F .038(ord is assigned to the \214rst)
--.1 F F2(name)2.539 E F0 2.539(,t).18 G .039(he second w)-2.539 F .039
-(ord to the second)-.1 F F2(name)2.539 E F0(,).18 E .42
+144 136.8 R F2(fd)3.016 E F0 .516(supplied as an ar)3.016 F .517
+(gument to)-.18 F(the)144 148.8 Q F1<ad75>2.539 E F0 .039
+(option, and the \214rst w)2.539 F .038(ord is assigned to the \214rst)
+-.1 F F2(name)2.538 E F0 2.538(,t).18 G .038(he second w)-2.538 F .038
+(ord to the second)-.1 F F2(name)2.538 E F0(,).18 E .42
 (and so on, with lefto)144 160.8 R -.15(ve)-.15 G 2.92(rw).15 G .42
 (ords and their interv)-3.02 F .42
 (ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 172.8 R .54(wer w)-.25
-F .541(ords read from the input stream than names, the remaining names \
-are assigned empty)-.1 F -.25(va)144 184.8 S 2.511(lues. The).25 F .011
-(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .541(are fe)144 172.8 R .541(wer w)
+-.25 F .541(ords read from the input stream than names, the remaining n\
+ames are assigned empty)-.1 F -.25(va)144 184.8 S 2.51(lues. The).25 F
+.011(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
 (are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
-(backslash character \()2.511 F F1(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
-(be used to remo)144 196.8 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
-1.891(pecial meaning for the ne).15 F 1.891
+(backslash character \()2.511 F F1(\\)A F0 2.511(\)m)C(ay)-2.511 E 1.891
+(be used to remo)144 196.8 R 2.191 -.15(ve a)-.15 H 2.191 -.15(ny s).15
+H 1.891(pecial meaning for the ne).15 F 1.89
 (xt character read and for line continuation.)-.15 F
 (Options, if supplied, ha)144 208.8 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 220.8 Q F2(aname)2.5 E F0 1.05(The w)
-180 232.8 R 1.049
+(wing meanings:)-.25 E F1<ad61>144 220.8 Q F2(aname)2.5 E F0 1.049
+(The w)180 232.8 R 1.049
 (ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.25 E F2(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
-F2(aname)180.33 244.8 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
--.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0
-(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 256.8 Q F2(delim)2.5 E
-F0(The \214rst character of)180 268.8 Q F2(delim)2.5 E F0
+-.25 E F2(aname)3.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F2
+(aname)180.33 244.8 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25
+(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0(ar)2.5
+E(guments are ignored.)-.18 E F1<ad64>144 256.8 Q F2(delim)2.5 E F0
+(The \214rst character of)180 268.8 Q F2(delim)2.5 E F0
 (is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
-F1<ad65>144 280.8 Q F0 .372
+F1<ad65>144 280.8 Q F0 .373
 (If the standard input is coming from a terminal,)25.86 F F1 -.18(re)
-2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
--.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
+2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.872 E F0(abo)2.622 E
+-.15(ve)-.15 G 2.872(\)i).15 G 2.872(su)-2.872 G(sed)-2.872 E .218
 (to obtain the line.)180 292.8 R .218
 (Readline uses the current \(or def)5.218 F .218
 (ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
 (acti)180 304.8 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
-F1<ad69>144 316.8 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715
-G(adline).18 E F0 .216(is being used to read the line,)2.715 F F2(te)
+F1<ad69>144 316.8 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.716
+G(adline).18 E F0 .216(is being used to read the line,)2.716 F F2(te)
 2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
-.216(fer before edit-)-.25 F(ing be)180 328.8 Q(gins.)-.15 E F1<ad6e>144
+.215(fer before edit-)-.25 F(ing be)180 328.8 Q(gins.)-.15 E F1<ad6e>144
 340.8 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 352.8 S(ad).18 E
-F0 1.395(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E
-F0 1.395(characters rather than w)3.895 F 1.394
+F0 1.394(returns after reading)3.894 F F2(nc)3.894 E(har)-.15 E(s)-.1 E
+F0 1.395(characters rather than w)3.894 F 1.395
 (aiting for a complete line of)-.1 F(input.)180 364.8 Q F1<ad70>144
-376.8 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 388.8 Q F2(pr)3.66 E
-(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161
+376.8 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 388.8 Q F2(pr)3.661 E
+(ompt)-.45 E F0 1.161(on standard error)3.661 F 3.661(,w)-.4 G 1.161
 (ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read)
 -.25 F(an)180 400.8 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
 (prompt is displayed only if input is coming from a terminal.)2.5 E F1
-<ad72>144 412.8 Q F0 .544(Backslash does not act as an escape character)
-25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
+<ad72>144 412.8 Q F0 .543(Backslash does not act as an escape character)
+25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of)
 -5.543 F(the line.)180 424.8 Q(In particular)5 E 2.5(,ab)-.4 G
 (ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
 -.25 E F1<ad73>144 436.8 Q F0(Silent mode.)26.41 E
 (If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 448.8 Q F2(timeout)2.5 E F0(Cause)180 460.8 Q F1 -.18(re)3.548
-G(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
+<ad74>144 448.8 Q F2(timeout)2.5 E F0(Cause)180 460.8 Q F1 -.18(re)3.549
+G(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048
 (ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 472.8 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997
-(may be a decimal number with a fractional portion follo)3.497 F(wing)
+180 472.8 Q F0(seconds.)3.496 E F2(timeout)5.996 E F0 .997
+(may be a decimal number with a fractional portion follo)3.496 F(wing)
 -.25 E .576(the decimal point.)180 484.8 R .576(This option is only ef)
 5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G
-(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142
+(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .141
 (pipe, or other special \214le; it has no ef)180 496.8 R .142
-(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E
-F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 508.8 S(ad).18 E
-F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113
-(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114
+(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.142 E
+F2(timeout)2.642 E F0 .142(is 0,)2.642 F F1 -.18(re)180 508.8 S(ad).18 E
+F0 .113(returns success if input is a)2.614 F -.25(va)-.2 G .113
+(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .113
 (ailure otherwise.)-2.713 F(The e)180 520.8 Q
 (xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
 E F1<ad75>144 532.8 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
-14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 549.6 R F2(names)3.052 E F0
-.192(are supplied, the line read is assigned to the v)2.962 F(ariable)
--.25 E F3(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .191
-(The return code is zero,)4.691 F 1.343
-(unless end-of-\214le is encountered,)144 561.6 R F1 -.18(re)3.843 G(ad)
+14.46 E F2(fd)2.5 E F0(.)A .191(If no)144 549.6 R F2(names)3.051 E F0
+.191(are supplied, the line read is assigned to the v)2.961 F(ariable)
+-.25 E F3(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192
+(The return code is zero,)4.692 F 1.344
+(unless end-of-\214le is encountered,)144 561.6 R F1 -.18(re)3.844 G(ad)
 .18 E F0 1.343
-(times out \(in which case the return code is greater than)3.843 F
+(times out \(in which case the return code is greater than)3.844 F
 (128\), or an in)144 573.6 Q -.25(va)-.4 G
 (lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1
 <ad75>2.5 E F0(.)A F1 -.18(re)108 590.4 S(adonly).18 E F0([)2.5 E F1
@@ -1641,32 +1657,32 @@ E F1<ad75>144 532.8 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
 F0 2.5(].)C(..])-2.5 E .77(The gi)144 602.4 R -.15(ve)-.25 G(n).15 E F2
 (names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77
 (alues of these)-.25 F F2(names)3.63 E F0 .77
-(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 614.4 R
-1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
-(option is supplied, the functions corresponding to the)3.596 F F2
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 626.4 Q 3.334(ed. The)
+(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 614.4 R
+1.097(If the)6.097 F F1<ad66>3.597 E F0 1.097
+(option is supplied, the functions corresponding to the)3.597 F F2
+(names)3.596 E F0 1.096(are so)3.596 F(mark)144 626.4 Q 3.334(ed. The)
 -.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
 (ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
 -3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .537(ables to associati)144 638.4 R .837 -.15(ve a)-.25 H 3.037
+-.25 E .538(ables to associati)144 638.4 R .838 -.15(ve a)-.25 H 3.038
 (rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
 (guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
-3.038 E F0 .538(option is supplied, a list)3.038 F .081
-(of all readonly names is printed.)144 650.4 R(The)5.081 E F1<ad70>2.581
-E F0 .08(option causes output to be displayed in a format that may)2.581
-F 1.176(be reused as input.)144 662.4 R 1.176(If a v)6.176 F 1.176
+3.038 E F0 .537(option is supplied, a list)3.038 F .08
+(of all readonly names is printed.)144 650.4 R(The)5.08 E F1<ad70>2.58 E
+F0 .081(option causes output to be displayed in a format that may)2.58 F
+1.177(be reused as input.)144 662.4 R 1.177(If a v)6.177 F 1.176
 (ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0
-3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)-.25 F 1.177
-(ariable is set to)-.25 F F2(wor)144 674.4 Q(d)-.37 E F0 6.206(.T)C
-1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G 1.205
-(lid option is encountered, one of the).25 F F2(names)4.065 E F0 1.205
-(is not a)3.975 F -.25(va)144 686.4 S(lid shell v).25 E
+3.676(,t)C 1.176(he v)-3.676 F 1.176(alue of the v)-.25 F 1.176
+(ariable is set to)-.25 F F2(wor)144 674.4 Q(d)-.37 E F0 6.205(.T)C
+1.205(he return status is 0 unless an in)-6.205 F -.25(va)-.4 G 1.206
+(lid option is encountered, one of the).25 F F2(names)4.066 E F0 1.206
+(is not a)3.976 F -.25(va)144 686.4 S(lid shell v).25 E
 (ariable name, or)-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2
 (name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 703.2 S
-(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586
+(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .587
 (Causes a function to e)144 715.2 R .587(xit with the return v)-.15 F
 .587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587
-E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335
+E F2(n)3.447 E F0 .586(is omitted, the return status is)3.327 F 1.335
 (that of the last command e)144 727.2 R -.15(xe)-.15 G 1.335
 (cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
 1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E -.15(exe)144
 84 S .794(cution of a script by the).15 F/F1 10/Times-Bold@0 SF(.)3.294
 E F0(\()5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794
-(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795
-(cuting that script).15 F .246(and return either)144 96 R/F2 10
-/Times-Italic@0 SF(n)3.106 E F0 .246(or the e)2.986 F .246
+(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .794
+(cuting that script).15 F .245(and return either)144 96 R/F2 10
+/Times-Italic@0 SF(n)3.105 E F0 .246(or the e)2.985 F .246
 (xit status of the last command e)-.15 F -.15(xe)-.15 G .246
-(cuted within the script as the e).15 F .245(xit sta-)-.15 F .081
+(cuted within the script as the e).15 F .246(xit sta-)-.15 F .082
 (tus of the script.)144 108 R .082
 (If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
-(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082
-(he return sta-)-2.582 F 2.306(tus is f)144 120 R 4.806(alse. An)-.1 F
-4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN)
-4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e)
+(cution of a script by).15 F F1(.)2.582 E F0 2.581(,t).833 G .081
+(he return sta-)-2.581 F 2.305(tus is f)144 120 R 4.805(alse. An)-.1 F
+4.805(yc)-.15 G 2.305(ommand associated with the)-4.805 F F1(RETURN)
+4.805 E F0 2.306(trap is e)4.806 F -.15(xe)-.15 G 2.306(cuted before e)
 .15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
 144 132 Q F1(set)108 148.8 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A
 F0 2.5(][)C F1<ad6f>-2.5 E F2(option)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)
 -.37 E F0(...])2.5 E F1(set)108 160.8 Q F0([)2.5 E F1
 (+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5
-(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 172.8 S .835
+(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 172.8 S .836
 (thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.836(ariable are displayed in a format that can be)-.25 F .784
+.835(ariable are displayed in a format that can be)-.25 F .784
 (reused as input for setting or resetting the currently-set v)144 184.8
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 196.8 R F2 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
+(riables cannot be).25 F 2.947(reset. In)144 196.8 R F2 .447(posix mode)
+2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
 (ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 208.8 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
-(after option processing are treated as v)144 220.8 R 1.624
+(The output is sorted according to the current)5.447 F 3.53
+(locale. When)144 208.8 R 1.031(options are speci\214ed, the)3.53 F
+3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
+-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
+1.624(after option processing are treated as v)144 220.8 R 1.623
 (alues for the positional parameters and are assigned, in)-.25 F(order)
 144 232.8 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
 F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 244.8 Q
-F0 .54(Automatically mark v)29.3 F .539
-(ariables and functions which are modi\214ed or created for e)-.25 F
-.539(xport to)-.15 F(the en)184 256.8 Q
-(vironment of subsequent commands.)-.4 E F1<ad62>144 268.8 Q F0 .131
+F0 .539(Automatically mark v)29.3 F .539
+(ariables and functions which are modi\214ed or created for e)-.25 F .54
+(xport to)-.15 F(the en)184 256.8 Q(vironment of subsequent commands.)
+-.4 E F1<ad62>144 268.8 Q F0 .132
 (Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
 (primary prompt.)184 280.8 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 292.8 Q F0
-1.694(Exit immediately if a)29.86 F F2 1.693(simple command)4.193 F F0
-(\(see)4.193 E/F3 9/Times-Bold@0 SF 1.693(SHELL GRAMMAR)4.193 F F0(abo)
-3.943 E -.15(ve)-.15 G 4.193(\)e).15 G 1.693(xits with a)-4.343 F .011
-(non-zero status.)184 304.8 R .011(The shell does not e)5.011 F .011
-(xit if the command that f)-.15 F .012(ails is part of the command)-.1 F
-.719(list immediately follo)184 316.8 R .719(wing a)-.25 F F1(while)
-3.219 E F0(or)3.219 E F1(until)3.219 E F0 -.1(ke)3.219 G(yw)-.05 E .719
-(ord, part of the test in an)-.1 F F1(if)3.218 E F0(statement,)3.218 E
-.378(part of a command e)184 328.8 R -.15(xe)-.15 G .379(cuted in a).15
-F F1(&&)2.879 E F0(or)2.879 E/F4 10/Symbol SF<efef>2.879 E F0 .379
-(list, an)2.879 F 2.879(yc)-.15 G .379(ommand in a pipeline b)-2.879 F
-.379(ut the last,)-.2 F .578(or if the command')184 340.8 R 3.078(sr)
--.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)-.4 G
-.578(rted via).15 F F1(!)3.078 E F0 5.578(.F)C .577
-(ailing simple commands that)-5.728 F .402(are part of shell functions \
-or command lists enclosed in braces or parentheses satisfying)184 352.8
-R .841(the abo)184 364.8 R 1.141 -.15(ve c)-.15 H .841
-(onditions do not cause the shell to e).15 F 3.341(xit. A)-.15 F .84
-(trap on)3.34 F F1(ERR)3.34 E F0 3.34(,i)C 3.34(fs)-3.34 G .84(et, is e)
--3.34 F -.15(xe)-.15 G(cuted).15 E(before the shell e)184 376.8 Q(xits.)
--.15 E F1<ad66>144 388.8 Q F0(Disable pathname e)30.97 E(xpansion.)-.15
-E F1<ad68>144 400.8 Q F0 2.238(Remember the location of commands as the)
-28.74 F 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F
--.15(xe)-.15 G 4.739(cution. This).15 F(is)4.739 E(enabled by def)184
-412.8 Q(ault.)-.1 E F1<ad6b>144 424.8 Q F0 .514(All ar)28.74 F .514
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 292.8 Q F0 .51
+(Exit immediately if a)29.86 F F2(pipeline)3.01 E F0 .511
+(\(which may consist of a single)3.011 F F2 .511(simple command)3.011 F
+F0 3.011(\), a)B F2(sub-)3.011 E(shell)184 304.8 Q F0 .872
+(command enclosed in parentheses, or one of the commands e)3.373 F -.15
+(xe)-.15 G .872(cuted as part of a).15 F .399
+(command list enclosed by braces \(see)184 316.8 R/F3 9/Times-Bold@0 SF
+.399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G
+.399(xits with a non-zero)-3.049 F 3.969(status. The)184 328.8 R 1.468
+(shell does not e)3.969 F 1.468(xit if the command that f)-.15 F 1.468
+(ails is part of the command list)-.1 F .569(immediately follo)184 340.8
+R .569(wing a)-.25 F F1(while)3.069 E F0(or)3.069 E F1(until)3.069 E F0
+-.1(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .57
+(wing the)-.25 F F1(if)3.07 E F0(or)3.07 E F1(elif)3.07 E F0(reserv)184
+352.8 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G
+.544(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044
+E F0(or)3.044 E/F4 10/Symbol SF<efef>3.044 E F0 .544(list e)3.044 F .544
+(xcept the command)-.15 F(follo)184 364.8 Q 1.23(wing the \214nal)-.25 F
+F1(&&)3.73 E F0(or)3.73 E F4<efef>3.73 E F0 3.73(,a)C 1.53 -.15(ny c)
+-3.73 H 1.231(ommand in a pipeline b).15 F 1.231
+(ut the last, or if the com-)-.2 F(mand')184 376.8 Q 3.191(sr)-.55 G
+.691(eturn v)-3.191 F .691(alue is being in)-.25 F -.15(ve)-.4 G .691
+(rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR)
+3.19 E F0 3.19(,i)C 3.19(fs)-3.19 G .69(et, is e)-3.19 F -.15(xe)-.15 G
+.69(cuted before).15 F .686(the shell e)184 388.8 R 3.186(xits. This)
+-.15 F .686(option applies to the shell en)3.186 F .686
+(vironment and each subshell en)-.4 F(viron-)-.4 E .659
+(ment separately \(see)184 400.8 R F1 .659(COMMAND EXECUTION ENVIR)3.159
+F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .658(\), and may).15 F
+(cause subshells to e)184 412.8 Q(xit before e)-.15 E -.15(xe)-.15 G
+(cuting all the commands in the subshell.).15 E F1<ad66>144 424.8 Q F0
+(Disable pathname e)30.97 E(xpansion.)-.15 E F1<ad68>144 436.8 Q F0
+2.238(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G
+2.239(re look)-4.738 F 2.239(ed up for e)-.1 F -.15(xe)-.15 G 4.739
+(cution. This).15 F(is)4.739 E(enabled by def)184 448.8 Q(ault.)-.1 E F1
+<ad6b>144 460.8 Q F0 .514(All ar)28.74 F .514
 (guments in the form of assignment statements are placed in the en)-.18
 F .513(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 436.8 Q F1
-<ad6d>144 448.8 Q F0 .148(Monitor mode.)25.97 F .148
+(command, not just those that precede the command name.)184 472.8 Q F1
+<ad6d>144 484.8 Q F0 .148(Monitor mode.)25.97 F .148
 (Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
 .149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .637
-(on systems that support it \(see)184 460.8 R F3 .636(JOB CONTR)3.136 F
+(on systems that support it \(see)184 496.8 R F3 .636(JOB CONTR)3.136 F
 (OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636
 (processes run in a)3.136 F .641
-(separate process group and a line containing their e)184 472.8 R .642
-(xit status is printed upon their com-)-.15 F(pletion.)184 484.8 Q F1
-<ad6e>144 496.8 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F
+(separate process group and a line containing their e)184 508.8 R .642
+(xit status is printed upon their com-)-.15 F(pletion.)184 520.8 Q F1
+<ad6e>144 532.8 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F
 -.15(xe)-.15 G .653(cute them.).15 F .652
 (This may be used to check a shell script for)5.653 F(syntax errors.)184
-508.8 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
-E F1<ad6f>144 520.8 Q F2(option\255name)2.5 E F0(The)184 532.8 Q F2
+544.8 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
+E F1<ad6f>144 556.8 Q F2(option\255name)2.5 E F0(The)184 568.8 Q F2
 (option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1
-(allexport)184 544.8 Q F0(Same as)224 556.8 Q F1<ad61>2.5 E F0(.)A F1
-(braceexpand)184 568.8 Q F0(Same as)224 580.8 Q F1<ad42>2.5 E F0(.)A F1
-(emacs)184 592.8 Q F0 .089
+(allexport)184 580.8 Q F0(Same as)224 592.8 Q F1<ad61>2.5 E F0(.)A F1
+(braceexpand)184 604.8 Q F0(Same as)224 616.8 Q F1<ad42>2.5 E F0(.)A F1
+(emacs)184 628.8 Q F0 .089
 (Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
 -.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 604.8 R -.15(ve)-.25 G 3.45(,u).15 G
+(when the shell is interacti)224 640.8 R -.15(ve)-.25 G 3.45(,u).15 G
 .95(nless the shell is started with the)-3.45 F F1(\255\255noediting)
-3.45 E F0 2.5(option. This)224 616.8 R(also af)2.5 E
+3.45 E F0 2.5(option. This)224 652.8 R(also af)2.5 E
 (fects the editing interf)-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G
-(ad \255e).18 E F0(.)A F1(errtrace)184 628.8 Q F0(Same as)5.03 E F1
-<ad45>2.5 E F0(.)A F1(functrace)184 640.8 Q F0(Same as)224 652.8 Q F1
-<ad54>2.5 E F0(.)A F1(err)184 664.8 Q(exit)-.18 E F0(Same as)11.31 E F1
-<ad65>2.5 E F0(.)A F1(hashall)184 676.8 Q F0(Same as)9.43 E F1<ad68>2.5
-E F0(.)A F1(histexpand)184 688.8 Q F0(Same as)224 700.8 Q F1<ad48>2.5 E
-F0(.)A F1(history)184 712.8 Q F0 .586(Enable command history)10 F 3.087
-(,a)-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)
--.15 H(nder).15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F5 9
-/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F(on by def)224 724.8
-Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash-4.0)
-72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP
+(ad \255e).18 E F0(.)A F1(errtrace)184 664.8 Q F0(Same as)5.03 E F1
+<ad45>2.5 E F0(.)A F1(functrace)184 676.8 Q F0(Same as)224 688.8 Q F1
+<ad54>2.5 E F0(.)A F1(err)184 700.8 Q(exit)-.18 E F0(Same as)11.31 E F1
+<ad65>2.5 E F0(.)A F1(hashall)184 712.8 Q F0(Same as)9.43 E F1<ad68>2.5
+E F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg
+EP
 %%Page: 14 14
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(ignor)184 84 Q(eeof)-.18 E F0 1.657(The ef)224 96 R
-1.657(fect is as if the shell command)-.25 F/F2 10/Courier@0 SF
-(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted)
-.15 E(\(see)224 108 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
-(ve)-.15 G(\).).15 E F1 -.1(ke)184 120 S(yw).1 E(ord)-.1 E F0(Same as)
-224 132 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 144 Q F0(Same as)5.56 E F1
-<ad6d>2.5 E F0(.)A F1(noclob)184 156 Q(ber)-.1 E F0(Same as)224 168 Q F1
-<ad43>2.5 E F0(.)A F1(noexec)184 180 Q F0(Same as)11.12 E F1<ad6e>2.5 E
-F0(.)A F1(noglob)184 192 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1
-(nolog)184 204 Q F0(Currently ignored.)16.66 E F1(notify)184 216 Q F0
-(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 228 Q F0(Same as)6.66
-E F1<ad75>2.5 E F0(.)A F1(onecmd)184 240 Q F0(Same as)6.67 E F1<ad74>2.5
-E F0(.)A F1(ph)184 252 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E
-F0(.)A F1(pipefail)184 264 Q F0 1.029(If set, the return v)7.77 F 1.029
+/Times-Bold@0 SF(histexpand)184 84 Q F0(Same as)224 96 Q F1<ad48>2.5 E
+F0(.)A F1(history)184 108 Q F0 .586(Enable command history)10 F 3.087
+(,a)-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)
+-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E
+/F3 9/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F(on by def)224
+120 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)
+184 132 Q(eeof)-.18 E F0 1.657(The ef)224 144 R 1.657
+(fect is as if the shell command)-.25 F/F4 10/Courier@0 SF(IGNOREEOF=10)
+4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
+156 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1 -.1(ke)184 168 S(yw).1 E(ord)-.1 E F0(Same as)224 180 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 192 Q F0(Same as)5.56 E F1<ad6d>2.5 E
+F0(.)A F1(noclob)184 204 Q(ber)-.1 E F0(Same as)224 216 Q F1<ad43>2.5 E
+F0(.)A F1(noexec)184 228 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
+(noglob)184 240 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
+252 Q F0(Currently ignored.)16.66 E F1(notify)184 264 Q F0(Same as)15 E
+F1<ad62>2.5 E F0(.)A F1(nounset)184 276 Q F0(Same as)6.66 E F1<ad75>2.5
+E F0(.)A F1(onecmd)184 288 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
+(ph)184 300 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
+(pipefail)184 312 Q F0 1.029(If set, the return v)7.77 F 1.029
 (alue of a pipeline is the v)-.25 F 1.03
-(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 276 R
+(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 324 R
 1.136
 (xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 288 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 300 Q F0
+-.15 F -.15(ex)224 336 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 348 Q F0
 2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
 2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 312 Q
-/F3 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 324 Q(vileged)
--.1 E F0(Same as)224 336 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 348 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 360 Q F0
+(fers from the)-.25 F(POSIX standard to match the standard \()224 360 Q
+/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 372 Q(vileged)
+-.1 E F0(Same as)224 384 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 396 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 408 Q F0
 1.466(Use a vi-style command line editing interf)32.22 F 3.965
 (ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F
-(interf)224 372 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
-(.)A F1(xtrace)184 384 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
-402 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F3
+(interf)224 420 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
+(.)A F1(xtrace)184 432 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
+450 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F5
 (option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
 (alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
-414 Q F0 1.072(is supplied with no)3.572 F F3(option\255name)3.572 E F0
+462 Q F0 1.072(is supplied with no)3.572 F F5(option\255name)3.572 E F0
 3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
 (commands to recreate the current)3.571 F
-(option settings is displayed on the standard output.)184 426 Q F1<ad70>
-144 438 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F3(privile)4.821 E -.1
+(option settings is displayed on the standard output.)184 474 Q F1<ad70>
+144 486 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F5(privile)4.821 E -.1
 (ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
-/F4 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F4($B)3.572 E(ASH_ENV)
--.27 E F0 1.072(\214les are not pro-)3.322 F 1.501
-(cessed, shell functions are not inherited from the en)184 450 R 1.5
-(vironment, and the)-.4 F F4(SHELLOPTS)4 E/F5 9/Times-Roman@0 SF(,)A F1
-(CDP)184 462 Q -.95(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1
-(GLOBIGNORE)5.603 E F0 -.25(va)5.603 G 3.103(riables, if the).25 F 5.603
-(ya)-.15 G 3.103(ppear in the en)-5.603 F 3.103(vironment, are)-.4 F
-2.618(ignored. If)184 474 R .118(the shell is started with the ef)2.618
-F(fecti)-.25 E .418 -.15(ve u)-.25 H .117
-(ser \(group\) id not equal to the real user).15 F 1.018
-(\(group\) id, and the)184 486 R F1<ad70>3.518 E F0 1.018
+F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.072
+(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 498 R 1.5
+(vironment, and the)-.4 F F2(SHELLOPTS)4 E F3(,)A F1(CDP)184 510 Q -.95
+(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1(GLOBIGNORE)5.603 E F0
+-.25(va)5.603 G 3.103(riables, if the).25 F 5.603(ya)-.15 G 3.103
+(ppear in the en)-5.603 F 3.103(vironment, are)-.4 F 2.618(ignored. If)
+184 522 R .118(the shell is started with the ef)2.618 F(fecti)-.25 E
+.418 -.15(ve u)-.25 H .117(ser \(group\) id not equal to the real user)
+.15 F 1.018(\(group\) id, and the)184 534 R F1<ad70>3.518 E F0 1.018
 (option is not supplied, these actions are tak)3.518 F 1.018
 (en and the ef)-.1 F(fecti)-.25 E -.15(ve)-.25 G .287
-(user id is set to the real user id.)184 498 R .286(If the)5.286 F F1
+(user id is set to the real user id.)184 546 R .286(If the)5.286 F F1
 <ad70>2.786 E F0 .286(option is supplied at startup, the ef)2.786 F
 (fecti)-.25 E .586 -.15(ve u)-.25 H(ser).15 E .102(id is not reset.)184
-510 R -.45(Tu)5.102 G .102(rning this option of).45 F 2.602(fc)-.25 G
+558 R -.45(Tu)5.102 G .102(rning this option of).45 F 2.602(fc)-.25 G
 .102(auses the ef)-2.602 F(fecti)-.25 E .402 -.15(ve u)-.25 H .103
 (ser and group ids to be set to).15 F(the real user and group ids.)184
-522 Q F1<ad74>144 534 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
-G(cuting one command.).15 E F1<ad75>144 546 Q F0 -.35(Tr)28.74 G .445
+570 Q F1<ad74>144 582 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15
+G(cuting one command.).15 E F1<ad75>144 594 Q F0 -.35(Tr)28.74 G .445
 (eat unset v).35 F .444
 (ariables as an error when performing parameter e)-.25 F 2.944
 (xpansion. If)-.15 F -.15(ex)2.944 G .444(pansion is).15 F .519
-(attempted on an unset v)184 558 R .519
+(attempted on an unset v)184 606 R .519
 (ariable, the shell prints an error message, and, if not interacti)-.25
-F -.15(ve)-.25 G(,).15 E -.15(ex)184 570 S(its with a non-zero status.)
-.15 E F1<ad76>144 582 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E F1<ad78>144 594 Q F0 .315(After e)29.3 F .315
-(xpanding each)-.15 F F3 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
+F -.15(ve)-.25 G(,).15 E -.15(ex)184 618 S(its with a non-zero status.)
+.15 E F1<ad76>144 630 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 642 Q F0 .315(After e)29.3 F .315
+(xpanding each)-.15 F F5 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
 2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
-F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 606 R F1
+F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 654 R F1
 -.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
-(xpanded v)-.15 F 1.236(alue of)-.25 F F4(PS4)3.736 E F5(,)A F0(follo)
-3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 618 Q
+(xpanded v)-.15 F 1.236(alue of)-.25 F F2(PS4)3.736 E F3(,)A F0(follo)
+3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 666 Q
 (xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 630 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+<ad42>144 678 Q F0 2.579(The shell performs brace e)27.63 F 2.578
 (xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
--.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 642 Q
-(ault.)-.1 E F1<ad43>144 654 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 690 Q
+(ault.)-.1 E F1<ad43>144 702 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
 F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
 (xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
 2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
-3.054(tors. This)184 666 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+3.054(tors. This)184 714 R .553(may be o)3.053 F -.15(ve)-.15 G .553
 (rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 678 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 690 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
--2.603 F F1(ERR)2.603 E F0 .104
-(is inherited by shell functions, command substitutions, and com-)2.603
-F .839(mands e)184 702 R -.15(xe)-.15 G .839(cuted in a subshell en).15
-F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
-(trap is normally not inherited in)3.338 F(such cases.)184 714 Q
+.15 F(tor)184 726 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A
 (GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(14)198.725 E 0 Cg EP
 %%Page: 15 15
 %%BeginPageSetup
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad48>144 84 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
+/Times-Bold@0 SF<ad45>144 84 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15
+G .103(rap on)-2.603 F F1(ERR)2.603 E F0 .104
+(is inherited by shell functions, command substitutions, and com-)2.603
+F .839(mands e)184 96 R -.15(xe)-.15 G .839(cuted in a subshell en).15 F
+3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
+(trap is normally not inherited in)3.338 F(such cases.)184 108 Q F1
+<ad48>144 120 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
 (style history substitution.)5.531 F .531(This option is on by def)5.531
-F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 96 Q -.15(ve)
--.25 G(.).15 E F1<ad50>144 108 Q F0 1.165
+F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 132 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 144 Q F0 1.165
 (If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
 (ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
 (cuting commands such as).15 F F1(cd)3.664 E F0 2.821
-(that change the current w)184 120 R 2.822(orking directory)-.1 F 7.822
+(that change the current w)184 156 R 2.822(orking directory)-.1 F 7.822
 (.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
-(ysical directory structure)-.05 F 2.686(instead. By)184 132 R(def)2.686
+(ysical directory structure)-.05 F 2.686(instead. By)184 168 R(def)2.686
 E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
 (ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 144 Q(.)-.65 E F1<ad54>144
-156 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 180 Q(.)-.65 E F1<ad54>144
+192 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
 (DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
 (are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 168 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 204 R -.15(xe)-.15 G 1.932
 (cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 180 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 192 Q
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 216 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 228 Q
 F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
 (his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.401 E(the positional parameters are set to the)184 204 Q
+(Otherwise,)5.401 E(the positional parameters are set to the)184 240 Q
 /F2 10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5
 (ni).15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>
-2.5 E F0(.)A F1<ad>144 216 Q F0 1.945
+2.5 E F0(.)A F1<ad>144 252 Q F0 1.945
 (Signal the end of options, cause all remaining)34.3 F F2(ar)4.444 E(g)
 -.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G 1.944
-(ssigned to the positional)-4.444 F 3.445(parameters. The)184 228 R F1
+(ssigned to the positional)-4.444 F 3.445(parameters. The)184 264 R F1
 <ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
 (options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
 3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
-(parameters remain unchanged.)184 240 Q .425(The options are of)144
-256.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(parameters remain unchanged.)184 276 Q .425(The options are of)144
+292.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
 (ault unless otherwise noted.)-.1 F .425
 (Using + rather than \255 causes these options)5.425 F .177
-(to be turned of)144 268.8 R 2.677(f. The)-.25 F .178
+(to be turned of)144 304.8 R 2.677(f. The)-.25 F .178
 (options can also be speci\214ed as ar)2.678 F .178(guments to an in)
 -.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
-(current set of options may be found in)144 280.8 R F1<24ad>2.566 E F0
+(current set of options may be found in)144 316.8 R F1<24ad>2.566 E F0
 5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
 (ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
-(is encountered.)144 292.8 Q F1(shift)108 309.6 Q F0([)2.5 E F2(n)A F0
-(])A .428(The positional parameters from)144 321.6 R F2(n)2.928 E F0
+(is encountered.)144 328.8 Q F1(shift)108 345.6 Q F0([)2.5 E F2(n)A F0
+(])A .428(The positional parameters from)144 357.6 R F2(n)2.928 E F0
 .429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
-.429(rameters represented by the num-).15 F(bers)144 333.6 Q F1($#)2.583
+.429(rameters represented by the num-).15 F(bers)144 369.6 Q F1($#)2.583
 E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
 (+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
 -.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
 .15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
-(is 0, no parameters are changed.)144 345.6 R(If)5.06 E F2(n)2.92 E F0
+(is 0, no parameters are changed.)144 381.6 R(If)5.06 E F2(n)2.92 E F0
 .06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
 (If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 357.6 R
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 393.6 R
 .144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
 .143(is greater than)2.883 F F1($#)2.643 E F0
-(or less than zero; otherwise 0.)144 369.6 Q F1(shopt)108 386.4 Q F0([)
+(or less than zero; otherwise 0.)144 405.6 Q F1(shopt)108 422.4 Q F0([)
 2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 398.4 S .222(ggle the v).8 F .222
+-2.5 E F0(...])2.5 E -.8(To)144 434.4 S .222(ggle the v).8 F .222
 (alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
 (vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
 <ad70>2.722 E F0 .721(option, a list of all settable options is display\
-ed, with an indication of whether or not each is set.)144 410.4 R(The)
-144 422.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
+ed, with an indication of whether or not each is set.)144 446.4 R(The)
+144 458.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
 d in a form that may be reused as input.)2.827 F .328(Other options)
-5.328 F(ha)144 434.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 446.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 458.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 470.4 Q F0 .003(Suppresses normal out\
+5.328 F(ha)144 470.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
+-.25 E F1<ad73>144 482.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
+E F0(.)A F1<ad75>144 494.4 Q F0(Disable \(unset\) each)24.74 E F2
+(optname)2.5 E F0(.)A F1<ad71>144 506.4 Q F0 .003(Suppresses normal out\
 put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 482.4 R .255
+(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 518.4 R .255
 (If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
 (guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
 <ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
-(all)180 494.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 506.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+(all)180 530.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
+2.5 E F1<ad6f>144 542.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
 (optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
 (option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .128
-(If either)144 523.2 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
+(If either)144 559.2 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
 .127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
 (guments, the display is limited to those options which)-.18 F 1.023
-(are set or unset, respecti)144 535.2 R -.15(ve)-.25 G(ly).15 E 6.023
+(are set or unset, respecti)144 571.2 R -.15(ve)-.25 G(ly).15 E 6.023
 (.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0
-1.024(options are disabled \(unset\) by)3.524 F(def)144 547.2 Q(ault.)
+1.024(options are disabled \(unset\) by)3.524 F(def)144 583.2 Q(ault.)
 -.1 E 1.544(The return status when listing options is zero if all)144
-564 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
+600 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
 4.044 F .696
 (When setting or unsetting options, the return status is zero unless an)
-144 576 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
--.25 F(option.)144 588 Q(The list of)144 604.8 Q F1(shopt)2.5 E F0
-(options is:)2.5 E F1(autocd)144 622.8 Q F0 .2
+144 612 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
+-.25 F(option.)144 624 Q(The list of)144 640.8 Q F1(shopt)2.5 E F0
+(options is:)2.5 E F1(autocd)144 658.8 Q F0 .2
 (If set, a command name that is the name of a directory is e)11.11 F
 -.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 634.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(ment to the)184 670.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
 (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 646.8 Q(ars)-.1 E F0 .155(If set, an ar)184 658.8 R .155
+F1(cdable_v)144 682.8 Q(ars)-.1 E F0 .155(If set, an ar)184 694.8 R .155
 (gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
 (iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 670.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 682.8 Q F0
+(name of a v)184 706.8 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 718.8 Q F0
 1.055
 (If set, minor errors in the spelling of a directory component in a)
 10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
-(corrected. The)184 694.8 R 1.487(errors check)3.987 F 1.487
+(corrected. The)184 730.8 R 1.487(errors check)3.987 F 1.487
 (ed for are transposed characters, a missing character)-.1 F 3.988(,a)
--.4 G(nd)-3.988 E .552(one character too man)184 706.8 R 4.352 -.65
-(y. I)-.15 H 3.052(fac).65 G .552
-(orrection is found, the corrected \214le name is printed, and)-3.052 F
-(the command proceeds.)184 718.8 Q
-(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
+-.4 G(nd)-3.988 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725
+E 0 Cg EP
 %%Page: 16 16
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(checkhash)144 84 Q F0 2.079(If set,)184 96 R F1(bash)
-4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
-2.08(xists before trying to)-.15 F -.15(exe)184 108 S(cute it.).15 E
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .552
+(one character too man)184 84 R 4.352 -.65(y. I)-.15 H 3.052(fac).65 G
+.552(orrection is found, the corrected \214le name is printed, and)
+-3.052 F(the command proceeds.)184 96 Q
+(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
+.15 E/F1 10/Times-Bold@0 SF(checkhash)144 108 Q F0 2.079(If set,)184 120
+R F1(bash)4.579 E F0 2.079
+(checks that a command found in the hash table e)4.579 F 2.08
+(xists before trying to)-.15 F -.15(exe)184 132 S(cute it.).15 E
 (If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 120 Q
-F0 .449(If set,)184 132 R F1(bash)2.949 E F0 .449
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 144 Q
+F0 .449(If set,)184 156 R F1(bash)2.949 E F0 .449
 (lists the status of an)2.949 F 2.949(ys)-.15 G .448
 (topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.438(shell. If)184 144 R(an)3.438 E 3.438(yj)-.15 G
+F -.15(ve)-.25 G 3.438(shell. If)184 168 R(an)3.438 E 3.438(yj)-.15 G
 .938(obs are running, this causes the e)-3.438 F .938
 (xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456
-(attempted without an interv)184 156 R 1.456(ening command \(see)-.15 F
+(attempted without an interv)184 180 R 1.456(ening command \(see)-.15 F
 F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G 3.956
-(\). The).15 F(shell)3.956 E(al)184 168 Q -.1(wa)-.1 G(ys postpones e).1
+(\). The).15 F(shell)3.956 E(al)184 192 Q -.1(wa)-.1 G(ys postpones e).1
 E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)-2.5 E F1
-(checkwinsize)144 180 Q F0 .796(If set,)184 192 R F1(bash)3.296 E F0
+(checkwinsize)144 204 Q F0 .796(If set,)184 216 R F1(bash)3.296 E F0
 .796(checks the windo)3.296 F 3.296(ws)-.25 G .797
 (ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G .797
-(pdates the)-3.297 F -.25(va)184 204 S(lues of).25 E/F2 9/Times-Bold@0
+(pdates the)-3.297 F -.25(va)184 228 S(lues of).25 E/F2 9/Times-Bold@0
 SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A
-F1(cmdhist)144 216 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
+F1(cmdhist)144 240 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
 (attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
 (ll lines of a multiple-line command in the same history).15 F(entry)184
-228 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 240 Q
-F0 .419(If set,)184 252 R F1(bash)2.919 E F0 .419(changes its beha)2.919
+252 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 264 Q
+F0 .419(If set,)184 276 R F1(bash)2.919 E F0 .419(changes its beha)2.919
 F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar)
--.15 F(guments)-.18 E(to the conditional command')184 264 Q 2.5(s=)-.55
-G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dirspell)144 276 Q F0 .859
+-.15 F(guments)-.18 E(to the conditional command')184 288 Q 2.5(s=)-.55
+G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dirspell)144 300 Q F0 .859
 (If set,)7.77 F F1(bash)3.359 E F0 .858
 (attempts spelling correction on directory names during w)3.359 F .858
 (ord completion if)-.1 F
-(the directory name initially supplied does not e)184 288 Q(xist.)-.15 E
-F1(dotglob)144 300 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 312 Q(xist.)-.15 E
+F1(dotglob)144 324 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
 (includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
 -.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 312 Q F0 1.387
+(xpansion.)-.15 E F1(execfail)144 336 Q F0 1.387
 (If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
 (hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.386(cute the \214le speci\214ed as an).15 F(ar)184 324 Q
+1.386(cute the \214le speci\214ed as an).15 F(ar)184 348 Q
 (gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
 (An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 336 Q F0
-.716(If set, aliases are e)184 348 R .717(xpanded as described abo)-.15
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 360 Q F0
+.716(If set, aliases are e)184 372 R .717(xpanded as described abo)-.15
 F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .717
-(This option is enabled)5.217 F(by def)184 360 Q(ault for interacti)-.1
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 372 Q(ug)-.2 E F0
-(If set, beha)184 384 Q(vior intended for use by deb)-.2 E
-(uggers is enabled:)-.2 E F1(1.)184 396 Q F0(The)28.5 E F1<ad46>4.251 E
+(This option is enabled)5.217 F(by def)184 384 Q(ault for interacti)-.1
+E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 396 Q(ug)-.2 E F0
+(If set, beha)184 408 Q(vior intended for use by deb)-.2 E
+(uggers is enabled:)-.2 E F1(1.)184 420 Q F0(The)28.5 E F1<ad46>4.251 E
 F0 1.751(option to the)4.251 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)
 4.251 G 1.751(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 408 Q
-(gument.)-.18 E F1(2.)184 420 Q F0 1.667(If the command run by the)28.5
+(number corresponding to each function name supplied as an ar)220 432 Q
+(gument.)-.18 E F1(2.)184 444 Q F0 1.667(If the command run by the)28.5
 F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 432
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 444 Q F0 .841
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 456
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 468 Q F0 .841
 (If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841
 (trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
-(exe)220 456 S .488
+(exe)220 480 S .488
 (cuting in a subroutine \(a shell function or a shell script e).15 F
 -.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 468 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+(sour)220 492 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
 -.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184
-480 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0
+504 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0
 1.275(are updated as described in their descrip-)3.776 F(tions abo)220
-492 Q -.15(ve)-.15 G(.).15 E F1(5.)184 504 Q F0 1.359
+516 Q -.15(ve)-.15 G(.).15 E F1(5.)184 528 Q F0 1.359
 (Function tracing is enabled:)28.5 F 1.359
 (command substitution, shell functions, and sub-)6.359 F(shells in)220
-516 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
+540 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
 /Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
 (DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 528 Q F0 .805(Error tracing is enabled:)28.5 F .804
-(command substitution, shell functions, and subshells)5.805 F(in)220 540
+184 552 Q F0 .805(Error tracing is enabled:)28.5 F .804
+(command substitution, shell functions, and subshells)5.805 F(in)220 564
 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0
-(trap.)2.5 E F1(extglob)144 552 Q F0 .4(If set, the e)8.89 F .4
+(trap.)2.5 E F1(extglob)144 576 Q F0 .4(If set, the e)8.89 F .4
 (xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 564 Q
-F0(are enabled.)2.5 E F1(extquote)144 576 Q F0 2.473(If set,)184 588 R
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 588 Q
+F0(are enabled.)2.5 E F1(extquote)144 600 Q F0 2.473(If set,)184 612 R
 F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
 E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
 -4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 600 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 612 Q F0
+(pansions).15 E(enclosed in double quotes.)184 624 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 636 Q F0
 1.424(If set, patterns which f)7.77 F 1.425
 (ail to match \214lenames during pathname e)-.1 F 1.425
-(xpansion result in an)-.15 F -.15(ex)184 624 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 636 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.585(If set, the suf)184 648 R<8c78>-.25 E .585(es speci\214ed by the)
+(xpansion result in an)-.15 F -.15(ex)184 648 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 660 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.585(If set, the suf)184 672 R<8c78>-.25 E .585(es speci\214ed by the)
 -.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w)
--.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 660 R .32
+-.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 684 R .32
 (ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
 (he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.33
-(pletions. See)184 672 R F2 .83(SHELL V)3.33 F(ARIABLES)-1.215 E F0(abo)
+(pletions. See)184 696 R F2 .83(SHELL V)3.33 F(ARIABLES)-1.215 E F0(abo)
 3.08 E 1.13 -.15(ve f)-.15 H .829(or a description of).15 F F1(FIGNORE)
-3.329 E F0 5.829(.T)C .829(his option)-5.829 F(is enabled by def)184 684
-Q(ault.)-.1 E F1(globstar)144 696 Q F0 .439(If set, the pattern)5 F F1
-(**)2.939 E F0 .439(used in a \214lename e)2.939 F .439(xpansion conte)
--.15 F .44(xt will match a \214les and zero or)-.15 F 1.298
-(more directories and subdirectories.)184 708 R 1.298
-(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0
-3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184
-720 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
+3.329 E F0 5.829(.T)C .829(his option)-5.829 F(is enabled by def)184 708
+Q(ault.)-.1 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0
+Cg EP
 %%Page: 17 17
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(gnu_errfmt)144 84 Q F0(If set, shell error messages ar\
-e written in the standard GNU error message format.)184 96 Q F1
-(histappend)144 108 Q F0 .383
+/Times-Bold@0 SF(globstar)144 84 Q F0 .439(If set, the pattern)5 F F1
+(**)2.939 E F0 .439(used in a \214lename e)2.939 F .439(xpansion conte)
+-.15 F .44(xt will match a \214les and zero or)-.15 F 1.298
+(more directories and subdirectories.)184 96 R 1.298
+(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0
+3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184
+108 Q F1(gnu_errfmt)144 120 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 132 Q F1(histappend)144
+144 Q F0 .383
 (If set, the history list is appended to the \214le named by the v)184
-120 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G
-(ri-).25 E(able when the shell e)184 132 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 144 Q(eedit)-.18
-E F0 .576(If set, and)184 156 R F1 -.18(re)3.076 G(adline).18 E F0 .575
+156 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G
+(ri-).25 E(able when the shell e)184 168 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 180 Q(eedit)-.18
+E F0 .576(If set, and)184 192 R F1 -.18(re)3.076 G(adline).18 E F0 .575
 (is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575
 (he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
-(tory substitution.)184 168 Q F1(histv)144 180 Q(erify)-.1 E F0 .402
-(If set, and)184 192 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+(tory substitution.)184 204 Q F1(histv)144 216 Q(erify)-.1 E F0 .402
+(If set, and)184 228 R F1 -.18(re)2.903 G(adline).18 E F0 .403
 (is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 204 R 5.662(.I)-.55 G .661
+2.903 F .662(passed to the shell parser)184 240 R 5.662(.I)-.55 G .661
 (nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
-G(adline).18 E F0(editing)3.161 E -.2(bu)184 216 S -.25(ff).2 G(er).25 E
+G(adline).18 E F0(editing)3.161 E -.2(bu)184 252 S -.25(ff).2 G(er).25 E
 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 228 Q F0 1.181(If set, and)184 240 R F1 -.18(re)3.681
+(hostcomplete)144 264 Q F0 1.181(If set, and)184 276 R F1 -.18(re)3.681
 G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
 (will attempt to perform hostname completion)3.682 F 1.381(when a w)184
-252 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+288 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
 (is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 264 Q -.15(ve)-.15 G
+/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 300 Q -.15(ve)-.15 G
 2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144
-276 Q F0(If set,)184 288 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)
+312 Q F0(If set,)184 324 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)
 2.5 E F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H
-(ogin shell e).15 E(xits.)-.15 E F1(interacti)144 300 Q -.1(ve)-.1 G
-(_comments).1 E F0 .33(If set, allo)184 312 R 2.83(waw)-.25 G .33
+(ogin shell e).15 E(xits.)-.15 E F1(interacti)144 336 Q -.1(ve)-.1 G
+(_comments).1 E F0 .33(If set, allo)184 348 R 2.83(waw)-.25 G .33
 (ord be)-2.93 F .33(ginning with)-.15 F F1(#)2.83 E F0 .33
 (to cause that w)2.83 F .33(ord and all remaining characters on)-.1 F
-.967(that line to be ignored in an interacti)184 324 R 1.267 -.15(ve s)
+.967(that line to be ignored in an interacti)184 360 R 1.267 -.15(ve s)
 -.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)
 -.15 G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184
-336 Q(ault.)-.1 E F1(lithist)144 348 Q F0 .654(If set, and the)15.55 F
+372 Q(ault.)-.1 E F1(lithist)144 384 Q F0 .654(If set, and the)15.55 F
 F1(cmdhist)3.154 E F0 .654
 (option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
-(with embedded ne)184 360 Q
+(with embedded ne)184 396 Q
 (wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 372 Q F0 .486
+(login_shell)144 408 Q F0 .486
 (The shell sets this option if it is started as a login shell \(see)184
-384 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
--.15 G 2.986(\). The).15 F -.25(va)184 396 S(lue may not be changed.).25
-E F1(mailwar)144 408 Q(n)-.15 E F0 .814(If set, and a \214le that)184
-420 R F1(bash)3.314 E F0 .815
+420 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
+-.15 G 2.986(\). The).15 F -.25(va)184 432 S(lue may not be changed.).25
+E F1(mailwar)144 444 Q(n)-.15 E F0 .814(If set, and a \214le that)184
+456 R F1(bash)3.314 E F0 .815
 (is checking for mail has been accessed since the last time it)3.314 F
--.1(wa)184 432 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+-.1(wa)184 468 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
 (`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
 (has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
-(no_empty_cmd_completion)144 444 Q F0 .146(If set, and)184 456 R F1 -.18
+(no_empty_cmd_completion)144 480 Q F0 .146(If set, and)184 492 R F1 -.18
 (re)2.646 G(adline).18 E F0 .146(is being used,)2.646 F F1(bash)2.646 E
 F0 .145(will not attempt to search the)2.646 F F1 -.74(PA)2.645 G(TH)
 -.21 E F0 .145(for possible)2.645 F
-(completions when completion is attempted on an empty line.)184 468 Q F1
-(nocaseglob)144 480 Q F0 .436(If set,)184 492 R F1(bash)2.936 E F0 .436
+(completions when completion is attempted on an empty line.)184 504 Q F1
+(nocaseglob)144 516 Q F0 .436(If set,)184 528 R F1(bash)2.936 E F0 .436
 (matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
-H .437(ashion when performing pathname).05 F -.15(ex)184 504 S
+H .437(ashion when performing pathname).05 F -.15(ex)184 540 S
 (pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 516 Q F0 1.194(If set,)184
-528 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 552 Q F0 1.194(If set,)184
+564 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
 3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
-F(while e)184 540 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
-E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 552 Q F0
-.854(If set,)184 564 R F1(bash)3.354 E F0(allo)3.354 E .855
+F(while e)184 576 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
+E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 588 Q F0
+.854(If set,)184 600 R F1(bash)3.354 E F0(allo)3.354 E .855
 (ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
 (thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
--3.355 E -.15(ex)184 576 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 588 Q(ogcomp)-.18 E F0 .677
-(If set, the programmable completion f)184 600 R .677(acilities \(see)
+-3.355 E -.15(ex)184 612 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 624 Q(ogcomp)-.18 E F0 .677
+(If set, the programmable completion f)184 636 R .677(acilities \(see)
 -.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E
--.15(ve)-.15 G(\)).15 E(are enabled.)184 612 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 624 Q(omptv)
--.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 636 R 1.448
+-.15(ve)-.15 G(\)).15 E(are enabled.)184 648 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 660 Q(omptv)
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 672 R 1.448
 (go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 648 S .171(pansion, and quote remo).15 F -.25(va)-.15
+-.15 F -.15(ex)184 684 S .171(pansion, and quote remo).15 F -.25(va)-.15
 G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
 -.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
-(This option is enabled by def)184 660 Q(ault.)-.1 E F1 -.18(re)144 672
-S(stricted_shell).18 E F0 1.069
-(The shell sets this option if it is started in restricted mode \(see)
-184 684 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 696 Q 4.178
-(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
-1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
-184 708 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
--.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP
+(This option is enabled by def)184 696 Q(ault.)-.1 E(GNU Bash-4.0)72 768
+Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP
 %%Page: 18 18
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(shift_v)144 84 Q(erbose)-.1 E F0 .501(If set, the)184
-96 R F1(shift)3.001 E F0 -.2(bu)3.001 G .501
+/Times-Bold@0 SF -.18(re)144 84 S(stricted_shell).18 E F0 1.069
+(The shell sets this option if it is started in restricted mode \(see)
+184 96 R/F2 9/Times-Bold@0 SF 1.069(RESTRICTED SHELL)3.569 F F0(belo)184
+108 Q 4.178(w\). The)-.25 F -.25(va)4.178 G 1.678
+(lue may not be changed.).25 F 1.678
+(This is not reset when the startup \214les are)6.678 F -.15(exe)184 120
+S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E -.15(ve)
+-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E F1
+(shift_v)144 132 Q(erbose)-.1 E F0 .501(If set, the)184 144 R F1(shift)
+3.001 E F0 -.2(bu)3.001 G .501
 (iltin prints an error message when the shift count e).2 F .502
-(xceeds the number)-.15 F(of positional parameters.)184 108 Q F1(sour)
-144 120 Q(cepath)-.18 E F0 .771(If set, the)184 132 R F1(sour)3.271 E
+(xceeds the number)-.15 F(of positional parameters.)184 156 Q F1(sour)
+144 168 Q(cepath)-.18 E F0 .771(If set, the)184 180 R F1(sour)3.271 E
 (ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
--3.471 F .771(alue of)-.25 F/F2 9/Times-Bold@0 SF -.666(PA)3.27 G(TH)
--.189 E F0 .77(to \214nd the directory containing the)3.02 F
-(\214le supplied as an ar)184 144 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 156 Q F0
-(If set, the)184 168 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
-(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
-108 180 Q F0([)2.5 E F1<ad66>A F0(])A 1.001(Suspend the e)144 192 R -.15
-(xe)-.15 G 1.001(cution of this shell until it recei).15 F -.15(ve)-.25
-G 3.501(sa).15 G F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002
-(login shell cannot be)3.502 F .023(suspended; the)144 204 R F1<ad66>
-2.523 E F0 .023(option can be used to o)2.523 F -.15(ve)-.15 G .022
+-3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
+(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
+184 192 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 204 Q F0(If set, the)184 216 Q F1(echo)2.5 E F0
+-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
+E(ault.)-.1 E F1(suspend)108 228 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
+(Suspend the e)144 240 R -.15(xe)-.15 G 1.001
+(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
+F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
+3.502 F .023(suspended; the)144 252 R F1<ad66>2.523 E F0 .023
+(option can be used to o)2.523 F -.15(ve)-.15 G .022
 (rride this and force the suspension.).15 F .022(The return status is)
-5.022 F 2.5(0u)144 216 S(nless the shell is a login shell and)-2.5 E F1
+5.022 F 2.5(0u)144 264 S(nless the shell is a login shell and)-2.5 E F1
 <ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
-F1(test)108 228 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108
-240 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
+F1(test)108 276 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108
+288 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
 (Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
 (luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
 (pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
-(operator and operand must be a separate ar)144 252 R 3.688
+(operator and operand must be a separate ar)144 300 R 3.688
 (gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
-1.889(described abo)144 264 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
+1.889(described abo)144 312 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
 (CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
 F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89
-(ptions, nor)-4.39 F(does it accept and ignore an ar)144 276 Q
+(ptions, nor)-4.39 F(does it accept and ignore an ar)144 324 Q
 (gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E .786(Expressions may be combined using the follo)144 294 R .785
+E .786(Expressions may be combined using the follo)144 342 R .785
 (wing operators, listed in decreasing order of prece-)-.25 F 2.5
-(dence. The)144 306 R -.25(eva)2.5 G
+(dence. The)144 354 R -.25(eva)2.5 G
 (luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65
-(w.)-.25 G F1(!)144 318 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
+(w.)-.25 G F1(!)144 366 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G
 (ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
-144 330 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
+144 378 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77
 F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
 (his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 342 Q F3 -.2(ex)
-144 354 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
-(Tr)180 366 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
--.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 378 S(pr1).2 E
-F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 390 S
+(rride the normal precedence of opera-).15 F(tors.)180 390 Q F3 -.2(ex)
+144 402 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
+(Tr)180 414 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
+-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 426 S(pr1).2 E
+F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 438 S
 (ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G
-(pr2).2 E F0(is true.)2.52 E F1(test)144 406.8 Q F0(and)2.5 E F1([)2.5 E
+(pr2).2 E F0(is true.)2.52 E F1(test)144 454.8 Q F0(and)2.5 E F1([)2.5 E
 F0 -.25(eva)2.5 G(luate conditional e).25 E
 (xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 424.8 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 436.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 448.8 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 460.8 Q
+(guments.)-.18 E 2.5(0a)144 472.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 484.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 496.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 508.8 Q
 (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 472.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 484.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+E 2.5(2a)144 520.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 532.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
 F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 496.8 R .38
+(gument is null.)-.18 F .379(If the \214rst ar)180 544.8 R .38
 (gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 508.8 Q .553
+-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 556.8 Q .553
 (AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552
 (xpression is true if the unary test is true.)-.15 F .552
-(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 520.8 Q
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 568.8 Q
 (alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 532.8 S -.18(rg)-2.5 G
-(uments).18 E .023(If the second ar)180 544.8 R .023
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 580.8 S -.18(rg)-2.5 G
+(uments).18 E .023(If the second ar)180 592.8 R .023
 (gument is one of the binary conditional operators listed abo)-.18 F
-.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 556.8 Q
+.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 604.8 Q
 1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F
 1.477(xpression is the result of the binary test)-.15 F .513
-(using the \214rst and third ar)180 568.8 R .513(guments as operands.)
+(using the \214rst and third ar)180 616.8 R .513(guments as operands.)
 -.18 F(The)5.513 E F1<ad61>3.013 E F0(and)3.013 E F1<ad6f>3.013 E F0
 .513(operators are considered)3.013 F .972
-(binary operators when there are three ar)180 580.8 R 3.472(guments. If)
+(binary operators when there are three ar)180 628.8 R 3.472(guments. If)
 -.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0
-3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 592.8
+3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 640.8
 R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884
 (gument test using the second and third ar)-.18 F 3.384(guments. If)-.18
-F .884(the \214rst)3.384 F(ar)180 604.8 Q .875(gument is e)-.18 F
+F .884(the \214rst)3.384 F(ar)180 652.8 Q .875(gument is e)-.18 F
 (xactly)-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875
 (gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874
 (he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar)
-180 616.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
--.15 E(alse.)-.1 E 2.5(4a)144 628.8 S -.18(rg)-2.5 G(uments).18 E .384
-(If the \214rst ar)180 640.8 R .384(gument is)-.18 F F1(!)2.884 E F0
+180 664.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)
+-.15 E(alse.)-.1 E 2.5(4a)144 676.8 S -.18(rg)-2.5 G(uments).18 E .384
+(If the \214rst ar)180 688.8 R .384(gument is)-.18 F F1(!)2.884 E F0
 2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385
 (tion of the three-ar).05 F .385(gument e)-.18 F .385(xpression com-)
--.15 F 1.648(posed of the remaining ar)180 652.8 R 4.147
+-.15 F 1.648(posed of the remaining ar)180 700.8 R 4.147
 (guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
 (xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
-(according to precedence using the rules listed abo)180 664.8 Q -.15(ve)
--.15 G(.).15 E 2.5(5o)144 676.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)
--.18 E 1.635(The e)180 688.8 R 1.635(xpression is parsed and e)-.15 F
--.25(va)-.25 G 1.635
-(luated according to precedence using the rules listed).25 F(abo)180
-700.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 717.6 Q F0 1.229(Print the \
-accumulated user and system times for the shell and for processes run f\
-rom the shell.)13.23 F(The return status is 0.)144 729.6 Q(GNU Bash-4.0)
-72 768 Q(2004 Apr 20)148.735 E(18)198.725 E 0 Cg EP
+(according to precedence using the rules listed abo)180 712.8 Q -.15(ve)
+-.15 G(.).15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(18)198.725 E
+0 Cg EP
 %%Page: 19 19
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(trap)108 84 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5
-E/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])
-2.5 E .702(The command)144 96 R F2(ar)3.532 E(g)-.37 E F0 .702
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.5(5o)144
+84 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18 E 1.635(The e)180 96 R
+1.635(xpression is parsed and e)-.15 F -.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180 108
+Q -.15(ve)-.15 G(.).15 E/F1 10/Times-Bold@0 SF(times)108 124.8 Q F0
+1.229(Print the accumulated user and system times for the shell and for\
+ processes run from the shell.)13.23 F(The return status is 0.)144 136.8
+Q F1(trap)108 153.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F2 10
+/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])2.5 E
+.702(The command)144 165.6 R F2(ar)3.532 E(g)-.37 E F0 .702
 (is to be read and e)3.422 F -.15(xe)-.15 G .702
 (cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G
 (ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F2
 (ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single)
-144 108 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E F0
-3.108(,e)C .608
+144 177.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
+F0 3.108(,e)C .608
 (ach speci\214ed signal is reset to its original disposition)-3.108 F
-.658(\(the v)144 120 R .658(alue it had upon entrance to the shell\).)
+.658(\(the v)144 189.6 R .658(alue it had upon entrance to the shell\).)
 -.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659
 (is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 132 Q F0 .581(is ignored by the shell and by the commands it in)
-3.391 F -.2(vo)-.4 G -.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E
-F0 .58(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
-(been supplied, then the trap commands associated with each)144 144 R F2
-(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215 F
-(gu-)-.18 E .86(ments are supplied or if only)144 156 R F1<ad70>3.36 E
-F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
+144.34 201.6 Q F0 .581
+(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
+-.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
+(been supplied, then the trap commands associated with each)144 213.6 R
+F2(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
+F(gu-)-.18 E .86(ments are supplied or if only)144 225.6 R F1<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
 (prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 168 R F1<ad6c>2.83 E F0 .33(option causes the shell to\
- print a list of signal names and their corresponding num-)2.83 F 4.311
-(bers. Each)144 180 R F2(sigspec)4.651 E F0 1.811
+(signal. The)144 237.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \
+to print a list of signal names and their corresponding num-)2.83 F
+4.311(bers. Each)144 249.6 R F2(sigspec)4.651 E F0 1.811
 (is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81
 (>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E .745
-(names are case insensiti)144 192 R 1.045 -.15(ve a)-.25 H .745
+(names are case insensiti)144 261.6 R 1.045 -.15(ve a)-.25 H .745
 (nd the SIG pre\214x is optional.).15 F .745(If a)5.745 F F2(sigspec)
 3.585 E F0(is)3.555 E/F3 9/Times-Bold@0 SF(EXIT)3.245 E F0 .745
-(\(0\) the command)2.995 F F2(ar)144.33 204 Q(g)-.37 E F0 1.63(is e)4.35
-F -.15(xe)-.15 G 1.63(cuted on e).15 F 1.63(xit from the shell.)-.15 F
-1.63(If a)6.63 F F2(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E
-/F4 9/Times-Roman@0 SF(,)A F0 1.629(the command)3.88 F F2(ar)4.459 E(g)
--.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G(cuted).15 E 1.206(before e)
-144 216 R -.15(ve)-.25 G(ry).15 E F2 1.206(simple command)3.706 F F0(,)A
-F2(for)3.706 E F0(command,)3.706 E F2(case)3.706 E F0(command,)3.706 E
-F2(select)3.707 E F0 1.207(command, e)3.707 F -.15(ve)-.25 G 1.207
-(ry arithmetic).15 F F2(for)144 228 Q F0 .412
+(\(0\) the command)2.995 F F2(ar)144.33 273.6 Q(g)-.37 E F0 1.63(is e)
+4.35 F -.15(xe)-.15 G 1.63(cuted on e).15 F 1.63(xit from the shell.)
+-.15 F 1.63(If a)6.63 F F2(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)
+-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.629(the command)3.88 F F2(ar)4.459
+E(g)-.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G(cuted).15 E 1.206
+(before e)144 285.6 R -.15(ve)-.25 G(ry).15 E F2 1.206(simple command)
+3.706 F F0(,)A F2(for)3.706 E F0(command,)3.706 E F2(case)3.706 E F0
+(command,)3.706 E F2(select)3.707 E F0 1.207(command, e)3.707 F -.15(ve)
+-.25 G 1.207(ry arithmetic).15 F F2(for)144 297.6 Q F0 .412
 (command, and before the \214rst command e)2.913 F -.15(xe)-.15 G .412
 (cutes in a shell function \(see).15 F F3 .412(SHELL GRAMMAR)2.912 F F0
-(abo)144 240 Q -.15(ve)-.15 G 2.665(\). Refer).15 F .166
+(abo)144 309.6 Q -.15(ve)-.15 G 2.665(\). Refer).15 F .166
 (to the description of the)2.665 F F1(extdeb)2.666 E(ug)-.2 E F0 .166
 (option to the)2.666 F F1(shopt)2.666 E F0 -.2(bu)2.666 G .166
-(iltin for details of its ef).2 F(fect)-.25 E .509(on the)144 252 R F1
+(iltin for details of its ef).2 F(fect)-.25 E .509(on the)144 321.6 R F1
 (DEB)3.009 E(UG)-.1 E F0 3.009(trap. If)3.009 F(a)3.009 E F2(sigspec)
 3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508(the command)2.758 F
 F2(ar)3.338 E(g)-.37 E F0 .508(is e)3.228 F -.15(xe)-.15 G .508
 (cuted whene).15 F -.15(ve)-.25 G 3.008(ras).15 G .508(imple com-)-3.008
-F 2.506(mand has a non\255zero e)144 264 R 2.506
+F 2.506(mand has a non\255zero e)144 333.6 R 2.506
 (xit status, subject to the follo)-.15 F 2.506(wing conditions.)-.25 F
 (The)7.506 E F3(ERR)5.006 E F0 2.506(trap is not)4.756 F -.15(exe)144
-276 S .105(cuted if the f).15 F .105
+345.6 S .105(cuted if the f).15 F .105
 (ailed command is part of the command list immediately follo)-.1 F .105
 (wing a)-.25 F F1(while)2.605 E F0(or)2.605 E F1(until)2.605 E F0 -.1
-(ke)144 288 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F2(if)
+(ke)144 357.6 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F2(if)
 3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G
 .549(cuted in a).15 F F1(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF<efef>
-3.049 E F0 .549(list, or if)3.049 F .578(the command')144 300 R 3.078
+3.049 E F0 .549(list, or if)3.049 F .578(the command')144 369.6 R 3.078
 (sr)-.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)
 -.4 G .578(rted via).15 F F1(!)3.078 E F0 5.577(.T)C .577
 (hese are the same conditions obe)-5.577 F .577(yed by the)-.15 F F1
-(err)144 312 Q(exit)-.18 E F0 3.03(option. If)3.03 F(a)3.03 E F2
+(err)144 381.6 Q(exit)-.18 E F0 3.03(option. If)3.03 F(a)3.03 E F2
 (sigspec)3.37 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531
 (the command)2.781 F F2(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15
 (xe)-.15 G .531(cuted each time a shell function).15 F .317
-(or a script e)144 324 R -.15(xe)-.15 G .317(cuted with the).15 F F1(.)
-2.817 E F0(or)2.817 E F1(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G .317
-(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
+(or a script e)144 393.6 R -.15(xe)-.15 G .317(cuted with the).15 F F1
+(.)2.817 E F0(or)2.817 E F1(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G
+.317(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F
 .316(ignored upon entry to)2.817 F .787
-(the shell cannot be trapped or reset.)144 336 R -.35(Tr)5.787 G .787
+(the shell cannot be trapped or reset.)144 405.6 R -.35(Tr)5.787 G .787
 (apped signals that are not being ignored are reset to their).35 F 1.1
-(original v)144 348 R 1.1(alues in a child process when it is created.)
--.25 F 1.1(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F2
-(sigspec)3.94 E F0(is)3.91 E(in)144 360 Q -.25(va)-.4 G(lid; otherwise)
-.25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108 376.8 Q F0([)2.5
-E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E
--.4(Wi)144 388.8 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G
+(original v)144 417.6 R 1.1
+(alues in a child process when it is created.)-.25 F 1.1
+(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F2(sigspec)
+3.94 E F0(is)3.91 E(in)144 429.6 Q -.25(va)-.4 G(lid; otherwise).25 E F1
+(trap)2.5 E F0(returns true.)2.5 E F1(type)108 446.4 Q F0([)2.5 E F1
+(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E -.4
+(Wi)144 458.4 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G
 (ach)-2.673 E F2(name)3.033 E F0 -.1(wo)2.853 G .174
 (uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
-F1<ad74>144 400.8 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
+F1<ad74>144 470.4 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
 .843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
 F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
 (,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
-(\214le)5.252 E F0(if)3.522 E F2(name)144.36 412.8 Q F0 .086
+(\214le)5.252 E F0(if)3.522 E F2(name)144.36 482.4 Q F0 .086
 (is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
 (ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
 (ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
 (name)2.947 E F0 .087(is not)2.767 F .119
-(found, then nothing is printed, and an e)144 424.8 R .118
+(found, then nothing is printed, and an e)144 494.4 R .118
 (xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
 F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
-(either returns the name of the disk \214le that w)144 436.8 R .855
+(either returns the name of the disk \214le that w)144 506.4 R .855
 (ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
 .855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
-144 448.8 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
+144 518.4 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
 G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
 F1<ad50>3.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189
-E F0 .112(search for each)144 460.8 R F2(name)2.612 E F0 2.612(,e)C -.15
+E F0 .112(search for each)144 530.4 R F2(name)2.612 E F0 2.612(,e)C -.15
 (ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F6 .113(type -t name)2.613 F F0
 -.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I)
 .18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F1<ad70>2.613 E
-F0(and)144 472.8 Q F1<ad50>2.945 E F0 .445(print the hashed v)2.945 F
+F0(and)144 542.4 Q F1<ad50>2.945 E F0 .445(print the hashed v)2.945 F
 .444(alue, not necessarily the \214le that appears \214rst in)-.25 F F3
 -.666(PA)2.944 G(TH)-.189 E F4(.)A F0 .444(If the)4.944 F F1<ad61>2.944
-E F0(option)2.944 E .265(is used,)144 484.8 R F1(type)2.765 E F0 .265
+E F0(option)2.944 E .265(is used,)144 554.4 R F1(type)2.765 E F0 .265
 (prints all of the places that contain an e)2.765 F -.15(xe)-.15 G .265
 (cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265
 (his includes aliases)-5.265 F .427(and functions, if and only if the)
-144 496.8 R F1<ad70>2.926 E F0 .426(option is not also used.)2.926 F
+144 566.4 R F1<ad70>2.926 E F0 .426(option is not also used.)2.926 F
 .426(The table of hashed commands is not)5.426 F .548
-(consulted when using)144 508.8 R F1<ad61>3.048 E F0 5.548(.T)C(he)
+(consulted when using)144 578.4 R F1<ad61>3.048 E F0 5.548(.T)C(he)
 -5.548 E F1<ad66>3.048 E F0 .549
 (option suppresses shell function lookup, as with the)3.048 F F1
-(command)3.049 E F0 -.2(bu)144 520.8 S(iltin.).2 E F1(type)5 E F0
+(command)3.049 E F0 -.2(bu)144 590.4 S(iltin.).2 E F1(type)5 E F0
 (returns true if all of the ar)2.5 E(guments are found, f)-.18 E
-(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 537.6
+(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 607.2
 Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2
-(limit)A F0(]])A(Pro)144 549.6 Q .244(vides control o)-.15 F -.15(ve)
+(limit)A F0(]])A(Pro)144 619.2 Q .244(vides control o)-.15 F -.15(ve)
 -.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244
 (ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 561.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
+.943(that allo)144 631.2 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
 (The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
 (options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 573.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 643.2 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
 (hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 585.6 R .425
+ft limit may)2.709 F .425(be increased up to the v)144 655.2 R .425
 (alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
 F0(nor)2.926 E F1<ad53>2.926 E F0 .426
 (is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-597.6 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+667.2 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
 (can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 609.6 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
+.741(of the special v)144 679.2 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
 (soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
 C .741(hich stand for the current hard limit, the current)-3.241 F .78
-(soft limit, and no limit, respecti)144 621.6 R -.15(ve)-.25 G(ly).15 E
+(soft limit, and no limit, respecti)144 691.2 R -.15(ve)-.25 G(ly).15 E
 5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
 (is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .498(resource is printed, unless the)144 633.6 R F1<ad48>2.999 E F0
+F .498(resource is printed, unless the)144 703.2 R F1<ad48>2.999 E F0
 .499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
 (more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 645.6 Q 2.5
-(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
-<ad61>144 657.6 Q F0(All current limits are reported)25.3 E F1<ad62>144
-669.6 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
-F1<ad63>144 681.6 Q F0(The maximum size of core \214les created)25.86 E
-F1<ad64>144 693.6 Q F0(The maximum size of a process')24.74 E 2.5(sd)
--.55 G(ata se)-2.5 E(gment)-.15 E F1<ad65>144 705.6 Q F0
-(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 717.6 Q
-F0(The maximum size of \214les written by the shell and its children)
-26.97 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP
+(limit name and unit are printed before the v)144 715.2 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP
 %%Page: 20 20
 %%BeginPageSetup
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad69>144 84 Q F0(The maximum number of pending signals)
-27.52 E F1<ad6c>144 96 Q F0(The maximum size that may be lock)27.52 E
-(ed into memory)-.1 E F1<ad6d>144 108 Q F0
-(The maximum resident set size)21.97 E F1<ad6e>144 120 Q F0 .791(The ma\
-ximum number of open \214le descriptors \(most systems do not allo)24.74
-F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180 132 Q
-F1<ad70>144 144 Q F0
+/Times-Bold@0 SF<ad61>144 84 Q F0(All current limits are reported)25.3 E
+F1<ad62>144 96 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E
+(fer size)-.25 E F1<ad63>144 108 Q F0
+(The maximum size of core \214les created)25.86 E F1<ad64>144 120 Q F0
+(The maximum size of a process')24.74 E 2.5(sd)-.55 G(ata se)-2.5 E
+(gment)-.15 E F1<ad65>144 132 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 144 Q F0
+(The maximum size of \214les written by the shell and its children)26.97
+E F1<ad69>144 156 Q F0(The maximum number of pending signals)27.52 E F1
+<ad6c>144 168 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 180 Q F0
+(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
+(ystems do not honor this limit\))-2.5 E F1<ad6e>144 192 Q F0 .791(The \
+maximum number of open \214le descriptors \(most systems do not allo)
+24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
+204 Q F1<ad70>144 216 Q F0
 (The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
-<ad71>144 156 Q F0(The maximum number of bytes in POSIX message queues)
-24.74 E F1<ad72>144 168 Q F0(The maximum real-time scheduling priority)
-25.86 E F1<ad73>144 180 Q F0(The maximum stack size)26.41 E F1<ad74>144
-192 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144
-204 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
-(ilable to a single user).25 E F1<ad76>144 216 Q F0
+<ad71>144 228 Q F0(The maximum number of bytes in POSIX message queues)
+24.74 E F1<ad72>144 240 Q F0(The maximum real-time scheduling priority)
+25.86 E F1<ad73>144 252 Q F0(The maximum stack size)26.41 E F1<ad74>144
+264 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144
+276 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 288 Q F0
 (The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
-(ilable to the shell).25 E F1<ad78>144 228 Q F0
-(The maximum number of \214le locks)25.3 E F1<ad54>144 240 Q F0
-(The maximum number of threads)23.63 E(If)144 256.8 Q/F2 10
+(ilable to the shell).25 E F1<ad78>144 300 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 312 Q F0
+(The maximum number of threads)23.63 E(If)144 328.8 Q/F2 10
 /Times-Italic@0 SF(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G
 .343(n, it is the ne).15 F 2.843(wv)-.25 G .343
 (alue of the speci\214ed resource \(the)-3.093 F F1<ad61>2.843 E F0 .343
 (option is display only\).)2.843 F .343(If no)5.343 F .176(option is gi)
-144 268.8 R -.15(ve)-.25 G .176(n, then).15 F F1<ad66>2.676 E F0 .175
+144 340.8 R -.15(ve)-.25 G .176(n, then).15 F F1<ad66>2.676 E F0 .175
 (is assumed.)2.676 F -1.11(Va)5.175 G .175
 (lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F1
-<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 280.8
+<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 352.8
 Q F1<ad70>2.515 E F0 2.515(,w)C .015
 (hich is in units of 512-byte blocks, and)-2.515 F F1<ad54>2.516 E F0(,)
 A F1<ad62>2.516 E F0(,)A F1<ad6e>2.516 E F0 2.516(,a)C(nd)-2.516 E F1
 <ad75>2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E
-3.788(ues. The)144 292.8 R 1.287(return status is 0 unless an in)3.787 F
+3.788(ues. The)144 364.8 R 1.287(return status is 0 unless an in)3.787 F
 -.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
 (gument is supplied, or an error occurs)-.18 F(while setting a ne)144
-304.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 321.6 Q F0([)2.5 E F1
+376.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 393.6 Q F0([)2.5 E F1
 <ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
-(The user \214le-creation mask is set to)144 333.6 R F2(mode)2.7 E F0
+(The user \214le-creation mask is set to)144 405.6 R F2(mode)2.7 E F0
 5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
 (gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
 therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 345.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-357.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+pted by)144 417.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+429.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
 (alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
 (option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 369.6 R .547
+(printed in symbolic form; the def)144 441.6 R .547
 (ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
 (he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 381.6 Q F0 .551
+(mode)144.38 453.6 Q F0 .551
 (is omitted, the output is in a form that may be reused as input.)3.231
-F .552(The return status is 0 if the)5.552 F(mode w)144 393.6 Q
+F .552(The return status is 0 if the)5.552 F(mode w)144 465.6 Q
 (as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
 (gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
-(unalias)108 410.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
-(...])2.5 E(Remo)144 422.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
+(unalias)108 482.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 494.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
 4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
 F1<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
-F(remo)144 434.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+F(remo)144 506.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
 (alue is true unless a supplied)-.25 E F2(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F1(unset)108 451.2 Q F0<5bad>2.5 E F1
-(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 463.2 S 3.106
+(is not a de\214ned alias.)2.68 E F1(unset)108 523.2 Q F0<5bad>2.5 E F1
+(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 535.2 S 3.106
 (re).15 G(ach)-3.106 E F2(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
 .906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607
 (ariable or function.)-.25 F .607(If no options are supplied, or the)
-5.607 F F1<ad76>144 475.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
+5.607 F F1<ad76>144 547.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
 .305(n, each).15 F F2(name)3.165 E F0 .305(refers to a shell v)2.985 F
 2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304
-(riables may not be unset.).25 F(If)5.304 E F1<ad66>144 487.2 Q F0 .459
+(riables may not be unset.).25 F(If)5.304 E F1<ad66>144 559.2 Q F0 .459
 (is speci\214ed, each)2.959 F F2(name)3.319 E F0 .459
 (refers to a shell function, and the function de\214nition is remo)3.139
-F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 499.2 R .903
+F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 571.2 R .903
 (ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
 (rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F
-(If)5.902 E(an)144 511.2 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0
+(If)5.902 E(an)144 583.2 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0
 SF(RANDOM)4.284 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3
 (LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME)
 -.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST)
 4.285 E -.495(AC)-.81 G(K).495 E F0(are)4.035 E .329(unset, the)144
-523.2 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
+595.2 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
 -.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya)
 -.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .328
-(xit status is true)-.15 F(unless a)144 535.2 Q F2(name)2.86 E F0
-(is readonly)2.68 E(.)-.65 E F1(wait)108 552 Q F0([)2.5 E F2 2.5(n.)C
-(..)-2.5 E F0(])A -.8(Wa)144 564 S .288
+(xit status is true)-.15 F(unless a)144 607.2 Q F2(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F1(wait)108 624 Q F0([)2.5 E F2 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 636 S .288
 (it for each speci\214ed process and return its termination status.).8 F
 (Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
-(job speci\214cation; if a job spec is gi)144 576 R -.15(ve)-.25 G .722
+(job speci\214cation; if a job spec is gi)144 648 R -.15(ve)-.25 G .722
 (n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
 -3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0
-(is)3.462 E 1.265(not gi)144 588 R -.15(ve)-.25 G 1.265
+(is)3.462 E 1.265(not gi)144 660 R -.15(ve)-.25 G 1.265
 (n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
 (hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
 (nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457
-(speci\214es a non-e)144 600 R .457
+(speci\214es a non-e)144 672 R .457
 (xistent process or job, the return status is 127.)-.15 F .457
-(Otherwise, the return status is the)5.457 F -.15(ex)144 612 S
+(Otherwise, the return status is the)5.457 F -.15(ex)144 684 S
 (it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
-/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 628.8 Q F0(bash\(1\), sh\(1\))108
-640.8 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP
+/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 700.8 Q F0(bash\(1\), sh\(1\))108
+712.8 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP
 %%Trailer
 end
 %%EOF
index 38d31e1660443292787aaa2a02671113d15dc770..2e56747d0bc0b9730baefbd89821868629c88a2e 100644 (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
index 778b02bd0d80891b4772fc5366a961a895623e37..af7ffb64ce02fcd401ff5234dc0f8197c6e8a55e 100644 (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);
 }
index 4843f4ba69cfb118683bb4e182230bef87373e11..bca7fb84107bccae4988092f2b8a148dfed6d479 100644 (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);
     }
diff --git a/execute_cmd.c~ b/execute_cmd.c~
new file mode 100644 (file)
index 0000000..ad67d64
--- /dev/null
@@ -0,0 +1,4893 @@
+/* execute_cmd.c -- Execute a COMMAND structure. */
+
+/* Copyright (C) 1987-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 (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX)
+  #pragma alloca
+#endif /* _AIX && RISC6000 && !__GNUC__ */
+
+#include <stdio.h>
+#include "chartypes.h"
+#include "bashtypes.h"
+#if !defined (_MINIX) && defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif
+#include "filecntl.h"
+#include "posixstat.h"
+#include <signal.h>
+#ifndef _MINIX
+#  include <sys/param.h>
+#endif
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "posixtime.h"
+
+#if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)
+#  include <sys/resource.h>
+#endif
+
+#if defined (HAVE_SYS_TIMES_H) && defined (HAVE_TIMES)
+#  include <sys/times.h>
+#endif
+
+#include <errno.h>
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+#include "bashansi.h"
+#include "bashintl.h"
+
+#include "memalloc.h"
+#include "shell.h"
+#include <y.tab.h>     /* use <...> so we pick it up from the build directory */
+#include "flags.h"
+#include "builtins.h"
+#include "hashlib.h"
+#include "jobs.h"
+#include "execute_cmd.h"
+#include "findcmd.h"
+#include "redir.h"
+#include "trap.h"
+#include "pathexp.h"
+#include "hashcmd.h"
+
+#if defined (COND_COMMAND)
+#  include "test.h"
+#endif
+
+#include "builtins/common.h"
+#include "builtins/builtext.h" /* list of builtins */
+
+#include <glob/strmatch.h>
+#include <tilde/tilde.h>
+
+#if defined (BUFFERED_INPUT)
+#  include "input.h"
+#endif
+
+#if defined (ALIAS)
+#  include "alias.h"
+#endif
+
+#if defined (HISTORY)
+#  include "bashhist.h"
+#endif
+
+extern int posixly_correct;
+extern int expand_aliases;
+extern int autocd;
+extern int breaking, continuing, loop_level;
+extern int parse_and_execute_level, running_trap;
+extern int command_string_index, line_number;
+extern int dot_found_in_search;
+extern int already_making_children;
+extern int tempenv_assign_error;
+extern char *the_printed_command, *shell_name;
+extern pid_t last_command_subst_pid;
+extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin;
+extern char **subshell_argv, **subshell_envp;
+extern int subshell_argc;
+#if 0
+extern char *glob_argv_flags;
+#endif
+
+extern int close __P((int));
+
+/* Static functions defined and used in this file. */
+static void close_pipes __P((int, int));
+static void do_piping __P((int, int));
+static void bind_lastarg __P((char *));
+static int shell_control_structure __P((enum command_type));
+static void cleanup_redirects __P((REDIRECT *));
+
+#if defined (JOB_CONTROL)
+static int restore_signal_mask __P((sigset_t *));
+#endif
+
+static void async_redirect_stdin __P((void));
+
+static int builtin_status __P((int));
+
+static int execute_for_command __P((FOR_COM *));
+#if defined (SELECT_COMMAND)
+static int print_index_and_element __P((int, int, WORD_LIST *));
+static void indent __P((int, int));
+static void print_select_list __P((WORD_LIST *, int, int, int));
+static char *select_query __P((WORD_LIST *, int, char *, int));
+static int execute_select_command __P((SELECT_COM *));
+#endif
+#if defined (DPAREN_ARITHMETIC)
+static int execute_arith_command __P((ARITH_COM *));
+#endif
+#if defined (COND_COMMAND)
+static int execute_cond_node __P((COND_COM *));
+static int execute_cond_command __P((COND_COM *));
+#endif
+#if defined (COMMAND_TIMING)
+static int mkfmt __P((char *, int, int, time_t, int));
+static void print_formatted_time __P((FILE *, char *,
+                                     time_t, int, time_t, int,
+                                     time_t, int, int));
+static int time_command __P((COMMAND *, int, int, int, struct fd_bitmap *));
+#endif
+#if defined (ARITH_FOR_COMMAND)
+static intmax_t eval_arith_for_expr __P((WORD_LIST *, int *));
+static int execute_arith_for_command __P((ARITH_FOR_COM *));
+#endif
+static int execute_case_command __P((CASE_COM *));
+static int execute_while_command __P((WHILE_COM *));
+static int execute_until_command __P((WHILE_COM *));
+static int execute_while_or_until __P((WHILE_COM *, int));
+static int execute_if_command __P((IF_COM *));
+static int execute_null_command __P((REDIRECT *, int, int, int));
+static void fix_assignment_words __P((WORD_LIST *));
+static int execute_simple_command __P((SIMPLE_COM *, int, int, int, struct fd_bitmap *));
+static int execute_builtin __P((sh_builtin_func_t *, WORD_LIST *, int, int));
+static int execute_function __P((SHELL_VAR *, WORD_LIST *, int, struct fd_bitmap *, int, int));
+static int execute_builtin_or_function __P((WORD_LIST *, sh_builtin_func_t *,
+                                           SHELL_VAR *,
+                                           REDIRECT *, struct fd_bitmap *, int));
+static void execute_subshell_builtin_or_function __P((WORD_LIST *, REDIRECT *,
+                                                     sh_builtin_func_t *,
+                                                     SHELL_VAR *,
+                                                     int, int, int,
+                                                     struct fd_bitmap *,
+                                                     int));
+static void execute_disk_command __P((WORD_LIST *, REDIRECT *, char *,
+                                     int, int, int, struct fd_bitmap *, int));
+
+static char *getinterp __P((char *, int, int *));
+static void initialize_subshell __P((void));
+static int execute_in_subshell __P((COMMAND *, int, int, int, struct fd_bitmap *));
+#if defined (COPROCESS_SUPPORT)
+static int execute_coproc __P((COMMAND *, int, int, struct fd_bitmap *));
+#endif
+
+static int execute_pipeline __P((COMMAND *, int, int, int, struct fd_bitmap *));
+
+static int execute_connection __P((COMMAND *, int, int, int, struct fd_bitmap *));
+
+static int execute_intern_function __P((WORD_DESC *, COMMAND *));
+
+/* Set to 1 if fd 0 was the subject of redirection to a subshell.  Global
+   so that reader_loop can set it to zero before executing a command. */
+int stdin_redir;
+
+/* The name of the command that is currently being executed.
+   `test' needs this, for example. */
+char *this_command_name;
+
+/* The printed representation of the currently-executing command (same as
+   the_printed_command), except when a trap is being executed.  Useful for
+   a debugger to know where exactly the program is currently executing. */
+char *the_printed_command_except_trap;
+
+/* For catching RETURN in a function. */
+int return_catch_flag;
+int return_catch_value;
+procenv_t return_catch;
+
+/* The value returned by the last synchronous command. */
+int last_command_exit_value;
+
+/* Whether or not the last command (corresponding to last_command_exit_value)
+   was terminated by a signal, and, if so, which one. */
+int last_command_exit_signal;
+
+/* The list of redirections to perform which will undo the redirections
+   that I made in the shell. */
+REDIRECT *redirection_undo_list = (REDIRECT *)NULL;
+
+/* The list of redirections to perform which will undo the internal
+   redirections performed by the `exec' builtin.  These are redirections
+   that must be undone even when exec discards redirection_undo_list. */
+REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL;
+
+/* When greater than zero, value is the `level' of builtins we are
+   currently executing (e.g. `eval echo a' would have it set to 2). */
+int executing_builtin = 0;
+
+/* Non-zero if we are executing a command list (a;b;c, etc.) */
+int executing_list = 0;
+
+/* Non-zero if failing commands in a command substitution should not exit the
+   shell even if -e is set.  Used to pass the CMD_IGNORE_RETURN flag down to
+   commands run in command substitutions by parse_and_execute. */
+int comsub_ignore_return = 0;
+
+/* Non-zero if we have just forked and are currently running in a subshell
+   environment. */
+int subshell_environment;
+
+/* Count of nested subshells, like SHLVL.  Available via $BASH_SUBSHELL */
+int subshell_level = 0;
+
+/* Currently-executing shell function. */
+SHELL_VAR *this_shell_function;
+
+/* If non-zero, matches in case and [[ ... ]] are case-insensitive */
+int match_ignore_case = 0;
+
+struct stat SB;                /* used for debugging */
+
+static int special_builtin_failed;
+
+static COMMAND *currently_executing_command;
+
+/* The line number that the currently executing function starts on. */
+static int function_line_number;
+
+/* XXX - set to 1 if we're running the DEBUG trap and we want to show the line
+   number containing the function name.  Used by executing_line_number to
+   report the correct line number.  Kind of a hack. */
+static int showing_function_line;
+
+static int line_number_for_err_trap;
+
+struct fd_bitmap *current_fds_to_close = (struct fd_bitmap *)NULL;
+
+#define FD_BITMAP_DEFAULT_SIZE 32
+
+/* Functions to allocate and deallocate the structures used to pass
+   information from the shell to its children about file descriptors
+   to close. */
+struct fd_bitmap *
+new_fd_bitmap (size)
+     int size;
+{
+  struct fd_bitmap *ret;
+
+  ret = (struct fd_bitmap *)xmalloc (sizeof (struct fd_bitmap));
+
+  ret->size = size;
+
+  if (size)
+    {
+      ret->bitmap = (char *)xmalloc (size);
+      memset (ret->bitmap, '\0', size);
+    }
+  else
+    ret->bitmap = (char *)NULL;
+  return (ret);
+}
+
+void
+dispose_fd_bitmap (fdbp)
+     struct fd_bitmap *fdbp;
+{
+  FREE (fdbp->bitmap);
+  free (fdbp);
+}
+
+void
+close_fd_bitmap (fdbp)
+     struct fd_bitmap *fdbp;
+{
+  register int i;
+
+  if (fdbp)
+    {
+      for (i = 0; i < fdbp->size; i++)
+       if (fdbp->bitmap[i])
+         {
+           close (i);
+           fdbp->bitmap[i] = 0;
+         }
+    }
+}
+
+/* Return the line number of the currently executing command. */
+int
+executing_line_number ()
+{
+  if (executing && showing_function_line == 0 &&
+      (variable_context == 0 || interactive_shell == 0) &&
+      currently_executing_command)
+    {
+#if defined (COND_COMMAND)
+      if (currently_executing_command->type == cm_cond)
+       return currently_executing_command->value.Cond->line;
+#endif
+#if defined (DPAREN_ARITHMETIC)
+      else if (currently_executing_command->type == cm_arith)
+       return currently_executing_command->value.Arith->line;
+#endif
+#if defined (ARITH_FOR_COMMAND)
+      else if (currently_executing_command->type == cm_arith_for)
+       return currently_executing_command->value.ArithFor->line;
+#endif
+
+       return line_number;
+    }
+  else
+    return line_number;
+}
+
+/* Execute the command passed in COMMAND.  COMMAND is exactly what
+   read_command () places into GLOBAL_COMMAND.  See "command.h" for the
+   details of the command structure.
+
+   EXECUTION_SUCCESS or EXECUTION_FAILURE are the only possible
+   return values.  Executing a command with nothing in it returns
+   EXECUTION_SUCCESS. */
+int
+execute_command (command)
+     COMMAND *command;
+{
+  struct fd_bitmap *bitmap;
+  int result;
+
+  current_fds_to_close = (struct fd_bitmap *)NULL;
+  bitmap = new_fd_bitmap (FD_BITMAP_DEFAULT_SIZE);
+  begin_unwind_frame ("execute-command");
+  add_unwind_protect (dispose_fd_bitmap, (char *)bitmap);
+
+  /* Just do the command, but not asynchronously. */
+  result = execute_command_internal (command, 0, NO_PIPE, NO_PIPE, bitmap);
+
+  dispose_fd_bitmap (bitmap);
+  discard_unwind_frame ("execute-command");
+
+#if defined (PROCESS_SUBSTITUTION)
+  /* don't unlink fifos if we're in a shell function; wait until the function
+     returns. */
+  if (variable_context == 0)
+    unlink_fifo_list ();
+#endif /* PROCESS_SUBSTITUTION */
+
+  QUIT;
+  return (result);
+}
+
+/* Return 1 if TYPE is a shell control structure type. */
+static int
+shell_control_structure (type)
+     enum command_type type;
+{
+  switch (type)
+    {
+#if defined (ARITH_FOR_COMMAND)
+    case cm_arith_for:
+#endif
+#if defined (SELECT_COMMAND)
+    case cm_select:
+#endif
+#if defined (DPAREN_ARITHMETIC)
+    case cm_arith:
+#endif
+#if defined (COND_COMMAND)
+    case cm_cond:
+#endif
+    case cm_case:
+    case cm_while:
+    case cm_until:
+    case cm_if:
+    case cm_for:
+    case cm_group:
+    case cm_function_def:
+      return (1);
+
+    default:
+      return (0);
+    }
+}
+
+/* A function to use to unwind_protect the redirection undo list
+   for loops. */
+static void
+cleanup_redirects (list)
+     REDIRECT *list;
+{
+  do_redirections (list, RX_ACTIVE);
+  dispose_redirects (list);
+}
+
+#if 0
+/* Function to unwind_protect the redirections for functions and builtins. */
+static void
+cleanup_func_redirects (list)
+     REDIRECT *list;
+{
+  do_redirections (list, RX_ACTIVE);
+}
+#endif
+
+void
+dispose_exec_redirects ()
+{
+  if (exec_redirection_undo_list)
+    {
+      dispose_redirects (exec_redirection_undo_list);
+      exec_redirection_undo_list = (REDIRECT *)NULL;
+    }
+}
+
+#if defined (JOB_CONTROL)
+/* A function to restore the signal mask to its proper value when the shell
+   is interrupted or errors occur while creating a pipeline. */
+static int
+restore_signal_mask (set)
+     sigset_t *set;
+{
+  return (sigprocmask (SIG_SETMASK, set, (sigset_t *)NULL));
+}
+#endif /* JOB_CONTROL */
+
+#ifdef DEBUG
+/* A debugging function that can be called from gdb, for instance. */
+void
+open_files ()
+{
+  register int i;
+  int f, fd_table_size;
+
+  fd_table_size = getdtablesize ();
+
+  fprintf (stderr, "pid %ld open files:", (long)getpid ());
+  for (i = 3; i < fd_table_size; i++)
+    {
+      if ((f = fcntl (i, F_GETFD, 0)) != -1)
+       fprintf (stderr, " %d (%s)", i, f ? "close" : "open");
+    }
+  fprintf (stderr, "\n");
+}
+#endif
+
+static void
+async_redirect_stdin ()
+{
+  int fd;
+
+  fd = open ("/dev/null", O_RDONLY);
+  if (fd > 0)
+    {
+      dup2 (fd, 0);
+      close (fd);
+    }
+  else if (fd < 0)
+    internal_error (_("cannot redirect standard input from /dev/null: %s"), strerror (errno));
+}
+
+#define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0)
+
+/* Execute the command passed in COMMAND, perhaps doing it asynchrounously.
+   COMMAND is exactly what read_command () places into GLOBAL_COMMAND.
+   ASYNCHROUNOUS, if non-zero, says to do this command in the background.
+   PIPE_IN and PIPE_OUT are file descriptors saying where input comes
+   from and where it goes.  They can have the value of NO_PIPE, which means
+   I/O is stdin/stdout.
+   FDS_TO_CLOSE is a list of file descriptors to close once the child has
+   been forked.  This list often contains the unusable sides of pipes, etc.
+
+   EXECUTION_SUCCESS or EXECUTION_FAILURE are the only possible
+   return values.  Executing a command with nothing in it returns
+   EXECUTION_SUCCESS. */
+int
+execute_command_internal (command, asynchronous, pipe_in, pipe_out,
+                         fds_to_close)
+     COMMAND *command;
+     int asynchronous;
+     int pipe_in, pipe_out;
+     struct fd_bitmap *fds_to_close;
+{
+  int exec_result, user_subshell, invert, ignore_return, was_error_trap;
+  REDIRECT *my_undo_list, *exec_undo_list;
+  volatile int last_pid;
+  volatile int save_line_number;
+
+#if 0
+  if (command == 0 || breaking || continuing || read_but_dont_execute)
+    return (EXECUTION_SUCCESS);
+#else
+  if (breaking || continuing)
+    return (last_command_exit_value);
+  if (command == 0 || read_but_dont_execute)
+    return (EXECUTION_SUCCESS);
+#endif
+
+  QUIT;
+  run_pending_traps ();
+
+#if 0
+  if (running_trap == 0)
+#endif
+    currently_executing_command = command;
+
+  invert = (command->flags & CMD_INVERT_RETURN) != 0;
+
+  /* If we're inverting the return value and `set -e' has been executed,
+     we don't want a failing command to inadvertently cause the shell
+     to exit. */
+  if (exit_immediately_on_error && invert)     /* XXX */
+    command->flags |= CMD_IGNORE_RETURN;       /* XXX */
+
+  exec_result = EXECUTION_SUCCESS;
+
+  /* If a command was being explicitly run in a subshell, or if it is
+     a shell control-structure, and it has a pipe, then we do the command
+     in a subshell. */
+  if (command->type == cm_subshell && (command->flags & CMD_NO_FORK))
+    return (execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close));
+
+#if defined (COPROCESS_SUPPORT)
+  if (command->type == cm_coproc)
+    return (execute_coproc (command, pipe_in, pipe_out, fds_to_close));
+#endif
+
+  user_subshell = command->type == cm_subshell || ((command->flags & CMD_WANT_SUBSHELL) != 0);
+
+  if (command->type == cm_subshell ||
+      (command->flags & (CMD_WANT_SUBSHELL|CMD_FORCE_SUBSHELL)) ||
+      (shell_control_structure (command->type) &&
+       (pipe_out != NO_PIPE || pipe_in != NO_PIPE || asynchronous)))
+    {
+      pid_t paren_pid;
+
+      /* Fork a subshell, turn off the subshell bit, turn off job
+        control and call execute_command () on the command again. */
+      paren_pid = make_child (savestring (make_command_string (command)),
+                             asynchronous);
+      if (paren_pid == 0)
+       exit (execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close));
+       /* NOTREACHED */
+      else
+       {
+         close_pipes (pipe_in, pipe_out);
+
+#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
+         unlink_fifo_list ();
+#endif
+         /* If we are part of a pipeline, and not the end of the pipeline,
+            then we should simply return and let the last command in the
+            pipe be waited for.  If we are not in a pipeline, or are the
+            last command in the pipeline, then we wait for the subshell
+            and return its exit status as usual. */
+         if (pipe_out != NO_PIPE)
+           return (EXECUTION_SUCCESS);
+
+         stop_pipeline (asynchronous, (COMMAND *)NULL);
+
+         if (asynchronous == 0)
+           {
+             was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0;
+             invert = (command->flags & CMD_INVERT_RETURN) != 0;
+             ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
+
+             last_command_exit_value = wait_for (paren_pid);
+
+             /* If we have to, invert the return value. */
+             if (invert)
+               exec_result = ((last_command_exit_value == EXECUTION_SUCCESS)
+                               ? EXECUTION_FAILURE
+                               : EXECUTION_SUCCESS);
+             else
+               exec_result = last_command_exit_value;
+
+
+             if (user_subshell && was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
+               {
+                 last_command_exit_value = exec_result;
+                 run_error_trap ();
+               }
+
+             if (user_subshell && ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
+               {
+                 last_command_exit_value = exec_result;
+                 run_pending_traps ();
+                 jump_to_top_level (ERREXIT);
+               }
+
+             return (last_command_exit_value = exec_result);
+           }
+         else
+           {
+             DESCRIBE_PID (paren_pid);
+
+             run_pending_traps ();
+
+             return (EXECUTION_SUCCESS);
+           }
+       }
+    }
+
+#if defined (COMMAND_TIMING)
+  if (command->flags & CMD_TIME_PIPELINE)
+    {
+      if (asynchronous)
+       {
+         command->flags |= CMD_FORCE_SUBSHELL;
+         exec_result = execute_command_internal (command, 1, pipe_in, pipe_out, fds_to_close);
+       }
+      else
+       {
+         exec_result = time_command (command, asynchronous, pipe_in, pipe_out, fds_to_close);
+#if 0
+         if (running_trap == 0)
+#endif
+           currently_executing_command = (COMMAND *)NULL;
+       }
+      return (exec_result);
+    }
+#endif /* COMMAND_TIMING */
+
+  if (shell_control_structure (command->type) && command->redirects)
+    stdin_redir = stdin_redirects (command->redirects);
+
+  /* Handle WHILE FOR CASE etc. with redirections.  (Also '&' input
+     redirection.)  */
+  if (do_redirections (command->redirects, RX_ACTIVE|RX_UNDOABLE) != 0)
+    {
+      cleanup_redirects (redirection_undo_list);
+      redirection_undo_list = (REDIRECT *)NULL;
+      dispose_exec_redirects ();
+      return (last_command_exit_value = EXECUTION_FAILURE);
+    }
+
+  if (redirection_undo_list)
+    {
+      my_undo_list = (REDIRECT *)copy_redirects (redirection_undo_list);
+      dispose_redirects (redirection_undo_list);
+      redirection_undo_list = (REDIRECT *)NULL;
+    }
+  else
+    my_undo_list = (REDIRECT *)NULL;
+
+  if (exec_redirection_undo_list)
+    {
+      exec_undo_list = (REDIRECT *)copy_redirects (exec_redirection_undo_list);
+      dispose_redirects (exec_redirection_undo_list);
+      exec_redirection_undo_list = (REDIRECT *)NULL;
+    }
+  else
+    exec_undo_list = (REDIRECT *)NULL;
+
+  if (my_undo_list || exec_undo_list)
+    begin_unwind_frame ("loop_redirections");
+
+  if (my_undo_list)
+    add_unwind_protect ((Function *)cleanup_redirects, my_undo_list);
+
+  if (exec_undo_list)
+    add_unwind_protect ((Function *)dispose_redirects, exec_undo_list);
+
+  ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
+
+  QUIT;
+
+  switch (command->type)
+    {
+    case cm_simple:
+      {
+       save_line_number = line_number;
+       /* We can't rely on variables retaining their values across a
+          call to execute_simple_command if a longjmp occurs as the
+          result of a `return' builtin.  This is true for sure with gcc. */
+#if defined (RECYCLES_PIDS)
+       last_made_pid = NO_PID;
+#endif
+       last_pid = last_made_pid;
+       was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0;
+
+       if (ignore_return && command->value.Simple)
+         command->value.Simple->flags |= CMD_IGNORE_RETURN;
+       if (command->flags & CMD_STDIN_REDIR)
+         command->value.Simple->flags |= CMD_STDIN_REDIR;
+
+       line_number_for_err_trap = line_number = command->value.Simple->line;
+       exec_result =
+         execute_simple_command (command->value.Simple, pipe_in, pipe_out,
+                                 asynchronous, fds_to_close);
+       line_number = save_line_number;
+
+       /* The temporary environment should be used for only the simple
+          command immediately following its definition. */
+       dispose_used_env_vars ();
+
+#if (defined (ultrix) && defined (mips)) || defined (C_ALLOCA)
+       /* Reclaim memory allocated with alloca () on machines which
+          may be using the alloca emulation code. */
+       (void) alloca (0);
+#endif /* (ultrix && mips) || C_ALLOCA */
+
+       /* If we forked to do the command, then we must wait_for ()
+          the child. */
+
+       /* XXX - this is something to watch out for if there are problems
+          when the shell is compiled without job control. */
+       if (already_making_children && pipe_out == NO_PIPE &&
+           last_made_pid != last_pid)
+         {
+           stop_pipeline (asynchronous, (COMMAND *)NULL);
+
+           if (asynchronous)
+             {
+               DESCRIBE_PID (last_made_pid);
+             }
+           else
+#if !defined (JOB_CONTROL)
+             /* Do not wait for asynchronous processes started from
+                startup files. */
+           if (last_made_pid != last_asynchronous_pid)
+#endif
+           /* When executing a shell function that executes other
+              commands, this causes the last simple command in
+              the function to be waited for twice.  This also causes
+              subshells forked to execute builtin commands (e.g., in
+              pipelines) to be waited for twice. */
+             exec_result = wait_for (last_made_pid);
+         }
+      }
+
+      /* 2009/02/13 -- pipeline failure is processed elsewhere.  This handles
+        only the failure of a simple command. */
+      if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS)
+       {
+         last_command_exit_value = exec_result;
+         run_error_trap ();
+       }
+
+      if (ignore_return == 0 && invert == 0 &&
+         ((posixly_correct && interactive == 0 && special_builtin_failed) ||
+          (exit_immediately_on_error && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS)))
+       {
+         last_command_exit_value = exec_result;
+         run_pending_traps ();
+         jump_to_top_level (ERREXIT);
+       }
+
+      break;
+
+    case cm_for:
+      if (ignore_return)
+       command->value.For->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_for_command (command->value.For);
+      break;
+
+#if defined (ARITH_FOR_COMMAND)
+    case cm_arith_for:
+      if (ignore_return)
+       command->value.ArithFor->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_arith_for_command (command->value.ArithFor);
+      break;
+#endif
+
+#if defined (SELECT_COMMAND)
+    case cm_select:
+      if (ignore_return)
+       command->value.Select->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_select_command (command->value.Select);
+      break;
+#endif
+
+    case cm_case:
+      if (ignore_return)
+       command->value.Case->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_case_command (command->value.Case);
+      break;
+
+    case cm_while:
+      if (ignore_return)
+       command->value.While->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_while_command (command->value.While);
+      break;
+
+    case cm_until:
+      if (ignore_return)
+       command->value.While->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_until_command (command->value.While);
+      break;
+
+    case cm_if:
+      if (ignore_return)
+       command->value.If->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_if_command (command->value.If);
+      break;
+
+    case cm_group:
+
+      /* This code can be executed from either of two paths: an explicit
+        '{}' command, or via a function call.  If we are executed via a
+        function call, we have already taken care of the function being
+        executed in the background (down there in execute_simple_command ()),
+        and this command should *not* be marked as asynchronous.  If we
+        are executing a regular '{}' group command, and asynchronous == 1,
+        we must want to execute the whole command in the background, so we
+        need a subshell, and we want the stuff executed in that subshell
+        (this group command) to be executed in the foreground of that
+        subshell (i.e. there will not be *another* subshell forked).
+
+        What we do is to force a subshell if asynchronous, and then call
+        execute_command_internal again with asynchronous still set to 1,
+        but with the original group command, so the printed command will
+        look right.
+
+        The code above that handles forking off subshells will note that
+        both subshell and async are on, and turn off async in the child
+        after forking the subshell (but leave async set in the parent, so
+        the normal call to describe_pid is made).  This turning off
+        async is *crucial*; if it is not done, this will fall into an
+        infinite loop of executions through this spot in subshell after
+        subshell until the process limit is exhausted. */
+
+      if (asynchronous)
+       {
+         command->flags |= CMD_FORCE_SUBSHELL;
+         exec_result =
+           execute_command_internal (command, 1, pipe_in, pipe_out,
+                                     fds_to_close);
+       }
+      else
+       {
+         if (ignore_return && command->value.Group->command)
+           command->value.Group->command->flags |= CMD_IGNORE_RETURN;
+         exec_result =
+           execute_command_internal (command->value.Group->command,
+                                     asynchronous, pipe_in, pipe_out,
+                                     fds_to_close);
+       }
+      break;
+
+    case cm_connection:
+      exec_result = execute_connection (command, asynchronous,
+                                       pipe_in, pipe_out, fds_to_close);
+      break;
+
+#if defined (DPAREN_ARITHMETIC)
+    case cm_arith:
+      if (ignore_return)
+       command->value.Arith->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_arith_command (command->value.Arith);
+      break;
+#endif
+
+#if defined (COND_COMMAND)
+    case cm_cond:
+      if (ignore_return)
+       command->value.Cond->flags |= CMD_IGNORE_RETURN;
+      save_line_number = line_number;
+      exec_result = execute_cond_command (command->value.Cond);
+      line_number = save_line_number;
+      break;
+#endif
+    
+    case cm_function_def:
+      exec_result = execute_intern_function (command->value.Function_def->name,
+                                            command->value.Function_def->command);
+      break;
+
+    default:
+      command_error ("execute_command", CMDERR_BADTYPE, command->type, 0);
+    }
+
+  if (my_undo_list)
+    {
+      do_redirections (my_undo_list, RX_ACTIVE);
+      dispose_redirects (my_undo_list);
+    }
+
+  if (exec_undo_list)
+    dispose_redirects (exec_undo_list);
+
+  if (my_undo_list || exec_undo_list)
+    discard_unwind_frame ("loop_redirections");
+
+  /* Invert the return value if we have to */
+  if (invert)
+    exec_result = (exec_result == EXECUTION_SUCCESS)
+                   ? EXECUTION_FAILURE
+                   : EXECUTION_SUCCESS;
+
+#if defined (DPAREN_ARITHMETIC) || defined (COND_COMMAND)
+  /* This is where we set PIPESTATUS from the exit status of the appropriate
+     compound commands (the ones that look enough like simple commands to
+     cause confusion).  We might be able to optimize by not doing this if
+     subshell_environment != 0. */
+  switch (command->type)
+    {
+#  if defined (DPAREN_ARITHMETIC)
+    case cm_arith:
+#  endif
+#  if defined (COND_COMMAND)
+    case cm_cond:
+#  endif
+      set_pipestatus_from_exit (exec_result);
+      break;
+    }
+#endif
+
+  last_command_exit_value = exec_result;
+  run_pending_traps ();
+#if 0
+  if (running_trap == 0)
+#endif
+    currently_executing_command = (COMMAND *)NULL;
+  return (last_command_exit_value);
+}
+
+#if defined (COMMAND_TIMING)
+
+#if defined (HAVE_GETRUSAGE) && defined (HAVE_GETTIMEOFDAY)
+extern struct timeval *difftimeval __P((struct timeval *, struct timeval *, struct timeval *));
+extern struct timeval *addtimeval __P((struct timeval *, struct timeval *, struct timeval *));
+extern int timeval_to_cpu __P((struct timeval *, struct timeval *, struct timeval *));
+#endif
+
+#define POSIX_TIMEFORMAT "real %2R\nuser %2U\nsys %2S"
+#define BASH_TIMEFORMAT  "\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS"
+
+static const int precs[] = { 0, 100, 10, 1 };
+
+/* Expand one `%'-prefixed escape sequence from a time format string. */
+static int
+mkfmt (buf, prec, lng, sec, sec_fraction)
+     char *buf;
+     int prec, lng;
+     time_t sec;
+     int sec_fraction;
+{
+  time_t min;
+  char abuf[INT_STRLEN_BOUND(time_t) + 1];
+  int ind, aind;
+
+  ind = 0;
+  abuf[sizeof(abuf) - 1] = '\0';
+
+  /* If LNG is non-zero, we want to decompose SEC into minutes and seconds. */
+  if (lng)
+    {
+      min = sec / 60;
+      sec %= 60;
+      aind = sizeof(abuf) - 2;
+      do
+       abuf[aind--] = (min % 10) + '0';
+      while (min /= 10);
+      aind++;
+      while (abuf[aind])
+       buf[ind++] = abuf[aind++];
+      buf[ind++] = 'm';
+    }
+
+  /* Now add the seconds. */
+  aind = sizeof (abuf) - 2;
+  do
+    abuf[aind--] = (sec % 10) + '0';
+  while (sec /= 10);
+  aind++;
+  while (abuf[aind])
+    buf[ind++] = abuf[aind++];
+
+  /* We want to add a decimal point and PREC places after it if PREC is
+     nonzero.  PREC is not greater than 3.  SEC_FRACTION is between 0
+     and 999. */
+  if (prec != 0)
+    {
+      buf[ind++] = '.';
+      for (aind = 1; aind <= prec; aind++)
+       {
+         buf[ind++] = (sec_fraction / precs[aind]) + '0';
+         sec_fraction %= precs[aind];
+       }
+    }
+
+  if (lng)
+    buf[ind++] = 's';
+  buf[ind] = '\0';
+
+  return (ind);
+}
+
+/* Interpret the format string FORMAT, interpolating the following escape
+   sequences:
+               %[prec][l][RUS]
+
+   where the optional `prec' is a precision, meaning the number of
+   characters after the decimal point, the optional `l' means to format
+   using minutes and seconds (MMmNN[.FF]s), like the `times' builtin',
+   and the last character is one of
+   
+               R       number of seconds of `real' time
+               U       number of seconds of `user' time
+               S       number of seconds of `system' time
+
+   An occurrence of `%%' in the format string is translated to a `%'.  The
+   result is printed to FP, a pointer to a FILE.  The other variables are
+   the seconds and thousandths of a second of real, user, and system time,
+   resectively. */
+static void
+print_formatted_time (fp, format, rs, rsf, us, usf, ss, ssf, cpu)
+     FILE *fp;
+     char *format;
+     time_t rs;
+     int rsf;
+     time_t us;
+     int usf;
+     time_t ss;
+     int ssf, cpu;
+{
+  int prec, lng, len;
+  char *str, *s, ts[INT_STRLEN_BOUND (time_t) + sizeof ("mSS.FFFF")];
+  time_t sum;
+  int sum_frac;
+  int sindex, ssize;
+
+  len = strlen (format);
+  ssize = (len + 64) - (len % 64);
+  str = (char *)xmalloc (ssize);
+  sindex = 0;
+
+  for (s = format; *s; s++)
+    {
+      if (*s != '%' || s[1] == '\0')
+       {
+         RESIZE_MALLOCED_BUFFER (str, sindex, 1, ssize, 64);
+         str[sindex++] = *s;
+       }
+      else if (s[1] == '%')
+       {
+         s++;
+         RESIZE_MALLOCED_BUFFER (str, sindex, 1, ssize, 64);
+         str[sindex++] = *s;
+       }
+      else if (s[1] == 'P')
+       {
+         s++;
+#if 0
+         /* clamp CPU usage at 100% */
+         if (cpu > 10000)
+           cpu = 10000;
+#endif
+         sum = cpu / 100;
+         sum_frac = (cpu % 100) * 10;
+         len = mkfmt (ts, 2, 0, sum, sum_frac);
+         RESIZE_MALLOCED_BUFFER (str, sindex, len, ssize, 64);
+         strcpy (str + sindex, ts);
+         sindex += len;
+       }
+      else
+       {
+         prec = 3;     /* default is three places past the decimal point. */
+         lng = 0;      /* default is to not use minutes or append `s' */
+         s++;
+         if (DIGIT (*s))               /* `precision' */
+           {
+             prec = *s++ - '0';
+             if (prec > 3) prec = 3;
+           }
+         if (*s == 'l')                /* `length extender' */
+           {
+             lng = 1;
+             s++;
+           }
+         if (*s == 'R' || *s == 'E')
+           len = mkfmt (ts, prec, lng, rs, rsf);
+         else if (*s == 'U')
+           len = mkfmt (ts, prec, lng, us, usf);
+         else if (*s == 'S')
+           len = mkfmt (ts, prec, lng, ss, ssf);
+         else
+           {
+             internal_error (_("TIMEFORMAT: `%c': invalid format character"), *s);
+             free (str);
+             return;
+           }
+         RESIZE_MALLOCED_BUFFER (str, sindex, len, ssize, 64);
+         strcpy (str + sindex, ts);
+         sindex += len;
+       }
+    }
+
+  str[sindex] = '\0';
+  fprintf (fp, "%s\n", str);
+  fflush (fp);
+
+  free (str);
+}
+
+static int
+time_command (command, asynchronous, pipe_in, pipe_out, fds_to_close)
+     COMMAND *command;
+     int asynchronous, pipe_in, pipe_out;
+     struct fd_bitmap *fds_to_close;
+{
+  int rv, posix_time, old_flags;
+  time_t rs, us, ss;
+  int rsf, usf, ssf;
+  int cpu;
+  char *time_format;
+
+#if defined (HAVE_GETRUSAGE) && defined (HAVE_GETTIMEOFDAY)
+  struct timeval real, user, sys;
+  struct timeval before, after;
+#  if defined (HAVE_STRUCT_TIMEZONE)
+  struct timezone dtz;                         /* posix doesn't define this */
+#  endif
+  struct rusage selfb, selfa, kidsb, kidsa;    /* a = after, b = before */
+#else
+#  if defined (HAVE_TIMES)
+  clock_t tbefore, tafter, real, user, sys;
+  struct tms before, after;
+#  endif
+#endif
+
+#if defined (HAVE_GETRUSAGE) && defined (HAVE_GETTIMEOFDAY)
+#  if defined (HAVE_STRUCT_TIMEZONE)
+  gettimeofday (&before, &dtz);
+#  else
+  gettimeofday (&before, (void *)NULL);
+#  endif /* !HAVE_STRUCT_TIMEZONE */
+  getrusage (RUSAGE_SELF, &selfb);
+  getrusage (RUSAGE_CHILDREN, &kidsb);
+#else
+#  if defined (HAVE_TIMES)
+  tbefore = times (&before);
+#  endif
+#endif
+
+  posix_time = (command->flags & CMD_TIME_POSIX);
+
+  old_flags = command->flags;
+  command->flags &= ~(CMD_TIME_PIPELINE|CMD_TIME_POSIX);
+  rv = execute_command_internal (command, asynchronous, pipe_in, pipe_out, fds_to_close);
+  command->flags = old_flags;
+
+  rs = us = ss = 0;
+  rsf = usf = ssf = cpu = 0;
+
+#if defined (HAVE_GETRUSAGE) && defined (HAVE_GETTIMEOFDAY)
+#  if defined (HAVE_STRUCT_TIMEZONE)
+  gettimeofday (&after, &dtz);
+#  else
+  gettimeofday (&after, (void *)NULL);
+#  endif /* !HAVE_STRUCT_TIMEZONE */
+  getrusage (RUSAGE_SELF, &selfa);
+  getrusage (RUSAGE_CHILDREN, &kidsa);
+
+  difftimeval (&real, &before, &after);
+  timeval_to_secs (&real, &rs, &rsf);
+
+  addtimeval (&user, difftimeval(&after, &selfb.ru_utime, &selfa.ru_utime),
+                    difftimeval(&before, &kidsb.ru_utime, &kidsa.ru_utime));
+  timeval_to_secs (&user, &us, &usf);
+
+  addtimeval (&sys, difftimeval(&after, &selfb.ru_stime, &selfa.ru_stime),
+                   difftimeval(&before, &kidsb.ru_stime, &kidsa.ru_stime));
+  timeval_to_secs (&sys, &ss, &ssf);
+
+  cpu = timeval_to_cpu (&real, &user, &sys);
+#else
+#  if defined (HAVE_TIMES)
+  tafter = times (&after);
+
+  real = tafter - tbefore;
+  clock_t_to_secs (real, &rs, &rsf);
+
+  user = (after.tms_utime - before.tms_utime) + (after.tms_cutime - before.tms_cutime);
+  clock_t_to_secs (user, &us, &usf);
+
+  sys = (after.tms_stime - before.tms_stime) + (after.tms_cstime - before.tms_cstime);
+  clock_t_to_secs (sys, &ss, &ssf);
+
+  cpu = (real == 0) ? 0 : ((user + sys) * 10000) / real;
+
+#  else
+  rs = us = ss = 0;
+  rsf = usf = ssf = cpu = 0;
+#  endif
+#endif
+
+  if (posix_time)
+    time_format = POSIX_TIMEFORMAT;
+  else if ((time_format = get_string_value ("TIMEFORMAT")) == 0)
+    time_format = BASH_TIMEFORMAT;
+
+  if (time_format && *time_format)
+    print_formatted_time (stderr, time_format, rs, rsf, us, usf, ss, ssf, cpu);
+
+  return rv;
+}
+#endif /* COMMAND_TIMING */
+
+/* Execute a command that's supposed to be in a subshell.  This must be
+   called after make_child and we must be running in the child process.
+   The caller will return or exit() immediately with the value this returns. */
+static int
+execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
+     COMMAND *command;
+     int asynchronous;
+     int pipe_in, pipe_out;
+     struct fd_bitmap *fds_to_close;
+{
+  int user_subshell, return_code, function_value, should_redir_stdin, invert;
+  int ois, user_coproc;
+  COMMAND *tcom;
+
+  USE_VAR(user_subshell);
+  USE_VAR(user_coproc);
+  USE_VAR(invert);
+  USE_VAR(tcom);
+  USE_VAR(asynchronous);
+
+  subshell_level++;
+  should_redir_stdin = (asynchronous && (command->flags & CMD_STDIN_REDIR) &&
+                         pipe_in == NO_PIPE &&
+                         stdin_redirects (command->redirects) == 0);
+
+  invert = (command->flags & CMD_INVERT_RETURN) != 0;
+  user_subshell = command->type == cm_subshell || ((command->flags & CMD_WANT_SUBSHELL) != 0);
+  user_coproc = command->type == cm_coproc;
+
+  command->flags &= ~(CMD_FORCE_SUBSHELL | CMD_WANT_SUBSHELL | CMD_INVERT_RETURN);
+
+  /* If a command is asynchronous in a subshell (like ( foo ) & or
+     the special case of an asynchronous GROUP command where the
+     the subshell bit is turned on down in case cm_group: below),
+     turn off `asynchronous', so that two subshells aren't spawned.
+     XXX - asynchronous used to be set to 0 in this block, but that
+     means that setup_async_signals was never run.  Now it's set to
+     0 after subshell_environment is set appropriately and setup_async_signals
+     is run.
+
+     This seems semantically correct to me.  For example,
+     ( foo ) & seems to say ``do the command `foo' in a subshell
+     environment, but don't wait for that subshell to finish'',
+     and "{ foo ; bar ; } &" seems to me to be like functions or
+     builtins in the background, which executed in a subshell
+     environment.  I just don't see the need to fork two subshells. */
+
+  /* Don't fork again, we are already in a subshell.  A `doubly
+     async' shell is not interactive, however. */
+  if (asynchronous)
+    {
+#if defined (JOB_CONTROL)
+      /* If a construct like ( exec xxx yyy ) & is given while job
+        control is active, we want to prevent exec from putting the
+        subshell back into the original process group, carefully
+        undoing all the work we just did in make_child. */
+      original_pgrp = -1;
+#endif /* JOB_CONTROL */
+      ois = interactive_shell;
+      interactive_shell = 0;
+      /* This test is to prevent alias expansion by interactive shells that
+        run `(command) &' but to allow scripts that have enabled alias
+        expansion with `shopt -s expand_alias' to continue to expand
+        aliases. */
+      if (ois != interactive_shell)
+       expand_aliases = 0;
+    }
+
+  /* Subshells are neither login nor interactive. */
+  login_shell = interactive = 0;
+
+  if (user_subshell)
+    subshell_environment = SUBSHELL_PAREN;
+  else
+    {
+      subshell_environment = 0;                        /* XXX */
+      if (asynchronous)
+       subshell_environment |= SUBSHELL_ASYNC;
+      if (pipe_in != NO_PIPE || pipe_out != NO_PIPE)
+       subshell_environment |= SUBSHELL_PIPE;
+      if (user_coproc)
+       subshell_environment |= SUBSHELL_COPROC;
+    }
+
+  reset_terminating_signals ();                /* in sig.c */
+  /* Cancel traps, in trap.c. */
+  restore_original_signals ();
+
+  /* Make sure restore_original_signals doesn't undo the work done by
+     make_child to ensure that asynchronous children are immune to SIGINT
+     and SIGQUIT.  Turn off asynchronous to make sure more subshells are
+     not spawned. */
+  if (asynchronous)
+    {
+      setup_async_signals ();
+      asynchronous = 0;
+    }
+
+#if defined (JOB_CONTROL)
+  set_sigchld_handler ();
+#endif /* JOB_CONTROL */
+
+  set_sigint_handler ();
+
+#if defined (JOB_CONTROL)
+  /* Delete all traces that there were any jobs running.  This is
+     only for subshells. */
+  without_job_control ();
+#endif /* JOB_CONTROL */
+
+  if (fds_to_close)
+    close_fd_bitmap (fds_to_close);
+
+  do_piping (pipe_in, pipe_out);
+
+#if defined (COPROCESS_SUPPORT)
+  coproc_closeall ();
+#endif
+
+  /* If this is a user subshell, set a flag if stdin was redirected.
+     This is used later to decide whether to redirect fd 0 to
+     /dev/null for async commands in the subshell.  This adds more
+     sh compatibility, but I'm not sure it's the right thing to do. */
+  if (user_subshell)
+    {
+      stdin_redir = stdin_redirects (command->redirects);
+      restore_default_signal (0);
+    }
+
+  /* If this is an asynchronous command (command &), we want to
+     redirect the standard input from /dev/null in the absence of
+     any specific redirection involving stdin. */
+  if (should_redir_stdin && stdin_redir == 0)
+    async_redirect_stdin ();
+
+  /* Do redirections, then dispose of them before recursive call. */
+  if (command->redirects)
+    {
+      if (do_redirections (command->redirects, RX_ACTIVE) != 0)
+       exit (invert ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
+
+      dispose_redirects (command->redirects);
+      command->redirects = (REDIRECT *)NULL;
+    }
+
+  if (command->type == cm_subshell)
+    tcom = command->value.Subshell->command;
+  else if (user_coproc)
+    tcom = command->value.Coproc->command;
+  else
+    tcom = command;
+
+  if (command->flags & CMD_TIME_PIPELINE)
+    tcom->flags |= CMD_TIME_PIPELINE;
+  if (command->flags & CMD_TIME_POSIX)
+    tcom->flags |= CMD_TIME_POSIX;
+  
+  /* Make sure the subshell inherits any CMD_IGNORE_RETURN flag. */
+  if ((command->flags & CMD_IGNORE_RETURN) && tcom != command)
+    tcom->flags |= CMD_IGNORE_RETURN;
+
+  /* If this is a simple command, tell execute_disk_command that it
+     might be able to get away without forking and simply exec.
+     This means things like ( sleep 10 ) will only cause one fork.
+     If we're timing the command or inverting its return value, however,
+     we cannot do this optimization. */
+  if ((user_subshell || user_coproc) && (tcom->type == cm_simple || tcom->type == cm_subshell) &&
+      ((tcom->flags & CMD_TIME_PIPELINE) == 0) &&
+      ((tcom->flags & CMD_INVERT_RETURN) == 0))
+    {
+      tcom->flags |= CMD_NO_FORK;
+      if (tcom->type == cm_simple)
+       tcom->value.Simple->flags |= CMD_NO_FORK;
+    }
+
+  invert = (tcom->flags & CMD_INVERT_RETURN) != 0;
+  tcom->flags &= ~CMD_INVERT_RETURN;
+
+  /* If we're inside a function while executing this subshell, we
+     need to handle a possible `return'. */
+  function_value = 0;
+  if (return_catch_flag)
+    function_value = setjmp (return_catch);
+
+  if (function_value)
+    return_code = return_catch_value;
+  else
+    return_code = execute_command_internal (tcom, asynchronous, NO_PIPE, NO_PIPE, fds_to_close);
+
+  /* If we are asked to, invert the return value. */
+  if (invert)
+    return_code = (return_code == EXECUTION_SUCCESS) ? EXECUTION_FAILURE
+                                                    : EXECUTION_SUCCESS;
+
+  /* If we were explicitly placed in a subshell with (), we need
+     to do the `shell cleanup' things, such as running traps[0]. */
+  if (user_subshell && signal_is_trapped (0))
+    {
+      last_command_exit_value = return_code;
+      return_code = run_exit_trap ();
+    }
+
+  subshell_level--;
+  return (return_code);
+  /* NOTREACHED */
+}
+
+#if defined (COPROCESS_SUPPORT)
+#define COPROC_MAX     16
+
+typedef struct cpelement
+  {
+    struct cpelement *next;
+    struct coproc *coproc;
+  }
+cpelement_t;
+    
+typedef struct cplist
+  {
+    struct cpelement *head;
+    struct cpelement *tail;
+    int ncoproc;
+  }
+cplist_t;
+
+static struct cpelement *cpe_alloc __P((struct coproc *));
+static void cpe_dispose __P((struct cpelement *));
+static struct cpelement *cpl_add __P((struct coproc *));
+static struct cpelement *cpl_delete __P((pid_t));
+static void cpl_reap __P((void));
+static void cpl_flush __P((void));
+static struct cpelement *cpl_search __P((pid_t));
+static struct cpelement *cpl_searchbyname __P((char *));
+static void cpl_prune __P((void));
+
+Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0 };
+
+cplist_t coproc_list = {0, 0, 0};
+
+/* Functions to manage the list of coprocs */
+
+static struct cpelement *
+cpe_alloc (cp)
+     Coproc *cp;
+{
+  struct cpelement *cpe;
+
+  cpe = (struct cpelement *)xmalloc (sizeof (struct cpelement));
+  cpe->coproc = cp;
+  cpe->next = (struct cpelement *)0;
+  return cpe;
+}
+
+static void
+cpe_dispose (cpe)
+      struct cpelement *cpe;
+{
+  free (cpe);
+}
+
+static struct cpelement *
+cpl_add (cp)
+     Coproc *cp;
+{
+  struct cpelement *cpe;
+
+  cpe = cpe_alloc (cp);
+
+  if (coproc_list.head == 0)
+    {
+      coproc_list.head = coproc_list.tail = cpe;
+      coproc_list.ncoproc = 0;                 /* just to make sure */
+    }
+  else
+    {
+      coproc_list.tail->next = cpe;
+      coproc_list.tail = cpe;
+    }
+  coproc_list.ncoproc++;
+
+  return cpe;
+}
+
+static struct cpelement *
+cpl_delete (pid)
+     pid_t pid;
+{
+  struct cpelement *prev, *p;
+
+  for (prev = p = coproc_list.head; p; prev = p, p = p->next)
+    if (p->coproc->c_pid == pid)
+      {
+        prev->next = p->next;  /* remove from list */
+        break;
+      }
+
+  if (p == 0)
+    return 0;          /* not found */
+
+#if defined (DEBUG)
+  itrace("cpl_delete: deleting %d", pid);
+#endif
+
+  /* Housekeeping in the border cases. */
+  if (p == coproc_list.head)
+    coproc_list.head = coproc_list.head->next;
+  else if (p == coproc_list.tail)
+    coproc_list.tail = prev;
+
+  coproc_list.ncoproc--;
+  if (coproc_list.ncoproc == 0)
+    coproc_list.head = coproc_list.tail = 0;
+  else if (coproc_list.ncoproc == 1)
+    coproc_list.tail = coproc_list.head;               /* just to make sure */
+
+  return (p);
+}
+
+static void
+cpl_reap ()
+{
+  struct cpelement *prev, *p;
+
+  for (prev = p = coproc_list.head; p; prev = p, p = p->next)
+    if (p->coproc->c_flags & COPROC_DEAD)
+      {
+        prev->next = p->next;  /* remove from list */
+
+       /* Housekeeping in the border cases. */
+       if (p == coproc_list.head)
+         coproc_list.head = coproc_list.head->next;
+       else if (p == coproc_list.tail)
+         coproc_list.tail = prev;
+
+       coproc_list.ncoproc--;
+       if (coproc_list.ncoproc == 0)
+         coproc_list.head = coproc_list.tail = 0;
+       else if (coproc_list.ncoproc == 1)
+         coproc_list.tail = coproc_list.head;          /* just to make sure */
+
+#if defined (DEBUG)
+       itrace("cpl_reap: deleting %d", p->coproc->c_pid);
+#endif
+
+       coproc_dispose (p->coproc);
+       cpe_dispose (p);
+      }
+}
+
+/* Clear out the list of saved statuses */
+static void
+cpl_flush ()
+{
+  struct cpelement *cpe, *p;
+
+  for (cpe = coproc_list.head; cpe; )
+    {
+      p = cpe;
+      cpe = cpe->next;
+
+      coproc_dispose (p->coproc);
+      cpe_dispose (p);
+    }
+
+  coproc_list.head = coproc_list.tail = 0;
+  coproc_list.ncoproc = 0;
+}
+
+/* Search for PID in the list of coprocs; return the cpelement struct if
+   found.  If not found, return NULL. */
+static struct cpelement *
+cpl_search (pid)
+     pid_t pid;
+{
+  struct cpelement *cp;
+
+  for (cp = coproc_list.head ; cp; cp = cp->next)
+    if (cp->coproc->c_pid == pid)
+      return cp;
+  return (struct cpelement *)NULL;
+}
+
+/* Search for the coproc named NAME in the list of coprocs; return the
+   cpelement struct if found.  If not found, return NULL. */
+static struct cpelement *
+cpl_searchbyname (name)
+     char *name;
+{
+  struct cpelement *cp;
+
+  for (cp = coproc_list.head ; cp; cp = cp->next)
+    if (STREQ (cp->coproc->c_name, name))
+      return cp;
+  return (struct cpelement *)NULL;
+}
+
+#if 0
+static void
+cpl_prune ()
+{
+  struct cpelement *cp;
+
+  while (coproc_list.head && coproc_list.ncoproc > COPROC_MAX)
+    {
+      cp = coproc_list.head;
+      coproc_list.head = coproc_list.head->next;
+      coproc_dispose (cp->coproc);
+      cpe_dispose (cp);
+      coproc_list.ncoproc--;
+    }
+}
+#endif
+
+/* These currently use a single global "shell coproc" but are written in a
+   way to not preclude additional coprocs later (using the list management
+   package above). */
+
+struct coproc *
+getcoprocbypid (pid)
+     pid_t pid;
+{
+  return (pid == sh_coproc.c_pid ? &sh_coproc : 0);
+}
+
+struct coproc *
+getcoprocbyname (name)
+     const char *name;
+{
+  return ((sh_coproc.c_name && STREQ (sh_coproc.c_name, name)) ? &sh_coproc : 0);
+}
+
+void
+coproc_init (cp)
+     struct coproc *cp;
+{
+  cp->c_name = 0;
+  cp->c_pid = NO_PID;
+  cp->c_rfd = cp->c_wfd = -1;
+  cp->c_rsave = cp->c_wsave = -1;
+  cp->c_flags = cp->c_status = 0;  
+}
+
+struct coproc *
+coproc_alloc (name, pid)
+     char *name;
+     pid_t pid;
+{
+  struct coproc *cp;
+
+  cp = &sh_coproc;             /* XXX */
+  coproc_init (cp);
+
+  cp->c_name = savestring (name);
+  cp->c_pid = pid;
+
+  return (cp);
+}
+
+void
+coproc_dispose (cp)
+     struct coproc *cp;
+{
+  if (cp == 0)
+    return;
+
+  coproc_unsetvars (cp);
+  FREE (cp->c_name);
+  coproc_close (cp);
+  coproc_init (cp);
+}
+
+/* Placeholder for now. */
+void
+coproc_flush ()
+{
+  coproc_dispose (&sh_coproc);
+}
+
+void
+coproc_close (cp)
+     struct coproc *cp;
+{
+  if (cp->c_rfd >= 0)
+    {
+      close (cp->c_rfd);
+      cp->c_rfd = -1;
+    }
+  if (cp->c_wfd >= 0)
+    {
+      close (cp->c_wfd);
+      cp->c_wfd = -1;
+    }
+  cp->c_rsave = cp->c_wsave = -1;
+}
+
+void
+coproc_closeall ()
+{
+  coproc_close (&sh_coproc);
+}
+
+void
+coproc_reap ()
+{
+  struct coproc *cp;
+
+  cp = &sh_coproc;
+  if (cp && (cp->c_flags & COPROC_DEAD))
+    coproc_dispose (cp);
+}
+
+void
+coproc_rclose (cp, fd)
+     struct coproc *cp;
+     int fd;
+{
+  if (cp->c_rfd >= 0 && cp->c_rfd == fd)
+    {
+      close (cp->c_rfd);
+      cp->c_rfd = -1;
+    }
+}
+
+void
+coproc_wclose (cp, fd)
+     struct coproc *cp;
+     int fd;
+{
+  if (cp->c_wfd >= 0 && cp->c_wfd == fd)
+    {
+      close (cp->c_wfd);
+      cp->c_wfd = -1;
+    }
+}
+
+void
+coproc_checkfd (cp, fd)
+     struct coproc *cp;
+     int fd;
+{
+  int update;
+
+  update = 0;
+  if (cp->c_rfd >= 0 && cp->c_rfd == fd)
+    update = cp->c_rfd = -1;
+  if (cp->c_wfd >= 0 && cp->c_wfd == fd)
+    update = cp->c_wfd = -1;
+  if (update)
+    coproc_setvars (cp);
+}
+
+void
+coproc_fdchk (fd)
+     int fd;
+{
+  coproc_checkfd (&sh_coproc, fd);
+}
+
+void
+coproc_fdclose (cp, fd)
+     struct coproc *cp;
+     int fd;
+{
+  coproc_rclose (cp, fd);
+  coproc_wclose (cp, fd);
+  coproc_setvars (cp);
+}
+
+void
+coproc_fdsave (cp)
+     struct coproc *cp;
+{
+  cp->c_rsave = cp->c_rfd;
+  cp->c_wsave = cp->c_wfd;
+}
+
+void
+coproc_fdrestore (cp)
+     struct coproc *cp;
+{
+  cp->c_rfd = cp->c_rsave;
+  cp->c_wfd = cp->c_wsave;
+}
+
+void
+coproc_pidchk (pid, status)
+     pid_t pid;
+{
+  struct coproc *cp;
+
+  cp = getcoprocbypid (pid);
+#if 0
+  if (cp)
+    itrace("coproc_pidchk: pid %d has died", pid);
+#endif
+  if (cp)
+    {
+      cp->c_status = status;
+      cp->c_flags |= COPROC_DEAD;
+      cp->c_flags &= ~COPROC_RUNNING;
+#if 0
+      coproc_dispose (cp);
+#endif
+    }
+}
+
+void
+coproc_setvars (cp)
+     struct coproc *cp;
+{
+  SHELL_VAR *v;
+  char *namevar, *t;
+  int l;
+#if defined (ARRAY_VARS)
+  arrayind_t ind;
+#endif
+
+  if (cp->c_name == 0)
+    return;
+
+  l = strlen (cp->c_name);
+  namevar = xmalloc (l + 16);
+
+#if defined (ARRAY_VARS)
+  v = find_variable (cp->c_name);
+  if (v == 0)
+    v = make_new_array_variable (cp->c_name);
+  if (array_p (v) == 0)
+    v = convert_var_to_array (v);
+
+  t = itos (cp->c_rfd);
+  ind = 0;
+  v = bind_array_variable (cp->c_name, ind, t, 0);
+  free (t);
+
+  t = itos (cp->c_wfd);
+  ind = 1;
+  bind_array_variable (cp->c_name, ind, t, 0);
+  free (t);
+#else
+  sprintf (namevar, "%s_READ", cp->c_name);
+  t = itos (cp->c_rfd);
+  bind_variable (namevar, t, 0);
+  free (t);
+  sprintf (namevar, "%s_WRITE", cp->c_name);
+  t = itos (cp->c_wfd);
+  bind_variable (namevar, t, 0);
+  free (t);
+#endif
+
+  sprintf (namevar, "%s_PID", cp->c_name);
+  t = itos (cp->c_pid);
+  bind_variable (namevar, t, 0);
+  free (t);
+
+  free (namevar);
+}
+
+void
+coproc_unsetvars (cp)
+     struct coproc *cp;
+{
+  int l;
+  char *namevar;
+
+  if (cp->c_name == 0)
+    return;
+
+  l = strlen (cp->c_name);
+  namevar = xmalloc (l + 16);
+
+  sprintf (namevar, "%s_PID", cp->c_name);
+  unbind_variable (namevar);  
+
+#if defined (ARRAY_VARS)
+  unbind_variable (cp->c_name);
+#else
+  sprintf (namevar, "%s_READ", cp->c_name);
+  unbind_variable (namevar);
+  sprintf (namevar, "%s_WRITE", cp->c_name);
+  unbind_variable (namevar);
+#endif  
+
+  free (namevar);
+}
+
+static int
+execute_coproc (command, pipe_in, pipe_out, fds_to_close)
+     COMMAND *command;
+     int pipe_in, pipe_out;
+     struct fd_bitmap *fds_to_close;
+{
+  int rpipe[2], wpipe[2];
+  pid_t coproc_pid;
+  Coproc *cp;
+  char *tcmd;
+
+  /* XXX -- will require changes to handle multiple coprocs */
+  if (sh_coproc.c_pid != NO_PID)
+    {
+#if 0
+      internal_error ("execute_coproc: coproc [%d:%s] already exists", sh_coproc.c_pid, sh_coproc.c_name);
+      return (last_command_exit_value = EXECUTION_FAILURE);
+#else
+      internal_warning ("execute_coproc: coproc [%d:%s] still exists", sh_coproc.c_pid, sh_coproc.c_name);
+#endif
+    }
+  coproc_init (&sh_coproc);
+
+  command_string_index = 0;
+  tcmd = make_command_string (command);
+
+  sh_openpipe ((int *)&rpipe); /* 0 = parent read, 1 = child write */
+  sh_openpipe ((int *)&wpipe); /* 0 = child read, 1 = parent write */
+
+  coproc_pid = make_child (savestring (tcmd), 1);
+  if (coproc_pid == 0)
+    {
+      close (rpipe[0]);
+      close (wpipe[1]);
+
+      exit (execute_in_subshell (command, 1, wpipe[0], rpipe[1], fds_to_close));
+    }
+
+  close (rpipe[1]);
+  close (wpipe[0]);
+
+  cp = coproc_alloc (command->value.Coproc->name, coproc_pid);
+  cp->c_rfd = rpipe[0];
+  cp->c_wfd = wpipe[1];
+
+  SET_CLOSE_ON_EXEC (cp->c_rfd);
+  SET_CLOSE_ON_EXEC (cp->c_wfd);
+
+  coproc_setvars (cp);
+
+#if 0
+  itrace ("execute_coproc: [%d] %s", coproc_pid, the_printed_command);
+#endif
+
+  close_pipes (pipe_in, pipe_out);
+#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
+  unlink_fifo_list ();
+#endif
+  stop_pipeline (1, (COMMAND *)NULL);
+  DESCRIBE_PID (coproc_pid);
+  run_pending_traps ();
+
+  return (EXECUTION_SUCCESS);
+}
+#endif
+
+static int
+execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
+     COMMAND *command;
+     int asynchronous, pipe_in, pipe_out;
+     struct fd_bitmap *fds_to_close;
+{
+  int prev, fildes[2], new_bitmap_size, dummyfd, ignore_return, exec_result;
+  COMMAND *cmd;
+  struct fd_bitmap *fd_bitmap;
+
+#if defined (JOB_CONTROL)
+  sigset_t set, oset;
+  BLOCK_CHILD (set, oset);
+#endif /* JOB_CONTROL */
+
+  ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
+
+  prev = pipe_in;
+  cmd = command;
+
+  while (cmd && cmd->type == cm_connection &&
+        cmd->value.Connection && cmd->value.Connection->connector == '|')
+    {
+      /* Make a pipeline between the two commands. */
+      if (pipe (fildes) < 0)
+       {
+         sys_error (_("pipe error"));
+#if defined (JOB_CONTROL)
+         terminate_current_pipeline ();
+         kill_current_pipeline ();
+         UNBLOCK_CHILD (oset);
+#endif /* JOB_CONTROL */
+         last_command_exit_value = EXECUTION_FAILURE;
+         /* The unwind-protects installed below will take care
+            of closing all of the open file descriptors. */
+         throw_to_top_level ();
+         return (EXECUTION_FAILURE);   /* XXX */
+       }
+
+      /* Here is a problem: with the new file close-on-exec
+        code, the read end of the pipe (fildes[0]) stays open
+        in the first process, so that process will never get a
+        SIGPIPE.  There is no way to signal the first process
+        that it should close fildes[0] after forking, so it
+        remains open.  No SIGPIPE is ever sent because there
+        is still a file descriptor open for reading connected
+        to the pipe.  We take care of that here.  This passes
+        around a bitmap of file descriptors that must be
+        closed after making a child process in execute_simple_command. */
+
+      /* We need fd_bitmap to be at least as big as fildes[0].
+        If fildes[0] is less than fds_to_close->size, then
+        use fds_to_close->size. */
+      new_bitmap_size = (fildes[0] < fds_to_close->size)
+                               ? fds_to_close->size
+                               : fildes[0] + 8;
+
+      fd_bitmap = new_fd_bitmap (new_bitmap_size);
+
+      /* Now copy the old information into the new bitmap. */
+      xbcopy ((char *)fds_to_close->bitmap, (char *)fd_bitmap->bitmap, fds_to_close->size);
+
+      /* And mark the pipe file descriptors to be closed. */
+      fd_bitmap->bitmap[fildes[0]] = 1;
+
+      /* In case there are pipe or out-of-processes errors, we
+        want all these file descriptors to be closed when
+        unwind-protects are run, and the storage used for the
+        bitmaps freed up. */
+      begin_unwind_frame ("pipe-file-descriptors");
+      add_unwind_protect (dispose_fd_bitmap, fd_bitmap);
+      add_unwind_protect (close_fd_bitmap, fd_bitmap);
+      if (prev >= 0)
+       add_unwind_protect (close, prev);
+      dummyfd = fildes[1];
+      add_unwind_protect (close, dummyfd);
+
+#if defined (JOB_CONTROL)
+      add_unwind_protect (restore_signal_mask, &oset);
+#endif /* JOB_CONTROL */
+
+      if (ignore_return && cmd->value.Connection->first)
+       cmd->value.Connection->first->flags |= CMD_IGNORE_RETURN;
+      execute_command_internal (cmd->value.Connection->first, asynchronous,
+                               prev, fildes[1], fd_bitmap);
+
+      if (prev >= 0)
+       close (prev);
+
+      prev = fildes[0];
+      close (fildes[1]);
+
+      dispose_fd_bitmap (fd_bitmap);
+      discard_unwind_frame ("pipe-file-descriptors");
+
+      cmd = cmd->value.Connection->second;
+    }
+
+  /* Now execute the rightmost command in the pipeline.  */
+  if (ignore_return && cmd)
+    cmd->flags |= CMD_IGNORE_RETURN;
+  exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
+
+  if (prev >= 0)
+    close (prev);
+
+#if defined (JOB_CONTROL)
+  UNBLOCK_CHILD (oset);
+#endif
+
+  QUIT;
+  return (exec_result);
+}
+
+static int
+execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
+     COMMAND *command;
+     int asynchronous, pipe_in, pipe_out;
+     struct fd_bitmap *fds_to_close;
+{
+  REDIRECT *rp;
+  COMMAND *tc, *second;
+  int ignore_return, exec_result, was_error_trap, invert;
+
+  ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
+
+  switch (command->value.Connection->connector)
+    {
+    /* Do the first command asynchronously. */
+    case '&':
+      tc = command->value.Connection->first;
+      if (tc == 0)
+       return (EXECUTION_SUCCESS);
+
+      rp = tc->redirects;
+
+      if (ignore_return)
+       tc->flags |= CMD_IGNORE_RETURN;
+      tc->flags |= CMD_AMPERSAND;
+
+      /* If this shell was compiled without job control support,
+        if we are currently in a subshell via `( xxx )', or if job
+        control is not active then the standard input for an
+        asynchronous command is forced to /dev/null. */
+#if defined (JOB_CONTROL)
+      if ((subshell_environment || !job_control) && !stdin_redir)
+#else
+      if (!stdin_redir)
+#endif /* JOB_CONTROL */
+       tc->flags |= CMD_STDIN_REDIR;
+
+      exec_result = execute_command_internal (tc, 1, pipe_in, pipe_out, fds_to_close);
+      QUIT;
+
+      if (tc->flags & CMD_STDIN_REDIR)
+       tc->flags &= ~CMD_STDIN_REDIR;
+
+      second = command->value.Connection->second;
+      if (second)
+       {
+         if (ignore_return)
+           second->flags |= CMD_IGNORE_RETURN;
+
+         exec_result = execute_command_internal (second, asynchronous, pipe_in, pipe_out, fds_to_close);
+       }
+
+      break;
+
+    /* Just call execute command on both sides. */
+    case ';':
+      if (ignore_return)
+       {
+         if (command->value.Connection->first)
+           command->value.Connection->first->flags |= CMD_IGNORE_RETURN;
+         if (command->value.Connection->second)
+           command->value.Connection->second->flags |= CMD_IGNORE_RETURN;
+       }
+      executing_list++;
+      QUIT;
+      execute_command (command->value.Connection->first);
+      QUIT;
+      exec_result = execute_command_internal (command->value.Connection->second,
+                                     asynchronous, pipe_in, pipe_out,
+                                     fds_to_close);
+      executing_list--;
+      break;
+
+    case '|':
+      was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0;
+      invert = (command->flags & CMD_INVERT_RETURN) != 0;
+      ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0;
+
+      exec_result = execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close);
+
+      if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
+       {
+         last_command_exit_value = exec_result;
+         run_error_trap ();
+       }
+
+      if (ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
+       {
+         last_command_exit_value = exec_result;
+         run_pending_traps ();
+         jump_to_top_level (ERREXIT);
+       }
+
+      break;
+
+    case AND_AND:
+    case OR_OR:
+      if (asynchronous)
+       {
+         /* If we have something like `a && b &' or `a || b &', run the
+            && or || stuff in a subshell.  Force a subshell and just call
+            execute_command_internal again.  Leave asynchronous on
+            so that we get a report from the parent shell about the
+            background job. */
+         command->flags |= CMD_FORCE_SUBSHELL;
+         exec_result = execute_command_internal (command, 1, pipe_in, pipe_out, fds_to_close);
+         break;
+       }
+
+      /* Execute the first command.  If the result of that is successful
+        and the connector is AND_AND, or the result is not successful
+        and the connector is OR_OR, then execute the second command,
+        otherwise return. */
+
+      executing_list++;
+      if (command->value.Connection->first)
+       command->value.Connection->first->flags |= CMD_IGNORE_RETURN;
+
+      exec_result = execute_command (command->value.Connection->first);
+      QUIT;
+      if (((command->value.Connection->connector == AND_AND) &&
+          (exec_result == EXECUTION_SUCCESS)) ||
+         ((command->value.Connection->connector == OR_OR) &&
+          (exec_result != EXECUTION_SUCCESS)))
+       {
+         if (ignore_return && command->value.Connection->second)
+           command->value.Connection->second->flags |= CMD_IGNORE_RETURN;
+
+         exec_result = execute_command (command->value.Connection->second);
+       }
+      executing_list--;
+      break;
+
+    default:
+      command_error ("execute_connection", CMDERR_BADCONN, command->value.Connection->connector, 0);
+      jump_to_top_level (DISCARD);
+      exec_result = EXECUTION_FAILURE;
+    }
+
+  return exec_result;
+}
+
+#define REAP() \
+  do \
+    { \
+      if (!interactive_shell) \
+       reap_dead_jobs (); \
+    } \
+  while (0)
+
+/* Execute a FOR command.  The syntax is: FOR word_desc IN word_list;
+   DO command; DONE */
+static int
+execute_for_command (for_command)
+     FOR_COM *for_command;
+{
+  register WORD_LIST *releaser, *list;
+  SHELL_VAR *v;
+  char *identifier;
+  int retval, save_line_number;
+#if 0
+  SHELL_VAR *old_value = (SHELL_VAR *)NULL; /* Remember the old value of x. */
+#endif
+
+  save_line_number = line_number;
+  if (check_identifier (for_command->name, 1) == 0)
+    {
+      if (posixly_correct && interactive_shell == 0)
+       {
+         last_command_exit_value = EX_BADUSAGE;
+         jump_to_top_level (ERREXIT);
+       }
+      return (EXECUTION_FAILURE);
+    }
+
+  loop_level++;
+  identifier = for_command->name->word;
+
+  list = releaser = expand_words_no_vars (for_command->map_list);
+
+  begin_unwind_frame ("for");
+  add_unwind_protect (dispose_words, releaser);
+
+#if 0
+  if (lexical_scoping)
+    {
+      old_value = copy_variable (find_variable (identifier));
+      if (old_value)
+       add_unwind_protect (dispose_variable, old_value);
+    }
+#endif
+
+  if (for_command->flags & CMD_IGNORE_RETURN)
+    for_command->action->flags |= CMD_IGNORE_RETURN;
+
+  for (retval = EXECUTION_SUCCESS; list; list = list->next)
+    {
+      QUIT;
+
+      line_number = for_command->line;
+
+      /* Remember what this command looks like, for debugger. */
+      command_string_index = 0;
+      print_for_command_head (for_command);
+
+      if (echo_command_at_execute)
+       xtrace_print_for_command_head (for_command);
+
+      /* Save this command unless it's a trap command and we're not running
+        a debug trap. */
+#if 0
+      if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)))
+#else
+      if (signal_in_progress (DEBUG_TRAP) == 0 && running_trap == 0)
+#endif
+       {
+         FREE (the_printed_command_except_trap);
+         the_printed_command_except_trap = savestring (the_printed_command);
+       }
+
+      retval = run_debug_trap ();
+#if defined (DEBUGGER)
+      /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+        skip the command. */
+      if (debugging_mode && retval != EXECUTION_SUCCESS)
+        continue;
+#endif
+
+      this_command_name = (char *)NULL;
+      v = bind_variable (identifier, list->word->word, 0);
+      if (readonly_p (v) || noassign_p (v))
+       {
+         line_number = save_line_number;
+         if (readonly_p (v) && interactive_shell == 0 && posixly_correct)
+           {
+             last_command_exit_value = EXECUTION_FAILURE;
+             jump_to_top_level (FORCE_EOF);
+           }
+         else
+           {
+             dispose_words (releaser);
+             discard_unwind_frame ("for");
+             loop_level--;
+             return (EXECUTION_FAILURE);
+           }
+       }
+      retval = execute_command (for_command->action);
+      REAP ();
+      QUIT;
+
+      if (breaking)
+       {
+         breaking--;
+         break;
+       }
+
+      if (continuing)
+       {
+         continuing--;
+         if (continuing)
+           break;
+       }
+    }
+
+  loop_level--;
+  line_number = save_line_number;
+
+#if 0
+  if (lexical_scoping)
+    {
+      if (!old_value)
+        unbind_variable (identifier);
+      else
+       {
+         SHELL_VAR *new_value;
+
+         new_value = bind_variable (identifier, value_cell(old_value), 0);
+         new_value->attributes = old_value->attributes;
+         dispose_variable (old_value);
+       }
+    }
+#endif
+
+  dispose_words (releaser);
+  discard_unwind_frame ("for");
+  return (retval);
+}
+
+#if defined (ARITH_FOR_COMMAND)
+/* Execute an arithmetic for command.  The syntax is
+
+       for (( init ; step ; test ))
+       do
+               body
+       done
+
+   The execution should be exactly equivalent to
+
+       eval \(\( init \)\)
+       while eval \(\( test \)\) ; do
+               body;
+               eval \(\( step \)\)
+       done
+*/
+static intmax_t
+eval_arith_for_expr (l, okp)
+     WORD_LIST *l;
+     int *okp;
+{
+  WORD_LIST *new;
+  intmax_t expresult;
+  int r;
+
+  new = expand_words_no_vars (l);
+  if (new)
+    {
+      if (echo_command_at_execute)
+       xtrace_print_arith_cmd (new);
+      this_command_name = "((";                /* )) for expression error messages */
+
+      command_string_index = 0;
+      print_arith_command (new);
+      if (signal_in_progress (DEBUG_TRAP) == 0)
+       {
+         FREE (the_printed_command_except_trap);
+         the_printed_command_except_trap = savestring (the_printed_command);
+       }
+
+      r = run_debug_trap ();
+      /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+        skip the command. */
+#if defined (DEBUGGER)
+      if (debugging_mode == 0 || r == EXECUTION_SUCCESS)
+       expresult = evalexp (new->word->word, okp);
+      else
+       {
+         expresult = 0;
+         if (okp)
+           *okp = 1;
+       }
+#else
+      expresult = evalexp (new->word->word, okp);
+#endif
+      dispose_words (new);
+    }
+  else
+    {
+      expresult = 0;
+      if (okp)
+       *okp = 1;
+    }
+  return (expresult);
+}
+
+static int
+execute_arith_for_command (arith_for_command)
+     ARITH_FOR_COM *arith_for_command;
+{
+  intmax_t expresult;
+  int expok, body_status, arith_lineno, save_lineno;
+
+  body_status = EXECUTION_SUCCESS;
+  loop_level++;
+  save_lineno = line_number;
+
+  if (arith_for_command->flags & CMD_IGNORE_RETURN)
+    arith_for_command->action->flags |= CMD_IGNORE_RETURN;
+
+  this_command_name = "((";    /* )) for expression error messages */
+
+  /* save the starting line number of the command so we can reset
+     line_number before executing each expression -- for $LINENO
+     and the DEBUG trap. */
+  line_number = arith_lineno = arith_for_command->line;
+  if (variable_context && interactive_shell)
+    line_number -= function_line_number;
+
+  /* Evaluate the initialization expression. */
+  expresult = eval_arith_for_expr (arith_for_command->init, &expok);
+  if (expok == 0)
+    {
+      line_number = save_lineno;
+      return (EXECUTION_FAILURE);
+    }
+
+  while (1)
+    {
+      /* Evaluate the test expression. */
+      line_number = arith_lineno;
+      expresult = eval_arith_for_expr (arith_for_command->test, &expok);
+      line_number = save_lineno;
+
+      if (expok == 0)
+       {
+         body_status = EXECUTION_FAILURE;
+         break;
+       }
+      REAP ();
+      if (expresult == 0)
+       break;
+
+      /* Execute the body of the arithmetic for command. */
+      QUIT;
+      body_status = execute_command (arith_for_command->action);
+      QUIT;
+
+      /* Handle any `break' or `continue' commands executed by the body. */
+      if (breaking)
+       {
+         breaking--;
+         break;
+       }
+
+      if (continuing)
+       {
+         continuing--;
+         if (continuing)
+           break;
+       }
+
+      /* Evaluate the step expression. */
+      line_number = arith_lineno;
+      expresult = eval_arith_for_expr (arith_for_command->step, &expok);
+      line_number = save_lineno;
+
+      if (expok == 0)
+       {
+         body_status = EXECUTION_FAILURE;
+         break;
+       }
+    }
+
+  loop_level--;
+  line_number = save_lineno;
+
+  return (body_status);
+}
+#endif
+
+#if defined (SELECT_COMMAND)
+static int LINES, COLS, tabsize;
+
+#define RP_SPACE ") "
+#define RP_SPACE_LEN 2
+
+/* XXX - does not handle numbers > 1000000 at all. */
+#define NUMBER_LEN(s) \
+((s < 10) ? 1 \
+         : ((s < 100) ? 2 \
+                     : ((s < 1000) ? 3 \
+                                  : ((s < 10000) ? 4 \
+                                                : ((s < 100000) ? 5 \
+                                                               : 6)))))
+
+static int
+print_index_and_element (len, ind, list)
+      int len, ind;
+      WORD_LIST *list;
+{
+  register WORD_LIST *l;
+  register int i;
+
+  if (list == 0)
+    return (0);
+  for (i = ind, l = list; l && --i; l = l->next)
+    ;
+  fprintf (stderr, "%*d%s%s", len, ind, RP_SPACE, l->word->word);
+  return (STRLEN (l->word->word));
+}
+
+static void
+indent (from, to)
+     int from, to;
+{
+  while (from < to)
+    {
+      if ((to / tabsize) > (from / tabsize))
+       {
+         putc ('\t', stderr);
+         from += tabsize - from % tabsize;
+       }
+      else
+       {
+         putc (' ', stderr);
+         from++;
+       }
+    }
+}
+
+static void
+print_select_list (list, list_len, max_elem_len, indices_len)
+     WORD_LIST *list;
+     int list_len, max_elem_len, indices_len;
+{
+  int ind, row, elem_len, pos, cols, rows;
+  int first_column_indices_len, other_indices_len;
+
+  if (list == 0)
+    {
+      putc ('\n', stderr);
+      return;
+    }
+
+  cols = max_elem_len ? COLS / max_elem_len : 1;
+  if (cols == 0)
+    cols = 1;
+  rows = list_len ? list_len / cols + (list_len % cols != 0) : 1;
+  cols = list_len ? list_len / rows + (list_len % rows != 0) : 1;
+
+  if (rows == 1)
+    {
+      rows = cols;
+      cols = 1;
+    }
+
+  first_column_indices_len = NUMBER_LEN (rows);
+  other_indices_len = indices_len;
+
+  for (row = 0; row < rows; row++)
+    {
+      ind = row;
+      pos = 0;
+      while (1)
+       {
+         indices_len = (pos == 0) ? first_column_indices_len : other_indices_len;
+         elem_len = print_index_and_element (indices_len, ind + 1, list);
+         elem_len += indices_len + RP_SPACE_LEN;
+         ind += rows;
+         if (ind >= list_len)
+           break;
+         indent (pos + elem_len, pos + max_elem_len);
+         pos += max_elem_len;
+       }
+      putc ('\n', stderr);
+    }
+}
+
+/* Print the elements of LIST, one per line, preceded by an index from 1 to
+   LIST_LEN.  Then display PROMPT and wait for the user to enter a number.
+   If the number is between 1 and LIST_LEN, return that selection.  If EOF
+   is read, return a null string.  If a blank line is entered, or an invalid
+   number is entered, the loop is executed again. */
+static char *
+select_query (list, list_len, prompt, print_menu)
+     WORD_LIST *list;
+     int list_len;
+     char *prompt;
+     int print_menu;
+{
+  int max_elem_len, indices_len, len;
+  intmax_t reply;
+  WORD_LIST *l;
+  char *repl_string, *t;
+
+  t = get_string_value ("LINES");
+  LINES = (t && *t) ? atoi (t) : 24;
+  t = get_string_value ("COLUMNS");
+  COLS =  (t && *t) ? atoi (t) : 80;
+
+#if 0
+  t = get_string_value ("TABSIZE");
+  tabsize = (t && *t) ? atoi (t) : 8;
+  if (tabsize <= 0)
+    tabsize = 8;
+#else
+  tabsize = 8;
+#endif
+
+  max_elem_len = 0;
+  for (l = list; l; l = l->next)
+    {
+      len = STRLEN (l->word->word);
+      if (len > max_elem_len)
+       max_elem_len = len;
+    }
+  indices_len = NUMBER_LEN (list_len);
+  max_elem_len += indices_len + RP_SPACE_LEN + 2;
+
+  while (1)
+    {
+      if (print_menu)
+       print_select_list (list, list_len, max_elem_len, indices_len);
+      fprintf (stderr, "%s", prompt);
+      fflush (stderr);
+      QUIT;
+
+      if (read_builtin ((WORD_LIST *)NULL) == EXECUTION_FAILURE)
+       {
+         putchar ('\n');
+         return ((char *)NULL);
+       }
+      repl_string = get_string_value ("REPLY");
+      if (*repl_string == 0)
+       {
+         print_menu = 1;
+         continue;
+       }
+      if (legal_number (repl_string, &reply) == 0)
+       return "";
+      if (reply < 1 || reply > list_len)
+       return "";
+
+      for (l = list; l && --reply; l = l->next)
+       ;
+      return (l->word->word);
+    }
+}
+
+/* Execute a SELECT command.  The syntax is:
+   SELECT word IN list DO command_list DONE
+   Only `break' or `return' in command_list will terminate
+   the command. */
+static int
+execute_select_command (select_command)
+     SELECT_COM *select_command;
+{
+  WORD_LIST *releaser, *list;
+  SHELL_VAR *v;
+  char *identifier, *ps3_prompt, *selection;
+  int retval, list_len, show_menu, save_line_number;
+
+  if (check_identifier (select_command->name, 1) == 0)
+    return (EXECUTION_FAILURE);
+
+  save_line_number = line_number;
+  line_number = select_command->line;
+
+  command_string_index = 0;
+  print_select_command_head (select_command);
+
+  if (echo_command_at_execute)
+    xtrace_print_select_command_head (select_command);
+
+#if 0
+  if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)))
+#else
+  if (signal_in_progress (DEBUG_TRAP) == 0 && running_trap == 0)
+#endif
+    {
+      FREE (the_printed_command_except_trap);
+      the_printed_command_except_trap = savestring (the_printed_command);
+    }
+
+  retval = run_debug_trap ();
+#if defined (DEBUGGER)
+  /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+     skip the command. */
+  if (debugging_mode && retval != EXECUTION_SUCCESS)
+    return (EXECUTION_SUCCESS);
+#endif
+
+  loop_level++;
+  identifier = select_command->name->word;
+
+  /* command and arithmetic substitution, parameter and variable expansion,
+     word splitting, pathname expansion, and quote removal. */
+  list = releaser = expand_words_no_vars (select_command->map_list);
+  list_len = list_length (list);
+  if (list == 0 || list_len == 0)
+    {
+      if (list)
+       dispose_words (list);
+      line_number = save_line_number;
+      return (EXECUTION_SUCCESS);
+    }
+
+  begin_unwind_frame ("select");
+  add_unwind_protect (dispose_words, releaser);
+
+  if (select_command->flags & CMD_IGNORE_RETURN)
+    select_command->action->flags |= CMD_IGNORE_RETURN;
+
+  retval = EXECUTION_SUCCESS;
+  show_menu = 1;
+
+  while (1)
+    {
+      line_number = select_command->line;
+      ps3_prompt = get_string_value ("PS3");
+      if (ps3_prompt == 0)
+       ps3_prompt = "#? ";
+
+      QUIT;
+      selection = select_query (list, list_len, ps3_prompt, show_menu);
+      QUIT;
+      if (selection == 0)
+       {
+         /* select_query returns EXECUTION_FAILURE if the read builtin
+            fails, so we want to return failure in this case. */
+         retval = EXECUTION_FAILURE;
+         break;
+       }
+
+      v = bind_variable (identifier, selection, 0);
+      if (readonly_p (v) || noassign_p (v))
+       {
+         if (readonly_p (v) && interactive_shell == 0 && posixly_correct)
+           {
+             last_command_exit_value = EXECUTION_FAILURE;
+             jump_to_top_level (FORCE_EOF);
+           }
+         else
+           {
+             dispose_words (releaser);
+             discard_unwind_frame ("select");
+             loop_level--;
+             line_number = save_line_number;
+             return (EXECUTION_FAILURE);
+           }
+       }
+
+      retval = execute_command (select_command->action);
+
+      REAP ();
+      QUIT;
+
+      if (breaking)
+       {
+         breaking--;
+         break;
+       }
+
+      if (continuing)
+       {
+         continuing--;
+         if (continuing)
+           break;
+       }
+
+#if defined (KSH_COMPATIBLE_SELECT)
+      show_menu = 0;
+      selection = get_string_value ("REPLY");
+      if (selection && *selection == '\0')
+        show_menu = 1;
+#endif
+    }
+
+  loop_level--;
+  line_number = save_line_number;
+
+  dispose_words (releaser);
+  discard_unwind_frame ("select");
+  return (retval);
+}
+#endif /* SELECT_COMMAND */
+
+/* Execute a CASE command.  The syntax is: CASE word_desc IN pattern_list ESAC.
+   The pattern_list is a linked list of pattern clauses; each clause contains
+   some patterns to compare word_desc against, and an associated command to
+   execute. */
+static int
+execute_case_command (case_command)
+     CASE_COM *case_command;
+{
+  register WORD_LIST *list;
+  WORD_LIST *wlist, *es;
+  PATTERN_LIST *clauses;
+  char *word, *pattern;
+  int retval, match, ignore_return, save_line_number;
+
+  save_line_number = line_number;
+  line_number = case_command->line;
+
+  command_string_index = 0;
+  print_case_command_head (case_command);
+
+  if (echo_command_at_execute)
+    xtrace_print_case_command_head (case_command);
+
+#if 0
+  if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)))
+#else
+  if (signal_in_progress (DEBUG_TRAP) == 0 && running_trap == 0)
+#endif
+    {
+      FREE (the_printed_command_except_trap);
+      the_printed_command_except_trap = savestring (the_printed_command);
+    }
+
+  retval = run_debug_trap();
+#if defined (DEBUGGER)
+  /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+     skip the command. */
+  if (debugging_mode && retval != EXECUTION_SUCCESS)
+    {
+      line_number = save_line_number;
+      return (EXECUTION_SUCCESS);
+    }
+#endif
+
+  wlist = expand_word_unsplit (case_command->word, 0);
+  word = wlist ? string_list (wlist) : savestring ("");
+  dispose_words (wlist);
+
+  retval = EXECUTION_SUCCESS;
+  ignore_return = case_command->flags & CMD_IGNORE_RETURN;
+
+  begin_unwind_frame ("case");
+  add_unwind_protect ((Function *)xfree, word);
+
+#define EXIT_CASE()  goto exit_case_command
+
+  for (clauses = case_command->clauses; clauses; clauses = clauses->next)
+    {
+      QUIT;
+      for (list = clauses->patterns; list; list = list->next)
+       {
+         es = expand_word_leave_quoted (list->word, 0);
+
+         if (es && es->word && es->word->word && *(es->word->word))
+           pattern = quote_string_for_globbing (es->word->word, QGLOB_CVTNULL);
+         else
+           {
+             pattern = (char *)xmalloc (1);
+             pattern[0] = '\0';
+           }
+
+         /* Since the pattern does not undergo quote removal (as per
+            Posix.2, section 3.9.4.3), the strmatch () call must be able
+            to recognize backslashes as escape characters. */
+         match = strmatch (pattern, word, FNMATCH_EXTFLAG|FNMATCH_IGNCASE) != FNM_NOMATCH;
+         free (pattern);
+
+         dispose_words (es);
+
+         if (match)
+           {
+             do
+               {
+                 if (clauses->action && ignore_return)
+                   clauses->action->flags |= CMD_IGNORE_RETURN;
+                 retval = execute_command (clauses->action);
+               }
+             while ((clauses->flags & CASEPAT_FALLTHROUGH) && (clauses = clauses->next));
+             if ((clauses->flags & CASEPAT_TESTNEXT) == 0)
+               EXIT_CASE ();
+             else
+               break;
+           }
+
+         QUIT;
+       }
+    }
+
+exit_case_command:
+  free (word);
+  discard_unwind_frame ("case");
+  line_number = save_line_number;
+  return (retval);
+}
+
+#define CMD_WHILE 0
+#define CMD_UNTIL 1
+
+/* The WHILE command.  Syntax: WHILE test DO action; DONE.
+   Repeatedly execute action while executing test produces
+   EXECUTION_SUCCESS. */
+static int
+execute_while_command (while_command)
+     WHILE_COM *while_command;
+{
+  return (execute_while_or_until (while_command, CMD_WHILE));
+}
+
+/* UNTIL is just like WHILE except that the test result is negated. */
+static int
+execute_until_command (while_command)
+     WHILE_COM *while_command;
+{
+  return (execute_while_or_until (while_command, CMD_UNTIL));
+}
+
+/* The body for both while and until.  The only difference between the
+   two is that the test value is treated differently.  TYPE is
+   CMD_WHILE or CMD_UNTIL.  The return value for both commands should
+   be EXECUTION_SUCCESS if no commands in the body are executed, and
+   the status of the last command executed in the body otherwise. */
+static int
+execute_while_or_until (while_command, type)
+     WHILE_COM *while_command;
+     int type;
+{
+  int return_value, body_status;
+
+  body_status = EXECUTION_SUCCESS;
+  loop_level++;
+
+  while_command->test->flags |= CMD_IGNORE_RETURN;
+  if (while_command->flags & CMD_IGNORE_RETURN)
+    while_command->action->flags |= CMD_IGNORE_RETURN;
+
+  while (1)
+    {
+      return_value = execute_command (while_command->test);
+      REAP ();
+
+      /* Need to handle `break' in the test when we would break out of the
+         loop.  The job control code will set `breaking' to loop_level
+         when a job in a loop is stopped with SIGTSTP.  If the stopped job
+         is in the loop test, `breaking' will not be reset unless we do
+         this, and the shell will cease to execute commands. */
+      if (type == CMD_WHILE && return_value != EXECUTION_SUCCESS)
+       {
+         if (breaking)
+           breaking--;
+         break;
+       }
+      if (type == CMD_UNTIL && return_value == EXECUTION_SUCCESS)
+       {
+         if (breaking)
+           breaking--;
+         break;
+       }
+
+      QUIT;
+      body_status = execute_command (while_command->action);
+      QUIT;
+
+      if (breaking)
+       {
+         breaking--;
+         break;
+       }
+
+      if (continuing)
+       {
+         continuing--;
+         if (continuing)
+           break;
+       }
+    }
+  loop_level--;
+
+  return (body_status);
+}
+
+/* IF test THEN command [ELSE command].
+   IF also allows ELIF in the place of ELSE IF, but
+   the parser makes *that* stupidity transparent. */
+static int
+execute_if_command (if_command)
+     IF_COM *if_command;
+{
+  int return_value, save_line_number;
+
+  save_line_number = line_number;
+  if_command->test->flags |= CMD_IGNORE_RETURN;
+  return_value = execute_command (if_command->test);
+  line_number = save_line_number;
+
+  if (return_value == EXECUTION_SUCCESS)
+    {
+      QUIT;
+
+      if (if_command->true_case && (if_command->flags & CMD_IGNORE_RETURN))
+       if_command->true_case->flags |= CMD_IGNORE_RETURN;
+
+      return (execute_command (if_command->true_case));
+    }
+  else
+    {
+      QUIT;
+
+      if (if_command->false_case && (if_command->flags & CMD_IGNORE_RETURN))
+       if_command->false_case->flags |= CMD_IGNORE_RETURN;
+
+      return (execute_command (if_command->false_case));
+    }
+}
+
+#if defined (DPAREN_ARITHMETIC)
+static int
+execute_arith_command (arith_command)
+     ARITH_COM *arith_command;
+{
+  int expok, save_line_number, retval;
+  intmax_t expresult;
+  WORD_LIST *new;
+  char *exp;
+
+  expresult = 0;
+
+  save_line_number = line_number;
+  this_command_name = "((";    /* )) */
+  line_number = arith_command->line;
+  /* If we're in a function, update the line number information. */
+  if (variable_context && interactive_shell)
+    line_number -= function_line_number;
+
+  command_string_index = 0;
+  print_arith_command (arith_command->exp);
+
+  if (signal_in_progress (DEBUG_TRAP) == 0)
+    {
+      FREE (the_printed_command_except_trap);
+      the_printed_command_except_trap = savestring (the_printed_command);
+    }
+
+  /* Run the debug trap before each arithmetic command, but do it after we
+     update the line number information and before we expand the various
+     words in the expression. */
+  retval = run_debug_trap ();
+#if defined (DEBUGGER)
+  /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+     skip the command. */
+  if (debugging_mode && retval != EXECUTION_SUCCESS)
+    {
+      line_number = save_line_number;
+      return (EXECUTION_SUCCESS);
+    }
+#endif
+
+  new = expand_words_no_vars (arith_command->exp);
+
+  /* If we're tracing, make a new word list with `((' at the front and `))'
+     at the back and print it. */
+  if (echo_command_at_execute)
+    xtrace_print_arith_cmd (new);
+
+  if (new)
+    {
+      exp = new->next ? string_list (new) : new->word->word;
+      expresult = evalexp (exp, &expok);
+      line_number = save_line_number;
+      if (exp != new->word->word)
+       free (exp);
+      dispose_words (new);
+    }
+  else
+    {
+      expresult = 0;
+      expok = 1;
+    }
+
+  if (expok == 0)
+    return (EXECUTION_FAILURE);
+
+  return (expresult == 0 ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
+}
+#endif /* DPAREN_ARITHMETIC */
+
+#if defined (COND_COMMAND)
+
+static char * const nullstr = "";
+
+static int
+execute_cond_node (cond)
+     COND_COM *cond;
+{
+  int result, invert, patmatch, rmatch, mflags;
+  char *arg1, *arg2;
+
+  invert = (cond->flags & CMD_INVERT_RETURN);
+
+  if (cond->type == COND_EXPR)
+    result = execute_cond_node (cond->left);
+  else if (cond->type == COND_OR)
+    {
+      result = execute_cond_node (cond->left);
+      if (result != EXECUTION_SUCCESS)
+       result = execute_cond_node (cond->right);
+    }
+  else if (cond->type == COND_AND)
+    {
+      result = execute_cond_node (cond->left);
+      if (result == EXECUTION_SUCCESS)
+       result = execute_cond_node (cond->right);
+    }
+  else if (cond->type == COND_UNARY)
+    {
+      arg1 = cond_expand_word (cond->left->op, 0);
+      if (arg1 == 0)
+       arg1 = nullstr;
+      if (echo_command_at_execute)
+       xtrace_print_cond_term (cond->type, invert, cond->op, arg1, (char *)NULL);
+      result = unary_test (cond->op->word, arg1) ? EXECUTION_SUCCESS : EXECUTION_FAILURE;
+      if (arg1 != nullstr)
+       free (arg1);
+    }
+  else if (cond->type == COND_BINARY)
+    {
+      rmatch = 0;
+      patmatch = ((cond->op->word[1] == '=') && (cond->op->word[2] == '\0') &&
+                 (cond->op->word[0] == '!' || cond->op->word[0] == '=') ||
+                 (cond->op->word[0] == '=' && cond->op->word[1] == '\0'));
+#if defined (COND_REGEXP)
+      rmatch = (cond->op->word[0] == '=' && cond->op->word[1] == '~' &&
+               cond->op->word[2] == '\0');
+#endif
+
+      arg1 = cond_expand_word (cond->left->op, 0);
+      if (arg1 == 0)
+       arg1 = nullstr;
+      arg2 = cond_expand_word (cond->right->op,
+                              (rmatch && shell_compatibility_level > 31) ? 2 : (patmatch ? 1 : 0));
+      if (arg2 == 0)
+       arg2 = nullstr;
+
+      if (echo_command_at_execute)
+       xtrace_print_cond_term (cond->type, invert, cond->op, arg1, arg2);
+
+#if defined (COND_REGEXP)
+      if (rmatch)
+       {
+         mflags = SHMAT_PWARN;
+#if defined (ARRAY_VARS)
+         mflags |= SHMAT_SUBEXP;
+#endif
+
+         result = sh_regmatch (arg1, arg2, mflags);
+       }
+      else
+#endif /* COND_REGEXP */
+       {
+         int oe;
+         oe = extended_glob;
+         extended_glob = 1;
+         result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP)
+                                 ? EXECUTION_SUCCESS
+                                 : EXECUTION_FAILURE;
+         extended_glob = oe;
+       }
+      if (arg1 != nullstr)
+       free (arg1);
+      if (arg2 != nullstr)
+       free (arg2);
+    }
+  else
+    {
+      command_error ("execute_cond_node", CMDERR_BADTYPE, cond->type, 0);
+      jump_to_top_level (DISCARD);
+      result = EXECUTION_FAILURE;
+    }
+
+  if (invert)
+    result = (result == EXECUTION_SUCCESS) ? EXECUTION_FAILURE : EXECUTION_SUCCESS;
+
+  return result;
+}
+
+static int
+execute_cond_command (cond_command)
+     COND_COM *cond_command;
+{
+  int retval, save_line_number;
+
+  retval = EXECUTION_SUCCESS;
+  save_line_number = line_number;
+
+  this_command_name = "[[";
+  line_number = cond_command->line;
+  /* If we're in a function, update the line number information. */
+  if (variable_context && interactive_shell)
+    line_number -= function_line_number;
+
+  command_string_index = 0;
+  print_cond_command (cond_command);
+
+  if (signal_in_progress (DEBUG_TRAP) == 0)
+    {
+      FREE (the_printed_command_except_trap);
+      the_printed_command_except_trap = savestring (the_printed_command);
+    }
+
+  /* Run the debug trap before each conditional command, but do it after we
+     update the line number information. */
+  retval = run_debug_trap ();
+#if defined (DEBUGGER)
+  /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+     skip the command. */
+  if (debugging_mode && retval != EXECUTION_SUCCESS)
+    {
+      line_number = save_line_number;
+      return (EXECUTION_SUCCESS);
+    }
+#endif
+
+#if 0
+  debug_print_cond_command (cond_command);
+#endif
+
+  last_command_exit_value = retval = execute_cond_node (cond_command);
+  line_number = save_line_number;
+  return (retval);
+}
+#endif /* COND_COMMAND */
+
+static void
+bind_lastarg (arg)
+     char *arg;
+{
+  SHELL_VAR *var;
+
+  if (arg == 0)
+    arg = "";
+  var = bind_variable ("_", arg, 0);
+  VUNSETATTR (var, att_exported);
+}
+
+/* Execute a null command.  Fork a subshell if the command uses pipes or is
+   to be run asynchronously.  This handles all the side effects that are
+   supposed to take place. */
+static int
+execute_null_command (redirects, pipe_in, pipe_out, async)
+     REDIRECT *redirects;
+     int pipe_in, pipe_out, async;
+{
+  int r;
+
+  if (pipe_in != NO_PIPE || pipe_out != NO_PIPE || async)
+    {
+      /* We have a null command, but we really want a subshell to take
+        care of it.  Just fork, do piping and redirections, and exit. */
+      if (make_child ((char *)NULL, async) == 0)
+       {
+         /* Cancel traps, in trap.c. */
+         restore_original_signals ();          /* XXX */
+
+         do_piping (pipe_in, pipe_out);
+
+#if defined (COPROCESS_SUPPORT)
+         coproc_closeall ();
+#endif
+
+         subshell_environment = 0;
+         if (async)
+           subshell_environment |= SUBSHELL_ASYNC;
+         if (pipe_in != NO_PIPE || pipe_out != NO_PIPE)
+           subshell_environment |= SUBSHELL_PIPE;
+
+         if (do_redirections (redirects, RX_ACTIVE) == 0)
+           exit (EXECUTION_SUCCESS);
+         else
+           exit (EXECUTION_FAILURE);
+       }
+      else
+       {
+         close_pipes (pipe_in, pipe_out);
+#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
+         unlink_fifo_list ();
+#endif
+         return (EXECUTION_SUCCESS);
+       }
+    }
+  else
+    {
+      /* Even if there aren't any command names, pretend to do the
+        redirections that are specified.  The user expects the side
+        effects to take place.  If the redirections fail, then return
+        failure.  Otherwise, if a command substitution took place while
+        expanding the command or a redirection, return the value of that
+        substitution.  Otherwise, return EXECUTION_SUCCESS. */
+
+      r = do_redirections (redirects, RX_ACTIVE|RX_UNDOABLE);
+      cleanup_redirects (redirection_undo_list);
+      redirection_undo_list = (REDIRECT *)NULL;
+
+      if (r != 0)
+       return (EXECUTION_FAILURE);
+      else if (last_command_subst_pid != NO_PID)
+       return (last_command_exit_value);
+      else
+       return (EXECUTION_SUCCESS);
+    }
+}
+
+/* This is a hack to suppress word splitting for assignment statements
+   given as arguments to builtins with the ASSIGNMENT_BUILTIN flag set. */
+static void
+fix_assignment_words (words)
+     WORD_LIST *words;
+{
+  WORD_LIST *w;
+  struct builtin *b;
+  int assoc;
+
+  if (words == 0)
+    return;
+
+  b = 0;
+  assoc = 0;
+
+  for (w = words; w; w = w->next)
+    if (w->word->flags & W_ASSIGNMENT)
+      {
+       if (b == 0)
+         {
+           b = builtin_address_internal (words->word->word, 0);
+           if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0)
+             return;
+           else if (b && (b->flags & ASSIGNMENT_BUILTIN))
+             words->word->flags |= W_ASSNBLTIN;
+         }
+       w->word->flags |= (W_NOSPLIT|W_NOGLOB|W_TILDEEXP|W_ASSIGNARG);
+#if defined (ARRAY_VARS)
+       if (assoc)
+         w->word->flags |= W_ASSIGNASSOC;
+#endif
+      }
+#if defined (ARRAY_VARS)
+    /* Note that we saw an associative array option to a builtin that takes
+       assignment statements.  This is a bit of a kludge. */
+    else if (w->word->word[0] == '-' && strchr (w->word->word, 'A'))
+      {
+       if (b == 0)
+         {
+           b = builtin_address_internal (words->word->word, 0);
+           if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0)
+             return;
+           else if (b && (b->flags & ASSIGNMENT_BUILTIN))
+             words->word->flags |= W_ASSNBLTIN;
+         }
+       if (words->word->flags & W_ASSNBLTIN)
+         assoc = 1;
+      }
+#endif
+}
+
+/* Return 1 if the file found by searching $PATH for PATHNAME, defaulting
+   to PATHNAME, is a directory.  Used by the autocd code below. */
+static int
+is_dirname (pathname)
+     char *pathname;
+{
+  char *temp;
+  temp = search_for_command (pathname);
+  return (temp ? file_isdir (temp) : file_isdir (pathname));
+}
+
+/* The meaty part of all the executions.  We have to start hacking the
+   real execution of commands here.  Fork a process, set things up,
+   execute the command. */
+static int
+execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
+     SIMPLE_COM *simple_command;
+     int pipe_in, pipe_out, async;
+     struct fd_bitmap *fds_to_close;
+{
+  WORD_LIST *words, *lastword;
+  char *command_line, *lastarg, *temp;
+  int first_word_quoted, result, builtin_is_special, already_forked, dofork;
+  pid_t old_last_async_pid;
+  sh_builtin_func_t *builtin;
+  SHELL_VAR *func;
+
+  result = EXECUTION_SUCCESS;
+  special_builtin_failed = builtin_is_special = 0;
+  command_line = (char *)0;
+
+  /* If we're in a function, update the line number information. */
+  if (variable_context && interactive_shell)
+    line_number -= function_line_number;
+
+  /* Remember what this command line looks like at invocation. */
+  command_string_index = 0;
+  print_simple_command (simple_command);
+
+#if 0
+  if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)))
+#else
+  if (signal_in_progress (DEBUG_TRAP) == 0 && running_trap == 0)
+#endif
+    {
+      FREE (the_printed_command_except_trap);
+      the_printed_command_except_trap = the_printed_command ? savestring (the_printed_command) : (char *)0;
+    }
+
+  /* Run the debug trap before each simple command, but do it after we
+     update the line number information. */
+  result = run_debug_trap ();
+#if defined (DEBUGGER)
+  /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+     skip the command. */
+  if (debugging_mode && result != EXECUTION_SUCCESS)
+    return (EXECUTION_SUCCESS);
+#endif
+
+  first_word_quoted =
+    simple_command->words ? (simple_command->words->word->flags & W_QUOTED) : 0;
+
+  last_command_subst_pid = NO_PID;
+  old_last_async_pid = last_asynchronous_pid;
+
+  already_forked = dofork = 0;
+
+  /* If we're in a pipeline or run in the background, set DOFORK so we
+     make the child early, before word expansion.  This keeps assignment
+     statements from affecting the parent shell's environment when they
+     should not. */
+  dofork = pipe_in != NO_PIPE || pipe_out != NO_PIPE || async;
+
+  /* Something like `%2 &' should restart job 2 in the background, not cause
+     the shell to fork here. */
+  if (dofork && pipe_in == NO_PIPE && pipe_out == NO_PIPE &&
+       simple_command->words && simple_command->words->word &&
+       simple_command->words->word->word &&
+       (simple_command->words->word->word[0] == '%'))
+    dofork = 0;
+
+  if (dofork)
+    {
+      /* Do this now, because execute_disk_command will do it anyway in the
+        vast majority of cases. */
+      maybe_make_export_env ();
+
+      /* Don't let a DEBUG trap overwrite the command string to be saved with
+        the process/job associated with this child. */
+      if (make_child (savestring (the_printed_command_except_trap), async) == 0)
+       {
+         already_forked = 1;
+         simple_command->flags |= CMD_NO_FORK;
+
+         subshell_environment = SUBSHELL_FORK;
+         if (pipe_in != NO_PIPE || pipe_out != NO_PIPE)
+           subshell_environment |= SUBSHELL_PIPE;
+         if (async)
+           subshell_environment |= SUBSHELL_ASYNC;
+
+         /* We need to do this before piping to handle some really
+            pathological cases where one of the pipe file descriptors
+            is < 2. */
+         if (fds_to_close)
+           close_fd_bitmap (fds_to_close);
+
+         do_piping (pipe_in, pipe_out);
+         pipe_in = pipe_out = NO_PIPE;
+#if defined (COPROCESS_SUPPORT)
+         coproc_closeall ();
+#endif
+
+         last_asynchronous_pid = old_last_async_pid;
+       }
+      else
+       {
+         close_pipes (pipe_in, pipe_out);
+#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
+         unlink_fifo_list ();
+#endif
+         command_line = (char *)NULL;      /* don't free this. */
+         bind_lastarg ((char *)NULL);
+         return (result);
+       }
+    }
+
+  /* If we are re-running this as the result of executing the `command'
+     builtin, do not expand the command words a second time. */
+  if ((simple_command->flags & CMD_INHIBIT_EXPANSION) == 0)
+    {
+      current_fds_to_close = fds_to_close;
+      fix_assignment_words (simple_command->words);
+      /* Pass the ignore return flag down to command substitutions */
+      if (simple_command->flags & CMD_IGNORE_RETURN)   /* XXX */
+       comsub_ignore_return++;
+      words = expand_words (simple_command->words);
+      if (simple_command->flags & CMD_IGNORE_RETURN)
+       comsub_ignore_return--;
+      current_fds_to_close = (struct fd_bitmap *)NULL;
+    }
+  else
+    words = copy_word_list (simple_command->words);
+
+  /* It is possible for WORDS not to have anything left in it.
+     Perhaps all the words consisted of `$foo', and there was
+     no variable `$foo'. */
+  if (words == 0)
+    {
+      this_command_name = 0;
+      result = execute_null_command (simple_command->redirects,
+                                    pipe_in, pipe_out,
+                                    already_forked ? 0 : async);
+      if (already_forked)
+       exit (result);
+      else
+       {
+         bind_lastarg ((char *)NULL);
+         set_pipestatus_from_exit (result);
+         return (result);
+       }
+    }
+
+  lastarg = (char *)NULL;
+
+  begin_unwind_frame ("simple-command");
+
+  if (echo_command_at_execute)
+    xtrace_print_word_list (words, 1);
+
+  builtin = (sh_builtin_func_t *)NULL;
+  func = (SHELL_VAR *)NULL;
+  if ((simple_command->flags & CMD_NO_FUNCTIONS) == 0)
+    {
+      /* Posix.2 says special builtins are found before functions.  We
+        don't set builtin_is_special anywhere other than here, because
+        this path is followed only when the `command' builtin is *not*
+        being used, and we don't want to exit the shell if a special
+        builtin executed with `command builtin' fails.  `command' is not
+        a special builtin. */
+      if (posixly_correct)
+       {
+         builtin = find_special_builtin (words->word->word);
+         if (builtin)
+           builtin_is_special = 1;
+       }
+      if (builtin == 0)
+       func = find_function (words->word->word);
+    }
+
+  /* In POSIX mode, assignment errors in the temporary environment cause a
+     non-interactive shell to exit. */
+  if (builtin_is_special && interactive_shell == 0 && tempenv_assign_error)
+    {
+      last_command_exit_value = EXECUTION_FAILURE;
+      jump_to_top_level (ERREXIT);
+    }
+
+  add_unwind_protect (dispose_words, words);
+  QUIT;
+
+  /* Bind the last word in this command to "$_" after execution. */
+  for (lastword = words; lastword->next; lastword = lastword->next)
+    ;
+  lastarg = lastword->word->word;
+
+#if defined (JOB_CONTROL)
+  /* Is this command a job control related thing? */
+  if (words->word->word[0] == '%' && already_forked == 0)
+    {
+      this_command_name = async ? "bg" : "fg";
+      last_shell_builtin = this_shell_builtin;
+      this_shell_builtin = builtin_address (this_command_name);
+      result = (*this_shell_builtin) (words);
+      goto return_result;
+    }
+
+  /* One other possiblilty.  The user may want to resume an existing job.
+     If they do, find out whether this word is a candidate for a running
+     job. */
+  if (job_control && already_forked == 0 && async == 0 &&
+       !first_word_quoted &&
+       !words->next &&
+       words->word->word[0] &&
+       !simple_command->redirects &&
+       pipe_in == NO_PIPE &&
+       pipe_out == NO_PIPE &&
+       (temp = get_string_value ("auto_resume")))
+    {
+      int job, jflags, started_status;
+
+      jflags = JM_STOPPED|JM_FIRSTMATCH;
+      if (STREQ (temp, "exact"))
+       jflags |= JM_EXACT;
+      else if (STREQ (temp, "substring"))
+       jflags |= JM_SUBSTRING;
+      else
+       jflags |= JM_PREFIX;
+      job = get_job_by_name (words->word->word, jflags);
+      if (job != NO_JOB)
+       {
+         run_unwind_frame ("simple-command");
+         this_command_name = "fg";
+         last_shell_builtin = this_shell_builtin;
+         this_shell_builtin = builtin_address ("fg");
+
+         started_status = start_job (job, 1);
+         return ((started_status < 0) ? EXECUTION_FAILURE : started_status);
+       }
+    }
+#endif /* JOB_CONTROL */
+
+run_builtin:
+  /* Remember the name of this command globally. */
+  this_command_name = words->word->word;
+
+  QUIT;
+
+  /* This command could be a shell builtin or a user-defined function.
+     We have already found special builtins by this time, so we do not
+     set builtin_is_special.  If this is a function or builtin, and we
+     have pipes, then fork a subshell in here.  Otherwise, just execute
+     the command directly. */
+  if (func == 0 && builtin == 0)
+    builtin = find_shell_builtin (this_command_name);
+
+  last_shell_builtin = this_shell_builtin;
+  this_shell_builtin = builtin;
+
+  if (builtin || func)
+    {
+      if (builtin)
+       unwind_protect_int (executing_builtin); /* modified in execute_builtin */
+      if (already_forked)
+       {
+         /* reset_terminating_signals (); */   /* XXX */
+         /* Cancel traps, in trap.c. */
+         restore_original_signals ();
+
+         if (async)
+           {
+             if ((simple_command->flags & CMD_STDIN_REDIR) &&
+                   pipe_in == NO_PIPE &&
+                   (stdin_redirects (simple_command->redirects) == 0))
+               async_redirect_stdin ();
+             setup_async_signals ();
+           }
+
+         subshell_level++;
+         execute_subshell_builtin_or_function
+           (words, simple_command->redirects, builtin, func,
+            pipe_in, pipe_out, async, fds_to_close,
+            simple_command->flags);
+         subshell_level--;
+       }
+      else
+       {
+         result = execute_builtin_or_function
+           (words, builtin, func, simple_command->redirects, fds_to_close,
+            simple_command->flags);
+         if (builtin)
+           {
+             if (result > EX_SHERRBASE)
+               {
+                 result = builtin_status (result);
+                 if (builtin_is_special)
+                   special_builtin_failed = 1;
+               }
+             /* In POSIX mode, if there are assignment statements preceding
+                a special builtin, they persist after the builtin
+                completes. */
+             if (posixly_correct && builtin_is_special && temporary_env)
+               merge_temporary_env ();
+           }
+         else          /* function */
+           {
+             if (result == EX_USAGE)
+               result = EX_BADUSAGE;
+             else if (result > EX_SHERRBASE)
+               result = EXECUTION_FAILURE;
+           }
+
+         set_pipestatus_from_exit (result);
+
+         goto return_result;
+       }
+    }
+
+  if (autocd && interactive && words->word && is_dirname (words->word->word))
+    {
+      words = make_word_list (make_word ("cd"), words);
+      xtrace_print_word_list (words, 0);
+      goto run_builtin;
+    }
+
+  if (command_line == 0)
+    command_line = savestring (the_printed_command_except_trap);
+
+#if defined (PROCESS_SUBSTITUTION)
+  if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0)
+    simple_command->flags &= ~CMD_NO_FORK;
+#endif
+
+  execute_disk_command (words, simple_command->redirects, command_line,
+                       pipe_in, pipe_out, async, fds_to_close,
+                       simple_command->flags);
+
+ return_result:
+  bind_lastarg (lastarg);
+  FREE (command_line);
+  dispose_words (words);
+  discard_unwind_frame ("simple-command");
+  this_command_name = (char *)NULL;    /* points to freed memory now */
+  return (result);
+}
+
+/* Translate the special builtin exit statuses.  We don't really need a
+   function for this; it's a placeholder for future work. */
+static int
+builtin_status (result)
+     int result;
+{
+  int r;
+
+  switch (result)
+    {
+    case EX_USAGE:
+      r = EX_BADUSAGE;
+      break;
+    case EX_REDIRFAIL:
+    case EX_BADSYNTAX:
+    case EX_BADASSIGN:
+    case EX_EXPFAIL:
+      r = EXECUTION_FAILURE;
+      break;
+    default:
+      r = EXECUTION_SUCCESS;
+      break;
+    }
+  return (r);
+}
+
+static int
+execute_builtin (builtin, words, flags, subshell)
+     sh_builtin_func_t *builtin;
+     WORD_LIST *words;
+     int flags, subshell;
+{
+  int old_e_flag, result, eval_unwind;
+  int isbltinenv;
+
+#if 0
+  /* XXX -- added 12/11 */
+  terminate_immediately++;
+#endif
+
+  old_e_flag = exit_immediately_on_error;
+  /* The eval builtin calls parse_and_execute, which does not know about
+     the setting of flags, and always calls the execution functions with
+     flags that will exit the shell on an error if -e is set.  If the
+     eval builtin is being called, and we're supposed to ignore the exit
+     value of the command, we turn the -e flag off ourselves, then
+     restore it when the command completes.  This is also a problem (as
+     below) for the command and source/. builtins. */
+  if (subshell == 0 && (flags & CMD_IGNORE_RETURN) &&
+       (builtin == eval_builtin || builtin == command_builtin || builtin == source_builtin))
+    {
+      begin_unwind_frame ("eval_builtin");
+      unwind_protect_int (exit_immediately_on_error);
+      exit_immediately_on_error = 0;
+      eval_unwind = 1;
+    }
+  else
+    eval_unwind = 0;
+
+  /* The temporary environment for a builtin is supposed to apply to
+     all commands executed by that builtin.  Currently, this is a
+     problem only with the `unset', `source' and `eval' builtins. */
+
+  isbltinenv = (builtin == source_builtin || builtin == eval_builtin || builtin == unset_builtin);
+
+  if (isbltinenv)
+    {
+      if (subshell == 0)
+       begin_unwind_frame ("builtin_env");
+
+      if (temporary_env)
+       {
+         push_scope (VC_BLTNENV, temporary_env);
+         if (subshell == 0)
+           add_unwind_protect (pop_scope, (flags & CMD_COMMAND_BUILTIN) ? 0 : "1");
+          temporary_env = (HASH_TABLE *)NULL;    
+       }
+    }
+
+  /* `return' does a longjmp() back to a saved environment in execute_function.
+     If a variable assignment list preceded the command, and the shell is
+     running in POSIX mode, we need to merge that into the shell_variables
+     table, since `return' is a POSIX special builtin. */
+  if (posixly_correct && subshell == 0 && builtin == return_builtin && temporary_env)
+    {
+      begin_unwind_frame ("return_temp_env");
+      add_unwind_protect (merge_temporary_env, (char *)NULL);
+    }
+
+  executing_builtin++;
+  result = ((*builtin) (words->next));
+
+  /* This shouldn't happen, but in case `return' comes back instead of
+     longjmp'ing, we need to unwind. */
+  if (posixly_correct && subshell == 0 && builtin == return_builtin && temporary_env)
+    discard_unwind_frame ("return_temp_env");
+
+  if (subshell == 0 && isbltinenv)
+    run_unwind_frame ("builtin_env");
+
+  if (eval_unwind)
+    {
+      exit_immediately_on_error += old_e_flag;
+      discard_unwind_frame ("eval_builtin");
+    }
+
+#if 0
+  /* XXX -- added 12/11 */
+  terminate_immediately--;
+#endif
+
+  return (result);
+}
+
+static int
+execute_function (var, words, flags, fds_to_close, async, subshell)
+     SHELL_VAR *var;
+     WORD_LIST *words;
+     int flags;
+     struct fd_bitmap *fds_to_close;
+     int async, subshell;
+{
+  int return_val, result;
+  COMMAND *tc, *fc, *save_current;
+  char *debug_trap, *error_trap, *return_trap;
+#if defined (ARRAY_VARS)
+  SHELL_VAR *funcname_v, *nfv, *bash_source_v, *bash_lineno_v;
+  ARRAY *funcname_a, *bash_source_a, *bash_lineno_a;
+#endif
+  FUNCTION_DEF *shell_fn;
+  char *sfile, *t;
+  static int funcnest = 0;
+
+  USE_VAR(fc);
+
+#if defined (ARRAY_VARS)
+  GET_ARRAY_FROM_VAR ("FUNCNAME", funcname_v, funcname_a);
+  GET_ARRAY_FROM_VAR ("BASH_SOURCE", bash_source_v, bash_source_a);
+  GET_ARRAY_FROM_VAR ("BASH_LINENO", bash_lineno_v, bash_lineno_a);
+#endif
+
+  tc = (COMMAND *)copy_command (function_cell (var));
+  if (tc && (flags & CMD_IGNORE_RETURN))
+    tc->flags |= CMD_IGNORE_RETURN;
+
+  if (subshell == 0)
+    {
+      begin_unwind_frame ("function_calling");
+      push_context (var->name, subshell, temporary_env);
+      add_unwind_protect (pop_context, (char *)NULL);
+      unwind_protect_int (line_number);
+      unwind_protect_int (return_catch_flag);
+      unwind_protect_jmp_buf (return_catch);
+      add_unwind_protect (dispose_command, (char *)tc);
+      unwind_protect_pointer (this_shell_function);
+      unwind_protect_int (loop_level);
+    }
+  else
+    push_context (var->name, subshell, temporary_env); /* don't unwind-protect for subshells */
+
+  temporary_env = (HASH_TABLE *)NULL;
+
+  this_shell_function = var;
+  make_funcname_visible (1);
+
+  debug_trap = TRAP_STRING(DEBUG_TRAP);
+  error_trap = TRAP_STRING(ERROR_TRAP);
+  return_trap = TRAP_STRING(RETURN_TRAP);
+  
+  /* The order of the unwind protects for debug_trap, error_trap and
+     return_trap is important here!  unwind-protect commands are run
+     in reverse order of registration.  If this causes problems, take
+     out the xfree unwind-protect calls and live with the small memory leak. */
+
+  /* function_trace_mode != 0 means that all functions inherit the DEBUG trap.
+     if the function has the trace attribute set, it inherits the DEBUG trap */
+  if (debug_trap && ((trace_p (var) == 0) && function_trace_mode == 0))
+    {
+      if (subshell == 0)
+       {
+         debug_trap = savestring (debug_trap);
+         add_unwind_protect (xfree, debug_trap);
+         add_unwind_protect (set_debug_trap, debug_trap);
+       }
+      restore_default_signal (DEBUG_TRAP);
+    }
+
+  /* error_trace_mode != 0 means that functions inherit the ERR trap. */
+  if (error_trap && error_trace_mode == 0)
+    {
+      if (subshell == 0)
+       {
+         error_trap = savestring (error_trap);
+         add_unwind_protect (xfree, error_trap);
+         add_unwind_protect (set_error_trap, error_trap);
+       }
+      restore_default_signal (ERROR_TRAP);
+    }
+
+  /* Shell functions inherit the RETURN trap if function tracing is on
+     globally or on individually for this function. */
+#if 0
+  if (return_trap && ((trace_p (var) == 0) && function_trace_mode == 0))
+#else
+  if (return_trap && (signal_in_progress (DEBUG_TRAP) || ((trace_p (var) == 0) && function_trace_mode == 0)))
+#endif
+    {
+      if (subshell == 0)
+       {
+         return_trap = savestring (return_trap);
+         add_unwind_protect (xfree, return_trap);
+         add_unwind_protect (set_return_trap, return_trap);
+       }
+      restore_default_signal (RETURN_TRAP);
+    }
+  
+  funcnest++;
+#if defined (ARRAY_VARS)
+  /* This is quite similar to the code in shell.c and elsewhere. */
+  shell_fn = find_function_def (this_shell_function->name);
+  sfile = shell_fn ? shell_fn->source_file : "";
+  array_push (funcname_a, this_shell_function->name);
+
+  array_push (bash_source_a, sfile);
+  t = itos (executing_line_number ());
+  array_push (bash_lineno_a, t);
+  free (t);
+#endif
+
+  /* The temporary environment for a function is supposed to apply to
+     all commands executed within the function body. */
+
+  remember_args (words->next, 1);
+
+  /* Update BASH_ARGV and BASH_ARGC */
+  if (debugging_mode)
+    push_args (words->next);
+
+  /* Number of the line on which the function body starts. */
+  line_number = function_line_number = tc->line;
+
+#if defined (JOB_CONTROL)
+  if (subshell)
+    stop_pipeline (async, (COMMAND *)NULL);
+#endif
+
+  fc = tc;
+
+  return_catch_flag++;
+  return_val = setjmp (return_catch);
+
+  if (return_val)
+    {
+      result = return_catch_value;
+      /* Run the RETURN trap in the function's context. */
+      save_current = currently_executing_command;
+      run_return_trap ();
+      currently_executing_command = save_current;
+    }
+  else
+    {
+      /* Run the debug trap here so we can trap at the start of a function's
+        execution rather than the execution of the body's first command. */
+      showing_function_line = 1;
+      save_current = currently_executing_command;
+      result = run_debug_trap ();
+#if defined (DEBUGGER)
+      /* In debugging mode, if the DEBUG trap returns a non-zero status, we
+        skip the command. */
+      if (debugging_mode == 0 || result == EXECUTION_SUCCESS)
+       {
+         showing_function_line = 0;
+         currently_executing_command = save_current;
+         result = execute_command_internal (fc, 0, NO_PIPE, NO_PIPE, fds_to_close);
+
+         /* Run the RETURN trap in the function's context */
+         save_current = currently_executing_command;
+         run_return_trap ();
+         currently_executing_command = save_current;
+       }
+#else
+      result = execute_command_internal (fc, 0, NO_PIPE, NO_PIPE, fds_to_close);
+
+      save_current = currently_executing_command;
+      run_return_trap ();
+      currently_executing_command = save_current;
+#endif
+      showing_function_line = 0;
+    }
+
+  /* Restore BASH_ARGC and BASH_ARGV */
+  if (debugging_mode)
+    pop_args ();
+
+  if (subshell == 0)
+    run_unwind_frame ("function_calling");
+
+  funcnest--;
+#if defined (ARRAY_VARS)
+  /* These two variables cannot be unset, and cannot be affected by the
+     function. */
+  array_pop (bash_source_a);
+  array_pop (bash_lineno_a);
+
+  /* FUNCNAME can be unset, and so can potentially be changed by the
+     function. */
+  GET_ARRAY_FROM_VAR ("FUNCNAME", nfv, funcname_a);
+  if (nfv == funcname_v)
+    array_pop (funcname_a);
+#endif
+  
+  if (variable_context == 0 || this_shell_function == 0)
+    {
+      make_funcname_visible (0);
+itrace("execute_function: calling unlink_fifo_list");
+      unlink_fifo_list ();
+    }
+  
+  return (result);
+}
+
+/* A convenience routine for use by other parts of the shell to execute
+   a particular shell function. */
+int
+execute_shell_function (var, words)
+     SHELL_VAR *var;
+     WORD_LIST *words;
+{
+  int ret;
+  struct fd_bitmap *bitmap;
+
+  bitmap = new_fd_bitmap (FD_BITMAP_DEFAULT_SIZE);
+  begin_unwind_frame ("execute-shell-function");
+  add_unwind_protect (dispose_fd_bitmap, (char *)bitmap);
+      
+  ret = execute_function (var, words, 0, bitmap, 0, 0);
+
+  dispose_fd_bitmap (bitmap);
+  discard_unwind_frame ("execute-shell-function");
+
+  return ret;
+}
+
+/* Execute a shell builtin or function in a subshell environment.  This
+   routine does not return; it only calls exit().  If BUILTIN is non-null,
+   it points to a function to call to execute a shell builtin; otherwise
+   VAR points at the body of a function to execute.  WORDS is the arguments
+   to the command, REDIRECTS specifies redirections to perform before the
+   command is executed. */
+static void
+execute_subshell_builtin_or_function (words, redirects, builtin, var,
+                                     pipe_in, pipe_out, async, fds_to_close,
+                                     flags)
+     WORD_LIST *words;
+     REDIRECT *redirects;
+     sh_builtin_func_t *builtin;
+     SHELL_VAR *var;
+     int pipe_in, pipe_out, async;
+     struct fd_bitmap *fds_to_close;
+     int flags;
+{
+  int result, r, funcvalue;
+#if defined (JOB_CONTROL)
+  int jobs_hack;
+
+  jobs_hack = (builtin == jobs_builtin) &&
+               ((subshell_environment & SUBSHELL_ASYNC) == 0 || pipe_out != NO_PIPE);
+#endif
+
+  /* A subshell is neither a login shell nor interactive. */
+  login_shell = interactive = 0;
+
+  if (async)
+    subshell_environment |= SUBSHELL_ASYNC;
+  if (pipe_in != NO_PIPE || pipe_out != NO_PIPE)
+    subshell_environment |= SUBSHELL_PIPE;
+
+  maybe_make_export_env ();    /* XXX - is this needed? */
+
+#if defined (JOB_CONTROL)
+  /* Eradicate all traces of job control after we fork the subshell, so
+     all jobs begun by this subshell are in the same process group as
+     the shell itself. */
+
+  /* Allow the output of `jobs' to be piped. */
+  if (jobs_hack)
+    kill_current_pipeline ();
+  else
+    without_job_control ();
+
+  set_sigchld_handler ();
+#endif /* JOB_CONTROL */
+
+  set_sigint_handler ();
+
+  if (fds_to_close)
+    close_fd_bitmap (fds_to_close);
+
+  do_piping (pipe_in, pipe_out);
+
+  if (do_redirections (redirects, RX_ACTIVE) != 0)
+    exit (EXECUTION_FAILURE);
+
+  if (builtin)
+    {
+      /* Give builtins a place to jump back to on failure,
+        so we don't go back up to main(). */
+      result = setjmp (top_level);
+
+      /* Give the return builtin a place to jump to when executed in a subshell
+         or pipeline */
+      funcvalue = 0;
+      if (return_catch_flag && builtin == return_builtin)
+        funcvalue = setjmp (return_catch);
+
+      if (result == EXITPROG)
+       exit (last_command_exit_value);
+      else if (result)
+       exit (EXECUTION_FAILURE);
+      else if (funcvalue)
+       exit (return_catch_value);
+      else
+       {
+         r = execute_builtin (builtin, words, flags, 1);
+         fflush (stdout);
+         if (r == EX_USAGE)
+           r = EX_BADUSAGE;
+         exit (r);
+       }
+    }
+  else
+    {
+      r = execute_function (var, words, flags, fds_to_close, async, 1);
+      fflush (stdout);
+      exit (r);
+    }
+}
+
+/* Execute a builtin or function in the current shell context.  If BUILTIN
+   is non-null, it is the builtin command to execute, otherwise VAR points
+   to the body of a function.  WORDS are the command's arguments, REDIRECTS
+   are the redirections to perform.  FDS_TO_CLOSE is the usual bitmap of
+   file descriptors to close.
+
+   If BUILTIN is exec_builtin, the redirections specified in REDIRECTS are
+   not undone before this function returns. */
+static int
+execute_builtin_or_function (words, builtin, var, redirects,
+                            fds_to_close, flags)
+     WORD_LIST *words;
+     sh_builtin_func_t *builtin;
+     SHELL_VAR *var;
+     REDIRECT *redirects;
+     struct fd_bitmap *fds_to_close;
+     int flags;
+{
+  int result;
+  REDIRECT *saved_undo_list;
+  sh_builtin_func_t *saved_this_shell_builtin;
+
+  if (do_redirections (redirects, RX_ACTIVE|RX_UNDOABLE) != 0)
+    {
+      cleanup_redirects (redirection_undo_list);
+      redirection_undo_list = (REDIRECT *)NULL;
+      dispose_exec_redirects ();
+      return (EX_REDIRFAIL);   /* was EXECUTION_FAILURE */
+    }
+
+  saved_this_shell_builtin = this_shell_builtin;
+  saved_undo_list = redirection_undo_list;
+
+  /* Calling the "exec" builtin changes redirections forever. */
+  if (builtin == exec_builtin)
+    {
+      dispose_redirects (saved_undo_list);
+      saved_undo_list = exec_redirection_undo_list;
+      exec_redirection_undo_list = (REDIRECT *)NULL;
+    }
+  else
+    dispose_exec_redirects ();
+
+  if (saved_undo_list)
+    {
+      begin_unwind_frame ("saved redirects");
+      add_unwind_protect (cleanup_redirects, (char *)saved_undo_list);
+    }
+
+  redirection_undo_list = (REDIRECT *)NULL;
+
+  if (builtin)
+    result = execute_builtin (builtin, words, flags, 0);
+  else
+    result = execute_function (var, words, flags, fds_to_close, 0, 0);
+
+  /* We do this before undoing the effects of any redirections. */
+  fflush (stdout);
+  fpurge (stdout);
+  if (ferror (stdout))
+    clearerr (stdout);  
+
+  /* If we are executing the `command' builtin, but this_shell_builtin is
+     set to `exec_builtin', we know that we have something like
+     `command exec [redirection]', since otherwise `exec' would have
+     overwritten the shell and we wouldn't get here.  In this case, we
+     want to behave as if the `command' builtin had not been specified
+     and preserve the redirections. */
+  if (builtin == command_builtin && this_shell_builtin == exec_builtin)
+    {
+      if (saved_undo_list)
+       dispose_redirects (saved_undo_list);
+      redirection_undo_list = exec_redirection_undo_list;
+      saved_undo_list = exec_redirection_undo_list = (REDIRECT *)NULL;      
+      discard_unwind_frame ("saved_redirects");
+    }
+
+  if (saved_undo_list)
+    {
+      redirection_undo_list = saved_undo_list;
+      discard_unwind_frame ("saved redirects");
+    }
+
+  if (redirection_undo_list)
+    {
+      cleanup_redirects (redirection_undo_list);
+      redirection_undo_list = (REDIRECT *)NULL;
+    }
+
+  return (result);
+}
+
+void
+setup_async_signals ()
+{
+#if defined (__BEOS__)
+  set_signal_handler (SIGHUP, SIG_IGN);        /* they want csh-like behavior */
+#endif
+
+#if defined (JOB_CONTROL)
+  if (job_control == 0)
+#endif
+    {
+      set_signal_handler (SIGINT, SIG_IGN);
+      set_signal_ignored (SIGINT);
+      set_signal_handler (SIGQUIT, SIG_IGN);
+      set_signal_ignored (SIGQUIT);
+    }
+}
+
+/* Execute a simple command that is hopefully defined in a disk file
+   somewhere.
+
+   1) fork ()
+   2) connect pipes
+   3) look up the command
+   4) do redirections
+   5) execve ()
+   6) If the execve failed, see if the file has executable mode set.
+   If so, and it isn't a directory, then execute its contents as
+   a shell script.
+
+   Note that the filename hashing stuff has to take place up here,
+   in the parent.  This is probably why the Bourne style shells
+   don't handle it, since that would require them to go through
+   this gnarly hair, for no good reason.
+
+   NOTE: callers expect this to fork or exit(). */
+
+/* Name of a shell function to call when a command name is not found. */
+#ifndef NOTFOUND_HOOK
+#  define NOTFOUND_HOOK "command_not_found_handle"
+#endif
+
+static void
+execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
+                     async, fds_to_close, cmdflags)
+     WORD_LIST *words;
+     REDIRECT *redirects;
+     char *command_line;
+     int pipe_in, pipe_out, async;
+     struct fd_bitmap *fds_to_close;
+     int cmdflags;
+{
+  char *pathname, *command, **args;
+  int nofork;
+  pid_t pid;
+  SHELL_VAR *hookf;
+  WORD_LIST *wl;
+
+  nofork = (cmdflags & CMD_NO_FORK);  /* Don't fork, just exec, if no pipes */
+  pathname = words->word->word;
+
+#if defined (RESTRICTED_SHELL)
+  command = (char *)NULL;
+  if (restricted && xstrchr (pathname, '/'))
+    {
+      internal_error (_("%s: restricted: cannot specify `/' in command names"),
+                   pathname);
+      last_command_exit_value = EXECUTION_FAILURE;
+
+      /* If we're not going to fork below, we must already be in a child
+         process or a context in which it's safe to call exit(2).  */
+      if (nofork && pipe_in == NO_PIPE && pipe_out == NO_PIPE)
+       exit (last_command_exit_value);
+      else
+       goto parent_return;
+    }
+#endif /* RESTRICTED_SHELL */
+
+  command = search_for_command (pathname);
+
+  if (command)
+    {
+      maybe_make_export_env ();
+      put_command_name_into_env (command);
+    }
+
+  /* We have to make the child before we check for the non-existence
+     of COMMAND, since we want the error messages to be redirected. */
+  /* If we can get away without forking and there are no pipes to deal with,
+     don't bother to fork, just directly exec the command. */
+  if (nofork && pipe_in == NO_PIPE && pipe_out == NO_PIPE)
+    pid = 0;
+  else
+    pid = make_child (savestring (command_line), async);
+
+  if (pid == 0)
+    {
+      int old_interactive;
+
+#if 0
+      /* This has been disabled for the time being. */
+#if !defined (ARG_MAX) || ARG_MAX >= 10240
+      if (posixly_correct == 0)
+       put_gnu_argv_flags_into_env ((long)getpid (), glob_argv_flags);
+#endif
+#endif
+
+      /* Cancel traps, in trap.c. */
+      restore_original_signals ();
+
+      /* restore_original_signals may have undone the work done
+        by make_child to ensure that SIGINT and SIGQUIT are ignored
+        in asynchronous children. */
+      if (async)
+       {
+         if ((cmdflags & CMD_STDIN_REDIR) &&
+               pipe_in == NO_PIPE &&
+               (stdin_redirects (redirects) == 0))
+           async_redirect_stdin ();
+         setup_async_signals ();
+       }
+
+      /* This functionality is now provided by close-on-exec of the
+        file descriptors manipulated by redirection and piping.
+        Some file descriptors still need to be closed in all children
+        because of the way bash does pipes; fds_to_close is a
+        bitmap of all such file descriptors. */
+      if (fds_to_close)
+       close_fd_bitmap (fds_to_close);
+
+      do_piping (pipe_in, pipe_out);
+
+      old_interactive = interactive;
+      if (async)
+       interactive = 0;
+
+      subshell_environment = SUBSHELL_FORK;
+
+      if (redirects && (do_redirections (redirects, RX_ACTIVE) != 0))
+       {
+#if defined (PROCESS_SUBSTITUTION)
+         /* Try to remove named pipes that may have been created as the
+            result of redirections. */
+         unlink_fifo_list ();
+#endif /* PROCESS_SUBSTITUTION */
+         exit (EXECUTION_FAILURE);
+       }
+
+      if (async)
+       interactive = old_interactive;
+
+      if (command == 0)
+       {
+         hookf = find_function (NOTFOUND_HOOK);
+         if (hookf == 0)
+           {
+             internal_error (_("%s: command not found"), pathname);
+             exit (EX_NOTFOUND);       /* Posix.2 says the exit status is 127 */
+           }
+
+         wl = make_word_list (make_word (NOTFOUND_HOOK), words);
+         exit (execute_shell_function (hookf, wl));
+       }
+
+      /* Execve expects the command name to be in args[0].  So we
+        leave it there, in the same format that the user used to
+        type it in. */
+      args = strvec_from_word_list (words, 0, 0, (int *)NULL);
+      exit (shell_execve (command, args, export_env));
+    }
+  else
+    {
+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)
+      if (variable_context == 0)
+        unlink_fifo_list ();
+#endif
+      FREE (command);
+    }
+}
+
+/* CPP defines to decide whether a particular index into the #! line
+   corresponds to a valid interpreter name or argument character, or
+   whitespace.  The MSDOS define is to allow \r to be treated the same
+   as \n. */
+
+#if !defined (MSDOS)
+#  define STRINGCHAR(ind) \
+    (ind < sample_len && !whitespace (sample[ind]) && sample[ind] != '\n')
+#  define WHITECHAR(ind) \
+    (ind < sample_len && whitespace (sample[ind]))
+#else  /* MSDOS */
+#  define STRINGCHAR(ind) \
+    (ind < sample_len && !whitespace (sample[ind]) && sample[ind] != '\n' && sample[ind] != '\r')
+#  define WHITECHAR(ind) \
+    (ind < sample_len && whitespace (sample[ind]))
+#endif /* MSDOS */
+
+static char *
+getinterp (sample, sample_len, endp)
+     char *sample;
+     int sample_len, *endp;
+{
+  register int i;
+  char *execname;
+  int start;
+
+  /* Find the name of the interpreter to exec. */
+  for (i = 2; i < sample_len && whitespace (sample[i]); i++)
+    ;
+
+  for (start = i; STRINGCHAR(i); i++)
+    ;
+
+  execname = substring (sample, start, i);
+
+  if (endp)
+    *endp = i;
+  return execname;
+}
+
+#if !defined (HAVE_HASH_BANG_EXEC)
+/* If the operating system on which we're running does not handle
+   the #! executable format, then help out.  SAMPLE is the text read
+   from the file, SAMPLE_LEN characters.  COMMAND is the name of
+   the script; it and ARGS, the arguments given by the user, will
+   become arguments to the specified interpreter.  ENV is the environment
+   to pass to the interpreter.
+
+   The word immediately following the #! is the interpreter to execute.
+   A single argument to the interpreter is allowed. */
+
+static int
+execute_shell_script (sample, sample_len, command, args, env)
+     char *sample;
+     int sample_len;
+     char *command;
+     char **args, **env;
+{
+  char *execname, *firstarg;
+  int i, start, size_increment, larry;
+
+  /* Find the name of the interpreter to exec. */
+  execname = getinterp (sample, sample_len, &i);
+  size_increment = 1;
+
+  /* Now the argument, if any. */
+  for (firstarg = (char *)NULL, start = i; WHITECHAR(i); i++)
+    ;
+
+  /* If there is more text on the line, then it is an argument for the
+     interpreter. */
+
+  if (STRINGCHAR(i))  
+    {
+      for (start = i; STRINGCHAR(i); i++)
+       ;
+      firstarg = substring ((char *)sample, start, i);
+      size_increment = 2;
+    }
+
+  larry = strvec_len (args) + size_increment;
+  args = strvec_resize (args, larry + 1);
+
+  for (i = larry - 1; i; i--)
+    args[i] = args[i - size_increment];
+
+  args[0] = execname;
+  if (firstarg)
+    {
+      args[1] = firstarg;
+      args[2] = command;
+    }
+  else
+    args[1] = command;
+
+  args[larry] = (char *)NULL;
+
+  return (shell_execve (execname, args, env));
+}
+#undef STRINGCHAR
+#undef WHITECHAR
+
+#endif /* !HAVE_HASH_BANG_EXEC */
+
+static void
+initialize_subshell ()
+{
+#if defined (ALIAS)
+  /* Forget about any aliases that we knew of.  We are in a subshell. */
+  delete_all_aliases ();
+#endif /* ALIAS */
+
+#if defined (HISTORY)
+  /* Forget about the history lines we have read.  This is a non-interactive
+     subshell. */
+  history_lines_this_session = 0;
+#endif
+
+#if defined (JOB_CONTROL)
+  /* Forget about the way job control was working. We are in a subshell. */
+  without_job_control ();
+  set_sigchld_handler ();
+  init_job_stats ();
+#endif /* JOB_CONTROL */
+
+  /* Reset the values of the shell flags and options. */
+  reset_shell_flags ();
+  reset_shell_options ();
+  reset_shopt_options ();
+
+  /* Zero out builtin_env, since this could be a shell script run from a
+     sourced file with a temporary environment supplied to the `source/.'
+     builtin.  Such variables are not supposed to be exported (empirical
+     testing with sh and ksh).  Just throw it away; don't worry about a
+     memory leak. */
+  if (vc_isbltnenv (shell_variables))
+    shell_variables = shell_variables->down;
+
+  clear_unwind_protect_list (0);
+  /* XXX -- are there other things we should be resetting here? */
+  parse_and_execute_level = 0;         /* nothing left to restore it */
+
+  /* We're no longer inside a shell function. */
+  variable_context = return_catch_flag = 0;
+
+  executing_list = 0;          /* XXX */
+
+  /* If we're not interactive, close the file descriptor from which we're
+     reading the current shell script. */
+  if (interactive_shell == 0)
+    unset_bash_input (0);
+}
+
+#if defined (HAVE_SETOSTYPE) && defined (_POSIX_SOURCE)
+#  define SETOSTYPE(x) __setostype(x)
+#else
+#  define SETOSTYPE(x)
+#endif
+
+#define READ_SAMPLE_BUF(file, buf, len) \
+  do \
+    { \
+      fd = open(file, O_RDONLY); \
+      if (fd >= 0) \
+       { \
+         len = read (fd, buf, 80); \
+         close (fd); \
+       } \
+      else \
+       len = -1; \
+    } \
+  while (0)
+      
+/* Call execve (), handling interpreting shell scripts, and handling
+   exec failures. */
+int
+shell_execve (command, args, env)
+     char *command;
+     char **args, **env;
+{
+  int larray, i, fd;
+  char sample[80];
+  int sample_len;
+
+  SETOSTYPE (0);               /* Some systems use for USG/POSIX semantics */
+  execve (command, args, env);
+  i = errno;                   /* error from execve() */
+  CHECK_TERMSIG;
+  SETOSTYPE (1);
+
+  /* If we get to this point, then start checking out the file.
+     Maybe it is something we can hack ourselves. */
+  if (i != ENOEXEC)
+    {
+      if (file_isdir (command))
+       internal_error (_("%s: is a directory"), command);
+      else if (executable_file (command) == 0)
+       {
+         errno = i;
+         file_error (command);
+       }
+      /* errors not involving the path argument to execve. */
+      else if (i == E2BIG || i == ENOMEM)
+       {
+         errno = i;
+         file_error (command);
+       }
+      else
+       {
+         /* The file has the execute bits set, but the kernel refuses to
+            run it for some reason.  See why. */
+#if defined (HAVE_HASH_BANG_EXEC)
+         READ_SAMPLE_BUF (command, sample, sample_len);
+         if (sample_len > 2 && sample[0] == '#' && sample[1] == '!')
+           {
+             char *interp;
+             int ilen;
+
+             interp = getinterp (sample, sample_len, (int *)NULL);
+             ilen = strlen (interp);
+             errno = i;
+             if (interp[ilen - 1] == '\r')
+               {
+                 interp = xrealloc (interp, ilen + 2);
+                 interp[ilen - 1] = '^';
+                 interp[ilen] = 'M';
+                 interp[ilen + 1] = '\0';
+               }
+             sys_error (_("%s: %s: bad interpreter"), command, interp ? interp : "");
+             FREE (interp);
+             return (EX_NOEXEC);
+           }
+#endif
+         errno = i;
+         file_error (command);
+       }
+      return ((i == ENOENT) ? EX_NOTFOUND : EX_NOEXEC);        /* XXX Posix.2 says that exit status is 126 */
+    }
+
+  /* This file is executable.
+     If it begins with #!, then help out people with losing operating
+     systems.  Otherwise, check to see if it is a binary file by seeing
+     if the contents of the first line (or up to 80 characters) are in the
+     ASCII set.  If it's a text file, execute the contents as shell commands,
+     otherwise return 126 (EX_BINARY_FILE). */
+  READ_SAMPLE_BUF (command, sample, sample_len);
+
+  if (sample_len == 0)
+    return (EXECUTION_SUCCESS);
+
+  /* Is this supposed to be an executable script?
+     If so, the format of the line is "#! interpreter [argument]".
+     A single argument is allowed.  The BSD kernel restricts
+     the length of the entire line to 32 characters (32 bytes
+     being the size of the BSD exec header), but we allow 80
+     characters. */
+  if (sample_len > 0)
+    {
+#if !defined (HAVE_HASH_BANG_EXEC)
+      if (sample_len > 2 && sample[0] == '#' && sample[1] == '!')
+       return (execute_shell_script (sample, sample_len, command, args, env));
+      else
+#endif
+      if (check_binary_file (sample, sample_len))
+       {
+         internal_error (_("%s: cannot execute binary file"), command);
+         return (EX_BINARY_FILE);
+       }
+    }
+
+  /* We have committed to attempting to execute the contents of this file
+     as shell commands. */
+
+  initialize_subshell ();
+
+  set_sigint_handler ();
+
+  /* Insert the name of this shell into the argument list. */
+  larray = strvec_len (args) + 1;
+  args = strvec_resize (args, larray + 1);
+
+  for (i = larray - 1; i; i--)
+    args[i] = args[i - 1];
+
+  args[0] = shell_name;
+  args[1] = command;
+  args[larray] = (char *)NULL;
+
+  if (args[0][0] == '-')
+    args[0]++;
+
+#if defined (RESTRICTED_SHELL)
+  if (restricted)
+    change_flag ('r', FLAG_OFF);
+#endif
+
+  if (subshell_argv)
+    {
+      /* Can't free subshell_argv[0]; that is shell_name. */
+      for (i = 1; i < subshell_argc; i++)
+       free (subshell_argv[i]);
+      free (subshell_argv);
+    }
+
+  dispose_command (currently_executing_command);       /* XXX */
+  currently_executing_command = (COMMAND *)NULL;
+
+  subshell_argc = larray;
+  subshell_argv = args;
+  subshell_envp = env;
+
+  unbind_args ();      /* remove the positional parameters */
+
+  longjmp (subshell_top_level, 1);
+  /*NOTREACHED*/
+}
+
+static int
+execute_intern_function (name, function)
+     WORD_DESC *name;
+     COMMAND *function;
+{
+  SHELL_VAR *var;
+
+  if (check_identifier (name, posixly_correct) == 0)
+    {
+      if (posixly_correct && interactive_shell == 0)
+       {
+         last_command_exit_value = EX_BADUSAGE;
+         jump_to_top_level (ERREXIT);
+       }
+      return (EXECUTION_FAILURE);
+    }
+
+  var = find_function (name->word);
+  if (var && (readonly_p (var) || noassign_p (var)))
+    {
+      if (readonly_p (var))
+       internal_error (_("%s: readonly function"), var->name);
+      return (EXECUTION_FAILURE);
+    }
+
+  bind_function (name->word, function);
+  return (EXECUTION_SUCCESS);
+}
+
+#if defined (INCLUDE_UNUSED)
+#if defined (PROCESS_SUBSTITUTION)
+void
+close_all_files ()
+{
+  register int i, fd_table_size;
+
+  fd_table_size = getdtablesize ();
+  if (fd_table_size > 256)     /* clamp to a reasonable value */
+    fd_table_size = 256;
+
+  for (i = 3; i < fd_table_size; i++)
+    close (i);
+}
+#endif /* PROCESS_SUBSTITUTION */
+#endif
+
+static void
+close_pipes (in, out)
+     int in, out;
+{
+  if (in >= 0)
+    close (in);
+  if (out >= 0)
+    close (out);
+}
+
+static void
+dup_error (oldd, newd)
+     int oldd, newd;
+{
+  sys_error (_("cannot duplicate fd %d to fd %d"), oldd, newd);
+}
+
+/* Redirect input and output to be from and to the specified pipes.
+   NO_PIPE and REDIRECT_BOTH are handled correctly. */
+static void
+do_piping (pipe_in, pipe_out)
+     int pipe_in, pipe_out;
+{
+  if (pipe_in != NO_PIPE)
+    {
+      if (dup2 (pipe_in, 0) < 0)
+       dup_error (pipe_in, 0);
+      if (pipe_in > 0)
+       close (pipe_in);
+    }
+  if (pipe_out != NO_PIPE)
+    {
+      if (pipe_out != REDIRECT_BOTH)
+       {
+         if (dup2 (pipe_out, 1) < 0)
+           dup_error (pipe_out, 1);
+         if (pipe_out == 0 || pipe_out > 1)
+           close (pipe_out);
+       }
+      else
+       {
+         if (dup2 (1, 2) < 0)
+           dup_error (1, 2);
+       }
+    }
+}
index ccde9b9f54dc444006969ad893461b260a75a79f..ea67dfc76c2eb41838778a0400b4579684b07a00 100644 (file)
--- a/hashlib.c
+++ b/hashlib.c
@@ -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))
        {
diff --git a/jobs.c b/jobs.c
index 24d98af5668f550689d8fb555e147f6504991c95..d55d8306dffc73675c4c5fe46f8f81fbfd03e20f 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -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. */
     }
 
diff --git a/jobs.c~ b/jobs.c~
new file mode 100644 (file)
index 0000000..24d98af
--- /dev/null
+++ b/jobs.c~
@@ -0,0 +1,4205 @@
+/* jobs.c - functions that make children, remember them, and handle their termination. */
+
+/* This file works with both POSIX and BSD systems.  It implements job
+   control. */
+
+/* Copyright (C) 1989-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"
+#include "trap.h"
+#include <stdio.h>
+#include <signal.h>
+#include <errno.h>
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "posixtime.h"
+
+#if defined (HAVE_SYS_RESOURCE_H) && defined (HAVE_WAIT3) && !defined (_POSIX_VERSION) && !defined (RLIMTYPE)
+#  include <sys/resource.h>
+#endif /* !_POSIX_VERSION && HAVE_SYS_RESOURCE_H && HAVE_WAIT3 && !RLIMTYPE */
+
+#if defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif
+
+#include "filecntl.h"
+#include <sys/ioctl.h>
+#include <sys/param.h>
+
+#if defined (BUFFERED_INPUT)
+#  include "input.h"
+#endif
+
+/* Need to include this up here for *_TTY_DRIVER definitions. */
+#include "shtty.h"
+
+/* Define this if your output is getting swallowed.  It's a no-op on
+   machines with the termio or termios tty drivers. */
+/* #define DRAIN_OUTPUT */
+
+/* For the TIOCGPGRP and TIOCSPGRP ioctl parameters on HP-UX */
+#if defined (hpux) && !defined (TERMIOS_TTY_DRIVER)
+#  include <bsdtty.h>
+#endif /* hpux && !TERMIOS_TTY_DRIVER */
+
+#include "bashansi.h"
+#include "bashintl.h"
+#include "shell.h"
+#include "jobs.h"
+#include "execute_cmd.h"
+#include "flags.h"
+
+#include "builtins/builtext.h"
+#include "builtins/common.h"
+
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#define DEFAULT_CHILD_MAX 32
+#if !defined (DEBUG)
+#define MAX_JOBS_IN_ARRAY 4096         /* production */
+#else
+#define MAX_JOBS_IN_ARRAY 128          /* testing */
+#endif
+
+/* Flag values for second argument to delete_job */
+#define DEL_WARNSTOPPED                1       /* warn about deleting stopped jobs */
+#define DEL_NOBGPID            2       /* don't add pgrp leader to bgpids */
+
+/* Take care of system dependencies that must be handled when waiting for
+   children.  The arguments to the WAITPID macro match those to the Posix.1
+   waitpid() function. */
+
+#if defined (ultrix) && defined (mips) && defined (_POSIX_VERSION)
+#  define WAITPID(pid, statusp, options) \
+       wait3 ((union wait *)statusp, options, (struct rusage *)0)
+#else
+#  if defined (_POSIX_VERSION) || defined (HAVE_WAITPID)
+#    define WAITPID(pid, statusp, options) \
+       waitpid ((pid_t)pid, statusp, options)
+#  else
+#    if defined (HAVE_WAIT3)
+#      define WAITPID(pid, statusp, options) \
+       wait3 (statusp, options, (struct rusage *)0)
+#    else
+#      define WAITPID(pid, statusp, options) \
+       wait3 (statusp, options, (int *)0)
+#    endif /* HAVE_WAIT3 */
+#  endif /* !_POSIX_VERSION && !HAVE_WAITPID*/
+#endif /* !(Ultrix && mips && _POSIX_VERSION) */
+
+/* getpgrp () varies between systems.  Even systems that claim to be
+   Posix.1 compatible lie sometimes (Ultrix, SunOS4, apollo). */
+#if defined (GETPGRP_VOID)
+#  define getpgid(p) getpgrp ()
+#else
+#  define getpgid(p) getpgrp (p)
+#endif /* !GETPGRP_VOID */
+
+/* If the system needs it, REINSTALL_SIGCHLD_HANDLER will reinstall the
+   handler for SIGCHLD. */
+#if defined (MUST_REINSTALL_SIGHANDLERS)
+#  define REINSTALL_SIGCHLD_HANDLER signal (SIGCHLD, sigchld_handler)
+#else
+#  define REINSTALL_SIGCHLD_HANDLER
+#endif /* !MUST_REINSTALL_SIGHANDLERS */
+
+/* Some systems let waitpid(2) tell callers about stopped children. */
+#if !defined (WCONTINUED) || defined (WCONTINUED_BROKEN)
+#  undef WCONTINUED
+#  define WCONTINUED 0
+#endif
+#if !defined (WIFCONTINUED)
+#  define WIFCONTINUED(s)      (0)
+#endif
+
+/* The number of additional slots to allocate when we run out. */
+#define JOB_SLOTS 8
+
+typedef int sh_job_map_func_t __P((JOB *, int, int, int));
+
+/* Variables used here but defined in other files. */
+extern int subshell_environment, line_number;
+extern int posixly_correct, shell_level;
+extern int last_command_exit_value, last_command_exit_signal;
+extern int loop_level, breaking;
+extern int executing_list;
+extern int sourcelevel;
+extern int running_trap;
+extern sh_builtin_func_t *this_shell_builtin;
+extern char *shell_name, *this_command_name;
+extern sigset_t top_level_mask;
+extern procenv_t wait_intr_buf;
+extern int wait_signal_received;
+extern WORD_LIST *subst_assign_varlist;
+
+static struct jobstats zerojs = { -1L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NO_JOB, NO_JOB, 0, 0 };
+struct jobstats js = { -1L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NO_JOB, NO_JOB, 0, 0 };
+
+struct bgpids bgpids = { 0, 0, 0 };
+
+/* The array of known jobs. */
+JOB **jobs = (JOB **)NULL;
+
+#if 0
+/* The number of slots currently allocated to JOBS. */
+int job_slots = 0;
+#endif
+
+/* The controlling tty for this shell. */
+int shell_tty = -1;
+
+/* The shell's process group. */
+pid_t shell_pgrp = NO_PID;
+
+/* The terminal's process group. */
+pid_t terminal_pgrp = NO_PID;
+
+/* The process group of the shell's parent. */
+pid_t original_pgrp = NO_PID;
+
+/* The process group of the pipeline currently being made. */
+pid_t pipeline_pgrp = (pid_t)0;
+
+#if defined (PGRP_PIPE)
+/* Pipes which each shell uses to communicate with the process group leader
+   until all of the processes in a pipeline have been started.  Then the
+   process leader is allowed to continue. */
+int pgrp_pipe[2] = { -1, -1 };
+#endif
+
+#if 0
+/* The job which is current; i.e. the one that `%+' stands for. */
+int current_job = NO_JOB;
+
+/* The previous job; i.e. the one that `%-' stands for. */
+int previous_job = NO_JOB;
+#endif
+
+/* Last child made by the shell.  */
+pid_t last_made_pid = NO_PID;
+
+/* Pid of the last asynchronous child. */
+pid_t last_asynchronous_pid = NO_PID;
+
+/* The pipeline currently being built. */
+PROCESS *the_pipeline = (PROCESS *)NULL;
+
+/* If this is non-zero, do job control. */
+int job_control = 1;
+
+/* Call this when you start making children. */
+int already_making_children = 0;
+
+/* If this is non-zero, $LINES and $COLUMNS are reset after every process
+   exits from get_tty_state(). */
+int check_window_size;
+
+/* Functions local to this file. */
+
+static sighandler wait_sigint_handler __P((int));
+static sighandler sigchld_handler __P((int));
+static sighandler sigcont_sighandler __P((int));
+static sighandler sigstop_sighandler __P((int));
+
+static int waitchld __P((pid_t, int));
+
+static PROCESS *find_pipeline __P((pid_t, int, int *));
+static PROCESS *find_process __P((pid_t, int, int *));
+
+static char *current_working_directory __P((void));
+static char *job_working_directory __P((void));
+static char *j_strsignal __P((int));
+static char *printable_job_status __P((int, PROCESS *, int));
+
+static PROCESS *find_last_proc __P((int, int));
+static pid_t find_last_pid __P((int, int));
+
+static int set_new_line_discipline __P((int));
+static int map_over_jobs __P((sh_job_map_func_t *, int, int));
+static int job_last_stopped __P((int));
+static int job_last_running __P((int));
+static int most_recent_job_in_state __P((int, JOB_STATE));
+static int find_job __P((pid_t, int, PROCESS **));
+static int print_job __P((JOB *, int, int, int));
+static int process_exit_status __P((WAIT));
+static int process_exit_signal __P((WAIT));
+static int job_exit_status __P((int));
+static int job_exit_signal __P((int));
+static int set_job_status_and_cleanup __P((int));
+
+static WAIT job_signal_status __P((int));
+static WAIT raw_job_exit_status __P((int));
+
+static void notify_of_job_status __P((void));
+static void reset_job_indices __P((void));
+static void cleanup_dead_jobs __P((void));
+static int processes_in_job __P((int));
+static void realloc_jobs_list __P((void));
+static int compact_jobs_list __P((int));
+static int discard_pipeline __P((PROCESS *));
+static void add_process __P((char *, pid_t));
+static void print_pipeline __P((PROCESS *, int, int, FILE *));
+static void pretty_print_job __P((int, int, FILE *));
+static void set_current_job __P((int));
+static void reset_current __P((void));
+static void set_job_running __P((int));
+static void setjstatus __P((int));
+static int maybe_give_terminal_to __P((pid_t, pid_t, int));
+static void mark_all_jobs_as_dead __P((void));
+static void mark_dead_jobs_as_notified __P((int));
+static void restore_sigint_handler __P((void));
+#if defined (PGRP_PIPE)
+static void pipe_read __P((int *));
+#endif
+
+static struct pidstat *bgp_alloc __P((pid_t, int));
+static struct pidstat *bgp_add __P((pid_t, int));
+static int bgp_delete __P((pid_t));
+static void bgp_clear __P((void));
+static int bgp_search __P((pid_t));
+static void bgp_prune __P((void));
+
+#if defined (ARRAY_VARS)
+static int *pstatuses;         /* list of pipeline statuses */
+static int statsize;
+#endif
+
+/* Used to synchronize between wait_for and other functions and the SIGCHLD
+   signal handler. */
+static int sigchld;
+static int queue_sigchld;
+
+#define QUEUE_SIGCHLD(os)      (os) = sigchld, queue_sigchld++
+
+#define UNQUEUE_SIGCHLD(os) \
+       do { \
+         queue_sigchld--; \
+         if (queue_sigchld == 0 && os != sigchld) \
+           waitchld (-1, 0); \
+       } while (0)
+
+static SigHandler *old_tstp, *old_ttou, *old_ttin;
+static SigHandler *old_cont = (SigHandler *)SIG_DFL;
+
+/* A place to temporarily save the current pipeline. */
+static PROCESS *saved_pipeline;
+static int saved_already_making_children;
+
+/* Set this to non-zero whenever you don't want the jobs list to change at
+   all: no jobs deleted and no status change notifications.  This is used,
+   for example, when executing SIGCHLD traps, which may run arbitrary
+   commands. */
+static int jobs_list_frozen;
+
+static char retcode_name_buffer[64];
+
+/* flags to detect pid wraparound */
+static pid_t first_pid = NO_PID;
+static int pid_wrap = -1;
+
+#if !defined (_POSIX_VERSION)
+
+/* These are definitions to map POSIX 1003.1 functions onto existing BSD
+   library functions and system calls. */
+#define setpgid(pid, pgrp)     setpgrp (pid, pgrp)
+#define tcsetpgrp(fd, pgrp)    ioctl ((fd), TIOCSPGRP, &(pgrp))
+
+pid_t
+tcgetpgrp (fd)
+     int fd;
+{
+  pid_t pgrp;
+
+  /* ioctl will handle setting errno correctly. */
+  if (ioctl (fd, TIOCGPGRP, &pgrp) < 0)
+    return (-1);
+  return (pgrp);
+}
+
+#endif /* !_POSIX_VERSION */
+
+/* Initialize the global job stats structure and other bookkeeping variables */
+void
+init_job_stats ()
+{
+  js = zerojs;
+  first_pid = NO_PID;
+  pid_wrap = -1;
+}
+
+/* Return the working directory for the current process.  Unlike
+   job_working_directory, this does not call malloc (), nor do any
+   of the functions it calls.  This is so that it can safely be called
+   from a signal handler. */
+static char *
+current_working_directory ()
+{
+  char *dir;
+  static char d[PATH_MAX];
+
+  dir = get_string_value ("PWD");
+
+  if (dir == 0 && the_current_working_directory && no_symbolic_links)
+    dir = the_current_working_directory;
+
+  if (dir == 0)
+    {
+      dir = getcwd (d, sizeof(d));
+      if (dir)
+       dir = d;
+    }
+
+  return (dir == 0) ? "<unknown>" : dir;
+}
+
+/* Return the working directory for the current process. */
+static char *
+job_working_directory ()
+{
+  char *dir;
+
+  dir = get_string_value ("PWD");
+  if (dir)
+    return (savestring (dir));
+
+  dir = get_working_directory ("job-working-directory");
+  if (dir)
+    return (dir);
+
+  return (savestring ("<unknown>"));
+}
+
+void
+making_children ()
+{
+  if (already_making_children)
+    return;
+
+  already_making_children = 1;
+  start_pipeline ();
+}
+
+void
+stop_making_children ()
+{
+  already_making_children = 0;
+}
+
+void
+cleanup_the_pipeline ()
+{
+  PROCESS *disposer;
+  sigset_t set, oset;
+
+  BLOCK_CHILD (set, oset);
+  disposer = the_pipeline;
+  the_pipeline = (PROCESS *)NULL;
+  UNBLOCK_CHILD (oset);
+
+  if (disposer)
+    discard_pipeline (disposer);
+}
+
+void
+save_pipeline (clear)
+     int clear;
+{
+  saved_pipeline = the_pipeline;
+  if (clear)
+    the_pipeline = (PROCESS *)NULL;
+  saved_already_making_children = already_making_children;
+}
+
+void
+restore_pipeline (discard)
+     int discard;
+{
+  PROCESS *old_pipeline;
+
+  old_pipeline = the_pipeline;
+  the_pipeline = saved_pipeline;
+  already_making_children = saved_already_making_children;
+  if (discard)
+    discard_pipeline (old_pipeline);
+}
+
+/* Start building a pipeline.  */
+void
+start_pipeline ()
+{
+  if (the_pipeline)
+    {
+      cleanup_the_pipeline ();
+      pipeline_pgrp = 0;
+#if defined (PGRP_PIPE)
+      sh_closepipe (pgrp_pipe);
+#endif
+    }
+
+#if defined (PGRP_PIPE)
+  if (job_control)
+    {
+      if (pipe (pgrp_pipe) == -1)
+       sys_error (_("start_pipeline: pgrp pipe"));
+    }
+#endif
+}
+
+/* Stop building a pipeline.  Install the process list in the job array.
+   This returns the index of the newly installed job.
+   DEFERRED is a command structure to be executed upon satisfactory
+   execution exit of this pipeline. */
+int
+stop_pipeline (async, deferred)
+     int async;
+     COMMAND *deferred;
+{
+  register int i, j;
+  JOB *newjob;
+  sigset_t set, oset;
+
+  BLOCK_CHILD (set, oset);
+
+#if defined (PGRP_PIPE)
+  /* The parent closes the process group synchronization pipe. */
+  sh_closepipe (pgrp_pipe);
+#endif
+
+  cleanup_dead_jobs ();
+
+  if (js.j_jobslots == 0)
+    {
+      js.j_jobslots = JOB_SLOTS;
+      jobs = (JOB **)xmalloc (js.j_jobslots * sizeof (JOB *));
+
+      /* Now blank out these new entries. */
+      for (i = 0; i < js.j_jobslots; i++)
+       jobs[i] = (JOB *)NULL;
+
+      js.j_firstj = js.j_lastj = js.j_njobs = 0;
+    }
+
+  /* Scan from the last slot backward, looking for the next free one. */
+  /* XXX - revisit this interactive assumption */
+  /* XXX - this way for now */
+  if (interactive)
+    {
+      for (i = js.j_jobslots; i; i--)
+       if (jobs[i - 1])
+         break;
+    }
+  else
+    {
+#if 0
+      /* This wraps around, but makes it inconvenient to extend the array */
+      for (i = js.j_lastj+1; i != js.j_lastj; i++)
+       {
+         if (i >= js.j_jobslots)
+           i = 0;
+         if (jobs[i] == 0)
+           break;
+       }       
+      if (i == js.j_lastj)
+        i = js.j_jobslots;
+#else
+      /* This doesn't wrap around yet. */
+      for (i = js.j_lastj ? js.j_lastj + 1 : js.j_lastj; i < js.j_jobslots; i++)
+       if (jobs[i] == 0)
+         break;
+#endif
+    }
+
+  /* Do we need more room? */
+
+  /* First try compaction */
+  if ((interactive_shell == 0 || subshell_environment) && i == js.j_jobslots && js.j_jobslots >= MAX_JOBS_IN_ARRAY)
+    i = compact_jobs_list (0);
+
+  /* If we can't compact, reallocate */
+  if (i == js.j_jobslots)
+    {
+      js.j_jobslots += JOB_SLOTS;
+      jobs = (JOB **)xrealloc (jobs, (js.j_jobslots * sizeof (JOB *)));
+
+      for (j = i; j < js.j_jobslots; j++)
+       jobs[j] = (JOB *)NULL;
+    }
+
+  /* Add the current pipeline to the job list. */
+  if (the_pipeline)
+    {
+      register PROCESS *p;
+      int any_running, any_stopped, n;
+
+      newjob = (JOB *)xmalloc (sizeof (JOB));
+
+      for (n = 1, p = the_pipeline; p->next != the_pipeline; n++, p = p->next)
+       ;
+      p->next = (PROCESS *)NULL;
+      newjob->pipe = REVERSE_LIST (the_pipeline, PROCESS *);
+      for (p = newjob->pipe; p->next; p = p->next)
+       ;
+      p->next = newjob->pipe;
+
+      the_pipeline = (PROCESS *)NULL;
+      newjob->pgrp = pipeline_pgrp;
+      pipeline_pgrp = 0;
+
+      newjob->flags = 0;
+
+      /* Flag to see if in another pgrp. */
+      if (job_control)
+       newjob->flags |= J_JOBCONTROL;
+
+      /* Set the state of this pipeline. */
+      p = newjob->pipe;
+      any_running = any_stopped = 0;
+      do
+       {
+         any_running |= PRUNNING (p);
+         any_stopped |= PSTOPPED (p);
+         p = p->next;
+       }
+      while (p != newjob->pipe);
+
+      newjob->state = any_running ? JRUNNING : (any_stopped ? JSTOPPED : JDEAD);
+      newjob->wd = job_working_directory ();
+      newjob->deferred = deferred;
+
+      newjob->j_cleanup = (sh_vptrfunc_t *)NULL;
+      newjob->cleanarg = (PTR_T) NULL;
+
+      jobs[i] = newjob;
+      if (newjob->state == JDEAD && (newjob->flags & J_FOREGROUND))
+       setjstatus (i);
+      if (newjob->state == JDEAD)
+       {
+         js.c_reaped += n;     /* wouldn't have been done since this was not part of a job */
+         js.j_ndead++;
+       }
+      js.c_injobs += n;
+
+      js.j_lastj = i;
+      js.j_njobs++;
+    }
+  else
+    newjob = (JOB *)NULL;
+
+  if (newjob)
+    js.j_lastmade = newjob;
+
+  if (async)
+    {
+      if (newjob)
+       {
+         newjob->flags &= ~J_FOREGROUND;
+         newjob->flags |= J_ASYNC;
+         js.j_lastasync = newjob;
+       }
+      reset_current ();
+    }
+  else
+    {
+      if (newjob)
+       {
+         newjob->flags |= J_FOREGROUND;
+         /*
+          *            !!!!! NOTE !!!!!  (chet@ins.cwru.edu)
+          *
+          * The currently-accepted job control wisdom says to set the
+          * terminal's process group n+1 times in an n-step pipeline:
+          * once in the parent and once in each child.  This is where
+          * the parent gives it away.
+          *
+          * Don't give the terminal away if this shell is an asynchronous
+          * subshell.
+          *
+          */
+         if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
+           maybe_give_terminal_to (shell_pgrp, newjob->pgrp, 0);
+       }
+    }
+
+  stop_making_children ();
+  UNBLOCK_CHILD (oset);
+  return (js.j_current);
+}
+
+/* Functions to manage the list of exited background pids whose status has
+   been saved. */
+
+static struct pidstat *
+bgp_alloc (pid, status)
+     pid_t pid;
+     int status;
+{
+  struct pidstat *ps;
+
+  ps = (struct pidstat *)xmalloc (sizeof (struct pidstat));
+  ps->pid = pid;
+  ps->status = status;
+  ps->next = (struct pidstat *)0;
+  return ps;
+}
+
+static struct pidstat *
+bgp_add (pid, status)
+     pid_t pid;
+     int status;
+{
+  struct pidstat *ps;
+
+  ps = bgp_alloc (pid, status);
+
+  if (bgpids.list == 0)
+    {
+      bgpids.list = bgpids.end = ps;
+      bgpids.npid = 0;                 /* just to make sure */
+    }
+  else
+    {
+      bgpids.end->next = ps;
+      bgpids.end = ps;
+    }
+  bgpids.npid++;
+
+  if (bgpids.npid > js.c_childmax)
+    bgp_prune ();
+
+  return ps;
+}
+
+static int
+bgp_delete (pid)
+     pid_t pid;
+{
+  struct pidstat *prev, *p;
+
+  for (prev = p = bgpids.list; p; prev = p, p = p->next)
+    if (p->pid == pid)
+      {
+        prev->next = p->next;  /* remove from list */
+        break;
+      }
+
+  if (p == 0)
+    return 0;          /* not found */
+
+#if defined (DEBUG)
+  itrace("bgp_delete: deleting %d", pid);
+#endif
+
+  /* Housekeeping in the border cases. */
+  if (p == bgpids.list)
+    bgpids.list = bgpids.list->next;
+  else if (p == bgpids.end)
+    bgpids.end = prev;
+
+  bgpids.npid--;
+  if (bgpids.npid == 0)
+    bgpids.list = bgpids.end = 0;
+  else if (bgpids.npid == 1)
+    bgpids.end = bgpids.list;          /* just to make sure */
+
+  free (p);
+  return 1;
+}
+
+/* Clear out the list of saved statuses */
+static void
+bgp_clear ()
+{
+  struct pidstat *ps, *p;
+
+  for (ps = bgpids.list; ps; )
+    {
+      p = ps;
+      ps = ps->next;
+      free (p);
+    }
+  bgpids.list = bgpids.end = 0;
+  bgpids.npid = 0;
+}
+
+/* Search for PID in the list of saved background pids; return its status if
+   found.  If not found, return -1. */
+static int
+bgp_search (pid)
+     pid_t pid;
+{
+  struct pidstat *ps;
+
+  for (ps = bgpids.list ; ps; ps = ps->next)
+    if (ps->pid == pid)
+      return ps->status;
+  return -1;
+}
+
+static void
+bgp_prune ()
+{
+  struct pidstat *ps;
+
+  while (bgpids.npid > js.c_childmax)
+    {
+      ps = bgpids.list;
+      bgpids.list = bgpids.list->next;
+      free (ps);
+      bgpids.npid--;
+    }
+}
+
+/* Reset the values of js.j_lastj and js.j_firstj after one or both have
+   been deleted.  The caller should check whether js.j_njobs is 0 before
+   calling this.  This wraps around, but the rest of the code does not.  At
+   this point, it should not matter. */
+static void
+reset_job_indices ()
+{
+  int old;
+
+  if (jobs[js.j_firstj] == 0)
+    {
+      old = js.j_firstj++;
+      if (old >= js.j_jobslots)
+       old = js.j_jobslots - 1;
+      while (js.j_firstj != old)
+       {
+         if (js.j_firstj >= js.j_jobslots)
+           js.j_firstj = 0;
+         if (jobs[js.j_firstj] || js.j_firstj == old)  /* needed if old == 0 */
+           break;
+         js.j_firstj++;
+       }
+      if (js.j_firstj == old)
+        js.j_firstj = js.j_lastj = js.j_njobs = 0;
+    }
+  if (jobs[js.j_lastj] == 0)
+    {
+      old = js.j_lastj--;
+      if (old < 0)
+       old = 0;
+      while (js.j_lastj != old)
+       {
+         if (js.j_lastj < 0)
+           js.j_lastj = js.j_jobslots - 1;
+         if (jobs[js.j_lastj] || js.j_lastj == old)    /* needed if old == js.j_jobslots */
+           break;
+         js.j_lastj--;
+       }
+      if (js.j_lastj == old)
+        js.j_firstj = js.j_lastj = js.j_njobs = 0;
+    }
+}
+      
+/* Delete all DEAD jobs that the user had received notification about. */
+static void
+cleanup_dead_jobs ()
+{
+  register int i;
+  int os;
+
+  if (js.j_jobslots == 0 || jobs_list_frozen)
+    return;
+
+  QUEUE_SIGCHLD(os);
+
+  /* XXX could use js.j_firstj and js.j_lastj here */
+  for (i = 0; i < js.j_jobslots; i++)
+    {
+#if defined (DEBUG)
+      if (i < js.j_firstj && jobs[i])
+       itrace("cleanup_dead_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+      if (i > js.j_lastj && jobs[i])
+       itrace("cleanup_dead_jobs: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+
+      if (jobs[i] && DEADJOB (i) && IS_NOTIFIED (i))
+       delete_job (i, 0);
+    }
+
+#if defined (COPROCESS_SUPPORT)
+  coproc_reap ();
+#endif
+
+  UNQUEUE_SIGCHLD(os);
+}
+
+static int
+processes_in_job (job)
+     int job;
+{
+  int nproc;
+  register PROCESS *p;
+
+  nproc = 0;
+  p = jobs[job]->pipe;
+  do
+    {
+      p = p->next;
+      nproc++;
+    }
+  while (p != jobs[job]->pipe);
+
+  return nproc;
+}
+
+static void
+delete_old_job (pid)
+     pid_t pid;
+{
+  PROCESS *p;
+  int job;
+
+  job = find_job (pid, 0, &p);
+  if (job != NO_JOB)
+    {
+#ifdef DEBUG
+      itrace ("delete_old_job: found pid %d in job %d with state %d", pid, job, jobs[job]->state);
+#endif
+      if (JOBSTATE (job) == JDEAD)
+       delete_job (job, DEL_NOBGPID);
+      else
+       {
+         internal_warning (_("forked pid %d appears in running job %d"), pid, job);
+         if (p)
+           p->pid = 0;
+       }
+    }
+}
+
+/* Reallocate and compress the jobs list.  This returns with a jobs array
+   whose size is a multiple of JOB_SLOTS and can hold the current number of
+   jobs.  Heuristics are used to minimize the number of new reallocs. */
+static void
+realloc_jobs_list ()
+{
+  sigset_t set, oset;
+  int nsize, i, j, ncur, nprev;
+  JOB **nlist;
+
+  ncur = nprev = NO_JOB;
+  nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
+  nsize *= JOB_SLOTS;
+  i = js.j_njobs % JOB_SLOTS;
+  if (i == 0 || i > (JOB_SLOTS >> 1))
+    nsize += JOB_SLOTS;
+
+  BLOCK_CHILD (set, oset);
+  nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
+
+  js.c_reaped = js.j_ndead = 0;
+  for (i = j = 0; i < js.j_jobslots; i++)
+    if (jobs[i])
+      {
+       if (i == js.j_current)
+         ncur = j;
+       if (i == js.j_previous)
+         nprev = j;
+       nlist[j++] = jobs[i];
+       if (jobs[i]->state == JDEAD)
+         {
+           js.j_ndead++;
+           js.c_reaped += processes_in_job (i);
+         }
+      }
+
+#if defined (DEBUG)
+  itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
+  itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
+  itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, j);
+  itrace ("realloc_jobs_list: js.j_ndead %d js.c_reaped %d", js.j_ndead, js.c_reaped);
+#endif
+
+  js.j_firstj = 0;
+  js.j_lastj = (j > 0) ? j - 1 : 0;
+  js.j_njobs = j;
+  js.j_jobslots = nsize;
+
+  /* Zero out remaining slots in new jobs list */
+  for ( ; j < nsize; j++)
+    nlist[j] = (JOB *)NULL;
+
+  if (jobs != nlist)
+    {
+      free (jobs);
+      jobs = nlist;
+    }
+
+  if (ncur != NO_JOB)
+    js.j_current = ncur;
+  if (nprev != NO_JOB)
+    js.j_previous = nprev;
+
+  /* Need to reset these */
+  if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj)
+    reset_current ();
+
+#ifdef DEBUG
+  itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous);
+#endif
+
+  UNBLOCK_CHILD (oset);
+}
+
+/* Compact the jobs list by removing dead jobs.  Assumed that we have filled
+   the jobs array to some predefined maximum.  Called when the shell is not
+   the foreground process (subshell_environment != 0).  Returns the first
+   available slot in the compacted list.  If that value is js.j_jobslots, then
+   the list needs to be reallocated.  The jobs array may be in new memory if
+   this returns > 0 and < js.j_jobslots.  FLAGS is reserved for future use. */
+static int
+compact_jobs_list (flags)
+     int flags;
+{
+  if (js.j_jobslots == 0 || jobs_list_frozen)
+    return js.j_jobslots;
+
+  reap_dead_jobs ();
+  realloc_jobs_list ();
+
+#ifdef DEBUG
+  itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
+#endif
+
+  return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
+}
+
+/* Delete the job at INDEX from the job list.  Must be called
+   with SIGCHLD blocked. */
+void
+delete_job (job_index, dflags)
+     int job_index, dflags;
+{
+  register JOB *temp;
+  PROCESS *proc;
+  int ndel;
+
+  if (js.j_jobslots == 0 || jobs_list_frozen)
+    return;
+
+  if ((dflags & DEL_WARNSTOPPED) && subshell_environment == 0 && STOPPED (job_index))
+    internal_warning (_("deleting stopped job %d with process group %ld"), job_index+1, (long)jobs[job_index]->pgrp);
+  temp = jobs[job_index];
+  if (temp == 0)
+    return;
+
+  if ((dflags & DEL_NOBGPID) == 0)
+    {
+      proc = find_last_proc (job_index, 0);
+      /* Could do this just for J_ASYNC jobs, but we save all. */
+      if (proc)
+       bgp_add (proc->pid, process_exit_status (proc->status));
+    }
+
+  jobs[job_index] = (JOB *)NULL;
+  if (temp == js.j_lastmade)
+    js.j_lastmade = 0;
+  else if (temp == js.j_lastasync)
+    js.j_lastasync = 0;
+
+  free (temp->wd);
+  ndel = discard_pipeline (temp->pipe);
+
+  js.c_injobs -= ndel;
+  if (temp->state == JDEAD)
+    {
+      js.c_reaped -= ndel;
+      js.j_ndead--;
+      if (js.c_reaped < 0)
+       {
+#ifdef DEBUG
+         itrace("delete_job (%d pgrp %d): js.c_reaped (%d) < 0 ndel = %d js.j_ndead = %d", job_index, temp->pgrp, js.c_reaped, ndel, js.j_ndead);
+#endif
+         js.c_reaped = 0;
+       }
+    }
+
+  if (temp->deferred)
+    dispose_command (temp->deferred);
+
+  free (temp);
+
+  js.j_njobs--;
+  if (js.j_njobs == 0)
+    js.j_firstj = js.j_lastj = 0;
+  else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
+    reset_job_indices ();
+
+  if (job_index == js.j_current || job_index == js.j_previous)
+    reset_current ();
+}
+
+/* Must be called with SIGCHLD blocked. */
+void
+nohup_job (job_index)
+     int job_index;
+{
+  register JOB *temp;
+
+  if (js.j_jobslots == 0)
+    return;
+
+  if (temp = jobs[job_index])
+    temp->flags |= J_NOHUP;
+}
+
+/* Get rid of the data structure associated with a process chain. */
+static int
+discard_pipeline (chain)
+     register PROCESS *chain;
+{
+  register PROCESS *this, *next;
+  int n;
+
+  this = chain;
+  n = 0;
+  do
+    {
+      next = this->next;
+      FREE (this->command);
+      free (this);
+      n++;
+      this = next;
+    }
+  while (this != chain);
+
+  return n;
+}
+
+/* Add this process to the chain being built in the_pipeline.
+   NAME is the command string that will be exec'ed later.
+   PID is the process id of the child. */
+static void
+add_process (name, pid)
+     char *name;
+     pid_t pid;
+{
+  PROCESS *t, *p;
+
+#if defined (RECYCLES_PIDS)
+  int j;
+  p = find_process (pid, 0, &j);
+  if (p)
+    {
+#  ifdef DEBUG
+      if (j == NO_JOB)
+       internal_warning (_("add_process: process %5ld (%s) in the_pipeline"), (long)p->pid, p->command);
+#  endif
+      if (PALIVE (p))
+        internal_warning (_("add_process: pid %5ld (%s) marked as still alive"), (long)p->pid, p->command);
+      p->running = PS_RECYCLED;                /* mark as recycled */
+    }
+#endif
+
+  t = (PROCESS *)xmalloc (sizeof (PROCESS));
+  t->next = the_pipeline;
+  t->pid = pid;
+  WSTATUS (t->status) = 0;
+  t->running = PS_RUNNING;
+  t->command = name;
+  the_pipeline = t;
+
+  if (t->next == 0)
+    t->next = t;
+  else
+    {
+      p = t->next;
+      while (p->next != t->next)
+       p = p->next;
+      p->next = t;
+    }
+}
+
+#if 0
+/* Take the last job and make it the first job.  Must be called with
+   SIGCHLD blocked. */
+int
+rotate_the_pipeline ()
+{
+  PROCESS *p;
+
+  if (the_pipeline->next == the_pipeline)
+    return;
+  for (p = the_pipeline; p->next != the_pipeline; p = p->next)
+    ;
+  the_pipeline = p;
+}
+
+/* Reverse the order of the processes in the_pipeline.  Must be called with
+   SIGCHLD blocked. */
+int
+reverse_the_pipeline ()
+{
+  PROCESS *p, *n;
+
+  if (the_pipeline->next == the_pipeline)
+    return;
+
+  for (p = the_pipeline; p->next != the_pipeline; p = p->next)
+    ;
+  p->next = (PROCESS *)NULL;
+
+  n = REVERSE_LIST (the_pipeline, PROCESS *);
+
+  the_pipeline = n;
+  for (p = the_pipeline; p->next; p = p->next)
+    ;
+  p->next = the_pipeline;
+}
+#endif
+
+/* Map FUNC over the list of jobs.  If FUNC returns non-zero,
+   then it is time to stop mapping, and that is the return value
+   for map_over_jobs.  FUNC is called with a JOB, arg1, arg2,
+   and INDEX. */
+static int
+map_over_jobs (func, arg1, arg2)
+     sh_job_map_func_t *func;
+     int arg1, arg2;
+{
+  register int i;
+  int result;
+  sigset_t set, oset;
+
+  if (js.j_jobslots == 0)
+    return 0;
+
+  BLOCK_CHILD (set, oset);
+
+  /* XXX could use js.j_firstj here */
+  for (i = result = 0; i < js.j_jobslots; i++)
+    {
+#if defined (DEBUG)
+      if (i < js.j_firstj && jobs[i])
+       itrace("map_over_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+      if (i > js.j_lastj && jobs[i])
+       itrace("map_over_jobs: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+      if (jobs[i])
+       {
+         result = (*func)(jobs[i], arg1, arg2, i);
+         if (result)
+           break;
+       }
+    }
+
+  UNBLOCK_CHILD (oset);
+
+  return (result);
+}
+
+/* Cause all the jobs in the current pipeline to exit. */
+void
+terminate_current_pipeline ()
+{
+  if (pipeline_pgrp && pipeline_pgrp != shell_pgrp)
+    {
+      killpg (pipeline_pgrp, SIGTERM);
+      killpg (pipeline_pgrp, SIGCONT);
+    }
+}
+
+/* Cause all stopped jobs to exit. */
+void
+terminate_stopped_jobs ()
+{
+  register int i;
+
+  /* XXX could use js.j_firstj here */
+  for (i = 0; i < js.j_jobslots; i++)
+    {
+      if (jobs[i] && STOPPED (i))
+       {
+         killpg (jobs[i]->pgrp, SIGTERM);
+         killpg (jobs[i]->pgrp, SIGCONT);
+       }
+    }
+}
+
+/* Cause all jobs, running or stopped, to receive a hangup signal.  If
+   a job is marked J_NOHUP, don't send the SIGHUP. */
+void
+hangup_all_jobs ()
+{
+  register int i;
+
+  /* XXX could use js.j_firstj here */
+  for (i = 0; i < js.j_jobslots; i++)
+    {
+      if (jobs[i])
+       {
+         if  (jobs[i]->flags & J_NOHUP)
+           continue;
+         killpg (jobs[i]->pgrp, SIGHUP);
+         if (STOPPED (i))
+           killpg (jobs[i]->pgrp, SIGCONT);
+       }
+    }
+}
+
+void
+kill_current_pipeline ()
+{
+  stop_making_children ();
+  start_pipeline ();
+}
+
+/* Return the pipeline that PID belongs to.  Note that the pipeline
+   doesn't have to belong to a job.  Must be called with SIGCHLD blocked.
+   If JOBP is non-null, return the index of the job containing PID.  */
+static PROCESS *
+find_pipeline (pid, alive_only, jobp)
+     pid_t pid;
+     int alive_only;
+     int *jobp;                /* index into jobs list or NO_JOB */
+{
+  int job;
+  PROCESS *p;
+
+  /* See if this process is in the pipeline that we are building. */
+  if (jobp)
+    *jobp = NO_JOB;
+  if (the_pipeline)
+    {
+      p = the_pipeline;
+      do
+       {
+         /* Return it if we found it.  Don't ever return a recycled pid. */
+         if (p->pid == pid && ((alive_only == 0 && PRECYCLED(p) == 0) || PALIVE(p)))
+           return (p);
+
+         p = p->next;
+       }
+      while (p != the_pipeline);
+    }
+
+  job = find_job (pid, alive_only, &p);
+  if (jobp)
+    *jobp = job;
+  return (job == NO_JOB) ? (PROCESS *)NULL : jobs[job]->pipe;
+}
+
+/* Return the PROCESS * describing PID.  If JOBP is non-null return the index
+   into the jobs array of the job containing PID.  Must be called with
+   SIGCHLD blocked. */
+static PROCESS *
+find_process (pid, alive_only, jobp)
+     pid_t pid;
+     int alive_only;
+     int *jobp;                /* index into jobs list or NO_JOB */
+{
+  PROCESS *p;
+
+  p = find_pipeline (pid, alive_only, jobp);
+  while (p && p->pid != pid)
+    p = p->next;
+  return p;
+}
+
+/* Return the job index that PID belongs to, or NO_JOB if it doesn't
+   belong to any job.  Must be called with SIGCHLD blocked. */
+static int
+find_job (pid, alive_only, procp)
+     pid_t pid;
+     int alive_only;
+     PROCESS **procp;
+{
+  register int i;
+  PROCESS *p;
+
+  /* XXX could use js.j_firstj here, and should check js.j_lastj */
+  for (i = 0; i < js.j_jobslots; i++)
+    {
+#if defined (DEBUG)
+      if (i < js.j_firstj && jobs[i])
+       itrace("find_job: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+      if (i > js.j_lastj && jobs[i])
+       itrace("find_job: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+      if (jobs[i])
+       {
+         p = jobs[i]->pipe;
+
+         do
+           {
+             if (p->pid == pid && ((alive_only == 0 && PRECYCLED(p) == 0) || PALIVE(p)))
+               {
+                 if (procp)
+                   *procp = p;
+                 return (i);
+               }
+
+             p = p->next;
+           }
+         while (p != jobs[i]->pipe);
+       }
+    }
+
+  return (NO_JOB);
+}
+
+/* Find a job given a PID.  If BLOCK is non-zero, block SIGCHLD as
+   required by find_job. */
+int
+get_job_by_pid (pid, block)
+     pid_t pid;
+     int block;
+{
+  int job;
+  sigset_t set, oset;
+
+  if (block)
+    BLOCK_CHILD (set, oset);
+
+  job = find_job (pid, 0, NULL);
+
+  if (block)
+    UNBLOCK_CHILD (oset);
+
+  return job;
+}
+
+/* Print descriptive information about the job with leader pid PID. */
+void
+describe_pid (pid)
+     pid_t pid;
+{
+  int job;
+  sigset_t set, oset;
+
+  BLOCK_CHILD (set, oset);
+
+  job = find_job (pid, 0, NULL);
+
+  if (job != NO_JOB)
+    fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid);
+  else
+    programming_error (_("describe_pid: %ld: no such pid"), (long)pid);
+
+  UNBLOCK_CHILD (oset);
+}
+
+static char *
+j_strsignal (s)
+     int s;
+{
+  char *x;
+
+  x = strsignal (s);
+  if (x == 0)
+    {
+      x = retcode_name_buffer;
+      sprintf (x, _("Signal %d"), s);
+    }
+  return x;
+}
+
+static char *
+printable_job_status (j, p, format)
+     int j;
+     PROCESS *p;
+     int format;
+{
+  static char *temp;
+  int es;
+
+  temp = _("Done");
+
+  if (STOPPED (j) && format == 0)
+    {
+      if (posixly_correct == 0 || p == 0 || (WIFSTOPPED (p->status) == 0))
+       temp = _("Stopped");
+      else
+       {
+         temp = retcode_name_buffer;
+         sprintf (temp, _("Stopped(%s)"), signal_name (WSTOPSIG (p->status)));
+       }
+    }
+  else if (RUNNING (j))
+    temp = _("Running");
+  else
+    {
+      if (WIFSTOPPED (p->status))
+       temp = j_strsignal (WSTOPSIG (p->status));
+      else if (WIFSIGNALED (p->status))
+       temp = j_strsignal (WTERMSIG (p->status));
+      else if (WIFEXITED (p->status))
+       {
+         temp = retcode_name_buffer;
+         es = WEXITSTATUS (p->status);
+         if (es == 0)
+           strcpy (temp, _("Done"));
+         else if (posixly_correct)
+           sprintf (temp, _("Done(%d)"), es);
+         else
+           sprintf (temp, _("Exit %d"), es);
+       }
+      else
+       temp = _("Unknown status");
+    }
+
+  return temp;
+}
+
+/* This is the way to print out information on a job if you
+   know the index.  FORMAT is:
+
+    JLIST_NORMAL)   [1]+ Running          emacs
+    JLIST_LONG  )   [1]+ 2378 Running      emacs
+    -1   )   [1]+ 2378       emacs
+
+    JLIST_NORMAL)   [1]+ Stopped          ls | more
+    JLIST_LONG  )   [1]+ 2369 Stopped      ls
+                        2367       | more
+    JLIST_PID_ONLY)
+       Just list the pid of the process group leader (really
+       the process group).
+    JLIST_CHANGED_ONLY)
+       Use format JLIST_NORMAL, but list only jobs about which
+       the user has not been notified. */
+
+/* Print status for pipeline P.  If JOB_INDEX is >= 0, it is the index into
+   the JOBS array corresponding to this pipeline.  FORMAT is as described
+   above.  Must be called with SIGCHLD blocked.
+
+   If you're printing a pipeline that's not in the jobs array, like the
+   current pipeline as it's being created, pass -1 for JOB_INDEX */
+static void
+print_pipeline (p, job_index, format, stream)
+     PROCESS *p;
+     int job_index, format;
+     FILE *stream;
+{
+  PROCESS *first, *last, *show;
+  int es, name_padding;
+  char *temp;
+
+  if (p == 0)
+    return;
+
+  first = last = p;
+  while (last->next != first)
+    last = last->next;
+
+  for (;;)
+    {
+      if (p != first)
+       fprintf (stream, format ? "     " : " |");
+
+      if (format != JLIST_STANDARD)
+       fprintf (stream, "%5ld", (long)p->pid);
+
+      fprintf (stream, " ");
+
+      if (format > -1 && job_index >= 0)
+       {
+         show = format ? p : last;
+         temp = printable_job_status (job_index, show, format);
+
+         if (p != first)
+           {
+             if (format)
+               {
+                 if (show->running == first->running &&
+                     WSTATUS (show->status) == WSTATUS (first->status))
+                   temp = "";
+               }
+             else
+               temp = (char *)NULL;
+           }
+
+         if (temp)
+           {
+             fprintf (stream, "%s", temp);
+
+             es = STRLEN (temp);
+             if (es == 0)
+               es = 2; /* strlen ("| ") */
+             name_padding = LONGEST_SIGNAL_DESC - es;
+
+             fprintf (stream, "%*s", name_padding, "");
+
+             if ((WIFSTOPPED (show->status) == 0) &&
+                 (WIFCONTINUED (show->status) == 0) &&
+                 WIFCORED (show->status))
+               fprintf (stream, _("(core dumped) "));
+           }
+       }
+
+      if (p != first && format)
+       fprintf (stream, "| ");
+
+      if (p->command)
+       fprintf (stream, "%s", p->command);
+
+      if (p == last && job_index >= 0)
+       {
+         temp = current_working_directory ();
+
+         if (RUNNING (job_index) && (IS_FOREGROUND (job_index) == 0))
+           fprintf (stream, " &");
+
+         if (strcmp (temp, jobs[job_index]->wd) != 0)
+           fprintf (stream,
+             _("  (wd: %s)"), polite_directory_format (jobs[job_index]->wd));
+       }
+
+      if (format || (p == last))
+       {
+         /* We need to add a CR only if this is an interactive shell, and
+            we're reporting the status of a completed job asynchronously.
+            We can't really check whether this particular job is being
+            reported asynchronously, so just add the CR if the shell is
+            currently interactive and asynchronous notification is enabled. */
+         if (asynchronous_notification && interactive)
+           fprintf (stream, "\r\n");
+         else
+           fprintf (stream, "\n");
+       }
+
+      if (p == last)
+       break;
+      p = p->next;
+    }
+  fflush (stream);
+}
+
+/* Print information to STREAM about jobs[JOB_INDEX] according to FORMAT.
+   Must be called with SIGCHLD blocked or queued with queue_sigchld */
+static void
+pretty_print_job (job_index, format, stream)
+     int job_index, format;
+     FILE *stream;
+{
+  register PROCESS *p;
+
+  /* Format only pid information about the process group leader? */
+  if (format == JLIST_PID_ONLY)
+    {
+      fprintf (stream, "%ld\n", (long)jobs[job_index]->pipe->pid);
+      return;
+    }
+
+  if (format == JLIST_CHANGED_ONLY)
+    {
+      if (IS_NOTIFIED (job_index))
+       return;
+      format = JLIST_STANDARD;
+    }
+
+  if (format != JLIST_NONINTERACTIVE)
+    fprintf (stream, "[%d]%c ", job_index + 1,
+             (job_index == js.j_current) ? '+':
+               (job_index == js.j_previous) ? '-' : ' ');
+
+  if (format == JLIST_NONINTERACTIVE)
+    format = JLIST_LONG;
+
+  p = jobs[job_index]->pipe;
+
+  print_pipeline (p, job_index, format, stream);
+
+  /* We have printed information about this job.  When the job's
+     status changes, waitchld () sets the notification flag to 0. */
+  jobs[job_index]->flags |= J_NOTIFIED;
+}
+
+static int
+print_job (job, format, state, job_index)
+     JOB *job;
+     int format, state, job_index;
+{
+  if (state == -1 || (JOB_STATE)state == job->state)
+    pretty_print_job (job_index, format, stdout);
+  return (0);
+}
+
+void
+list_one_job (job, format, ignore, job_index)
+     JOB *job;
+     int format, ignore, job_index;
+{
+  pretty_print_job (job_index, format, stdout);
+}
+
+void
+list_stopped_jobs (format)
+     int format;
+{
+  cleanup_dead_jobs ();
+  map_over_jobs (print_job, format, (int)JSTOPPED);
+}
+
+void
+list_running_jobs (format)
+     int format;
+{
+  cleanup_dead_jobs ();
+  map_over_jobs (print_job, format, (int)JRUNNING);
+}
+
+/* List jobs.  If FORMAT is non-zero, then the long form of the information
+   is printed, else just a short version. */
+void
+list_all_jobs (format)
+     int format;
+{
+  cleanup_dead_jobs ();
+  map_over_jobs (print_job, format, -1);
+}
+
+/* Fork, handling errors.  Returns the pid of the newly made child, or 0.
+   COMMAND is just for remembering the name of the command; we don't do
+   anything else with it.  ASYNC_P says what to do with the tty.  If
+   non-zero, then don't give it away. */
+pid_t
+make_child (command, async_p)
+     char *command;
+     int async_p;
+{
+  int forksleep;
+  sigset_t set, oset;
+  pid_t pid;
+
+  sigemptyset (&set);
+  sigaddset (&set, SIGCHLD);
+  sigaddset (&set, SIGINT);
+  sigemptyset (&oset);
+  sigprocmask (SIG_BLOCK, &set, &oset);
+
+  making_children ();
+
+  forksleep = 1;
+
+#if defined (BUFFERED_INPUT)
+  /* If default_buffered_input is active, we are reading a script.  If
+     the command is asynchronous, we have already duplicated /dev/null
+     as fd 0, but have not changed the buffered stream corresponding to
+     the old fd 0.  We don't want to sync the stream in this case. */
+  if (default_buffered_input != -1 &&
+      (!async_p || default_buffered_input > 0))
+    sync_buffered_stream (default_buffered_input);
+#endif /* BUFFERED_INPUT */
+
+  /* Create the child, handle severe errors.  Retry on EAGAIN. */
+  while ((pid = fork ()) < 0 && errno == EAGAIN && forksleep < FORKSLEEP_MAX)
+    {
+      sys_error ("fork: retry");
+      if (sleep (forksleep) != 0)
+       break;
+      forksleep <<= 1;
+    }
+
+  if (pid < 0)
+    {
+      sys_error ("fork");
+
+      /* Kill all of the processes in the current pipeline. */
+      terminate_current_pipeline ();
+
+      /* Discard the current pipeline, if any. */
+      if (the_pipeline)
+       kill_current_pipeline ();
+
+      throw_to_top_level ();   /* Reset signals, etc. */
+    }
+
+  if (pid == 0)
+    {
+      /* In the child.  Give this child the right process group, set the
+        signals to the default state for a new process. */
+      pid_t mypid;
+
+      mypid = getpid ();
+#if defined (BUFFERED_INPUT)
+      /* Close default_buffered_input if it's > 0.  We don't close it if it's
+        0 because that's the file descriptor used when redirecting input,
+        and it's wrong to close the file in that case. */
+      unset_bash_input (0);
+#endif /* BUFFERED_INPUT */
+
+      /* Restore top-level signal mask. */
+      sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL);
+
+      if (job_control)
+       {
+         /* All processes in this pipeline belong in the same
+            process group. */
+
+         if (pipeline_pgrp == 0)       /* This is the first child. */
+           pipeline_pgrp = mypid;
+
+         /* Check for running command in backquotes. */
+         if (pipeline_pgrp == shell_pgrp)
+           ignore_tty_job_signals ();
+         else
+           default_tty_job_signals ();
+
+         /* Set the process group before trying to mess with the terminal's
+            process group.  This is mandated by POSIX. */
+         /* This is in accordance with the Posix 1003.1 standard,
+            section B.7.2.4, which says that trying to set the terminal
+            process group with tcsetpgrp() to an unused pgrp value (like
+            this would have for the first child) is an error.  Section
+            B.4.3.3, p. 237 also covers this, in the context of job control
+            shells. */
+         if (setpgid (mypid, pipeline_pgrp) < 0)
+           sys_error (_("child setpgid (%ld to %ld)"), (long)mypid, (long)pipeline_pgrp);
+
+         /* By convention (and assumption above), if
+            pipeline_pgrp == shell_pgrp, we are making a child for
+            command substitution.
+            In this case, we don't want to give the terminal to the
+            shell's process group (we could be in the middle of a
+            pipeline, for example). */
+         if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0))
+           give_terminal_to (pipeline_pgrp, 0);
+
+#if defined (PGRP_PIPE)
+         if (pipeline_pgrp == mypid)
+           pipe_read (pgrp_pipe);
+#endif
+       }
+      else                     /* Without job control... */
+       {
+         if (pipeline_pgrp == 0)
+           pipeline_pgrp = shell_pgrp;
+
+         /* If these signals are set to SIG_DFL, we encounter the curious
+            situation of an interactive ^Z to a running process *working*
+            and stopping the process, but being unable to do anything with
+            that process to change its state.  On the other hand, if they
+            are set to SIG_IGN, jobs started from scripts do not stop when
+            the shell running the script gets a SIGTSTP and stops. */
+
+         default_tty_job_signals ();
+       }
+
+#if defined (PGRP_PIPE)
+      /* Release the process group pipe, since our call to setpgid ()
+        is done.  The last call to sh_closepipe is done in stop_pipeline. */
+      sh_closepipe (pgrp_pipe);
+#endif /* PGRP_PIPE */
+
+#if 0
+      /* Don't set last_asynchronous_pid in the child */
+      if (async_p)
+       last_asynchronous_pid = mypid;          /* XXX */
+      else
+#endif
+#if defined (RECYCLES_PIDS)
+      if (last_asynchronous_pid == mypid)
+        /* Avoid pid aliasing.  1 seems like a safe, unusual pid value. */
+       last_asynchronous_pid = 1;
+#endif
+    }
+  else
+    {
+      /* In the parent.  Remember the pid of the child just created
+        as the proper pgrp if this is the first child. */
+
+      if (first_pid == NO_PID)
+       first_pid = pid;
+      else if (pid_wrap == -1 && pid < first_pid)
+       pid_wrap = 0;
+      else if (pid_wrap == 0 && pid >= first_pid)
+       pid_wrap = 1;
+
+      if (job_control)
+       {
+         if (pipeline_pgrp == 0)
+           {
+             pipeline_pgrp = pid;
+             /* Don't twiddle terminal pgrps in the parent!  This is the bug,
+                not the good thing of twiddling them in the child! */
+             /* give_terminal_to (pipeline_pgrp, 0); */
+           }
+         /* This is done on the recommendation of the Rationale section of
+            the POSIX 1003.1 standard, where it discusses job control and
+            shells.  It is done to avoid possible race conditions. (Ref.
+            1003.1 Rationale, section B.4.3.3, page 236). */
+         setpgid (pid, pipeline_pgrp);
+       }
+      else
+       {
+         if (pipeline_pgrp == 0)
+           pipeline_pgrp = shell_pgrp;
+       }
+
+      /* Place all processes into the jobs array regardless of the
+        state of job_control. */
+      add_process (command, pid);
+
+      if (async_p)
+       last_asynchronous_pid = pid;
+#if defined (RECYCLES_PIDS)
+      else if (last_asynchronous_pid == pid)
+        /* Avoid pid aliasing.  1 seems like a safe, unusual pid value. */
+       last_asynchronous_pid = 1;
+#endif
+
+      if (pid_wrap > 0)
+       delete_old_job (pid);
+
+#if !defined (RECYCLES_PIDS)
+      /* Only check for saved status if we've saved more than CHILD_MAX
+        statuses, unless the system recycles pids. */
+      if ((js.c_reaped + bgpids.npid) >= js.c_childmax)
+#endif
+       bgp_delete (pid);               /* new process, discard any saved status */
+
+      last_made_pid = pid;
+
+      /* keep stats */
+      js.c_totforked++;
+      js.c_living++;
+
+      /* Unblock SIGINT and SIGCHLD unless creating a pipeline, in which case
+        SIGCHLD remains blocked until all commands in the pipeline have been
+        created. */
+      sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
+    }
+
+  return (pid);
+}
+
+/* These two functions are called only in child processes. */
+void
+ignore_tty_job_signals ()
+{
+  set_signal_handler (SIGTSTP, SIG_IGN);
+  set_signal_handler (SIGTTIN, SIG_IGN);
+  set_signal_handler (SIGTTOU, SIG_IGN);
+}
+
+void
+default_tty_job_signals ()
+{
+  set_signal_handler (SIGTSTP, SIG_DFL);
+  set_signal_handler (SIGTTIN, SIG_DFL);
+  set_signal_handler (SIGTTOU, SIG_DFL);
+}
+
+/* When we end a job abnormally, or if we stop a job, we set the tty to the
+   state kept in here.  When a job ends normally, we set the state in here
+   to the state of the tty. */
+
+static TTYSTRUCT shell_tty_info;
+
+#if defined (NEW_TTY_DRIVER)
+static struct tchars shell_tchars;
+static struct ltchars shell_ltchars;
+#endif /* NEW_TTY_DRIVER */
+
+#if defined (NEW_TTY_DRIVER) && defined (DRAIN_OUTPUT)
+/* Since the BSD tty driver does not allow us to change the tty modes
+   while simultaneously waiting for output to drain and preserving
+   typeahead, we have to drain the output ourselves before calling
+   ioctl.  We cheat by finding the length of the output queue, and
+   using select to wait for an appropriate length of time.  This is
+   a hack, and should be labeled as such (it's a hastily-adapted
+   mutation of a `usleep' implementation).  It's only reason for
+   existing is the flaw in the BSD tty driver. */
+
+static int ttspeeds[] =
+{
+  0, 50, 75, 110, 134, 150, 200, 300, 600, 1200,
+  1800, 2400, 4800, 9600, 19200, 38400
+};
+
+static void
+draino (fd, ospeed)
+     int fd, ospeed;
+{
+  register int delay = ttspeeds[ospeed];
+  int n;
+
+  if (!delay)
+    return;
+
+  while ((ioctl (fd, TIOCOUTQ, &n) == 0) && n)
+    {
+      if (n > (delay / 100))
+       {
+         struct timeval tv;
+
+         n *= 10;              /* 2 bits more for conservativeness. */
+         tv.tv_sec = n / delay;
+         tv.tv_usec = ((n % delay) * 1000000) / delay;
+         select (fd, (fd_set *)0, (fd_set *)0, (fd_set *)0, &tv);
+       }
+      else
+       break;
+    }
+}
+#endif /* NEW_TTY_DRIVER && DRAIN_OUTPUT */
+
+/* Return the fd from which we are actually getting input. */
+#define input_tty() (shell_tty != -1) ? shell_tty : fileno (stderr)
+
+/* Fill the contents of shell_tty_info with the current tty info. */
+int
+get_tty_state ()
+{
+  int tty;
+
+  tty = input_tty ();
+  if (tty != -1)
+    {
+#if defined (NEW_TTY_DRIVER)
+      ioctl (tty, TIOCGETP, &shell_tty_info);
+      ioctl (tty, TIOCGETC, &shell_tchars);
+      ioctl (tty, TIOCGLTC, &shell_ltchars);
+#endif /* NEW_TTY_DRIVER */
+
+#if defined (TERMIO_TTY_DRIVER)
+      ioctl (tty, TCGETA, &shell_tty_info);
+#endif /* TERMIO_TTY_DRIVER */
+
+#if defined (TERMIOS_TTY_DRIVER)
+      if (tcgetattr (tty, &shell_tty_info) < 0)
+       {
+#if 0
+         /* Only print an error message if we're really interactive at
+            this time. */
+         if (interactive)
+           sys_error ("[%ld: %d (%d)] tcgetattr", (long)getpid (), shell_level, tty);
+#endif
+         return -1;
+       }
+#endif /* TERMIOS_TTY_DRIVER */
+      if (check_window_size)
+       get_new_window_size (0, (int *)0, (int *)0);
+    }
+  return 0;
+}
+
+/* Make the current tty use the state in shell_tty_info. */
+int
+set_tty_state ()
+{
+  int tty;
+
+  tty = input_tty ();
+  if (tty != -1)
+    {
+#if defined (NEW_TTY_DRIVER)
+#  if defined (DRAIN_OUTPUT)
+      draino (tty, shell_tty_info.sg_ospeed);
+#  endif /* DRAIN_OUTPUT */
+      ioctl (tty, TIOCSETN, &shell_tty_info);
+      ioctl (tty, TIOCSETC, &shell_tchars);
+      ioctl (tty, TIOCSLTC, &shell_ltchars);
+#endif /* NEW_TTY_DRIVER */
+
+#if defined (TERMIO_TTY_DRIVER)
+      ioctl (tty, TCSETAW, &shell_tty_info);
+#endif /* TERMIO_TTY_DRIVER */
+
+#if defined (TERMIOS_TTY_DRIVER)
+      if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0)
+       {
+         /* Only print an error message if we're really interactive at
+            this time. */
+         if (interactive)
+           sys_error ("[%ld: %d (%d)] tcsetattr", (long)getpid (), shell_level, tty);
+         return -1;
+       }
+#endif /* TERMIOS_TTY_DRIVER */
+    }
+  return 0;
+}
+
+/* Given an index into the jobs array JOB, return the PROCESS struct of the last
+   process in that job's pipeline.  This is the one whose exit status
+   counts.  Must be called with SIGCHLD blocked or queued. */
+static PROCESS *
+find_last_proc (job, block)
+     int job;
+     int block;
+{
+  register PROCESS *p;
+  sigset_t set, oset;
+
+  if (block)
+    BLOCK_CHILD (set, oset);
+
+  p = jobs[job]->pipe;
+  while (p && p->next != jobs[job]->pipe)
+    p = p->next;
+
+  if (block)
+    UNBLOCK_CHILD (oset);
+
+  return (p);
+}
+
+static pid_t
+find_last_pid (job, block)
+     int job;
+     int block;
+{
+  PROCESS *p;
+
+  p = find_last_proc (job, block);
+  /* Possible race condition here. */
+  return p->pid;
+}     
+
+/* Wait for a particular child of the shell to finish executing.
+   This low-level function prints an error message if PID is not
+   a child of this shell.  It returns -1 if it fails, or whatever
+   wait_for returns otherwise.  If the child is not found in the
+   jobs table, it returns 127. */
+int
+wait_for_single_pid (pid)
+     pid_t pid;
+{
+  register PROCESS *child;
+  sigset_t set, oset;
+  int r, job;
+
+  BLOCK_CHILD (set, oset);
+  child = find_pipeline (pid, 0, (int *)NULL);
+  UNBLOCK_CHILD (oset);
+
+  if (child == 0)
+    {
+      r = bgp_search (pid);
+      if (r >= 0)
+       return r;
+    }
+
+  if (child == 0)
+    {
+      internal_error (_("wait: pid %ld is not a child of this shell"), (long)pid);
+      return (127);
+    }
+
+  r = wait_for (pid);
+
+  /* POSIX.2: if we just waited for a job, we can remove it from the jobs
+     table. */
+  BLOCK_CHILD (set, oset);
+  job = find_job (pid, 0, NULL);
+  if (job != NO_JOB && jobs[job] && DEADJOB (job))
+    jobs[job]->flags |= J_NOTIFIED;
+  UNBLOCK_CHILD (oset);
+
+  /* If running in posix mode, remove the job from the jobs table immediately */
+  if (posixly_correct)
+    {
+      cleanup_dead_jobs ();
+      bgp_delete (pid);
+    }
+
+  return r;
+}
+
+/* Wait for all of the backgrounds of this shell to finish. */
+void
+wait_for_background_pids ()
+{
+  register int i, r, waited_for;
+  sigset_t set, oset;
+  pid_t pid;
+
+  for (waited_for = 0;;)
+    {
+      BLOCK_CHILD (set, oset);
+
+      /* find first running job; if none running in foreground, break */
+      /* XXX could use js.j_firstj and js.j_lastj here */
+      for (i = 0; i < js.j_jobslots; i++)
+       {
+#if defined (DEBUG)
+         if (i < js.j_firstj && jobs[i])
+           itrace("wait_for_background_pids: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+         if (i > js.j_lastj && jobs[i])
+           itrace("wait_for_background_pids: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+         if (jobs[i] && RUNNING (i) && IS_FOREGROUND (i) == 0)
+           break;
+       }
+      if (i == js.j_jobslots)
+       {
+         UNBLOCK_CHILD (oset);
+         break;
+       }
+
+      /* now wait for the last pid in that job. */
+      pid = find_last_pid (i, 0);
+      UNBLOCK_CHILD (oset);
+      QUIT;
+      errno = 0;               /* XXX */
+      r = wait_for_single_pid (pid);
+      if (r == -1)
+       {
+         /* If we're mistaken about job state, compensate. */
+         if (errno == ECHILD)
+           mark_all_jobs_as_dead ();
+       }
+      else
+       waited_for++;
+    }
+
+  /* POSIX.2 says the shell can discard the statuses of all completed jobs if
+     `wait' is called with no arguments. */
+  mark_dead_jobs_as_notified (1);
+  cleanup_dead_jobs ();
+  bgp_clear ();
+}
+
+/* Make OLD_SIGINT_HANDLER the SIGINT signal handler. */
+#define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids
+static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER;
+
+static void
+restore_sigint_handler ()
+{
+  if (old_sigint_handler != INVALID_SIGNAL_HANDLER)
+    {
+      set_signal_handler (SIGINT, old_sigint_handler);
+      old_sigint_handler = INVALID_SIGNAL_HANDLER;
+    }
+}
+
+static int wait_sigint_received;
+
+/* Handle SIGINT while we are waiting for children in a script to exit.
+   The `wait' builtin should be interruptible, but all others should be
+   effectively ignored (i.e. not cause the shell to exit). */
+static sighandler
+wait_sigint_handler (sig)
+     int sig;
+{
+  SigHandler *sigint_handler;
+
+  if (interrupt_immediately ||
+      (this_shell_builtin && this_shell_builtin == wait_builtin))
+    {
+      last_command_exit_value = EXECUTION_FAILURE;
+      restore_sigint_handler ();
+      /* If we got a SIGINT while in `wait', and SIGINT is trapped, do
+        what POSIX.2 says (see builtins/wait.def for more info). */
+      if (this_shell_builtin && this_shell_builtin == wait_builtin &&
+         signal_is_trapped (SIGINT) &&
+         ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler))
+       {
+         interrupt_immediately = 0;
+         trap_handler (SIGINT);        /* set pending_traps[SIGINT] */
+         wait_signal_received = SIGINT;
+         longjmp (wait_intr_buf, 1);
+       }
+      
+      ADDINTERRUPT;
+      QUIT;
+    }
+
+  /* XXX - should this be interrupt_state?  If it is, the shell will act
+     as if it got the SIGINT interrupt. */
+  wait_sigint_received = 1;
+
+  /* Otherwise effectively ignore the SIGINT and allow the running job to
+     be killed. */
+  SIGRETURN (0);
+}
+
+static int
+process_exit_signal (status)
+     WAIT status;
+{
+  return (WIFSIGNALED (status) ? WTERMSIG (status) : 0);
+}
+
+static int
+process_exit_status (status)
+     WAIT status;
+{
+  if (WIFSIGNALED (status))
+    return (128 + WTERMSIG (status));
+  else if (WIFSTOPPED (status) == 0)
+    return (WEXITSTATUS (status));
+  else
+    return (EXECUTION_SUCCESS);
+}
+
+static WAIT
+job_signal_status (job)
+     int job;
+{
+  register PROCESS *p;
+  WAIT s;
+
+  p = jobs[job]->pipe;
+  do
+    {
+      s = p->status;
+      if (WIFSIGNALED(s) || WIFSTOPPED(s))
+       break;
+      p = p->next;
+    }
+  while (p != jobs[job]->pipe);
+
+  return s;
+}
+  
+/* Return the exit status of the last process in the pipeline for job JOB.
+   This is the exit status of the entire job. */
+static WAIT
+raw_job_exit_status (job)
+     int job;
+{
+  register PROCESS *p;
+  int fail;
+  WAIT ret;
+
+  if (pipefail_opt)
+    {
+      fail = 0;
+      p = jobs[job]->pipe;
+      do
+       {
+         if (WSTATUS (p->status) != EXECUTION_SUCCESS)
+           fail = WSTATUS(p->status);
+         p = p->next;
+       }
+      while (p != jobs[job]->pipe);
+      WSTATUS (ret) = fail;
+      return ret;
+    }
+
+  for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next)
+    ;
+  return (p->status);
+}
+
+/* Return the exit status of job JOB.  This is the exit status of the last
+   (rightmost) process in the job's pipeline, modified if the job was killed
+   by a signal or stopped. */
+static int
+job_exit_status (job)
+     int job;
+{
+  return (process_exit_status (raw_job_exit_status (job)));
+}
+
+static int
+job_exit_signal (job)
+     int job;
+{
+  return (process_exit_signal (raw_job_exit_status (job)));
+}
+
+#define FIND_CHILD(pid, child) \
+  do \
+    { \
+      child = find_pipeline (pid, 0, (int *)NULL); \
+      if (child == 0) \
+       { \
+         give_terminal_to (shell_pgrp, 0); \
+         UNBLOCK_CHILD (oset); \
+         internal_error (_("wait_for: No record of process %ld"), (long)pid); \
+         restore_sigint_handler (); \
+         return (termination_state = 127); \
+       } \
+    } \
+  while (0)
+
+/* Wait for pid (one of our children) to terminate, then
+   return the termination state.  Returns 127 if PID is not found in
+   the jobs table.  Returns -1 if waitchld() returns -1, indicating
+   that there are no unwaited-for child processes. */
+int
+wait_for (pid)
+     pid_t pid;
+{
+  int job, termination_state, r;
+  WAIT s;
+  register PROCESS *child;
+  sigset_t set, oset;
+  register PROCESS *p;
+
+  /* In the case that this code is interrupted, and we longjmp () out of it,
+     we are relying on the code in throw_to_top_level () to restore the
+     top-level signal mask. */
+  BLOCK_CHILD (set, oset);
+
+  /* Ignore interrupts while waiting for a job run without job control
+     to finish.  We don't want the shell to exit if an interrupt is
+     received, only if one of the jobs run is killed via SIGINT.  If
+     job control is not set, the job will be run in the same pgrp as
+     the shell, and the shell will see any signals the job gets.  In
+     fact, we want this set every time the waiting shell and the waited-
+     for process are in the same process group, including command
+     substitution. */
+
+  /* This is possibly a race condition -- should it go in stop_pipeline? */
+  wait_sigint_received = 0;
+  if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
+    {
+      old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+      if (old_sigint_handler == SIG_IGN)
+       set_signal_handler (SIGINT, old_sigint_handler);
+    }
+
+  termination_state = last_command_exit_value;
+
+  if (interactive && job_control == 0)
+    QUIT;
+
+  /* If we say wait_for (), then we have a record of this child somewhere.
+     If it and none of its peers are running, don't call waitchld(). */
+
+  job = NO_JOB;
+  do
+    {
+      FIND_CHILD (pid, child);
+
+      /* If this child is part of a job, then we are really waiting for the
+        job to finish.  Otherwise, we are waiting for the child to finish.
+        We check for JDEAD in case the job state has been set by waitchld
+        after receipt of a SIGCHLD. */
+      if (job == NO_JOB)
+       job = find_job (pid, 0, NULL);
+
+      /* waitchld() takes care of setting the state of the job.  If the job
+        has already exited before this is called, sigchld_handler will have
+        called waitchld and the state will be set to JDEAD. */
+
+      if (PRUNNING(child) || (job != NO_JOB && RUNNING (job)))
+       {
+#if defined (WAITPID_BROKEN)    /* SCOv4 */
+         sigset_t suspend_set;
+         sigemptyset (&suspend_set);
+         sigsuspend (&suspend_set);
+#else /* !WAITPID_BROKEN */
+#  if defined (MUST_UNBLOCK_CHLD)
+         struct sigaction act, oact;
+         sigset_t nullset, chldset;
+
+         sigemptyset (&nullset);
+         sigemptyset (&chldset);
+         sigprocmask (SIG_SETMASK, &nullset, &chldset);
+         act.sa_handler = SIG_DFL;
+         sigemptyset (&act.sa_mask);
+         sigemptyset (&oact.sa_mask);
+         act.sa_flags = 0;
+         sigaction (SIGCHLD, &act, &oact);
+#  endif
+         queue_sigchld = 1;
+         r = waitchld (pid, 1);
+#  if defined (MUST_UNBLOCK_CHLD)
+         sigaction (SIGCHLD, &oact, (struct sigaction *)NULL);
+         sigprocmask (SIG_SETMASK, &chldset, (sigset_t *)NULL);
+#  endif
+         queue_sigchld = 0;
+         if (r == -1 && errno == ECHILD && this_shell_builtin == wait_builtin)
+           {
+             termination_state = -1;
+             goto wait_for_return;
+           }
+
+         /* If child is marked as running, but waitpid() returns -1/ECHILD,
+            there is something wrong.  Somewhere, wait should have returned
+            that child's pid.  Mark the child as not running and the job,
+            if it exists, as JDEAD. */
+         if (r == -1 && errno == ECHILD)
+           {
+             child->running = PS_DONE;
+             WSTATUS (child->status) = 0;      /* XXX -- can't find true status */
+             js.c_living = 0;          /* no living child processes */
+             if (job != NO_JOB)
+               {
+                 jobs[job]->state = JDEAD;
+                 js.c_reaped++;
+                 js.j_ndead++;
+               }
+           }
+#endif /* WAITPID_BROKEN */
+       }
+
+      /* If the shell is interactive, and job control is disabled, see
+        if the foreground process has died due to SIGINT and jump out
+        of the wait loop if it has.  waitchld has already restored the
+        old SIGINT signal handler. */
+      if (interactive && job_control == 0)
+       QUIT;
+    }
+  while (PRUNNING (child) || (job != NO_JOB && RUNNING (job)));
+
+  /* The exit state of the command is either the termination state of the
+     child, or the termination state of the job.  If a job, the status
+     of the last child in the pipeline is the significant one.  If the command
+     or job was terminated by a signal, note that value also. */
+  termination_state = (job != NO_JOB) ? job_exit_status (job)
+                                     : process_exit_status (child->status);
+  last_command_exit_signal = (job != NO_JOB) ? job_exit_signal (job)
+                                            : process_exit_signal (child->status);
+
+  /* XXX */
+  if ((job != NO_JOB && JOBSTATE (job) == JSTOPPED) || WIFSTOPPED (child->status))
+    termination_state = 128 + WSTOPSIG (child->status);
+
+  if (job == NO_JOB || IS_JOBCONTROL (job))
+    {
+      /* XXX - under what circumstances is a job not present in the jobs
+        table (job == NO_JOB)?
+               1.  command substitution
+
+        In the case of command substitution, at least, it's probably not
+        the right thing to give the terminal to the shell's process group,
+        even though there is code in subst.c:command_substitute to work
+        around it.
+
+        Things that don't:
+               $PROMPT_COMMAND execution
+               process substitution
+       */
+#if 0
+if (job == NO_JOB)
+  itrace("wait_for: job == NO_JOB, giving the terminal to shell_pgrp (%ld)", (long)shell_pgrp);
+#endif
+      give_terminal_to (shell_pgrp, 0);
+    }
+
+  /* If the command did not exit cleanly, or the job is just
+     being stopped, then reset the tty state back to what it
+     was before this command.  Reset the tty state and notify
+     the user of the job termination only if the shell is
+     interactive.  Clean up any dead jobs in either case. */
+  if (job != NO_JOB)
+    {
+      if (interactive_shell && subshell_environment == 0)
+       {
+         /* This used to use `child->status'.  That's wrong, however, for
+            pipelines.  `child' is the first process in the pipeline.  It's
+            likely that the process we want to check for abnormal termination
+            or stopping is the last process in the pipeline, especially if
+            it's long-lived and the first process is short-lived.  Since we
+            know we have a job here, we can check all the processes in this
+            job's pipeline and see if one of them stopped or terminated due
+            to a signal.  We might want to change this later to just check
+            the last process in the pipeline.  If no process exits due to a
+            signal, S is left as the status of the last job in the pipeline. */
+         s = job_signal_status (job);
+
+         if (WIFSIGNALED (s) || WIFSTOPPED (s))
+           {
+             set_tty_state ();
+
+             /* If the current job was stopped or killed by a signal, and
+                the user has requested it, get a possibly new window size */
+             if (check_window_size && (job == js.j_current || IS_FOREGROUND (job)))
+               get_new_window_size (0, (int *)0, (int *)0);
+           }
+         else
+           get_tty_state ();
+
+         /* If job control is enabled, the job was started with job
+            control, the job was the foreground job, and it was killed
+            by SIGINT, then print a newline to compensate for the kernel
+            printing the ^C without a trailing newline. */
+         if (job_control && IS_JOBCONTROL (job) && IS_FOREGROUND (job) &&
+               WIFSIGNALED (s) && WTERMSIG (s) == SIGINT)
+           {
+             /* If SIGINT is not trapped and the shell is in a for, while,
+                or until loop, act as if the shell received SIGINT as
+                well, so the loop can be broken.  This doesn't call the
+                SIGINT signal handler; maybe it should. */
+             if (signal_is_trapped (SIGINT) == 0 && (loop_level || (shell_compatibility_level > 32 && executing_list)))
+               ADDINTERRUPT;
+             else
+               {
+                 putchar ('\n');
+                 fflush (stdout);
+               }
+           }
+       }
+      else if ((subshell_environment & SUBSHELL_COMSUB) && wait_sigint_received)
+       {
+         /* If waiting for a job in a subshell started to do command
+            substitution, simulate getting and being killed by the SIGINT to
+            pass the status back to our parent. */
+         s = job_signal_status (job);
+       
+         if (WIFSIGNALED (s) && WTERMSIG (s) == SIGINT && signal_is_trapped (SIGINT) == 0)
+           {
+             UNBLOCK_CHILD (oset);
+             restore_sigint_handler ();
+             old_sigint_handler = set_signal_handler (SIGINT, SIG_DFL);
+             if (old_sigint_handler == SIG_IGN)
+               restore_sigint_handler ();
+             else
+               kill (getpid (), SIGINT);
+           }
+       }
+
+      /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD
+         signal handler path */
+      if (DEADJOB (job) && IS_FOREGROUND (job) /*&& subshell_environment == 0*/)
+       setjstatus (job);
+
+      /* If this job is dead, notify the user of the status.  If the shell
+        is interactive, this will display a message on the terminal.  If
+        the shell is not interactive, make sure we turn on the notify bit
+        so we don't get an unwanted message about the job's termination,
+        and so delete_job really clears the slot in the jobs table. */
+      notify_and_cleanup ();
+    }
+
+wait_for_return:
+
+  UNBLOCK_CHILD (oset);
+
+  /* Restore the original SIGINT signal handler before we return. */
+  restore_sigint_handler ();
+
+  return (termination_state);
+}
+
+/* Wait for the last process in the pipeline for JOB.  Returns whatever
+   wait_for returns: the last process's termination state or -1 if there
+   are no unwaited-for child processes or an error occurs. */
+int
+wait_for_job (job)
+     int job;
+{
+  pid_t pid;
+  int r;
+  sigset_t set, oset;
+
+  BLOCK_CHILD(set, oset);
+  if (JOBSTATE (job) == JSTOPPED)
+    internal_warning (_("wait_for_job: job %d is stopped"), job+1);
+
+  pid = find_last_pid (job, 0);
+  UNBLOCK_CHILD(oset);
+  r = wait_for (pid);
+
+  /* POSIX.2: we can remove the job from the jobs table if we just waited
+     for it. */
+  BLOCK_CHILD (set, oset);
+  if (job != NO_JOB && jobs[job] && DEADJOB (job))
+    jobs[job]->flags |= J_NOTIFIED;
+  UNBLOCK_CHILD (oset);
+
+  return r;
+}
+
+/* Print info about dead jobs, and then delete them from the list
+   of known jobs.  This does not actually delete jobs when the
+   shell is not interactive, because the dead jobs are not marked
+   as notified. */
+void
+notify_and_cleanup ()
+{
+  if (jobs_list_frozen)
+    return;
+
+  if (interactive || interactive_shell == 0 || sourcelevel)
+    notify_of_job_status ();
+
+  cleanup_dead_jobs ();
+}
+
+/* Make dead jobs disappear from the jobs array without notification.
+   This is used when the shell is not interactive. */
+void
+reap_dead_jobs ()
+{
+  mark_dead_jobs_as_notified (0);
+  cleanup_dead_jobs ();
+}
+
+/* Return the next closest (chronologically) job to JOB which is in
+   STATE.  STATE can be JSTOPPED, JRUNNING.  NO_JOB is returned if
+   there is no next recent job. */
+static int
+most_recent_job_in_state (job, state)
+     int job;
+     JOB_STATE state;
+{
+  register int i, result;
+  sigset_t set, oset;
+
+  BLOCK_CHILD (set, oset);
+
+  for (result = NO_JOB, i = job - 1; i >= 0; i--)
+    {
+      if (jobs[i] && (JOBSTATE (i) == state))
+       {
+         result = i;
+         break;
+       }
+    }
+
+  UNBLOCK_CHILD (oset);
+
+  return (result);
+}
+
+/* Return the newest *stopped* job older than JOB, or NO_JOB if not
+   found. */
+static int
+job_last_stopped (job)
+     int job;
+{
+  return (most_recent_job_in_state (job, JSTOPPED));
+}
+
+/* Return the newest *running* job older than JOB, or NO_JOB if not
+   found. */
+static int
+job_last_running (job)
+     int job;
+{
+  return (most_recent_job_in_state (job, JRUNNING));
+}
+
+/* Make JOB be the current job, and make previous be useful.  Must be
+   called with SIGCHLD blocked. */
+static void
+set_current_job (job)
+     int job;
+{
+  int candidate;
+
+  if (js.j_current != job)
+    {
+      js.j_previous = js.j_current;
+      js.j_current = job;
+    }
+
+  /* First choice for previous job is the old current job. */
+  if (js.j_previous != js.j_current &&
+      js.j_previous != NO_JOB &&
+      jobs[js.j_previous] &&
+      STOPPED (js.j_previous))
+    return;
+
+  /* Second choice:  Newest stopped job that is older than
+     the current job. */
+  candidate = NO_JOB;
+  if (STOPPED (js.j_current))
+    {
+      candidate = job_last_stopped (js.j_current);
+
+      if (candidate != NO_JOB)
+       {
+         js.j_previous = candidate;
+         return;
+       }
+    }
+
+  /* If we get here, there is either only one stopped job, in which case it is
+     the current job and the previous job should be set to the newest running
+     job, or there are only running jobs and the previous job should be set to
+     the newest running job older than the current job.  We decide on which
+     alternative to use based on whether or not JOBSTATE(js.j_current) is
+     JSTOPPED. */
+
+  candidate = RUNNING (js.j_current) ? job_last_running (js.j_current)
+                                   : job_last_running (js.j_jobslots);
+
+  if (candidate != NO_JOB)
+    {
+      js.j_previous = candidate;
+      return;
+    }
+
+  /* There is only a single job, and it is both `+' and `-'. */
+  js.j_previous = js.j_current;
+}
+
+/* Make current_job be something useful, if it isn't already. */
+
+/* Here's the deal:  The newest non-running job should be `+', and the
+   next-newest non-running job should be `-'.  If there is only a single
+   stopped job, the js.j_previous is the newest non-running job.  If there
+   are only running jobs, the newest running job is `+' and the
+   next-newest running job is `-'.  Must be called with SIGCHLD blocked. */
+
+static void
+reset_current ()
+{
+  int candidate;
+
+  if (js.j_jobslots && js.j_current != NO_JOB && jobs[js.j_current] && STOPPED (js.j_current))
+    candidate = js.j_current;
+  else
+    {
+      candidate = NO_JOB;
+
+      /* First choice: the previous job. */
+      if (js.j_previous != NO_JOB && jobs[js.j_previous] && STOPPED (js.j_previous))
+       candidate = js.j_previous;
+
+      /* Second choice: the most recently stopped job. */
+      if (candidate == NO_JOB)
+       candidate = job_last_stopped (js.j_jobslots);
+
+      /* Third choice: the newest running job. */
+      if (candidate == NO_JOB)
+       candidate = job_last_running (js.j_jobslots);
+    }
+
+  /* If we found a job to use, then use it.  Otherwise, there
+     are no jobs period. */
+  if (candidate != NO_JOB)
+    set_current_job (candidate);
+  else
+    js.j_current = js.j_previous = NO_JOB;
+}
+
+/* Set up the job structures so we know the job and its processes are
+   all running. */
+static void
+set_job_running (job)
+     int job;
+{
+  register PROCESS *p;
+
+  /* Each member of the pipeline is now running. */
+  p = jobs[job]->pipe;
+
+  do
+    {
+      if (WIFSTOPPED (p->status))
+       p->running = PS_RUNNING;        /* XXX - could be PS_STOPPED */
+      p = p->next;
+    }
+  while (p != jobs[job]->pipe);
+
+  /* This means that the job is running. */
+  JOBSTATE (job) = JRUNNING;
+}
+
+/* Start a job.  FOREGROUND if non-zero says to do that.  Otherwise,
+   start the job in the background.  JOB is a zero-based index into
+   JOBS.  Returns -1 if it is unable to start a job, and the return
+   status of the job otherwise. */
+int
+start_job (job, foreground)
+     int job, foreground;
+{
+  register PROCESS *p;
+  int already_running;
+  sigset_t set, oset;
+  char *wd, *s;
+  static TTYSTRUCT save_stty;
+
+  BLOCK_CHILD (set, oset);
+
+  if (DEADJOB (job))
+    {
+      internal_error (_("%s: job has terminated"), this_command_name);
+      UNBLOCK_CHILD (oset);
+      return (-1);
+    }
+
+  already_running = RUNNING (job);
+
+  if (foreground == 0 && already_running)
+    {
+      internal_error (_("%s: job %d already in background"), this_command_name, job + 1);
+      UNBLOCK_CHILD (oset);
+      return (0);              /* XPG6/SUSv3 says this is not an error */
+    }
+
+  wd = current_working_directory ();
+
+  /* You don't know about the state of this job.  Do you? */
+  jobs[job]->flags &= ~J_NOTIFIED;
+
+  if (foreground)
+    {
+      set_current_job (job);
+      jobs[job]->flags |= J_FOREGROUND;
+    }
+
+  /* Tell the outside world what we're doing. */
+  p = jobs[job]->pipe;
+
+  if (foreground == 0)
+    {
+      /* POSIX.2 says `bg' doesn't give any indication about current or
+        previous job. */
+      if (posixly_correct == 0)
+       s = (job == js.j_current) ? "+ ": ((job == js.j_previous) ? "- " : " ");       
+      else
+       s = " ";
+      printf ("[%d]%s", job + 1, s);
+    }
+
+  do
+    {
+      printf ("%s%s",
+              p->command ? p->command : "",
+              p->next != jobs[job]->pipe? " | " : "");
+      p = p->next;
+    }
+  while (p != jobs[job]->pipe);
+
+  if (foreground == 0)
+    printf (" &");
+
+  if (strcmp (wd, jobs[job]->wd) != 0)
+    printf ("  (wd: %s)", polite_directory_format (jobs[job]->wd));
+
+  printf ("\n");
+
+  /* Run the job. */
+  if (already_running == 0)
+    set_job_running (job);
+
+  /* Save the tty settings before we start the job in the foreground. */
+  if (foreground)
+    {
+      get_tty_state ();
+      save_stty = shell_tty_info;
+      /* Give the terminal to this job. */
+      if (IS_JOBCONTROL (job))
+       give_terminal_to (jobs[job]->pgrp, 0);
+    }
+  else
+    jobs[job]->flags &= ~J_FOREGROUND;
+
+  /* If the job is already running, then don't bother jump-starting it. */
+  if (already_running == 0)
+    {
+      jobs[job]->flags |= J_NOTIFIED;
+      killpg (jobs[job]->pgrp, SIGCONT);
+    }
+
+  if (foreground)
+    {
+      pid_t pid;
+      int st;
+
+      pid = find_last_pid (job, 0);
+      UNBLOCK_CHILD (oset);
+      st = wait_for (pid);
+      shell_tty_info = save_stty;
+      set_tty_state ();
+      return (st);
+    }
+  else
+    {
+      reset_current ();
+      UNBLOCK_CHILD (oset);
+      return (0);
+    }
+}
+
+/* Give PID SIGNAL.  This determines what job the pid belongs to (if any).
+   If PID does belong to a job, and the job is stopped, then CONTinue the
+   job after giving it SIGNAL.  Returns -1 on failure.  If GROUP is non-null,
+   then kill the process group associated with PID. */
+int
+kill_pid (pid, sig, group)
+     pid_t pid;
+     int sig, group;
+{
+  register PROCESS *p;
+  int job, result, negative;
+  sigset_t set, oset;
+
+  if (pid < -1)
+    {
+      pid = -pid;
+      group = negative = 1;
+    }
+  else
+    negative = 0;
+
+  result = EXECUTION_SUCCESS;
+  if (group)
+    {
+      BLOCK_CHILD (set, oset);
+      p = find_pipeline (pid, 0, &job);
+
+      if (job != NO_JOB)
+       {
+         jobs[job]->flags &= ~J_NOTIFIED;
+
+         /* Kill process in backquotes or one started without job control? */
+
+         /* If we're passed a pid < -1, just call killpg and see what happens  */
+         if (negative && jobs[job]->pgrp == shell_pgrp)
+           result = killpg (pid, sig);
+         /* If we're killing using job control notification, for example,
+            without job control active, we have to do things ourselves. */
+         else if (jobs[job]->pgrp == shell_pgrp)
+           {
+             p = jobs[job]->pipe;
+             do
+               {
+                 if (PALIVE (p) == 0)
+                   continue;           /* avoid pid recycling problem */
+                 kill (p->pid, sig);
+                 if (PEXITED (p) && (sig == SIGTERM || sig == SIGHUP))
+                   kill (p->pid, SIGCONT);
+                 p = p->next;
+               }
+             while  (p != jobs[job]->pipe);
+           }
+         else
+           {
+             result = killpg (jobs[job]->pgrp, sig);
+             if (p && STOPPED (job) && (sig == SIGTERM || sig == SIGHUP))
+               killpg (jobs[job]->pgrp, SIGCONT);
+             /* If we're continuing a stopped job via kill rather than bg or
+                fg, emulate the `bg' behavior. */
+             if (p && STOPPED (job) && (sig == SIGCONT))
+               {
+                 set_job_running (job);
+                 jobs[job]->flags &= ~J_FOREGROUND;
+                 jobs[job]->flags |= J_NOTIFIED;
+               }
+           }
+       }
+      else
+       result = killpg (pid, sig);
+
+      UNBLOCK_CHILD (oset);
+    }
+  else
+    result = kill (pid, sig);
+
+  return (result);
+}
+
+/* sigchld_handler () flushes at least one of the children that we are
+   waiting for.  It gets run when we have gotten a SIGCHLD signal. */
+static sighandler
+sigchld_handler (sig)
+     int sig;
+{
+  int n, oerrno;
+
+  oerrno = errno;
+  REINSTALL_SIGCHLD_HANDLER;
+  sigchld++;
+  n = 0;
+  if (queue_sigchld == 0)
+    n = waitchld (-1, 0);
+  errno = oerrno;
+  SIGRETURN (n);
+}
+
+/* waitchld() reaps dead or stopped children.  It's called by wait_for and
+   sigchld_handler, and runs until there aren't any children terminating any
+   more.
+   If BLOCK is 1, this is to be a blocking wait for a single child, although
+   an arriving SIGCHLD could cause the wait to be non-blocking.  It returns
+   the number of children reaped, or -1 if there are no unwaited-for child
+   processes. */
+static int
+waitchld (wpid, block)
+     pid_t wpid;
+     int block;
+{
+  WAIT status;
+  PROCESS *child;
+  pid_t pid;
+  int call_set_current, last_stopped_job, job, children_exited, waitpid_flags;
+  static int wcontinued = WCONTINUED;  /* run-time fix for glibc problem */
+
+  call_set_current = children_exited = 0;
+  last_stopped_job = NO_JOB;
+
+  do
+    {
+      /* We don't want to be notified about jobs stopping if job control
+        is not active.  XXX - was interactive_shell instead of job_control */
+      waitpid_flags = (job_control && subshell_environment == 0)
+                       ? (WUNTRACED|wcontinued)
+                       : 0;
+      if (sigchld || block == 0)
+       waitpid_flags |= WNOHANG;
+      CHECK_TERMSIG;
+
+      pid = WAITPID (-1, &status, waitpid_flags);
+
+      /* WCONTINUED may be rejected by waitpid as invalid even when defined */
+      if (wcontinued && pid < 0 && errno == EINVAL)
+       {
+         wcontinued = 0;
+         continue;     /* jump back to the test and retry without WCONTINUED */
+       }
+
+      /* The check for WNOHANG is to make sure we decrement sigchld only
+        if it was non-zero before we called waitpid. */
+      if (sigchld > 0 && (waitpid_flags & WNOHANG))
+       sigchld--;
+  
+      /* If waitpid returns -1 with errno == ECHILD, there are no more
+        unwaited-for child processes of this shell. */
+      if (pid < 0 && errno == ECHILD)
+       {
+         if (children_exited == 0)
+           return -1;
+         else
+           break;
+       }
+
+      /* If waitpid returns 0, there are running children.  If it returns -1,
+        the only other error POSIX says it can return is EINTR. */
+      CHECK_TERMSIG;
+      if (pid <= 0)
+       continue;       /* jumps right to the test */
+
+      /* children_exited is used to run traps on SIGCHLD.  We don't want to
+         run the trap if a process is just being continued. */
+      if (WIFCONTINUED(status) == 0)
+       {
+         children_exited++;
+         js.c_living--;
+       }
+
+      /* Locate our PROCESS for this pid. */
+      child = find_process (pid, 1, &job);     /* want living procs only */
+
+#if defined (COPROCESS_SUPPORT)
+      coproc_pidchk (pid, status);
+#endif
+
+      /* It is not an error to have a child terminate that we did
+        not have a record of.  This child could have been part of
+        a pipeline in backquote substitution.  Even so, I'm not
+        sure child is ever non-zero. */
+      if (child == 0)
+       {
+         if (WIFEXITED (status) || WIFSIGNALED (status))
+           js.c_reaped++;
+         continue;
+       }
+
+      /* Remember status, and whether or not the process is running. */
+      child->status = status;
+      child->running = WIFCONTINUED(status) ? PS_RUNNING : PS_DONE;
+
+      if (PEXITED (child))
+       {
+         js.c_totreaped++;
+         if (job != NO_JOB)
+           js.c_reaped++;
+       }
+        
+      if (job == NO_JOB)
+       continue;
+
+      call_set_current += set_job_status_and_cleanup (job);
+
+      if (STOPPED (job))
+       last_stopped_job = job;
+      else if (DEADJOB (job) && last_stopped_job == job)
+       last_stopped_job = NO_JOB;
+    }
+  while ((sigchld || block == 0) && pid > (pid_t)0);
+
+  /* If a job was running and became stopped, then set the current
+     job.  Otherwise, don't change a thing. */
+  if (call_set_current)
+    {
+      if (last_stopped_job != NO_JOB)
+       set_current_job (last_stopped_job);
+      else
+       reset_current ();
+    }
+
+  /* Call a SIGCHLD trap handler for each child that exits, if one is set. */
+  if (job_control && signal_is_trapped (SIGCHLD) && children_exited &&
+      trap_list[SIGCHLD] != (char *)IGNORE_SIG)
+    {
+      if (this_shell_builtin && this_shell_builtin == wait_builtin)
+       {
+         interrupt_immediately = 0;
+         trap_handler (SIGCHLD);       /* set pending_traps[SIGCHLD] */
+         wait_signal_received = SIGCHLD;
+         longjmp (wait_intr_buf, 1);
+       }
+
+      run_sigchld_trap (children_exited);
+    }
+
+  /* We have successfully recorded the useful information about this process
+     that has just changed state.  If we notify asynchronously, and the job
+     that this process belongs to is no longer running, then notify the user
+     of that fact now. */
+  if (asynchronous_notification && interactive)
+    notify_of_job_status ();
+
+  return (children_exited);
+}
+
+/* Set the status of JOB and perform any necessary cleanup if the job is
+   marked as JDEAD.
+
+   Currently, the cleanup activity is restricted to handling any SIGINT
+   received while waiting for a foreground job to finish. */
+static int
+set_job_status_and_cleanup (job)
+     int job;
+{
+  PROCESS *child;
+  int tstatus, job_state, any_stopped, any_tstped, call_set_current;
+  SigHandler *temp_handler;
+
+  child = jobs[job]->pipe;
+  jobs[job]->flags &= ~J_NOTIFIED;
+
+  call_set_current = 0;
+
+  /*
+   * COMPUTE JOB STATUS
+   */
+
+  /* If all children are not running, but any of them is  stopped, then
+     the job is stopped, not dead. */
+  job_state = any_stopped = any_tstped = 0;
+  do
+    {
+      job_state |= PRUNNING (child);
+#if 0
+      if (PEXITED (child) && (WIFSTOPPED (child->status)))
+#else
+      /* Only checking for WIFSTOPPED now, not for PS_DONE */
+      if (PSTOPPED (child))
+#endif
+       {
+         any_stopped = 1;
+         any_tstped |= interactive && job_control &&
+                           (WSTOPSIG (child->status) == SIGTSTP);
+       }
+      child = child->next;
+    }
+  while (child != jobs[job]->pipe);
+
+  /* If job_state != 0, the job is still running, so don't bother with
+     setting the process exit status and job state unless we're
+     transitioning from stopped to running. */
+  if (job_state != 0 && JOBSTATE(job) != JSTOPPED)
+    return 0;
+
+  /*
+   * SET JOB STATUS
+   */
+
+  /* The job is either stopped or dead.  Set the state of the job accordingly. */
+  if (any_stopped)
+    {
+      jobs[job]->state = JSTOPPED;
+      jobs[job]->flags &= ~J_FOREGROUND;
+      call_set_current++;
+      /* Suspending a job with SIGTSTP breaks all active loops. */
+      if (any_tstped && loop_level)
+       breaking = loop_level;
+    }
+  else if (job_state != 0)     /* was stopped, now running */
+    {
+      jobs[job]->state = JRUNNING;
+      call_set_current++;
+    }
+  else
+    {
+      jobs[job]->state = JDEAD;
+      js.j_ndead++;
+
+#if 0
+      if (IS_FOREGROUND (job))
+       setjstatus (job);
+#endif
+
+      /* If this job has a cleanup function associated with it, call it
+        with `cleanarg' as the single argument, then set the function
+        pointer to NULL so it is not inadvertently called twice.  The
+        cleanup function is responsible for deallocating cleanarg. */
+      if (jobs[job]->j_cleanup)
+       {
+         (*jobs[job]->j_cleanup) (jobs[job]->cleanarg);
+         jobs[job]->j_cleanup = (sh_vptrfunc_t *)NULL;
+       }
+    }
+
+  /*
+   * CLEANUP
+   *
+   * Currently, we just do special things if we got a SIGINT while waiting
+   * for a foreground job to complete
+   */
+
+  if (JOBSTATE (job) == JDEAD)
+    {
+      /* If we're running a shell script and we get a SIGINT with a
+        SIGINT trap handler, but the foreground job handles it and
+        does not exit due to SIGINT, run the trap handler but do not
+        otherwise act as if we got the interrupt. */
+      if (wait_sigint_received && interactive_shell == 0 &&
+         WIFSIGNALED (child->status) == 0 && IS_FOREGROUND (job) &&
+         signal_is_trapped (SIGINT))
+       {
+         int old_frozen;
+         wait_sigint_received = 0;
+         last_command_exit_value = process_exit_status (child->status);
+
+         old_frozen = jobs_list_frozen;
+         jobs_list_frozen = 1;
+         tstatus = maybe_call_trap_handler (SIGINT);
+         jobs_list_frozen = old_frozen;
+       }
+
+      /* If the foreground job is killed by SIGINT when job control is not
+        active, we need to perform some special handling.
+
+        The check of wait_sigint_received is a way to determine if the
+        SIGINT came from the keyboard (in which case the shell has already
+        seen it, and wait_sigint_received is non-zero, because keyboard
+        signals are sent to process groups) or via kill(2) to the foreground
+        process by another process (or itself).  If the shell did receive the
+        SIGINT, it needs to perform normal SIGINT processing. */
+      else if (wait_sigint_received && (WTERMSIG (child->status) == SIGINT) &&
+             IS_FOREGROUND (job) && IS_JOBCONTROL (job) == 0)
+       {
+         int old_frozen;
+
+         wait_sigint_received = 0;
+
+         /* If SIGINT is trapped, set the exit status so that the trap
+            handler can see it. */
+         if (signal_is_trapped (SIGINT))
+           last_command_exit_value = process_exit_status (child->status);
+
+         /* If the signal is trapped, let the trap handler get it no matter
+            what and simply return if the trap handler returns.
+           maybe_call_trap_handler() may cause dead jobs to be removed from
+           the job table because of a call to execute_command.  We work
+           around this by setting JOBS_LIST_FROZEN. */
+         old_frozen = jobs_list_frozen;
+         jobs_list_frozen = 1;
+         tstatus = maybe_call_trap_handler (SIGINT);
+         jobs_list_frozen = old_frozen;
+         if (tstatus == 0 && old_sigint_handler != INVALID_SIGNAL_HANDLER)
+           {
+             /* wait_sigint_handler () has already seen SIGINT and
+                allowed the wait builtin to jump out.  We need to
+                call the original SIGINT handler, if necessary.  If
+                the original handler is SIG_DFL, we need to resend
+                the signal to ourselves. */
+
+             temp_handler = old_sigint_handler;
+
+             /* Bogus.  If we've reset the signal handler as the result
+                of a trap caught on SIGINT, then old_sigint_handler
+                will point to trap_handler, which now knows nothing about
+                SIGINT (if we reset the sighandler to the default).
+                In this case, we have to fix things up.  What a crock. */
+             if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0)
+                 temp_handler = trap_to_sighandler (SIGINT);
+               restore_sigint_handler ();
+             if (temp_handler == SIG_DFL)
+               termsig_handler (SIGINT);
+             else if (temp_handler != SIG_IGN)
+               (*temp_handler) (SIGINT);
+           }
+       }
+    }
+
+  return call_set_current;
+}
+
+/* Build the array of values for the $PIPESTATUS variable from the set of
+   exit statuses of all processes in the job J. */
+static void
+setjstatus (j)
+     int j;
+{
+#if defined (ARRAY_VARS)
+  register int i;
+  register PROCESS *p;
+
+  for (i = 1, p = jobs[j]->pipe; p->next != jobs[j]->pipe; p = p->next, i++)
+    ;
+  i++;
+  if (statsize < i)
+    {
+      pstatuses = (int *)xrealloc (pstatuses, i * sizeof (int));
+      statsize = i;
+    }
+  i = 0;
+  p = jobs[j]->pipe;
+  do
+    {
+      pstatuses[i++] = process_exit_status (p->status);
+      p = p->next;
+    }
+  while (p != jobs[j]->pipe);
+
+  pstatuses[i] = -1;   /* sentinel */
+  set_pipestatus_array (pstatuses, i);
+#endif
+}
+
+void
+run_sigchld_trap (nchild)
+     int nchild;
+{
+  char *trap_command;
+  int i;
+
+  /* Turn off the trap list during the call to parse_and_execute ()
+     to avoid potentially infinite recursive calls.  Preserve the
+     values of last_command_exit_value, last_made_pid, and the_pipeline
+     around the execution of the trap commands. */
+  trap_command = savestring (trap_list[SIGCHLD]);
+
+  begin_unwind_frame ("SIGCHLD trap");
+  unwind_protect_int (last_command_exit_value);
+  unwind_protect_int (last_command_exit_signal);
+  unwind_protect_var (last_made_pid);
+  unwind_protect_int (interrupt_immediately);
+  unwind_protect_int (jobs_list_frozen);
+  unwind_protect_pointer (the_pipeline);
+  unwind_protect_pointer (subst_assign_varlist);
+
+  /* We have to add the commands this way because they will be run
+     in reverse order of adding.  We don't want maybe_set_sigchld_trap ()
+     to reference freed memory. */
+  add_unwind_protect (xfree, trap_command);
+  add_unwind_protect (maybe_set_sigchld_trap, trap_command);
+
+  subst_assign_varlist = (WORD_LIST *)NULL;
+  the_pipeline = (PROCESS *)NULL;
+
+  set_impossible_sigchld_trap ();
+  jobs_list_frozen = 1;
+  for (i = 0; i < nchild; i++)
+    {
+      interrupt_immediately = 1;
+      parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE);
+    }
+
+  run_unwind_frame ("SIGCHLD trap");
+}
+
+/* Function to call when you want to notify people of changes
+   in job status.  This prints out all jobs which are pending
+   notification to stderr, and marks those printed as already
+   notified, thus making them candidates for cleanup. */
+static void
+notify_of_job_status ()
+{
+  register int job, termsig;
+  char *dir;
+  sigset_t set, oset;
+  WAIT s;
+
+  if (jobs == 0 || js.j_jobslots == 0)
+    return;
+
+  if (old_ttou != 0)
+    {
+      sigemptyset (&set);
+      sigaddset (&set, SIGCHLD);
+      sigaddset (&set, SIGTTOU);
+      sigemptyset (&oset);
+      sigprocmask (SIG_BLOCK, &set, &oset);
+    }
+  else
+    queue_sigchld++;
+
+  /* XXX could use js.j_firstj here */
+  for (job = 0, dir = (char *)NULL; job < js.j_jobslots; job++)
+    {
+      if (jobs[job] && IS_NOTIFIED (job) == 0)
+       {
+         s = raw_job_exit_status (job);
+         termsig = WTERMSIG (s);
+
+         /* POSIX.2 says we have to hang onto the statuses of at most the
+            last CHILD_MAX background processes if the shell is running a
+            script.  If the shell is running a script, either from a file
+            or standard input, don't print anything unless the job was
+            killed by a signal. */
+         if (startup_state == 0 && WIFSIGNALED (s) == 0 &&
+               ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job)))
+           continue;
+         
+#if 0
+         /* If job control is disabled, don't print the status messages.
+            Mark dead jobs as notified so that they get cleaned up.  If
+            startup_state == 2, we were started to run `-c command', so
+            don't print anything. */
+         if ((job_control == 0 && interactive_shell) || startup_state == 2)
+#else
+         /* If job control is disabled, don't print the status messages.
+            Mark dead jobs as notified so that they get cleaned up.  If
+            startup_state == 2 and subshell_environment has the
+            SUBSHELL_COMSUB bit turned on, we were started to run a command
+            substitution, so don't print anything. */
+         if ((job_control == 0 && interactive_shell) ||
+             (startup_state == 2 && (subshell_environment & SUBSHELL_COMSUB)))
+#endif
+           {
+             /* POSIX.2 compatibility:  if the shell is not interactive,
+                hang onto the job corresponding to the last asynchronous
+                pid until the user has been notified of its status or does
+                a `wait'. */
+             if (DEADJOB (job) && (interactive_shell || (find_last_pid (job, 0) != last_asynchronous_pid)))
+               jobs[job]->flags |= J_NOTIFIED;
+             continue;
+           }
+
+         /* Print info on jobs that are running in the background,
+            and on foreground jobs that were killed by anything
+            except SIGINT (and possibly SIGPIPE). */
+         switch (JOBSTATE (job))
+           {
+           case JDEAD:
+             if (interactive_shell == 0 && termsig && WIFSIGNALED (s) &&
+                 termsig != SIGINT &&
+#if defined (DONT_REPORT_SIGPIPE)
+                 termsig != SIGPIPE &&
+#endif
+                 signal_is_trapped (termsig) == 0)
+               {
+                 /* Don't print `0' for a line number. */
+                 fprintf (stderr, _("%s: line %d: "), get_name_for_error (), (line_number == 0) ? 1 : line_number);
+                 pretty_print_job (job, JLIST_NONINTERACTIVE, stderr);
+               }
+             else if (IS_FOREGROUND (job))
+               {
+#if !defined (DONT_REPORT_SIGPIPE)
+                 if (termsig && WIFSIGNALED (s) && termsig != SIGINT)
+#else
+                 if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE)
+#endif
+                   {
+                     fprintf (stderr, "%s", j_strsignal (termsig));
+
+                     if (WIFCORED (s))
+                       fprintf (stderr, _(" (core dumped)"));
+
+                     fprintf (stderr, "\n");
+                   }
+               }
+             else if (job_control)     /* XXX job control test added */
+               {
+                 if (dir == 0)
+                   dir = current_working_directory ();
+                 pretty_print_job (job, JLIST_STANDARD, stderr);
+                 if (dir && strcmp (dir, jobs[job]->wd) != 0)
+                   fprintf (stderr,
+                            _("(wd now: %s)\n"), polite_directory_format (dir));
+               }
+
+             jobs[job]->flags |= J_NOTIFIED;
+             break;
+
+           case JSTOPPED:
+             fprintf (stderr, "\n");
+             if (dir == 0)
+               dir = current_working_directory ();
+             pretty_print_job (job, JLIST_STANDARD, stderr);
+             if (dir && (strcmp (dir, jobs[job]->wd) != 0))
+               fprintf (stderr,
+                        _("(wd now: %s)\n"), polite_directory_format (dir));
+             jobs[job]->flags |= J_NOTIFIED;
+             break;
+
+           case JRUNNING:
+           case JMIXED:
+             break;
+
+           default:
+             programming_error ("notify_of_job_status");
+           }
+       }
+    }
+  if (old_ttou != 0)
+    sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
+  else
+    queue_sigchld--;
+}
+
+/* Initialize the job control mechanism, and set up the tty stuff. */
+int
+initialize_job_control (force)
+     int force;
+{
+  pid_t t;
+  int t_errno;
+
+  t_errno = -1;
+  shell_pgrp = getpgid (0);
+
+  if (shell_pgrp == -1)
+    {
+      sys_error (_("initialize_job_control: getpgrp failed"));
+      exit (1);
+    }
+
+  /* We can only have job control if we are interactive. */
+  if (interactive == 0)
+    {
+      job_control = 0;
+      original_pgrp = NO_PID;
+      shell_tty = fileno (stderr);
+    }
+  else
+    {
+      shell_tty = -1;
+
+      /* If forced_interactive is set, we skip the normal check that stderr
+        is attached to a tty, so we need to check here.  If it's not, we
+        need to see whether we have a controlling tty by opening /dev/tty,
+        since trying to use job control tty pgrp manipulations on a non-tty
+        is going to fail. */
+      if (forced_interactive && isatty (fileno (stderr)) == 0)
+       shell_tty = open ("/dev/tty", O_RDWR|O_NONBLOCK);
+
+      /* Get our controlling terminal.  If job_control is set, or
+        interactive is set, then this is an interactive shell no
+        matter where fd 2 is directed. */
+      if (shell_tty == -1)
+       shell_tty = dup (fileno (stderr));      /* fd 2 */
+
+      shell_tty = move_to_high_fd (shell_tty, 1, -1);
+
+      /* Compensate for a bug in systems that compiled the BSD
+        rlogind with DEBUG defined, like NeXT and Alliant. */
+      if (shell_pgrp == 0)
+       {
+         shell_pgrp = getpid ();
+         setpgid (0, shell_pgrp);
+         tcsetpgrp (shell_tty, shell_pgrp);
+       }
+
+      while ((terminal_pgrp = tcgetpgrp (shell_tty)) != -1)
+       {
+         if (shell_pgrp != terminal_pgrp)
+           {
+             SigHandler *ottin;
+
+             ottin = set_signal_handler(SIGTTIN, SIG_DFL);
+             kill (0, SIGTTIN);
+             set_signal_handler (SIGTTIN, ottin);
+             continue;
+           }
+         break;
+       }
+
+      if (terminal_pgrp == -1)
+       t_errno = errno;
+
+      /* Make sure that we are using the new line discipline. */
+      if (set_new_line_discipline (shell_tty) < 0)
+       {
+         sys_error (_("initialize_job_control: line discipline"));
+         job_control = 0;
+       }
+      else
+       {
+         original_pgrp = shell_pgrp;
+         shell_pgrp = getpid ();
+
+         if ((original_pgrp != shell_pgrp) && (setpgid (0, shell_pgrp) < 0))
+           {
+             sys_error (_("initialize_job_control: setpgid"));
+             shell_pgrp = original_pgrp;
+           }
+
+         job_control = 1;
+
+         /* If (and only if) we just set our process group to our pid,
+            thereby becoming a process group leader, and the terminal
+            is not in the same process group as our (new) process group,
+            then set the terminal's process group to our (new) process
+            group.  If that fails, set our process group back to what it
+            was originally (so we can still read from the terminal) and
+            turn off job control.  */
+         if (shell_pgrp != original_pgrp && shell_pgrp != terminal_pgrp)
+           {
+             if (give_terminal_to (shell_pgrp, 0) < 0)
+               {
+                 t_errno = errno;
+                 setpgid (0, original_pgrp);
+                 shell_pgrp = original_pgrp;
+                 job_control = 0;
+               }
+           }
+
+         if (job_control && ((t = tcgetpgrp (shell_tty)) == -1 || t != shell_pgrp))
+           {
+             if (t_errno != -1)
+               errno = t_errno;
+             sys_error (_("cannot set terminal process group (%d)"), t);
+             job_control = 0;
+           }
+       }
+      if (job_control == 0)
+       internal_error (_("no job control in this shell"));
+    }
+
+  if (shell_tty != fileno (stderr))
+    SET_CLOSE_ON_EXEC (shell_tty);
+
+  set_signal_handler (SIGCHLD, sigchld_handler);
+
+  change_flag ('m', job_control ? '-' : '+');
+
+  if (interactive)
+    get_tty_state ();
+
+  if (js.c_childmax < 0)
+    js.c_childmax = getmaxchild ();
+  if (js.c_childmax < 0)
+    js.c_childmax = DEFAULT_CHILD_MAX;
+
+  return job_control;
+}
+
+#ifdef DEBUG
+void
+debug_print_pgrps ()
+{
+  itrace("original_pgrp = %ld shell_pgrp = %ld terminal_pgrp = %ld",
+        (long)original_pgrp, (long)shell_pgrp, (long)terminal_pgrp);
+  itrace("tcgetpgrp(%d) -> %ld, getpgid(0) -> %ld",
+        shell_tty, (long)tcgetpgrp (shell_tty), (long)getpgid(0));
+}
+#endif
+
+/* Set the line discipline to the best this system has to offer.
+   Return -1 if this is not possible. */
+static int
+set_new_line_discipline (tty)
+     int tty;
+{
+#if defined (NEW_TTY_DRIVER)
+  int ldisc;
+
+  if (ioctl (tty, TIOCGETD, &ldisc) < 0)
+    return (-1);
+
+  if (ldisc != NTTYDISC)
+    {
+      ldisc = NTTYDISC;
+
+      if (ioctl (tty, TIOCSETD, &ldisc) < 0)
+       return (-1);
+    }
+  return (0);
+#endif /* NEW_TTY_DRIVER */
+
+#if defined (TERMIO_TTY_DRIVER)
+#  if defined (TERMIO_LDISC) && (NTTYDISC)
+  if (ioctl (tty, TCGETA, &shell_tty_info) < 0)
+    return (-1);
+
+  if (shell_tty_info.c_line != NTTYDISC)
+    {
+      shell_tty_info.c_line = NTTYDISC;
+      if (ioctl (tty, TCSETAW, &shell_tty_info) < 0)
+       return (-1);
+    }
+#  endif /* TERMIO_LDISC && NTTYDISC */
+  return (0);
+#endif /* TERMIO_TTY_DRIVER */
+
+#if defined (TERMIOS_TTY_DRIVER)
+#  if defined (TERMIOS_LDISC) && defined (NTTYDISC)
+  if (tcgetattr (tty, &shell_tty_info) < 0)
+    return (-1);
+
+  if (shell_tty_info.c_line != NTTYDISC)
+    {
+      shell_tty_info.c_line = NTTYDISC;
+      if (tcsetattr (tty, TCSADRAIN, &shell_tty_info) < 0)
+       return (-1);
+    }
+#  endif /* TERMIOS_LDISC && NTTYDISC */
+  return (0);
+#endif /* TERMIOS_TTY_DRIVER */
+
+#if !defined (NEW_TTY_DRIVER) && !defined (TERMIO_TTY_DRIVER) && !defined (TERMIOS_TTY_DRIVER)
+  return (-1);
+#endif
+}
+
+/* Setup this shell to handle C-C, etc. */
+void
+initialize_job_signals ()
+{
+  if (interactive)
+    {
+      set_signal_handler (SIGINT, sigint_sighandler);
+      set_signal_handler (SIGTSTP, SIG_IGN);
+      set_signal_handler (SIGTTOU, SIG_IGN);
+      set_signal_handler (SIGTTIN, SIG_IGN);
+    }
+  else if (job_control)
+    {
+      old_tstp = set_signal_handler (SIGTSTP, sigstop_sighandler);
+      old_ttin = set_signal_handler (SIGTTIN, sigstop_sighandler);
+      old_ttou = set_signal_handler (SIGTTOU, sigstop_sighandler);
+    }
+  /* Leave these things alone for non-interactive shells without job
+     control. */
+}
+
+/* Here we handle CONT signals. */
+static sighandler
+sigcont_sighandler (sig)
+     int sig;
+{
+  initialize_job_signals ();
+  set_signal_handler (SIGCONT, old_cont);
+  kill (getpid (), SIGCONT);
+
+  SIGRETURN (0);
+}
+
+/* Here we handle stop signals while we are running not as a login shell. */
+static sighandler
+sigstop_sighandler (sig)
+     int sig;
+{
+  set_signal_handler (SIGTSTP, old_tstp);
+  set_signal_handler (SIGTTOU, old_ttou);
+  set_signal_handler (SIGTTIN, old_ttin);
+
+  old_cont = set_signal_handler (SIGCONT, sigcont_sighandler);
+
+  give_terminal_to (shell_pgrp, 0);
+
+  kill (getpid (), sig);
+
+  SIGRETURN (0);
+}
+
+/* Give the terminal to PGRP.  */
+int
+give_terminal_to (pgrp, force)
+     pid_t pgrp;
+     int force;
+{
+  sigset_t set, oset;
+  int r, e;
+
+  r = 0;
+  if (job_control || force)
+    {
+      sigemptyset (&set);
+      sigaddset (&set, SIGTTOU);
+      sigaddset (&set, SIGTTIN);
+      sigaddset (&set, SIGTSTP);
+      sigaddset (&set, SIGCHLD);
+      sigemptyset (&oset);
+      sigprocmask (SIG_BLOCK, &set, &oset);
+
+      if (tcsetpgrp (shell_tty, pgrp) < 0)
+       {
+         /* Maybe we should print an error message? */
+#if 0
+         sys_error ("tcsetpgrp(%d) failed: pid %ld to pgrp %ld",
+           shell_tty, (long)getpid(), (long)pgrp);
+#endif
+         r = -1;
+         e = errno;
+       }
+      else
+       terminal_pgrp = pgrp;
+      sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
+    }
+
+  if (r == -1)
+    errno = e;
+
+  return r;
+}
+
+/* Give terminal to NPGRP iff it's currently owned by OPGRP.  FLAGS are the
+   flags to pass to give_terminal_to(). */
+static int
+maybe_give_terminal_to (opgrp, npgrp, flags)
+     pid_t opgrp, npgrp;
+     int flags;
+{
+  int tpgrp;
+
+  tpgrp = tcgetpgrp (shell_tty);
+  if (tpgrp < 0 && errno == ENOTTY)
+    return -1;
+  if (tpgrp == npgrp)
+    {
+      terminal_pgrp = npgrp;
+      return 0;
+    }
+  else if (tpgrp != opgrp)
+    {
+#if defined (DEBUG)
+      internal_warning ("maybe_give_terminal_to: terminal pgrp == %d shell pgrp = %d new pgrp = %d", tpgrp, opgrp, npgrp);
+#endif
+      return -1;
+    }
+  else
+    return (give_terminal_to (npgrp, flags));     
+}
+
+/* Clear out any jobs in the job array.  This is intended to be used by
+   children of the shell, who should not have any job structures as baggage
+   when they start executing (forking subshells for parenthesized execution
+   and functions with pipes are the two that spring to mind).  If RUNNING_ONLY
+   is nonzero, only running jobs are removed from the table. */
+void
+delete_all_jobs (running_only)
+     int running_only;
+{
+  register int i;
+  sigset_t set, oset;
+
+  BLOCK_CHILD (set, oset);
+
+  /* XXX - need to set j_lastj, j_firstj appropriately if running_only != 0. */
+  if (js.j_jobslots)
+    {
+      js.j_current = js.j_previous = NO_JOB;
+
+      /* XXX could use js.j_firstj here */
+      for (i = 0; i < js.j_jobslots; i++)
+       {
+#if defined (DEBUG)
+         if (i < js.j_firstj && jobs[i])
+           itrace("delete_all_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+         if (i > js.j_lastj && jobs[i])
+           itrace("delete_all_jobs: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+         if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i))))
+           delete_job (i, DEL_WARNSTOPPED);
+       }
+      if (running_only == 0)
+       {
+         free ((char *)jobs);
+         js.j_jobslots = 0;
+         js.j_firstj = js.j_lastj = js.j_njobs = 0;
+       }
+    }
+
+  if (running_only == 0)
+    bgp_clear ();
+
+  UNBLOCK_CHILD (oset);
+}
+
+/* Mark all jobs in the job array so that they don't get a SIGHUP when the
+   shell gets one.  If RUNNING_ONLY is nonzero, mark only running jobs. */
+void
+nohup_all_jobs (running_only)
+     int running_only;
+{
+  register int i;
+  sigset_t set, oset;
+
+  BLOCK_CHILD (set, oset);
+
+  if (js.j_jobslots)
+    {
+      /* XXX could use js.j_firstj here */
+      for (i = 0; i < js.j_jobslots; i++)
+       if (jobs[i] && (running_only == 0 || (running_only && RUNNING(i))))
+         nohup_job (i);
+    }
+
+  UNBLOCK_CHILD (oset);
+}
+
+int
+count_all_jobs ()
+{
+  int i, n;
+  sigset_t set, oset;
+
+  /* This really counts all non-dead jobs. */
+  BLOCK_CHILD (set, oset);
+  /* XXX could use js.j_firstj here */
+  for (i = n = 0; i < js.j_jobslots; i++)
+    {
+#if defined (DEBUG)
+      if (i < js.j_firstj && jobs[i])
+       itrace("count_all_jobs: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+      if (i > js.j_lastj && jobs[i])
+       itrace("count_all_jobs: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+      if (jobs[i] && DEADJOB(i) == 0)
+       n++;
+    }
+  UNBLOCK_CHILD (oset);
+  return n;
+}
+
+static void
+mark_all_jobs_as_dead ()
+{
+  register int i;
+  sigset_t set, oset;
+
+  if (js.j_jobslots == 0)
+    return;
+
+  BLOCK_CHILD (set, oset);
+
+  /* XXX could use js.j_firstj here */
+  for (i = 0; i < js.j_jobslots; i++)
+    if (jobs[i])
+      {
+       jobs[i]->state = JDEAD;
+       js.j_ndead++;
+      }
+
+  UNBLOCK_CHILD (oset);
+}
+
+/* Mark all dead jobs as notified, so delete_job () cleans them out
+   of the job table properly.  POSIX.2 says we need to save the
+   status of the last CHILD_MAX jobs, so we count the number of dead
+   jobs and mark only enough as notified to save CHILD_MAX statuses. */
+static void
+mark_dead_jobs_as_notified (force)
+     int force;
+{
+  register int i, ndead, ndeadproc;
+  sigset_t set, oset;
+
+  if (js.j_jobslots == 0)
+    return;
+
+  BLOCK_CHILD (set, oset);
+
+  /* If FORCE is non-zero, we don't have to keep CHILD_MAX statuses
+     around; just run through the array. */
+  if (force)
+    {
+    /* XXX could use js.j_firstj here */
+      for (i = 0; i < js.j_jobslots; i++)
+       {
+         if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid)))
+           jobs[i]->flags |= J_NOTIFIED;
+       }
+      UNBLOCK_CHILD (oset);
+      return;
+    }
+
+  /* Mark enough dead jobs as notified to keep CHILD_MAX processes left in the
+     array with the corresponding not marked as notified.  This is a better
+     way to avoid pid aliasing and reuse problems than keeping the POSIX-
+     mandated CHILD_MAX jobs around.  delete_job() takes care of keeping the
+     bgpids list regulated. */
+          
+  /* Count the number of dead jobs */
+  /* XXX could use js.j_firstj here */
+  for (i = ndead = ndeadproc = 0; i < js.j_jobslots; i++)
+    {
+#if defined (DEBUG)
+      if (i < js.j_firstj && jobs[i])
+       itrace("mark_dead_jobs_as_notified: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+      if (i > js.j_lastj && jobs[i])
+       itrace("mark_dead_jobs_as_notified: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+      if (jobs[i] && DEADJOB (i))
+       {
+         ndead++;
+         ndeadproc += processes_in_job (i);
+       }
+    }
+
+#ifdef DEBUG
+  if (ndeadproc != js.c_reaped)
+    itrace("mark_dead_jobs_as_notified: ndeadproc (%d) != js.c_reaped (%d)", ndeadproc, js.c_reaped);
+  if (ndead != js.j_ndead)
+    itrace("mark_dead_jobs_as_notified: ndead (%d) != js.j_ndead (%d)", ndead, js.j_ndead);
+#endif
+
+  if (js.c_childmax < 0)
+    js.c_childmax = getmaxchild ();
+  if (js.c_childmax < 0)
+    js.c_childmax = DEFAULT_CHILD_MAX;
+
+  /* Don't do anything if the number of dead processes is less than CHILD_MAX
+     and we're not forcing a cleanup. */
+  if (ndeadproc <= js.c_childmax)
+    {
+      UNBLOCK_CHILD (oset);
+      return;
+    }
+
+#if 0
+itrace("mark_dead_jobs_as_notified: child_max = %d ndead = %d ndeadproc = %d", js.c_childmax, ndead, ndeadproc);
+#endif
+
+  /* Mark enough dead jobs as notified that we keep CHILD_MAX jobs in
+     the list.  This isn't exactly right yet; changes need to be made
+     to stop_pipeline so we don't mark the newer jobs after we've
+     created CHILD_MAX slots in the jobs array.  This needs to be
+     integrated with a way to keep the jobs array from growing without
+     bound.  Maybe we wrap back around to 0 after we reach some max
+     limit, and there are sufficient job slots free (keep track of total
+     size of jobs array (js.j_jobslots) and running count of number of jobs
+     in jobs array.  Then keep a job index corresponding to the `oldest job'
+     and start this loop there, wrapping around as necessary.  In effect,
+     we turn the list into a circular buffer. */
+  /* XXX could use js.j_firstj here */
+  for (i = 0; i < js.j_jobslots; i++)
+    {
+      if (jobs[i] && DEADJOB (i) && (interactive_shell || (find_last_pid (i, 0) != last_asynchronous_pid)))
+       {
+#if defined (DEBUG)
+         if (i < js.j_firstj && jobs[i])
+           itrace("mark_dead_jobs_as_notified: job %d non-null before js.j_firstj (%d)", i, js.j_firstj);
+         if (i > js.j_lastj && jobs[i])
+           itrace("mark_dead_jobs_as_notified: job %d non-null after js.j_lastj (%d)", i, js.j_lastj);
+#endif
+         /* If marking this job as notified would drop us down below
+            child_max, don't mark it so we can keep at least child_max
+            statuses.  XXX -- need to check what Posix actually says
+            about keeping statuses. */
+         if ((ndeadproc -= processes_in_job (i)) <= js.c_childmax)
+           break;
+         jobs[i]->flags |= J_NOTIFIED;
+       }
+    }
+
+  UNBLOCK_CHILD (oset);
+}
+
+/* Here to allow other parts of the shell (like the trap stuff) to
+   unfreeze the jobs list. */
+void
+unfreeze_jobs_list ()
+{
+  jobs_list_frozen = 0;
+}
+
+/* Allow or disallow job control to take place.  Returns the old value
+   of job_control. */
+int
+set_job_control (arg)
+     int arg;
+{
+  int old;
+
+  old = job_control;
+  job_control = arg;
+
+  /* If we're turning on job control, reset pipeline_pgrp so make_child will
+     put new child processes into the right pgrp */
+  if (job_control != old && job_control)
+    pipeline_pgrp = 0;
+
+  return (old);
+}
+
+/* Turn off all traces of job control.  This is run by children of the shell
+   which are going to do shellsy things, like wait (), etc. */
+void
+without_job_control ()
+{
+  stop_making_children ();
+  start_pipeline ();
+#if defined (PGRP_PIPE)
+  sh_closepipe (pgrp_pipe);
+#endif
+  delete_all_jobs (0);
+  set_job_control (0);
+}
+
+/* If this shell is interactive, terminate all stopped jobs and
+   restore the original terminal process group.  This is done
+   before the `exec' builtin calls shell_execve. */
+void
+end_job_control ()
+{
+  if (interactive_shell)               /* XXX - should it be interactive? */
+    {
+      terminate_stopped_jobs ();
+
+      if (original_pgrp >= 0)
+       give_terminal_to (original_pgrp, 1);
+    }
+
+  if (original_pgrp >= 0)
+    setpgid (0, original_pgrp);
+}
+
+/* Restart job control by closing shell tty and reinitializing.  This is
+   called after an exec fails in an interactive shell and we do not exit. */
+void
+restart_job_control ()
+{
+  if (shell_tty != -1)
+    close (shell_tty);
+  initialize_job_control (0);
+}
+
+/* Set the handler to run when the shell receives a SIGCHLD signal. */
+void
+set_sigchld_handler ()
+{
+  set_signal_handler (SIGCHLD, sigchld_handler);
+}
+
+#if defined (PGRP_PIPE)
+/* Read from the read end of a pipe.  This is how the process group leader
+   blocks until all of the processes in a pipeline have been made. */
+static void
+pipe_read (pp)
+     int *pp;
+{
+  char ch;
+
+  if (pp[1] >= 0)
+    {
+      close (pp[1]);
+      pp[1] = -1;
+    }
+
+  if (pp[0] >= 0)
+    {
+      while (read (pp[0], &ch, 1) == -1 && errno == EINTR)
+       ;
+    }
+}
+
+/* Functional interface closes our local-to-job-control pipes. */
+void
+close_pgrp_pipe ()
+{
+  sh_closepipe (pgrp_pipe);
+}
+
+#endif /* PGRP_PIPE */
diff --git a/parse.y b/parse.y
index 3e93c016909bd6858258329bb327778bcbf4769d..e76c639b14e9d0e008938dac1589956ee9384169 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -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
index 4d75570e83cedd3e2f7d3385ee2fabfcb6195d0f..d535b5aa9d80bc87b55a238ca696a91ef6b0e0f1 100644 (file)
--- a/parse.y~
+++ b/parse.y~
@@ -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:
index 986c4ce59075febea8bc10e36266204de5881b80..db6a9e4720b7b40f626752e5a9a57c893cc34c9c 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,14 +1,18 @@
 # Czech tranlation for bash.
 # Copyright (C) 2008 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
-# Petr Pisar <petr.pisar@atlas.cz>, 2008.
+# Petr Pisar <petr.pisar@atlas.cz>, 2008, 2009.
 #
+# subscript → podskript
+# subroutine → podprogram
+# completition options → možnosti doplňování
+# Názvy signálu a stavů procesu by měly souhlasit se signal(7).
 msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-19 14:53-0500\n"
-"PO-Revision-Date: 2008-09-07 13:09+0200\n"
+"POT-Creation-Date: 2008-08-25 11:13-0400\n"
+"PO-Revision-Date: 2009-02-24 13:26+0100\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -16,86 +20,80 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:49
 msgid "bad array subscript"
 msgstr "chybný podskript pole"
 
-#: arrayfunc.c:313 builtins/declare.def:474
+#: arrayfunc.c:312 builtins/declare.def:467
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: číslované pole nezle převést na pole asociativní"
 
-#: arrayfunc.c:479
+#: arrayfunc.c:478
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: neplatný klíč asociativního pole"
 
-#: arrayfunc.c:481
+#: arrayfunc.c:480
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: přes nečíselný indexu nelze dosadit"
 
-# FIXME: subscript je klicove slovo bashe 4 nebo skutecne podprogram?
-# přiřazuje se do pole nebo pole někam?
-#: arrayfunc.c:517
-#, fuzzy, c-format
+#: arrayfunc.c:516
+#, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s: %s: při přiřazovaní asociativního pole se musí použít podprogram"
+msgstr "%s: %s: při přiřazovaní asociativního pole se musí použít podskript"
 
-#: bashhist.c:379
+#: bashhist.c:382
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nelze vytvořit: %s"
 
-#: bashline.c:3413
+#: bashline.c:3190
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: pro příkaz nelze nalézt klávesovou mapu "
 
-#: bashline.c:3491
+#: bashline.c:3268
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: první nebílý znak není „\"“"
 
-#: bashline.c:3520
+#: bashline.c:3297
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "ne zavírající „%c“ v %s"
 
-#: bashline.c:3554
+#: bashline.c:3331
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: chybí dvojtečkový oddělovač"
 
-#: builtins/bind.def:120 builtins/bind.def:123
-msgid "line editing not enabled"
-msgstr ""
-
-#: builtins/bind.def:206
+#: builtins/bind.def:199
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "„%s“: chybný název klávesové mapy"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:238
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: nelze číst: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:253
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "„%s“: nelze zrušit vazbu"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:288 builtins/bind.def:318
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "„%s“: neznámé jméno funkce"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:296
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s není svázán s žádnou klávesou.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:300
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s lze vyvolat přes "
@@ -108,14 +106,6 @@ msgstr "počet smyček"
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "má smysl jen ve smyčkách „for“, „while“ nebo „until“"
 
-#: builtins/caller.def:133
-#, fuzzy
-msgid ""
-"Returns the context of the current subroutine call.\n"
-"    \n"
-"    Without EXPR, returns "
-msgstr "Vrací kontext aktuálního volání podrutiny."
-
 #: builtins/cd.def:215
 msgid "HOME not set"
 msgstr "není nestavena HOME"
@@ -124,145 +114,130 @@ msgstr "není nestavena HOME"
 msgid "OLDPWD not set"
 msgstr "není nastaveno OLDPWD"
 
-#: builtins/common.c:101
+#: builtins/common.c:107
 #, c-format
 msgid "line %d: "
 msgstr "řádek %d: "
 
-#: builtins/common.c:139 error.c:260
-#, c-format
-msgid "warning: "
-msgstr "varování: "
-
-#: builtins/common.c:153
+#: builtins/common.c:124
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: užití: "
 
-#: builtins/common.c:166 test.c:822
+#: builtins/common.c:137 test.c:822
 msgid "too many arguments"
 msgstr "příliš mnoho argumentů"
 
-#: builtins/common.c:191 shell.c:493 shell.c:774
+#: builtins/common.c:162 shell.c:493 shell.c:774
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: přepínač vyžaduje argument"
 
-#: builtins/common.c:198
+#: builtins/common.c:169
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: vyžadován číselný argument"
 
-#: builtins/common.c:205
+#: builtins/common.c:176
 #, c-format
 msgid "%s: not found"
 msgstr "%s: nenalezeno"
 
-#: builtins/common.c:214 shell.c:787
+#: builtins/common.c:185 shell.c:787
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: chybný přepínač"
 
-#: builtins/common.c:221
+#: builtins/common.c:192
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s: chybný název přepínače"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:199 general.c:231 general.c:236
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "„%s“: není platným identifikátorem"
 
-#: builtins/common.c:238
+#: builtins/common.c:209
 msgid "invalid octal number"
 msgstr "neplatné osmičkové číslo"
 
-#: builtins/common.c:240
+#: builtins/common.c:211
 msgid "invalid hex number"
 msgstr "chybné šestnáctkové číslo"
 
-#: builtins/common.c:242 expr.c:1255
+#: builtins/common.c:213 expr.c:1255
 msgid "invalid number"
 msgstr "chybné číslo"
 
-#: builtins/common.c:250
+#: builtins/common.c:221
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s: chybné určení signálu"
 
-#: builtins/common.c:257
+#: builtins/common.c:228
 #, c-format
 msgid "`%s': not a pid or valid job spec"
 msgstr "„%s“: není PID ani platným označením úlohy"
 
-#: builtins/common.c:264 error.c:453
+#: builtins/common.c:235 error.c:453
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: proměnná pouze pro čtení"
 
-#: builtins/common.c:272
+#: builtins/common.c:243
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s mimo rozsah"
 
-#: builtins/common.c:272 builtins/common.c:274
+#: builtins/common.c:243 builtins/common.c:245
 msgid "argument"
 msgstr "argument"
 
-#: builtins/common.c:274
+#: builtins/common.c:245
 #, c-format
 msgid "%s out of range"
 msgstr "%s mimo rozsah"
 
-#: builtins/common.c:282
+#: builtins/common.c:253
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: žádná taková úloha"
 
-#: builtins/common.c:290
+#: builtins/common.c:261
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: žádné řízení úloh"
 
-#: builtins/common.c:292
+#: builtins/common.c:263
 msgid "no job control"
 msgstr "žádné řízení úloh"
 
-#: builtins/common.c:302
+#: builtins/common.c:273
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: omezeno"
 
-#: builtins/common.c:304
+#: builtins/common.c:275
 msgid "restricted"
 msgstr "omezeno"
 
-#: builtins/common.c:312
+#: builtins/common.c:283
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: není vestavěným příkazem shellu"
 
-#: builtins/common.c:321
+#: builtins/common.c:292
 #, c-format
 msgid "write error: %s"
 msgstr "chyba zápisu: %s"
 
-#: builtins/common.c:329
-#, c-format
-msgid "error setting terminal attributes: %s"
-msgstr ""
-
-#: builtins/common.c:331
-#, c-format
-msgid "error getting terminal attributes: %s"
-msgstr ""
-
-#: builtins/common.c:563
+#: builtins/common.c:523
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: chyba při zjišťování současného adresáře: %s: %s\n"
 
-#: builtins/common.c:629 builtins/common.c:631
+#: builtins/common.c:589 builtins/common.c:591
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: nejednoznačné určení úlohy"
@@ -298,17 +273,17 @@ msgstr "může být použito jen ve funkci"
 msgid "cannot use `-f' to make functions"
 msgstr "„-f“ nezle použít na výrobu funkce"
 
-#: builtins/declare.def:365 execute_cmd.c:4818
+#: builtins/declare.def:365 execute_cmd.c:4696
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkce jen pro čtení"
 
-#: builtins/declare.def:461
+#: builtins/declare.def:454
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: takto nelze likvidovat pole"
 
-#: builtins/declare.def:468
+#: builtins/declare.def:461
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: asociativní pole nelze převést na číslované pole"
@@ -337,7 +312,7 @@ msgstr "%s: není dynamicky nahráno"
 msgid "%s: cannot delete: %s"
 msgstr "%s: nelze smazat: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4553
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -353,7 +328,7 @@ msgstr "%s: není obyčejný soubor"
 msgid "%s: file is too large"
 msgstr "%s: soubor je příliš velký"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4623 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: binární soubor nelze spustit"
@@ -363,12 +338,12 @@ msgstr "%s: binární soubor nelze spustit"
 msgid "%s: cannot execute: %s"
 msgstr "%s: nelze provést: %s"
 
-# FIXME: Toto je literál, jedná se o syntaxi příkazu, který nemá žádné
-# parametry? Nebo se jedná o zprávu shellu při odhlášení?
+# XXX: Toto je zpráva interaktivního shellu při příkazu exit informující
+# o odhlášení
 #: builtins/exit.def:65
-#, fuzzy, c-format
+#, c-format
 msgid "logout\n"
-msgstr "logout\n"
+msgstr "odhlášení\n"
 
 #: builtins/exit.def:88
 msgid "not login shell: use `exit'"
@@ -440,11 +415,8 @@ msgstr[2] "Příkazy shellu shodující se s klíčovými slovy „"
 
 #: builtins/help.def:168
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"žádné téma nápovědy se nehodí pro „%s“. Zkuste „help help“ nebo „man -k %s“ "
-"nebo „info %s“."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "žádné téma nápovědy se nehodí pro „%s“. Zkuste „help help“ nebo „man -k %s“ nebo „info %s“."
 
 #: builtins/help.def:185
 #, c-format
@@ -462,8 +434,7 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Tyto příkazy shellu jsou vnitřně definovány. Napište „help“, aby ste "
-"získali\n"
+"Tyto příkazy shellu jsou vnitřně definovány. Napište „help“, abyste získali\n"
 "tento seznam. Podrobnosti o funkci „název“ získáte příkazem „help název“.\n"
 "Příkazem „info bash“ získáte obecné informace o tomto shellu.\n"
 "Použijte „man -k“ nebo „info“, chcete-li zjistit více o příkazech, které\n"
@@ -480,7 +451,7 @@ msgstr "nelze použít více jak jeden z -anrw"
 msgid "history position"
 msgstr "místo v historii"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: expanze historie selhala"
@@ -507,55 +478,55 @@ msgstr "Neznámá chyba"
 msgid "expression expected"
 msgstr "očekáván výraz"
 
-#: builtins/mapfile.def:241 builtins/read.def:272
+#: builtins/mapfile.def:215 builtins/read.def:271
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: chybné určení deskriptoru souboru"
 
-#: builtins/mapfile.def:249 builtins/read.def:279
+#: builtins/mapfile.def:223 builtins/read.def:278
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: neplatný deskriptor souboru: %s"
 
-#: builtins/mapfile.def:258 builtins/mapfile.def:296
+#: builtins/mapfile.def:232 builtins/mapfile.def:270
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: chybný počet řádků"
 
-#: builtins/mapfile.def:269
+#: builtins/mapfile.def:243
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: chybný počátek pole"
 
-#: builtins/mapfile.def:286
+#: builtins/mapfile.def:260
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: neplatné množství mezi voláními"
 
-#: builtins/mapfile.def:318
+#: builtins/mapfile.def:292
 msgid "empty array variable name"
 msgstr "prázdný název proměnné typu pole"
 
-#: builtins/mapfile.def:339
+#: builtins/mapfile.def:313
 msgid "array variable support required"
 msgstr "je vyžadována podpora proměnných typu pole"
 
-#: builtins/printf.def:367
+#: builtins/printf.def:364
 #, c-format
 msgid "`%s': missing format character"
 msgstr "„%s“: postrádám formátovací znak"
 
-#: builtins/printf.def:544
+#: builtins/printf.def:541
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "„%c“: neplatný formátovací znak"
 
-#: builtins/printf.def:571
+#: builtins/printf.def:568
 #, c-format
 msgid "warning: %s: %s"
 msgstr "varování: %s: %s"
 
-#: builtins/printf.def:750
+#: builtins/printf.def:747
 msgid "missing hex digit for \\x"
 msgstr "u \\x chybí šestnáctková číslovka"
 
@@ -590,12 +561,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Zobrazí seznam právě zapamatovaných adresářů. Adresáře si najdou svoji\n"
@@ -694,24 +663,23 @@ msgstr ""
 "    \t„dirs“, počínaje nulou. Na příklad: „popd +0“ odstraní první\n"
 "    \tadresář, „popd -1“ druhý.\n"
 "    \n"
-"      -N\tOdstraní N. položku počítáno zprava na seznamu zobrazovaném "
-"pomocí\n"
+"      -N\tOdstraní N. položku počítáno zprava na seznamu zobrazovaném pomocí\n"
 "    \t„dirs“, počínaje nulou. Na příklad: „popd -0“ odstraní poslední\n"
 "    \tadresář, „popd -1“ další vedle posledního.\n"
 "    \n"
 "    Zásobník adresářů si můžete prohlédnout příkazem „dirs“."
 
-#: builtins/read.def:248
+#: builtins/read.def:247
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: chybné určení časového limitu"
 
-#: builtins/read.def:574
+#: builtins/read.def:569
 #, c-format
 msgid "read error: %d: %s"
 msgstr "chyba čtení: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:68
 msgid "can only `return' from a function or sourced script"
 msgstr "„return“ lze provést jen z funkce nebo skriptu načteného přes „source“"
 
@@ -743,11 +711,11 @@ msgstr "%s: není funkcí"
 msgid "shift count"
 msgstr "počet shiftů"
 
-#: builtins/shopt.def:254
+#: builtins/shopt.def:250
 msgid "cannot set and unset shell options simultaneously"
 msgstr "přepínač shellu nelze zároveň nastavit a zrušit"
 
-#: builtins/shopt.def:319
+#: builtins/shopt.def:315
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: chybný název přepínače shellu"
@@ -851,6 +819,11 @@ msgstr "poslední příkaz: %s\n"
 msgid "Aborting..."
 msgstr "Ukončuji…"
 
+#: error.c:260
+#, c-format
+msgid "warning: "
+msgstr "varování: "
+
 #: error.c:405
 msgid "unknown command error"
 msgstr "chyba neznámého příkazu"
@@ -877,36 +850,36 @@ msgstr "%s: nevázaná proměnná"
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\ačasový limit pro čekání na vstup vypršel: automatické odhlášení\n"
 
-#: execute_cmd.c:491
+#: execute_cmd.c:483
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "standardní vstup nelze přesměrovat z /dev/null: %s"
 
-#: execute_cmd.c:1112
+#: execute_cmd.c:1079
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c“: chybný formátovací znak"
 
-#: execute_cmd.c:2011
+#: execute_cmd.c:1930
 msgid "pipe error"
 msgstr "chyba v rouře"
 
-#: execute_cmd.c:4363
+#: execute_cmd.c:4243
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: omezeno: v názvu příkazu nesmí být „/“"
 
-#: execute_cmd.c:4454
+#: execute_cmd.c:4334
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: příkaz nenalezen"
 
-#: execute_cmd.c:4708
+#: execute_cmd.c:4586
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: chybný interpretr"
 
-#: execute_cmd.c:4857
+#: execute_cmd.c:4735
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "deskriptor souboru %d nelze duplikovat na deskriptor %d"
@@ -981,7 +954,7 @@ msgstr "%s: chyba výrazu\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: rodičovské adresáře nejsou přístupné"
 
-#: input.c:94 subst.c:4559
+#: input.c:94 subst.c:4551
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "na deskriptoru %d nelze resetovat režim nodelay"
@@ -996,147 +969,145 @@ msgstr "nový deskriptor souboru pro vstup bashe z deskr. %d nelze alokovat"
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffer již pro nový deskriptor %d existuje"
 
-#: jobs.c:466
+#: jobs.c:464
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp roury"
 
-#: jobs.c:887
+#: jobs.c:879
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forknutý PID %d se objevil v běžící úloze %d"
 
-#: jobs.c:1005
+#: jobs.c:997
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "mažu pozastavenou úlohu %d se skupinou procesů %ld"
 
-# FIXME: in the_pipeline znamená do nebo v?
-#: jobs.c:1110
-#, fuzzy, c-format
+#: jobs.c:1102
+#, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: proces %5ld (%s) do the_pipeline"
 
-#: jobs.c:1113
+#: jobs.c:1105
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: PID %5ld (%s) označen za stále živého"
 
-#: jobs.c:1401
+#: jobs.c:1393
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: žádný takový PID"
 
-#: jobs.c:1416
+#: jobs.c:1408
 #, c-format
 msgid "Signal %d"
 msgstr "Signál %d"
 
 # FIXME: rod a zkontrolovat následující
-#: jobs.c:1430 jobs.c:1455
+#: jobs.c:1422 jobs.c:1447
 msgid "Done"
 msgstr "Dokonán"
 
-#: jobs.c:1435 siglist.c:122
+#: jobs.c:1427 siglist.c:122
 msgid "Stopped"
 msgstr "Pozastaven"
 
-#: jobs.c:1439
+#: jobs.c:1431
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Pozastaven (%s)"
 
-#: jobs.c:1443
+#: jobs.c:1435
 msgid "Running"
 msgstr "Běží"
 
-#: jobs.c:1457
+#: jobs.c:1449
 #, c-format
 msgid "Done(%d)"
 msgstr "Dokonán (%d)"
 
-# FIXME: Jedná se o způsob ukončení zavoláním funkce exit(%d)?
-#: jobs.c:1459
-#, fuzzy, c-format
+#: jobs.c:1451
+#, c-format
 msgid "Exit %d"
-msgstr "Exit %d"
+msgstr "Ukončen %d"
 
-#: jobs.c:1462
+#: jobs.c:1454
 msgid "Unknown status"
 msgstr "Stav neznámý"
 
-#: jobs.c:1549
+#: jobs.c:1541
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped [obraz paměti uložen]) "
 
-#: jobs.c:1568
+#: jobs.c:1560
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (cwd: %s)"
 
-#: jobs.c:1771
+#: jobs.c:1761
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid na potomku (z %ld na %ld)"
 
-#: jobs.c:2099 nojobs.c:585
+#: jobs.c:2089 nojobs.c:576
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: PID %ld není potomkem tohoto shellu"
 
-#: jobs.c:2326
+#: jobs.c:2316
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Žádný záznam o procesu %ld"
 
-#: jobs.c:2598
+#: jobs.c:2588
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: úloha %d je pozastavena"
 
-#: jobs.c:2820
+#: jobs.c:2810
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: úloha skončila"
 
-#: jobs.c:2829
+#: jobs.c:2819
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: úloha %d je již na pozadí"
 
-#: jobs.c:3492
+#: jobs.c:3482
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: řádek %d: "
 
-#: jobs.c:3506 nojobs.c:814
+#: jobs.c:3496 nojobs.c:805
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped [obraz paměti uložen])"
 
-#: jobs.c:3518 jobs.c:3531
+#: jobs.c:3508 jobs.c:3521
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(cwd nyní: %s)\n"
 
-#: jobs.c:3563
+#: jobs.c:3553
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp selhalo"
 
-#: jobs.c:3623
+#: jobs.c:3613
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: disciplína linky"
 
-#: jobs.c:3633
+#: jobs.c:3623
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3661
+#: jobs.c:3651
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "nelze nastavit skupinu procesů terminálu (%d)"
 
-#: jobs.c:3666
+#: jobs.c:3656
 msgid "no job control in this shell"
 msgstr "žádná správa úloh v tomto shellu"
 
@@ -1155,7 +1126,6 @@ msgstr ""
 "malloc: %s:%d: zbabraný předpoklad\r\n"
 
 #: lib/malloc/malloc.c:313
-#, fuzzy
 msgid "unknown"
 msgstr "není známo"
 
@@ -1270,106 +1240,106 @@ msgstr "„here“ dokument na řádku %d ukončen koncem souboru (požadováno
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: instrukce přesměrování „%d“ mimo rozsah"
 
-#: parse.y:2986 parse.y:3218
+#: parse.y:2982 parse.y:3204
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "neočekávaný konec souboru při hledání znaku odpovídajícímu „%c“"
 
-#: parse.y:3722
+#: parse.y:3708
 msgid "unexpected EOF while looking for `]]'"
 msgstr "neočekávaný konec souboru při hledání „]]“"
 
 # XXX: Condional means condition (adj.) probably. Can English distinguish
 # between the condition (podmínkový) and the code branch (podmíněný)? Check
 # for all "conditional" string occurences.
-#: parse.y:3727
+#: parse.y:3713
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "chyba syntaxe ve výrazu podmínky: neočekávaný token „%s“"
 
-#: parse.y:3731
+#: parse.y:3717
 msgid "syntax error in conditional expression"
 msgstr "chyba syntaxe ve výrazu podmínky"
 
-#: parse.y:3809
+#: parse.y:3795
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "neočekávaný token „%s“, očekávána „)“"
 
-#: parse.y:3813
+#: parse.y:3799
 msgid "expected `)'"
 msgstr "očekávána „)“"
 
-#: parse.y:3841
+#: parse.y:3827
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "neočekávaný argument „%s“ u podmínkového unárního operátoru"
 
-#: parse.y:3845
+#: parse.y:3831
 msgid "unexpected argument to conditional unary operator"
 msgstr "neočekávaný argument u podmínkového unárního operátoru"
 
-#: parse.y:3885
+#: parse.y:3871
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "neočekávaný token „%s“, očekáván podmínkový binární operátor"
 
-#: parse.y:3889
+#: parse.y:3875
 msgid "conditional binary operator expected"
 msgstr "očekáván podmínkový binární operátor"
 
-#: parse.y:3906
+#: parse.y:3892
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "neočekávaný argument „%s„ u podmínkového binárního operátoru"
 
-#: parse.y:3910
+#: parse.y:3896
 msgid "unexpected argument to conditional binary operator"
 msgstr "neočekávaný argument u podmínkového binárního operátoru"
 
-#: parse.y:3921
+#: parse.y:3907
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "neočekávaný token „%c“ v podmínkovém příkazu"
 
-#: parse.y:3924
+#: parse.y:3910
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "neočekávaný token „%s“ v podmínkovém příkazu"
 
-#: parse.y:3928
+#: parse.y:3914
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "neočekávaný token %d v podmínkovém příkazu"
 
-#: parse.y:5195
+#: parse.y:5181
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "chyba syntaxe poblíž neočekávaného tokenu „%s“"
 
-#: parse.y:5213
+#: parse.y:5199
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "chyba syntaxe poblíž „%s“"
 
-#: parse.y:5223
+#: parse.y:5209
 msgid "syntax error: unexpected end of file"
 msgstr "chyba syntaxe: nenadálý konec souboru"
 
-#: parse.y:5223
+#: parse.y:5209
 msgid "syntax error"
 msgstr "chyba syntaxe"
 
-#: parse.y:5285
+#: parse.y:5271
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Shell lze ukončit příkazem „%s“.\n"
 
-#: parse.y:5447
+#: parse.y:5433
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "nenadálý konec souboru při hledání odpovídající „)“"
 
-#: pcomplete.c:1018
+#: pcomplete.c:1016
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "doplňování: funkce „%s“ nenalezena"
@@ -1379,45 +1349,45 @@ msgstr "doplňování: funkce „%s“ nenalezena"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULLOVÝ COMPSPEC"
 
-#: print_cmd.c:285
+#: print_cmd.c:287
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: chybná propojka „%d“"
 
-#: print_cmd.c:1348
+#: print_cmd.c:1347
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c“: chybný formátovací znak"
 
-#: redir.c:105
+#: redir.c:104
 msgid "file descriptor out of range"
 msgstr "deskriptor souboru mimo rozsah"
 
-#: redir.c:148
+#: redir.c:146
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: nejednoznačné přesměrování"
 
-#: redir.c:152
+#: redir.c:150
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: existující soubor nelze přepsat"
 
-#: redir.c:157
+#: redir.c:155
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: omezeno: výstup nelze přesměrovat"
 
-#: redir.c:162
+#: redir.c:160
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "pro „here“ dokument nelze vytvořit dočasný soubor: %s"
 
-#: redir.c:517
+#: redir.c:515
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port není bez síťování podporováno"
 
-#: redir.c:1023
+#: redir.c:992
 msgid "redirection error: cannot duplicate fd"
 msgstr "chyba přesměrování: deskriptor souboru nelze duplikovat"
 
@@ -1434,16 +1404,16 @@ msgstr "/tmp musí být platným názvem pro adresář"
 msgid "%c%c: invalid option"
 msgstr "%c%c: chybný přepínač"
 
-#: shell.c:1638
+#: shell.c:1637
 msgid "I have no name!"
 msgstr "Nemám žádné jméno!"
 
-#: shell.c:1778
+#: shell.c:1777
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, verze %s-(%s)\n"
 
-#: shell.c:1779
+#: shell.c:1778
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1452,43 +1422,41 @@ msgstr ""
 "Použití:\t%s [Dlouhý GNU přepínač] [přepínač]…\n"
 "\t%s [Dlouhý GNU přepínač] [přepínač] skriptový_soubor…\n"
 
-#: shell.c:1781
+#: shell.c:1780
 msgid "GNU long options:\n"
 msgstr "Dlouhé GNU přepínače:\n"
 
-#: shell.c:1785
+#: shell.c:1784
 msgid "Shell options:\n"
 msgstr "Přepínače shellu:\n"
 
-#: shell.c:1786
+#: shell.c:1785
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD nebo -c příkaz nebo -O shopt_přepínač\t(pouze při vyvolání)\n"
 
-#: shell.c:1801
+#: shell.c:1800
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s nebo -o přepínač\n"
 
-#: shell.c:1807
+#: shell.c:1806
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Podrobnosti o přepínačích shellu získáte tím, že napíšete „%s -c \"help set"
-"\"“.\n"
+msgstr "Podrobnosti o přepínačích shellu získáte tím, že napíšete „%s -c \"help set\"“.\n"
 
-#: shell.c:1808
+#: shell.c:1807
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Podrobnosti o příkazech vestavěných do shellu získáte tím, že\n"
 "napište „%s -c help“.\n"
 
-#: shell.c:1809
+#: shell.c:1808
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Chyby nahlásíte příkazem „bashbug“.\n"
 
-#: sig.c:583
+#: sig.c:576
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: neplatná operace"
@@ -1503,9 +1471,7 @@ msgstr "Falešný signál"
 msgid "Hangup"
 msgstr "Linka terminálu zavěšena"
 
-# FIXME: rod a následující
 #: siglist.c:54
-#, fuzzy
 msgid "Interrupt"
 msgstr "Přerušení"
 
@@ -1515,7 +1481,7 @@ msgstr "Ukončení"
 
 #: siglist.c:62
 msgid "Illegal instruction"
-msgstr "Neplatní instrukce"
+msgstr "Neplatná instrukce"
 
 #: siglist.c:66
 msgid "BPT trace/trap"
@@ -1609,10 +1575,8 @@ msgstr "Časovač (profilovací)"
 msgid "Window changed"
 msgstr "Změna okna"
 
-# FIXME: WTF?
-# „Zámek záznamu“ nebo „Zaznamenej zámek“
+# XXX: SIGLOST
 #: siglist.c:170
-#, fuzzy
 msgid "Record lock"
 msgstr "Zámek záznamu"
 
@@ -1670,77 +1634,77 @@ msgstr "Neznámé číslo signálu"
 msgid "Unknown Signal #%d"
 msgstr "Neznámý signál č. %d"
 
-#: subst.c:1181 subst.c:1302
+#: subst.c:1177 subst.c:1298
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "chybná substituce: v %2$s chybí uzavírací „%1$s“"
 
-#: subst.c:2458
+#: subst.c:2450
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: seznam nelze přiřadit do prvku pole"
 
-#: subst.c:4456 subst.c:4472
+#: subst.c:4448 subst.c:4464
 msgid "cannot make pipe for process substitution"
 msgstr "nelze vyrobit rouru za účelem substituce procesu"
 
-#: subst.c:4504
+#: subst.c:4496
 msgid "cannot make child for process substitution"
 msgstr "nelze vytvořit potomka za účelem substituce procesu"
 
-#: subst.c:4549
+#: subst.c:4541
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "pojmenovanou rouru %s nelze otevřít pro čtení"
 
-#: subst.c:4551
+#: subst.c:4543
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "pojmenovanou rouru %s nelze otevřít pro zápis"
 
-#: subst.c:4569
+#: subst.c:4561
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "pojmenovanou rouru %s nelze zdvojit jako deskriptor %d"
 
-#: subst.c:4765
+#: subst.c:4757
 msgid "cannot make pipe for command substitution"
 msgstr "nelze vytvořit rouru pro substituci příkazu"
 
-#: subst.c:4799
+#: subst.c:4791
 msgid "cannot make child for command substitution"
 msgstr "nelze vytvořit potomka pro substituci příkazu"
 
-#: subst.c:4816
+#: subst.c:4808
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: rouru nelze zdvojit jako deskriptor 1"
 
-#: subst.c:5318
+#: subst.c:5310
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametr null nebo nenastaven"
 
-#: subst.c:5608
+#: subst.c:5600
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: výraz podřetězce < 0"
 
-#: subst.c:6660
+#: subst.c:6646
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: chybná substituce"
 
-#: subst.c:6740
+#: subst.c:6722
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: takto nelze přiřazovat"
 
-#: subst.c:7499
+#: subst.c:7441
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "chybná substituce: v %s chybí uzavírací „`“"
 
-#: subst.c:8375
+#: subst.c:8314
 #, c-format
 msgid "no match: %s"
 msgstr "žádná shoda: %s"
@@ -1777,78 +1741,73 @@ msgstr "%s: očekáván binární operátor"
 msgid "missing `]'"
 msgstr "postrádám „]“"
 
-#: trap.c:201
+#: trap.c:200
 msgid "invalid signal number"
 msgstr "neplatné číslo signálu"
 
-#: trap.c:324
+#: trap.c:323
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: chybná hodnota v trap_list[%d]: %p"
 
-#: trap.c:328
+#: trap.c:327
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr "run_pending_traps: obsluha signálu je SIG_DFL, přeposílám %d (%s) sobě"
 
-#: trap.c:372
+#: trap.c:371
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: chybný signál %d"
 
-#: variables.c:358
+#: variables.c:354
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "chyba při importu definice „%s“"
 
-#: variables.c:736
+#: variables.c:732
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "úroveň shellu (%d) příliš vysoká, resetuji na 1"
 
-#: variables.c:1898
+#: variables.c:1891
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: žádný kontext funkce v aktuálním rozsahu"
 
-#: variables.c:3127
+#: variables.c:3120
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: žádný kontext funkce v aktuálním rozsahu"
 
-#: variables.c:3344 variables.c:3353
+#: variables.c:3337 variables.c:3346
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "neplatný znak %d v exportstr pro %s"
 
-#: variables.c:3359
+#: variables.c:3352
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "v exportstr pro %s chybí „=“"
 
-#: variables.c:3794
+#: variables.c:3787
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: hlava shell_variables není kontextem funkce"
 
-#: variables.c:3807
+#: variables.c:3800
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: chybí kontext global_variables"
 
-#: variables.c:3881
+#: variables.c:3874
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: hlava shell_variables není dočasným rozsahem prostředí"
 
 #: version.c:46
 #, fuzzy
-msgid "Copyright (C) 2009 Free Software Foundation, Inc."
-msgstr "Copyright © 2008 Free Software Foundation, Inc."
+msgid "Copyright (C) 2008 Free Software Foundation, Inc."
+msgstr "Copyright © 2009 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86
 #, c-format
@@ -1914,13 +1873,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] název [název…]"
 
 #: builtins.c:51
-msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpvsPVS] [-m klávmapa] [-f soubor] [-q název] [-u název] [-r "
-"klávposl] [-x klávposl:příkaz-shellu] [klávposl:readline-funkce nebo "
-"readline-příkaz]"
+msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpvsPVS] [-m klávmapa] [-f soubor] [-q název] [-u název] [-r klávposl] [-x klávposl:příkaz-shellu] [klávposl:readline-funkce nebo readline-příkaz]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2008,8 +1962,7 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e enázev] [-lnr] [první] [poslední] nebo fc -s [vzor=náhrada] [příkaz]"
+msgstr "fc [-e enázev] [-lnr] [první] [poslední] nebo fc -s [vzor=náhrada] [příkaz]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2028,12 +1981,8 @@ msgid "help [-ds] [pattern ...]"
 msgstr "help [-ds] [vzorek…]"
 
 #: builtins.c:121
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d pozice] [n] nebo history -anrw [jméno_souboru] nebo history "
-"-ps argument [argument…]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d pozice] [n] nebo history -anrw [jméno_souboru] nebo history -ps argument [argument…]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2044,23 +1993,16 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [úloha…]"
 
 #: builtins.c:132
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s sigspec | -n číssig | -sigspec] pid | úloha … nebo kill -l [sigspec]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s sigspec | -n číssig | -sigspec] pid | úloha … nebo kill -l [sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let argument [argument…]"
 
 #: builtins.c:136
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t "
-"timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a pole] [-d oddělovač] [-i text] [-n p_znaků] [-p výzva] [-t "
-"limit] [-u fd] [jméno…]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a pole] [-d oddělovač] [-i text] [-n p_znaků] [-p výzva] [-t limit] [-u fd] [jméno…]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2155,12 +2097,8 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case SLOVO in [VZOR [| VZOR]…) PŘÍKAZY ;;]… esac"
 
 #: builtins.c:192
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if PŘÍKAZY; then PŘÍKAZY; [ elif PŘÍKAZY; then PŘÍKAZY; ]… [ else PŘÍKAZY; ] "
-"fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if PŘÍKAZY; then PŘÍKAZY; [ elif PŘÍKAZY; then PŘÍKAZY; ]… [ else PŘÍKAZY; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2171,95 +2109,67 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until PŘÍKAZY; do PŘÍKAZY; done"
 
 #: builtins.c:198
-msgid "coproc [NAME] command [redirections]"
-msgstr ""
-
-#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function jméno { PŘÍKAZY ; } nebo jméno () { PŘÍKAZY ; }"
 
-#: builtins.c:202
+#: builtins.c:200
 msgid "{ COMMANDS ; }"
 msgstr "{ PŘÍKAZY ; }"
 
-#: builtins.c:204
+#: builtins.c:202
 msgid "job_spec [&]"
 msgstr "úloha [&]"
 
-#: builtins.c:206
+#: builtins.c:204
 msgid "(( expression ))"
 msgstr "(( výraz ))"
 
-#: builtins.c:208
+#: builtins.c:206
 msgid "[[ expression ]]"
 msgstr "[[ výraz ]]"
 
 # XXX: "variable" je literál na seznamy vestavěných příkazů
-#: builtins.c:210
+#: builtins.c:208
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variables – názvy a významy některých proměnných shellu"
 
-#: builtins.c:213
+#: builtins.c:211
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | adresář]"
 
-#: builtins.c:217
+#: builtins.c:215
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:221
+#: builtins.c:219
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:224
+#: builtins.c:222
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [název_volby…]"
 
-#: builtins.c:226
+#: builtins.c:224
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v proměnná] formát [argumenty]"
 
-#: builtins.c:229
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
-"wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
-"[name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-o přepínač] [-A akce] [-G globvzor] [-W "
-"seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S "
-"přípona] [název…]"
+#: builtins.c:227
+msgid "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-o přepínač] [-A akce] [-G globvzor] [-W seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S přípona] [název…]"
 
-#: builtins.c:233
-msgid ""
-"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o přepínač]  [-A akce] [-G globvzor] [-W "
-"seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S "
-"přípona] [slovo]"
+#: builtins.c:231
+msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o přepínač]  [-A akce] [-G globvzor] [-W seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S přípona] [slovo]"
 
-#: builtins.c:237
+#: builtins.c:235
 msgid "compopt [-o|+o option] [name ...]"
-msgstr "compopt [-o|+o přepínač] [název…]"
-
-#: builtins.c:240
-msgid ""
-"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
-"quantum] [array]"
-msgstr ""
-"mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c "
-"množství] [pole]"
+msgstr "compopt [-o|+o možnost] [název…]"
 
-#: builtins.c:242
-#, fuzzy
-msgid ""
-"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
-"quantum] [array]"
-msgstr ""
-"mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c "
-"množství] [pole]"
+#: builtins.c:238
+msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c množství] [pole]"
 
-#: builtins.c:254
+#: builtins.c:250
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2274,19 +2184,16 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Definuje nebo zobrazí aliasy.\n"
 "    \n"
-"    „alias“ bez argumentů vypíše na standardní výstup seznam aliasů ve "
-"znovu\n"
+"    „alias“ bez argumentů vypíše na standardní výstup seznam aliasů ve znovu\n"
 "    použitelném formátu NÁZEV=HODNOTA.\n"
 "    \n"
 "    Jinak bude definován alias pro každý NÁZEV, který má zadanou HODNOTU.\n"
-"    Závěrečná mezera v HODNOTĚ způsobí, že při expanzi bude následující "
-"slovo\n"
+"    Závěrečná mezera v HODNOTĚ způsobí, že při expanzi bude následující slovo\n"
 "    zkontrolováno na substituci aliasů.\n"
 "    \n"
 "    Přepínače:\n"
@@ -2296,7 +2203,7 @@ msgstr ""
 "    alias vrátí pravdu, pokud nebyl zadán NÁZEV, pro který není žádný alias\n"
 "    definován."
 
-#: builtins.c:276
+#: builtins.c:272
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2311,7 +2218,7 @@ msgstr ""
 "      -a\todstraní všechny definice aliasů.    \n"
 "    Vrací úspěch, pokud NÁZEV není neexistující alias."
 
-#: builtins.c:289
+#: builtins.c:285
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2323,24 +2230,20 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
@@ -2359,27 +2262,21 @@ msgstr ""
 "    Přepínače:\n"
 "      -m  klávmapa       Použije KLÁVMAPU jako klávesovou mapu pro trvání\n"
 "                         tohoto příkazu. Možné klávesové mapy jsou emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command a vi-insert.\n"
 "      -l                 Vypíše seznam názvů funkcí.\n"
 "      -P                 Vypíše seznam názvů funkcí a klávesových vazeb.\n"
-"      -p                 Vypíše seznam funkcí a klávesových vazeb ve "
-"formátu,\n"
+"      -p                 Vypíše seznam funkcí a klávesových vazeb ve formátu,\n"
 "                         který lze použít jako vstup.\n"
 "      -S                 Vypíše seznam posloupností kláves,\n"
 "                         které vyvolávají makra, a jejich hodnoty.\n"
 "      -s                 Vypíše seznam posloupností kláves,\n"
-"                         která vyvolávají makra, a jejich hodnoty ve "
-"formátu,\n"
-"                         který lze použít jako vstup.      -"
-"V                 Vypíše seznam názvů proměnných a hodnot.\n"
-"      -v                 Vypíše seznam názvů proměnných a hodnot ve "
-"formátu,\n"
+"                         která vyvolávají makra, a jejich hodnoty ve formátu,\n"
+"                         který lze použít jako vstup.      -V                 Vypíše seznam názvů proměnných a hodnot.\n"
+"      -v                 Vypíše seznam názvů proměnných a hodnot ve formátu,\n"
 "                         který lze použít jako vstup.\n"
 "      -q  název-funkce   Dotáže se, které klávesy vyvolají zadanou funkci.\n"
-"      -u  název-funkce   Zruší všechny vazby na klávesy, které jsou "
-"napojeny\n"
+"      -u  název-funkce   Zruší všechny vazby na klávesy, které jsou napojeny\n"
 "                         na zadanou funkci.\n"
 "      -r  klávposl       Odstraní vazbu na KLÁVPOSL.\n"
 "      -f  soubor         Načte vazby kláves ze SOUBORU.\n"
@@ -2388,10 +2285,9 @@ msgstr ""
 "                         zadána KLÁVPOSL.\n"
 "    \n"
 "    Návratový kód:\n"
-"    bind vrací 0, pokud není zadán nerozpoznaný přepínač nebo nedojde "
-"k chybě."
+"    bind vrací 0, pokud není zadán nerozpoznaný přepínač nebo nedojde k chybě."
 
-#: builtins.c:326
+#: builtins.c:322
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2409,7 +2305,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Návratový kód je 0, pokud N je větší nebo rovno 1."
 
-#: builtins.c:338
+#: builtins.c:334
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2426,14 +2322,13 @@ msgstr ""
 "    Návratový kód:\n"
 "    Návratový kód je 0, pokud N je větší nebo rovno 1."
 
-#: builtins.c:350
+#: builtins.c:346
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2441,8 +2336,7 @@ msgid ""
 msgstr ""
 "Provede vestavěný příkaz shellu.\n"
 "    \n"
-"    Provede VESTAVĚNÝ-PŘÍKAZ-SHELLU s argumenty ARGUMENTY, aniž by se "
-"uplatnilo\n"
+"    Provede VESTAVĚNÝ-PŘÍKAZ-SHELLU s argumenty ARGUMENTY, aniž by se uplatnilo\n"
 "    vyhledávání příkazu. Toto se hodí, když si přejete reimplementovat\n"
 "    vestavěný příkaz shellu jako funkci shellu, avšak potřebujete spustit\n"
 "    vestavěný příkaz uvnitř této funkce.\n"
@@ -2451,7 +2345,7 @@ msgstr ""
 "    Vrací návratový kód VESTAVĚNÉHO-PŘÍKAZU-SHELLU, nebo nepravdu, pokud\n"
 "    VESTAVĚNÝ-PŘÍKAZ-SHELLU není vestavěným příkazem shellu."
 
-#: builtins.c:365
+#: builtins.c:361
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2478,26 +2372,20 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací 0, pokud shell provádí shellovou funkci a VÝRAZ je platný."
 
-#: builtins.c:383
+#: builtins.c:379
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2512,18 +2400,15 @@ msgid ""
 msgstr ""
 "Změní pracovní adresář shellu.\n"
 "    \n"
-"    Změní aktuální adresář na ADR. Implicitní ADR je hodnota proměnné "
-"shellu\n"
+"    Změní aktuální adresář na ADR. Implicitní ADR je hodnota proměnné shellu\n"
 "    HOME.\n"
 "    \n"
 "    Proměnná CDPATH definuje vyhledávací cestu pro adresář obsahující ADR.\n"
 "    Názvy náhradních adresářů v CDPATH se oddělují dvojtečkou (:). Prázdný\n"
-"    název adresáře je stejný jako aktuální adresář. Začíná-li ADR na "
-"lomítko\n"
+"    název adresáře je stejný jako aktuální adresář. Začíná-li ADR na lomítko\n"
 "    (/), nebude CDPATH použita.\n"
 "    \n"
-"    Nebude-li adresář nalezen a přepínač shellu „cdable_vars“ bude "
-"nastaven,\n"
+"    Nebude-li adresář nalezen a přepínač shellu „cdable_vars“ bude nastaven,\n"
 "    pak se dané slovo zkusí jakožto název proměnné. Má-li taková proměnná\n"
 "    hodnotu, pak její hodnota se použije jako ADR.\n"
 "    \n"
@@ -2537,7 +2422,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací 0, byl-li adresář změněn, jinak nenulovou hodnotu."
 
-#: builtins.c:411
+#: builtins.c:407
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2565,7 +2450,7 @@ msgstr ""
 "    Vrací 0, nebyl-li zadán neplatný přepínač a mohl-li být současný\n"
 "    adresář přečten."
 
-#: builtins.c:428
+#: builtins.c:424
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2581,7 +2466,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:439
+#: builtins.c:435
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2593,7 +2478,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:448
+#: builtins.c:444
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2605,13 +2490,12 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy selže."
 
-#: builtins.c:457
+#: builtins.c:453
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2625,10 +2509,8 @@ msgid ""
 msgstr ""
 "Provede jednoduchý příkaz nebo zobrazí podrobnosti o příkazech.\n"
 "    \n"
-"    Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu, nebo zobrazí "
-"informace\n"
-"    o zadaných PŘÍKAZECH. Lze využít, když je třeba vyvolat příkazy "
-"z disku,\n"
+"    Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu, nebo zobrazí informace\n"
+"    o zadaných PŘÍKAZECH. Lze využít, když je třeba vyvolat příkazy z disku,\n"
 "    přičemž existuje funkce stejného jména.\n"
 "    \n"
 "    Přepínače:\n"
@@ -2640,7 +2522,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací návratový kód PŘÍKAZU, nebo selže, nebyl–li příkaz nalezen."
 
-#: builtins.c:476
+#: builtins.c:472
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2668,8 +2550,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2701,14 +2582,13 @@ msgstr ""
 "    Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte příkaz\n"
 "    „let“), jakmile je do proměnné přiřazeno.\n"
 "    \n"
-"    Je-li použito uvnitř funkce, učiní „declare“ NÁZVY lokálními stejně "
-"jako\n"
+"    Je-li použito uvnitř funkce, učiní „declare“ NÁZVY lokálními stejně jako\n"
 "    příkaz „local“.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrací úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:512
+#: builtins.c:508
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2718,7 +2598,7 @@ msgstr ""
 "    \n"
 "    Příkaz je zastaralý. Vizte „help declare“."
 
-#: builtins.c:520
+#: builtins.c:516
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2734,19 +2614,17 @@ msgid ""
 msgstr ""
 "Definuje lokální proměnné.\n"
 "    \n"
-"    Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU. "
-"PŘEPÍNAČ\n"
+"    Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU. PŘEPÍNAČ\n"
 "    smí může být jakýkoliv přepínač přípustný u „declare“\n"
 "    \n"
-"    Lokální proměnné lze použít jen uvnitř funkcí, budou viditelné jen "
-"v dané\n"
+"    Lokální proměnné lze použít jen uvnitř funkcí, budou viditelné jen v dané\n"
 "    funkci a jejich potomcích.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrací úspěch, nebyl-li zadán neplatný přepínač, nenastala-li chyba a\n"
 "    vykonává-li shell funkci."
 
-#: builtins.c:537
+#: builtins.c:533
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2778,15 +2656,12 @@ msgid ""
 msgstr ""
 "Vypíše své argumenty na standardní výstup.\n"
 "    \n"
-"    Zobrazí své ARGUMENTY na standardním výstupu a ukončí je z novým "
-"řádkem.\n"
+"    Zobrazí své ARGUMENTY na standardním výstupu a ukončí je z novým řádkem.\n"
 "    \n"
 "    Přepínače:\n"
 "      -n\tnepřipojuje nový řádek\n"
-"      -e\tzapne interpretování následujících znaků uvozených zpětným "
-"lomítkem\n"
-"      -E\texplicitně potlačí interpretování znaků uvozených zpětným "
-"lomítkem\n"
+"      -e\tzapne interpretování následujících znaků uvozených zpětným lomítkem\n"
+"      -E\texplicitně potlačí interpretování znaků uvozených zpětným lomítkem\n"
 "    \n"
 "    „echo“ interpretuje následující znaky uvozené zpětným lomítkem:\n"
 "      \\a\tpoplach (zvonek)\n"
@@ -2807,7 +2682,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací úspěch, nedojde-li k chybě zápisu na výstup."
 
-#: builtins.c:571
+#: builtins.c:567
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2828,7 +2703,7 @@ msgstr ""
 "    \n"
 "    Vrací úspěch, nedojte-li k chybě zápisu na výstup."
 
-#: builtins.c:586
+#: builtins.c:582
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2861,8 +2736,7 @@ msgstr ""
 "    shellu, aniž byste museli zadávat celou cestu.\n"
 "    \n"
 "    Přepínače:\n"
-"      -a\tvypíše seznam vestavěných příkazů a vyznačí, který je a který "
-"není\n"
+"      -a\tvypíše seznam vestavěných příkazů a vyznačí, který je a který není\n"
 "    \tpovolen\n"
 "      -n\tzakáže každý NÁZEV nebo zobrazí seznam zakázaných vestavěných\n"
 "    \tpříkazů\n"
@@ -2882,12 +2756,11 @@ msgstr ""
 "    Vrací úspěch, je-li NÁZEV vestavěným příkazem shellu a nevyskytne-li\n"
 "    se chyba."
 
-#: builtins.c:614
+#: builtins.c:610
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2900,7 +2773,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí návratový kód příkazu, nebo úspěch, byl-li příkaz prázdný."
 
-#: builtins.c:626
+#: builtins.c:622
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2956,17 +2829,13 @@ msgstr ""
 "    skript. Pokud přepínač vyžaduje argument, getopts umístí tento argument\n"
 "    do proměnné shellu OPTARG.\n"
 "    \n"
-"    getopts hlásí chyby jedním ze dvou způsobů. Pokud prvním znakem "
-"OPTSTRING\n"
+"    getopts hlásí chyby jedním ze dvou způsobů. Pokud prvním znakem OPTSTRING\n"
 "    je dvojtečka, getopts hlásí chyby tichým způsobem. V tomto režimu žádné\n"
 "    chybové zprávy nejsou vypisovány. Když se narazí na neplatný přepínač,\n"
-"    getopts umístí tento znak do OPTARG. Pokud není nalezen povinný "
-"argument,\n"
-"    getopts umístí „:“ do NAME a OPTARG nastaví na znak nalezeného "
-"přepínače.\n"
+"    getopts umístí tento znak do OPTARG. Pokud není nalezen povinný argument,\n"
+"    getopts umístí „:“ do NAME a OPTARG nastaví na znak nalezeného přepínače.\n"
 "    Pokud getopts nepracuje v tomto tichém režimu a je nalezen neplatný\n"
-"    přepínač, getopts umístí „?“ do NAME a zruší OPTARG. Když nenajde "
-"povinný\n"
+"    přepínač, getopts umístí „?“ do NAME a zruší OPTARG. Když nenajde povinný\n"
 "    argument, je do NAME zapsán „?“, OPTARG zrušen a vytištěna diagnostická\n"
 "    zpráva.\n"
 "    \n"
@@ -2974,22 +2843,19 @@ msgstr ""
 "    chybových zpráv, dokonce i když první znak OPTSTRING není dvojtečka.\n"
 "    Implicitní hodnota OPTERR je 1.\n"
 "    \n"
-"    Normálně getopts zpracovává poziční parametry ($0–$9), avšak následuje-"
-"li\n"
+"    Normálně getopts zpracovává poziční parametry ($0–$9), avšak následuje-li\n"
 "    getopts více argumentů, budou rozebrány tyto namísto pozičních.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí úspěch, byl-li nalezen nějaký přepínač. Neúspěch vrátí, když "
-"dojde\n"
+"    Vrátí úspěch, byl-li nalezen nějaký přepínač. Neúspěch vrátí, když dojde\n"
 "    na konec přepínačů nebo nastane-li chyba."
 
-#: builtins.c:668
+#: builtins.c:664
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2997,20 +2863,16 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Nahradí shell zadaným příkazem.\n"
 "    \n"
-"    Vykoná PŘÍKAZ, přičemž nahradí tento shell zadaným programem.  "
-"ARGUMENTY\n"
-"    se stanou argumenty PŘÍKAZU. Není-li PŘÍKAZ zadán, přesměrování "
-"zapůsobí\n"
+"    Vykoná PŘÍKAZ, přičemž nahradí tento shell zadaným programem.  ARGUMENTY\n"
+"    se stanou argumenty PŘÍKAZU. Není-li PŘÍKAZ zadán, přesměrování zapůsobí\n"
 "    v tomto shellu.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3024,7 +2886,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud byl PŘÍKAZ nalezen a nedošlo k chybě přesměrování."
 
-#: builtins.c:689
+#: builtins.c:685
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3036,12 +2898,11 @@ msgstr ""
 "    Ukončí tento shell se stavem N. Bez N bude návratový kód roven kódu\n"
 "    posledně prováděného příkazu."
 
-#: builtins.c:698
+#: builtins.c:694
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Ukončí přihlašovací shell.\n"
@@ -3049,19 +2910,17 @@ msgstr ""
 "    Ukončí přihlašovací (login) shell se stavem N. Nebyl-li příkaz zavolán\n"
 "    z přihlašovacího shellu, vrátí chybu."
 
-#: builtins.c:708
+#: builtins.c:704
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3075,14 +2934,12 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "Zobrazí nebo vykoná příkazy ze seznamu historie.\n"
 "    \n"
 "    fc se používá na vypsání, úpravu a znovu provedení příkazů ze seznamu\n"
-"    historie. PRVNÍ a POSLEDNÍ mohou být čísla určující rozsah nebo PRVNÍ "
-"může být\n"
+"    historie. PRVNÍ a POSLEDNÍ mohou být čísla určující rozsah nebo PRVNÍ může být\n"
 "    řetězec, což určuje nejnovější příkaz začínající na zadaný řetězec.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3094,15 +2951,14 @@ msgstr ""
 "    Forma příkazu „fc -s [vzor=náhrada… [příkaz]“ znamená, že PŘÍKAZ bude\n"
 "    po nahrazení STARÝ=NOVÝ znovu vykonán.\n"
 "    \n"
-"    Užitečný alias je r='fc -s', takže napsání „r cc“ spustí poslední "
-"příkaz\n"
+"    Užitečný alias je r='fc -s', takže napsání „r cc“ spustí poslední příkaz\n"
 "    začínající na „cc“ a zadání „r“ znovu spustí poslední příkaz.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch nebo kód provedeného příkazu. Nenulový kód, vyskytne-li se\n"
 "    chyba."
 
-#: builtins.c:738
+#: builtins.c:734
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3115,22 +2971,19 @@ msgid ""
 msgstr ""
 "Přepne úlohu na popředí.\n"
 "    \n"
-"    Přesune úlohu určenou pomocí ÚLOHA na popředí a učiní ji aktuální "
-"úlohou.\n"
+"    Přesune úlohu určenou pomocí ÚLOHA na popředí a učiní ji aktuální úlohou.\n"
 "    Není-li ÚLOHA zadána, použije se úloha, o které si shell myslí, že je\n"
 "    aktuální.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Kód úlohy přesunuté do popředí, nebo došlo-li k chybě, kód selhání."
 
-#: builtins.c:753
+#: builtins.c:749
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3145,13 +2998,12 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud je správa úloh zapnuta a nedošlo-li k nějaké chybě."
 
-#: builtins.c:767
+#: builtins.c:763
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3170,10 +3022,8 @@ msgid ""
 msgstr ""
 "Zapamatuje si nebo zobrazí umístění programu.\n"
 "    \n"
-"    Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována. Nejsou-"
-"li\n"
-"    zadány žádné argumenty, budou vypsány informace o zapamatovaných "
-"příkazech.\n"
+"    Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována. Nejsou-li\n"
+"    zadány žádné argumenty, budou vypsány informace o zapamatovaných příkazech.\n"
 "    \n"
 "    Přepínače:\n"
 "      -d\t\tzapomene zapamatovaná umístění každého NÁZVU\n"
@@ -3189,7 +3039,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud byl NÁZEV nalezen a nebyl-li zadán neplatný přepínač."
 
-#: builtins.c:792
+#: builtins.c:788
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3207,14 +3057,12 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Zobrazí podrobnosti o vestavěných příkazech.\n"
 "    \n"
 "    Zobrazí stručný souhrn vestavěných příkazů. Je-li zadán VZOREK,\n"
-"    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak "
-"je\n"
+"    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak je\n"
 "    vytištěn seznam syntaxe vestavěných příkazů.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3230,7 +3078,7 @@ msgstr ""
 "    Vrací úspěch, pokud byl nalezen VZOREK a nebyl zadán neplatný přepínač."
 
 # FIXME: bash-4.0-pre1: Orphaned line between -w and -p option. It belongs to -n.
-#: builtins.c:816
+#: builtins.c:812
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3257,8 +3105,7 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3282,20 +3129,17 @@ msgstr ""
 "    \taniž by cokoliv uložil do seznamu historie\n"
 "      -s\tpřipojí ARGUMENTY do seznamu historie jako jednu položku\n"
 "    \n"
-"    Je-li zadán JMÉNO_SOUBORU, tak ten je použit jako soubor historie. "
-"Jinak\n"
+"    Je-li zadán JMÉNO_SOUBORU, tak ten je použit jako soubor historie. Jinak\n"
 "    pokud $HISTFILE má hodnotu, tato je použita, jinak ~/.bash_history.\n"
 "    \n"
-"    Je-li proměnná $HISTTIMEFORMAT nastavena a není-li prázdná, její "
-"hodnota\n"
+"    Je-li proměnná $HISTTIMEFORMAT nastavena a není-li prázdná, její hodnota\n"
 "    se použije jako formátovací řetězec pro strftime(3) při výpisu časových\n"
-"    razítek spojených s každou položkou historie. Jinak žádná časová "
-"razítka\n"
+"    razítek spojených s každou položkou historie. Jinak žádná časová razítka\n"
 "    nebudou vypisována.    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:852
+#: builtins.c:848
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3330,17 +3174,14 @@ msgstr ""
 "      -r\tzúží výstup jen na běžící úlohy\n"
 "      -s\tzúží výstup jen na pozastavené úlohy\n"
 "    \n"
-"    Je-li použito -x, bude spuštěn příkaz, jakmile všechny úlohy uvedené "
-"mezi\n"
-"    ARGUMENTY budou nahrazeny ID procesu, který je vedoucím skupiny dané "
-"úlohy.\n"
+"    Je-li použito -x, bude spuštěn příkaz, jakmile všechny úlohy uvedené mezi\n"
+"    ARGUMENTY budou nahrazeny ID procesu, který je vedoucím skupiny dané úlohy.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se "
-"chyba.\n"
+"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba.\n"
 "    Byl-ly použit přepínač -x, vrátí návratový kód PŘÍKAZU."
 
-#: builtins.c:879
+#: builtins.c:875
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3370,7 +3211,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo ÚLOHA."
 
-#: builtins.c:898
+#: builtins.c:894
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3394,8 +3235,7 @@ msgstr ""
 "Zašle signál úloze.\n"
 "    \n"
 "    Zašle procesu určeném PID (nebo ÚLOHOU) signál zadaný pomocí SIGSPEC\n"
-"    nebo ČÍSSIG. Není-li SIGSPEC ani ČÍSSIG zadán, pak se předpokládá "
-"SIGTERM.\n"
+"    nebo ČÍSSIG. Není-li SIGSPEC ani ČÍSSIG zadán, pak se předpokládá SIGTERM.\n"
 "    \n"
 "    Přepínače:\n"
 "      -s sig\tSIG je název signálu\n"
@@ -3411,15 +3251,14 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:921
+#: builtins.c:917
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3485,10 +3324,8 @@ msgstr ""
 "    \t&=, ^=, |=\tpřiřazení\n"
 "    \n"
 "    Proměnné shellu jsou povolené operandy. Název proměnné je uvnitř výrazu\n"
-"    nahrazen její hodnotou (s automatickým převodem na celé číslo pevné "
-"šířky).\n"
-"    Proměnná nemusí mít atribut integer (číslo) zapnutý, aby byla "
-"použitelná\n"
+"    nahrazen její hodnotou (s automatickým převodem na celé číslo pevné šířky).\n"
+"    Proměnná nemusí mít atribut integer (číslo) zapnutý, aby byla použitelná\n"
 "    ve výrazu.\n"
 "    \n"
 "    Operátory se vyhodnocují v pořadí přednosti. Podvýrazy v závorkách jsou\n"
@@ -3498,22 +3335,19 @@ msgstr ""
 "    Pokud poslední ARGUMENT je vyhodnocen na 0, let vrátí 1. Jinak je\n"
 "    navrácena 0."
 
-#: builtins.c:966
+#: builtins.c:962
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3528,51 +3362,47 @@ msgid ""
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input "
-"is\n"
+"      -t timeout\ttime out and return failure if a complete line of input is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
-"    \t\texit status is greater than 128 if the timeout is exceeded\n"
+"    \t\tfractional number.  The exit status is greater than 128 if\n"
+"    \t\tthe timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
-"Načte ze standardního vstupu jeden řádek a rozdělí jej na pole.\n"
+"Načte ze standardního vstupu jeden řádek a rozdělí jej na položy.\n"
 "    \n"
 "    Ze standardního vstupu, nebo deskriptoru souboru FD, je-li zadán\n"
-"    přepínač -u, je načten jeden řádek. Řádek se rozdělí ba pole jako při\n"
-"    dělení na slova a první slovo je přiřazeno do prvního JMÉNA, druhé "
-"slovo\n"
+"    přepínač -u, je načten jeden řádek. Řádek se rozdělí na části jako při\n"
+"    dělení na slova a první slovo je přiřazeno do prvního JMÉNA, druhé slovo\n"
 "    do druhého JMÉNA a tak dále, přičemž přebývající slova se přiřadí do\n"
 "    posledního JMÉNA. Pouze znaky uvedené v $IFS jsou považovány za\n"
 "    oddělovače slov.\n"
 "    \n"
-"    Nejsou-li uvedeny žádná JMÉNA, načtený řádek bude uložen do proměnné "
-"REPLY.\n"
+"    Nejsou-li uvedeny žádná JMÉNA, načtený řádek bude uložen do proměnné REPLY.\n"
 "    \n"
 "    Přepínače:\n"
 "      -a pole\tnačtená slova budou přiřazena do postupných prvků POLE\n"
 "    \t\tpočínaje nulou\n"
-"      -d oddělovač\tpokračuje, dokud se není načten první znak ODDĚLOVAČE\n"
+"      -d oddělovač\tpokračuje, dokud není načten první znak ODDĚLOVAČE\n"
 "    \t\tnamísto nového řádku\n"
 "      -e\t\tv interaktivním shellu bude řádek načten pomocí Readline\n"
 "      -i text\tpoužije TEXT jako prvotní text pro Readline\n"
 "      -n p_znaků\tvrátí řízení po načtení P_ZNAKŮ znaků, aniž by čekal na\n"
 "    \t\tnový řádek\n"
-"      -p výzva\tvypíše řetězec VÝZVA bez závěrečného nového řádku,\n"
-"    \t\tdříve než se zahájí načítání\n"
+"      -p výzva\tvypíše řetězec VÝZVA bez závěrečného nového řádku dříve,\n"
+"    \t\tnež se zahájí načítání\n"
 "      -r\t\tnepovolí zpětná lomítka pro escapování jakýchkoliv znaků\n"
 "      -s\t\tvstup pocházející z terminálu nebude zobrazován\n"
 "      -t limit\tumožní vypršení časového limitu a vrácení chyby, pokud\n"
 "    \t\tnebude načten celý řádek do LIMIT sekund. Hodnota proměnné\n"
-"    \t\tTMOUT představuje implicitní limit. TIMEOUT smí být desetinné\n"
-"    \t\tčíslo. Návratový kód bude větší než 128, pokud časový limit\n"
-"    \t\tvyprší.\n"
+"    \t\tTIMOUT představuje implicitní limit. TIMEOUT smí být desetinné\n"
+"    \t\tčíslo. Je-li TIMEOUT 0, read vrátí úspěch, jen bude-li na zadaném\n"
+"    \t\tdeskriptoru souboru připraven vstup. Návratový kód bude větší než\n"
+"    \t\t128, pokud časový limit bude překročen.\n"
 "      -u fd\t\tčte z deskriptoru souboru FD namísto standardního vstupu\n"
 "    \n"
 "    Návratový kód:\n"
@@ -3580,7 +3410,7 @@ msgstr ""
 "    pro čtení nevyprší nebo není poskytnut neplatný deskriptor souboru jako\n"
 "    argument -u."
 
-#: builtins.c:1006
+#: builtins.c:1001
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3593,16 +3423,14 @@ msgid ""
 msgstr ""
 "Návrat z shellové funkce.\n"
 "    \n"
-"    Způsobí ukončení funkce nebo skriptu načteného přes „source“ "
-"s návratovou\n"
-"    hodnotou určenou N. Je-li N vynecháno, návratový kód bude roven "
-"poslednímu\n"
+"    Způsobí ukončení funkce nebo skriptu načteného přes „source“ s návratovou\n"
+"    hodnotou určenou N. Je-li N vynecháno, návratový kód bude roven poslednímu\n"
 "    příkazu vykonanému uvnitř dotyčné funkce nebo skriptu.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vrátí N, nebo selže, pokud shell neprovádí funkci nebo skript."
 
-#: builtins.c:1019
+#: builtins.c:1014
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3645,8 +3473,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3685,8 +3512,7 @@ msgid ""
 msgstr ""
 "Nastaví nebo zruší hodnoty přepínačů shellu a pozičních parametrů.\n"
 "    \n"
-"    Změní hodnoty atributům shellu a pozičním parametrům, nebo zobrazí "
-"názvy\n"
+"    Změní hodnoty atributům shellu a pozičním parametrům, nebo zobrazí názvy\n"
 "    a hodnoty proměnných shellu.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3748,7 +3574,7 @@ msgstr ""
 "          při přesměrování výstupu.\n"
 "      -E  Je-li nastaveno, trap ERR (zachytávání chyb) bude děděn do\n"
 "          funkcí shellu.\n"
-"      -H  Zapne ! způsob nahrazování histore. Tento příznak je automaticky\n"
+"      -H  Zapne ! způsob nahrazování historie. Tento příznak je automaticky\n"
 "          zapnut při interaktivním shellu.\n"
 "      -P  Je-li nastaveno, nebudou následovány symbolické odkazy při\n"
 "          provádění příkazů jako změna pracovního adresáře pomocí „cd“.\n"
@@ -3757,10 +3583,8 @@ msgstr ""
 "      -   Přiřadí jakékoliv zbývající argumenty do pozičních parametrů.\n"
 "          Přepínače -x a -v budou vypnuty.\n"
 "    \n"
-"    Použití + místo - způsobí, že tyto příznaky budou vypnuty. Příznaky lze "
-"též\n"
-"    použít při volání shellu. Aktuální množinu příznaků je možno nalézt "
-"v $-.\n"
+"    Použití + místo - způsobí, že tyto příznaky budou vypnuty. Příznaky lze též\n"
+"    použít při volání shellu. Aktuální množinu příznaků je možno nalézt v $-.\n"
 "    Přebývajících n ARGUMENTŮ jsou poziční parametry a budou přiřazeny,\n"
 "    v pořadí, do $1, $2, … $n. Nejsou-li zadány žádné ARGUMENTY, budou\n"
 "    vytištěny všechny proměnné shellu.\n"
@@ -3768,7 +3592,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument."
 
-#: builtins.c:1101
+#: builtins.c:1096
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3778,8 +3602,7 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3795,8 +3618,7 @@ msgstr ""
 "      -f\tpovažuje každé JMÉNO za funkci shellu\n"
 "      -v\tpovažuje každé JMÉNO za proměnnou shellu\n"
 "    \n"
-"    Bez těchto dvou příznaků unset nejprve zkusí zrušit proměnnou a pokud "
-"toto\n"
+"    Bez těchto dvou příznaků unset nejprve zkusí zrušit proměnnou a pokud toto\n"
 "    selže, tak zkusí zrušit funkci.\n"
 "    \n"
 "    Některé proměnné nelze odstranit. Vizte příkaz „readonly“.\n"
@@ -3805,13 +3627,12 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a JMÉNO není jen pro\n"
 "    čtení."
 
-#: builtins.c:1121
+#: builtins.c:1116
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3825,10 +3646,8 @@ msgid ""
 msgstr ""
 "Nastaví atribut exportovat proměnné shellu.\n"
 "    \n"
-"    Každý NÁZEV je označen pro automatické exportování do prostředí "
-"následně\n"
-"    prováděných příkazů. Je-li zadána HODNOTA, před exportem přiřadí "
-"HODNOTU.\n"
+"    Každý NÁZEV je označen pro automatické exportování do prostředí následně\n"
+"    prováděných příkazů. Je-li zadána HODNOTA, před exportem přiřadí HODNOTU.\n"
 "    \n"
 "    Přepínače:\n"
 "      -f\tvztahuje se na funkce shellu\n"
@@ -3840,7 +3659,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV."
 
-#: builtins.c:1140
+#: builtins.c:1135
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3861,10 +3680,8 @@ msgid ""
 msgstr ""
 "Označí proměnné shellu za nezměnitelné.\n"
 "    \n"
-"    Označí každý NÁZEV jako jen pro čtení, hodnoty těchto NÁZVŮ nebude "
-"možné\n"
-"    změnit následným přiřazením. Je-li zadána HODNOTA, před označením za "
-"jen\n"
+"    Označí každý NÁZEV jako jen pro čtení, hodnoty těchto NÁZVŮ nebude možné\n"
+"    změnit následným přiřazením. Je-li zadána HODNOTA, před označením za jen\n"
 "    pro čtení přiřadí HODNOTU.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3878,7 +3695,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV."
 
-#: builtins.c:1161
+#: builtins.c:1156
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3896,7 +3713,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud N není záporný a není větší než $#."
 
-#: builtins.c:1173 builtins.c:1188
+#: builtins.c:1168 builtins.c:1183
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3920,7 +3737,7 @@ msgstr ""
 "    Vrací návratový kód posledního provedeného příkazu z NÁZVU_SOUBORU.\n"
 "    Selže, pokud NÁZEV_SOUBORU nelze načíst."
 
-#: builtins.c:1204
+#: builtins.c:1199
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3944,7 +3761,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací úspěch, pokud je správa úloh zapnuta a nevyskytla se chyba."
 
-#: builtins.c:1220
+#: builtins.c:1215
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3975,8 +3792,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3997,8 +3813,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4054,8 +3869,7 @@ msgstr ""
 "      -N SOUBOR      Pravda, pokud soubor byl změněn po posledním čtení.\n"
 "    \n"
 "      SOUBOR1 -nt SOUBOR2\n"
-"                     Pravda, pokud je SOUBOR1 novější než SOUBOR2 (podle "
-"času\n"
+"                     Pravda, pokud je SOUBOR1 novější než SOUBOR2 (podle času\n"
 "                     změny obsahu).\n"
 "    \n"
 "      SOUBOR1 -ot SOUBOR2\n"
@@ -4102,7 +3916,7 @@ msgstr ""
 "    Vrací úspěch, je-li VÝRAZ vyhodnocen jako pravdivý. Selže, je-li VÝRAZ\n"
 "    vyhodnocen jako nepravdivý nebo je-li zadán neplatný argument."
 
-#: builtins.c:1296
+#: builtins.c:1291
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4114,12 +3928,11 @@ msgstr ""
 "    Toto je synonymum pro vestavěný příkaz „test“, až na to, že poslední\n"
 "    argument musí být doslovně „]“, aby se shodoval s otevírající „[“."
 
-#: builtins.c:1305
+#: builtins.c:1300
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4127,19 +3940,17 @@ msgid ""
 msgstr ""
 "Zobrazí časy procesu.\n"
 "    \n"
-"    Vypíše celkovou dobu procesu shellu a všech jeho potomků, kterou "
-"strávili\n"
+"    Vypíše celkovou dobu procesu shellu a všech jeho potomků, kterou strávili\n"
 "    v uživatelském a jaderném (system) prostoru.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:1317
+#: builtins.c:1312
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4148,26 +3959,22 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
 "    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "Zachytávání signálů a jiných událostí.\n"
 "    \n"
@@ -4175,37 +3982,30 @@ msgstr ""
 "    signály nebo nastanou určité podmínky.\n"
 "    \n"
 "    Příkaz ARGUMENT bude načten a proveden, až shell obdrží signál(y)\n"
-"    SIGNAL_SPEC. Pokud ARGUMENT chybí (a je zadán jeden SIGNAL_SPEC) nebo "
-"je\n"
-"    „-“, každý určený signál bude přenastaven zpět na svoji původní "
-"hodnotu.\n"
-"    Je-li ARGUMENT prázdný řetězec, každý SIGNAL_SPEC bude shellem a "
-"příkazy\n"
+"    SIGNAL_SPEC. Pokud ARGUMENT chybí (a je zadán jeden SIGNAL_SPEC) nebo je\n"
+"    „-“, každý určený signál bude přenastaven zpět na svoji původní hodnotu.\n"
+"    Je-li ARGUMENT prázdný řetězec, každý SIGNAL_SPEC bude shellem a příkazy\n"
 "    z něj spuštěnými ignorován.\n"
 "    \n"
-"    Je-li SIGNAL_SPEC „EXIT (0)“, bude ARGUMENT proveden při ukončování "
-"tohoto\n"
+"    Je-li SIGNAL_SPEC „EXIT (0)“, bude ARGUMENT proveden při ukončování tohoto\n"
 "    shellu. Je-li SIGNAL_SPEC „DEBUG“, bude ARGUMENT proveden před každým\n"
 "    jednoduchým příkazem.\n"
 "    \n"
-"    Nejsou-li poskytnuty žádné argumenty, trap vypíše seznam příkazů "
-"navázaných\n"
+"    Nejsou-li poskytnuty žádné argumenty, trap vypíše seznam příkazů navázaných\n"
 "    na všechny signály.\n"
 "    \n"
 "    Přepínače:\n"
 "      -l\tvypíše seznam jmen signálů a jim odpovídajících čísel\n"
 "      -p\tzobrazí příkazy navázané na každý SIGNAL_SPEC\n"
 "    \n"
-"    Každý SIGNAL_SPEC je buďto jméno signálu ze <signal.h>, nebo číslo "
-"signálu.\n"
-"    U jmen signálů nezáleží na velikosti písmen a předpona SIG je "
-"nepovinná.\n"
+"    Každý SIGNAL_SPEC je buďto jméno signálu ze <signal.h>, nebo číslo signálu.\n"
+"    U jmen signálů nezáleží na velikosti písmen a předpona SIG je nepovinná.\n"
 "    Aktuálnímu shellu lze zaslat signál pomocí „kill -signal $$“.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud SIGSPEC a zadané přepínače jsou platné."
 
-#: builtins.c:1349
+#: builtins.c:1344
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4231,8 +4031,7 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 "Zobrazí informace o typu příkazu.\n"
 "    \n"
@@ -4261,12 +4060,11 @@ msgstr ""
 "    Vrátí úspěch, pokud všechny NÁZVY byly nalezeny. Selže, pokud některé\n"
 "    nalezeny nebyly."
 
-#: builtins.c:1380
+#: builtins.c:1375
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4314,10 +4112,9 @@ msgstr ""
 "      -H\tpoužije se „tvrdé“ (hard) omezení zdroje\n"
 "      -a\tnahlásí všechna současná omezení (limity)\n"
 "      -b\tvelikost vyrovnávací paměti socketů\n"
-"      -c\tmaximální velikost vytvářených core souborů (výpis paměti "
-"programu)\n"
+"      -c\tmaximální velikost vytvářených core souborů (výpis paměti programu)\n"
 "      -d\tmaximální velikost datového segmentu procesu\n"
-"      -e\tmaximální plánovací priorita  („nice“)\n"
+"      -e\tmaximální plánovací priorita („nice“)\n"
 "      -f\tmaximální velikost souborů zapsaných shellem a jeho potomky\n"
 "      -i\tmaximální počet čekajících signálů\n"
 "      -l\tmaximální velikost paměti, kterou může proces zamknout\n"
@@ -4339,13 +4136,12 @@ msgstr ""
 "    přepínač, pak se předpokládá -f.\n"
 "    \n"
 "    Hodnoty jsou v násobcích 1024 bajtů, kromě -t, která je v sekundách,\n"
-"    -p, která je v násobcích 512 bajtů, a -u, což je absolutní počet "
-"procesů.\n"
+"    -p, která je v násobcích 512 bajtů, a -u, což je absolutní počet procesů.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vrací úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1425
+#: builtins.c:1420
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4378,35 +4174,31 @@ msgstr ""
 "    Návratový kód\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný MÓD nebo přepínač."
 
-#: builtins.c:1445
+#: builtins.c:1440
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
 "    Waits for the process identified by ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all "
-"processes\n"
+"    status is zero.  If ID is a a job specification, waits for all processes\n"
 "    in the job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
 "    given."
 msgstr ""
 "Počká na dokončení úlohy a vrátí její návratový kód.\n"
 "    \n"
 "    Počká na proces určený ID, což může být ID procesu nebo identifikace\n"
-"    úlohy, a nahlásí jeho návratový kód. Není-li ID zadáno, počká na "
-"všechny\n"
+"    úlohy, a nahlásí jeho návratový kód. Není-li ID zadáno, počká na všechny\n"
 "    právě aktivní dětské procesy a návratovým kódem bude nula. Je-li ID\n"
 "    identifikátorem úlohy, počká na všechny procesy z kolony úlohy.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný "
-"přepínač."
+"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný přepínač."
 
-#: builtins.c:1463
+#: builtins.c:1458
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4415,22 +4207,19 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
 "    given."
 msgstr ""
 "Počká na dokončení procesu a vrátí jeho návratový kód.\n"
 "    \n"
 "    Počká na zadaný proces a nahlásí jeho návratový kód. Není-li PID zadán,\n"
-"    bude se čekat na všechny právě aktivní procesy potomků a návratová "
-"hodnota\n"
+"    bude se čekat na všechny právě aktivní procesy potomků a návratová hodnota\n"
 "    bude nula. PID musí být ID procesu.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný "
-"přepínač."
+"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný přepínač."
 
-#: builtins.c:1478
+#: builtins.c:1473
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4444,17 +4233,14 @@ msgid ""
 msgstr ""
 "Pro každý prvek seznamu vykoná příkazy.\n"
 "    \n"
-"    Smyčka „for“ provede posloupnost příkazů pro každý prvek v seznamu "
-"položek.\n"
-"    Pokud „in SLOVECH…;“ není přítomno, pak se předpokládá „in \"$@\"“. "
-"NÁZEV\n"
-"    bude postupně nastaven na každý prvek ve SLOVECH a PŘÍKAZY budou "
-"provedeny.\n"
+"    Smyčka „for“ provede posloupnost příkazů pro každý prvek v seznamu položek.\n"
+"    Pokud „in SLOVECH…;“ není přítomno, pak se předpokládá „in \"$@\"“. NÁZEV\n"
+"    bude postupně nastaven na každý prvek ve SLOVECH a PŘÍKAZY budou provedeny.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1492
+#: builtins.c:1487
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4483,7 +4269,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy vykonaného příkazu."
 
-#: builtins.c:1510
+#: builtins.c:1505
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4504,20 +4290,13 @@ msgid ""
 msgstr ""
 "Vybere slova ze seznamu a vykoná příkazy.\n"
 "    \n"
-"    SLOVA jsou expandována a vytvoří seznam slov. Množina expandovaných "
-"slov\n"
-"    je vytištěna na standardní chybový výstup, každé předchází číslo.  Není-"
-"li\n"
-"    „in SLOVA“ přítomno, předpokládá se „in \"$@\"“. Pak je zobrazena výzva "
-"PS3\n"
-"    a jeden řádek načten ze standardního vstupu. Pokud je řádek tvořen "
-"číslem\n"
-"    odpovídajícím jednomu ze zobrazených slov, pak NÁZEV bude nastaven na "
-"toto\n"
-"    slovo. Pokud je řádek prázdný, SLOVA a výzva budou znovu zobrazeny. Je-"
-"li\n"
-"    načten EOF (konec souboru), příkaz končí. Načtení jakékoliv jiné "
-"hodnoty\n"
+"    SLOVA jsou expandována a vytvoří seznam slov. Množina expandovaných slov\n"
+"    je vytištěna na standardní chybový výstup, každé předchází číslo.  Není-li\n"
+"    „in SLOVA“ přítomno, předpokládá se „in \"$@\"“. Pak je zobrazena výzva PS3\n"
+"    a jeden řádek načten ze standardního vstupu. Pokud je řádek tvořen číslem\n"
+"    odpovídajícím jednomu ze zobrazených slov, pak NÁZEV bude nastaven na toto\n"
+"    slovo. Pokud je řádek prázdný, SLOVA a výzva budou znovu zobrazeny. Je-li\n"
+"    načten EOF (konec souboru), příkaz končí. Načtení jakékoliv jiné hodnoty\n"
 "    nastaví NÁZEV na prázdný řetězec. Načtený řádek bude uložen do proměnné\n"
 "    REPLY. Po každém výběru budou provedeny PŘÍKAZY, dokud nebude vykonán\n"
 "    příkaz „break“.\n"
@@ -4525,7 +4304,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy prováděného příkazu."
 
-#: builtins.c:1531
+#: builtins.c:1526
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4543,20 +4322,18 @@ msgstr ""
 "Nahlásí čas spotřebovaný prováděním kolony.\n"
 "    \n"
 "    Vykoná KOLONU a zobrazí přehled reálného času, uživatelského\n"
-"    procesorového času a systémového procesorového času stráveného "
-"prováděním\n"
+"    procesorového času a systémového procesorového času stráveného prováděním\n"
 "    KOLONY poté, co skončí.\n"
 "    \n"
 "    Přepínače:\n"
 "      -p\tzobrazí přehled časů v přenositelném posixovém formátu\n"
 "    \n"
-"    Hodnota proměnné TIMEFORMAT se použije jako specifikace výstupního "
-"formátu.\n"
+"    Hodnota proměnné TIMEFORMAT se použije jako specifikace výstupního formátu.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Návratová hodnota je návratová hodnota KOLONY."
 
-#: builtins.c:1548
+#: builtins.c:1543
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4574,21 +4351,16 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1560
+#: builtins.c:1555
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4597,19 +4369,17 @@ msgstr ""
 "Vykoná příkazy na základě splnění podmínky.\n"
 "    \n"
 "    Provede seznam „if PŘÍKAZŮ“. Bude-li jeho návratový kód nula, pak bude\n"
-"    proveden seznam „then PŘÍKAZŮ“. Jinak bude proveden popořadě každý "
-"seznam\n"
+"    proveden seznam „then PŘÍKAZŮ“. Jinak bude proveden popořadě každý seznam\n"
 "    „elif PŘÍKAZŮ“ a bude-li jeho návratový kód nula, odpovídající seznam\n"
 "    „then PŘÍKAZŮ“ bude proveden a příkaz if skončí. V opačném případě bude\n"
 "    proveden seznam „else PŘÍKAZŮ“, pokud existuje. Návratová hodnota celé\n"
-"    konstrukce je návratovou hodnotou posledního provedeného příkazu nebo "
-"nula,\n"
+"    konstrukce je návratovou hodnotou posledního provedeného příkazu nebo nula,\n"
 "    pokud žádná z testovaných podmínek není pravdivá.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1577
+#: builtins.c:1572
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4621,14 +4391,13 @@ msgid ""
 msgstr ""
 "Vykonává příkazy, dokud test úspěšně prochází.\n"
 "    \n"
-"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve "
-"„while“\n"
+"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve „while“\n"
 "    PŘÍKAZECH má nulový návratový kód.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1589
+#: builtins.c:1584
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4640,32 +4409,17 @@ msgid ""
 msgstr ""
 "Vykonává příkazy, dokud test končí neúspěšně.\n"
 "    \n"
-"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve "
-"„until“\n"
+"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve „until“\n"
 "    PŘÍKAZECH má nenulový návratový kód.    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1601
-msgid ""
-"Create a coprocess named NAME.\n"
-"    \n"
-"    Execute COMMAND asynchronously, with the standard output and standard\n"
-"    input of the command connected via a pipe to file descriptors assigned\n"
-"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
-"    The default NAME is \"COPROC\".\n"
-"    \n"
-"    Exit Status:\n"
-"    Returns the exit status of COMMAND."
-msgstr ""
-
-#: builtins.c:1615
+#: builtins.c:1596
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4675,16 +4429,14 @@ msgstr ""
 "Definuje funkci shellu.\n"
 "    \n"
 "    Vytvoří shellovou funkci pojmenovanou NÁZEV. Volána jakožto jednoduchý\n"
-"    příkaz spustí PŘÍKAZY v kontextu volajícího shellu. Je-li vyvolán "
-"NÁZEV,\n"
-"    budou funkci předány argumenty jako $1…$n a název funkce bude umístěn "
-"do\n"
+"    příkaz spustí PŘÍKAZY v kontextu volajícího shellu. Je-li vyvolán NÁZEV,\n"
+"    budou funkci předány argumenty jako $1…$n a název funkce bude umístěn do\n"
 "    $FUNCNAME.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud NÁZEV není jen pro čtení."
 
-#: builtins.c:1629
+#: builtins.c:1610
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4701,7 +4453,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy spuštěného příkazu."
 
-#: builtins.c:1641
+#: builtins.c:1622
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4717,16 +4469,14 @@ msgstr ""
 "Obnoví úlohu do popředí.\n"
 "    \n"
 "    Ekvivalent k argumentu ÚLOHA příkazu „fg“. Obnoví pozastavenou úlohu\n"
-"    nebo úlohu na pozadí. ÚLOHA může určovat buď název úlohy, nebo číslo "
-"úlohy.\n"
-"    Přidání „&“ za ÚLOHU přesune úlohu na pozadí, jako by identifikátor "
-"úlohy\n"
+"    nebo úlohu na pozadí. ÚLOHA může určovat buď název úlohy, nebo číslo úlohy.\n"
+"    Přidání „&“ za ÚLOHU přesune úlohu na pozadí, jako by identifikátor úlohy\n"
 "    byl argumentem příkazu „bg“.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód obnovené úlohy."
 
-#: builtins.c:1656
+#: builtins.c:1637
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4748,16 +4498,13 @@ msgstr ""
 # příkaz, který by byl vykonán na základě splnění jiné podmínky. Tj. překlad
 # „podmíněný příkaz“ je chybný.
 # Toto je nápověda k vestavěnému příkazu „[“.
-#: builtins.c:1668
+#: builtins.c:1649
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4785,22 +4532,20 @@ msgstr ""
 "      ! VÝRAZ\t\tPravda, pokud VÝRAZ je nepravdivý; jinak nepravda\n"
 "      VÝR1 && VÝR2\tPravda, pokud oba VÝR1 i VÝR2 jsou pravdivé;\n"
 "    \t\tjinak nepravda\n"
-"      VÝR1 || VÝR2\tPravda, pokud VÝR1 nebo VÝR2 je pravdivý; jinak "
-"nepravda\n"
+"      VÝR1 || VÝR2\tPravda, pokud VÝR1 nebo VÝR2 je pravdivý; jinak nepravda\n"
 "    \n"
 "    Jsou-li použity operátory „==“ a „!=“, řetězec napravo od operátoru je\n"
 "    použit jako vzor a bude uplatněno porovnávání proti vzoru. Je-li použit\n"
 "    operátor „=~, řetězec napravo do operátoru je uvažován jako regulární\n"
 "    výraz.\n"
 "    \n"
-"    Operátory && a || nevyhodnocují VÝR2, pokud VÝR1 je dostatečný na "
-"určení\n"
+"    Operátory && a || nevyhodnocují VÝR2, pokud VÝR1 je dostatečný na určení\n"
 "    hodnoty výrazu.\n"
 "    \n"
 "    Návratový kód:\n"
 "    0 nebo 1 podle hodnoty VÝRAZU."
 
-#: builtins.c:1694
+#: builtins.c:1675
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4858,8 +4603,7 @@ msgstr ""
 "    BASH_VERSION\tInformace o verzi tohoto Bashe.\n"
 "    CDPATH\tDvojtečkou oddělený seznam adresářů, který se prohledává\n"
 "    \t\tna adresáře zadané jako argumenty u „cd“.\n"
-"    GLOBIGNORE\tDvojtečkou oddělený seznam vzorů popisujících jména "
-"souborů,\n"
+"    GLOBIGNORE\tDvojtečkou oddělený seznam vzorů popisujících jména souborů,\n"
 "    \t\tkterá budou ignorována při expanzi cest.\n"
 "    HISTFILE\tJméno souboru, kde je uložena historie vašich příkazů.\n"
 "    HISTFILESIZE\tMaximální počet řádků, které tento soubor smí obsahovat.\n"
@@ -4905,7 +4649,7 @@ msgstr ""
 "    \t\trozlišení, které příkazy by měly být uloženy do seznamu\n"
 "    \t\thistorie.\n"
 
-#: builtins.c:1751
+#: builtins.c:1732
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4962,7 +4706,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument a změna adresáře\n"
 "    neselhala."
 
-#: builtins.c:1785
+#: builtins.c:1766
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5012,7 +4756,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument nebo neselhala změna\n"
 "    adresáře."
 
-#: builtins.c:1815
+#: builtins.c:1796
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5029,12 +4773,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5043,8 +4785,7 @@ msgstr ""
 "Zobrazí zásobník adresářů.\n"
 "    \n"
 "    Zobrazí seznam právě pamatovaných adresářů. Adresáře si najdou cestu\n"
-"    na seznam příkazem „pushd“ a procházet seznamem zpět lze příkazem "
-"„popd“.\n"
+"    na seznam příkazem „pushd“ a procházet seznamem zpět lze příkazem „popd“.\n"
 "    \n"
 "    Přepínače:\n"
 "      -c\tvyprázdní zásobník adresářů tím, že smaže všechny jeho prvky\n"
@@ -5063,13 +4804,12 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1844
+#: builtins.c:1825
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not "
-"each\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5086,22 +4826,21 @@ msgstr ""
 "Zapne nebo vypne volby (přepínače) shellu.\n"
 "    \n"
 "    Změní nastavení každého přepínače shellu NÁZEV_VOLBY. Bez přepínačových\n"
-"    argumentů vypíše seznam všech přepínačů shellu s příznakem, zda je, "
-"nebo\n"
+"    argumentů vypíše seznam všech přepínačů shellu s příznakem, zda je, nebo\n"
 "    není nastaven.\n"
 "    Přepínače:\n"
 "      -o\tomezí NÁZVY_VOLEB na ty, které jsou definovány pro použití\n"
 "    \ts „set -o“\n"
 "      -p\tvypíše každou volbu shellu s určením jejího stavu\n"
 "      -q\tpotlačí výstup\n"
-"      -s\tzapne (nastaví) každý NÁZEV_VOLBY\n"
-"      -u\tvypne (odnastaví) každý NÁZEV_VOLBY\n"
+"      -s\tzapne [set] každý NÁZEV_VOLBY\n"
+"      -u\tvypne [unset] každý NÁZEV_VOLBY\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, je-li NÁZEV_VOLBY zapnut. Selže, byl-li zadán neplatný\n"
 "    přepínač nebo je-li NÁZEV_VOLBY vypnut."
 
-#: builtins.c:1865
+#: builtins.c:1846
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5109,25 +4848,20 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1)\n"
+"    In addition to the standard format specifications described in printf(1)\n"
 "    and printf(3), printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Naformátuje a vypíše ARGUMENTY podle definice FORMÁTU.\n"
@@ -5136,13 +4870,10 @@ msgstr ""
 "      -v proměnná\tvýstup umístí do proměnné shellu PROMĚNNÁ namísto\n"
 "    \t\todeslání na standardní výstup.\n"
 "    \n"
-"    FORMÁT je řetězec znaků, který obsahuje tři druhy objektů: obyčejné "
-"znaky,\n"
-"    které jsou prostě zkopírovány na standardní výstup, posloupnosti "
-"escapových\n"
+"    FORMÁT je řetězec znaků, který obsahuje tři druhy objektů: obyčejné znaky,\n"
+"    které jsou prostě zkopírovány na standardní výstup, posloupnosti escapových\n"
 "    znaků, které jsou zkonvertovány a zkopírovány na standardní výstup a\n"
-"    formátovací definice, z nichž každá způsobí vytištění dalšího "
-"argumentu.\n"
+"    formátovací definice, z nichž každá způsobí vytištění dalšího argumentu.\n"
 "    \n"
 "    Tento printf interpretuje vedle standardních formátovacích definic\n"
 "    popsaných v printf(1) a printf(3) též:\n"
@@ -5156,14 +4887,12 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě\n"
 "    zápisu nebo přiřazení."
 
-#: builtins.c:1892
+#: builtins.c:1873
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5188,20 +4917,18 @@ msgstr ""
 "      -r\todstraní pro každý NÁZEV doplňovací pravidlo, nebo není-li zadán\n"
 "    \tžádný NÁZEV, zruší všechna pravidla\n"
 "    \n"
-"    Při doplňování se akce uplatňují v pořadí, v jakém by byla tímto "
-"příkazem\n"
+"    Při doplňování se akce uplatňují v pořadí, v jakém by byla tímto příkazem\n"
 "    vypsána pravidla psaná velkými písmeny.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1915
+#: builtins.c:1896
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5216,24 +4943,13 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-# FIXME: Příkaz compopt je ve verzi 4.0 zcela nový. Je třeba prozkoumat, co
-# přesně dělá, aby bylo možné správně přeložit slovo „option“, tak aby se
-# nepletlo s pomlčkovými přepínači příkazu.
-# FIXME: Je třeba dohledat msgid pro řádek se syntaxí příkazu a patřičně ji
-# opravit.
-# TODO: Tento překlad je vemli kostrbatý a místy nedává smysl. Je třeba
-# ujednotit pravidlo–pravidla doplnění–doplňování (completion specification).
-#: builtins.c:1930
-#, fuzzy
+#: builtins.c:1911
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently begin executed.  If no OPTIONs are givenm, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently begin executed.  If no OPTIONs are givenm, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5254,71 +4970,60 @@ msgid ""
 msgstr ""
 "Upraví nebo zobrazí možnosti doplňování.\n"
 "    \n"
-"    Pozmění volby doplňování u každého NÁZVU, nebo, není-li zadán žádný\n"
-"    NÁZEV, právě probíhající doplnění. Nejsou-li zadány žádné VOLBY, vypíše\n"
-"    volby doplňování pro každý NÁZEV nebo pravidlo současného doplnění.\n"
+"    Pozmění možnosti doplňování každého NÁZVU, nebo, není-li zadán žádný\n"
+"    NÁZEV, právě prováděného doplňování. Nejsou-li zadány žádné MOŽNOSTI,\n"
+"    vypíše možnost doplňování každého NÁZVU nebo definic právě prováděného\n"
+"    doplňování.\n"
 "    \n"
 "    Přepínače:\n"
-"    \t-o volba\tNastaví volbu doplňování VOLBA u každého NÁZVU\n"
+"    \t-o možnost\tNastaví možnost doplňování MOŽNOST každému NÁZVU\n"
 "    \n"
-"    Pomocí „+o“ namísto „-o“ zadanou volbu vypnete.\n"
+"    Pomocí „+o“ namísto „-o“ zadanou možnost vypnete.\n"
 "    \n"
 "    Argumenty:\n"
-"    Každý NÁZEV ukazuje na příkaz, pro který pravidlo doplnění musí být\n"
-"    předem definováno pomocí vestavěného příkazu „complete“. Nejsou-li "
-"zadány\n"
-"    žádné NÁZVY, musí být compopt volán funkcí, která právě generuje "
-"doplnění,\n"
-"    a změněny budou volby tohoto právě běžícího generátoru doplnění.\n"
+"    Každý NÁZEV odkazuje na příkaz, pro který musí být předem definováno\n"
+"    pravidlo (definice) doplňování pomocí vestavěného příkazu „complete“.\n"
+"    Nejsou-li zadány žádné NÁZVY, musí být compopt volán funkcí, která právě\n"
+"    generuje doplňování. Změněny pak budou možnosti tohoto právě prováděného\n"
+"    generátoru doplňování.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV již měl\n"
-"    definováno pravidlo pro doplnění."
+"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV měl definováno\n"
+"    pravidlo doplňování."
 
-#: builtins.c:1958
+#: builtins.c:1939
 #, fuzzy
 msgid ""
-"Read lines from the standard input into an array variable.\n"
+"Read lines from a file into an array variable.\n"
 "    \n"
-"    Read lines from the standard input into the array variable ARRAY, or "
-"from\n"
-"    file descriptor FD if the -u option is supplied.  The variable MAPFILE "
-"is\n"
+"    Read lines from the standard input into the array variable ARRAY, or from\n"
+"    file descriptor FD if the -u option is supplied.  The variable MAPFILE is\n"
 "    the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
-"input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to "
-"CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.  When\n"
-"    CALLBACK is evaluated, it is supplied the index of the next array\n"
-"    element to be assigned as an additional argument.\n"
+"    If -C is supplied without -c, the default quantum is 5000.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly."
+"    Returns success unless an invald option is given or ARRAY is readonly."
 msgstr ""
 "Načte řádky ze souboru do proměnné typu pole.\n"
 "    \n"
-"    Načte řádky ze standardního vstupu nebo z deskriptoru souboru FD, byl-"
-"li\n"
-"    zadán přepínač -u, do proměnné POLE, která je typu pole. Implicitním "
-"POLEM\n"
+"    Načte řádky ze standardního vstupu nebo z deskriptoru souboru FD, byl-li\n"
+"    zadán přepínač -u, do proměnné POLE, která je typu pole. Implicitním POLEM\n"
 "    je proměnná MAPFILE.\n"
 "    \n"
 "    Přepínače:\n"
@@ -5339,7 +5044,9 @@ msgstr ""
 "      POLE\t\tNázev proměnné typu pole, do které budou přiřazena data\n"
 "    \t\tze souboru.\n"
 "    \n"
-"    Je-li uvedeno -C bez -c, implicitní množství bude 5000.\n"
+"    Je-li uvedeno -C bez -c, implicitní množství bude 5000. Vyhodnocovanému\n"
+"    VOLÁNÍ bude jako dodatečný argument předán index prvku pole, do kterého\n"
+"    se bude vzápětí přiřazovat.\n"
 "    \n"
 "    Nebude-li explicitně udán počátek, mapfile vyprázdní POLE před tím,\n"
 "    než do něj začne přiřazovat.\n"
@@ -5348,12 +5055,58 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a POLE nebylo jen pro\n"
 "    čtení."
 
-#: builtins.c:1990
-msgid ""
-"Read lines from a file into an array variable.\n"
-"    \n"
-"    A synonym for `mapfile'."
-msgstr ""
+#~ msgid "line editing not enabled"
+#~ msgstr "upravování řádku není povoleno"
+
+#~ msgid ""
+#~ "Returns the context of the current subroutine call.\n"
+#~ "    \n"
+#~ "    Without EXPR, returns "
+#~ msgstr ""
+#~ "Vrátí kontext aktuálního volání podprogramu.\n"
+#~ "    \n"
+#~ "    Bez VÝRAZU vrátí "
+
+#~ msgid "error setting terminal attributes: %s"
+#~ msgstr "chyba při nastavování vlastností terminálu: %s"
+
+#~ msgid "error getting terminal attributes: %s"
+#~ msgstr "chyba při získávání vlastností terminálu: %s"
+
+#~ msgid "coproc [NAME] command [redirections]"
+#~ msgstr "command [NÁZEV] příkaz [přesměrování]"
+
+#~ msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+#~ msgstr "readarray [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c množství] [pole]"
+
+#~ msgid ""
+#~ "Create a coprocess named NAME.\n"
+#~ "    \n"
+#~ "    Execute COMMAND asynchronously, with the standard output and standard\n"
+#~ "    input of the command connected via a pipe to file descriptors assigned\n"
+#~ "    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+#~ "    The default NAME is \"COPROC\".\n"
+#~ "    \n"
+#~ "    Exit Status:\n"
+#~ "    Returns the exit status of COMMAND."
+#~ msgstr ""
+#~ "Vytvoří koproces pojmenovaný NÁZEV.\n"
+#~ "    \n"
+#~ "    Vykoná PŘÍKAZ asynchronně, přičemž jeho standardní výstup a standardní\n"
+#~ "    vstup budou napojeny rourou na souborové deskriptory uvedené v poli NÁZEV\n"
+#~ "    tohoto shellu pod indexem 0 a 1. Implicitní NÁZEV je „COPROC“.\n"
+#~ "    \n"
+#~ "    Návratový kód:\n"
+#~ "    Vrátí návratový kód PŘÍKAZU."
+
+#~ msgid ""
+#~ "Read lines from a file into an array variable.\n"
+#~ "    \n"
+#~ "    A synonym for `mapfile'."
+#~ msgstr ""
+#~ "Načte řádky ze souboru do proměnné typu pole.\n"
+#~ "    \n"
+#~ "    Synonymum pro „mapfile“."
 
 #~ msgid " "
 #~ msgstr " "
@@ -5367,8 +5120,7 @@ msgstr ""
 #~ msgid "can be used used to provide a stack trace."
 #~ msgstr "lze využít při výpisu zásobníku volání."
 
-#~ msgid ""
-#~ "The value of EXPR indicates how many call frames to go back before the"
+#~ msgid "The value of EXPR indicates how many call frames to go back before the"
 #~ msgstr "Hodnota VÝRAZ značí, kolik rámců volání se má jít zpět před"
 
 #~ msgid "current one; the top frame is frame 0."
@@ -5389,46 +5141,38 @@ msgstr ""
 #~ msgid "back up through the list with the `popd' command."
 #~ msgstr "vrátit příkazem „popd“."
 
-#~ msgid ""
-#~ "The -l flag specifies that `dirs' should not print shorthand versions"
+#~ msgid "The -l flag specifies that `dirs' should not print shorthand versions"
 #~ msgstr "Příznak -l značí, že „dirs“ nemá vypisovat zkrácené verze adresářů,"
 
-#~ msgid ""
-#~ "of directories which are relative to your home directory.  This means"
+#~ msgid "of directories which are relative to your home directory.  This means"
 #~ msgstr "které leží pod vaším domovským adresářem. To znamená, že „~/bin“"
 
 #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
 #~ msgstr "smí být zobrazen jako „/homes/bfox/bin“. Příznak -v způsobí, že"
 
 #~ msgid "causes `dirs' to print the directory stack with one entry per line,"
-#~ msgstr ""
-#~ "„dirs“ vypíše zásobník adresářů záznam po záznamu na samostatné řádky"
+#~ msgstr "„dirs“ vypíše zásobník adresářů záznam po záznamu na samostatné řádky"
 
-#~ msgid ""
-#~ "prepending the directory name with its position in the stack.  The -p"
+#~ msgid "prepending the directory name with its position in the stack.  The -p"
 #~ msgstr "a před název adresáře uvede jeho pořadí v zásobníku. Příznak -p"
 
 #~ msgid "flag does the same thing, but the stack position is not prepended."
 #~ msgstr "dělá to samé, ale bez informace o umístění na zásobníku."
 
-#~ msgid ""
-#~ "The -c flag clears the directory stack by deleting all of the elements."
+#~ msgid "The -c flag clears the directory stack by deleting all of the elements."
 #~ msgstr "Příznak -c vyprázdní zásobník smazáním všem prvků."
 
-#~ msgid ""
-#~ "+N   displays the Nth entry counting from the left of the list shown by"
+#~ msgid "+N   displays the Nth entry counting from the left of the list shown by"
 #~ msgstr "+N   zobrazí N. položku počítáno zleva na seznamu, který by ukázal"
 
 #~ msgid "     dirs when invoked without options, starting with zero."
 #~ msgstr "     příkaz dirs bez jakýchkoliv přepínačů, počítáno od nuly."
 
-#~ msgid ""
-#~ "-N   displays the Nth entry counting from the right of the list shown by"
+#~ msgid "-N   displays the Nth entry counting from the right of the list shown by"
 #~ msgstr "-N   zobrazí N. položku počítáno zprava na seznamu, který by ukázal"
 
 #~ msgid "Adds a directory to the top of the directory stack, or rotates"
-#~ msgstr ""
-#~ "Přidá adresář na vrchol zásobníku adresářů, nebo rotuje zásobník tak,"
+#~ msgstr "Přidá adresář na vrchol zásobníku adresářů, nebo rotuje zásobník tak,"
 
 #~ msgid "the stack, making the new top of the stack the current working"
 #~ msgstr "že nový vrchol zásobníku se stane pracovním adresářem."
@@ -5452,8 +5196,7 @@ msgstr ""
 #~ msgstr "     zprava seznamu, který by ukázal „dirs“, počínaje od"
 
 #~ msgid "-n   suppress the normal change of directory when adding directories"
-#~ msgstr ""
-#~ "-n   potlačí obvyklou změnu pracovního adresáře při přidávání adresářů"
+#~ msgstr "-n   potlačí obvyklou změnu pracovního adresáře při přidávání adresářů"
 
 #~ msgid "     to the stack, so only the stack is manipulated."
 #~ msgstr "     na zásobník, takže se změní jen obsah zásobníku."
@@ -5494,10 +5237,8 @@ msgstr ""
 #~ msgid "     removes the last directory, `popd -1' the next to last."
 #~ msgstr "     odstraní poslední adresář, “popd -1“ předposlední."
 
-#~ msgid ""
-#~ "-n   suppress the normal change of directory when removing directories"
-#~ msgstr ""
-#~ "-n   potlačí obvyklou změnu pracovního adresáře při odebírání adresářů"
+#~ msgid "-n   suppress the normal change of directory when removing directories"
+#~ msgstr "-n   potlačí obvyklou změnu pracovního adresáře při odebírání adresářů"
 
 #~ msgid "     from the stack, so only the stack is manipulated."
 #~ msgstr "     ze zásobníku, takže pouze zásobník dozná změny."
@@ -5523,8 +5264,7 @@ msgstr ""
 #~ msgid ""
 #~ "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,\n"
 #~ "    break N levels."
-#~ msgstr ""
-#~ "Ukončí smyčku FOR, WHILE nebo UNTIL. Je-li zadáno N, ukončí N úrovní."
+#~ msgstr "Ukončí smyčku FOR, WHILE nebo UNTIL. Je-li zadáno N, ukončí N úrovní."
 
 #~ msgid ""
 #~ "Run a shell builtin.  This is useful when you wish to rename a\n"
@@ -5550,22 +5290,16 @@ msgstr ""
 #~ msgid ""
 #~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell\n"
 #~ "    function called `ls', and you wish to call the command `ls', you can\n"
-#~ "    say \"command ls\".  If the -p option is given, a default value is "
-#~ "used\n"
-#~ "    for PATH that is guaranteed to find all of the standard utilities.  "
-#~ "If\n"
-#~ "    the -V or -v option is given, a string is printed describing "
-#~ "COMMAND.\n"
+#~ "    say \"command ls\".  If the -p option is given, a default value is used\n"
+#~ "    for PATH that is guaranteed to find all of the standard utilities.  If\n"
+#~ "    the -V or -v option is given, a string is printed describing COMMAND.\n"
 #~ "    The -V option produces a more verbose description."
 #~ msgstr ""
 #~ "Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu. Máte-li shellovou\n"
 #~ "    funkci pojmenovanou „ls“, a chcete-li zavolat příkaz „ls“, použijte\n"
-#~ "    „command ls“. Je-li zadán přepínač -p, bude pro PATH použita "
-#~ "implicitní\n"
-#~ "    hodnota, která zaručuje, že budou nalezeny všechny standardní "
-#~ "nástroje.\n"
-#~ "    Je-li zadán přepínač -V nebo -v, bude vytištěn řetězec popisující "
-#~ "PŘÍKAZ.\n"
+#~ "    „command ls“. Je-li zadán přepínač -p, bude pro PATH použita implicitní\n"
+#~ "    hodnota, která zaručuje, že budou nalezeny všechny standardní nástroje.\n"
+#~ "    Je-li zadán přepínač -V nebo -v, bude vytištěn řetězec popisující PŘÍKAZ.\n"
 #~ "    Přepínač -V produkuje podrobnější popis."
 
 #~ msgid ""
@@ -5577,8 +5311,7 @@ msgstr ""
 #~ "    \n"
 #~ "      -a\tto make NAMEs arrays (if supported)\n"
 #~ "      -f\tto select from among function names only\n"
-#~ "      -F\tto display function names (and line number and source file name "
-#~ "if\n"
+#~ "      -F\tto display function names (and line number and source file name if\n"
 #~ "    \tdebugging) without definitions\n"
 #~ "      -i\tto make NAMEs have the `integer' attribute\n"
 #~ "      -r\tto make NAMEs readonly\n"
@@ -5592,33 +5325,28 @@ msgstr ""
 #~ "    and definition.  The -F option restricts the display to function\n"
 #~ "    name only.\n"
 #~ "    \n"
-#~ "    Using `+' instead of `-' turns off the given attribute instead.  "
-#~ "When\n"
+#~ "    Using `+' instead of `-' turns off the given attribute instead.  When\n"
 #~ "    used in a function, makes NAMEs local, as with the `local' command."
 #~ msgstr ""
 #~ "Deklaruje proměnné a/nebo jim nastaví atributy. Nejsou-li zadány NÁZVY,\n"
-#~ "    tak místo toho zobrazí hodnoty proměnných. Přepínač -p zobrazí "
-#~ "atributy\n"
+#~ "    tak místo toho zobrazí hodnoty proměnných. Přepínač -p zobrazí atributy\n"
 #~ "    a hodnoty pro každý NÁZEV.\n"
 #~ "    \n"
 #~ "    Příznaky jsou:\n"
 #~ "    \n"
 #~ "      -a\tučiní NÁZVY poli (je-li podporováno)\n"
 #~ "      -f\tvybírá pouze mezi názvy funkcí\n"
-#~ "      -F\tzobrazí názvy funkcí (a číslo řádku a název zdrojového "
-#~ "souboru,\n"
+#~ "      -F\tzobrazí názvy funkcí (a číslo řádku a název zdrojového souboru,\n"
 #~ "        \tje-li zapnuto ladění) bez definic\n"
 #~ "      -i\tpřiřadí NÁZVŮM atribut „integer“ (číslo)\n"
 #~ "      -r\tučiní NÁZVY jen pro čtení\n"
 #~ "      -t\tpřiřadí NÁZVŮM atribut „trace“ (sledování)\n"
 #~ "      -x\tvyexportuje NÁZVY\n"
 #~ "    \n"
-#~ "    Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte "
-#~ "„let“),\n"
+#~ "    Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte „let“),\n"
 #~ "    když je do proměnné přiřazováno.\n"
 #~ "    \n"
-#~ "    Při zobrazování hodnot proměnných -f zobrazí názvy a definice "
-#~ "funkcí.\n"
+#~ "    Při zobrazování hodnot proměnných -f zobrazí názvy a definice funkcí.\n"
 #~ "    Přepínač -F omezí výpis jen na názvy funkcí.\n"
 #~ "    \n"
 #~ "    Pomocí „+“ namísto „-“ daný atribut odeberete. Je-li použito uvnitř\n"
@@ -5633,14 +5361,11 @@ msgstr ""
 #~ "    have a visible scope restricted to that function and its children."
 #~ msgstr ""
 #~ "Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU.\n"
-#~ "    LOCAL smí být použito jen uvnitř funkcí. Učiní proměnnou NÁZEV "
-#~ "viditelnou\n"
+#~ "    LOCAL smí být použito jen uvnitř funkcí. Učiní proměnnou NÁZEV viditelnou\n"
 #~ "    jen v dané funkci a jejích potomcích."
 
-#~ msgid ""
-#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
-#~ msgstr ""
-#~ "Vypíše ARGUMENTY. Je-li zadáni -n, závěrečný konec řádku bude potlačen."
+#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgstr "Vypíše ARGUMENTY. Je-li zadáni -n, závěrečný konec řádku bude potlačen."
 
 #~ msgid ""
 #~ "Enable and disable builtin shell commands.  This allows\n"
@@ -5654,36 +5379,24 @@ msgstr ""
 #~ "    previously loaded with -f.  If no non-option names are given, or\n"
 #~ "    the -p option is supplied, a list of builtins is printed.  The\n"
 #~ "    -a option means to print every builtin with an indication of whether\n"
-#~ "    or not it is enabled.  The -s option restricts the output to the "
-#~ "POSIX.2\n"
-#~ "    `special' builtins.  The -n option displays a list of all disabled "
-#~ "builtins."
+#~ "    or not it is enabled.  The -s option restricts the output to the POSIX.2\n"
+#~ "    `special' builtins.  The -n option displays a list of all disabled builtins."
 #~ msgstr ""
 #~ "Povolí nebo zakáže vestavěný příkaz shellu. To vám umožňuje použít\n"
-#~ "    příkaz z disku, který má stejné jméno jako vestavěný příkaz shellu, "
-#~ "aniž\n"
+#~ "    příkaz z disku, který má stejné jméno jako vestavěný příkaz shellu, aniž\n"
 #~ "    byste museli zadávat celou cestu. Je-li použito -n, NÁZVY se stanou\n"
-#~ "    zakázanými, jinak budou povoleny. Například „test“ z PATH namísto "
-#~ "verze\n"
-#~ "    vestavěné do shellu lze používat tak, že napíšete „enable -n test“. "
-#~ "Na\n"
-#~ "    systémech podporujících dynamické zavádění přepínač -f může být "
-#~ "použit\n"
-#~ "    pro zavedení nových vestavěných příkazů ze sdíleného objektu "
-#~ "NÁZEV_SOUBORU.\n"
-#~ "    Přepínač -d odstraní vestavěný příkaz zavedený přes -f. Není-li "
-#~ "zadán\n"
-#~ "    žádný přepínač nebo je-li zadán přepínač -p, bude vypsán seznam "
-#~ "vestavěných\n"
-#~ "    příkazů. Přepínač -a znamená, že budou vypsány všechny vestavěné "
-#~ "příkazy a\n"
-#~ "    u každého bude vyznačeno, zda je povolen nebo zakázán. Přepínač -s "
-#~ "omezí\n"
+#~ "    zakázanými, jinak budou povoleny. Například „test“ z PATH namísto verze\n"
+#~ "    vestavěné do shellu lze používat tak, že napíšete „enable -n test“. Na\n"
+#~ "    systémech podporujících dynamické zavádění přepínač -f může být použit\n"
+#~ "    pro zavedení nových vestavěných příkazů ze sdíleného objektu NÁZEV_SOUBORU.\n"
+#~ "    Přepínač -d odstraní vestavěný příkaz zavedený přes -f. Není-li zadán\n"
+#~ "    žádný přepínač nebo je-li zadán přepínač -p, bude vypsán seznam vestavěných\n"
+#~ "    příkazů. Přepínač -a znamená, že budou vypsány všechny vestavěné příkazy a\n"
+#~ "    u každého bude vyznačeno, zda je povolen nebo zakázán. Přepínač -s omezí\n"
 #~ "    výpis na příkazy uvedené v POSIX.2. Přepínač -n zobrazí seznam všech\n"
 #~ "    zakázaných vestavěných příkazů."
 
-#~ msgid ""
-#~ "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
 #~ msgstr "Načte ARGUMENTY jako vstup shellu a výsledný příkaz(y) provede."
 
 #~ msgid ""
@@ -5697,14 +5410,11 @@ msgstr ""
 #~ "    then the shell exits, unless the shell option `execfail' is set."
 #~ msgstr ""
 #~ "Provede SOUBOR, přičemž nahradí tento shell zadaným programem.\n"
-#~ "    Není-li SOUBOR zadán, přesměrování zapůsobí v tomto shellu. Je-li "
-#~ "prvním\n"
-#~ "    argumentem „-l“, bude do nultého argumentu SOUBORU umístěna pomlčka "
-#~ "tak,\n"
+#~ "    Není-li SOUBOR zadán, přesměrování zapůsobí v tomto shellu. Je-li prvním\n"
+#~ "    argumentem „-l“, bude do nultého argumentu SOUBORU umístěna pomlčka tak,\n"
 #~ "    jak to dělá login. Je-li zadán přepínač „-c“, bude SOUBOR spuštěn\n"
 #~ "    s prázdným prostředím. Přepínač „-a“ znamená, že argv[0] prováděného\n"
-#~ "    procesu bude nastaven na NÁZEV. Pokud soubor nemůže být proveden a "
-#~ "shell\n"
+#~ "    procesu bude nastaven na NÁZEV. Pokud soubor nemůže být proveden a shell\n"
 #~ "    není interaktivní, pak shell bude ukončen, pokud přepínač shellu\n"
 #~ "    „execfail“ není nastaven."
 
@@ -5716,31 +5426,20 @@ msgstr ""
 #~ "    remembered.  If the -p option is supplied, PATHNAME is used as the\n"
 #~ "    full pathname of NAME, and no path search is performed.  The -r\n"
 #~ "    option causes the shell to forget all remembered locations.  The -d\n"
-#~ "    option causes the shell to forget the remembered location of each "
-#~ "NAME.\n"
+#~ "    option causes the shell to forget the remembered location of each NAME.\n"
 #~ "    If the -t option is supplied the full pathname to which each NAME\n"
-#~ "    corresponds is printed.  If multiple NAME arguments are supplied "
-#~ "with\n"
-#~ "    -t, the NAME is printed before the hashed full pathname.  The -l "
-#~ "option\n"
-#~ "    causes output to be displayed in a format that may be reused as "
-#~ "input.\n"
-#~ "    If no arguments are given, information about remembered commands is "
-#~ "displayed."
+#~ "    corresponds is printed.  If multiple NAME arguments are supplied with\n"
+#~ "    -t, the NAME is printed before the hashed full pathname.  The -l option\n"
+#~ "    causes output to be displayed in a format that may be reused as input.\n"
+#~ "    If no arguments are given, information about remembered commands is displayed."
 #~ msgstr ""
 #~ "Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována.\n"
-#~ "    Za použití přepínače -p se vezme NÁZEV_CESTY za plnou cestu k NÁZVU "
-#~ "a\n"
-#~ "    žádné vyhledávání cesty se nekoná. Přepínač -r způsobí, že shell "
-#~ "zapomene\n"
-#~ "    všechny zapamatovaná umístění. Přepínač -d způsobí, že shell "
-#~ "zapomene\n"
-#~ "    zapamatovaná umístění každého NÁZVU. Je-li zadán přepínač -t, bude "
-#~ "vypsána\n"
-#~ "    plná cesta ke každému NÁZVU. Je-li s -t zadáno více NÁZVŮ, NÁZEV "
-#~ "bude\n"
-#~ "    vypsán před uloženou celou cestou. Přepínač -l vytvoří takový "
-#~ "výstup,\n"
+#~ "    Za použití přepínače -p se vezme NÁZEV_CESTY za plnou cestu k NÁZVU a\n"
+#~ "    žádné vyhledávání cesty se nekoná. Přepínač -r způsobí, že shell zapomene\n"
+#~ "    všechny zapamatovaná umístění. Přepínač -d způsobí, že shell zapomene\n"
+#~ "    zapamatovaná umístění každého NÁZVU. Je-li zadán přepínač -t, bude vypsána\n"
+#~ "    plná cesta ke každému NÁZVU. Je-li s -t zadáno více NÁZVŮ, NÁZEV bude\n"
+#~ "    vypsán před uloženou celou cestou. Přepínač -l vytvoří takový výstup,\n"
 #~ "    který lze opět použít jako vstup. Nejsou-li zadány žádné argumenty,\n"
 #~ "    budou vypsány informace o zapamatovaných příkazech."
 
@@ -5752,27 +5451,20 @@ msgstr ""
 #~ "    a short usage synopsis."
 #~ msgstr ""
 #~ "Zobrazí užitečné informace o vestavěných příkazech. Je-li zadán VZOREK,\n"
-#~ "    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak "
-#~ "je\n"
-#~ "    vytištěn seznam vestavěných příkazů. Přepínač -s omezí výstup "
-#~ "o každém\n"
+#~ "    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak je\n"
+#~ "    vytištěn seznam vestavěných příkazů. Přepínač -s omezí výstup o každém\n"
 #~ "    vestavěném příkazu odpovídajícího VZORKU na stručný popis použití."
 
 #~ msgid ""
 #~ "By default, removes each JOBSPEC argument from the table of active jobs.\n"
-#~ "    If the -h option is given, the job is not removed from the table, but "
-#~ "is\n"
+#~ "    If the -h option is given, the job is not removed from the table, but is\n"
 #~ "    marked so that SIGHUP is not sent to the job if the shell receives a\n"
-#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove "
-#~ "all\n"
-#~ "    jobs from the job table; the -r option means to remove only running "
-#~ "jobs."
+#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all\n"
+#~ "    jobs from the job table; the -r option means to remove only running jobs."
 #~ msgstr ""
 #~ "Implicitně odstraní každý argument ÚLOHA z tabulky aktivních úloh. Je-li\n"
-#~ "    zadán přepínač -h, úloha není odstraněna z tabulky, ale je označena "
-#~ "tak.\n"
-#~ "    že úloze nebude zaslán SIGHUP, když shell obdrží SIGHUP. Přepínač -"
-#~ "a,\n"
+#~ "    zadán přepínač -h, úloha není odstraněna z tabulky, ale je označena tak.\n"
+#~ "    že úloze nebude zaslán SIGHUP, když shell obdrží SIGHUP. Přepínač -a,\n"
 #~ "    pokud není uvedena ÚLOHA, znamená, že všechny úlohy budou odstraněny\n"
 #~ "    z tabulky úloh. Přepínač -r znamená, že pouze běžící úlohy budou\n"
 #~ "    odstraněny."
@@ -5792,12 +5484,9 @@ msgstr ""
 #~ "    function.  Some variables cannot be unset; also see readonly."
 #~ msgstr ""
 #~ "Pro každé JMÉNO odstraní odpovídající proměnnou nebo funkci.\n"
-#~ "    Spolu s „-v“ bude unset fungovat jen na proměnné. S příznakem „-f“ "
-#~ "bude\n"
-#~ "    unset fungovat jen na funkce. Bez těchto dvou příznaků unset nejprve "
-#~ "zkusí\n"
-#~ "    zrušit proměnnou a pokud toto selže, tak zkusí zrušit funkci. "
-#~ "Některé\n"
+#~ "    Spolu s „-v“ bude unset fungovat jen na proměnné. S příznakem „-f“ bude\n"
+#~ "    unset fungovat jen na funkce. Bez těchto dvou příznaků unset nejprve zkusí\n"
+#~ "    zrušit proměnnou a pokud toto selže, tak zkusí zrušit funkci. Některé\n"
 #~ "    proměnné nelze odstranit. Taktéž vizte příkaz „readonly“."
 
 #~ msgid ""
@@ -5810,12 +5499,9 @@ msgstr ""
 #~ "    processing."
 #~ msgstr ""
 #~ "NÁZVY jsou označeny pro automatické exportování do prostředí následně\n"
-#~ "    prováděných příkazů. Je-li zadán přepínač -f, NÁZVY se vztahují "
-#~ "k funkcím.\n"
-#~ "    Nejsou-li zadány žádné NÁZVY nebo je-li zadáno „-p“, bude vytištěn "
-#~ "seznam\n"
-#~ "    všech názvů, které jsou v tomto shellu exportovány. Argument „-n“ "
-#~ "nařizuje\n"
+#~ "    prováděných příkazů. Je-li zadán přepínač -f, NÁZVY se vztahují k funkcím.\n"
+#~ "    Nejsou-li zadány žádné NÁZVY nebo je-li zadáno „-p“, bude vytištěn seznam\n"
+#~ "    všech názvů, které jsou v tomto shellu exportovány. Argument „-n“ nařizuje\n"
 #~ "    odstranit vlastnost exportovat z následujících NÁZVŮ. Argument „--“\n"
 #~ "    zakazuje zpracování dalších přepínačů."
 
@@ -5823,21 +5509,16 @@ msgstr ""
 #~ "The given NAMEs are marked readonly and the values of these NAMEs may\n"
 #~ "    not be changed by subsequent assignment.  If the -f option is given,\n"
 #~ "    then functions corresponding to the NAMEs are so marked.  If no\n"
-#~ "    arguments are given, or if `-p' is given, a list of all readonly "
-#~ "names\n"
+#~ "    arguments are given, or if `-p' is given, a list of all readonly names\n"
 #~ "    is printed.  The `-a' option means to treat each NAME as\n"
 #~ "    an array variable.  An argument of `--' disables further option\n"
 #~ "    processing."
 #~ msgstr ""
 #~ "Zadané NÁZVY budou označeny jako jen pro čtení a hodnoty těchto NÁZVŮ\n"
-#~ "    nebude možné změnit následným přiřazením. Je-li zadán přepínač -f, "
-#~ "pak\n"
-#~ "    funkce těchto NÁZVŮ budou takto označeny. Nejsou-li zadány žádné "
-#~ "argumenty\n"
-#~ "    nebo je-li zadáno „-p“, bude vytištěn seznam všech jmen jen pro "
-#~ "čtení.\n"
-#~ "    Přepínač „-a“ znamená, že s každým NÁZVEM bude zacházeno jako "
-#~ "s proměnnou\n"
+#~ "    nebude možné změnit následným přiřazením. Je-li zadán přepínač -f, pak\n"
+#~ "    funkce těchto NÁZVŮ budou takto označeny. Nejsou-li zadány žádné argumenty\n"
+#~ "    nebo je-li zadáno „-p“, bude vytištěn seznam všech jmen jen pro čtení.\n"
+#~ "    Přepínač „-a“ znamená, že s každým NÁZVEM bude zacházeno jako s proměnnou\n"
 #~ "    typu pole. Argument „--“ zakáže zpracování dalších přepínačů."
 
 #~ msgid ""
@@ -5867,79 +5548,61 @@ msgstr ""
 #~ "For each NAME, indicate how it would be interpreted if used as a\n"
 #~ "    command name.\n"
 #~ "    \n"
-#~ "    If the -t option is used, `type' outputs a single word which is one "
-#~ "of\n"
-#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is "
-#~ "an\n"
-#~ "    alias, shell reserved word, shell function, shell builtin, disk "
-#~ "file,\n"
+#~ "    If the -t option is used, `type' outputs a single word which is one of\n"
+#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n"
+#~ "    alias, shell reserved word, shell function, shell builtin, disk file,\n"
 #~ "    or unfound, respectively.\n"
 #~ "    \n"
 #~ "    If the -p flag is used, `type' either returns the name of the disk\n"
 #~ "    file that would be executed, or nothing if `type -t NAME' would not\n"
 #~ "    return `file'.\n"
 #~ "    \n"
-#~ "    If the -a flag is used, `type' displays all of the places that "
-#~ "contain\n"
+#~ "    If the -a flag is used, `type' displays all of the places that contain\n"
 #~ "    an executable named `file'.  This includes aliases, builtins, and\n"
 #~ "    functions, if and only if the -p flag is not also used.\n"
 #~ "    \n"
 #~ "    The -f flag suppresses shell function lookup.\n"
 #~ "    \n"
-#~ "    The -P flag forces a PATH search for each NAME, even if it is an "
-#~ "alias,\n"
-#~ "    builtin, or function, and returns the name of the disk file that "
-#~ "would\n"
+#~ "    The -P flag forces a PATH search for each NAME, even if it is an alias,\n"
+#~ "    builtin, or function, and returns the name of the disk file that would\n"
 #~ "    be executed."
 #~ msgstr ""
 #~ "O každém NÁZVU řekne, jak by byl interpretován, kdyby byl použit jako\n"
 #~ "    název příkazu.\n"
 #~ "    \n"
-#~ "    Je-li použit přepínač -t, „type“ vypíše jedno slovo z těchto: "
-#~ "„alias“,\n"
+#~ "    Je-li použit přepínač -t, „type“ vypíše jedno slovo z těchto: „alias“,\n"
 #~ "    „keyword“, „function“, „builtin“, „file“ nebo „“, je-li NÁZEV alias,\n"
-#~ "    klíčové slovo shellu, shellová funkce, vestavěný příkaz shellu, "
-#~ "soubor\n"
+#~ "    klíčové slovo shellu, shellová funkce, vestavěný příkaz shellu, soubor\n"
 #~ "    na disku nebo nenalezený soubor.\n"
 #~ "    \n"
-#~ "    Je-li použit přepínač -p, „type“ buď vrátí jméno souboru na disku, "
-#~ "který\n"
+#~ "    Je-li použit přepínač -p, „type“ buď vrátí jméno souboru na disku, který\n"
 #~ "    by byl spuštěn, nebo nic, pokud „type -t NÁZEV“ by nevrátil „file“.\n"
 #~ "    \n"
-#~ "    Je-li použit přepínač -a, „type“ zobrazí všechna místa, kde se "
-#~ "nalézá\n"
-#~ "    spustitelný program pojmenovaný „soubor“. To zahrnuje aliasy, "
-#~ "vestavěné\n"
-#~ "    příkazy a funkce jen a pouze tehdy, když není rovněž použit přepínač -"
-#~ "p.\n"
+#~ "    Je-li použit přepínač -a, „type“ zobrazí všechna místa, kde se nalézá\n"
+#~ "    spustitelný program pojmenovaný „soubor“. To zahrnuje aliasy, vestavěné\n"
+#~ "    příkazy a funkce jen a pouze tehdy, když není rovněž použit přepínač -p.\n"
 #~ "    \n"
 #~ "    Přepínač -f potlačí hledání mezi funkcemi shellu.\n"
 #~ "    \n"
 #~ "    Přepínač -P vynutí prohledání PATH na každý NÁZEV, dokonce i když se\n"
-#~ "    jedná o alias, vestavěný příkaz nebo funkci, a vrátí název souboru "
-#~ "na\n"
+#~ "    jedná o alias, vestavěný příkaz nebo funkci, a vrátí název souboru na\n"
 #~ "    disku, který by byl spuštěn."
 
 #~ msgid ""
 #~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if\n"
-#~ "    `-S' is supplied, the current value of the mask is printed.  The `-"
-#~ "S'\n"
-#~ "    option makes the output symbolic; otherwise an octal number is "
-#~ "output.\n"
+#~ "    `-S' is supplied, the current value of the mask is printed.  The `-S'\n"
+#~ "    option makes the output symbolic; otherwise an octal number is output.\n"
 #~ "    If `-p' is supplied, and MODE is omitted, the output is in a form\n"
 #~ "    that may be used as input.  If MODE begins with a digit, it is\n"
-#~ "    interpreted as an octal number, otherwise it is a symbolic mode "
-#~ "string\n"
+#~ "    interpreted as an octal number, otherwise it is a symbolic mode string\n"
 #~ "    like that accepted by chmod(1)."
 #~ msgstr ""
 #~ "Uživatelská maska práv vytvářených souborů je nastavena na MÓD. Je-li\n"
-#~ "    MÓD vynechán nebo je-li uvedeno „-S“, bude vytištěna současná "
-#~ "hodnota\n"
+#~ "    MÓD vynechán nebo je-li uvedeno „-S“, bude vytištěna současná hodnota\n"
 #~ "    masky. Přepínač „-S“ učiní výstup symbolický, jinak bude výstupem\n"
 #~ "    osmičkové číslo. Je-li zadáno „-p“ a MÓD je vynechán, bude výstup ve\n"
 #~ "    formátu, který lze použít jako vstup. Začíná-li MÓD číslicí, bude\n"
-#~ "    interpretován jako osmičkové číslo, jinak jako řetězec symbolického "
-#~ "zápisu\n"
+#~ "    interpretován jako osmičkové číslo, jinak jako řetězec symbolického zápisu\n"
 #~ "    práv tak, jak jej chápe chmod(1)."
 
 #~ msgid ""
@@ -5949,8 +5612,7 @@ msgstr ""
 #~ "    all child processes of the shell are waited for."
 #~ msgstr ""
 #~ "Počká na zadaný proces a nahlásí jeho návratový kód. Není-li N zadáno,\n"
-#~ "    bude se čekat na všechny právě aktivní procesy potomků a návratová "
-#~ "hodnota\n"
+#~ "    bude se čekat na všechny právě aktivní procesy potomků a návratová hodnota\n"
 #~ "    bude nula. N je ID procesu. Není-li zadáno, bude se čekat na všechny\n"
 #~ "    procesy potomků tohoto shellu."
 
@@ -5973,30 +5635,22 @@ msgstr ""
 #~ "    not each is set."
 #~ msgstr ""
 #~ "Přepne hodnoty proměnných řídící volitelné chování. Přepínač -s znamená,\n"
-#~ "    že se každý NÁZEV_VOLBY zapne (nastaví). Přepínač -u každý "
-#~ "NÁZEV_VOLBY\n"
+#~ "    že se každý NÁZEV_VOLBY zapne (nastaví). Přepínač -u každý NÁZEV_VOLBY\n"
 #~ "    vypne. Přepínač -q potlačí výstup. Zda je nebo není nastaven každý\n"
-#~ "    NÁZEV_VOLBY, indikuje návratový kód. Přepínač -o omezí NÁZVY_VOLEB na "
-#~ "ty,\n"
+#~ "    NÁZEV_VOLBY, indikuje návratový kód. Přepínač -o omezí NÁZVY_VOLEB na ty,\n"
 #~ "    které jsou definovány pro použití s „set -o“. Bez přepínačů nebo\n"
 #~ "    s přepínačem -p je zobrazen seznam všech nastavitelných voleb včetně\n"
 #~ "    indikace, zda je každá nastavena."
 
 #~ msgid ""
 #~ "For each NAME, specify how arguments are to be completed.\n"
-#~ "    If the -p option is supplied, or if no options are supplied, "
-#~ "existing\n"
-#~ "    completion specifications are printed in a way that allows them to "
-#~ "be\n"
-#~ "    reused as input.  The -r option removes a completion specification "
-#~ "for\n"
-#~ "    each NAME, or, if no NAMEs are supplied, all completion "
-#~ "specifications."
+#~ "    If the -p option is supplied, or if no options are supplied, existing\n"
+#~ "    completion specifications are printed in a way that allows them to be\n"
+#~ "    reused as input.  The -r option removes a completion specification for\n"
+#~ "    each NAME, or, if no NAMEs are supplied, all completion specifications."
 #~ msgstr ""
 #~ "U každého NÁZVU sdělí, jak budou argumenty doplněny. Je-li zadán\n"
-#~ "    přepínač -p nebo není-li zadán přepínač žádný, budou existující "
-#~ "definice\n"
+#~ "    přepínač -p nebo není-li zadán přepínač žádný, budou existující definice\n"
 #~ "    doplňování vytištěny tak. že je bude možné znovu použít jako vstup.\n"
-#~ "    Přepínač -r odstraní definici doplnění pro každý NÁZEV nebo chybí-li "
-#~ "NÁZVY,\n"
+#~ "    Přepínač -r odstraní definici doplnění pro každý NÁZEV nebo chybí-li NÁZVY,\n"
 #~ "    odstraní všechny definice."
index 87f40e16e294a3a40826d7142582eb61f46d650d..e07e2f8c981ac64f8e784b02d6234543cf0ed50f 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the bash package.
 # Göran Uddeborg <goeran@uddeborg.se>, 2008.
 #
-# $Revision: 1.3 $
+# $Revision: 1.4 $
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-19 14:53-0500\n"
-"PO-Revision-Date: 2008-09-15 13:09+0200\n"
+"POT-Creation-Date: 2008-08-25 11:13-0400\n"
+"PO-Revision-Date: 2009-02-26 22:32+0100\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
@@ -18,86 +18,80 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:49
 msgid "bad array subscript"
 msgstr "felaktigt vektorindex"
 
-#: arrayfunc.c:313 builtins/declare.def:474
+#: arrayfunc.c:312 builtins/declare.def:467
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: det går inte att konvertera en indexerad vektor till associativ"
 
-#: arrayfunc.c:479
+#: arrayfunc.c:478
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: ogiltig nyckel till associativ vektor"
 
-#: arrayfunc.c:481
+#: arrayfunc.c:480
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: det går inte att tilldela till ickenumeriska index"
 
-#: arrayfunc.c:517
+#: arrayfunc.c:516
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: måste använda index vid tilldelning av associativ vektor"
 
-#: bashhist.c:379
+#: bashhist.c:382
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: det går inte att skapa: %s"
 
-#: bashline.c:3413
+#: bashline.c:3190
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
-"bash_execute_unix_command: det går inte att hitta en tangentbindning för "
-"kommandot"
+msgstr "bash_execute_unix_command: det går inte att hitta en tangentbindning för kommandot"
 
-#: bashline.c:3491
+#: bashline.c:3268
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: första ickeblanka tecknet är inte '\"'"
 
-#: bashline.c:3520
+#: bashline.c:3297
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "ingen avslutande \"%c\" i %s"
 
-#: bashline.c:3554
+#: bashline.c:3331
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: kolonseparator saknas"
 
-#: builtins/bind.def:120 builtins/bind.def:123
-msgid "line editing not enabled"
-msgstr ""
-
-#: builtins/bind.def:206
+#: builtins/bind.def:199
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "\"%s\": ogiltigt tangentbindningsnamn"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:238
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: det går inte att läsa: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:253
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "\"%s\": det går inte att avbinda"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:288 builtins/bind.def:318
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "\"%s\": okänt funktionsnamn"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:296
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s är inte bundet till några tangenter.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:300
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s kan anropas via "
@@ -110,13 +104,6 @@ msgstr "slingräknare"
 msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "endast meningsfullt i en \"for\"-, \"while\"- eller \"until\"-slinga"
 
-#: builtins/caller.def:133
-msgid ""
-"Returns the context of the current subroutine call.\n"
-"    \n"
-"    Without EXPR, returns "
-msgstr ""
-
 #: builtins/cd.def:215
 msgid "HOME not set"
 msgstr "HOME är inte satt"
@@ -125,145 +112,130 @@ msgstr "HOME är inte satt"
 msgid "OLDPWD not set"
 msgstr "OLDPWD är inte satt"
 
-#: builtins/common.c:101
+#: builtins/common.c:107
 #, c-format
 msgid "line %d: "
 msgstr "rad %d: "
 
-#: builtins/common.c:139 error.c:260
-#, c-format
-msgid "warning: "
-msgstr "varning: "
-
-#: builtins/common.c:153
+#: builtins/common.c:124
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: användning: "
 
-#: builtins/common.c:166 test.c:822
+#: builtins/common.c:137 test.c:822
 msgid "too many arguments"
 msgstr "för många argument"
 
-#: builtins/common.c:191 shell.c:493 shell.c:774
+#: builtins/common.c:162 shell.c:493 shell.c:774
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: flaggan kräver ett argument"
 
-#: builtins/common.c:198
+#: builtins/common.c:169
 #, c-format
 msgid "%s: numeric argument required"
 msgstr "%s: numeriskt argument krävs"
 
-#: builtins/common.c:205
+#: builtins/common.c:176
 #, c-format
 msgid "%s: not found"
 msgstr "%s: finns inte"
 
-#: builtins/common.c:214 shell.c:787
+#: builtins/common.c:185 shell.c:787
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: ogiltig flagga"
 
-#: builtins/common.c:221
+#: builtins/common.c:192
 #, c-format
 msgid "%s: invalid option name"
 msgstr "%s: ogiltigt flaggnamn"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:199 general.c:231 general.c:236
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "\"%s\": inte en giltig identifierare"
 
-#: builtins/common.c:238
+#: builtins/common.c:209
 msgid "invalid octal number"
 msgstr "ogiltigt oktalt tal"
 
-#: builtins/common.c:240
+#: builtins/common.c:211
 msgid "invalid hex number"
 msgstr "ogiltigt hexadecimalt tal"
 
-#: builtins/common.c:242 expr.c:1255
+#: builtins/common.c:213 expr.c:1255
 msgid "invalid number"
 msgstr "ogiltigt tal"
 
-#: builtins/common.c:250
+#: builtins/common.c:221
 #, c-format
 msgid "%s: invalid signal specification"
 msgstr "%s: ogiltig signalspecifikation"
 
-#: builtins/common.c:257
+#: builtins/common.c:228
 #, c-format
 msgid "`%s': not a pid or valid job spec"
 msgstr "\"%s\": inte en pid eller giltig jobbspecifikation"
 
-#: builtins/common.c:264 error.c:453
+#: builtins/common.c:235 error.c:453
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: endast läsbar variabel"
 
-#: builtins/common.c:272
+#: builtins/common.c:243
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s utanför giltigt intervall"
 
-#: builtins/common.c:272 builtins/common.c:274
+#: builtins/common.c:243 builtins/common.c:245
 msgid "argument"
 msgstr "argument"
 
-#: builtins/common.c:274
+#: builtins/common.c:245
 #, c-format
 msgid "%s out of range"
 msgstr "%s utanför giltigt intervall"
 
-#: builtins/common.c:282
+#: builtins/common.c:253
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: inget sådant jobb"
 
-#: builtins/common.c:290
+#: builtins/common.c:261
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: ingen jobbstyrning"
 
-#: builtins/common.c:292
+#: builtins/common.c:263
 msgid "no job control"
 msgstr "ingen jobbstyrning"
 
-#: builtins/common.c:302
+#: builtins/common.c:273
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: begränsat"
 
-#: builtins/common.c:304
+#: builtins/common.c:275
 msgid "restricted"
 msgstr "begränsat"
 
-#: builtins/common.c:312
+#: builtins/common.c:283
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: inte inbyggt i skalet"
 
-#: builtins/common.c:321
+#: builtins/common.c:292
 #, c-format
 msgid "write error: %s"
 msgstr "skrivfel: %s"
 
-#: builtins/common.c:329
-#, c-format
-msgid "error setting terminal attributes: %s"
-msgstr ""
-
-#: builtins/common.c:331
-#, c-format
-msgid "error getting terminal attributes: %s"
-msgstr ""
-
-#: builtins/common.c:563
+#: builtins/common.c:523
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: fel när aktuell katalog hämtades: %s: %s\n"
 
-#: builtins/common.c:629 builtins/common.c:631
+#: builtins/common.c:589 builtins/common.c:591
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: tvetydig jobbspecifikation"
@@ -299,17 +271,17 @@ msgstr "kan endast användas i en funktion"
 msgid "cannot use `-f' to make functions"
 msgstr "det går inte att använda \"-f\" för att göra funktioner"
 
-#: builtins/declare.def:365 execute_cmd.c:4818
+#: builtins/declare.def:365 execute_cmd.c:4696
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: endast läsbar funktion"
 
-#: builtins/declare.def:461
+#: builtins/declare.def:454
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: det går inte att förstöra vektorvariabler på detta sätt"
 
-#: builtins/declare.def:468
+#: builtins/declare.def:461
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: det går inte att konvertera en associativ vektor till indexerad"
@@ -338,7 +310,7 @@ msgstr "%s: inte dynamiskt laddad"
 msgid "%s: cannot delete: %s"
 msgstr "%s: kan inte ta bort: %s"
 
-#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675
+#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4553
 #: shell.c:1439
 #, c-format
 msgid "%s: is a directory"
@@ -354,10 +326,10 @@ msgstr "%s: inte en normal fil"
 msgid "%s: file is too large"
 msgstr "%s: filen är för stor"
 
-#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449
+#: builtins/evalfile.c:185 execute_cmd.c:4623 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
-msgstr "%s: det kår inte att köra binär fil"
+msgstr "%s: det går inte att köra binär fil"
 
 #: builtins/exec.def:212
 #, c-format
@@ -438,11 +410,8 @@ msgstr[1] "Skalkommandon som matchar nyckelorden '"
 
 #: builtins/help.def:168
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"inget hjälpämne matchar \"%s\".  Prova \"help help\" eller \"man -k %s\" "
-"eller \"info %s\"."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "inget hjälpämne matchar \"%s\".  Prova \"help help\" eller \"man -k %s\" eller \"info %s\"."
 
 #: builtins/help.def:185
 #, c-format
@@ -477,7 +446,7 @@ msgstr "det går inte att använda mer än en av -anrw"
 msgid "history position"
 msgstr "historieposition"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: historieexpansionen misslyckades"
@@ -504,55 +473,55 @@ msgstr "Okänt fel"
 msgid "expression expected"
 msgstr "uttryck förväntades"
 
-#: builtins/mapfile.def:241 builtins/read.def:272
+#: builtins/mapfile.def:215 builtins/read.def:271
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ogiltig filidentifierarspecifikation"
 
-#: builtins/mapfile.def:249 builtins/read.def:279
+#: builtins/mapfile.def:223 builtins/read.def:278
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ogiltig filbeskrivare: %s"
 
-#: builtins/mapfile.def:258 builtins/mapfile.def:296
+#: builtins/mapfile.def:232 builtins/mapfile.def:270
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: ogiltigt radantal"
 
-#: builtins/mapfile.def:269
+#: builtins/mapfile.def:243
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: ogiltig vektorstart"
 
-#: builtins/mapfile.def:286
+#: builtins/mapfile.def:260
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: ogiltigt återanropskvanta"
 
-#: builtins/mapfile.def:318
+#: builtins/mapfile.def:292
 msgid "empty array variable name"
 msgstr "tomt vektorvariabelnamn"
 
-#: builtins/mapfile.def:339
+#: builtins/mapfile.def:313
 msgid "array variable support required"
 msgstr "stöd för vektorvariabler krävs"
 
-#: builtins/printf.def:367
+#: builtins/printf.def:364
 #, c-format
 msgid "`%s': missing format character"
 msgstr "\"%s\": formateringstecken saknas"
 
-#: builtins/printf.def:544
+#: builtins/printf.def:541
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "\"%c\": ogiltigt formateringstecken"
 
-#: builtins/printf.def:571
+#: builtins/printf.def:568
 #, c-format
 msgid "warning: %s: %s"
 msgstr "varning: %s: %s"
 
-#: builtins/printf.def:750
+#: builtins/printf.def:747
 msgid "missing hex digit for \\x"
 msgstr "hexadecimal siffra saknas för \\x"
 
@@ -587,12 +556,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Visa listan av kataloger i minnet just nu.  Kataloger hamnar i listan\n"
@@ -698,20 +665,19 @@ msgstr ""
 "    \n"
 "    Den inbyggda \"dirs\" visar katalogstacken."
 
-#: builtins/read.def:248
+#: builtins/read.def:247
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: ogiltig tidsgränsspecifikation"
 
-#: builtins/read.def:574
+#: builtins/read.def:569
 #, c-format
 msgid "read error: %d: %s"
 msgstr "läsfel: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:68
 msgid "can only `return' from a function or sourced script"
-msgstr ""
-"det går bara att göra \"return\" från en funktion eller källinläst skript"
+msgstr "det går bara att göra \"return\" från en funktion eller källinläst skript"
 
 #: builtins/set.def:768
 msgid "cannot simultaneously unset a function and a variable"
@@ -741,11 +707,11 @@ msgstr "%s: inte en funktion"
 msgid "shift count"
 msgstr "skiftantal"
 
-#: builtins/shopt.def:254
+#: builtins/shopt.def:250
 msgid "cannot set and unset shell options simultaneously"
 msgstr "det går inte att sätta och ta bort skalflaggor samtidigt"
 
-#: builtins/shopt.def:319
+#: builtins/shopt.def:315
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ogiltigt skalflaggsnamn"
@@ -849,6 +815,11 @@ msgstr "senaste kommando: %s\n"
 msgid "Aborting..."
 msgstr "Avbryter..."
 
+#: error.c:260
+#, c-format
+msgid "warning: "
+msgstr "varning: "
+
 #: error.c:405
 msgid "unknown command error"
 msgstr "okänt kommandofel"
@@ -875,36 +846,36 @@ msgstr "%s: obunden variabel"
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\atiden gick ut i väntan på indata: automatisk utloggning\n"
 
-#: execute_cmd.c:491
+#: execute_cmd.c:483
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "det går inte att omdiregera standard in från /dev/null: %s"
 
-#: execute_cmd.c:1112
+#: execute_cmd.c:1079
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: \"%c\": ogiltigt formateringstecken"
 
-#: execute_cmd.c:2011
+#: execute_cmd.c:1930
 msgid "pipe error"
 msgstr "rörfel"
 
-#: execute_cmd.c:4363
+#: execute_cmd.c:4243
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: begränsat: det går inte att ange \"/\" i kommandonamn"
 
-#: execute_cmd.c:4454
+#: execute_cmd.c:4334
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: kommandot finns inte"
 
-#: execute_cmd.c:4708
+#: execute_cmd.c:4586
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: felaktig tolk"
 
-#: execute_cmd.c:4857
+#: execute_cmd.c:4735
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "det går inte att duplicera fb %d till fb %d"
@@ -979,7 +950,7 @@ msgstr "%s: uttrycksfel\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: det går inte att komma åt föräldrakatalogen"
 
-#: input.c:94 subst.c:4559
+#: input.c:94 subst.c:4551
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "det går inte att återställa fördröjningsfritt läge för fb %d"
@@ -987,152 +958,151 @@ msgstr "det går inte att återställa fördröjningsfritt läge för fb %d"
 #: input.c:258
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
-"det går inte att allokera en ny filbeskrivare för bashindata från fb %d"
+msgstr "det går inte att allokera en ny filbeskrivare för bashindata från fb %d"
 
 #: input.c:266
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffert finns redan för ny fb %d"
 
-#: jobs.c:466
+#: jobs.c:464
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp rör"
 
-#: jobs.c:887
+#: jobs.c:879
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "avgrenad pid %d fins i körande jobb %d"
 
-#: jobs.c:1005
+#: jobs.c:997
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "tar bort stoppat jobb %d med processgrupp %ld"
 
-#: jobs.c:1110
+#: jobs.c:1102
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) i the_pipeline"
 
-#: jobs.c:1113
+#: jobs.c:1105
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) markerad som fortfarande vid liv"
 
-#: jobs.c:1401
+#: jobs.c:1393
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: ingen sådan pid"
 
-#: jobs.c:1416
+#: jobs.c:1408
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1430 jobs.c:1455
+#: jobs.c:1422 jobs.c:1447
 msgid "Done"
 msgstr "Klart"
 
-#: jobs.c:1435 siglist.c:122
+#: jobs.c:1427 siglist.c:122
 msgid "Stopped"
 msgstr "Stoppat"
 
-#: jobs.c:1439
+#: jobs.c:1431
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stoppat(%s)"
 
-#: jobs.c:1443
+#: jobs.c:1435
 msgid "Running"
 msgstr "Kör"
 
-#: jobs.c:1457
+#: jobs.c:1449
 #, c-format
 msgid "Done(%d)"
 msgstr "Klart(%d)"
 
-#: jobs.c:1459
+#: jobs.c:1451
 #, c-format
 msgid "Exit %d"
 msgstr "Avslut %d"
 
-#: jobs.c:1462
+#: jobs.c:1454
 msgid "Unknown status"
 msgstr "Okänd status"
 
-#: jobs.c:1549
+#: jobs.c:1541
 #, c-format
 msgid "(core dumped) "
 msgstr "(minnesutskrift skapad) "
 
-#: jobs.c:1568
+#: jobs.c:1560
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (ak: %s)"
 
-#: jobs.c:1771
+#: jobs.c:1761
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "barns setpgid (%ld till %ld)"
 
-#: jobs.c:2099 nojobs.c:585
+#: jobs.c:2089 nojobs.c:576
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld är inte ett barn till detta skal"
 
-#: jobs.c:2326
+#: jobs.c:2316
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Ingen uppgift om process %ld"
 
-#: jobs.c:2598
+#: jobs.c:2588
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: jobb %d är stoppat"
 
-#: jobs.c:2820
+#: jobs.c:2810
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: jobbet har avslutat"
 
-#: jobs.c:2829
+#: jobs.c:2819
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: jobb %d är redan i bakgrunden"
 
-#: jobs.c:3492
+#: jobs.c:3482
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: rad %d: "
 
-#: jobs.c:3506 nojobs.c:814
+#: jobs.c:3496 nojobs.c:805
 #, c-format
 msgid " (core dumped)"
 msgstr " (minnesutskrift skapad)"
 
-#: jobs.c:3518 jobs.c:3531
+#: jobs.c:3508 jobs.c:3521
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(ak nu: %s)\n"
 
-#: jobs.c:3563
+#: jobs.c:3553
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp misslyckades"
 
-#: jobs.c:3623
+#: jobs.c:3613
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: linjedisciplin"
 
-#: jobs.c:3633
+#: jobs.c:3623
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3661
+#: jobs.c:3651
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "det går inte att sätta terminalprocessgrupp (%d)"
 
-#: jobs.c:3666
+#: jobs.c:3656
 msgid "no job control in this shell"
 msgstr "ingen jobbstyrning i detta skal"
 
@@ -1263,106 +1233,105 @@ msgstr "här-dokument på rad %d avgränsas av filslut (ville ha \"%s\")"
 #: make_cmd.c:746
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
-"make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall"
+msgstr "make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall"
 
-#: parse.y:2986 parse.y:3218
+#: parse.y:2982 parse.y:3204
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "oväntat filslut vid sökning efter matchande \"%c\""
 
-#: parse.y:3722
+#: parse.y:3708
 msgid "unexpected EOF while looking for `]]'"
 msgstr "oväntat filslut vid sökning efter \"]]\""
 
-#: parse.y:3727
+#: parse.y:3713
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntaxfel i villkorligt uttryck: oväntad symbol \"%s\""
 
-#: parse.y:3731
+#: parse.y:3717
 msgid "syntax error in conditional expression"
 msgstr "syntaxfel i villkorligt uttryck"
 
-#: parse.y:3809
+#: parse.y:3795
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "oväntad symbol \"%s\", \")\" förväntades"
 
-#: parse.y:3813
+#: parse.y:3799
 msgid "expected `)'"
 msgstr "\")\" förväntades"
 
-#: parse.y:3841
+#: parse.y:3827
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "oväntat argument \"%s\" till villkorlig unär operator"
 
-#: parse.y:3845
+#: parse.y:3831
 msgid "unexpected argument to conditional unary operator"
 msgstr "oväntat argument till villkorlig unär operator"
 
-#: parse.y:3885
+#: parse.y:3871
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "oväntad symbol \"%s\", villkorlig binär operator förväntades"
 
-#: parse.y:3889
+#: parse.y:3875
 msgid "conditional binary operator expected"
 msgstr "villkorlig binär operato förväntades"
 
-#: parse.y:3906
+#: parse.y:3892
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "oväntat argument \"%s\" till villkorlig binär operator"
 
-#: parse.y:3910
+#: parse.y:3896
 msgid "unexpected argument to conditional binary operator"
 msgstr "oväntat argument till villkorlig binär operator"
 
-#: parse.y:3921
+#: parse.y:3907
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "oväntad symbol \"%c\" i villkorligt kommando"
 
-#: parse.y:3924
+#: parse.y:3910
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "oväntad symbol \"%s\" i villkorligt kommando"
 
-#: parse.y:3928
+#: parse.y:3914
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "oväntad symbol %d i villkorligt kommando"
 
-#: parse.y:5195
+#: parse.y:5181
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntaxfel när den oväntade symbolen \"%s\""
 
-#: parse.y:5213
+#: parse.y:5199
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntaxfel nära \"%s\""
 
-#: parse.y:5223
+#: parse.y:5209
 msgid "syntax error: unexpected end of file"
 msgstr "syntaxfel: oväntat filslut"
 
-#: parse.y:5223
+#: parse.y:5209
 msgid "syntax error"
 msgstr "syntaxfel"
 
-#: parse.y:5285
+#: parse.y:5271
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Använd \"%s\" fär att lämna skalet.\n"
 
-#: parse.y:5447
+#: parse.y:5433
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "oväntat filslut när matchande \")\" söktes"
 
-#: pcomplete.c:1018
+#: pcomplete.c:1016
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "komplettering: funktion \"%s\" finns inte"
@@ -1372,45 +1341,45 @@ msgstr "komplettering: funktion \"%s\" finns inte"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:285
+#: print_cmd.c:287
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: felaktig anslutning \"%d\""
 
-#: print_cmd.c:1348
+#: print_cmd.c:1347
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: \"%c\": ogiltigt formateringstecken"
 
-#: redir.c:105
+#: redir.c:104
 msgid "file descriptor out of range"
 msgstr "filbeskrivare utanför giltigt intervall"
 
-#: redir.c:148
+#: redir.c:146
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: tvetydig omdirigering"
 
-#: redir.c:152
+#: redir.c:150
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: begränsad: det går inte att skriva över en existerande fil"
 
-#: redir.c:157
+#: redir.c:155
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: begränsad: det går inte att omdirigera utdata"
 
-#: redir.c:162
+#: redir.c:160
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "det går inte att skapa temporärfil för här-dokument: %s"
 
-#: redir.c:517
+#: redir.c:515
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverksfunktion"
 
-#: redir.c:1023
+#: redir.c:992
 msgid "redirection error: cannot duplicate fd"
 msgstr "omdirigeringsfel: det går inte att duplicera fb"
 
@@ -1427,16 +1396,16 @@ msgstr "/tmp måste vara ett giltigt katalognamn"
 msgid "%c%c: invalid option"
 msgstr "%c%c: ogiltig flagga"
 
-#: shell.c:1638
+#: shell.c:1637
 msgid "I have no name!"
 msgstr "Jag har inget namn!"
 
-#: shell.c:1778
+#: shell.c:1777
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, version %s-(%s)\n"
 
-#: shell.c:1779
+#: shell.c:1778
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1445,41 +1414,41 @@ msgstr ""
 "Användning:\t%s [GNU lång flagga] [flagga] ...\n"
 "\t\t%s [GNU lång flagga] [flagga] skriptfil ...\n"
 
-#: shell.c:1781
+#: shell.c:1780
 msgid "GNU long options:\n"
 msgstr "GNU långa flaggor:\n"
 
-#: shell.c:1785
+#: shell.c:1784
 msgid "Shell options:\n"
 msgstr "Skalflaggor:\n"
 
-#: shell.c:1786
+#: shell.c:1785
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD eller -c kommando eller -O shopt_flagga\t\t(bara uppstart)\n"
 
-#: shell.c:1801
+#: shell.c:1800
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s eller -o flagga\n"
 
-#: shell.c:1807
+#: shell.c:1806
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "Skriv \"%s -c 'help set'\" för mer information om skalflaggor.\n"
 
-#: shell.c:1808
+#: shell.c:1807
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "Skriv \"%s -c help\" för mer information om inbyggda skalkommandon.\n"
 
-#: shell.c:1809
+#: shell.c:1808
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 "Använd kommandot \"bashbug\" för att rapportera fel.\n"
 "Skicka synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
 
-#: sig.c:583
+#: sig.c:576
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: ogiltig operation"
@@ -1653,77 +1622,77 @@ msgstr "Okänd signal nr "
 msgid "Unknown Signal #%d"
 msgstr "Okänd signal nr %d"
 
-#: subst.c:1181 subst.c:1302
+#: subst.c:1177 subst.c:1298
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "felaktig substitution: ingen avslutande \"%s\" i %s"
 
-#: subst.c:2458
+#: subst.c:2450
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: det går inte att tilldela listor till vektormedlemmar"
 
-#: subst.c:4456 subst.c:4472
+#: subst.c:4448 subst.c:4464
 msgid "cannot make pipe for process substitution"
 msgstr "det går inte att skapa rör för processubstitution"
 
-#: subst.c:4504
+#: subst.c:4496
 msgid "cannot make child for process substitution"
 msgstr "det går inte att skapa barn för processubstitution"
 
-#: subst.c:4549
+#: subst.c:4541
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "det går inte att öppna namngivet rör %s för läsning"
 
-#: subst.c:4551
+#: subst.c:4543
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "det går inte att öppna namngivet rör %s för skrivning"
 
-#: subst.c:4569
+#: subst.c:4561
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "det går inte att duplicera namngivet rör %s som fb %d"
 
-#: subst.c:4765
+#: subst.c:4757
 msgid "cannot make pipe for command substitution"
 msgstr "det går inte att skapa rör för kommandosubstitution"
 
-#: subst.c:4799
+#: subst.c:4791
 msgid "cannot make child for command substitution"
 msgstr "det går inte att skapa barn för kommandosubstitution"
 
-#: subst.c:4816
+#: subst.c:4808
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: det går inte att duplicera rör som fb 1"
 
-#: subst.c:5318
+#: subst.c:5310
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametern tom eller inte satt"
 
-#: subst.c:5608
+#: subst.c:5600
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: delstränguttryck < 0"
 
-#: subst.c:6660
+#: subst.c:6646
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: felaktig substitution"
 
-#: subst.c:6740
+#: subst.c:6722
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: det går inte att tilldela på detta sätt"
 
-#: subst.c:7499
+#: subst.c:7441
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "felaktig ersättning: ingen avslutande \"`\" i %s"
 
-#: subst.c:8375
+#: subst.c:8314
 #, c-format
 msgid "no match: %s"
 msgstr "ingen match: %s"
@@ -1760,82 +1729,72 @@ msgstr "%s: binär operator förväntades"
 msgid "missing `]'"
 msgstr "\"]\" saknas"
 
-#: trap.c:201
+#: trap.c:200
 msgid "invalid signal number"
 msgstr "ogiltigt signalnummer"
 
-#: trap.c:324
+#: trap.c:323
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: felaktigt värde i trap_list[%d]: %p"
 
-#: trap.c:328
+#: trap.c:327
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
-"run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig "
-"själv"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig själv"
 
-#: trap.c:372
+#: trap.c:371
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: felaktig signal %d"
 
-#: variables.c:358
+#: variables.c:354
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "fel vid import av funktionsdefinition för \"%s\""
 
-#: variables.c:736
+#: variables.c:732
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "skalnivå (%d) för hög, återställer till 1"
 
-#: variables.c:1898
+#: variables.c:1891
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: ingen funktionskontext i aktuellt sammanhang"
 
-#: variables.c:3127
+#: variables.c:3120
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: ingen funktionskontext i aktuellt sammanhang"
 
-#: variables.c:3344 variables.c:3353
+#: variables.c:3337 variables.c:3346
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "ogiltigt tecken %d i exportstr för %s"
 
-#: variables.c:3359
+#: variables.c:3352
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "inget \"=\" i exportstr för %s"
 
-#: variables.c:3794
+#: variables.c:3787
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr ""
-"pop_var_context: huvudet på shell_variables är inte en funktionskontext"
+msgstr "pop_var_context: huvudet på shell_variables är inte en funktionskontext"
 
-#: variables.c:3807
+#: variables.c:3800
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: ingen kontext global_variables"
 
-#: variables.c:3881
+#: variables.c:3874
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
-"pop_scope: huvudet på shell_variables är inte en temporär omgivningsräckvidd"
+msgstr "pop_scope: huvudet på shell_variables är inte en temporär omgivningsräckvidd"
 
 #: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2008 Free Software Foundation, Inc."
 msgstr "Copyright © 2008 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86
 #, c-format
@@ -1845,8 +1804,7 @@ msgstr "GNU bash, version %s (%s)\n"
 #: version.c:91
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr ""
-"Detta är fri programvara, det får fritt ändra och vidaredistribuera den.\n"
+msgstr "Detta är fri programvara, det får fritt ändra och vidaredistribuera den.\n"
 
 #: version.c:92
 #, c-format
@@ -1902,13 +1860,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] namn [namn ...]"
 
 #: builtins.c:51
-msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
-"bind [-lpvsPVS] [-m tangentkarta] [-f filenamn] [-q namn] [-u namn] [-r "
-"tangentsekv] [-x tangentsekv:skalkommando] [tangentsekv:readline-funktion "
-"eller readline-kommando]"
+msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpvsPVS] [-m tangentkarta] [-f filenamn] [-q namn] [-u namn] [-r tangentsekv] [-x tangentsekv:skalkommando] [tangentsekv:readline-funktion eller readline-kommando]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -1996,8 +1949,7 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e rnamn] [-lnr] [första] [sista] eller fc -s [mnst=ers] [kommando]"
+msgstr "fc [-e rnamn] [-lnr] [första] [sista] eller fc -s [mnst=ers] [kommando]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2016,12 +1968,8 @@ msgid "help [-ds] [pattern ...]"
 msgstr "help [-ds] [mönster ...]"
 
 #: builtins.c:121
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d avstånd] [n] eller history -anrw [filnamn] eller history -"
-"ps arg [arg...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d avstånd] [n] eller history -anrw [filnamn] eller history -ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2032,24 +1980,16 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [jobbspec ...]"
 
 #: builtins.c:132
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobbspec ... eller kill -l "
-"[sigspec]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobbspec ... eller kill -l [sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t "
-"timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a vektor] [-d avgr] [-i text] [-n ntkn] [-p prompt] [-t "
-"tidgräns] [-u fb] [namn ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a vektor] [-d avgr] [-i text] [-n ntkn] [-p prompt] [-t tidgräns] [-u fb] [namn ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2144,12 +2084,8 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case ORD in [MÖNSTER [| MÖNSTER]...) KOMMANDON ;;]... esac"
 
 #: builtins.c:192
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if KOMMANDON; then KOMMANDON; [ elif KOMMANDON; then KOMMANDON; ]... [ else "
-"KOMMANDON; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if KOMMANDON; then KOMMANDON; [ elif KOMMANDON; then KOMMANDON; ]... [ else KOMMANDON; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2160,94 +2096,66 @@ msgid "until COMMANDS; do COMMANDS; done"
 msgstr "until KOMMANDON; do KOMMANDON; done"
 
 #: builtins.c:198
-msgid "coproc [NAME] command [redirections]"
-msgstr ""
-
-#: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
 msgstr "function namn { KOMMANDON ; } or namn () { KOMMANDON ; }"
 
-#: builtins.c:202
+#: builtins.c:200
 msgid "{ COMMANDS ; }"
 msgstr "{ KOMMANDON ; }"
 
-#: builtins.c:204
+#: builtins.c:202
 msgid "job_spec [&]"
 msgstr "jobbspec [&]"
 
-#: builtins.c:206
+#: builtins.c:204
 msgid "(( expression ))"
 msgstr "(( uttryck ))"
 
-#: builtins.c:208
+#: builtins.c:206
 msgid "[[ expression ]]"
 msgstr "[[ uttryck ]]"
 
-#: builtins.c:210
+#: builtins.c:208
 msgid "variables - Names and meanings of some shell variables"
 msgstr "variabler - Namn och betydelse av några skalvariabler"
 
-#: builtins.c:213
+#: builtins.c:211
 msgid "pushd [-n] [+N | -N | dir]"
 msgstr "pushd [-n] [+N | -N | kat]"
 
-#: builtins.c:217
+#: builtins.c:215
 msgid "popd [-n] [+N | -N]"
 msgstr "popd [-n] [+N | -N]"
 
-#: builtins.c:221
+#: builtins.c:219
 msgid "dirs [-clpv] [+N] [-N]"
 msgstr "dirs [-clpv] [+N] [-N]"
 
-#: builtins.c:224
+#: builtins.c:222
 msgid "shopt [-pqsu] [-o] [optname ...]"
 msgstr "shopt [-pqsu] [-o] [flgnamn ...]"
 
-#: builtins.c:226
+#: builtins.c:224
 msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [argument]"
 
-#: builtins.c:229
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
-"wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
-"[name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-o flagga] [-A åtgärd] [-G globmnst] [-W "
-"ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S "
-"suffix] [namn ...]"
+#: builtins.c:227
+msgid "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-o flagga] [-A åtgärd] [-G globmnst] [-W ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S suffix] [namn ...]"
 
-#: builtins.c:233
-msgid ""
-"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o flagga]  [-A åtgärd] [-G globmnst] [-W "
-"ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S "
-"suffix] [ord]"
+#: builtins.c:231
+msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o flagga]  [-A åtgärd] [-G globmnst] [-W ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S suffix] [ord]"
 
-#: builtins.c:237
+#: builtins.c:235
 msgid "compopt [-o|+o option] [name ...]"
 msgstr "compopt [-o|+o flagga] [namn ...]"
 
-#: builtins.c:240
-msgid ""
-"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
-"quantum] [array]"
-msgstr ""
-"mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c "
-"kvanta] [vektor]"
-
-#: builtins.c:242
-#, fuzzy
-msgid ""
-"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
-"quantum] [array]"
-msgstr ""
-"mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c "
-"kvanta] [vektor]"
+#: builtins.c:238
+msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c kvanta] [vektor]"
 
-#: builtins.c:254
+#: builtins.c:250
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2262,14 +2170,12 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Definiera eller visa alias.\n"
 "    \n"
-"    Utan argumen skriver \"alias\" listan på alias på den återanvändbara "
-"formen\n"
+"    Utan argumen skriver \"alias\" listan på alias på den återanvändbara formen\n"
 "    \"alias NAMN=VÄRDE\" på standard ut.\n"
 "    \n"
 "    Annars är ett alias definierat för varje NAMN vars VÄRDE är angivet.\n"
@@ -2283,7 +2189,7 @@ msgstr ""
 "    alias returnerar sant om inte ett NAMN ges för vilket inget alias har\n"
 "    definierats."
 
-#: builtins.c:276
+#: builtins.c:272
 msgid ""
 "Remove each NAME from the list of defined aliases.\n"
 "    \n"
@@ -2299,7 +2205,7 @@ msgstr ""
 "    \n"
 "    Returnerar framgång om inte ett NAMN inte är ett existerande alias."
 
-#: builtins.c:289
+#: builtins.c:285
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2311,24 +2217,20 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
@@ -2339,35 +2241,28 @@ msgid ""
 msgstr ""
 "Sätt Readline-tangentbindningar och -variabler.\n"
 "    \n"
-"    Bind en tangentsekvens till en Readline-funktion eller -makro, eller "
-"sätt\n"
+"    Bind en tangentsekvens till en Readline-funktion eller -makro, eller sätt\n"
 "    en Readline-variabel.  Syntaxen för argument vid sidan om flaggor är\n"
-"    densamma som den i ~/.inputrc, men måste skickas som ett ensamt "
-"argument:\n"
+"    densamma som den i ~/.inputrc, men måste skickas som ett ensamt argument:\n"
 "    t.ex., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "    \n"
 "    Flaggor:\n"
 "      -m  tangentkarta   Använt TANGENTKARTA som tangentkarta under detta\n"
 "                         kommando.  Acceptabla tangentkartenamn är emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command och vi-insert.\n"
 "      -l                 Lista namnen på funktioner.\n"
 "      -P                 List funktionsnamn och bindningar.\n"
 "      -p                 List funktioner och bindningar på ett sätt som kan\n"
 "                         återanvändas som indata.\n"
-"      -S                 Lista tangentsekvenser som anropar makron och "
-"deras\n"
+"      -S                 Lista tangentsekvenser som anropar makron och deras\n"
 "                         värden.\n"
-"      -s                 Lista tangentskevenser som anropar makron och "
-"deras\n"
-"                         värden på ett sätt som kan återanvändas som "
-"indata.\n"
+"      -s                 Lista tangentskevenser som anropar makron och deras\n"
+"                         värden på ett sätt som kan återanvändas som indata.\n"
 "      -V                 Lista variabelnamn och värden\n"
 "      -v                 Lista variabelnamn och värden på ett sätt som kan\n"
 "                         återanvändas som indata.\n"
-"      -q  funktionsnamn  Fråga efter vilka tangenter som anroper den "
-"namngivna\n"
+"      -q  funktionsnamn  Fråga efter vilka tangenter som anroper den namngivna\n"
 "                         funktionen\n"
 "      -u  funktionsnamn  Tag bort alla tangenter som är bundna till den\n"
 "                         namngivna funktionen.\n"
@@ -2379,7 +2274,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    bind returnerar 0 om inte en okänd flagga ges eller ett fel inträffar."
 
-#: builtins.c:326
+#: builtins.c:322
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2397,7 +2292,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returvärdet är 0 förutsatt att N är större eller lika med 1."
 
-#: builtins.c:338
+#: builtins.c:334
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2409,21 +2304,19 @@ msgid ""
 msgstr ""
 "Återuppta for-, while eller until-slinga.\n"
 "    \n"
-"    Återuppta nästa iteration i den omslutande FOR-, WHILE- eller UNTIL-"
-"slingan.\n"
+"    Återuppta nästa iteration i den omslutande FOR-, WHILE- eller UNTIL-slingan.\n"
 "    Om N anges, återuppta den N:e omslutande slingan.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Slutstatus är 0 förutsatt att N är större eller lika med 1."
 
-#: builtins.c:350
+#: builtins.c:346
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2431,18 +2324,16 @@ msgid ""
 msgstr ""
 "Exekvera en i skalet inbyggd funktion.\n"
 "    \n"
-"    Exekvera SKALINBYGGD med argument ARG utan att utföra "
-"kommandouppslagning.\n"
+"    Exekvera SKALINBYGGD med argument ARG utan att utföra kommandouppslagning.\n"
 "    Detta är användbart när du vill implementera om en inbyggd funktion i\n"
 "    skalet som en skalfunktion, men behöver köra den inbyggda funktionen i\n"
 "    skalfunktionen.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar slutstatus från SKALINBYGGD, eller falkst om SKALINBYGGD "
-"inte\n"
+"    Returnerar slutstatus från SKALINBYGGD, eller falkst om SKALINBYGGD inte\n"
 "    är inbyggd i skalet."
 
-#: builtins.c:365
+#: builtins.c:361
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2470,26 +2361,20 @@ msgstr ""
 "    Returnerar 0 om inte skalet inte kör en skalfunktion eller UTTR är\n"
 "    ogiltigt."
 
-#: builtins.c:383
+#: builtins.c:379
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2512,8 +2397,7 @@ msgstr ""
 "    katalognamn är detsamma som aktuell katalog.  Om KAT börjar med ett\n"
 "    snedstreck (/) används inte CDPATH.\n"
 "    \n"
-"    Om katalogen inte kan hittas, och skalvariabeln \"cdable_vars\" är "
-"satt,\n"
+"    Om katalogen inte kan hittas, och skalvariabeln \"cdable_vars\" är satt,\n"
 "    antas ordet vara ett variabelnamn.  Om den variabeln har ett värde\n"
 "    används dess värde för KAT.\n"
 "    \n"
@@ -2522,13 +2406,12 @@ msgstr ""
 "        -P\tanvänd den fysiska katalogstrukturen utan att följa\n"
 "    \tsymboliska länkar\n"
 "    \n"
-"    Standardvärde är att följa symboliska längar, som om \"-L\" vore "
-"angivet.\n"
+"    Standardvärde är att följa symboliska längar, som om \"-L\" vore angivet.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar 0 om katalogen är ändrad; skilt från noll annars."
 
-#: builtins.c:411
+#: builtins.c:407
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2553,11 +2436,10 @@ msgstr ""
 "    Som standard beter sig \"pwd\" som om \"-L\" vore angivet.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar 0 om inte en ogiltig flagga anges eller den aktuella "
-"katalogen\n"
+"    Returnerar 0 om inte en ogiltig flagga anges eller den aktuella katalogen\n"
 "    inte kan läsas."
 
-#: builtins.c:428
+#: builtins.c:424
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2573,7 +2455,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:439
+#: builtins.c:435
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2585,7 +2467,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:448
+#: builtins.c:444
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2597,13 +2479,12 @@ msgstr ""
 "    Slutstatus:\n"
 "    Misslyckas alltid."
 
-#: builtins.c:457
+#: builtins.c:453
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2628,11 +2509,10 @@ msgstr ""
 "      -V\tskriv en mer utförlig beskrivning om varje KOMMANDO\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar slutstatus från KOMMANDO, eller misslyckande om KOMMANDO "
-"inte\n"
+"    Returnerar slutstatus från KOMMANDO, eller misslyckande om KOMMANDO inte\n"
 "    finns."
 
-#: builtins.c:476
+#: builtins.c:472
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2660,8 +2540,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2693,15 +2572,13 @@ msgstr ""
 "    För variabler med attributet heltal utförs atitmetisk beräkning (se\n"
 "    kommandot \"let\") när variabeln tilldelas ett värde.\n"
 "    \n"
-"    Vid användning i en funktion gör \"declare\" NAMN lokala, som med "
-"kommandot\n"
+"    Vid användning i en funktion gör \"declare\" NAMN lokala, som med kommandot\n"
 "    \"local\".\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
-"inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
-#: builtins.c:512
+#: builtins.c:508
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2711,7 +2588,7 @@ msgstr ""
 "    \n"
 "    Föråldrat.  Se \"help declare\"."
 
-#: builtins.c:520
+#: builtins.c:516
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2730,15 +2607,14 @@ msgstr ""
 "    Skapa en lokal variabel kallad NAMN, och ge den VÄRDE.  FLAGGA kan\n"
 "    vara alla flaggor som accepteras av \"declare\".\n"
 "    \n"
-"    Lokala variabler kan endast användas i en funktion; de är synliga "
-"endast\n"
+"    Lokala variabler kan endast användas i en funktion; de är synliga endast\n"
 "    för funktionen de definieras i och dess barn.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges, ett fel inträffar\n"
 "    eller skalet inte exekverar en funktion."
 
-#: builtins.c:537
+#: builtins.c:533
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2796,7 +2672,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte ett skrivfel inträffar."
 
-#: builtins.c:571
+#: builtins.c:567
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2818,7 +2694,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte ett skrivfel inträffar."
 
-#: builtins.c:586
+#: builtins.c:582
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2872,12 +2748,11 @@ msgstr ""
 "    Returnerar framgång om inte NAMN inte är inbyggd i skalet eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:614
+#: builtins.c:610
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2885,14 +2760,13 @@ msgid ""
 msgstr ""
 "Exekvera argument som ett skalkommando.\n"
 "    \n"
-"    Kombinera ARGument till en enda sträng, och använd resultatet som "
-"indata\n"
+"    Kombinera ARGument till en enda sträng, och använd resultatet som indata\n"
 "    till skalet och exekvera de resulterande kommandona.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar slutstatus av kommandot eller framgång om kommandot är tomt."
 
-#: builtins.c:626
+#: builtins.c:622
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2969,13 +2843,12 @@ msgstr ""
 "    Returnerar framgång om en flagga hittas, misslyckas om slutet av\n"
 "    flaggorna nås eller ett fel inträffar."
 
-#: builtins.c:668
+#: builtins.c:664
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2983,18 +2856,15 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Ersätt skalet med det givna kommandot.\n"
 "    \n"
-"    Exekvera KOMMANDO genom att ersätta detta skal med det angivna "
-"programmet.\n"
+"    Exekvera KOMMANDO genom att ersätta detta skal med det angivna programmet.\n"
 "    ARGUMENT blir argument till KOMMANDO.  Om KOMMANDO inte anges kommer\n"
 "    eventuella omdirigeringar att gälla för det aktuella skalet.\n"
 "    \n"
@@ -3010,7 +2880,7 @@ msgstr ""
 "    Returnerar framgång om inte KOMMANDO inte finns eller ett fel vid\n"
 "    omdirigering inträffar."
 
-#: builtins.c:689
+#: builtins.c:685
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3022,12 +2892,11 @@ msgstr ""
 "    Avslutar skalet med statusen N.  Om N utelämnas är slutstatusen den\n"
 "    hos det sist körda kommandot."
 
-#: builtins.c:698
+#: builtins.c:694
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Avsluta ett inloggningsskal.\n"
@@ -3035,19 +2904,17 @@ msgstr ""
 "    Avslutar ett inloggningsskal med slutstatus N.  Returnerar ett fel om\n"
 "    det inte körs i ett inloggningsskal."
 
-#: builtins.c:708
+#: builtins.c:704
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3061,8 +2928,7 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "Visa eller kör kommandon från historielistan.\n"
 "    \n"
@@ -3081,17 +2947,15 @@ msgstr ""
 "    Med formatet \"fc -s [mnst=ers ...] [kommando]\" körs KOMMANDO om efter\n"
 "    att substitutionen GAMMALT=NYTT har utförts.\n"
 "    \n"
-"    Ett användbart alias att använda med detta är r=\"fc -s\", så att "
-"skriva\n"
-"    \"r cc\" kör senaste kommandot som börjar med \"cc\" och att skriva \"r"
-"\" kör\n"
+"    Ett användbart alias att använda med detta är r=\"fc -s\", så att skriva\n"
+"    \"r cc\" kör senaste kommandot som börjar med \"cc\" och att skriva \"r\" kör\n"
 "    om senaste kommandot.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång eller status på exekverat kommando, skilt från noll\n"
 "    om ett fel inträffar."
 
-#: builtins.c:738
+#: builtins.c:734
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3112,14 +2976,12 @@ msgstr ""
 "    Status på kommandot som placerades i förgrunden, eller misslyckande om\n"
 "    ett fel inträffar."
 
-#: builtins.c:753
+#: builtins.c:749
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3127,24 +2989,20 @@ msgid ""
 msgstr ""
 "Flytta jobb till bakgrunden.\n"
 "    \n"
-"    Placera jobben som idintifieras av varje JOBBSPEC i bakgrunden som om "
-"de\n"
-"    hade startats med \"&\".  Om ingen JOBBSPEC finns används skalets "
-"begrepp\n"
+"    Placera jobben som idintifieras av varje JOBBSPEC i bakgrunden som om de\n"
+"    hade startats med \"&\".  Om ingen JOBBSPEC finns används skalets begrepp\n"
 "    om det aktuella jobbet.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett "
-"fel\n"
+"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:767
+#: builtins.c:763
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3164,8 +3022,7 @@ msgstr ""
 "Kom ihåg eller visa programlägen.\n"
 "    \n"
 "    Bestäm och kom ihåg den fullständiga sökvägen till varje kommando NAMN.\n"
-"    Om inget argument ges visas information om kommandon som finns i "
-"minnet.\n"
+"    Om inget argument ges visas information om kommandon som finns i minnet.\n"
 "    \n"
 "    Flaggor:\n"
 "      -d\t\tglöm platsen i minnet för varje NAMN\n"
@@ -3181,7 +3038,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte NAMN inte hittas eller en ogiltig flagga ges."
 
-#: builtins.c:792
+#: builtins.c:788
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3199,14 +3056,12 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Visa information om inbyggda kommandon.\n"
 "    \n"
 "    Visar korta sammanfattningar om inbyggda kommandon.  Om MÖNSTER anges\n"
-"    ges detaljerad hjälp om alla kommandon som matchar MÖNSTER, annars "
-"skrivs\n"
+"    ges detaljerad hjälp om alla kommandon som matchar MÖNSTER, annars skrivs\n"
 "    listan med hjälpämnen.\n"
 "    \n"
 "    Flaggor:\n"
@@ -3219,10 +3074,9 @@ msgstr ""
 "      MÖNSTER\tMönster som anger hjälpämnen\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte MÖNSTER inte finns eller en ogiltig flagga "
-"ges."
+"    Returnerar framgång om inte MÖNSTER inte finns eller en ogiltig flagga ges."
 
-#: builtins.c:816
+#: builtins.c:812
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3249,8 +3103,7 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3274,21 +3127,17 @@ msgstr ""
 "    \tatt lagra det i historielistan\n"
 "      -s\tlägg till ARG till historielistan som en ensam post\n"
 "    \n"
-"    Om FILENAMN anges används det som historiefil.  Annars, om $HISTFILE "
-"har\n"
+"    Om FILENAMN anges används det som historiefil.  Annars, om $HISTFILE har\n"
 "    ett värde används det, annars ~/.bash_history.\n"
 "    \n"
-"    Om variabeln $HISTTIMEFORMAT är satt och inte tom används dess värde "
-"som\n"
-"    en formatsträng till strftime(3) för att skriva tidsstämplar "
-"tillhörande\n"
+"    Om variabeln $HISTTIMEFORMAT är satt och inte tom används dess värde som\n"
+"    en formatsträng till strftime(3) för att skriva tidsstämplar tillhörande\n"
 "    varje visad historiepost.  Inga tidsstämplar skrivs annars.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
-"inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
-#: builtins.c:852
+#: builtins.c:848
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3328,11 +3177,10 @@ msgstr ""
 "    i ARG har ersatts med process-id:t för det jobbets processgruppledare.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
-"inträffar.\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar.\n"
 "    Om -x används returneras slutstatus från KOMMANDO."
 
-#: builtins.c:879
+#: builtins.c:875
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3362,7 +3210,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga eller JOBBSPEC ges."
 
-#: builtins.c:898
+#: builtins.c:894
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3385,8 +3233,7 @@ msgid ""
 msgstr ""
 "Skicka en signal till ett jobb.\n"
 "    \n"
-"    Skicka processerna som identifieras av PID eller JOBBSPEC signalerna "
-"som\n"
+"    Skicka processerna som identifieras av PID eller JOBBSPEC signalerna som\n"
 "    namnges av SIGSPEC eller SIGNUM.  Om varken SIGSPEC eller SIGNUM är\n"
 "    angivna antas SIGTERM.\n"
 "    \n"
@@ -3396,25 +3243,22 @@ msgstr ""
 "      -l\tlista signalnamnen.  Om argument följer \"-l\" antas de vara\n"
 "    \tsignalnummer som namn skall listas för\n"
 "    \n"
-"    Kill är inbyggt i skalet av två skäl: det tillåter att jobb-id:n "
-"används\n"
-"    istället för process-id:n, och det tillåter processer att dödas om "
-"gränsen\n"
+"    Kill är inbyggt i skalet av två skäl: det tillåter att jobb-id:n används\n"
+"    istället för process-id:n, och det tillåter processer att dödas om gränsen\n"
 "    för hur många processer du får skapa har nåtts.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga angivits eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:921
+#: builtins.c:917
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3452,12 +3296,10 @@ msgid ""
 msgstr ""
 "Evaluera aritmetiska uttryck.\n"
 "    \n"
-"    Evaluera varje ARG som ett aritmetiskt uttryck.  Evaluering görs i "
-"heltal\n"
+"    Evaluera varje ARG som ett aritmetiskt uttryck.  Evaluering görs i heltal\n"
 "    med fix bredd utan kontroll av spill, fast division med 0 fångas och\n"
 "    flaggas som ett fel.  Följande lista över operatorer är grupperad i\n"
-"    nivåer av operatorer med samma precedens.  Nivåerna är listade i "
-"ordning\n"
+"    nivåer av operatorer med samma precedens.  Nivåerna är listade i ordning\n"
 "    med sjunkande precedens.\n"
 "    \n"
 "    \tid++, id--\tpostinkrementering av variabel, postdekrementering\n"
@@ -3486,30 +3328,24 @@ msgstr ""
 "    uttryck.  Variablerna behöver inte ha sina heltalsattribut påslagna för\n"
 "    att användas i ett uttryck.\n"
 "    \n"
-"    Operatorer beräknas i precedensordning.  Delutryck i parenteser "
-"beräknas\n"
+"    Operatorer beräknas i precedensordning.  Delutryck i parenteser beräknas\n"
 "    först och kan åsidosätta precedensreglerna ovan.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 "
-"annars."
+"    Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 annars."
 
-#: builtins.c:966
-#, fuzzy
+#: builtins.c:962
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3524,35 +3360,29 @@ msgid ""
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input "
-"is\n"
+"      -t timeout\ttime out and return failure if a complete line of input is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
-"    \t\texit status is greater than 128 if the timeout is exceeded\n"
+"    \t\tfractional number.  The exit status is greater than 128 if\n"
+"    \t\tthe timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Läs en rad från standard in och dela upp den i fält.\n"
 "    \n"
 "    Läser en ensam rad från standard in, eller från filbeskrivare FB om\n"
-"    flaggan -u ges.  Raden delas upp i fält som vid orduppdelning, och "
-"första\n"
-"    ordet tilldelas det första NAMNet, andra ordet till det andra NAMNet, "
-"och\n"
+"    flaggan -u ges.  Raden delas upp i fält som vid orduppdelning, och första\n"
+"    ordet tilldelas det första NAMNet, andra ordet till det andra NAMNet, och\n"
 "    så vidare, med eventuella återstående ord tilldelade till det sista\n"
 "    NAMNet.  Endast tecknen som finns i $IFS används som ordavgränsare.\n"
 "    \n"
 "    Om inga NAMN anges, lagras den inlästa raden i variabeln REPLY.\n"
 "    \n"
 "    Flaggor:\n"
-"      -a vektor\ttilldela de inlästa orden till sekvensiella index i "
-"vektor-\n"
+"      -a vektor\ttilldela de inlästa orden till sekvensiella index i vektor-\n"
 "    \t\tvariabeln VEKTOR, med start från noll\n"
 "      -d avgr\tfortsätt tills det första tecknet i AVGR lästs, istället för\n"
 "    \t\tnyrad\n"
@@ -3575,7 +3405,7 @@ msgstr ""
 "    Returkoden är noll om inte filslut nås, läsningens tidsgräns överskrids\n"
 "    eller en ogiltig filbeskrivare ges som argument till -u."
 
-#: builtins.c:1006
+#: builtins.c:1001
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3596,7 +3426,7 @@ msgstr ""
 "    Returnerar N, eller misslyckande om skalet inte kör en funktion eller\n"
 "    skript."
 
-#: builtins.c:1019
+#: builtins.c:1014
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3639,8 +3469,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3688,8 +3517,7 @@ msgstr ""
 "      -e  Avsluta omedelbart om ett kommando avslutar med nollskild status.\n"
 "      -f  Avaktivera filnamnsgenerering (globbing).\n"
 "      -h  Kom ihåg platsen för kommandon när de slås upp.\n"
-"      -k  Alla tilldelningsargument placeras i miljön för ett kommando, "
-"inte\n"
+"      -k  Alla tilldelningsargument placeras i miljön för ett kommando, inte\n"
 "          bara de som föregår kommandonamnet.\n"
 "      -m  Jobbstyrning är aktiverat.\n"
 "      -n  Läs kommandon men exekvera dem inte.\n"
@@ -3704,8 +3532,7 @@ msgstr ""
 "              hashall      samma som -h\n"
 "              histexpand   samma som -H\n"
 "              history      aktivera kommandohistoria\n"
-"              ignoreeof    skalet kommer inte avsluta vid läsning av "
-"filslut\n"
+"              ignoreeof    skalet kommer inte avsluta vid läsning av filslut\n"
 "              interactive-comments\n"
 "                           tillåt kommentarer att förekomma i interaktiva\n"
 "                           kommandon\n"
@@ -3732,8 +3559,7 @@ msgstr ""
 "              xtrace       samma som -x\n"
 "      -p  Slås på när den verkliga och effektiva användar-id:n inte stämmer\n"
 "          överens.  Avaktiverar bearbetning av $ENV-filen och import av\n"
-"          skalfunktioner.  Att slå av denna flagga får den effektiva uid "
-"och\n"
+"          skalfunktioner.  Att slå av denna flagga får den effektiva uid och\n"
 "          gid att sättas till den verkliga uid och gid.\n"
 "      -t  Avsluta efter att ha läst och exekverat ett kommando.\n"
 "      -u  Behandla osatta variabler som fel vid substitution.\n"
@@ -3748,12 +3574,10 @@ msgstr ""
 "      -P  Om satt följs inte symboliska länkar när kommandon såsom cd körs\n"
 "          som ändrar aktuell katalog.\n"
 "      -T  Om satt ärvs DEBUG-fällan av skalfunktioner.\n"
-"      -   Tilldela eventuella återstående argument till "
-"positionsparametrar.\n"
+"      -   Tilldela eventuella återstående argument till positionsparametrar.\n"
 "          Flaggorna -x och -v slås av.\n"
 "    \n"
-"    Användning av + istället för - får dessa flaggor att slås av.  "
-"Flaggorna\n"
+"    Användning av + istället för - får dessa flaggor att slås av.  Flaggorna\n"
 "    kan även användas vid uppstart av skalet.  Den aktuella uppsättningen\n"
 "    flaggor finns i $-.  De återstående n ARGumenten är positionsparametrar\n"
 "    och tilldelas, i ordning, till $1, $2, .. $n.  Om inga ARGument ges\n"
@@ -3762,7 +3586,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges."
 
-#: builtins.c:1101
+#: builtins.c:1096
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3772,8 +3596,7 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3798,13 +3621,12 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN endast är\n"
 "    läsbart."
 
-#: builtins.c:1121
+#: builtins.c:1116
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3831,7 +3653,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
-#: builtins.c:1140
+#: builtins.c:1135
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3867,7 +3689,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
-#: builtins.c:1161
+#: builtins.c:1156
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3879,14 +3701,13 @@ msgid ""
 msgstr ""
 "Skifta positionsparametrar.\n"
 "    \n"
-"    Byt namn på positionsparametrarna $N+1,$N+2 ... till $1,$2 ...  Om N "
-"inte\n"
+"    Byt namn på positionsparametrarna $N+1,$N+2 ... till $1,$2 ...  Om N inte\n"
 "    anges antas det vara 1.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte N är negativt eller större än $#."
 
-#: builtins.c:1173 builtins.c:1188
+#: builtins.c:1168 builtins.c:1183
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3901,8 +3722,7 @@ msgid ""
 msgstr ""
 "Exekvera kommandon från en fil i det aktuella skalet.\n"
 "    \n"
-"    Läs och exekvera kommandon från FILNAMN i det aktuella skalet.  "
-"Posterna\n"
+"    Läs och exekvera kommandon från FILNAMN i det aktuella skalet.  Posterna\n"
 "    i $PATH används för att hitta katalogen som innehåller FILNAMN.  Om\n"
 "    något ARGUMENT ges blir de positionsparametrar när FILNAMN körs.\n"
 "    \n"
@@ -3910,7 +3730,7 @@ msgstr ""
 "    Returnerar status på det sista kommandot som körs i FILNAMN, misslyckas\n"
 "    om FILNAMN inte kan läsas."
 
-#: builtins.c:1204
+#: builtins.c:1199
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3932,11 +3752,10 @@ msgstr ""
 "      -f\tframtvinga suspendering, även om skalet är ett inloggningsskal\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett "
-"fel\n"
+"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:1220
+#: builtins.c:1215
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3967,8 +3786,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3989,8 +3807,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4084,7 +3901,7 @@ msgstr ""
 "    Returnerar framgång om UTTR beräknas till sant.  Misslyckas ifall UTTR\n"
 "    beräknas till falskt eller ett ogiltigt argument ges."
 
-#: builtins.c:1296
+#: builtins.c:1291
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4093,16 +3910,14 @@ msgid ""
 msgstr ""
 "Beräkna villkorligt uttryck.\n"
 "    \n"
-"    Detta är en synonym till det inbyggda \"test\", men det sista "
-"argumentet\n"
+"    Detta är en synonym till det inbyggda \"test\", men det sista argumentet\n"
 "    måste vara en bokstavlig \"]\", för att matcha den inledande \"[\"."
 
-#: builtins.c:1305
+#: builtins.c:1300
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4110,19 +3925,17 @@ msgid ""
 msgstr ""
 "Visa processtider.\n"
 "    \n"
-"    Skriver ut den sammanlagda användar- och systemtiden för skalet och "
-"alla\n"
+"    Skriver ut den sammanlagda användar- och systemtiden för skalet och alla\n"
 "    dess barnprocesser.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:1317
+#: builtins.c:1312
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4131,26 +3944,22 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
 "    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "Fånga signaler och andra händelser.\n"
 "    \n"
@@ -4166,8 +3975,7 @@ msgstr ""
 "    Om en SIGNALSPEC är EXIT (0) exekveras ARG vid avslut från skalet.  Om\n"
 "    en SIGNALSPEC är DEBUG exekveras ARG före varje enkelt kommando.\n"
 "    \n"
-"    Om inga argument ges skriver trap listan av kommandon som hör till "
-"varje\n"
+"    Om inga argument ges skriver trap listan av kommandon som hör till varje\n"
 "    signal.\n"
 "    \n"
 "    Flaggor:\n"
@@ -4179,11 +3987,10 @@ msgstr ""
 "    frivilligt.  En signal kan skickas till skalet med \"kill -signal $$\".\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en SIGSPEC är ogiltig eller en ogiltig "
-"flagga\n"
+"    Returnerar framgång om inte en SIGSPEC är ogiltig eller en ogiltig flagga\n"
 "    ges."
 
-#: builtins.c:1349
+#: builtins.c:1344
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4209,8 +4016,7 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 "Visa information om kommandotyper.\n"
 "    \n"
@@ -4228,10 +4034,8 @@ msgstr ""
 "      -p\treturnerar antingen namnet på diskfilen som skulle exekverats,\n"
 "    \teller ingenting om \"type -t NAMN\" inte skulle returnerat \"file\".\n"
 "      -t\tskriv ut ett ensamt ord som är ett av \"alias\", \"keyword\",\n"
-"    \t\"function\", \"builtin\", \"file\" eller \"\", om NAMN är ett alias, "
-"ett\n"
-"    \treserverat ord i skalet, en skalfunktion, inbyggt i skalet, en "
-"diskfil\n"
+"    \t\"function\", \"builtin\", \"file\" eller \"\", om NAMN är ett alias, ett\n"
+"    \treserverat ord i skalet, en skalfunktion, inbyggt i skalet, en diskfil\n"
 "    \trespektive inte finns\n"
 "    \n"
 "    Argument:\n"
@@ -4240,12 +4044,11 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om alla NAMNen finns, misslyckas om något inte finns."
 
-#: builtins.c:1380
+#: builtins.c:1375
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4285,8 +4088,7 @@ msgid ""
 msgstr ""
 "Modifiera skalresursgränser.\n"
 "    \n"
-"    Ger kontroll över resurserna som är tillgängliga till skalet och "
-"processer\n"
+"    Ger kontroll över resurserna som är tillgängliga till skalet och processer\n"
 "    det skapar, på system som möjliggör sådan styrning.\n"
 "    \n"
 "    Flaggor:\n"
@@ -4313,22 +4115,18 @@ msgstr ""
 "      -x\tdet maximala antalet fillås\n"
 "    \n"
 "    Om GRÄNS anges är det ett nytt värde för den specificerade resursen; de\n"
-"    speciella GRÄNS-värdena \"soft\", \"hard\" och \"unlimited\" står för "
-"den\n"
-"    aktuella mjuka gränsen, den aktuella hårda grånsen respektive inge "
-"gräns.\n"
+"    speciella GRÄNS-värdena \"soft\", \"hard\" och \"unlimited\" står för den\n"
+"    aktuella mjuka gränsen, den aktuella hårda grånsen respektive inge gräns.\n"
 "    Annars skrivs det aktuella värdet på den specificerade resursen.  Om\n"
 "    ingen flagga ges antas -f.\n"
 "    \n"
-"    Värden är i 1024-bytesteg, utom för -t som är i sekunder, -p som är i "
-"steg\n"
+"    Värden är i 1024-bytesteg, utom för -t som är i sekunder, -p som är i steg\n"
 "    på 512 byte och -u som är ett antal processer utan någon skalning.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga anges eller ett fel "
-"inträffar."
+"    Returnerar framgång om inte en ogiltig flagga anges eller ett fel inträffar."
 
-#: builtins.c:1425
+#: builtins.c:1420
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4350,8 +4148,7 @@ msgstr ""
 "    Sätter användarens filskapningsmask till RÄTTIGHETER.  Om RÄTTIGHETER\n"
 "    utelämnas skrivs det aktuella värdet på masken.\n"
 "    \n"
-"    Om RÄTTIGHETER börjar med en siffra tolkas det som ett oktalt tal, "
-"annars\n"
+"    Om RÄTTIGHETER börjar med en siffra tolkas det som ett oktalt tal, annars\n"
 "    är det en symbolisk rättighetssträng som den som tas av chmod(1).\n"
 "    \n"
 "    Flaggor:\n"
@@ -4360,24 +4157,21 @@ msgstr ""
 "      -S\tgör utmatningen symbolisk, annars används oktala tal\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte RÄTTIGHETER är ogiltig eller en ogiltig "
-"flagga\n"
+"    Returnerar framgång om inte RÄTTIGHETER är ogiltig eller en ogiltig flagga\n"
 "    ges."
 
-#: builtins.c:1445
+#: builtins.c:1440
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
 "    Waits for the process identified by ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all "
-"processes\n"
+"    status is zero.  If ID is a a job specification, waits for all processes\n"
 "    in the job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
 "    given."
 msgstr ""
 "Vänta på att jobb blir färdiga och returnerar slutstatus.\n"
@@ -4389,11 +4183,10 @@ msgstr ""
 "    jobbets rör.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en "
-"ogiltig\n"
+"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en ogiltig\n"
 "    flagga ges."
 
-#: builtins.c:1463
+#: builtins.c:1458
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4402,24 +4195,20 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
 "    given."
 msgstr ""
 "Vänta på att en process blir färdig och returnerar slutstatus.\n"
 "    \n"
-"    Väntar på den angivna processen och rapportera dess avslutningsstatus.  "
-"Om\n"
-"    PID inte ges, vänta på alla nu körande barnprocesser, och returstatus "
-"är\n"
+"    Väntar på den angivna processen och rapportera dess avslutningsstatus.  Om\n"
+"    PID inte ges, vänta på alla nu körande barnprocesser, och returstatus är\n"
 "    noll.  PID måste vara en process-id.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en "
-"ogiltig\n"
+"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en ogiltig\n"
 "    flagga ges."
 
-#: builtins.c:1478
+#: builtins.c:1473
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4434,15 +4223,14 @@ msgstr ""
 "Exekvera kommandon för varje medlem i en lista.\n"
 "    \n"
 "    \"for\"-slingan exekverar en sekvens av kommandon för varje medlem i en\n"
-"    lista av element.  Om \"in ORD ...;\" inte är med antas 'in \"$@\"'.  "
-"För\n"
+"    lista av element.  Om \"in ORD ...;\" inte är med antas 'in \"$@\"'.  För\n"
 "    varje element i ORD sätts NAMN till det elementet, och KOMMANDON\n"
 "    exekveras.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar status för det sist exekverade kommandot."
 
-#: builtins.c:1492
+#: builtins.c:1487
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4472,7 +4260,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1510
+#: builtins.c:1505
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4507,7 +4295,7 @@ msgstr ""
 "    Sluttatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1531
+#: builtins.c:1526
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4536,7 +4324,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returstatusen är returstatusen från RÖR."
 
-#: builtins.c:1548
+#: builtins.c:1543
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4554,21 +4342,16 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1560
+#: builtins.c:1555
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4576,13 +4359,10 @@ msgid ""
 msgstr ""
 "Exekvera kommndon baserat på ett villkor.\n"
 "    \n"
-"    Listan \"if KOMMANDON\" exekveras.  Om des slutstatus är noll så "
-"exekveras\n"
-"    listan \"then COMMANDS\".  Annars exekveras varje lista \"elif KOMMANDON"
-"\"\n"
+"    Listan \"if KOMMANDON\" exekveras.  Om des slutstatus är noll så exekveras\n"
+"    listan \"then COMMANDS\".  Annars exekveras varje lista \"elif KOMMANDON\"\n"
 "    i tur och ordning, och om dess slutstatus är noll exekveras motsvarande\n"
-"    lista \"then COMMANDS\" och if-kommandot avslutar.  Annars exekveras "
-"listan\n"
+"    lista \"then COMMANDS\" och if-kommandot avslutar.  Annars exekveras listan\n"
 "    \"else COMMANDS\" om den finns.  Slutstatus av hela konstruktionen är\n"
 "    slutstatusen på det sist exekverade kommandot, eller noll om inget\n"
 "    villkor returnerade sant.\n"
@@ -4590,7 +4370,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar status från det sist exekverade kommandot."
 
-#: builtins.c:1577
+#: builtins.c:1572
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4608,7 +4388,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1589
+#: builtins.c:1584
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4626,26 +4406,12 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1601
-msgid ""
-"Create a coprocess named NAME.\n"
-"    \n"
-"    Execute COMMAND asynchronously, with the standard output and standard\n"
-"    input of the command connected via a pipe to file descriptors assigned\n"
-"    to indices 0 and 1 of an array variable NAME in the executing shell.\n"
-"    The default NAME is \"COPROC\".\n"
-"    \n"
-"    Exit Status:\n"
-"    Returns the exit status of COMMAND."
-msgstr ""
-
-#: builtins.c:1615
+#: builtins.c:1596
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4662,7 +4428,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte NAMN endast är läsbart."
 
-#: builtins.c:1629
+#: builtins.c:1610
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4680,7 +4446,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar stutusen från det sist exekverade kommandot."
 
-#: builtins.c:1641
+#: builtins.c:1622
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4704,7 +4470,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen på det återupptagna jobbet."
 
-#: builtins.c:1656
+#: builtins.c:1637
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4722,16 +4488,13 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar 1 om UTTRYCK beräknas till 0, returnerar 0 annars."
 
-#: builtins.c:1668
+#: builtins.c:1649
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4752,8 +4515,7 @@ msgstr ""
 "Kör ett villkorligt kommando.\n"
 "    \n"
 "    Returnerar en status av 0 eller 1 beroende på evalueringen av det\n"
-"    villkorliga uttrycket UTTRYCK.  Uttryck är sammansatta av samma "
-"primitiver\n"
+"    villkorliga uttrycket UTTRYCK.  Uttryck är sammansatta av samma primitiver\n"
 "    som används av det inbyggda \"test\", och kan kombineras med följande\n"
 "    operatorer:\n"
 "    \n"
@@ -4763,10 +4525,8 @@ msgstr ""
 "      UTTR1 || UTTR2\tSant om antingen UTTR1 eller UTTR2 är sant, annars\n"
 "                        falskt\n"
 "    \n"
-"    När operatorerna \"==\" och \"!=\" används används strängen till höger "
-"om\n"
-"    som ett mönster och mönstermatchning utförs.  När operatorn \"=~\" "
-"används\n"
+"    När operatorerna \"==\" och \"!=\" används används strängen till höger om\n"
+"    som ett mönster och mönstermatchning utförs.  När operatorn \"=~\" används\n"
 "    matchas strängen till höger om operatorn som ett reguljärt uttryck.\n"
 "    \n"
 "    Operatorerna && och || beräknar inte UTTR2 om UTTR1 är tillräckligt för\n"
@@ -4775,7 +4535,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    0 eller 1 beroende på värdet av UTTRYCK."
 
-#: builtins.c:1694
+#: builtins.c:1675
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4880,7 +4640,7 @@ msgstr ""
 "    HISTIGNORE\tEn kolonseparerad lista av mönster som används för att\n"
 "    \t\tbestämma vilka kommandon som skall sparas i historielistan.\n"
 
-#: builtins.c:1751
+#: builtins.c:1732
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4938,7 +4698,7 @@ msgstr ""
 "    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
 "    katalog misslyckas."
 
-#: builtins.c:1785
+#: builtins.c:1766
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4988,7 +4748,7 @@ msgstr ""
 "    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
 "    katalog misslyckas."
 
-#: builtins.c:1815
+#: builtins.c:1796
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5005,12 +4765,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5038,16 +4796,14 @@ msgstr ""
 "    \tav dirs när det anropas utan fläggor, med början från noll.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
-"inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
-#: builtins.c:1844
+#: builtins.c:1825
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not "
-"each\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5077,7 +4833,7 @@ msgstr ""
 "    Returnerar framgång om FLGNAMN är aktiverat, misslyckas om en ogiltig\n"
 "    flagga ges eller FLGNAMN är avaktiverat."
 
-#: builtins.c:1865
+#: builtins.c:1846
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5085,25 +4841,20 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1)\n"
+"    In addition to the standard format specifications described in printf(1)\n"
 "    and printf(3), printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Formatera och skriv ARGUMENT styrda av FORMAT.\n"
@@ -5114,8 +4865,7 @@ msgstr ""
 "    \n"
 "    FORMAT är en teckensträng som innehåller tre sortes objekt: vanliga\n"
 "    tecken, som helt enkelt kopieras till standard ut, teckenstyrsekvenser\n"
-"    som konverteras och kopieras till standard ut och "
-"formatspecifikationer,\n"
+"    som konverteras och kopieras till standard ut och formatspecifikationer,\n"
 "    där var och en medför utskrift av det nästföljande argumentet.\n"
 "    argument.\n"
 "    \n"
@@ -5130,14 +4880,12 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett skriv-\n"
 "    eller tilldelningsfel inträffar."
 
-#: builtins.c:1892
+#: builtins.c:1873
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5167,16 +4915,14 @@ msgstr ""
 "    versala flaggorna är uppräknade ovan.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
-"inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
-#: builtins.c:1915
+#: builtins.c:1896
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5189,19 +4935,15 @@ msgstr ""
 "    matchningar av ORD.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
-"inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
-#: builtins.c:1930
+#: builtins.c:1911
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently begin executed.  If no OPTIONs are givenm, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently begin executed.  If no OPTIONs are givenm, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5222,8 +4964,7 @@ msgid ""
 msgstr ""
 "Modifiera eller visa kompletteringsflaggor.\n"
 "    \n"
-"    Modifiera kompletteringsflaggorna för varje NAMN, eller, om inga NAMN "
-"är\n"
+"    Modifiera kompletteringsflaggorna för varje NAMN, eller, om inga NAMN är\n"
 "    givna, den komplettering som för närvarande körs.  Om ingen FLAGGA är\n"
 "    given skrivs kompletteringsflaggorna för varje NAMN eller den aktuella\n"
 "    kompletteringsspecifikationen.\n"
@@ -5231,14 +4972,12 @@ msgstr ""
 "    Flaggor:\n"
 "    \t-o flagga\tSätt kompletteringsflagga FLAGGA för varje NAMN\n"
 "    \n"
-"    Genom att använda \"+o\" istället för \"-o\" slås den angivna flaggan "
-"av.\n"
+"    Genom att använda \"+o\" istället för \"-o\" slås den angivna flaggan av.\n"
 "    \n"
 "    Argument:\n"
 "    \n"
 "    Varje NAMN refererar till ett kommando för vilket en kompletterings-\n"
-"    specifikation måste ha definierats tidigare med det inbyggda \"complete"
-"\".\n"
+"    specifikation måste ha definierats tidigare med det inbyggda \"complete\".\n"
 "    Om inget NAMN ges måste compopt anropas av en funktion som just nu\n"
 "    genererar kompletteringar, och flaggorna för den just nu exekverande\n"
 "    kompletteringsgeneratorn modifieras.\n"
@@ -5247,43 +4986,33 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN inte har\n"
 "    någon kompletteringsspecifikaation definierad."
 
-#: builtins.c:1958
-#, fuzzy
+#: builtins.c:1939
 msgid ""
-"Read lines from the standard input into an array variable.\n"
+"Read lines from a file into an array variable.\n"
 "    \n"
-"    Read lines from the standard input into the array variable ARRAY, or "
-"from\n"
-"    file descriptor FD if the -u option is supplied.  The variable MAPFILE "
-"is\n"
+"    Read lines from the standard input into the array variable ARRAY, or from\n"
+"    file descriptor FD if the -u option is supplied.  The variable MAPFILE is\n"
 "    the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
-"input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to "
-"CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
-"    If -C is supplied without -c, the default quantum is 5000.  When\n"
-"    CALLBACK is evaluated, it is supplied the index of the next array\n"
-"    element to be assigned as an additional argument.\n"
+"    If -C is supplied without -c, the default quantum is 5000.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly."
+"    Returns success unless an invald option is given or ARRAY is readonly."
 msgstr ""
 "Läs rader fån en fil till en vektorvariabel.\n"
 "    \n"
@@ -5292,10 +5021,8 @@ msgstr ""
 "    för VEKTOR.\n"
 "    \n"
 "    Flaggor:\n"
-"      -n antal\tKopiera högs ANTAL rader.  Om ANTAL är 0 kopieras alla "
-"rader.\n"
-"      -O start\tBörja tilldela till VEKTOR vid index START.  Standardindex "
-"är 0.\n"
+"      -n antal\tKopiera högs ANTAL rader.  Om ANTAL är 0 kopieras alla rader.\n"
+"      -O start\tBörja tilldela till VEKTOR vid index START.  Standardindex är 0.\n"
 "      -s antal \tSläng de första ANTAL inlästa raderna.\n"
 "      -t\t\tTa bort en avslutande nyrad från varje inläst rad.\n"
 "      -u fb\t\tLäs rader från filbeskrivare FB istället för standard in.\n"
@@ -5308,17 +5035,9 @@ msgstr ""
 "    \n"
 "    Om -C ges utan -c är standardkvanta 5000.\n"
 "    \n"
-"    Om det inte ges någon specificerad start kommer mapfile nollställa "
-"VEKTOR\n"
+"    Om det inte ges någon specificerad start kommer mapfile nollställa VEKTOR\n"
 "    före tilldelning till den.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller VEKTOR är\n"
 "    oföränderlig."
-
-#: builtins.c:1990
-msgid ""
-"Read lines from a file into an array variable.\n"
-"    \n"
-"    A synonym for `mapfile'."
-msgstr ""
diff --git a/sig.c b/sig.c
index f9beee144d98500043f73ece0715d388c4a60496..9bbfea3612aa1e96e953818a2d9c6e9f206d3d85 100644 (file)
--- a/sig.c
+++ b/sig.c
@@ -519,6 +519,7 @@ sigint_sighandler (sig)
   if (interrupt_immediately)
     {
       interrupt_immediately = 0;
+      last_command_exit_value = 128 + sig;
       throw_to_top_level ();
     }
 
diff --git a/sig.c~ b/sig.c~
new file mode 100644 (file)
index 0000000..f9beee1
--- /dev/null
+++ b/sig.c~
@@ -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 */
diff --git a/subst.c b/subst.c
index 258ec8d2d92470f6dde00888144ab53a126be610..ad7da3b82a839800020ec5ac4e509cc081db08c4 100644 (file)
--- a/subst.c
+++ b/subst.c
@@ -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
index cfcca05e6f327f962f9f088361a25f9a0d221399..f63447e12094851e99c4302698606020b98e9cd4 100644 (file)
--- a/subst.c~
+++ b/subst.c~
@@ -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--;
index f9c7eee7cafe392e64f8caca57b3f02b303222f4..fdc0793ed9c882faabde6c9a118890702145ec2f 100644 (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
index 1ac614bf3cc9756275ed2119d529cd50fcd531c3..435ac15937b3eb987435cc8937d2bea855361eee 100644 (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]
index ec1d46d2eeecac8b7a295d06e1ce6e1c609781a7..2f15f413da481aef23b9709d3d79711357cd1e05 100644 (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" )
index 76d86fe1ecb32449c126236f23429d9110125883..1aa3b2ebb96d6fe31b6e9f47a8bd1a0325e5600e 100644 (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
diff --git a/tests/assoc5.sub b/tests/assoc5.sub
new file mode 100644 (file)
index 0000000..400f3d3
--- /dev/null
@@ -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=
index 1bd12e1217db7f4a0d5febc2dca736a63b99129f..da8b45c7c56bb6c68e8648ef492f308a27aaddfe 100644 (file)
@@ -136,6 +136,11 @@ funcc ()
 func-a
 func-b
 func-c
+foo-bar
+foo-bar () 
+{ 
+    :
+}
 expect 5 10
 5 10
 expect 20
index 2f9d5ceea13b31bba34be86fd1bde212c81e4c1a..41a3844bdb72c662c4badab016d795065e98f67d 100644 (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
index 2a7bf6bab3f0eec988481360998722a833af5fa2..b8754dec7d56794aa0a3f542abd69738062f5773 100644 (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
index ac642e0ac123d67d4f82f552152c2ff83e26c091..79bf4ce72255b5860fc1f8e8dcc0bf36ad6dd476 100644 (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!
 
index 775d3e2c6b81beefa448abb791190ae872ba56fd..c86c546b7376e3d867fcf0ba725b91ffb561412c 100644 (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
index 3a0581f006473293b15c6f388dfe60d18cbcb86d..8c43b661a0bca15d207a6f2365f00b3f90d3692c 100644 (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
index 80966d71f48840e7ceef8697df7d0d5d97eb2653..3dd5248699761392ebc98275b48c73506c675ef4 100644 (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
diff --git a/tests/printf2.sub b/tests/printf2.sub
new file mode 100644 (file)
index 0000000..4cff30d
--- /dev/null
@@ -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
index 18208d13289def95b0422a13689d989df6a1b19b..a628231ce7d675092303de0abb69c4a418112208 100644 (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
index 6a3e80794794560be3d89913b8c1fdf3ed6f1fae..6caa243ea16ce676e47b24f7fd28894ccfa0d212 100644 (file)
@@ -89,3 +89,5 @@ f() {
 type f | cat -v
 
 ${THIS_SH} type1.sub
+
+${THIS_SH} type2.sub
diff --git a/tests/type2.sub b/tests/type2.sub
new file mode 100644 (file)
index 0000000..3f85ead
--- /dev/null
@@ -0,0 +1,16 @@
+foo()
+{
+       echo
+       cat <<END
+bar
+END
+       cat <<EOF
+qux
+EOF
+}
+
+type foo
+foo
+
+eval "$(type foo | sed 1d)"
+foo