]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20060126 snapshot
authorChet Ramey <chet.ramey@case.edu>
Sun, 4 Dec 2011 03:44:33 +0000 (22:44 -0500)
committerChet Ramey <chet.ramey@case.edu>
Sun, 4 Dec 2011 03:44:33 +0000 (22:44 -0500)
81 files changed:
.DS_Store [new file with mode: 0644]
CWRU/CWRU.chlog
CWRU/CWRU.chlog~
MANIFEST
MANIFEST~
Makefile.in
Makefile.in~
autom4te.cache/output.0
autom4te.cache/traces.0
bashline.c
bashline.c~ [new file with mode: 0644]
braces.c
braces.c.orig [new file with mode: 0644]
braces.c~ [new file with mode: 0644]
builtins/declare.def
builtins/declare.def~ [new file with mode: 0644]
builtins/read.def
builtins/trap.def
builtins/trap.def~ [new file with mode: 0644]
config.h.in
config.h.in~ [new file with mode: 0644]
configure
configure.in
configure.in~
d1 [new file with mode: 0644]
doc/.DS_Store [new file with mode: 0644]
doc/bash.0
doc/bash.1
doc/bash.html
doc/bash.pdf
doc/bash.ps
doc/bashref.aux
doc/bashref.bt
doc/bashref.bts
doc/bashref.cp
doc/bashref.cps
doc/bashref.dvi
doc/bashref.fn
doc/bashref.fns
doc/bashref.html
doc/bashref.info
doc/bashref.log
doc/bashref.pdf
doc/bashref.ps
doc/bashref.texi
doc/bashref.toc
doc/bashref.vr
doc/bashref.vrs
doc/builtins.0
doc/builtins.ps
doc/rbash.ps
doc/version.texi
externs.h
externs.h~ [new file with mode: 0644]
general.c
general.c~ [new file with mode: 0644]
input.c
jobs.c
lib/readline/complete.c
lib/readline/complete.c.orig [new file with mode: 0644]
lib/readline/complete.c~ [new file with mode: 0644]
lib/readline/display.c
lib/readline/doc/rltech.texi
lib/readline/doc/rltech.texi~
lib/sh/Makefile.in
lib/sh/Makefile.in~ [new file with mode: 0644]
lib/sh/eaccess.c [new file with mode: 0644]
lib/sh/eaccess.c~ [new file with mode: 0644]
lib/sh/shaccess.c~ [new file with mode: 0644]
nojobs.c
parse.y
quit.h
sig.c
sig.h
test.c
test.c.orig [new file with mode: 0644]
test.c~ [new file with mode: 0644]
test.h
test.h~ [new file with mode: 0644]
tests/RUN-ONE-TEST
trap.c

diff --git a/.DS_Store b/.DS_Store
new file mode 100644 (file)
index 0000000..88f4b3b
Binary files /dev/null and b/.DS_Store differ
index 9aa248e1af77a4ef67af0e408fbb069972d7f1cd..d18cd1774faf2dbb6134adec4ed08fdaec6d17f9 100644 (file)
@@ -12878,3 +12878,140 @@ lib/readline/bind.c
 
 execute_cmd.c
        - add call to QUIT at end of execute_command
+
+                                  1/23
+                                  ----
+lib/readline/display.c
+       - changed two places in update_line where a check of whether the cursor
+         is before the last invisible character in the prompt string to
+         differentiate between the multibyte character case (where
+         _rl_last_c_pos is a physical cursor position) and the single-byte
+         case (where it is a buffer index).  This prevents many unnecessary
+         \r-redraw the line sequences.  Reported by Dan Jacobson.
+
+                                  1/24
+                                  ----
+quit.h
+       - wrap QUIT macro in do...while(0) like other compound statement
+         macros
+       - CHECK_TERMSIG define (placeholder for now); future use will be to
+         handle any received signals that should  cause the shell to
+         terminate (e.g., SIGHUP)
+
+{input,jobs,nojobs}.c
+       - add calls to CHECK_TERMSIG where appropriate (reading input and
+         waiting for children)
+       - include quit.h if necessary
+
+                                  1/25
+                                  ----
+parse.y
+       - undo change that makes `)' in a compound assignment delimit a token.
+         It messes up arithmetic expressions in assignments to `let', among
+         other things
+
+sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def
+       - rename termination_unwind_protect to termsig_sighandler
+
+sig.c
+       - split termsig_sighandler into two functions: termsig_sighandler, which
+         runs as a signal handler and sets a flag noting that a terminating
+         signal was received, and termsig_handler, which runs when it is `safe'
+         to handle the signal and exit
+       - new terminate_immediately variable, similar to interrupt_immediately
+       - termsig_sighandler calls termsig_handler immediately if
+         terminate_immediately is non-zero
+
+quit.h
+       - change CHECK_TERMSIG macro to check terminating_signal and call
+         termsig_handler if it's non-zero
+       - add same check of terminating_signal and call to termsig_handler to
+         QUIT macro
+
+{jobs,nojobs}.c
+       - change call to termsig_sighandler to call termsig_handler directly,
+         as was intended
+
+parse.y,builtins/read.def
+       - set terminate_immediately to non-zero value when reading interactive
+         input, as is done with interrupt_immediately
+
+                                  1/26
+                                  ----
+doc/{bash.1,bashref.texi}
+       - reworded the POSIX standard references to remove mention of POSIX.2
+         or 1003.2 -- it's all the 1003.1 standard now.  Recommended by
+         Arnold Robbins
+
+                                  1/27
+                                  ----
+lib/readline/complete.c
+       - move call to filename dequoting function into
+         rl_filename_completion_function; call only if directory completion
+         hook isn't set.  This means that directory-completion-hook now needs
+         to dequote the directory name.  We don't want to dequote the directory
+         name before calling the directory-completion-hook.  Bug reported by
+         Andrew Parker <andrewparker@bigfoot.com>
+
+bashline.c
+       - add necessary directory name dequoting to bash_directory_completion_hook
+         and bash_directory_expansion
+
+lib/readline/doc/rltech.texi
+       - add note to description of rl_direcotory_completion_hook that it
+         needs to dequote the directory name even if no other expansions are
+         performed
+
+                                  1/28
+                                  ----
+braces.c
+       - make sure that we skip over braces that don't start a valid matched
+         brace expansion construct in brace_expand -- there might be a valid
+         brace expansion after the unmatched `{' later in the string
+       - brace_gobbler now checks that when looking for a `}' to end a brace
+         expansion word, there is an unquoted `,' or `..' that's not inside
+         another pair of braces.  Fixes the a{b{c,d}e}f problem reported by
+         Tim Waugh
+
+builtins/declare.def
+       - when not in posix mode, and operating on shell functions, typeset
+         and declare do not require their variable operands to be valid
+         shell identifiers.  The other `attribute' builtins work this way.
+         Fixes inconsistency reported by Mike Frysinger
+
+{configure,config.h}.in
+       - add test for setregid, define HAVE_SETREGID and HAVE_DECL_SETREGID
+         as appropriate
+       - add test for eaccess, define HAVE_EACCESS if found
+
+lib/sh/eaccess.c
+       - new file, with sh_stat and sh_eaccess functions, moved from test.c
+       - renamed old sh_eaccess as sh_stataccess, since it uses the stat(2)
+         information to determine file accessibility
+       - new function, sh_euidaccess, to call when uid != euid or gid != egid;
+         temporarily swaps uid/euid and gid/egid around call to access
+       - rewrote sh_eaccess to call eaccess, access, sh_euidaccess or
+         sh_stataccess as appropriate.  access(2) will take into account
+         things like ACLs, read-only file systems, file flags, and so on.
+
+lib/sh/Makefile.in,Makefile.in
+       - add necessary entries for eaccess.[co]
+
+test.c
+       - change calls to test_stat to call sh_stat
+
+{test,general}.c
+       - change calls to test_eaccess to call sh_eaccess
+
+externs.h
+       - new extern declaration for sh_eaccess
+
+test.[ch]
+       - remove test_stat and test_eaccess
+
+                                  1/29
+                                  ----
+braces.c
+       - make change from 1/28 dependant on CSH_BRACE_COMPAT not being
+         defined (since old bash behavior is what csh does, defining
+         CSH_BRACE_COMPAT will produce old bash behavior)
index dee359b02607c825c9ef97e5284bb0c6f864fe3f..db0f9b03c849ede9aeb20547fb93ec82902c8e68 100644 (file)
@@ -12875,3 +12875,143 @@ lib/readline/bind.c
          emacs-escape-keymap, is wrong.  This affects `bind -p' output
        - change rl_untranslate_keyseq to add '\e' instead of '\C-[' for
          ESC
+
+execute_cmd.c
+       - add call to QUIT at end of execute_command
+
+                                  1/23
+                                  ----
+lib/readline/display.c
+       - changed two places in update_line where a check of whether the cursor
+         is before the last invisible character in the prompt string to
+         differentiate between the multibyte character case (where
+         _rl_last_c_pos is a physical cursor position) and the single-byte
+         case (where it is a buffer index).  This prevents many unnecessary
+         \r-redraw the line sequences.  Reported by Dan Jacobson.
+
+                                  1/24
+                                  ----
+quit.h
+       - wrap QUIT macro in do...while(0) like other compound statement
+         macros
+       - CHECK_TERMSIG define (placeholder for now); future use will be to
+         handle any received signals that should  cause the shell to
+         terminate (e.g., SIGHUP)
+
+{input,jobs,nojobs}.c
+       - add calls to CHECK_TERMSIG where appropriate (reading input and
+         waiting for children)
+       - include quit.h if necessary
+
+                                  1/25
+                                  ----
+parse.y
+       - undo change that makes `)' in a compound assignment delimit a token.
+         It messes up arithmetic expressions in assignments to `let', among
+         other things
+
+sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def
+       - rename termination_unwind_protect to termsig_sighandler
+
+sig.c
+       - split termsig_sighandler into two functions: termsig_sighandler, which
+         runs as a signal handler and sets a flag noting that a terminating
+         signal was received, and termsig_handler, which runs when it is `safe'
+         to handle the signal and exit
+       - new terminate_immediately variable, similar to interrupt_immediately
+       - termsig_sighandler calls termsig_handler immediately if
+         terminate_immediately is non-zero
+
+quit.h
+       - change CHECK_TERMSIG macro to check terminating_signal and call
+         termsig_handler if it's non-zero
+       - add same check of terminating_signal and call to termsig_handler to
+         QUIT macro
+
+{jobs,nojobs}.c
+       - change call to termsig_sighandler to call termsig_handler directly,
+         as was intended
+
+parse.y,builtins/read.def
+       - set terminate_immediately to non-zero value when reading interactive
+         input, as is done with interrupt_immediately
+
+                                  1/26
+                                  ----
+doc/{bash.1,bashref.texi}
+       - reworded the POSIX standard references to remove mention of POSIX.2
+         or 1003.2 -- it's all the 1003.1 standard now.  Recommended by
+         Arnold Robbins
+
+                                  1/27
+                                  ----
+lib/readline/complete.c
+       - move call to filename dequoting function into
+         rl_filename_completion_function; call only if directory completion
+         hook isn't set.  This means that directory-completion-hook now needs
+         to dequote the directory name.  We don't want to dequote the directory
+         name before calling the directory-completion-hook.  Bug reported by
+         Andrew Parker <andrewparker@bigfoot.com>
+
+bashline.c
+       - add necessary directory name dequoting to bash_directory_completion_hook
+         and bash_directory_expansion
+
+lib/readline/doc/rltech.texi
+       - add note to description of rl_direcotory_completion_hook that it
+         needs to dequote the directory name even if no other expansions are
+         performed
+
+                                  1/28
+                                  ----
+braces.c
+       - make sure that we skip over braces that don't start a valid matched
+         brace expansion construct in brace_expand -- there might be a valid
+         brace expansion after the unmatched `{' later in the string
+       - brace_gobbler now checks that when looking for a `}' to end a brace
+         expansion word, there is an unquoted `,' or `..' that's not inside
+         another pair of braces.  Fixes the a{b{c,d}e}f problem reported by
+         Tim Waugh
+
+builtins/declare.def
+       - when not in posix mode, and operating on shell functions, typeset
+         and declare do not require their variable operands to be valid
+         shell identifiers.  The other `attribute' builtins work this way.
+         Fixes inconsistency reported by Mike Frysinger
+
+{configure,config.h}.in
+       - add test for setregid, define HAVE_SETREGID and HAVE_DECL_SETREGID
+         as appropriate
+       - add test for eaccess, define HAVE_EACCESS if found
+
+lib/sh/eaccess.c
+       - new file, with sh_stat and sh_eaccess functions, moved from test.c
+       - renamed old sh_eaccess as sh_stataccess, since it uses the stat(2)
+         information to determine file accessibility
+       - new function, sh_euidaccess, to call when uid != euid or gid != egid;
+         temporarily swaps uid/euid and gid/egid around call to access
+       - rewrote sh_eaccess to call eaccess, access, sh_euidaccess or
+         sh_stataccess as appropriate.  access(2) will take into account
+         things like ACLs, read-only file systems, file flags, and so on.
+
+lib/sh/Makefile.in,Makefile.in
+       - add necessary entries for eaccess.[co]
+
+test.c
+       - change calls to test_stat to call sh_stat
+
+{test,general}.c
+       - change calls to test_eaccess to call sh_eaccess
+
+externs.h
+       - new extern declaration for sh_eaccess
+
+test.[ch]
+       - remove test_stat and test_eaccess
+
+                                  1/29
+                                  ----
+braces.c
+       - make change from 1/28 dependant on CSH_BRACE_COMPAT not being
+         defined (since old bash behavior is what csh does, defining
+         CSH_BRACE_COMPAT produces old bash behavior)
index d8c692a781c0051593d67789361c1a3b3c4e3a01..e037882ae434afa82bc6c6484ee48a315412d0d5 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -377,6 +377,7 @@ lib/readline/examples/Inputrc       f
 lib/sh/Makefile.in     f
 lib/sh/clktck.c                f
 lib/sh/clock.c         f
+lib/sh/eaccess.c       f
 lib/sh/fmtullong.c     f
 lib/sh/fmtulong.c      f
 lib/sh/fmtumax.c       f
index b0f18e6a9c0fbc365f015b730e154a44c19be7f0..94343f891f0c05fc39be58b91b80600ab9a23854 100644 (file)
--- a/MANIFEST~
+++ b/MANIFEST~
@@ -395,6 +395,7 @@ lib/sh/pathcanon.c  f
 lib/sh/pathphys.c      f
 lib/sh/rename.c                f
 lib/sh/setlinebuf.c    f
+lib/sh/shaccess.c      f
 lib/sh/shmatch.c       f
 lib/sh/shquote.c       f
 lib/sh/shtty.c         f
@@ -527,6 +528,8 @@ support/texi2html   f       755
 support/xenix-link.sh  f       755
 support/shobj-conf     f       755
 support/rlvers.sh      f       755
+examples/INDEX.txt     f
+examples/INDEX.html    f
 examples/bashdb/PERMISSION     f
 examples/bashdb/README f
 examples/bashdb/bashdb         f
index c9f9aa21562bb6948b2aeef6142c080ab44e5cc0..4882c52671c2300faf8d9a380c470e42237c7fea 100644 (file)
@@ -200,7 +200,8 @@ SHLIB_SOURCE =      ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
                ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \
                ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \
                ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \
-               ${SH_LIBSRC}/strnlen.c ${SH_LIBSRC}/winsize.c
+               ${SH_LIBSRC}/strnlen.c ${SH_LIBSRC}/winsize.c \
+               ${SH_LIBSRC}/eaccess.c
 
 SHLIB_LIB = -lsh
 SHLIB_LIBNAME = libsh.a
index bac74e62d1abcec7faf60874517c078655358973..02e8e2c52b6b68693a16c10bf423b11146086866 100644 (file)
@@ -200,7 +200,8 @@ SHLIB_SOURCE =      ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
                ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \
                ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \
                ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \
-               ${SH_LIBSRC}/strnlen.c ${SH_LIBSRC}/winsize.c
+               ${SH_LIBSRC}/strnlen.c ${SH_LIBSRC}/winsize.c \
+               ${SH_LIBSRC}/shaccess.c
 
 SHLIB_LIB = -lsh
 SHLIB_LIBNAME = libsh.a
@@ -420,6 +421,7 @@ SIGNAMES_H = @SIGNAMES_H@
 # object files chosen based on running of configure
 JOBS_O = @JOBS_O@
 SIGLIST_O = @SIGLIST_O@
+SIGNAMES_O = @SIGNAMES_O@
 
 # Matching object files.
 OBJECTS         = shell.o eval.o y.tab.o general.o make_cmd.o print_cmd.o $(GLOBO) \
@@ -428,7 +430,7 @@ OBJECTS      = shell.o eval.o y.tab.o general.o make_cmd.o print_cmd.o $(GLOBO) \
           trap.o input.o unwind_prot.o pathexp.o sig.o test.o version.o \
           alias.o array.o arrayfunc.o braces.o bracecomp.o bashhist.o \
           bashline.o $(SIGLIST_O) list.o stringlib.o locale.o findcmd.o redir.o \
-          pcomplete.o pcomplib.o syntax.o xmalloc.o
+          pcomplete.o pcomplib.o syntax.o xmalloc.o $(SIGNAMES_O)
 
 # Where the source code of the shell builtins resides.
 BUILTIN_SRCDIR=$(srcdir)/builtins
index bc91a845151dbbe100987b20ad9124f20a41a6df..d721800e80a4649e29da289ab5a088971efe1c80 100644 (file)
@@ -1,5 +1,5 @@
 @%:@! /bin/sh
-@%:@ From configure.in for Bash 3.2, version 3.186.
+@%:@ From configure.in for Bash 3.2, version 3.187.
 @%:@ Guess values for system-dependent variables and create Makefiles.
 @%:@ Generated by GNU Autoconf 2.59 for bash 3.2-devel.
 @%:@
 
 
 
-for ac_func in dup2 fcntl getdtablesize getgroups gethostname getpagesize \
-               getpeername getrlimit getrusage gettimeofday kill killpg \
-               lstat readlink sbrk select setdtablesize tcgetpgrp uname \
-               ulimit waitpid
+
+for ac_func in dup2 eaccess fcntl getdtablesize getgroups gethostname \
+               getpagesize getpeername getrlimit getrusage gettimeofday \
+               kill killpg lstat readlink sbrk select setdtablesize \
+               tcgetpgrp uname ulimit waitpid
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -13159,6 +13160,78 @@ _ACEOF
 fi
 
 
+echo "$as_me:$LINENO: checking whether setregid is declared" >&5
+echo $ECHO_N "checking whether setregid is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_setregid+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef setregid
+  char *p = (char *) setregid;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl_setregid=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_setregid=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_setregid" >&5
+echo "${ECHO_T}$ac_cv_have_decl_setregid" >&6
+if test $ac_cv_have_decl_setregid = yes; then
+  
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SETREGID 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SETREGID 0
+_ACEOF
+
+
+fi
+
+
 echo "$as_me:$LINENO: checking whether strcpy is declared" >&5
 echo $ECHO_N "checking whether strcpy is declared... $ECHO_C" >&6
 if test "${ac_cv_have_decl_strcpy+set}" = set; then
index db36d1ed0dcfce142bc622da3c96dd01e7028eaa..eb2242f1d80ef6706472a869e32cae6b45c99724 100644 (file)
@@ -878,12 +878,14 @@ m4trace:configure.in:689: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WAIT3])
 m4trace:configure.in:690: -2- AC_DEFINE_TRACE_LITERAL([HAVE_ISINF_IN_LIBC])
 m4trace:configure.in:693: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MKFIFO])
 m4trace:configure.in:693: -2- AC_DEFINE_TRACE_LITERAL([MKFIFO_MISSING])
-m4trace:configure.in:699: -1- AC_CHECK_FUNCS([dup2 fcntl getdtablesize getgroups gethostname getpagesize \
-               getpeername getrlimit getrusage gettimeofday kill killpg \
-               lstat readlink sbrk select setdtablesize tcgetpgrp uname \
-               ulimit waitpid])
+m4trace:configure.in:699: -1- AC_CHECK_FUNCS([dup2 eaccess fcntl getdtablesize getgroups gethostname \
+               getpagesize getpeername getrlimit getrusage gettimeofday \
+               kill killpg lstat readlink sbrk select setdtablesize \
+               tcgetpgrp uname ulimit waitpid])
 m4trace:configure.in:699: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the `dup2\' function. */
 #undef HAVE_DUP2])
+m4trace:configure.in:699: -1- AH_OUTPUT([HAVE_EACCESS], [/* Define to 1 if you have the `eaccess\' function. */
+#undef HAVE_EACCESS])
 m4trace:configure.in:699: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */
 #undef HAVE_FCNTL])
 m4trace:configure.in:699: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */
@@ -1081,34 +1083,33 @@ m4trace:configure.in:717: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if you
    */
 #undef HAVE_DECL_SBRK])
 m4trace:configure.in:717: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK])
-m4trace:configure.in:718: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY])
-m4trace:configure.in:718: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t.
+m4trace:configure.in:718: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETREGID])
+m4trace:configure.in:718: -1- AH_OUTPUT([HAVE_DECL_SETREGID], [/* Define to 1 if you have the declaration of `setregid\', and to 0 if you
+   don\'t. */
+#undef HAVE_DECL_SETREGID])
+m4trace:configure.in:718: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETREGID])
+m4trace:configure.in:719: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY])
+m4trace:configure.in:719: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t.
    */
 #undef HAVE_DECL_STRCPY])
-m4trace:configure.in:718: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY])
-m4trace:configure.in:719: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL])
-m4trace:configure.in:719: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you
+m4trace:configure.in:719: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY])
+m4trace:configure.in:720: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL])
+m4trace:configure.in:720: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you
    don\'t. */
 #undef HAVE_DECL_STRSIGNAL])
-m4trace:configure.in:719: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL])
-m4trace:configure.in:736: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD])
-m4trace:configure.in:736: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you
+m4trace:configure.in:720: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL])
+m4trace:configure.in:737: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD])
+m4trace:configure.in:737: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you
    don\'t. */
 #undef HAVE_DECL_STRTOLD])
-m4trace:configure.in:736: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+m4trace:configure.in:737: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:2352: AC_CHECK_DECL is expanded from...
 autoconf/general.m4:2372: AC_CHECK_DECLS is expanded from...
-configure.in:736: the top level])
-m4trace:configure.in:736: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN])
-m4trace:configure.in:736: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD])
-m4trace:configure.in:739: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
-aclocal.m4:122: BASH_CHECK_DECL is expanded from...
-configure.in:739: the top level])
+configure.in:737: the top level])
+m4trace:configure.in:737: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN])
+m4trace:configure.in:737: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD])
 m4trace:configure.in:740: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
@@ -1139,364 +1140,370 @@ autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:122: BASH_CHECK_DECL is expanded from...
 configure.in:744: the top level])
-m4trace:configure.in:746: -1- AC_FUNC_MKTIME
-m4trace:configure.in:746: -1- AC_CHECK_HEADERS([stdlib.h sys/time.h unistd.h])
-m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+m4trace:configure.in:745: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
+autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
+autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
+aclocal.m4:122: BASH_CHECK_DECL is expanded from...
+configure.in:745: the top level])
+m4trace:configure.in:747: -1- AC_FUNC_MKTIME
+m4trace:configure.in:747: -1- AC_CHECK_HEADERS([stdlib.h sys/time.h unistd.h])
+m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H])
-m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
 #undef HAVE_SYS_TIME_H])
-m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H])
-m4trace:configure.in:746: -1- AC_CHECK_FUNCS([alarm])
-m4trace:configure.in:746: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */
+m4trace:configure.in:747: -1- AC_CHECK_FUNCS([alarm])
+m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */
 #undef HAVE_ALARM])
-m4trace:configure.in:746: -1- AC_LIBSOURCE([mktime.c])
-m4trace:configure.in:746: -1- AC_SUBST([LIB@&t@OBJS])
-m4trace:configure.in:753: -1- AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
-m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the <argz.h> header file. */
+m4trace:configure.in:747: -1- AC_LIBSOURCE([mktime.c])
+m4trace:configure.in:747: -1- AC_SUBST([LIB@&t@OBJS])
+m4trace:configure.in:754: -1- AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
+m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the <argz.h> header file. */
 #undef HAVE_ARGZ_H])
-m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
+m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
 #undef HAVE_ERRNO_H])
-m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
+m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H])
-m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the <malloc.h> header file. */
+m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the <malloc.h> header file. */
 #undef HAVE_MALLOC_H])
-m4trace:configure.in:753: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the <stdio_ext.h> header file. */
+m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the <stdio_ext.h> header file. */
 #undef HAVE_STDIO_EXT_H])
-m4trace:configure.in:756: -1- AC_FUNC_MMAP
-m4trace:configure.in:756: -1- AC_CHECK_HEADERS([stdlib.h unistd.h])
-m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+m4trace:configure.in:757: -1- AC_FUNC_MMAP
+m4trace:configure.in:757: -1- AC_CHECK_HEADERS([stdlib.h unistd.h])
+m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H])
-m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H])
-m4trace:configure.in:756: -1- AC_CHECK_FUNCS([getpagesize])
-m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */
+m4trace:configure.in:757: -1- AC_CHECK_FUNCS([getpagesize])
+m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */
 #undef HAVE_GETPAGESIZE])
-m4trace:configure.in:756: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP])
-m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */
+m4trace:configure.in:757: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP])
+m4trace:configure.in:757: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */
 #undef HAVE_MMAP])
-m4trace:configure.in:758: -1- AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
+m4trace:configure.in:759: -1- AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
                munmap stpcpy strcspn strdup])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */
 #undef HAVE___ARGZ_COUNT])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */
 #undef HAVE___ARGZ_NEXT])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */
 #undef HAVE___ARGZ_STRINGIFY])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */
 #undef HAVE_DCGETTEXT])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */
 #undef HAVE_MEMPCPY])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */
 #undef HAVE_MUNMAP])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */
 #undef HAVE_STPCPY])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */
 #undef HAVE_STRCSPN])
-m4trace:configure.in:758: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */
+m4trace:configure.in:759: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */
 #undef HAVE_STRDUP])
-m4trace:configure.in:766: -1- AC_SUBST([INTL_DEP])
-m4trace:configure.in:767: -1- AC_SUBST([INTL_INC])
-m4trace:configure.in:768: -1- AC_SUBST([LIBINTL_H])
-m4trace:configure.in:774: -1- AC_CHECK_HEADERS([wctype.h])
-m4trace:configure.in:774: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */
+m4trace:configure.in:767: -1- AC_SUBST([INTL_DEP])
+m4trace:configure.in:768: -1- AC_SUBST([INTL_INC])
+m4trace:configure.in:769: -1- AC_SUBST([LIBINTL_H])
+m4trace:configure.in:775: -1- AC_CHECK_HEADERS([wctype.h])
+m4trace:configure.in:775: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */
 #undef HAVE_WCTYPE_H])
-m4trace:configure.in:774: -1- AC_CHECK_HEADERS([wchar.h])
-m4trace:configure.in:774: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the <wchar.h> header file. */
+m4trace:configure.in:775: -1- AC_CHECK_HEADERS([wchar.h])
+m4trace:configure.in:775: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the <wchar.h> header file. */
 #undef HAVE_WCHAR_H])
-m4trace:configure.in:774: -1- AC_CHECK_HEADERS([langinfo.h])
-m4trace:configure.in:774: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the <langinfo.h> header file. */
+m4trace:configure.in:775: -1- AC_CHECK_HEADERS([langinfo.h])
+m4trace:configure.in:775: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the <langinfo.h> header file. */
 #undef HAVE_LANGINFO_H])
-m4trace:configure.in:774: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS])
-m4trace:configure.in:774: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC])
-m4trace:configure.in:774: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN])
-m4trace:configure.in:774: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTOMB])
-m4trace:configure.in:774: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH])
-m4trace:configure.in:774: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP])
-m4trace:configure.in:774: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE])
-m4trace:configure.in:774: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+m4trace:configure.in:775: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS])
+m4trace:configure.in:775: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC])
+m4trace:configure.in:775: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN])
+m4trace:configure.in:775: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTOMB])
+m4trace:configure.in:775: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH])
+m4trace:configure.in:775: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP])
+m4trace:configure.in:775: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTYPE])
+m4trace:configure.in:775: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:1706: BASH_CHECK_MULTIBYTE is expanded from...
-configure.in:774: the top level])
-m4trace:configure.in:774: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T])
-m4trace:configure.in:774: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:775: the top level])
+m4trace:configure.in:775: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T])
+m4trace:configure.in:775: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:1706: BASH_CHECK_MULTIBYTE is expanded from...
-configure.in:774: the top level])
-m4trace:configure.in:774: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET])
-m4trace:configure.in:778: -1- AC_CHECK_LIB([dl], [dlopen])
-m4trace:configure.in:778: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */
+configure.in:775: the top level])
+m4trace:configure.in:775: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET])
+m4trace:configure.in:779: -1- AC_CHECK_LIB([dl], [dlopen])
+m4trace:configure.in:779: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */
 #undef HAVE_LIBDL])
-m4trace:configure.in:778: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL])
-m4trace:configure.in:779: -1- AC_CHECK_FUNCS([dlopen dlclose dlsym])
-m4trace:configure.in:779: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */
+m4trace:configure.in:779: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL])
+m4trace:configure.in:780: -1- AC_CHECK_FUNCS([dlopen dlclose dlsym])
+m4trace:configure.in:780: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */
 #undef HAVE_DLOPEN])
-m4trace:configure.in:779: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */
+m4trace:configure.in:780: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */
 #undef HAVE_DLCLOSE])
-m4trace:configure.in:779: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */
+m4trace:configure.in:780: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */
 #undef HAVE_DLSYM])
-m4trace:configure.in:783: -1- AC_DECL_SYS_SIGLIST
-m4trace:configure.in:783: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete.
+m4trace:configure.in:784: -1- AC_DECL_SYS_SIGLIST
+m4trace:configure.in:784: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete.
 You should run autoupdate.], [autoconf/specific.m4:70: AC_DECL_SYS_SIGLIST is expanded from...
-configure.in:783: the top level])
-m4trace:configure.in:783: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST])
-m4trace:configure.in:783: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you
+configure.in:784: the top level])
+m4trace:configure.in:784: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST])
+m4trace:configure.in:784: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you
    don\'t. */
 #undef HAVE_DECL_SYS_SIGLIST])
-m4trace:configure.in:783: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST])
-m4trace:configure.in:787: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.in:784: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST])
+m4trace:configure.in:788: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:562: BASH_FUNC_INET_ATON is expanded from...
-configure.in:787: the top level])
-m4trace:configure.in:787: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON])
-m4trace:configure.in:787: -1- AC_LIBSOURCE([inet_aton.c])
-m4trace:configure.in:787: -1- AC_SUBST([LIB@&t@OBJS])
-m4trace:configure.in:793: -1- AC_CHECK_LIB([sun], [getpwent])
-m4trace:configure.in:793: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */
+configure.in:788: the top level])
+m4trace:configure.in:788: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON])
+m4trace:configure.in:788: -1- AC_LIBSOURCE([inet_aton.c])
+m4trace:configure.in:788: -1- AC_SUBST([LIB@&t@OBJS])
+m4trace:configure.in:794: -1- AC_CHECK_LIB([sun], [getpwent])
+m4trace:configure.in:794: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */
 #undef HAVE_LIBSUN])
-m4trace:configure.in:793: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN])
-m4trace:configure.in:798: -1- AC_CHECK_LIB([socket], [getpeername], [bash_cv_have_socklib=yes], [bash_cv_have_socklib=no], [-lnsl])
-m4trace:configure.in:798: -1- AC_CHECK_LIB([nsl], [t_open], [bash_cv_have_libnsl=yes], [bash_cv_have_libnsl=no])
-m4trace:configure.in:798: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET])
-m4trace:configure.in:798: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME])
-m4trace:configure.in:802: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.in:794: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN])
+m4trace:configure.in:799: -1- AC_CHECK_LIB([socket], [getpeername], [bash_cv_have_socklib=yes], [bash_cv_have_socklib=no], [-lnsl])
+m4trace:configure.in:799: -1- AC_CHECK_LIB([nsl], [t_open], [bash_cv_have_libnsl=yes], [bash_cv_have_libnsl=no])
+m4trace:configure.in:799: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET])
+m4trace:configure.in:799: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME])
+m4trace:configure.in:803: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:737: BASH_FUNC_GETHOSTBYNAME is expanded from...
-configure.in:802: the top level])
-m4trace:configure.in:802: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME])
-m4trace:configure.in:806: -1- AC_TYPE_UID_T
-m4trace:configure.in:806: -1- AC_DEFINE_TRACE_LITERAL([uid_t])
-m4trace:configure.in:806: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
+configure.in:803: the top level])
+m4trace:configure.in:803: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME])
+m4trace:configure.in:807: -1- AC_TYPE_UID_T
+m4trace:configure.in:807: -1- AC_DEFINE_TRACE_LITERAL([uid_t])
+m4trace:configure.in:807: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
 #undef uid_t])
-m4trace:configure.in:806: -1- AC_DEFINE_TRACE_LITERAL([gid_t])
-m4trace:configure.in:806: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
+m4trace:configure.in:807: -1- AC_DEFINE_TRACE_LITERAL([gid_t])
+m4trace:configure.in:807: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
 #undef gid_t])
-m4trace:configure.in:806: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T])
-m4trace:configure.in:806: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually
+m4trace:configure.in:807: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T])
+m4trace:configure.in:807: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually
    this is either `int\' or `gid_t\'. */
 #undef GETGROUPS_T])
-m4trace:configure.in:807: -1- AC_TYPE_OFF_T
-m4trace:configure.in:807: -1- AC_DEFINE_TRACE_LITERAL([off_t])
-m4trace:configure.in:807: -1- AH_OUTPUT([off_t], [/* Define to `long\' if <sys/types.h> does not define. */
+m4trace:configure.in:808: -1- AC_TYPE_OFF_T
+m4trace:configure.in:808: -1- AC_DEFINE_TRACE_LITERAL([off_t])
+m4trace:configure.in:808: -1- AH_OUTPUT([off_t], [/* Define to `long\' if <sys/types.h> does not define. */
 #undef off_t])
-m4trace:configure.in:808: -1- AC_TYPE_MODE_T
-m4trace:configure.in:808: -1- AC_DEFINE_TRACE_LITERAL([mode_t])
-m4trace:configure.in:808: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if <sys/types.h> does not define. */
+m4trace:configure.in:809: -1- AC_TYPE_MODE_T
+m4trace:configure.in:809: -1- AC_DEFINE_TRACE_LITERAL([mode_t])
+m4trace:configure.in:809: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if <sys/types.h> does not define. */
 #undef mode_t])
-m4trace:configure.in:809: -1- AC_TYPE_UID_T
-m4trace:configure.in:809: -1- AC_DEFINE_TRACE_LITERAL([uid_t])
-m4trace:configure.in:809: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
+m4trace:configure.in:810: -1- AC_TYPE_UID_T
+m4trace:configure.in:810: -1- AC_DEFINE_TRACE_LITERAL([uid_t])
+m4trace:configure.in:810: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
 #undef uid_t])
-m4trace:configure.in:809: -1- AC_DEFINE_TRACE_LITERAL([gid_t])
-m4trace:configure.in:809: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
+m4trace:configure.in:810: -1- AC_DEFINE_TRACE_LITERAL([gid_t])
+m4trace:configure.in:810: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
 #undef gid_t])
-m4trace:configure.in:810: -1- AC_TYPE_PID_T
-m4trace:configure.in:810: -1- AC_DEFINE_TRACE_LITERAL([pid_t])
-m4trace:configure.in:810: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */
+m4trace:configure.in:811: -1- AC_TYPE_PID_T
+m4trace:configure.in:811: -1- AC_DEFINE_TRACE_LITERAL([pid_t])
+m4trace:configure.in:811: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */
 #undef pid_t])
-m4trace:configure.in:811: -1- AC_TYPE_SIZE_T
-m4trace:configure.in:811: -1- AC_DEFINE_TRACE_LITERAL([size_t])
-m4trace:configure.in:811: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */
+m4trace:configure.in:812: -1- AC_TYPE_SIZE_T
+m4trace:configure.in:812: -1- AC_DEFINE_TRACE_LITERAL([size_t])
+m4trace:configure.in:812: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */
 #undef size_t])
-m4trace:configure.in:812: -1- AC_DEFINE_TRACE_LITERAL([ssize_t])
-m4trace:configure.in:812: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if <sys/types.h> does not define. */
+m4trace:configure.in:813: -1- AC_DEFINE_TRACE_LITERAL([ssize_t])
+m4trace:configure.in:813: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if <sys/types.h> does not define. */
 #undef ssize_t])
-m4trace:configure.in:813: -1- AC_DEFINE_TRACE_LITERAL([time_t])
-m4trace:configure.in:813: -1- AH_OUTPUT([time_t], [/* Define to `long\' if <sys/types.h> does not define. */
+m4trace:configure.in:814: -1- AC_DEFINE_TRACE_LITERAL([time_t])
+m4trace:configure.in:814: -1- AH_OUTPUT([time_t], [/* Define to `long\' if <sys/types.h> does not define. */
 #undef time_t])
-m4trace:configure.in:815: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.in:816: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:481: BASH_TYPE_LONG_LONG is expanded from...
-configure.in:815: the top level])
-m4trace:configure.in:815: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG])
-m4trace:configure.in:816: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:816: the top level])
+m4trace:configure.in:816: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG])
+m4trace:configure.in:817: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:496: BASH_TYPE_UNSIGNED_LONG_LONG is expanded from...
-configure.in:816: the top level])
-m4trace:configure.in:816: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG])
-m4trace:configure.in:818: -1- AC_TYPE_SIGNAL
-m4trace:configure.in:818: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE])
-m4trace:configure.in:818: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */
+configure.in:817: the top level])
+m4trace:configure.in:817: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG])
+m4trace:configure.in:819: -1- AC_TYPE_SIGNAL
+m4trace:configure.in:819: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE])
+m4trace:configure.in:819: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */
 #undef RETSIGTYPE])
-m4trace:configure.in:820: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
-autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
-configure.in:820: the top level])
-m4trace:configure.in:820: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR])
-m4trace:configure.in:820: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of a `char\', as computed by sizeof. */
-#undef SIZEOF_CHAR])
 m4trace:configure.in:821: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
 configure.in:821: the top level])
-m4trace:configure.in:821: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT])
-m4trace:configure.in:821: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of a `short\', as computed by sizeof. */
-#undef SIZEOF_SHORT])
+m4trace:configure.in:821: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR])
+m4trace:configure.in:821: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of a `char\', as computed by sizeof. */
+#undef SIZEOF_CHAR])
 m4trace:configure.in:822: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
 configure.in:822: the top level])
-m4trace:configure.in:822: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT])
-m4trace:configure.in:822: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a `int\', as computed by sizeof. */
-#undef SIZEOF_INT])
+m4trace:configure.in:822: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT])
+m4trace:configure.in:822: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of a `short\', as computed by sizeof. */
+#undef SIZEOF_SHORT])
 m4trace:configure.in:823: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
 configure.in:823: the top level])
-m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG])
-m4trace:configure.in:823: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of a `long\', as computed by sizeof. */
-#undef SIZEOF_LONG])
+m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT])
+m4trace:configure.in:823: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a `int\', as computed by sizeof. */
+#undef SIZEOF_INT])
 m4trace:configure.in:824: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
 configure.in:824: the top level])
-m4trace:configure.in:824: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P])
-m4trace:configure.in:824: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of a `char *\', as computed by sizeof. */
-#undef SIZEOF_CHAR_P])
+m4trace:configure.in:824: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG])
+m4trace:configure.in:824: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of a `long\', as computed by sizeof. */
+#undef SIZEOF_LONG])
 m4trace:configure.in:825: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
 configure.in:825: the top level])
-m4trace:configure.in:825: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE])
-m4trace:configure.in:825: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of a `double\', as computed by sizeof. */
-#undef SIZEOF_DOUBLE])
+m4trace:configure.in:825: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P])
+m4trace:configure.in:825: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of a `char *\', as computed by sizeof. */
+#undef SIZEOF_CHAR_P])
 m4trace:configure.in:826: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
 configure.in:826: the top level])
-m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG])
-m4trace:configure.in:826: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of a `long long\', as computed by sizeof. */
+m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE])
+m4trace:configure.in:826: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of a `double\', as computed by sizeof. */
+#undef SIZEOF_DOUBLE])
+m4trace:configure.in:827: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from...
+autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
+autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
+autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from...
+configure.in:827: the top level])
+m4trace:configure.in:827: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG])
+m4trace:configure.in:827: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of a `long long\', as computed by sizeof. */
 #undef SIZEOF_LONG_LONG])
-m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([u_int])
-m4trace:configure.in:828: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
+m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([u_int])
+m4trace:configure.in:829: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
 #undef u_int])
-m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([u_long])
-m4trace:configure.in:829: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if <sys/types.h> does not define. */
+m4trace:configure.in:830: -1- AC_DEFINE_TRACE_LITERAL([u_long])
+m4trace:configure.in:830: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if <sys/types.h> does not define. */
 #undef u_long])
-m4trace:configure.in:831: -1- AC_DEFINE_TRACE_LITERAL([bits16_t])
-m4trace:configure.in:831: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */
+m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([bits16_t])
+m4trace:configure.in:832: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */
 #undef bits16_t])
-m4trace:configure.in:831: -1- AC_DEFINE_TRACE_LITERAL([bits16_t])
-m4trace:configure.in:831: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if <sys/types.h> does not define. */
+m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([bits16_t])
+m4trace:configure.in:832: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if <sys/types.h> does not define. */
 #undef bits16_t])
-m4trace:configure.in:831: -1- AC_DEFINE_TRACE_LITERAL([bits16_t])
-m4trace:configure.in:831: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */
+m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([bits16_t])
+m4trace:configure.in:832: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */
 #undef bits16_t])
-m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t])
-m4trace:configure.in:832: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */
+m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t])
+m4trace:configure.in:833: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */
 #undef u_bits16_t])
-m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t])
-m4trace:configure.in:832: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if <sys/types.h> does not define. */
+m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t])
+m4trace:configure.in:833: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if <sys/types.h> does not define. */
 #undef u_bits16_t])
-m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t])
-m4trace:configure.in:832: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */
+m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t])
+m4trace:configure.in:833: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */
 #undef u_bits16_t])
-m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits32_t])
-m4trace:configure.in:833: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */
+m4trace:configure.in:834: -1- AC_DEFINE_TRACE_LITERAL([bits32_t])
+m4trace:configure.in:834: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */
 #undef bits32_t])
-m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits32_t])
-m4trace:configure.in:833: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if <sys/types.h> does not define. */
+m4trace:configure.in:834: -1- AC_DEFINE_TRACE_LITERAL([bits32_t])
+m4trace:configure.in:834: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if <sys/types.h> does not define. */
 #undef bits32_t])
-m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits32_t])
-m4trace:configure.in:833: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */
+m4trace:configure.in:834: -1- AC_DEFINE_TRACE_LITERAL([bits32_t])
+m4trace:configure.in:834: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */
 #undef bits32_t])
-m4trace:configure.in:834: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t])
-m4trace:configure.in:834: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
+m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t])
+m4trace:configure.in:835: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
 #undef u_bits32_t])
-m4trace:configure.in:834: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t])
-m4trace:configure.in:834: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if <sys/types.h> does not define. */
+m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t])
+m4trace:configure.in:835: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if <sys/types.h> does not define. */
 #undef u_bits32_t])
-m4trace:configure.in:834: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t])
-m4trace:configure.in:834: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
+m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t])
+m4trace:configure.in:835: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
 #undef u_bits32_t])
-m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
-m4trace:configure.in:835: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if <sys/types.h> does not define. */
+m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
+m4trace:configure.in:836: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if <sys/types.h> does not define. */
 #undef bits64_t])
-m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
-m4trace:configure.in:835: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */
+m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
+m4trace:configure.in:836: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */
 #undef bits64_t])
-m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
-m4trace:configure.in:835: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if <sys/types.h> does not define. */
+m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
+m4trace:configure.in:836: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if <sys/types.h> does not define. */
 #undef bits64_t])
-m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
-m4trace:configure.in:835: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if <sys/types.h> does not define. */
+m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
+m4trace:configure.in:836: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if <sys/types.h> does not define. */
 #undef bits64_t])
-m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
-m4trace:configure.in:835: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */
+m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([bits64_t])
+m4trace:configure.in:836: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */
 #undef bits64_t])
-m4trace:configure.in:837: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
-m4trace:configure.in:837: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */
+m4trace:configure.in:838: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
+m4trace:configure.in:838: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */
 #undef ptrdiff_t])
-m4trace:configure.in:837: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
-m4trace:configure.in:837: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if <sys/types.h> does not define. */
+m4trace:configure.in:838: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
+m4trace:configure.in:838: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if <sys/types.h> does not define. */
 #undef ptrdiff_t])
-m4trace:configure.in:837: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
-m4trace:configure.in:837: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if <sys/types.h> does not define. */
+m4trace:configure.in:838: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
+m4trace:configure.in:838: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if <sys/types.h> does not define. */
 #undef ptrdiff_t])
-m4trace:configure.in:837: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
-m4trace:configure.in:837: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */
+m4trace:configure.in:838: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
+m4trace:configure.in:838: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */
 #undef ptrdiff_t])
-m4trace:configure.in:840: -1- AC_HEADER_STAT
-m4trace:configure.in:840: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN])
-m4trace:configure.in:840: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in <sys/stat.h> do not work properly. */
+m4trace:configure.in:841: -1- AC_HEADER_STAT
+m4trace:configure.in:841: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN])
+m4trace:configure.in:841: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in <sys/stat.h> do not work properly. */
 #undef STAT_MACROS_BROKEN])
-m4trace:configure.in:845: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC])
-m4trace:configure.in:850: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.in:846: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC])
+m4trace:configure.in:851: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:546: BASH_FUNC_LSTAT is expanded from...
-configure.in:850: the top level])
-m4trace:configure.in:850: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT])
-m4trace:configure.in:854: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:851: the top level])
+m4trace:configure.in:851: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT])
+m4trace:configure.in:855: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1869: BASH_FUNC_CTYPE_NONASCII is expanded from...
-configure.in:854: the top level])
-m4trace:configure.in:854: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII])
-m4trace:configure.in:855: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:855: the top level])
+m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII])
+m4trace:configure.in:856: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:294: BASH_FUNC_DUP2_CLOEXEC_CHECK is expanded from...
-configure.in:855: the top level])
-m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN])
-m4trace:configure.in:856: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:856: the top level])
+m4trace:configure.in:856: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN])
+m4trace:configure.in:857: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1280: BASH_SYS_PGRP_SYNC is expanded from...
-configure.in:856: the top level])
-m4trace:configure.in:856: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE])
-m4trace:configure.in:857: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:857: the top level])
+m4trace:configure.in:857: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE])
+m4trace:configure.in:858: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1217: BASH_SYS_SIGNAL_VINTAGE is expanded from...
-configure.in:857: the top level])
-m4trace:configure.in:857: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:858: the top level])
+m4trace:configure.in:858: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from...
 autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1217: BASH_SYS_SIGNAL_VINTAGE is expanded from...
-configure.in:857: the top level])
-m4trace:configure.in:857: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:858: the top level])
+m4trace:configure.in:858: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from...
 autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
@@ -1504,311 +1511,311 @@ autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from...
 autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1217: BASH_SYS_SIGNAL_VINTAGE is expanded from...
-configure.in:857: the top level])
-m4trace:configure.in:857: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS])
-m4trace:configure.in:857: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS])
-m4trace:configure.in:857: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD])
-m4trace:configure.in:860: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:858: the top level])
+m4trace:configure.in:858: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS])
+m4trace:configure.in:858: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS])
+m4trace:configure.in:858: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD])
+m4trace:configure.in:861: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:262: BASH_SYS_ERRLIST is expanded from...
-configure.in:860: the top level])
-m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST])
-m4trace:configure.in:861: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:861: the top level])
+m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST])
+m4trace:configure.in:862: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:233: BASH_SYS_SIGLIST is expanded from...
-configure.in:861: the top level])
-m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST])
-m4trace:configure.in:862: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+configure.in:862: the top level])
+m4trace:configure.in:862: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST])
+m4trace:configure.in:863: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:179: BASH_DECL_UNDER_SYS_SIGLIST is expanded from...
-configure.in:862: BASH_DECL_UNDER_SYS_SIGLIST is required by...
+configure.in:863: BASH_DECL_UNDER_SYS_SIGLIST is required by...
 aclocal.m4:206: BASH_UNDER_SYS_SIGLIST is expanded from...
-configure.in:862: the top level])
-m4trace:configure.in:862: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED])
-m4trace:configure.in:862: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:863: the top level])
+m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED])
+m4trace:configure.in:863: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:206: BASH_UNDER_SYS_SIGLIST is expanded from...
-configure.in:862: the top level])
-m4trace:configure.in:862: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST])
-m4trace:configure.in:865: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+configure.in:863: the top level])
+m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST])
+m4trace:configure.in:866: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:380: BASH_TYPE_SIGHANDLER is expanded from...
-configure.in:865: the top level])
-m4trace:configure.in:865: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER])
-m4trace:configure.in:866: -1- AC_DEFINE_TRACE_LITERAL([clock_t])
-m4trace:configure.in:867: -1- AC_DEFINE_TRACE_LITERAL([sigset_t])
-m4trace:configure.in:868: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T])
-m4trace:configure.in:868: -1- AC_DEFINE_TRACE_LITERAL([quad_t])
-m4trace:configure.in:869: -1- AC_DEFINE_TRACE_LITERAL([intmax_t])
-m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t])
-m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T])
-m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([socklen_t])
-m4trace:configure.in:874: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+configure.in:866: the top level])
+m4trace:configure.in:866: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER])
+m4trace:configure.in:867: -1- AC_DEFINE_TRACE_LITERAL([clock_t])
+m4trace:configure.in:868: -1- AC_DEFINE_TRACE_LITERAL([sigset_t])
+m4trace:configure.in:869: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T])
+m4trace:configure.in:869: -1- AC_DEFINE_TRACE_LITERAL([quad_t])
+m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([intmax_t])
+m4trace:configure.in:871: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t])
+m4trace:configure.in:873: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T])
+m4trace:configure.in:873: -1- AC_DEFINE_TRACE_LITERAL([socklen_t])
+m4trace:configure.in:875: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:532: BASH_TYPE_RLIMIT is expanded from...
-configure.in:874: the top level])
-m4trace:configure.in:874: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:875: the top level])
+m4trace:configure.in:875: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from...
 autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:532: BASH_TYPE_RLIMIT is expanded from...
-configure.in:874: the top level])
-m4trace:configure.in:874: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE])
-m4trace:configure.in:874: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE])
-m4trace:configure.in:877: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC])
-m4trace:configure.in:878: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC])
-m4trace:configure.in:879: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-aclocal.m4:1058: BASH_STRUCT_DIRENT_D_INO is expanded from...
-configure.in:879: the top level])
-m4trace:configure.in:879: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO])
+configure.in:875: the top level])
+m4trace:configure.in:875: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE])
+m4trace:configure.in:875: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE])
+m4trace:configure.in:878: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC])
+m4trace:configure.in:879: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC])
 m4trace:configure.in:880: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-aclocal.m4:1091: BASH_STRUCT_DIRENT_D_FILENO is expanded from...
+aclocal.m4:1058: BASH_STRUCT_DIRENT_D_INO is expanded from...
 configure.in:880: the top level])
-m4trace:configure.in:880: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO])
+m4trace:configure.in:880: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO])
 m4trace:configure.in:881: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-aclocal.m4:1124: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from...
+aclocal.m4:1091: BASH_STRUCT_DIRENT_D_FILENO is expanded from...
 configure.in:881: the top level])
-m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN])
+m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO])
 m4trace:configure.in:882: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-aclocal.m4:1177: BASH_STRUCT_WINSIZE is expanded from...
+aclocal.m4:1124: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from...
 configure.in:882: the top level])
-m4trace:configure.in:882: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN])
+m4trace:configure.in:883: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
+autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
+aclocal.m4:1177: BASH_STRUCT_WINSIZE is expanded from...
+configure.in:883: the top level])
+m4trace:configure.in:883: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from...
 autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1177: BASH_STRUCT_WINSIZE is expanded from...
-configure.in:882: the top level])
-m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL])
-m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS])
-m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL])
-m4trace:configure.in:884: -1- AC_CHECK_MEMBERS([struct stat.st_blocks])
-m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS])
-m4trace:configure.in:884: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is member of `struct stat\'. */
+configure.in:883: the top level])
+m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL])
+m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS])
+m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL])
+m4trace:configure.in:885: -1- AC_CHECK_MEMBERS([struct stat.st_blocks])
+m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS])
+m4trace:configure.in:885: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is member of `struct stat\'. */
 #undef HAVE_STRUCT_STAT_ST_BLOCKS])
-m4trace:configure.in:885: -1- AC_STRUCT_TM
-m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME])
-m4trace:configure.in:885: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your <sys/time.h> declares `struct tm\'. */
+m4trace:configure.in:886: -1- AC_STRUCT_TM
+m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME])
+m4trace:configure.in:886: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your <sys/time.h> declares `struct tm\'. */
 #undef TM_IN_SYS_TIME])
-m4trace:configure.in:886: -1- AC_STRUCT_TIMEZONE
-m4trace:configure.in:886: -1- AC_CHECK_MEMBERS([struct tm.tm_zone], [], [], [#include <sys/types.h>
+m4trace:configure.in:887: -1- AC_STRUCT_TIMEZONE
+m4trace:configure.in:887: -1- AC_CHECK_MEMBERS([struct tm.tm_zone], [], [], [#include <sys/types.h>
 #include <$ac_cv_struct_tm>
 ])
-m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE])
-m4trace:configure.in:886: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is member of `struct tm\'. */
+m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE])
+m4trace:configure.in:887: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is member of `struct tm\'. */
 #undef HAVE_STRUCT_TM_TM_ZONE])
-m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE])
-m4trace:configure.in:886: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use
+m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE])
+m4trace:configure.in:887: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use
    `HAVE_STRUCT_TM_TM_ZONE\' instead. */
 #undef HAVE_TM_ZONE])
-m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME])
-m4trace:configure.in:886: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array
+m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME])
+m4trace:configure.in:887: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array
    `tzname\'. */
 #undef HAVE_TZNAME])
-m4trace:configure.in:887: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE])
-m4trace:configure.in:890: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE])
+m4trace:configure.in:891: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:307: BASH_FUNC_STRSIGNAL is expanded from...
-configure.in:890: the top level])
-m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL])
-m4trace:configure.in:891: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
-You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
-autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-aclocal.m4:360: BASH_FUNC_OPENDIR_CHECK is expanded from...
 configure.in:891: the top level])
-m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST])
+m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL])
 m4trace:configure.in:892: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-aclocal.m4:685: BASH_FUNC_ULIMIT_MAXFDS is expanded from...
+aclocal.m4:360: BASH_FUNC_OPENDIR_CHECK is expanded from...
 configure.in:892: the top level])
-m4trace:configure.in:892: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS])
+m4trace:configure.in:892: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST])
 m4trace:configure.in:893: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
-aclocal.m4:606: BASH_FUNC_GETENV is expanded from...
+aclocal.m4:685: BASH_FUNC_ULIMIT_MAXFDS is expanded from...
 configure.in:893: the top level])
-m4trace:configure.in:893: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV])
-m4trace:configure.in:895: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+m4trace:configure.in:893: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS])
+m4trace:configure.in:894: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
+autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
+aclocal.m4:606: BASH_FUNC_GETENV is expanded from...
+configure.in:894: the top level])
+m4trace:configure.in:894: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV])
+m4trace:configure.in:896: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:711: BASH_FUNC_GETCWD is expanded from...
-configure.in:895: the top level])
-m4trace:configure.in:895: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN])
-m4trace:configure.in:895: -1- AC_LIBSOURCE([getcwd.c])
-m4trace:configure.in:895: -1- AC_SUBST([LIB@&t@OBJS])
-m4trace:configure.in:897: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:896: the top level])
+m4trace:configure.in:896: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN])
+m4trace:configure.in:896: -1- AC_LIBSOURCE([getcwd.c])
+m4trace:configure.in:896: -1- AC_SUBST([LIB@&t@OBJS])
+m4trace:configure.in:898: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:812: BASH_FUNC_POSIX_SETJMP is expanded from...
-configure.in:897: the top level])
-m4trace:configure.in:897: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP])
-m4trace:configure.in:898: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:898: the top level])
+m4trace:configure.in:898: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP])
+m4trace:configure.in:899: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:861: BASH_FUNC_STRCOLL is expanded from...
-configure.in:898: the top level])
-m4trace:configure.in:898: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN])
-m4trace:configure.in:904: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:899: the top level])
+m4trace:configure.in:899: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN])
+m4trace:configure.in:905: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:636: BASH_FUNC_STD_PUTENV is expanded from...
-configure.in:904: the top level])
-m4trace:configure.in:904: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV])
-m4trace:configure.in:906: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV])
-m4trace:configure.in:909: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.in:905: the top level])
+m4trace:configure.in:905: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV])
+m4trace:configure.in:907: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV])
+m4trace:configure.in:910: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
 aclocal.m4:666: BASH_FUNC_STD_UNSETENV is expanded from...
-configure.in:909: the top level])
-m4trace:configure.in:909: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV])
-m4trace:configure.in:911: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV])
-m4trace:configure.in:914: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:910: the top level])
+m4trace:configure.in:910: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV])
+m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV])
+m4trace:configure.in:915: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:887: BASH_FUNC_PRINTF_A_FORMAT is expanded from...
-configure.in:914: the top level])
-m4trace:configure.in:914: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT])
-m4trace:configure.in:917: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:915: the top level])
+m4trace:configure.in:915: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT])
+m4trace:configure.in:918: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1338: BASH_SYS_REINSTALL_SIGHANDLERS is expanded from...
-configure.in:917: the top level])
-m4trace:configure.in:917: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS])
-m4trace:configure.in:918: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:918: the top level])
+m4trace:configure.in:918: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS])
+m4trace:configure.in:919: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1396: BASH_SYS_JOB_CONTROL_MISSING is expanded from...
-configure.in:918: the top level])
-m4trace:configure.in:918: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING])
-m4trace:configure.in:919: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:919: the top level])
+m4trace:configure.in:919: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING])
+m4trace:configure.in:920: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1448: BASH_SYS_NAMED_PIPES is expanded from...
-configure.in:919: the top level])
-m4trace:configure.in:919: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING])
-m4trace:configure.in:922: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL])
-m4trace:configure.in:922: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires <sys/ioctl.h>. */
+configure.in:920: the top level])
+m4trace:configure.in:920: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING])
+m4trace:configure.in:923: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL])
+m4trace:configure.in:923: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires <sys/ioctl.h>. */
 #undef GWINSZ_IN_SYS_IOCTL])
-m4trace:configure.in:923: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+m4trace:configure.in:924: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1491: BASH_HAVE_TIOCSTAT is expanded from...
-configure.in:923: the top level])
-m4trace:configure.in:923: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL])
-m4trace:configure.in:924: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+configure.in:924: the top level])
+m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL])
+m4trace:configure.in:925: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1503: BASH_HAVE_FIONREAD is expanded from...
-configure.in:924: the top level])
-m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL])
-m4trace:configure.in:926: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:925: the top level])
+m4trace:configure.in:925: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL])
+m4trace:configure.in:927: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1902: BASH_CHECK_WCONTINUED is expanded from...
-configure.in:926: the top level])
-m4trace:configure.in:926: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN])
-m4trace:configure.in:929: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+configure.in:927: the top level])
+m4trace:configure.in:927: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN])
+m4trace:configure.in:930: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1520: BASH_CHECK_SPEED_T is expanded from...
-configure.in:929: the top level])
-m4trace:configure.in:929: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES])
-m4trace:configure.in:930: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS])
-m4trace:configure.in:931: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+configure.in:930: the top level])
+m4trace:configure.in:930: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES])
+m4trace:configure.in:931: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS])
+m4trace:configure.in:932: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1665: BASH_CHECK_RTSIGS is expanded from...
-configure.in:931: the top level])
-m4trace:configure.in:931: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS])
-m4trace:configure.in:932: -1- AC_SUBST([SIGLIST_O])
-m4trace:configure.in:936: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+configure.in:932: the top level])
+m4trace:configure.in:932: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS])
+m4trace:configure.in:933: -1- AC_SUBST([SIGLIST_O])
+m4trace:configure.in:937: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1614: BASH_CHECK_KERNEL_RLIMIT is expanded from...
-configure.in:936: the top level])
-m4trace:configure.in:936: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+configure.in:937: the top level])
+m4trace:configure.in:937: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
 You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from...
 autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from...
 autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
 aclocal.m4:1614: BASH_CHECK_KERNEL_RLIMIT is expanded from...
-configure.in:936: the top level])
-m4trace:configure.in:936: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL])
-m4trace:configure.in:944: -1- AC_CHECK_LIB([termcap], [tgetent], [bash_cv_termcap_lib=libtermcap], [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
+configure.in:937: the top level])
+m4trace:configure.in:937: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL])
+m4trace:configure.in:945: -1- AC_CHECK_LIB([termcap], [tgetent], [bash_cv_termcap_lib=libtermcap], [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
         [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
            [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
                bash_cv_termcap_lib=gnutermcap)])])])
-m4trace:configure.in:944: -1- AC_CHECK_LIB([tinfo], [tgetent], [bash_cv_termcap_lib=libtinfo], [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
+m4trace:configure.in:945: -1- AC_CHECK_LIB([tinfo], [tgetent], [bash_cv_termcap_lib=libtinfo], [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
            [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
                bash_cv_termcap_lib=gnutermcap)])])
-m4trace:configure.in:944: -1- AC_CHECK_LIB([curses], [tgetent], [bash_cv_termcap_lib=libcurses], [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
+m4trace:configure.in:945: -1- AC_CHECK_LIB([curses], [tgetent], [bash_cv_termcap_lib=libcurses], [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
                bash_cv_termcap_lib=gnutermcap)])
-m4trace:configure.in:944: -1- AC_CHECK_LIB([ncurses], [tgetent], [bash_cv_termcap_lib=libncurses], [bash_cv_termcap_lib=gnutermcap])
-m4trace:configure.in:946: -1- AC_SUBST([TERMCAP_LIB])
-m4trace:configure.in:947: -1- AC_SUBST([TERMCAP_DEP])
-m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD])
-m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX])
-m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD])
-m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX])
-m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN])
-m4trace:configure.in:951: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY])
-m4trace:configure.in:958: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL])
-m4trace:configure.in:964: -1- AC_SUBST([JOBS_O])
-m4trace:configure.in:977: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2])
-m4trace:configure.in:978: -1- AC_DEFINE_TRACE_LITERAL([SVR4])
+m4trace:configure.in:945: -1- AC_CHECK_LIB([ncurses], [tgetent], [bash_cv_termcap_lib=libncurses], [bash_cv_termcap_lib=gnutermcap])
+m4trace:configure.in:947: -1- AC_SUBST([TERMCAP_LIB])
+m4trace:configure.in:948: -1- AC_SUBST([TERMCAP_DEP])
+m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD])
+m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX])
+m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD])
+m4trace:configure.in:950: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX])
+m4trace:configure.in:951: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN])
+m4trace:configure.in:952: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY])
+m4trace:configure.in:959: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL])
+m4trace:configure.in:965: -1- AC_SUBST([JOBS_O])
+m4trace:configure.in:978: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2])
 m4trace:configure.in:979: -1- AC_DEFINE_TRACE_LITERAL([SVR4])
-m4trace:configure.in:980: -1- AC_DEFINE_TRACE_LITERAL([SVR5])
-m4trace:configure.in:995: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE])
-m4trace:configure.in:1042: -1- AC_SUBST([SHOBJ_CC])
-m4trace:configure.in:1043: -1- AC_SUBST([SHOBJ_CFLAGS])
-m4trace:configure.in:1044: -1- AC_SUBST([SHOBJ_LD])
-m4trace:configure.in:1045: -1- AC_SUBST([SHOBJ_LDFLAGS])
-m4trace:configure.in:1046: -1- AC_SUBST([SHOBJ_XLDFLAGS])
-m4trace:configure.in:1047: -1- AC_SUBST([SHOBJ_LIBS])
-m4trace:configure.in:1048: -1- AC_SUBST([SHOBJ_STATUS])
-m4trace:configure.in:1073: -1- AC_SUBST([PROFILE_FLAGS])
-m4trace:configure.in:1075: -1- AC_SUBST([incdir])
-m4trace:configure.in:1076: -1- AC_SUBST([BUILD_DIR])
-m4trace:configure.in:1078: -1- AC_SUBST([YACC])
-m4trace:configure.in:1079: -1- AC_SUBST([AR])
-m4trace:configure.in:1080: -1- AC_SUBST([ARFLAGS])
-m4trace:configure.in:1082: -1- AC_SUBST([BASHVERS])
-m4trace:configure.in:1083: -1- AC_SUBST([RELSTATUS])
-m4trace:configure.in:1084: -1- AC_SUBST([DEBUG])
-m4trace:configure.in:1085: -1- AC_SUBST([MALLOC_DEBUG])
-m4trace:configure.in:1087: -1- AC_SUBST([host_cpu])
-m4trace:configure.in:1088: -1- AC_SUBST([host_vendor])
-m4trace:configure.in:1089: -1- AC_SUBST([host_os])
-m4trace:configure.in:1091: -1- AC_SUBST([LOCAL_LIBS])
-m4trace:configure.in:1092: -1- AC_SUBST([LOCAL_CFLAGS])
-m4trace:configure.in:1093: -1- AC_SUBST([LOCAL_LDFLAGS])
-m4trace:configure.in:1094: -1- AC_SUBST([LOCAL_DEFS])
-m4trace:configure.in:1108: -1- AC_CONFIG_FILES([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
+m4trace:configure.in:980: -1- AC_DEFINE_TRACE_LITERAL([SVR4])
+m4trace:configure.in:981: -1- AC_DEFINE_TRACE_LITERAL([SVR5])
+m4trace:configure.in:996: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE])
+m4trace:configure.in:1043: -1- AC_SUBST([SHOBJ_CC])
+m4trace:configure.in:1044: -1- AC_SUBST([SHOBJ_CFLAGS])
+m4trace:configure.in:1045: -1- AC_SUBST([SHOBJ_LD])
+m4trace:configure.in:1046: -1- AC_SUBST([SHOBJ_LDFLAGS])
+m4trace:configure.in:1047: -1- AC_SUBST([SHOBJ_XLDFLAGS])
+m4trace:configure.in:1048: -1- AC_SUBST([SHOBJ_LIBS])
+m4trace:configure.in:1049: -1- AC_SUBST([SHOBJ_STATUS])
+m4trace:configure.in:1074: -1- AC_SUBST([PROFILE_FLAGS])
+m4trace:configure.in:1076: -1- AC_SUBST([incdir])
+m4trace:configure.in:1077: -1- AC_SUBST([BUILD_DIR])
+m4trace:configure.in:1079: -1- AC_SUBST([YACC])
+m4trace:configure.in:1080: -1- AC_SUBST([AR])
+m4trace:configure.in:1081: -1- AC_SUBST([ARFLAGS])
+m4trace:configure.in:1083: -1- AC_SUBST([BASHVERS])
+m4trace:configure.in:1084: -1- AC_SUBST([RELSTATUS])
+m4trace:configure.in:1085: -1- AC_SUBST([DEBUG])
+m4trace:configure.in:1086: -1- AC_SUBST([MALLOC_DEBUG])
+m4trace:configure.in:1088: -1- AC_SUBST([host_cpu])
+m4trace:configure.in:1089: -1- AC_SUBST([host_vendor])
+m4trace:configure.in:1090: -1- AC_SUBST([host_os])
+m4trace:configure.in:1092: -1- AC_SUBST([LOCAL_LIBS])
+m4trace:configure.in:1093: -1- AC_SUBST([LOCAL_CFLAGS])
+m4trace:configure.in:1094: -1- AC_SUBST([LOCAL_LDFLAGS])
+m4trace:configure.in:1095: -1- AC_SUBST([LOCAL_DEFS])
+m4trace:configure.in:1109: -1- AC_CONFIG_FILES([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \
          lib/intl/Makefile \
          lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \
          lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \
          examples/loadables/Makefile examples/loadables/perl/Makefile \
          pathnames.h])
-m4trace:configure.in:1108: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
+m4trace:configure.in:1109: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
 You should run autoupdate.], [])
-m4trace:configure.in:1108: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
-m4trace:configure.in:1108: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
+m4trace:configure.in:1109: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
+m4trace:configure.in:1109: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
index 496f6c12f7f2341b2878d9211a13335b23bba972..19f2c694fdbf56e299d630107a25d54488c58471 100644 (file)
@@ -2265,7 +2265,7 @@ static void
 bash_directory_expansion (dirname)
      char **dirname;
 {
-  char *d;
+  char *d, *nd;
 
   d = savestring (*dirname);
 
@@ -2277,6 +2277,13 @@ bash_directory_expansion (dirname)
       free (*dirname);
       *dirname = d;
     }
+  else if (rl_completion_found_quote)
+    {
+      nd = bash_dequote_filename (d, rl_completion_quote_character);
+      free (*dirname);
+      free (d);
+      *dirname = nd;
+    }
 }
   
 /* Handle symbolic link references and other directory name
@@ -2337,6 +2344,13 @@ bash_directory_completion_hook (dirname)
          return 1;
        }
     }
+  else 
+    {
+      /* Dequote the filename even if we don't expand it. */
+      new_dirname = bash_dequote_filename (local_dirname, rl_completion_quote_character);
+      free (local_dirname);
+      local_dirname = *dirname = new_dirname;
+    }
 
   if (!no_symbolic_links && (local_dirname[0] != '.' || local_dirname[1]))
     {
@@ -3123,11 +3137,7 @@ bash_directory_completion_matches (text)
   char *dfn;
   int qc;
 
-#if 0
-  qc = (text[0] == '"' || text[0] == '\'') ? text[0] : 0;
-#else
   qc = rl_dispatching ? rl_completion_quote_character : 0;  
-#endif
   dfn = bash_dequote_filename ((char *)text, qc);
   m1 = rl_completion_matches (dfn, rl_filename_completion_function);
   free (dfn);
diff --git a/bashline.c~ b/bashline.c~
new file mode 100644 (file)
index 0000000..5203272
--- /dev/null
@@ -0,0 +1,3169 @@
+/* bashline.c -- Bash's interface to the readline library. */
+
+/* Copyright (C) 1987-2005 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 2, 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; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#include "config.h"
+
+#if defined (READLINE)
+
+#include "bashtypes.h"
+#include "posixstat.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#if defined (HAVE_GRP_H)
+#  include <grp.h>
+#endif
+
+#if defined (HAVE_NETDB_H)
+#  include <netdb.h>
+#endif
+
+#include <stdio.h>
+#include "chartypes.h"
+#include "bashansi.h"
+#include "bashintl.h"
+
+#include "shell.h"
+#include "input.h"
+#include "builtins.h"
+#include "bashhist.h"
+#include "bashline.h"
+#include "execute_cmd.h"
+#include "findcmd.h"
+#include "pathexp.h"
+#include "builtins/common.h"
+#include <readline/rlconf.h>
+#include <readline/readline.h>
+#include <readline/history.h>
+
+#include <glob/glob.h>
+
+#if defined (ALIAS)
+#  include "alias.h"
+#endif
+
+#if defined (PROGRAMMABLE_COMPLETION)
+#  include "pcomplete.h"
+#endif
+
+/* These should agree with the defines for emacs_mode and vi_mode in
+   rldefs.h, even though that's not a public readline header file. */
+#ifndef EMACS_EDITING_MODE
+#  define NO_EDITING_MODE      -1
+#  define EMACS_EDITING_MODE    1
+#  define VI_EDITING_MODE       0
+#endif
+
+#if defined (BRACE_COMPLETION)
+extern int bash_brace_completion __P((int, int));
+#endif /* BRACE_COMPLETION */
+
+/* Forward declarations */
+
+/* Functions bound to keys in Readline for Bash users. */
+static int shell_expand_line __P((int, int));
+static int display_shell_version __P((int, int));
+static int operate_and_get_next __P((int, int));
+
+static int bash_ignore_filenames __P((char **));
+static int bash_ignore_everything __P((char **));
+
+#if defined (BANG_HISTORY)
+static char *history_expand_line_internal __P((char *));
+static int history_expand_line __P((int, int));
+static int tcsh_magic_space __P((int, int));
+#endif /* BANG_HISTORY */
+#ifdef ALIAS
+static int alias_expand_line __P((int, int));
+#endif
+#if defined (BANG_HISTORY) && defined (ALIAS)
+static int history_and_alias_expand_line __P((int, int));
+#endif
+
+/* Helper functions for Readline. */
+static void bash_directory_expansion __P((char **));
+static int bash_directory_completion_hook __P((char **));
+static int filename_completion_ignore __P((char **));
+static int bash_push_line __P((void));
+
+static void cleanup_expansion_error __P((void));
+static void maybe_make_readline_line __P((char *));
+static void set_up_new_line __P((char *));
+
+static int check_redir __P((int));
+static char **attempt_shell_completion __P((const char *, int, int));
+static char *variable_completion_function __P((const char *, int));
+static char *hostname_completion_function __P((const char *, int));
+static char *command_subst_completion_function __P((const char *, int));
+
+static void build_history_completion_array __P((void));
+static char *history_completion_generator __P((const char *, int));
+static int dynamic_complete_history __P((int, int));
+
+static void initialize_hostname_list __P((void));
+static void add_host_name __P((char *));
+static void snarf_hosts_from_file __P((char *));
+static char **hostnames_matching __P((char *));
+
+static void _ignore_completion_names __P((char **, sh_ignore_func_t *));
+static int name_is_acceptable __P((const char *));
+static int test_for_directory __P((const char *));
+static int return_zero __P((const char *));
+
+static char *bash_dequote_filename __P((char *, int));
+static char *quote_word_break_chars __P((char *));
+static char *bash_quote_filename __P((char *, int, char *));
+
+static int bash_execute_unix_command __P((int, int));
+static void init_unix_command_map __P((void));
+static int isolate_sequence __P((char *, int, int, int *));
+
+static int set_saved_history __P((void));
+
+#if defined (ALIAS)
+static int posix_edit_macros __P((int, int));
+#endif
+
+#if defined (PROGRAMMABLE_COMPLETION)
+static int find_cmd_start __P((int));
+static int find_cmd_end __P((int));
+static char *find_cmd_name __P((int));
+static char *prog_complete_return __P((const char *, int));
+
+static char **prog_complete_matches;
+#endif
+
+/* Variables used here but defined in other files. */
+#if defined (BANG_HISTORY)
+extern int hist_verify;
+#endif
+
+extern int current_command_line_count, last_command_exit_value;
+extern int posixly_correct, no_symbolic_links;
+extern char *current_prompt_string, *ps1_prompt;
+extern STRING_INT_ALIST word_token_alist[];
+extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin;
+
+/* SPECIFIC_COMPLETION_FUNCTIONS specifies that we have individual
+   completion functions which indicate what type of completion should be
+   done (at or before point) that can be bound to key sequences with
+   the readline library. */
+#define SPECIFIC_COMPLETION_FUNCTIONS
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+static int bash_specific_completion __P((int, rl_compentry_func_t *));
+
+static int bash_complete_filename_internal __P((int));
+static int bash_complete_username_internal __P((int));
+static int bash_complete_hostname_internal __P((int));
+static int bash_complete_variable_internal __P((int));
+static int bash_complete_command_internal __P((int));
+
+static int bash_complete_filename __P((int, int));
+static int bash_possible_filename_completions __P((int, int));
+static int bash_complete_username __P((int, int));
+static int bash_possible_username_completions __P((int, int));
+static int bash_complete_hostname __P((int, int));
+static int bash_possible_hostname_completions __P((int, int));
+static int bash_complete_variable __P((int, int));
+static int bash_possible_variable_completions __P((int, int));
+static int bash_complete_command __P((int, int));
+static int bash_possible_command_completions __P((int, int));
+
+static char *glob_complete_word __P((const char *, int));
+static int bash_glob_completion_internal __P((int));
+static int bash_glob_complete_word __P((int, int));
+static int bash_glob_expand_word __P((int, int));
+static int bash_glob_list_expansions __P((int, int));
+
+#endif /* SPECIFIC_COMPLETION_FUNCTIONS */
+
+static int edit_and_execute_command __P((int, int, int, char *));
+#if defined (VI_MODE)
+static int vi_edit_and_execute_command __P((int, int));
+static int bash_vi_complete __P((int, int));
+#endif
+static int emacs_edit_and_execute_command __P((int, int));
+
+/* Non-zero once initalize_readline () has been called. */
+int bash_readline_initialized = 0;
+
+/* If non-zero, we do hostname completion, breaking words at `@' and
+   trying to complete the stuff after the `@' from our own internal
+   host list. */
+int perform_hostname_completion = 1;
+
+/* If non-zero, we don't do command completion on an empty line. */
+int no_empty_command_completion;
+
+/* Set FORCE_FIGNORE if you want to honor FIGNORE even if it ignores the
+   only possible matches.  Set to 0 if you want to match filenames if they
+   are the only possible matches, even if FIGNORE says to. */
+int force_fignore = 1;
+
+static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:";
+static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
+/* )) */
+
+static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL;
+
+static int dot_in_path = 0;
+
+/* What kind of quoting is performed by bash_quote_filename:
+       COMPLETE_DQUOTE = double-quoting the filename
+       COMPLETE_SQUOTE = single_quoting the filename
+       COMPLETE_BSQUOTE = backslash-quoting special chars in the filename
+*/
+#define COMPLETE_DQUOTE  1
+#define COMPLETE_SQUOTE  2
+#define COMPLETE_BSQUOTE 3
+static int completion_quoting_style = COMPLETE_BSQUOTE;
+
+/* Change the readline VI-mode keymaps into or out of Posix.2 compliance.
+   Called when the shell is put into or out of `posix' mode. */
+void
+posix_readline_initialize (on_or_off)
+     int on_or_off;
+{
+  if (on_or_off)
+    rl_variable_bind ("comment-begin", "#");
+#if defined (VI_MODE)
+  rl_bind_key_in_map (CTRL ('I'), on_or_off ? rl_insert : rl_complete, vi_insertion_keymap);
+#endif
+}
+
+/* When this function returns, rl_completer_word_break_characters points to
+   dynamically allocated memory. */
+int
+enable_hostname_completion (on_or_off)
+     int on_or_off;
+{
+  int old_value;
+  char *at, *nv, *nval;
+
+  old_value = perform_hostname_completion;
+
+  if (on_or_off)
+    {
+      perform_hostname_completion = 1;
+      rl_special_prefixes = "$@";
+    }
+  else
+    {
+      perform_hostname_completion = 0;
+      rl_special_prefixes = "$";
+    }
+
+  /* Now we need to figure out how to appropriately modify and assign
+     rl_completer_word_break_characters depending on whether we want
+     hostname completion on or off. */
+
+  /* If this is the first time this has been called
+     (bash_readline_initialized == 0), use the sames values as before, but
+     allocate new memory for rl_completer_word_break_characters. */
+
+  if (bash_readline_initialized == 0 &&
+      (rl_completer_word_break_characters == 0 || 
+       rl_completer_word_break_characters == rl_basic_word_break_characters))
+    {
+      if (on_or_off)
+       rl_completer_word_break_characters = savestring (bash_completer_word_break_characters);
+      else
+       rl_completer_word_break_characters = savestring (bash_nohostname_word_break_characters);
+    }
+  else
+    {
+      /* See if we have anything to do. */
+      at = strchr (rl_completer_word_break_characters, '@');
+      if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0))
+        return old_value;
+
+      /* We have something to do.  Do it. */
+      nval = (char *)xmalloc (strlen (rl_completer_word_break_characters) + 1 + on_or_off);
+
+      if (on_or_off == 0)
+       {
+         /* Turn it off -- just remove `@' from word break chars.  We want
+            to remove all occurrences of `@' from the char list, so we loop
+            rather than just copy the rest of the list over AT. */
+         for (nv = nval, at = rl_completer_word_break_characters; *at; )
+           if (*at != '@')
+             *nv++ = *at++;
+           else
+             at++;
+         *nv = '\0';
+       }
+      else
+       {
+         nval[0] = '@';
+         strcpy (nval + 1, rl_completer_word_break_characters);
+        }
+
+      free (rl_completer_word_break_characters);
+      rl_completer_word_break_characters = nval;
+    }
+
+  return (old_value);
+}
+
+/* Called once from parse.y if we are going to use readline. */
+void
+initialize_readline ()
+{
+  rl_command_func_t *func;
+  char kseq[2];
+
+  if (bash_readline_initialized)
+    return;
+
+  rl_terminal_name = get_string_value ("TERM");
+  rl_instream = stdin;
+  rl_outstream = stderr;
+
+  /* Allow conditional parsing of the ~/.inputrc file. */
+  rl_readline_name = "Bash";
+
+  /* Add bindable names before calling rl_initialize so they may be
+     referenced in the various inputrc files. */
+  rl_add_defun ("shell-expand-line", shell_expand_line, -1);
+#ifdef BANG_HISTORY
+  rl_add_defun ("history-expand-line", history_expand_line, -1);
+  rl_add_defun ("magic-space", tcsh_magic_space, -1);
+#endif
+
+#ifdef ALIAS
+  rl_add_defun ("alias-expand-line", alias_expand_line, -1);
+#  ifdef BANG_HISTORY
+  rl_add_defun ("history-and-alias-expand-line", history_and_alias_expand_line, -1);
+#  endif
+#endif
+
+  /* Backwards compatibility. */
+  rl_add_defun ("insert-last-argument", rl_yank_last_arg, -1);
+
+  rl_add_defun ("operate-and-get-next", operate_and_get_next, -1);
+  rl_add_defun ("display-shell-version", display_shell_version, -1);
+  rl_add_defun ("edit-and-execute-command", emacs_edit_and_execute_command, -1);
+
+#if defined (BRACE_COMPLETION)
+  rl_add_defun ("complete-into-braces", bash_brace_completion, -1);
+#endif
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+  rl_add_defun ("complete-filename", bash_complete_filename, -1);
+  rl_add_defun ("possible-filename-completions", bash_possible_filename_completions, -1);
+  rl_add_defun ("complete-username", bash_complete_username, -1);
+  rl_add_defun ("possible-username-completions", bash_possible_username_completions, -1);
+  rl_add_defun ("complete-hostname", bash_complete_hostname, -1);
+  rl_add_defun ("possible-hostname-completions", bash_possible_hostname_completions, -1);
+  rl_add_defun ("complete-variable", bash_complete_variable, -1);
+  rl_add_defun ("possible-variable-completions", bash_possible_variable_completions, -1);
+  rl_add_defun ("complete-command", bash_complete_command, -1);
+  rl_add_defun ("possible-command-completions", bash_possible_command_completions, -1);
+  rl_add_defun ("glob-complete-word", bash_glob_complete_word, -1);
+  rl_add_defun ("glob-expand-word", bash_glob_expand_word, -1);
+  rl_add_defun ("glob-list-expansions", bash_glob_list_expansions, -1);
+#endif
+
+  rl_add_defun ("dynamic-complete-history", dynamic_complete_history, -1);
+
+  /* Bind defaults before binding our custom shell keybindings. */
+  if (RL_ISSTATE(RL_STATE_INITIALIZED) == 0)
+    rl_initialize ();
+
+  /* Bind up our special shell functions. */
+  rl_bind_key_if_unbound_in_map (CTRL('E'), shell_expand_line, emacs_meta_keymap);
+
+#ifdef BANG_HISTORY
+  rl_bind_key_if_unbound_in_map ('^', history_expand_line, emacs_meta_keymap);
+#endif
+
+  rl_bind_key_if_unbound_in_map (CTRL ('O'), operate_and_get_next, emacs_standard_keymap);
+  rl_bind_key_if_unbound_in_map (CTRL ('V'), display_shell_version, emacs_ctlx_keymap);
+
+  /* In Bash, the user can switch editing modes with "set -o [vi emacs]",
+     so it is not necessary to allow C-M-j for context switching.  Turn
+     off this occasionally confusing behaviour. */
+  kseq[0] = CTRL('J');
+  kseq[1] = '\0';
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == rl_vi_editing_mode)
+    rl_unbind_key_in_map (CTRL('J'), emacs_meta_keymap);
+  kseq[0] = CTRL('M');
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == rl_vi_editing_mode)
+    rl_unbind_key_in_map (CTRL('M'), emacs_meta_keymap);
+#if defined (VI_MODE)
+  rl_unbind_key_in_map (CTRL('E'), vi_movement_keymap);
+#endif
+
+#if defined (BRACE_COMPLETION)
+  rl_bind_key_if_unbound_in_map ('{', bash_brace_completion, emacs_meta_keymap); /*}*/
+#endif /* BRACE_COMPLETION */
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+  rl_bind_key_if_unbound_in_map ('/', bash_complete_filename, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('/', bash_possible_filename_completions, emacs_ctlx_keymap);
+
+  /* Have to jump through hoops here because there is a default binding for
+     M-~ (rl_tilde_expand) */
+  kseq[0] = '~';
+  kseq[1] = '\0';
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == 0 || func == rl_tilde_expand)
+    rl_bind_keyseq_in_map (kseq, bash_complete_username, emacs_meta_keymap);
+
+  rl_bind_key_if_unbound_in_map ('~', bash_possible_username_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('@', bash_complete_hostname, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('@', bash_possible_hostname_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('$', bash_complete_variable, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('$', bash_possible_variable_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('!', bash_complete_command, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('!', bash_possible_command_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('g', bash_glob_complete_word, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('*', bash_glob_expand_word, emacs_ctlx_keymap);
+  rl_bind_key_if_unbound_in_map ('g', bash_glob_list_expansions, emacs_ctlx_keymap);
+
+#endif /* SPECIFIC_COMPLETION_FUNCTIONS */
+
+  kseq[0] = TAB;
+  kseq[1] = '\0';
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == 0 || func == rl_tab_insert)
+    rl_bind_key_in_map (TAB, dynamic_complete_history, emacs_meta_keymap);
+
+  /* Tell the completer that we want a crack first. */
+  rl_attempted_completion_function = attempt_shell_completion;
+
+  /* Tell the completer that we might want to follow symbolic links or
+     do other expansion on directory names. */
+  rl_directory_completion_hook = bash_directory_completion_hook;
+
+  /* Tell the filename completer we want a chance to ignore some names. */
+  rl_ignore_some_completions_function = filename_completion_ignore;
+
+  /* Bind C-xC-e to invoke emacs and run result as commands. */
+  rl_bind_key_if_unbound_in_map (CTRL ('E'), emacs_edit_and_execute_command, emacs_ctlx_keymap);
+#if defined (VI_MODE)
+  rl_bind_key_if_unbound_in_map ('v', vi_edit_and_execute_command, vi_movement_keymap);
+#  if defined (ALIAS)
+  rl_bind_key_if_unbound_in_map ('@', posix_edit_macros, vi_movement_keymap);
+#  endif
+
+  rl_bind_key_in_map ('\\', bash_vi_complete, vi_movement_keymap);
+  rl_bind_key_in_map ('*', bash_vi_complete, vi_movement_keymap);
+  rl_bind_key_in_map ('=', bash_vi_complete, vi_movement_keymap);
+#endif
+
+  rl_completer_quote_characters = "'\"";
+
+  /* This sets rl_completer_word_break_characters and rl_special_prefixes
+     to the appropriate values, depending on whether or not hostname
+     completion is enabled. */
+  enable_hostname_completion (perform_hostname_completion);
+
+  /* characters that need to be quoted when appearing in filenames. */
+  rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{";       /*}*/
+  rl_filename_quoting_function = bash_quote_filename;
+  rl_filename_dequoting_function = bash_dequote_filename;
+  rl_char_is_quoted_p = char_is_quoted;
+
+#if 0
+  /* This is superfluous and makes it impossible to use tab completion in
+     vi mode even when explicitly binding it in ~/.inputrc.  sv_strict_posix()
+     should already have called posix_readline_initialize() when
+     posixly_correct was set. */
+  if (posixly_correct)
+    posix_readline_initialize (1);
+#endif
+
+  bash_readline_initialized = 1;
+}
+
+/* On Sun systems at least, rl_attempted_completion_function can end up
+   getting set to NULL, and rl_completion_entry_function set to do command
+   word completion if Bash is interrupted while trying to complete a command
+   word.  This just resets all the completion functions to the right thing.
+   It's called from throw_to_top_level(). */
+void
+bashline_reinitialize ()
+{
+  tilde_initialize ();
+  rl_attempted_completion_function = attempt_shell_completion;
+  rl_completion_entry_function = NULL;
+  rl_directory_completion_hook = bash_directory_completion_hook;
+  rl_ignore_some_completions_function = filename_completion_ignore;
+}
+
+/* Contains the line to push into readline. */
+static char *push_to_readline = (char *)NULL;
+
+/* Push the contents of push_to_readline into the
+   readline buffer. */
+static int
+bash_push_line ()
+{
+  if (push_to_readline)
+    {
+      rl_insert_text (push_to_readline);
+      free (push_to_readline);
+      push_to_readline = (char *)NULL;
+      rl_startup_hook = old_rl_startup_hook;
+    }
+  return 0;
+}
+
+/* Call this to set the initial text for the next line to read
+   from readline. */
+int
+bash_re_edit (line)
+     char *line;
+{
+  FREE (push_to_readline);
+
+  push_to_readline = savestring (line);
+  old_rl_startup_hook = rl_startup_hook;
+  rl_startup_hook = bash_push_line;
+
+  return (0);
+}
+
+static int
+display_shell_version (count, c)
+     int count, c;
+{
+  rl_crlf ();
+  show_shell_version (0);
+  putc ('\r', rl_outstream);
+  fflush (rl_outstream);
+  rl_on_new_line ();
+  rl_redisplay ();
+  return 0;
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*                          Readline Stuff                         */
+/*                                                                 */
+/* **************************************************************** */
+
+/* If the user requests hostname completion, then simply build a list
+   of hosts, and complete from that forever more, or at least until
+   HOSTFILE is unset. */
+
+/* THIS SHOULD BE A STRINGLIST. */
+/* The kept list of hostnames. */
+static char **hostname_list = (char **)NULL;
+
+/* The physical size of the above list. */
+static int hostname_list_size;
+
+/* The number of hostnames in the above list. */
+static int hostname_list_length;
+
+/* Whether or not HOSTNAME_LIST has been initialized. */
+int hostname_list_initialized = 0;
+
+/* Initialize the hostname completion table. */
+static void
+initialize_hostname_list ()
+{
+  char *temp;
+
+  temp = get_string_value ("HOSTFILE");
+  if (temp == 0)
+    temp = get_string_value ("hostname_completion_file");
+  if (temp == 0)
+    temp = DEFAULT_HOSTS_FILE;
+
+  snarf_hosts_from_file (temp);
+
+  if (hostname_list)
+    hostname_list_initialized++;
+}
+
+/* Add NAME to the list of hosts. */
+static void
+add_host_name (name)
+     char *name;
+{
+  if (hostname_list_length + 2 > hostname_list_size)
+    {
+      hostname_list_size = (hostname_list_size + 32) - (hostname_list_size % 32);
+      hostname_list = strvec_resize (hostname_list, hostname_list_size);
+    }
+
+  hostname_list[hostname_list_length++] = savestring (name);
+  hostname_list[hostname_list_length] = (char *)NULL;
+}
+
+#define cr_whitespace(c) ((c) == '\r' || (c) == '\n' || whitespace(c))
+
+static void
+snarf_hosts_from_file (filename)
+     char *filename;
+{
+  FILE *file;
+  char *temp, buffer[256], name[256];
+  register int i, start;
+
+  file = fopen (filename, "r");
+  if (file == 0)
+    return;
+
+  while (temp = fgets (buffer, 255, file))
+    {
+      /* Skip to first character. */
+      for (i = 0; buffer[i] && cr_whitespace (buffer[i]); i++)
+       ;
+
+      /* If comment or blank line, ignore. */
+      if (buffer[i] == '\0' || buffer[i] == '#')
+       continue;
+
+      /* If `preprocessor' directive, do the include. */
+      if (strncmp (buffer + i, "$include ", 9) == 0)
+       {
+         char *incfile, *t;
+
+         /* Find start of filename. */
+         for (incfile = buffer + i + 9; *incfile && whitespace (*incfile); incfile++)
+           ;
+
+         /* Find end of filename. */
+         for (t = incfile; *t && cr_whitespace (*t) == 0; t++)
+           ;
+
+         *t = '\0';
+
+         snarf_hosts_from_file (incfile);
+         continue;
+       }
+
+      /* Skip internet address if present. */
+      if (DIGIT (buffer[i]))
+       for (; buffer[i] && cr_whitespace (buffer[i]) == 0; i++);
+
+      /* Gobble up names.  Each name is separated with whitespace. */
+      while (buffer[i])
+       {
+         for (; cr_whitespace (buffer[i]); i++)
+           ;
+         if (buffer[i] == '\0' || buffer[i] ==  '#')
+           break;
+
+         /* Isolate the current word. */
+         for (start = i; buffer[i] && cr_whitespace (buffer[i]) == 0; i++)
+           ;
+         if (i == start)
+           continue;
+         strncpy (name, buffer + start, i - start);
+         name[i - start] = '\0';
+         add_host_name (name);
+       }
+    }
+  fclose (file);
+}
+
+/* Return the hostname list. */
+char **
+get_hostname_list ()
+{
+  if (hostname_list_initialized == 0)
+    initialize_hostname_list ();
+  return (hostname_list);
+}
+
+void
+clear_hostname_list ()
+{
+  register int i;
+
+  if (hostname_list_initialized == 0)
+    return;
+  for (i = 0; i < hostname_list_length; i++)
+    free (hostname_list[i]);
+  hostname_list_length = 0;
+}
+
+/* Return a NULL terminated list of hostnames which begin with TEXT.
+   Initialize the hostname list the first time if neccessary.
+   The array is malloc ()'ed, but not the individual strings. */
+static char **
+hostnames_matching (text)
+     char *text;
+{
+  register int i, len, nmatch, rsize;
+  char **result;
+
+  if (hostname_list_initialized == 0)
+    initialize_hostname_list ();
+
+  if (hostname_list_initialized == 0)
+    return ((char **)NULL);
+
+  /* Special case.  If TEXT consists of nothing, then the whole list is
+     what is desired. */
+  if (*text == '\0')
+    {
+      result = strvec_create (1 + hostname_list_length);
+      for (i = 0; i < hostname_list_length; i++)
+       result[i] = hostname_list[i];
+      result[i] = (char *)NULL;
+      return (result);
+    }
+
+  /* Scan until found, or failure. */
+  len = strlen (text);
+  result = (char **)NULL;
+  for (i = nmatch = rsize = 0; i < hostname_list_length; i++)
+    {
+      if (STREQN (text, hostname_list[i], len) == 0)
+       continue;
+
+      /* OK, it matches.  Add it to the list. */
+      if (nmatch >= (rsize - 1))
+       {
+         rsize = (rsize + 16) - (rsize % 16);
+         result = strvec_resize (result, rsize);
+       }
+
+      result[nmatch++] = hostname_list[i];
+    }
+  if (nmatch)
+    result[nmatch] = (char *)NULL;
+  return (result);
+}
+
+/* The equivalent of the Korn shell C-o operate-and-get-next-history-line
+   editing command. */
+static int saved_history_line_to_use = -1;
+
+static int
+set_saved_history ()
+{
+  if (saved_history_line_to_use >= 0)
+    rl_get_previous_history (history_length - saved_history_line_to_use, 0);
+  saved_history_line_to_use = -1;
+  rl_startup_hook = old_rl_startup_hook;
+  return (0);
+}
+
+static int
+operate_and_get_next (count, c)
+     int count, c;
+{
+  int where;
+
+  /* Accept the current line. */
+  rl_newline (1, c);
+
+  /* Find the current line, and find the next line to use. */
+  where = where_history ();
+
+  if ((history_is_stifled () && (history_length >= history_max_entries)) ||
+      (where >= history_length - 1))
+    saved_history_line_to_use = where;
+  else
+    saved_history_line_to_use = where + 1;
+
+  old_rl_startup_hook = rl_startup_hook;
+  rl_startup_hook = set_saved_history;
+
+  return 0;
+}
+
+/* This vi mode command causes VI_EDIT_COMMAND to be run on the current
+   command being entered (if no explicit argument is given), otherwise on
+   a command from the history file. */
+
+#define VI_EDIT_COMMAND                "fc -e \"${VISUAL:-${EDITOR:-vi}}\""
+#define EMACS_EDIT_COMMAND     "fc -e \"${VISUAL:-${EDITOR:-emacs}}\""
+#define POSIX_VI_EDIT_COMMAND  "fc -e vi"
+
+static int
+edit_and_execute_command (count, c, editing_mode, edit_command)
+     int count, c, editing_mode;
+     char *edit_command;
+{
+  char *command;
+  int r, cclc, rrs;
+
+  rrs = rl_readline_state;
+  cclc = current_command_line_count;
+
+  /* Accept the current line. */
+  rl_newline (1, c);
+
+  if (rl_explicit_arg)
+    {
+      command = (char *)xmalloc (strlen (edit_command) + 8);
+      sprintf (command, "%s %d", edit_command, count);
+    }
+  else
+    {
+      /* Take the command we were just editing, add it to the history file,
+        then call fc to operate on it.  We have to add a dummy command to
+        the end of the history because fc ignores the last command (assumes
+        it's supposed to deal with the command before the `fc'). */
+      using_history ();
+      bash_add_history (rl_line_buffer);
+      bash_add_history ("");
+      history_lines_this_session++;
+      using_history ();
+      command = savestring (edit_command);
+    }
+
+  /* Now, POSIX.1-2001 and SUSv3 say that the commands executed from the
+     temporary file should be placed into the history.  We don't do that
+     yet. */
+  r = parse_and_execute (command, (editing_mode == VI_EDITING_MODE) ? "v" : "C-xC-e", SEVAL_NOHIST);
+
+  current_command_line_count = cclc;
+
+  /* Now erase the contents of the current line and undo the effects of the
+     rl_accept_line() above.  We don't even want to make the text we just
+     executed available for undoing. */
+  rl_line_buffer[0] = '\0';    /* XXX */
+  rl_point = rl_end = 0;
+  rl_done = 0;
+  rl_readline_state = rrs;
+
+  rl_forced_update_display ();
+
+  return r;
+}
+
+#if defined (VI_MODE)
+static int
+vi_edit_and_execute_command (count, c)
+     int count, c;
+{
+  if (posixly_correct)
+    return (edit_and_execute_command (count, c, VI_EDITING_MODE, POSIX_VI_EDIT_COMMAND));
+  else
+    return (edit_and_execute_command (count, c, VI_EDITING_MODE, VI_EDIT_COMMAND));
+}
+#endif /* VI_MODE */
+
+static int
+emacs_edit_and_execute_command (count, c)
+     int count, c;
+{
+  return (edit_and_execute_command (count, c, EMACS_EDITING_MODE, EMACS_EDIT_COMMAND));
+}
+
+#if defined (ALIAS)
+static int
+posix_edit_macros (count, key)
+     int count, key;
+{
+  int c;
+  char alias_name[3], *alias_value, *macro;
+
+  c = rl_read_key ();
+  alias_name[0] = '_';
+  alias_name[1] = c;
+  alias_name[2] = '\0';
+
+  alias_value = get_alias_value (alias_name);
+  if (alias_value && *alias_value)
+    {
+      macro = savestring (alias_value);
+      rl_push_macro_input (macro);
+    }
+  return 0;
+}
+#endif
+
+/* **************************************************************** */
+/*                                                                 */
+/*                     How To Do Shell Completion                  */
+/*                                                                 */
+/* **************************************************************** */
+
+#define COMMAND_SEPARATORS ";|&{(`"
+/* )} */ 
+
+static int
+check_redir (ti)
+     int ti;
+{
+  register int this_char, prev_char;
+
+  /* Handle the two character tokens `>&', `<&', and `>|'.
+     We are not in a command position after one of these. */
+  this_char = rl_line_buffer[ti];
+  prev_char = rl_line_buffer[ti - 1];
+
+  if ((this_char == '&' && (prev_char == '<' || prev_char == '>')) ||
+      (this_char == '|' && prev_char == '>'))
+    return (1);
+  else if ((this_char == '{' && prev_char == '$') || /* } */
+          (char_is_quoted (rl_line_buffer, ti)))
+    return (1);
+  return (0);
+}
+
+#if defined (PROGRAMMABLE_COMPLETION)
+/*
+ * XXX - because of the <= start test, and setting os = s+1, this can
+ * potentially return os > start.  This is probably not what we want to
+ * happen, but fix later after 2.05a-release.
+ */
+static int
+find_cmd_start (start)
+     int start;
+{
+  register int s, os;
+
+  os = 0;
+  while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS)) <= start) &&
+        rl_line_buffer[s])
+    os = s+1;
+  return os;
+}
+
+static int
+find_cmd_end (end)
+     int end;
+{
+  register int e;
+
+  e = skip_to_delim (rl_line_buffer, end, COMMAND_SEPARATORS);
+  return e;
+}
+
+static char *
+find_cmd_name (start)
+     int start;
+{
+  char *name;
+  register int s, e;
+
+  for (s = start; whitespace (rl_line_buffer[s]); s++)
+    ;
+
+  /* skip until a shell break character */
+  e = skip_to_delim (rl_line_buffer, s, "()<>;&| \t\n");
+
+  name = substring (rl_line_buffer, s, e);
+
+  return (name);
+}
+
+static char *
+prog_complete_return (text, matchnum)
+     const char *text;
+     int matchnum;
+{
+  static int ind;
+
+  if (matchnum == 0)
+    ind = 0;
+
+  if (prog_complete_matches == 0 || prog_complete_matches[ind] == 0)
+    return (char *)NULL;
+  return (prog_complete_matches[ind++]);
+}
+
+#endif /* PROGRAMMABLE_COMPLETION */
+
+/* Do some completion on TEXT.  The indices of TEXT in RL_LINE_BUFFER are
+   at START and END.  Return an array of matches, or NULL if none. */
+static char **
+attempt_shell_completion (text, start, end)
+     const char *text;
+     int start, end;
+{
+  int in_command_position, ti, saveti, qc;
+  char **matches, *command_separator_chars;
+
+  command_separator_chars = COMMAND_SEPARATORS;
+  matches = (char **)NULL;
+  rl_ignore_some_completions_function = filename_completion_ignore;
+
+  /* Determine if this could be a command word.  It is if it appears at
+     the start of the line (ignoring preceding whitespace), or if it
+     appears after a character that separates commands.  It cannot be a
+     command word if we aren't at the top-level prompt. */
+  ti = start - 1;
+  saveti = qc = -1;
+
+  while ((ti > -1) && (whitespace (rl_line_buffer[ti])))
+    ti--;
+
+#if 1
+  /* If this is an open quote, maybe we're trying to complete a quoted
+     command name. */
+  if (ti >= 0 && (rl_line_buffer[ti] == '"' || rl_line_buffer[ti] == '\''))
+    {
+      qc = rl_line_buffer[ti];
+      saveti = ti--;
+      while (ti > -1 && (whitespace (rl_line_buffer[ti])))
+       ti--;
+    }
+#endif
+      
+  in_command_position = 0;
+  if (ti < 0)
+    {
+      /* Only do command completion at the start of a line when we
+        are prompting at the top level. */
+      if (current_prompt_string == ps1_prompt)
+       in_command_position++;
+    }
+  else if (member (rl_line_buffer[ti], command_separator_chars))
+    {
+      in_command_position++;
+
+      if (check_redir (ti) == 1)
+       in_command_position = 0;
+    }
+  else
+    {
+      /* This still could be in command position.  It is possible
+        that all of the previous words on the line are variable
+        assignments. */
+    }
+
+  /* Check that we haven't incorrectly flagged a closed command substitution
+     as indicating we're in a command position. */
+  if (in_command_position && ti >= 0 && rl_line_buffer[ti] == '`' &&
+       *text != '`' && unclosed_pair (rl_line_buffer, end, "`") == 0)
+    in_command_position = 0;
+
+  /* Special handling for command substitution.  If *TEXT is a backquote,
+     it can be the start or end of an old-style command substitution, or
+     unmatched.  If it's unmatched, both calls to unclosed_pair will
+     succeed.  */
+  if (*text == '`' && 
+       (in_command_position || (unclosed_pair (rl_line_buffer, start, "`") &&
+                                unclosed_pair (rl_line_buffer, end, "`"))))
+    matches = rl_completion_matches (text, command_subst_completion_function);
+
+#if defined (PROGRAMMABLE_COMPLETION)
+  /* Attempt programmable completion. */
+  if (!matches && in_command_position == 0 && prog_completion_enabled &&
+      (progcomp_size () > 0) && current_prompt_string == ps1_prompt)
+    {
+      int s, e, foundcs;
+      char *n;
+
+      /* XXX - don't free the members */
+      if (prog_complete_matches)
+       free (prog_complete_matches);
+      prog_complete_matches = (char **)NULL;
+
+      s = find_cmd_start (start);
+      e = find_cmd_end (end);
+      n = find_cmd_name (s);
+      if (e > s && assignment (n, 0) == 0)
+       prog_complete_matches = programmable_completions (n, text, s, e, &foundcs);
+      else
+       foundcs = 0;
+      FREE (n);
+      /* XXX - if we found a COMPSPEC for the command, just return whatever
+        the programmable completion code returns, and disable the default
+        filename completion that readline will do unless the COPT_DEFAULT
+        option has been set with the `-o default' option to complete. */
+      if (foundcs)
+       {
+         /* If the user specified that the compspec returns filenames, make
+            sure that readline knows it. */
+         if (foundcs & COPT_FILENAMES)
+           rl_filename_completion_desired = 1;
+         /* If the user doesn't want a space appended, tell readline. */
+         if (foundcs & COPT_NOSPACE)
+           rl_completion_suppress_append = 1;
+         /* Turn what the programmable completion code returns into what
+            readline wants.  I should have made compute_lcd_of_matches
+            external... */
+         matches = rl_completion_matches (text, prog_complete_return);
+         if ((foundcs & COPT_DEFAULT) == 0)
+           rl_attempted_completion_over = 1;   /* no default */
+         if (matches || ((foundcs & COPT_BASHDEFAULT) == 0))
+           return (matches);
+       }
+    }
+#endif
+
+  if (matches == 0)
+    matches = bash_default_completion (text, start, end, qc, in_command_position);
+
+  return matches;
+}
+
+char **
+bash_default_completion (text, start, end, qc, in_command_position)
+     const char *text;
+     int start, end, qc, in_command_position;
+{
+  char **matches;
+
+  matches = (char **)NULL;
+
+  /* New posix-style command substitution or variable name? */
+  if (!matches && *text == '$')
+    {
+      if (qc != '\'' && text[1] == '(') /* ) */
+       matches = rl_completion_matches (text, command_subst_completion_function);
+      else
+       matches = rl_completion_matches (text, variable_completion_function);
+    }
+
+  /* If the word starts in `~', and there is no slash in the word, then
+     try completing this word as a username. */
+  if (!matches && *text == '~' && !xstrchr (text, '/'))
+    matches = rl_completion_matches (text, rl_username_completion_function);
+
+  /* Another one.  Why not?  If the word starts in '@', then look through
+     the world of known hostnames for completion first. */
+  if (!matches && perform_hostname_completion && *text == '@')
+    matches = rl_completion_matches (text, hostname_completion_function);
+
+  /* And last, (but not least) if this word is in a command position, then
+     complete over possible command names, including aliases, functions,
+     and command names. */
+  if (!matches && in_command_position)
+    {
+      if (start == 0 && end == 0 && text[0] == '\0' && no_empty_command_completion)
+       {
+         matches = (char **)NULL;
+         rl_ignore_some_completions_function = bash_ignore_everything;
+       }
+      else
+       {
+#define CMD_IS_DIR(x)  (absolute_pathname(x) == 0 && absolute_program(x) == 0 && *(x) != '~' && test_for_directory (x))
+
+         dot_in_path = 0;
+         matches = rl_completion_matches (text, command_word_completion_function);
+
+         /* If we are attempting command completion and nothing matches, we
+            do not want readline to perform filename completion for us.  We
+            still want to be able to complete partial pathnames, so set the
+            completion ignore function to something which will remove
+            filenames and leave directories in the match list. */
+         if (matches == (char **)NULL)
+           rl_ignore_some_completions_function = bash_ignore_filenames;
+         else if (matches[1] == 0 && CMD_IS_DIR(matches[0]) && dot_in_path == 0)
+           /* If we found a single match, without looking in the current
+              directory (because it's not in $PATH), but the found name is
+              also a command in the current directory, suppress appending any
+              terminating character, since it's ambiguous. */
+           {
+             rl_completion_suppress_append = 1;
+             rl_filename_completion_desired = 0;
+           }
+         else if (matches[0] && matches[1] && STREQ (matches[0], matches[1]) && CMD_IS_DIR (matches[0]))
+           /* There are multiple instances of the same match (duplicate
+              completions haven't yet been removed).  In this case, all of
+              the matches will be the same, and the duplicate removal code
+              will distill them all down to one.  We turn on
+              rl_completion_suppress_append for the same reason as above.
+              Remember: we only care if there's eventually a single unique
+              completion.  If there are multiple completions this won't
+              make a difference and the problem won't occur. */
+           {
+             rl_completion_suppress_append = 1;
+             rl_filename_completion_desired = 0;
+           }
+       }
+    }
+
+  /* This could be a globbing pattern, so try to expand it using pathname
+     expansion. */
+  if (!matches && glob_pattern_p (text))
+    {
+      matches = rl_completion_matches (text, glob_complete_word);
+      /* A glob expression that matches more than one filename is problematic.
+        If we match more than one filename, punt. */
+      if (matches && matches[1] && rl_completion_type == TAB)
+       {
+         strvec_dispose (matches);
+         matches = (char **)0;
+       }
+    }
+
+  return (matches);
+}
+
+/* This is the function to call when the word to complete is in a position
+   where a command word can be found.  It grovels $PATH, looking for commands
+   that match.  It also scans aliases, function names, and the shell_builtin
+   table. */
+char *
+command_word_completion_function (hint_text, state)
+     const char *hint_text;
+     int state;
+{
+  static char *hint = (char *)NULL;
+  static char *path = (char *)NULL;
+  static char *val = (char *)NULL;
+  static char *filename_hint = (char *)NULL;
+  static char *dequoted_hint = (char *)NULL;
+  static int path_index, hint_len, dequoted_len, istate, igncase;
+  static int mapping_over, local_index;
+  static SHELL_VAR **varlist = (SHELL_VAR **)NULL;
+#if defined (ALIAS)
+  static alias_t **alias_list = (alias_t **)NULL;
+#endif /* ALIAS */
+  char *temp;
+
+  /* We have to map over the possibilities for command words.  If we have
+     no state, then make one just for that purpose. */
+  if (!state)
+    {
+      if (dequoted_hint && dequoted_hint != hint)
+       free (dequoted_hint);
+      if (hint)
+       free (hint);
+
+      mapping_over = 0;
+      val = (char *)NULL;
+
+      temp = rl_variable_value ("completion-ignore-case");
+      igncase = strcmp (temp, "on") == 0;
+
+      /* If this is an absolute program name, do not check it against
+        aliases, reserved words, functions or builtins.  We must check
+        whether or not it is unique, and, if so, whether that filename
+        is executable. */
+      if (absolute_program (hint_text))
+       {
+         /* Perform tilde expansion on what's passed, so we don't end up
+            passing filenames with tildes directly to stat(). */
+         if (*hint_text == '~')
+           hint = bash_tilde_expand (hint_text, 0);
+         else
+           hint = savestring (hint_text);
+
+         dequoted_hint = hint;
+         /* If readline's completer found a quote character somewhere, but
+            didn't set the quote character, there must have been a quote
+            character embedded in the filename.  It can't be at the start of
+            the filename, so we need to dequote the filename before we look
+            in the file system for it. */
+         if (rl_completion_found_quote && rl_completion_quote_character == 0)
+           {
+             dequoted_hint = bash_dequote_filename (hint, 0);
+             free (hint);
+             hint = dequoted_hint;
+           }
+         dequoted_len = hint_len = strlen (hint);
+
+         if (filename_hint)
+           free (filename_hint);
+
+         filename_hint = savestring (hint);
+
+         mapping_over = 4;
+         istate = 0;
+         goto inner;
+       }
+
+      dequoted_hint = hint = savestring (hint_text);
+      dequoted_len = hint_len = strlen (hint);
+
+      if (rl_completion_found_quote && rl_completion_quote_character == 0)
+       {
+         dequoted_hint = bash_dequote_filename (hint, 0);
+         dequoted_len = strlen (dequoted_hint);
+       }
+      
+      path = get_string_value ("PATH");
+      path_index = dot_in_path = 0;
+
+      /* Initialize the variables for each type of command word. */
+      local_index = 0;
+
+      if (varlist)
+       free (varlist);
+
+      varlist = all_visible_functions ();
+
+#if defined (ALIAS)
+      if (alias_list)
+       free (alias_list);
+
+      alias_list = all_aliases ();
+#endif /* ALIAS */
+    }
+
+  /* mapping_over says what we are currently hacking.  Note that every case
+     in this list must fall through when there are no more possibilities. */
+
+  switch (mapping_over)
+    {
+    case 0:                    /* Aliases come first. */
+#if defined (ALIAS)
+      while (alias_list && alias_list[local_index])
+       {
+         register char *alias;
+
+         alias = alias_list[local_index++]->name;
+
+         if (STREQN (alias, hint, hint_len))
+           return (savestring (alias));
+       }
+#endif /* ALIAS */
+      local_index = 0;
+      mapping_over++;
+
+    case 1:                    /* Then shell reserved words. */
+      {
+       while (word_token_alist[local_index].word)
+         {
+           register char *reserved_word;
+
+           reserved_word = word_token_alist[local_index++].word;
+
+           if (STREQN (reserved_word, hint, hint_len))
+             return (savestring (reserved_word));
+         }
+       local_index = 0;
+       mapping_over++;
+      }
+
+    case 2:                    /* Then function names. */
+      while (varlist && varlist[local_index])
+       {
+         register char *varname;
+
+         varname = varlist[local_index++]->name;
+
+         if (STREQN (varname, hint, hint_len))
+           return (savestring (varname));
+       }
+      local_index = 0;
+      mapping_over++;
+
+    case 3:                    /* Then shell builtins. */
+      for (; local_index < num_shell_builtins; local_index++)
+       {
+         /* Ignore it if it doesn't have a function pointer or if it
+            is not currently enabled. */
+         if (!shell_builtins[local_index].function ||
+             (shell_builtins[local_index].flags & BUILTIN_ENABLED) == 0)
+           continue;
+
+         if (STREQN (shell_builtins[local_index].name, hint, hint_len))
+           {
+             int i = local_index++;
+
+             return (savestring (shell_builtins[i].name));
+           }
+       }
+      local_index = 0;
+      mapping_over++;
+    }
+
+  /* Repeatedly call filename_completion_function while we have
+     members of PATH left.  Question:  should we stat each file?
+     Answer: we call executable_file () on each file. */
+ outer:
+
+  istate = (val != (char *)NULL);
+
+  if (!istate)
+    {
+      char *current_path;
+
+      /* Get the next directory from the path.  If there is none, then we
+        are all done. */
+      if (!path || !path[path_index] ||
+         (current_path = extract_colon_unit (path, &path_index)) == 0)
+       return ((char *)NULL);
+
+      if (*current_path == 0)
+       {
+         free (current_path);
+         current_path = savestring (".");
+       }
+
+      if (*current_path == '~')
+       {
+         char *t;
+
+         t = bash_tilde_expand (current_path, 0);
+         free (current_path);
+         current_path = t;
+       }
+
+      if (current_path[0] == '.' && current_path[1] == '\0')
+       dot_in_path = 1;
+
+      if (filename_hint)
+       free (filename_hint);
+
+      filename_hint = sh_makepath (current_path, hint, 0);
+      free (current_path);
+    }
+
+ inner:
+  val = rl_filename_completion_function (filename_hint, istate);
+  istate = 1;
+
+  if (val == 0)
+    {
+      /* If the hint text is an absolute program, then don't bother
+        searching through PATH. */
+      if (absolute_program (hint))
+       return ((char *)NULL);
+
+      goto outer;
+    }
+  else
+    {
+      int match, freetemp;
+      char *temp;
+
+      if (absolute_program (hint))
+       {
+         if (igncase == 0)
+           match = strncmp (val, hint, hint_len) == 0;
+         else
+           match = strncasecmp (val, hint, hint_len) == 0;
+
+         /* If we performed tilde expansion, restore the original
+            filename. */
+         if (*hint_text == '~')
+           {
+             int l, tl, vl, dl;
+             char *rd;
+             vl = strlen (val);
+             tl = strlen (hint_text);
+#if 0
+             l = vl - hint_len;        /* # of chars added */
+#else
+             rd = savestring (filename_hint);
+             bash_directory_expansion (&rd);
+             dl = strlen (rd);
+             l = vl - dl;              /* # of chars added */
+             free (rd);
+#endif
+             temp = (char *)xmalloc (l + 2 + tl);
+             strcpy (temp, hint_text);
+             strcpy (temp + tl, val + vl - l);
+           }
+         else
+           temp = savestring (val);
+         freetemp = 1;
+       }
+      else
+       {
+         temp = strrchr (val, '/');
+
+         if (temp)
+           {
+             temp++;
+             if (igncase == 0)
+               freetemp = match = strncmp (temp, hint, hint_len) == 0;
+             else
+               freetemp = match = strncasecmp (temp, hint, hint_len) == 0;
+             if (match)
+               temp = savestring (temp);
+           }
+         else
+           freetemp = match = 0;
+       }
+
+      /* If we have found a match, and it is an executable file or a
+        directory name, return it. */
+      if (match && executable_or_directory (val))
+       {
+         free (val);
+         val = "";             /* So it won't be NULL. */
+         return (temp);
+       }
+      else
+       {
+         if (freetemp)
+           free (temp);
+         free (val);
+         goto inner;
+       }
+    }
+}
+
+/* Completion inside an unterminated command substitution. */
+static char *
+command_subst_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static char **matches = (char **)NULL;
+  static const char *orig_start;
+  static char *filename_text = (char *)NULL;
+  static int cmd_index, start_len;
+  char *value;
+
+  if (state == 0)
+    {
+      if (filename_text)
+       free (filename_text);
+      orig_start = text;
+      if (*text == '`')
+       text++;
+      else if (*text == '$' && text[1] == '(') /* ) */
+       text += 2;
+      /* If the text was quoted, suppress any quote character that the
+        readline completion code would insert. */
+      rl_completion_suppress_quote = 1;
+      start_len = text - orig_start;
+      filename_text = savestring (text);
+      if (matches)
+       free (matches);
+
+      /*
+       * At this point we can entertain the idea of re-parsing
+       * `filename_text' into a (possibly incomplete) command name and
+       * arguments, and doing completion based on that.  This is
+       * currently very rudimentary, but it is a small improvement.
+       */
+      for (value = filename_text + strlen (filename_text) - 1; value > filename_text; value--)
+        if (whitespace (*value) || member (*value, COMMAND_SEPARATORS))
+          break;
+      if (value <= filename_text)
+       matches = rl_completion_matches (filename_text, command_word_completion_function);
+      else
+       {
+         value++;
+         start_len += value - filename_text;
+         if (whitespace (value[-1]))
+           matches = rl_completion_matches (value, rl_filename_completion_function);
+         else
+           matches = rl_completion_matches (value, command_word_completion_function);
+       }
+
+      /* If there is more than one match, rl_completion_matches has already
+        put the lcd in matches[0].  Skip over it. */
+      cmd_index = matches && matches[0] && matches[1];
+
+      /* If there's a single match and it's a directory, set the append char
+        to the expected `/'.  Otherwise, don't append anything. */
+      if (matches && matches[0] && matches[1] == 0 && test_for_directory (matches[0]))
+       rl_completion_append_character = '/';
+      else
+       rl_completion_suppress_append = 1;
+    }
+
+  if (!matches || !matches[cmd_index])
+    {
+      rl_filename_quoting_desired = 0; /* disable quoting */
+      return ((char *)NULL);
+    }
+  else
+    {
+      value = (char *)xmalloc (1 + start_len + strlen (matches[cmd_index]));
+
+      if (start_len == 1)
+       value[0] = *orig_start;
+      else
+       strncpy (value, orig_start, start_len);
+
+      strcpy (value + start_len, matches[cmd_index]);
+
+      cmd_index++;
+      return (value);
+    }
+}
+
+/* Okay, now we write the entry_function for variable completion. */
+static char *
+variable_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static char **varlist = (char **)NULL;
+  static int varlist_index;
+  static char *varname = (char *)NULL;
+  static int namelen;
+  static int first_char, first_char_loc;
+
+  if (!state)
+    {
+      if (varname)
+       free (varname);
+
+      first_char_loc = 0;
+      first_char = text[0];
+
+      if (first_char == '$')
+       first_char_loc++;
+
+      if (text[first_char_loc] == '{')
+       first_char_loc++;
+
+      varname = savestring (text + first_char_loc);
+
+      namelen = strlen (varname);
+      if (varlist)
+       strvec_dispose (varlist);
+
+      varlist = all_variables_matching_prefix (varname);
+      varlist_index = 0;
+    }
+
+  if (!varlist || !varlist[varlist_index])
+    {
+      return ((char *)NULL);
+    }
+  else
+    {
+      char *value;
+
+      value = (char *)xmalloc (4 + strlen (varlist[varlist_index]));
+
+      if (first_char_loc)
+       {
+         value[0] = first_char;
+         if (first_char_loc == 2)
+           value[1] = '{';
+       }
+
+      strcpy (value + first_char_loc, varlist[varlist_index]);
+      if (first_char_loc == 2)
+       strcat (value, "}");
+
+      varlist_index++;
+      return (value);
+    }
+}
+
+/* How about a completion function for hostnames? */
+static char *
+hostname_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static char **list = (char **)NULL;
+  static int list_index = 0;
+  static int first_char, first_char_loc;
+
+  /* If we don't have any state, make some. */
+  if (state == 0)
+    {
+      FREE (list);
+
+      list = (char **)NULL;
+
+      first_char_loc = 0;
+      first_char = *text;
+
+      if (first_char == '@')
+       first_char_loc++;
+
+      list = hostnames_matching ((char *)text+first_char_loc);
+      list_index = 0;
+    }
+
+  if (list && list[list_index])
+    {
+      char *t;
+
+      t = (char *)xmalloc (2 + strlen (list[list_index]));
+      *t = first_char;
+      strcpy (t + first_char_loc, list[list_index]);
+      list_index++;
+      return (t);
+    }
+
+  return ((char *)NULL);
+}
+
+/*
+ * A completion function for service names from /etc/services (or wherever).
+ */
+char *
+bash_servicename_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT) || !defined (HAVE_GETSERVENT)
+  return ((char *)NULL);
+#else
+  static char *sname = (char *)NULL;
+  static struct servent *srvent;
+  static int snamelen, firstc;
+  char *value;
+  char **alist, *aentry;
+  int afound;
+
+  if (state == 0)
+    {
+      FREE (sname);
+      firstc = *text;
+
+      sname = savestring (text);
+      snamelen = strlen (sname);
+      setservent (0);
+    }
+
+  while (srvent = getservent ())
+    {
+      afound = 0;
+      if (snamelen == 0 || (STREQN (sname, srvent->s_name, snamelen)))
+       break;
+      /* Not primary, check aliases */
+      for (alist = srvent->s_aliases; aentry = *alist; alist++)
+       {
+         if (STREQN (sname, aentry, snamelen))
+           {
+             afound = 1;
+             break;
+           }
+       }
+
+      if (afound)
+       break;
+    }
+
+  if (srvent == 0)
+    {
+      endservent ();
+      return ((char *)NULL);
+    }
+
+  value = afound ? savestring (aentry) : savestring (srvent->s_name);
+  return value;
+#endif
+}
+
+/*
+ * A completion function for group names from /etc/group (or wherever).
+ */
+char *
+bash_groupname_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT) || !defined (HAVE_GRP_H)
+  return ((char *)NULL);
+#else
+  static char *gname = (char *)NULL;
+  static struct group *grent;
+  static int gnamelen;
+  char *value;
+
+  if (state == 0)
+    {
+      FREE (gname);
+      gname = savestring (text);
+      gnamelen = strlen (gname);
+
+      setgrent ();
+    }
+
+  while (grent = getgrent ())
+    {
+      if (gnamelen == 0 || (STREQN (gname, grent->gr_name, gnamelen)))
+        break;
+    }
+
+  if (grent == 0)
+    {
+      endgrent ();
+      return ((char *)NULL);
+    }
+
+  value = savestring (grent->gr_name);
+  return (value);
+#endif
+}
+
+/* Functions to perform history and alias expansions on the current line. */
+
+#if defined (BANG_HISTORY)
+/* Perform history expansion on the current line.  If no history expansion
+   is done, pre_process_line() returns what it was passed, so we need to
+   allocate a new line here. */
+static char *
+history_expand_line_internal (line)
+     char *line;
+{
+  char *new_line;
+  int old_verify;
+
+  old_verify = hist_verify;
+  hist_verify = 0;
+  new_line = pre_process_line (line, 0, 0);
+  hist_verify = old_verify;
+
+  return (new_line == line) ? savestring (line) : new_line;
+}
+#endif
+
+/* There was an error in expansion.  Let the preprocessor print
+   the error here. */
+static void
+cleanup_expansion_error ()
+{
+  char *to_free;
+#if defined (BANG_HISTORY)
+  int old_verify;
+
+  old_verify = hist_verify;
+  hist_verify = 0;
+#endif
+
+  fprintf (rl_outstream, "\r\n");
+  to_free = pre_process_line (rl_line_buffer, 1, 0);
+#if defined (BANG_HISTORY)
+  hist_verify = old_verify;
+#endif
+  if (to_free != rl_line_buffer)
+    FREE (to_free);
+  putc ('\r', rl_outstream);
+  rl_forced_update_display ();
+}
+
+/* If NEW_LINE differs from what is in the readline line buffer, add an
+   undo record to get from the readline line buffer contents to the new
+   line and make NEW_LINE the current readline line. */
+static void
+maybe_make_readline_line (new_line)
+     char *new_line;
+{
+  if (strcmp (new_line, rl_line_buffer) != 0)
+    {
+      rl_point = rl_end;
+
+      rl_add_undo (UNDO_BEGIN, 0, 0, 0);
+      rl_delete_text (0, rl_point);
+      rl_point = rl_end = rl_mark = 0;
+      rl_insert_text (new_line);
+      rl_add_undo (UNDO_END, 0, 0, 0);
+    }
+}
+
+/* Make NEW_LINE be the current readline line.  This frees NEW_LINE. */
+static void
+set_up_new_line (new_line)
+     char *new_line;
+{
+  int old_point, at_end;
+
+  old_point = rl_point;
+  at_end = rl_point == rl_end;
+
+  /* If the line was history and alias expanded, then make that
+     be one thing to undo. */
+  maybe_make_readline_line (new_line);
+  free (new_line);
+
+  /* Place rl_point where we think it should go. */
+  if (at_end)
+    rl_point = rl_end;
+  else if (old_point < rl_end)
+    {
+      rl_point = old_point;
+      if (!whitespace (rl_line_buffer[rl_point]))
+       rl_forward_word (1, 0);
+    }
+}
+
+#if defined (ALIAS)
+/* Expand aliases in the current readline line. */
+static int
+alias_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+
+  new_line = alias_expand (rl_line_buffer);
+
+  if (new_line)
+    {
+      set_up_new_line (new_line);
+      return (0);
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return (1);
+    }
+}
+#endif
+
+#if defined (BANG_HISTORY)
+/* History expand the line. */
+static int
+history_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+
+  new_line = history_expand_line_internal (rl_line_buffer);
+
+  if (new_line)
+    {
+      set_up_new_line (new_line);
+      return (0);
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return (1);
+    }
+}
+
+/* Expand history substitutions in the current line and then insert a
+   space (hopefully close to where we were before). */
+static int
+tcsh_magic_space (count, ignore)
+     int count, ignore;
+{
+  int dist_from_end, old_point;
+
+  old_point = rl_point;
+  dist_from_end = rl_end - rl_point;
+  if (history_expand_line (count, ignore) == 0)
+    {
+      /* Try a simple heuristic from Stephen Gildea <gildea@intouchsys.com>.
+        This works if all expansions were before rl_point or if no expansions
+        were performed. */
+      rl_point = (old_point == 0) ? old_point : rl_end - dist_from_end;
+      rl_insert (1, ' ');
+      return (0);
+    }
+  else
+    return (1);
+}
+#endif /* BANG_HISTORY */
+
+/* History and alias expand the line. */
+static int
+history_and_alias_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+
+  new_line = 0;
+#if defined (BANG_HISTORY)
+  new_line = history_expand_line_internal (rl_line_buffer);
+#endif
+
+#if defined (ALIAS)
+  if (new_line)
+    {
+      char *alias_line;
+
+      alias_line = alias_expand (new_line);
+      free (new_line);
+      new_line = alias_line;
+    }
+#endif /* ALIAS */
+
+  if (new_line)
+    {
+      set_up_new_line (new_line);
+      return (0);
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return (1);
+    }
+}
+
+/* History and alias expand the line, then perform the shell word
+   expansions by calling expand_string.  This can't use set_up_new_line()
+   because we want the variable expansions as a separate undo'able
+   set of operations. */
+static int
+shell_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+  WORD_LIST *expanded_string;
+
+  new_line = 0;
+#if defined (BANG_HISTORY)
+  new_line = history_expand_line_internal (rl_line_buffer);
+#endif
+
+#if defined (ALIAS)
+  if (new_line)
+    {
+      char *alias_line;
+
+      alias_line = alias_expand (new_line);
+      free (new_line);
+      new_line = alias_line;
+    }
+#endif /* ALIAS */
+
+  if (new_line)
+    {
+      int old_point = rl_point;
+      int at_end = rl_point == rl_end;
+
+      /* If the line was history and alias expanded, then make that
+        be one thing to undo. */
+      maybe_make_readline_line (new_line);
+      free (new_line);
+
+      /* If there is variable expansion to perform, do that as a separate
+        operation to be undone. */
+      new_line = savestring (rl_line_buffer);
+      expanded_string = expand_string (new_line, 0);
+      FREE (new_line);
+      if (expanded_string == 0)
+       {
+         new_line = (char *)xmalloc (1);
+         new_line[0] = '\0';
+       }
+      else
+       {
+         new_line = string_list (expanded_string);
+         dispose_words (expanded_string);
+       }
+
+      maybe_make_readline_line (new_line);
+      free (new_line);
+
+      /* Place rl_point where we think it should go. */
+      if (at_end)
+       rl_point = rl_end;
+      else if (old_point < rl_end)
+       {
+         rl_point = old_point;
+         if (!whitespace (rl_line_buffer[rl_point]))
+           rl_forward_word (1, 0);
+       }
+      return 0;
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return 1;
+    }
+}
+
+/* If FIGNORE is set, then don't match files with the given suffixes when
+   completing filenames.  If only one of the possibilities has an acceptable
+   suffix, delete the others, else just return and let the completer
+   signal an error.  It is called by the completer when real
+   completions are done on filenames by the completer's internal
+   function, not for completion lists (M-?) and not on "other"
+   completion types, such as hostnames or commands. */
+
+static struct ignorevar fignore =
+{
+  "FIGNORE",
+  (struct ign *)0,
+  0,
+  (char *)0,
+  (sh_iv_item_func_t *) 0,
+};
+
+static void
+_ignore_completion_names (names, name_func)
+     char **names;
+     sh_ignore_func_t *name_func;
+{
+  char **newnames;
+  int idx, nidx;
+  char **oldnames;
+  int oidx;
+
+  /* If there is only one completion, see if it is acceptable.  If it is
+     not, free it up.  In any case, short-circuit and return.  This is a
+     special case because names[0] is not the prefix of the list of names
+     if there is only one completion; it is the completion itself. */
+  if (names[1] == (char *)0)
+    {
+      if (force_fignore)
+       if ((*name_func) (names[0]) == 0)
+         {
+           free (names[0]);
+           names[0] = (char *)NULL;
+         }
+
+      return;
+    }
+
+  /* Allocate space for array to hold list of pointers to matching
+     filenames.  The pointers are copied back to NAMES when done. */
+  for (nidx = 1; names[nidx]; nidx++)
+    ;
+  newnames = strvec_create (nidx + 1);
+
+  if (force_fignore == 0)
+    {
+      oldnames = strvec_create (nidx - 1);
+      oidx = 0;
+    }
+
+  newnames[0] = names[0];
+  for (idx = nidx = 1; names[idx]; idx++)
+    {
+      if ((*name_func) (names[idx]))
+       newnames[nidx++] = names[idx];
+      else if (force_fignore == 0)
+       oldnames[oidx++] = names[idx];
+      else
+       free (names[idx]);
+    }
+
+  newnames[nidx] = (char *)NULL;
+
+  /* If none are acceptable then let the completer handle it. */
+  if (nidx == 1)
+    {
+      if (force_fignore)
+       {
+         free (names[0]);
+         names[0] = (char *)NULL;
+       }
+      else
+       free (oldnames);
+
+      free (newnames);
+      return;
+    }
+
+  if (force_fignore == 0)
+    {
+      while (oidx)
+       free (oldnames[--oidx]);
+      free (oldnames);
+    }
+
+  /* If only one is acceptable, copy it to names[0] and return. */
+  if (nidx == 2)
+    {
+      free (names[0]);
+      names[0] = newnames[1];
+      names[1] = (char *)NULL;
+      free (newnames);
+      return;
+    }
+
+  /* Copy the acceptable names back to NAMES, set the new array end,
+     and return. */
+  for (nidx = 1; newnames[nidx]; nidx++)
+    names[nidx] = newnames[nidx];
+  names[nidx] = (char *)NULL;
+  free (newnames);
+}
+
+static int
+name_is_acceptable (name)
+     const char *name;
+{
+  struct ign *p;
+  int nlen;
+
+  for (nlen = strlen (name), p = fignore.ignores; p->val; p++)
+    {
+      if (nlen > p->len && p->len > 0 && STREQ (p->val, &name[nlen - p->len]))
+       return (0);
+    }
+
+  return (1);
+}
+
+#if 0
+static int
+ignore_dot_names (name)
+     char *name;
+{
+  return (name[0] != '.');
+}
+#endif
+
+static int
+filename_completion_ignore (names)
+     char **names;
+{
+#if 0
+  if (glob_dot_filenames == 0)
+    _ignore_completion_names (names, ignore_dot_names);
+#endif
+
+  setup_ignore_patterns (&fignore);
+
+  if (fignore.num_ignores == 0)
+    return 0;
+
+  _ignore_completion_names (names, name_is_acceptable);
+
+  return 0;
+}
+
+/* Return 1 if NAME is a directory. */
+static int
+test_for_directory (name)
+     const char *name;
+{
+  struct stat finfo;
+  char *fn;
+
+  fn = bash_tilde_expand (name, 0);
+  if (stat (fn, &finfo) != 0)
+    {
+      free (fn);
+      return 0;
+    }
+  free (fn);
+  return (S_ISDIR (finfo.st_mode));
+}
+
+/* Remove files from NAMES, leaving directories. */
+static int
+bash_ignore_filenames (names)
+     char **names;
+{
+  _ignore_completion_names (names, test_for_directory);
+  return 0;
+}
+
+static int
+return_zero (name)
+     const char *name;
+{
+  return 0;
+}
+
+static int
+bash_ignore_everything (names)
+     char **names;
+{
+  _ignore_completion_names (names, return_zero);
+  return 0;
+}
+
+/* Simulate the expansions that will be performed by
+   rl_filename_completion_function.  This must be called with the address of
+   a pointer to malloc'd memory. */
+static void
+bash_directory_expansion (dirname)
+     char **dirname;
+{
+  char *d, *nd;
+
+  d = savestring (*dirname);
+
+  if (rl_directory_rewrite_hook)
+    (*rl_directory_rewrite_hook) (&d);
+
+  if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&d))
+    {
+      free (*dirname);
+      *dirname = d;
+    }
+  else if (rl_completion_found_quote)
+    {
+      nd = bash_dequote_filename (d, rl_completion_quote_character);
+      free (*dirname);
+      free (d);
+      *dirname = nd;
+    }
+}
+  
+/* Handle symbolic link references and other directory name
+   expansions while hacking completion. */
+static int
+bash_directory_completion_hook (dirname)
+     char **dirname;
+{
+  char *local_dirname, *new_dirname, *t;
+  int return_value, should_expand_dirname;
+  WORD_LIST *wl;
+  struct stat sb;
+
+  return_value = should_expand_dirname = 0;
+  local_dirname = *dirname;
+
+#if 0
+  should_expand_dirname = xstrchr (local_dirname, '$') || xstrchr (local_dirname, '`');
+#else
+  if (xstrchr (local_dirname, '$'))
+    should_expand_dirname = 1;
+  else
+    {
+      t = xstrchr (local_dirname, '`');
+      if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
+       should_expand_dirname = 1;
+    }
+#endif
+
+#if defined (HAVE_LSTAT)
+  if (should_expand_dirname && lstat (local_dirname, &sb) == 0)
+#else
+  if (should_expand_dirname && stat (local_dirname, &sb) == 0)
+#endif
+    should_expand_dirname = 0;
+
+  if (should_expand_dirname)  
+    {
+      new_dirname = savestring (local_dirname);
+      wl = expand_prompt_string (new_dirname, 0);      /* does the right thing */
+      if (wl)
+       {
+         *dirname = string_list (wl);
+         /* Tell the completer to replace the directory name only if we
+            actually expanded something. */
+         return_value = STREQ (local_dirname, *dirname) == 0;
+         free (local_dirname);
+         free (new_dirname);
+         dispose_words (wl);
+         local_dirname = *dirname;
+       }
+      else
+       {
+         free (new_dirname);
+         free (local_dirname);
+         *dirname = (char *)xmalloc (1);
+         **dirname = '\0';
+         return 1;
+       }
+    }
+  else 
+    {
+      /* Dequote the filename even if we don't expand it. */
+      new_dirname = bash_dequote_filename (local_dirname, rl_completion_quote_character);
+      free (local_dirname);
+      local_dirname = *dirname = new_dirname;
+    }
+
+  if (!no_symbolic_links && (local_dirname[0] != '.' || local_dirname[1]))
+    {
+      char *temp1, *temp2;
+      int len1, len2;
+
+      t = get_working_directory ("symlink-hook");
+      temp1 = make_absolute (local_dirname, t);
+      free (t);
+      temp2 = sh_canonpath (temp1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
+      /* If we can't canonicalize, bail. */
+      if (temp2 == 0)
+       {
+         free (temp1);
+         return 1;
+       }
+      len1 = strlen (temp1);
+      if (temp1[len1 - 1] == '/')
+       {
+         len2 = strlen (temp2);
+         if (len2 > 2)         /* don't append `/' to `/' or `//' */
+           {
+             temp2 = (char *)xrealloc (temp2, len2 + 2);
+             temp2[len2] = '/';
+             temp2[len2 + 1] = '\0';
+           }
+       }
+      free (local_dirname);
+      *dirname = temp2;
+      free (temp1);
+    }
+  return (return_value);
+}
+
+static char **history_completion_array = (char **)NULL;
+static int harry_size;
+static int harry_len;
+
+static void
+build_history_completion_array ()
+{
+  register int i, j;
+  HIST_ENTRY **hlist;
+  char **tokens;
+
+  /* First, clear out the current dynamic history completion list. */
+  if (harry_size)
+    {
+      strvec_dispose (history_completion_array);
+      history_completion_array = (char **)NULL;
+      harry_size = 0;
+      harry_len = 0;
+    }
+
+  /* Next, grovel each line of history, making each shell-sized token
+     a separate entry in the history_completion_array. */
+  hlist = history_list ();
+
+  if (hlist)
+    {
+      for (i = 0; hlist[i]; i++)
+       {
+         /* Separate each token, and place into an array. */
+         tokens = history_tokenize (hlist[i]->line);
+
+         for (j = 0; tokens && tokens[j]; j++)
+           {
+             if (harry_len + 2 > harry_size)
+               history_completion_array = strvec_resize (history_completion_array, harry_size += 10);
+
+             history_completion_array[harry_len++] = tokens[j];
+             history_completion_array[harry_len] = (char *)NULL;
+           }
+         free (tokens);
+       }
+
+      /* Sort the complete list of tokens. */
+      qsort (history_completion_array, harry_len, sizeof (char *), (QSFUNC *)strvec_strcmp);
+    }
+}
+
+static char *
+history_completion_generator (hint_text, state)
+     const char *hint_text;
+     int state;
+{
+  static int local_index, len;
+  static const char *text;
+
+  /* If this is the first call to the generator, then initialize the
+     list of strings to complete over. */
+  if (state == 0)
+    {
+      local_index = 0;
+      build_history_completion_array ();
+      text = hint_text;
+      len = strlen (text);
+    }
+
+  while (history_completion_array && history_completion_array[local_index])
+    {
+      if (strncmp (text, history_completion_array[local_index++], len) == 0)
+       return (savestring (history_completion_array[local_index - 1]));
+    }
+  return ((char *)NULL);
+}
+
+static int
+dynamic_complete_history (count, key)
+     int count, key;
+{
+  int r;
+
+  rl_compentry_func_t *orig_func;
+  rl_completion_func_t *orig_attempt_func;
+
+  orig_func = rl_completion_entry_function;
+  orig_attempt_func = rl_attempted_completion_function;
+  rl_completion_entry_function = history_completion_generator;
+  rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+
+  /* XXX - use rl_completion_mode here? */
+  if (rl_last_func == dynamic_complete_history)
+    r = rl_complete_internal ('?');
+  else
+    r = rl_complete_internal (TAB);
+
+  rl_completion_entry_function = orig_func;
+  rl_attempted_completion_function = orig_attempt_func;
+  return r;
+}
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+static int
+bash_complete_username (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_username_internal (rl_completion_mode (bash_complete_username));
+}
+
+static int
+bash_possible_username_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_username_internal ('?');
+}
+
+static int
+bash_complete_username_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, rl_username_completion_function);
+}
+
+static int
+bash_complete_filename (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_filename_internal (rl_completion_mode (bash_complete_filename));
+}
+
+static int
+bash_possible_filename_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_filename_internal ('?');
+}
+
+static int
+bash_complete_filename_internal (what_to_do)
+     int what_to_do;
+{
+  rl_compentry_func_t *orig_func;
+  rl_completion_func_t *orig_attempt_func;
+  rl_icppfunc_t *orig_dir_func;
+  /*const*/ char *orig_rl_completer_word_break_characters;
+  int r;
+
+  orig_func = rl_completion_entry_function;
+  orig_attempt_func = rl_attempted_completion_function;
+  orig_dir_func = rl_directory_completion_hook;
+  orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
+  rl_completion_entry_function = rl_filename_completion_function;
+  rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+  rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
+  rl_completer_word_break_characters = " \t\n\"\'";
+
+  r = rl_complete_internal (what_to_do);
+
+  rl_completion_entry_function = orig_func;
+  rl_attempted_completion_function = orig_attempt_func;
+  rl_directory_completion_hook = orig_dir_func;
+  rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
+
+  return r;
+}
+
+static int
+bash_complete_hostname (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_hostname_internal (rl_completion_mode (bash_complete_hostname));
+}
+
+static int
+bash_possible_hostname_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_hostname_internal ('?');
+}
+
+static int
+bash_complete_variable (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_variable_internal (rl_completion_mode (bash_complete_variable));
+}
+
+static int
+bash_possible_variable_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_variable_internal ('?');
+}
+
+static int
+bash_complete_command (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_command_internal (rl_completion_mode (bash_complete_command));
+}
+
+static int
+bash_possible_command_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_command_internal ('?');
+}
+
+static int
+bash_complete_hostname_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, hostname_completion_function);
+}
+
+static int
+bash_complete_variable_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, variable_completion_function);
+}
+
+static int
+bash_complete_command_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, command_word_completion_function);
+}
+
+static char *globtext;
+static char *globorig;
+
+static char *
+glob_complete_word (text, state)
+     const char *text;
+     int state;
+{
+  static char **matches = (char **)NULL;
+  static int ind;
+  int glen;
+  char *ret, *ttext;
+
+  if (state == 0)
+    {
+      rl_filename_completion_desired = 1;
+      FREE (matches);
+      if (globorig != globtext)
+       FREE (globorig);
+      FREE (globtext);
+
+      ttext = bash_tilde_expand (text, 0);
+
+      if (rl_explicit_arg)
+       {
+         globorig = savestring (ttext);
+         glen = strlen (ttext);
+         globtext = (char *)xmalloc (glen + 2);
+         strcpy (globtext, ttext);
+         globtext[glen] = '*';
+         globtext[glen+1] = '\0';
+       }
+      else
+        globtext = globorig = savestring (ttext);
+
+      if (ttext != text)
+       free (ttext);
+
+      matches = shell_glob_filename (globtext);
+      if (GLOB_FAILED (matches))
+       matches = (char **)NULL;
+      ind = 0;
+    }
+
+  ret = matches ? matches[ind] : (char *)NULL;
+  ind++;
+  return ret;
+}
+
+static int
+bash_glob_completion_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, glob_complete_word);
+}
+
+/* A special quoting function so we don't end up quoting globbing characters
+   in the word if there are no matches or multiple matches. */
+static char *
+bash_glob_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  if (globorig && qcp && *qcp == '\0' && STREQ (s, globorig))
+    return (savestring (s));
+  else
+    return (bash_quote_filename (s, rtype, qcp));
+}
+
+static int
+bash_glob_complete_word (count, key)
+     int count, key;
+{
+  int r;
+  rl_quote_func_t *orig_quoting_function;
+
+  if (rl_editing_mode == EMACS_EDITING_MODE)
+    rl_explicit_arg = 1;       /* force `*' append */
+  orig_quoting_function = rl_filename_quoting_function;
+  rl_filename_quoting_function = bash_glob_quote_filename;
+  
+  r = bash_glob_completion_internal (rl_completion_mode (bash_glob_complete_word));
+
+  rl_filename_quoting_function = orig_quoting_function;
+  return r;
+}
+
+static int
+bash_glob_expand_word (count, key)
+     int count, key;
+{
+  return bash_glob_completion_internal ('*');
+}
+
+static int
+bash_glob_list_expansions (count, key)
+     int count, key;
+{
+  return bash_glob_completion_internal ('?');
+}
+
+static int
+bash_specific_completion (what_to_do, generator)
+     int what_to_do;
+     rl_compentry_func_t *generator;
+{
+  rl_compentry_func_t *orig_func;
+  rl_completion_func_t *orig_attempt_func;
+  int r;
+
+  orig_func = rl_completion_entry_function;
+  orig_attempt_func = rl_attempted_completion_function;
+  rl_completion_entry_function = generator;
+  rl_attempted_completion_function = NULL;
+
+  r = rl_complete_internal (what_to_do);
+
+  rl_completion_entry_function = orig_func;
+  rl_attempted_completion_function = orig_attempt_func;
+
+  return r;
+}
+
+#endif /* SPECIFIC_COMPLETION_FUNCTIONS */
+
+#if defined (VI_MODE)
+/* Completion, from vi mode's point of view.  This is a modified version of
+   rl_vi_complete which uses the bash globbing code to implement what POSIX
+   specifies, which is to append a `*' and attempt filename generation (which
+   has the side effect of expanding any globbing characters in the word). */
+static int
+bash_vi_complete (count, key)
+     int count, key;
+{
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+  int p, r;
+  char *t;
+
+  if ((rl_point < rl_end) && (!whitespace (rl_line_buffer[rl_point])))
+    {
+      if (!whitespace (rl_line_buffer[rl_point + 1]))
+       rl_vi_end_word (1, 'E');
+      rl_point++;
+    }
+
+  /* Find boundaries of current word, according to vi definition of a
+     `bigword'. */
+  t = 0;
+  if (rl_point > 0)
+    {
+      p = rl_point;
+      rl_vi_bWord (1, 'B');
+      r = rl_point;
+      rl_point = p;
+      p = r;
+
+      t = substring (rl_line_buffer, p, rl_point);
+    }      
+
+  if (t && glob_pattern_p (t) == 0)
+    rl_explicit_arg = 1;       /* XXX - force glob_complete_word to append `*' */
+  FREE (t);
+
+  if (key == '*')      /* Expansion and replacement. */
+    r = bash_glob_expand_word (count, key);
+  else if (key == '=') /* List possible completions. */
+    r = bash_glob_list_expansions (count, key);
+  else if (key == '\\')        /* Standard completion */
+    r = bash_glob_complete_word (count, key);
+  else
+    r = rl_complete (0, key);
+
+  if (key == '*' || key == '\\')
+    rl_vi_start_inserting (key, 1, 1);
+
+  return (r);
+#else
+  return rl_vi_complete (count, key);
+#endif /* !SPECIFIC_COMPLETION_FUNCTIONS */
+}
+#endif /* VI_MODE */
+
+/* Filename quoting for completion. */
+/* A function to strip unquoted quote characters (single quotes, double
+   quotes, and backslashes).  It allows single quotes to appear
+   within double quotes, and vice versa.  It should be smarter. */
+static char *
+bash_dequote_filename (text, quote_char)
+     char *text;
+     int quote_char;
+{
+  char *ret, *p, *r;
+  int l, quoted;
+
+  l = strlen (text);
+  ret = (char *)xmalloc (l + 1);
+  for (quoted = quote_char, p = text, r = ret; p && *p; p++)
+    {
+      /* Allow backslash-quoted characters to pass through unscathed. */
+      if (*p == '\\')
+       {
+         *r++ = *++p;
+         if (*p == '\0')
+           break;
+         continue;
+       }
+      /* Close quote. */
+      if (quoted && *p == quoted)
+       {
+         quoted = 0;
+         continue;
+       }
+      /* Open quote. */
+      if (quoted == 0 && (*p == '\'' || *p == '"'))
+       {
+         quoted = *p;
+         continue;
+       }
+      *r++ = *p;
+    }
+  *r = '\0';
+  return ret;
+}
+
+/* Quote characters that the readline completion code would treat as
+   word break characters with backslashes.  Pass backslash-quoted
+   characters through without examination. */
+static char *
+quote_word_break_chars (text)
+     char *text;
+{
+  char *ret, *r, *s;
+  int l;
+
+  l = strlen (text);
+  ret = (char *)xmalloc ((2 * l) + 1);
+  for (s = text, r = ret; *s; s++)
+    {
+      /* Pass backslash-quoted characters through, including the backslash. */
+      if (*s == '\\')
+       {
+         *r++ = '\\';
+         *r++ = *++s;
+         if (*s == '\0')
+           break;
+         continue;
+       }
+      /* OK, we have an unquoted character.  Check its presence in
+        rl_completer_word_break_characters. */
+      if (xstrchr (rl_completer_word_break_characters, *s))
+       *r++ = '\\';
+      *r++ = *s;
+    }
+  *r = '\0';
+  return ret;
+}
+
+/* Quote a filename using double quotes, single quotes, or backslashes
+   depending on the value of completion_quoting_style.  If we're
+   completing using backslashes, we need to quote some additional
+   characters (those that readline treats as word breaks), so we call
+   quote_word_break_chars on the result.  This returns newly-allocated
+   memory. */
+static char *
+bash_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  char *rtext, *mtext, *ret;
+  int rlen, cs;
+
+  rtext = (char *)NULL;
+
+  /* If RTYPE == MULT_MATCH, it means that there is
+     more than one match.  In this case, we do not add
+     the closing quote or attempt to perform tilde
+     expansion.  If RTYPE == SINGLE_MATCH, we try
+     to perform tilde expansion, because single and double
+     quotes inhibit tilde expansion by the shell. */
+
+  cs = completion_quoting_style;
+  /* Might need to modify the default completion style based on *qcp,
+     since it's set to any user-provided opening quote.  We also change
+     to single-quoting if there is no user-provided opening quote and
+     the word being completed contains newlines, since those are not
+     quoted correctly using backslashes (a backslash-newline pair is
+     special to the shell parser). */
+  if (*qcp == '\0' && cs == COMPLETE_BSQUOTE && xstrchr (s, '\n'))
+    cs = COMPLETE_SQUOTE;
+  else if (*qcp == '"')
+    cs = COMPLETE_DQUOTE;
+  else if (*qcp == '\'')
+    cs = COMPLETE_SQUOTE;
+#if defined (BANG_HISTORY)
+  else if (*qcp == '\0' && history_expansion && cs == COMPLETE_DQUOTE &&
+          history_expansion_inhibited == 0 && xstrchr (s, '!'))
+    cs = COMPLETE_BSQUOTE;
+
+  if (*qcp == '"' && history_expansion && cs == COMPLETE_DQUOTE &&
+       history_expansion_inhibited == 0 && xstrchr (s, '!'))
+    {
+      cs = COMPLETE_BSQUOTE;
+      *qcp = '\0';
+    }
+#endif
+
+  /* Don't tilde-expand backslash-quoted filenames, since only single and
+     double quotes inhibit tilde expansion. */
+  mtext = s;
+  if (mtext[0] == '~' && rtype == SINGLE_MATCH && cs != COMPLETE_BSQUOTE)
+    mtext = bash_tilde_expand (s, 0);
+
+  switch (cs)
+    {
+    case COMPLETE_DQUOTE:
+      rtext = sh_double_quote (mtext);
+      break;
+    case COMPLETE_SQUOTE:
+      rtext = sh_single_quote (mtext);
+      break;
+    case COMPLETE_BSQUOTE:
+      rtext = sh_backslash_quote (mtext);
+      break;
+    }
+
+  if (mtext != s)
+    free (mtext);
+
+  /* We may need to quote additional characters: those that readline treats
+     as word breaks that are not quoted by backslash_quote. */
+  if (rtext && cs == COMPLETE_BSQUOTE)
+    {
+      mtext = quote_word_break_chars (rtext);
+      free (rtext);
+      rtext = mtext;
+    }
+
+  /* Leave the opening quote intact.  The readline completion code takes
+     care of avoiding doubled opening quotes. */
+  rlen = strlen (rtext);
+  ret = (char *)xmalloc (rlen + 1);
+  strcpy (ret, rtext);
+
+  /* If there are multiple matches, cut off the closing quote. */
+  if (rtype == MULT_MATCH && cs != COMPLETE_BSQUOTE)
+    ret[rlen - 1] = '\0';
+  free (rtext);
+  return ret;
+}
+
+/* Support for binding readline key sequences to Unix commands. */
+static Keymap cmd_xmap;
+
+static int
+bash_execute_unix_command (count, key)
+     int count;        /* ignored */
+     int key;
+{
+  Keymap ckmap;                /* current keymap */
+  Keymap xkmap;                /* unix command executing keymap */
+  register int i;
+  char *cmd;
+  sh_parser_state_t ps;
+
+  /* First, we need to find the right command to execute.  This is tricky,
+     because we might have already indirected into another keymap. */
+  ckmap = rl_get_keymap ();
+  if (ckmap != rl_executing_keymap)
+    {
+      /* bogus.  we have to search.  only handle one level of indirection. */
+      for (i = 0; i < KEYMAP_SIZE; i++)
+       {
+         if (ckmap[i].type == ISKMAP && (Keymap)ckmap[i].function == rl_executing_keymap)
+           break;
+       }
+      if (i < KEYMAP_SIZE)
+       xkmap = (Keymap)cmd_xmap[i].function;
+      else
+       {
+         rl_crlf ();
+         internal_error (_("bash_execute_unix_command: cannot find keymap for command"));
+         rl_forced_update_display ();
+         return 1;
+       }
+    }
+  else
+    xkmap = cmd_xmap;
+
+  cmd = (char *)xkmap[key].function;
+
+  if (cmd == 0)
+    {
+      rl_ding ();
+      return 1;
+    }
+
+  rl_crlf ();  /* move to a new line */
+
+  save_parser_state (&ps);
+
+  cmd = savestring (cmd);
+  parse_and_execute (cmd, "bash_execute_unix_command", SEVAL_NOHIST);
+
+  restore_parser_state (&ps);
+
+  /* and restore the readline buffer and display after command execution. */
+  rl_forced_update_display ();
+  return 0;
+}
+
+static void
+init_unix_command_map ()
+{
+  cmd_xmap = rl_make_bare_keymap ();
+}
+
+static int
+isolate_sequence (string, ind, need_dquote, startp)
+     char *string;
+     int ind, need_dquote, *startp;
+{
+  register int i;
+  int c, passc, delim;
+
+  for (i = ind; string[i] && whitespace (string[i]); i++)
+    ;
+  /* NEED_DQUOTE means that the first non-white character *must* be `"'. */
+  if (need_dquote && string[i] != '"')
+    {
+      builtin_error (_("%s: first non-whitespace character is not `\"'"), string);
+      return -1;
+    }
+
+  /* We can have delimited strings even if NEED_DQUOTE == 0, like the command
+     string to bind the key sequence to. */
+  delim = (string[i] == '"' || string[i] == '\'') ? string[i] : 0;
+    
+  if (startp)
+    *startp = delim ? ++i : i;
+
+  for (passc = 0; c = string[i]; i++)
+    {
+      if (passc)
+       {
+         passc = 0;
+         continue;
+       }
+      if (c == '\\')
+       {
+         passc++;
+         continue;
+       }
+      if (c == delim)
+       break;
+    }
+
+  if (delim && string[i] != delim)
+    {
+      builtin_error (_("no closing `%c' in %s"), delim, string);
+      return -1;
+    }
+
+  return i;
+}
+
+int
+bind_keyseq_to_unix_command (line)
+     char *line;
+{
+  Keymap kmap;
+  char *kseq, *value;
+  int i, kstart;
+
+  if (cmd_xmap == 0)
+    init_unix_command_map ();
+
+  kmap = rl_get_keymap ();
+
+  /* We duplicate some of the work done by rl_parse_and_bind here, but
+     this code only has to handle `"keyseq": ["]command["]' and can
+     generate an error for anything else. */
+  i = isolate_sequence (line, 0, 1, &kstart);
+  if (i < 0)
+    return -1;
+
+  /* Create the key sequence string to pass to rl_generic_bind */
+  kseq = substring (line, kstart, i);
+
+  for ( ; line[i] && line[i] != ':'; i++)
+    ;
+  if (line[i] != ':')
+    {
+      builtin_error (_("%s: missing colon separator"), line);
+      return -1;
+    }
+
+  i = isolate_sequence (line, i + 1, 0, &kstart);
+  if (i < 0)
+    return -1;
+
+  /* Create the value string containing the command to execute. */
+  value = substring (line, kstart, i);
+
+  /* Save the command to execute and the key sequence in the CMD_XMAP */
+  rl_generic_bind (ISMACR, kseq, value, cmd_xmap);
+
+  /* and bind the key sequence in the current keymap to a function that
+     understands how to execute from CMD_XMAP */
+  rl_bind_keyseq_in_map (kseq, bash_execute_unix_command, kmap);
+  
+  return 0;
+}
+
+/* Used by the programmable completion code.  Complete TEXT as a filename,
+   but return only directories as matches.  Dequotes the filename before
+   attempting to find matches. */
+char **
+bash_directory_completion_matches (text)
+     const char *text;
+{
+  char **m1;
+  char *dfn;
+  int qc;
+
+#if 0
+  qc = (text[0] == '"' || text[0] == '\'') ? text[0] : 0;
+#else
+  qc = rl_dispatching ? rl_completion_quote_character : 0;  
+#endif
+  dfn = bash_dequote_filename ((char *)text, qc);
+  m1 = rl_completion_matches (dfn, rl_filename_completion_function);
+  free (dfn);
+
+  if (m1 == 0 || m1[0] == 0)
+    return m1;
+  /* We don't bother recomputing the lcd of the matches, because it will just
+     get thrown away by the programmable completion code and recomputed
+     later. */
+  (void)bash_ignore_filenames (m1);
+  return m1;
+}
+
+char *
+bash_dequote_text (text)
+     const char *text;
+{
+  char *dtxt;
+  int qc;
+
+  qc = (text[0] == '"' || text[0] == '\'') ? text[0] : 0;
+  dtxt = bash_dequote_filename ((char *)text, qc);
+  return (dtxt);
+}
+#endif /* READLINE */
index 4d229ca415758a5a0f899a1607e6b329505b4420..3bac869b4a75f48990903240e41263d700a08c15 100644 (file)
--- a/braces.c
+++ b/braces.c
@@ -81,14 +81,45 @@ brace_expand (text)
   char *preamble, *postamble, *amble;
   size_t alen;
   char **tack, **result;
-  int i, j, c;
+  int i, j, c, c1;
 
   DECLARE_MBSTATE;
 
   /* Find the text of the preamble. */
   tlen = strlen (text);
   i = 0;
-  c = brace_gobbler (text, tlen, &i, '{');
+#if defined (CSH_BRACE_COMPAT)
+  c = brace_gobbler (text, tlen, &i, '{');     /* } */
+#else
+  /* Make sure that when we exit this loop, c == 0 or text[i] begins a
+     valid brace expansion sequence. */
+  do
+    {
+      c = brace_gobbler (text, tlen, &i, '{'); /* } */
+      c1 = c;
+      /* Verify that c begins a valid brace expansion word.  If it doesn't, we
+        go on.  Loop stops when there are no more open braces in the word. */
+      if (c)
+       {
+         start = j = i + 1;    /* { */
+         c = brace_gobbler (text, tlen, &j, '}');
+         if (c == 0)           /* it's not */
+           {
+             i++;
+             c = c1;
+             continue;
+           }
+         else                  /* it is */
+           {
+             c = c1;
+             break;
+           }
+       }
+      else
+       break;
+    }
+  while (c);
+#endif /* !CSH_BRACE_COMPAT */
 
   preamble = (char *)xmalloc (i + 1);
   strncpy (preamble, text, i);
@@ -361,6 +392,11 @@ expand_seqterm (text, tlen)
    index of the character matching SATISFY.  This understands about
    quoting.  Return the character that caused us to stop searching;
    this is either the same as SATISFY, or 0. */
+/* If SATISFY is `}', we are looking for a brace expression, so we
+   should enforce the rules that govern valid brace expansions:
+       1) to count as an arg separator, a comma or `..' has to be outside
+          an inner set of braces.       
+*/
 static int
 brace_gobbler (text, tlen, indx, satisfy)
      char *text;
@@ -368,7 +404,7 @@ brace_gobbler (text, tlen, indx, satisfy)
      int *indx;
      int satisfy;
 {
-  register int i, c, quoted, level, pass_next;
+  register int i, c, quoted, level, commas, pass_next;
 #if defined (SHELL)
   int si;
   char *t;
@@ -376,6 +412,11 @@ brace_gobbler (text, tlen, indx, satisfy)
   DECLARE_MBSTATE;
 
   level = quoted = pass_next = 0;
+#if defined (CSH_BRACE_COMPAT)
+  commas = 1;
+#else
+  commas = (satisfy == '}') ? 0 : 1;
+#endif
 
   i = *indx;
   while (c = text[i])
@@ -436,7 +477,7 @@ brace_gobbler (text, tlen, indx, satisfy)
        }
 #endif
 
-      if (c == satisfy && level == 0 && quoted == 0)
+      if (c == satisfy && level == 0 && quoted == 0 && commas > 0)
        {
          /* We ignore an open brace surrounded by whitespace, and also
             an open brace followed immediately by a close brace preceded
@@ -456,6 +497,13 @@ brace_gobbler (text, tlen, indx, satisfy)
        level++;
       else if (c == '}' && level)
        level--;
+#if !defined (CSH_BRACE_COMPAT)
+      else if (satisfy == '}' && c == brace_arg_separator && level == 0)
+       commas++;
+      else if (satisfy == '}' && STREQN (text+i, BRACE_SEQ_SPECIFIER, 2) &&
+               text[i+2] != satisfy && level == 0)
+       commas++;
+#endif
 
       ADVANCE_CHAR (text, tlen, i);
     }
diff --git a/braces.c.orig b/braces.c.orig
new file mode 100644 (file)
index 0000000..4d229ca
--- /dev/null
@@ -0,0 +1,561 @@
+/* braces.c -- code for doing word expansion in curly braces. */
+
+/* Copyright (C) 1987-2003 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 2, 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; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+/* Stuff in curly braces gets expanded before all other shell expansions. */
+
+#include "config.h"
+
+#if defined (BRACE_EXPANSION)
+
+#if defined (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include "bashansi.h"
+
+#if defined (SHELL)
+#  include "shell.h"
+#endif /* SHELL */
+
+#include "general.h"
+#include "shmbutil.h"
+#include "chartypes.h"
+
+#define brace_whitespace(c) (!(c) || (c) == ' ' || (c) == '\t' || (c) == '\n')
+
+#define BRACE_SEQ_SPECIFIER    ".."
+
+/* Basic idea:
+
+   Segregate the text into 3 sections: preamble (stuff before an open brace),
+   postamble (stuff after the matching close brace) and amble (stuff after
+   preamble, and before postamble).  Expand amble, and then tack on the
+   expansions to preamble.  Expand postamble, and tack on the expansions to
+   the result so far.
+ */
+
+/* The character which is used to separate arguments. */
+int brace_arg_separator = ',';
+
+#if defined (__P)
+static int brace_gobbler __P((char *, size_t, int *, int));
+static char **expand_amble __P((char *, size_t, int));
+static char **expand_seqterm __P((char *, size_t));
+static char **mkseq __P((int, int, int));
+static char **array_concat __P((char **, char **));
+#else
+static int brace_gobbler ();
+static char **expand_amble ();
+static char **expand_seqterm ();
+static char **mkseq();
+static char **array_concat ();
+#endif
+
+/* Return an array of strings; the brace expansion of TEXT. */
+char **
+brace_expand (text)
+     char *text;
+{
+  register int start;
+  size_t tlen;
+  char *preamble, *postamble, *amble;
+  size_t alen;
+  char **tack, **result;
+  int i, j, c;
+
+  DECLARE_MBSTATE;
+
+  /* Find the text of the preamble. */
+  tlen = strlen (text);
+  i = 0;
+  c = brace_gobbler (text, tlen, &i, '{');
+
+  preamble = (char *)xmalloc (i + 1);
+  strncpy (preamble, text, i);
+  preamble[i] = '\0';
+
+  result = (char **)xmalloc (2 * sizeof (char *));
+  result[0] = preamble;
+  result[1] = (char *)NULL;
+
+  /* Special case.  If we never found an exciting character, then
+     the preamble is all of the text, so just return that. */
+  if (c != '{')
+    return (result);
+
+  /* Find the amble.  This is the stuff inside this set of braces. */
+  start = ++i;
+  c = brace_gobbler (text, tlen, &i, '}');
+
+  /* What if there isn't a matching close brace? */
+  if (c == 0)
+    {
+#if defined (NOTDEF)
+      /* Well, if we found an unquoted BRACE_ARG_SEPARATOR between START
+        and I, then this should be an error.  Otherwise, it isn't. */
+      j = start;
+      while (j < i)
+       {
+         if (text[j] == '\\')
+           {
+             j++;
+             ADVANCE_CHAR (text, tlen, j);
+             continue;
+           }
+
+         if (text[j] == brace_arg_separator)
+           {   /* { */
+             strvec_dispose (result);
+             report_error ("no closing `%c' in %s", '}', text);
+             throw_to_top_level ();
+           }
+         ADVANCE_CHAR (text, tlen, j);
+       }
+#endif
+      free (preamble);         /* Same as result[0]; see initialization. */
+      result[0] = savestring (text);
+      return (result);
+    }
+
+#if defined (SHELL)
+  amble = substring (text, start, i);
+  alen = i - start;
+#else
+  amble = (char *)xmalloc (1 + (i - start));
+  strncpy (amble, &text[start], (i - start));
+  alen = i - start;
+  amble[alen] = '\0';
+#endif
+
+#if defined (SHELL)
+  INITIALIZE_MBSTATE;
+
+  /* If the amble does not contain an unquoted BRACE_ARG_SEPARATOR, then
+     just return without doing any expansion.  */
+  j = 0;
+  while (amble[j])
+    {
+      if (amble[j] == '\\')
+       {
+         j++;
+         ADVANCE_CHAR (amble, alen, j);
+         continue;
+       }
+
+      if (amble[j] == brace_arg_separator)
+       break;
+
+      ADVANCE_CHAR (amble, alen, j);
+    }
+
+  if (amble[j] == 0)
+    {
+      tack = expand_seqterm (amble, alen);
+      if (tack)
+       goto add_tack;
+      else
+       {
+         free (amble);
+         free (preamble);
+         result[0] = savestring (text);
+         return (result);
+       }
+    }
+#endif /* SHELL */
+
+  tack = expand_amble (amble, alen, 0);
+add_tack:
+  result = array_concat (result, tack);
+  free (amble);
+  strvec_dispose (tack);
+
+  postamble = text + i + 1;
+
+  tack = brace_expand (postamble);
+  result = array_concat (result, tack);
+  strvec_dispose (tack);
+
+  return (result);
+}
+
+/* Expand the text found inside of braces.  We simply try to split the
+   text at BRACE_ARG_SEPARATORs into separate strings.  We then brace
+   expand each slot which needs it, until there are no more slots which
+   need it. */
+static char **
+expand_amble (text, tlen, flags)
+     char *text;
+     size_t tlen;
+     int flags;
+{
+  char **result, **partial;
+  char *tem;
+  int start, i, c;
+
+  DECLARE_MBSTATE;
+
+  result = (char **)NULL;
+
+  start = i = 0;
+  c = 1;
+  while (c)
+    {
+      c = brace_gobbler (text, tlen, &i, brace_arg_separator);
+#if defined (SHELL)
+      tem = substring (text, start, i);
+#else
+      tem = (char *)xmalloc (1 + (i - start));
+      strncpy (tem, &text[start], (i - start));
+      tem[i- start] = '\0';
+#endif
+
+      partial = brace_expand (tem);
+
+      if (!result)
+       result = partial;
+      else
+       {
+         register int lr, lp, j;
+
+         lr = strvec_len (result);
+         lp = strvec_len (partial);
+
+         result = strvec_resize (result, lp + lr + 1);
+
+         for (j = 0; j < lp; j++)
+           result[lr + j] = partial[j];
+
+         result[lr + j] = (char *)NULL;
+         free (partial);
+       }
+      free (tem);
+      ADVANCE_CHAR (text, tlen, i);
+      start = i;
+    }
+  return (result);
+}
+
+#define ST_BAD 0
+#define ST_INT 1
+#define ST_CHAR        2
+
+static char **
+mkseq (start, end, type)
+     int start, end, type;
+{
+  int n, incr, i;
+  char **result, *t;
+
+  n = abs (end - start) + 1;
+  result = strvec_create (n + 1);
+
+  incr = (start < end) ? 1 : -1;
+
+  /* Make sure we go through the loop at least once, so {3..3} prints `3' */
+  i = 0;
+  n = start;
+  do
+    {
+      if (type == ST_INT)
+       result[i++] = itos (n);
+      else
+       {
+         t = (char *)xmalloc (2);
+         t[0] = n;
+         t[1] = '\0';
+         result[i++] = t;
+       }
+      if (n == end)
+        break;
+      n += incr;
+    }
+  while (1);
+
+  result[i] = (char *)0;
+  return (result);
+}
+
+static char **
+expand_seqterm (text, tlen)
+     char *text;
+     size_t tlen;
+{
+  char *t, *lhs, *rhs;
+  int i, lhs_t, rhs_t, lhs_v, rhs_v;
+  intmax_t tl, tr;
+  char **result;
+
+  t = strstr (text, BRACE_SEQ_SPECIFIER);
+  if (t == 0)
+    return ((char **)NULL);
+
+  i = t - text;                /* index of start of BRACE_SEQ_SPECIFIER */
+  lhs = substring (text, 0, i);
+  rhs = substring (text, i + sizeof(BRACE_SEQ_SPECIFIER) - 1, tlen);
+
+  if (lhs[0] == 0 || rhs[0] == 0)
+    {
+      free (lhs);
+      free (rhs);
+      return ((char **)NULL);
+    }
+
+  /* Now figure out whether LHS and RHS are integers or letters.  Both
+     sides have to match. */
+  lhs_t = (legal_number (lhs, &tl)) ? ST_INT :
+               ((ISALPHA (lhs[0]) && lhs[1] == 0) ?  ST_CHAR : ST_BAD);
+  rhs_t = (legal_number (rhs, &tr)) ? ST_INT :
+               ((ISALPHA (rhs[0]) && rhs[1] == 0) ?  ST_CHAR : ST_BAD);
+
+  if (lhs_t != rhs_t || lhs_t == ST_BAD || rhs_t == ST_BAD)
+    {
+      free (lhs);
+      free (rhs);
+      return ((char **)NULL);
+    }
+
+  /* OK, we have something.  It's either a sequence of integers, ascending
+     or descending, or a sequence or letters, ditto.  Generate the sequence,
+     put it into a string vector, and return it. */
+  
+  if (lhs_t == ST_CHAR)
+    {
+      lhs_v = (unsigned char)lhs[0];
+      rhs_v = (unsigned char)rhs[0];
+    }
+  else
+    {
+      lhs_v = tl;              /* integer truncation */
+      rhs_v = tr;
+    }
+
+  result = mkseq (lhs_v, rhs_v, lhs_t);
+
+  free (lhs);
+  free (rhs);
+
+  return (result);
+}
+
+/* Start at INDEX, and skip characters in TEXT. Set INDEX to the
+   index of the character matching SATISFY.  This understands about
+   quoting.  Return the character that caused us to stop searching;
+   this is either the same as SATISFY, or 0. */
+static int
+brace_gobbler (text, tlen, indx, satisfy)
+     char *text;
+     size_t tlen;
+     int *indx;
+     int satisfy;
+{
+  register int i, c, quoted, level, pass_next;
+#if defined (SHELL)
+  int si;
+  char *t;
+#endif
+  DECLARE_MBSTATE;
+
+  level = quoted = pass_next = 0;
+
+  i = *indx;
+  while (c = text[i])
+    {
+      if (pass_next)
+       {
+         pass_next = 0;
+         ADVANCE_CHAR (text, tlen, i);
+         continue;
+       }
+
+      /* A backslash escapes the next character.  This allows backslash to
+        escape the quote character in a double-quoted string. */
+      if (c == '\\' && (quoted == 0 || quoted == '"' || quoted == '`'))
+       {
+         pass_next = 1;
+         i++;
+         continue;
+       }
+
+#if defined (SHELL)
+      /* If compiling for the shell, treat ${...} like \{...} */
+      if (c == '$' && text[i+1] == '{' && quoted != '\'')              /* } */
+       {
+         pass_next = 1;
+         i++;
+         if (quoted == 0)
+           level++;
+         continue;
+       }
+#endif
+
+      if (quoted)
+       {
+         if (c == quoted)
+           quoted = 0;
+         ADVANCE_CHAR (text, tlen, i);
+         continue;
+       }
+
+      if (c == '"' || c == '\'' || c == '`')
+       {
+         quoted = c;
+         i++;
+         continue;
+       }
+
+#if defined (SHELL)
+      /* Pass new-style command substitutions through unchanged. */
+      if (c == '$' && text[i+1] == '(')                        /* ) */
+       {
+         si = i + 2;
+         t = extract_command_subst (text, &si);
+         i = si;
+         free (t);
+         i++;
+         continue;
+       }
+#endif
+
+      if (c == satisfy && level == 0 && quoted == 0)
+       {
+         /* We ignore an open brace surrounded by whitespace, and also
+            an open brace followed immediately by a close brace preceded
+            by whitespace.  */
+         if (c == '{' &&
+             ((!i || brace_whitespace (text[i - 1])) &&
+              (brace_whitespace (text[i + 1]) || text[i + 1] == '}')))
+           {
+             i++;
+             continue;
+           }
+
+           break;
+       }
+
+      if (c == '{')
+       level++;
+      else if (c == '}' && level)
+       level--;
+
+      ADVANCE_CHAR (text, tlen, i);
+    }
+
+  *indx = i;
+  return (c);
+}
+
+/* Return a new array of strings which is the result of appending each
+   string in ARR2 to each string in ARR1.  The resultant array is
+   len (arr1) * len (arr2) long.  For convenience, ARR1 (and its contents)
+   are free ()'ed.  ARR1 can be NULL, in that case, a new version of ARR2
+   is returned. */
+static char **
+array_concat (arr1, arr2)
+     char **arr1, **arr2;
+{
+  register int i, j, len, len1, len2;
+  register char **result;
+
+  if (arr1 == 0)
+    return (strvec_copy (arr2));
+
+  if (arr2 == 0)
+    return (strvec_copy (arr1));
+
+  len1 = strvec_len (arr1);
+  len2 = strvec_len (arr2);
+
+  result = (char **)xmalloc ((1 + (len1 * len2)) * sizeof (char *));
+
+  len = 0;
+  for (i = 0; i < len1; i++)
+    {
+      int strlen_1 = strlen (arr1[i]);
+
+      for (j = 0; j < len2; j++)
+       {
+         result[len] = (char *)xmalloc (1 + strlen_1 + strlen (arr2[j]));
+         strcpy (result[len], arr1[i]);
+         strcpy (result[len] + strlen_1, arr2[j]);
+         len++;
+       }
+      free (arr1[i]);
+    }
+  free (arr1);
+
+  result[len] = (char *)NULL;
+  return (result);
+}
+
+#if defined (TEST)
+#include <stdio.h>
+
+fatal_error (format, arg1, arg2)
+     char *format, *arg1, *arg2;
+{
+  report_error (format, arg1, arg2);
+  exit (1);
+}
+
+report_error (format, arg1, arg2)
+     char *format, *arg1, *arg2;
+{
+  fprintf (stderr, format, arg1, arg2);
+  fprintf (stderr, "\n");
+}
+
+main ()
+{
+  char example[256];
+
+  for (;;)
+    {
+      char **result;
+      int i;
+
+      fprintf (stderr, "brace_expand> ");
+
+      if ((!fgets (example, 256, stdin)) ||
+         (strncmp (example, "quit", 4) == 0))
+       break;
+
+      if (strlen (example))
+       example[strlen (example) - 1] = '\0';
+
+      result = brace_expand (example);
+
+      for (i = 0; result[i]; i++)
+       printf ("%s\n", result[i]);
+
+      free_array (result);
+    }
+}
+\f
+/*
+ * Local variables:
+ * compile-command: "gcc -g -Bstatic -DTEST -o brace_expand braces.c general.o"
+ * end:
+ */
+
+#endif /* TEST */
+#endif /* BRACE_EXPANSION */
diff --git a/braces.c~ b/braces.c~
new file mode 100644 (file)
index 0000000..30c3e38
--- /dev/null
+++ b/braces.c~
@@ -0,0 +1,610 @@
+/* braces.c -- code for doing word expansion in curly braces. */
+
+/* Copyright (C) 1987-2003 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 2, 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; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+/* Stuff in curly braces gets expanded before all other shell expansions. */
+
+#include "config.h"
+
+#if defined (BRACE_EXPANSION)
+
+#if defined (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include "bashansi.h"
+
+#if defined (SHELL)
+#  include "shell.h"
+#endif /* SHELL */
+
+#include "general.h"
+#include "shmbutil.h"
+#include "chartypes.h"
+
+#define brace_whitespace(c) (!(c) || (c) == ' ' || (c) == '\t' || (c) == '\n')
+
+#define BRACE_SEQ_SPECIFIER    ".."
+
+/* Basic idea:
+
+   Segregate the text into 3 sections: preamble (stuff before an open brace),
+   postamble (stuff after the matching close brace) and amble (stuff after
+   preamble, and before postamble).  Expand amble, and then tack on the
+   expansions to preamble.  Expand postamble, and tack on the expansions to
+   the result so far.
+ */
+
+/* The character which is used to separate arguments. */
+int brace_arg_separator = ',';
+
+#if defined (__P)
+static int brace_gobbler __P((char *, size_t, int *, int));
+static char **expand_amble __P((char *, size_t, int));
+static char **expand_seqterm __P((char *, size_t));
+static char **mkseq __P((int, int, int));
+static char **array_concat __P((char **, char **));
+#else
+static int brace_gobbler ();
+static char **expand_amble ();
+static char **expand_seqterm ();
+static char **mkseq();
+static char **array_concat ();
+#endif
+
+/* Return an array of strings; the brace expansion of TEXT. */
+char **
+brace_expand (text)
+     char *text;
+{
+  register int start;
+  size_t tlen;
+  char *preamble, *postamble, *amble;
+  size_t alen;
+  char **tack, **result;
+  int i, j, c, c1;
+
+  DECLARE_MBSTATE;
+
+  /* Find the text of the preamble. */
+  tlen = strlen (text);
+  i = 0;
+#if 1
+  c = brace_gobbler (text, tlen, &i, '{');     /* } */
+#else
+  /* Make sure that when we exit this loop, c == 0 or text[i] begins a
+     valid brace expansion sequence. */
+  do
+    {
+      c = brace_gobbler (text, tlen, &i, '{'); /* } */
+      c1 = c;
+      /* Verify that c begins a valid brace expansion word.  If it doesn't, we
+        go on.  Loop stops when there are no more open braces in the word. */
+      if (c)
+       {
+         start = j = i + 1;    /* { */
+         c = brace_gobbler (text, tlen, &j, '}');
+         if (c == 0)           /* it's not */
+           {
+             i++;
+             c = c1;
+             continue;
+           }
+         else                  /* it is */
+           {
+             c = c1;
+             break;
+           }
+       }
+      else
+       break;
+    }
+  while (c);
+#endif
+  
+
+  preamble = (char *)xmalloc (i + 1);
+  strncpy (preamble, text, i);
+  preamble[i] = '\0';
+
+  result = (char **)xmalloc (2 * sizeof (char *));
+  result[0] = preamble;
+  result[1] = (char *)NULL;
+
+  /* Special case.  If we never found an exciting character, then
+     the preamble is all of the text, so just return that. */
+  if (c != '{')
+    return (result);
+
+  /* Find the amble.  This is the stuff inside this set of braces. */
+  start = ++i;
+  c = brace_gobbler (text, tlen, &i, '}');
+
+  /* What if there isn't a matching close brace? */
+  if (c == 0)
+    {
+#if defined (NOTDEF)
+      /* Well, if we found an unquoted BRACE_ARG_SEPARATOR between START
+        and I, then this should be an error.  Otherwise, it isn't. */
+      j = start;
+      while (j < i)
+       {
+         if (text[j] == '\\')
+           {
+             j++;
+             ADVANCE_CHAR (text, tlen, j);
+             continue;
+           }
+
+         if (text[j] == brace_arg_separator)
+           {   /* { */
+             strvec_dispose (result);
+             report_error ("no closing `%c' in %s", '}', text);
+             throw_to_top_level ();
+           }
+         ADVANCE_CHAR (text, tlen, j);
+       }
+#endif
+      free (preamble);         /* Same as result[0]; see initialization. */
+      result[0] = savestring (text);
+      return (result);
+    }
+
+#if defined (SHELL)
+  amble = substring (text, start, i);
+  alen = i - start;
+#else
+  amble = (char *)xmalloc (1 + (i - start));
+  strncpy (amble, &text[start], (i - start));
+  alen = i - start;
+  amble[alen] = '\0';
+#endif
+
+#if defined (SHELL)
+  INITIALIZE_MBSTATE;
+
+  /* If the amble does not contain an unquoted BRACE_ARG_SEPARATOR, then
+     just return without doing any expansion.  */
+  j = 0;
+  while (amble[j])
+    {
+      if (amble[j] == '\\')
+       {
+         j++;
+         ADVANCE_CHAR (amble, alen, j);
+         continue;
+       }
+
+      if (amble[j] == brace_arg_separator)
+       break;
+
+      ADVANCE_CHAR (amble, alen, j);
+    }
+
+  if (amble[j] == 0)
+    {
+      tack = expand_seqterm (amble, alen);
+      if (tack)
+       goto add_tack;
+      else
+       {
+         free (amble);
+         free (preamble);
+         result[0] = savestring (text);
+         return (result);
+       }
+    }
+#endif /* SHELL */
+
+  tack = expand_amble (amble, alen, 0);
+add_tack:
+  result = array_concat (result, tack);
+  free (amble);
+  strvec_dispose (tack);
+
+  postamble = text + i + 1;
+
+  tack = brace_expand (postamble);
+  result = array_concat (result, tack);
+  strvec_dispose (tack);
+
+  return (result);
+}
+
+/* Expand the text found inside of braces.  We simply try to split the
+   text at BRACE_ARG_SEPARATORs into separate strings.  We then brace
+   expand each slot which needs it, until there are no more slots which
+   need it. */
+static char **
+expand_amble (text, tlen, flags)
+     char *text;
+     size_t tlen;
+     int flags;
+{
+  char **result, **partial;
+  char *tem;
+  int start, i, c;
+
+  DECLARE_MBSTATE;
+
+  result = (char **)NULL;
+
+  start = i = 0;
+  c = 1;
+  while (c)
+    {
+      c = brace_gobbler (text, tlen, &i, brace_arg_separator);
+#if defined (SHELL)
+      tem = substring (text, start, i);
+#else
+      tem = (char *)xmalloc (1 + (i - start));
+      strncpy (tem, &text[start], (i - start));
+      tem[i- start] = '\0';
+#endif
+
+      partial = brace_expand (tem);
+
+      if (!result)
+       result = partial;
+      else
+       {
+         register int lr, lp, j;
+
+         lr = strvec_len (result);
+         lp = strvec_len (partial);
+
+         result = strvec_resize (result, lp + lr + 1);
+
+         for (j = 0; j < lp; j++)
+           result[lr + j] = partial[j];
+
+         result[lr + j] = (char *)NULL;
+         free (partial);
+       }
+      free (tem);
+      ADVANCE_CHAR (text, tlen, i);
+      start = i;
+    }
+  return (result);
+}
+
+#define ST_BAD 0
+#define ST_INT 1
+#define ST_CHAR        2
+
+static char **
+mkseq (start, end, type)
+     int start, end, type;
+{
+  int n, incr, i;
+  char **result, *t;
+
+  n = abs (end - start) + 1;
+  result = strvec_create (n + 1);
+
+  incr = (start < end) ? 1 : -1;
+
+  /* Make sure we go through the loop at least once, so {3..3} prints `3' */
+  i = 0;
+  n = start;
+  do
+    {
+      if (type == ST_INT)
+       result[i++] = itos (n);
+      else
+       {
+         t = (char *)xmalloc (2);
+         t[0] = n;
+         t[1] = '\0';
+         result[i++] = t;
+       }
+      if (n == end)
+        break;
+      n += incr;
+    }
+  while (1);
+
+  result[i] = (char *)0;
+  return (result);
+}
+
+static char **
+expand_seqterm (text, tlen)
+     char *text;
+     size_t tlen;
+{
+  char *t, *lhs, *rhs;
+  int i, lhs_t, rhs_t, lhs_v, rhs_v;
+  intmax_t tl, tr;
+  char **result;
+
+  t = strstr (text, BRACE_SEQ_SPECIFIER);
+  if (t == 0)
+    return ((char **)NULL);
+
+  i = t - text;                /* index of start of BRACE_SEQ_SPECIFIER */
+  lhs = substring (text, 0, i);
+  rhs = substring (text, i + sizeof(BRACE_SEQ_SPECIFIER) - 1, tlen);
+
+  if (lhs[0] == 0 || rhs[0] == 0)
+    {
+      free (lhs);
+      free (rhs);
+      return ((char **)NULL);
+    }
+
+  /* Now figure out whether LHS and RHS are integers or letters.  Both
+     sides have to match. */
+  lhs_t = (legal_number (lhs, &tl)) ? ST_INT :
+               ((ISALPHA (lhs[0]) && lhs[1] == 0) ?  ST_CHAR : ST_BAD);
+  rhs_t = (legal_number (rhs, &tr)) ? ST_INT :
+               ((ISALPHA (rhs[0]) && rhs[1] == 0) ?  ST_CHAR : ST_BAD);
+
+  if (lhs_t != rhs_t || lhs_t == ST_BAD || rhs_t == ST_BAD)
+    {
+      free (lhs);
+      free (rhs);
+      return ((char **)NULL);
+    }
+
+  /* OK, we have something.  It's either a sequence of integers, ascending
+     or descending, or a sequence or letters, ditto.  Generate the sequence,
+     put it into a string vector, and return it. */
+  
+  if (lhs_t == ST_CHAR)
+    {
+      lhs_v = (unsigned char)lhs[0];
+      rhs_v = (unsigned char)rhs[0];
+    }
+  else
+    {
+      lhs_v = tl;              /* integer truncation */
+      rhs_v = tr;
+    }
+
+  result = mkseq (lhs_v, rhs_v, lhs_t);
+
+  free (lhs);
+  free (rhs);
+
+  return (result);
+}
+
+/* Start at INDEX, and skip characters in TEXT. Set INDEX to the
+   index of the character matching SATISFY.  This understands about
+   quoting.  Return the character that caused us to stop searching;
+   this is either the same as SATISFY, or 0. */
+/* If SATISFY is `}', we are looking for a brace expression, so we
+   should enforce the rules that govern valid brace expansions:
+       1) to count as an arg separator, a comma or `..' has to be outside
+          an inner set of braces.       
+*/
+static int
+brace_gobbler (text, tlen, indx, satisfy)
+     char *text;
+     size_t tlen;
+     int *indx;
+     int satisfy;
+{
+  register int i, c, quoted, level, commas, pass_next;
+#if defined (SHELL)
+  int si;
+  char *t;
+#endif
+  DECLARE_MBSTATE;
+
+  level = quoted = pass_next = 0;
+#if 1
+  commas = 1;
+#else
+  commas = (satisfy == '}') ? 0 : 1;
+#endif
+
+  i = *indx;
+  while (c = text[i])
+    {
+      if (pass_next)
+       {
+         pass_next = 0;
+         ADVANCE_CHAR (text, tlen, i);
+         continue;
+       }
+
+      /* A backslash escapes the next character.  This allows backslash to
+        escape the quote character in a double-quoted string. */
+      if (c == '\\' && (quoted == 0 || quoted == '"' || quoted == '`'))
+       {
+         pass_next = 1;
+         i++;
+         continue;
+       }
+
+#if defined (SHELL)
+      /* If compiling for the shell, treat ${...} like \{...} */
+      if (c == '$' && text[i+1] == '{' && quoted != '\'')              /* } */
+       {
+         pass_next = 1;
+         i++;
+         if (quoted == 0)
+           level++;
+         continue;
+       }
+#endif
+
+      if (quoted)
+       {
+         if (c == quoted)
+           quoted = 0;
+         ADVANCE_CHAR (text, tlen, i);
+         continue;
+       }
+
+      if (c == '"' || c == '\'' || c == '`')
+       {
+         quoted = c;
+         i++;
+         continue;
+       }
+
+#if defined (SHELL)
+      /* Pass new-style command substitutions through unchanged. */
+      if (c == '$' && text[i+1] == '(')                        /* ) */
+       {
+         si = i + 2;
+         t = extract_command_subst (text, &si);
+         i = si;
+         free (t);
+         i++;
+         continue;
+       }
+#endif
+
+      if (c == satisfy && level == 0 && quoted == 0 && commas > 0)
+       {
+         /* We ignore an open brace surrounded by whitespace, and also
+            an open brace followed immediately by a close brace preceded
+            by whitespace.  */
+         if (c == '{' &&
+             ((!i || brace_whitespace (text[i - 1])) &&
+              (brace_whitespace (text[i + 1]) || text[i + 1] == '}')))
+           {
+             i++;
+             continue;
+           }
+
+           break;
+       }
+
+      if (c == '{')
+       level++;
+      else if (c == '}' && level)
+       level--;
+#if 0
+      else if (satisfy == '}' && c == brace_arg_separator && level == 0)
+       commas++;
+      else if (satisfy == '}' && STREQN (text+i, BRACE_SEQ_SPECIFIER, 2) &&
+               text[i+2] != satisfy && level == 0)
+       commas++;
+#endif
+
+      ADVANCE_CHAR (text, tlen, i);
+    }
+
+  *indx = i;
+  return (c);
+}
+
+/* Return a new array of strings which is the result of appending each
+   string in ARR2 to each string in ARR1.  The resultant array is
+   len (arr1) * len (arr2) long.  For convenience, ARR1 (and its contents)
+   are free ()'ed.  ARR1 can be NULL, in that case, a new version of ARR2
+   is returned. */
+static char **
+array_concat (arr1, arr2)
+     char **arr1, **arr2;
+{
+  register int i, j, len, len1, len2;
+  register char **result;
+
+  if (arr1 == 0)
+    return (strvec_copy (arr2));
+
+  if (arr2 == 0)
+    return (strvec_copy (arr1));
+
+  len1 = strvec_len (arr1);
+  len2 = strvec_len (arr2);
+
+  result = (char **)xmalloc ((1 + (len1 * len2)) * sizeof (char *));
+
+  len = 0;
+  for (i = 0; i < len1; i++)
+    {
+      int strlen_1 = strlen (arr1[i]);
+
+      for (j = 0; j < len2; j++)
+       {
+         result[len] = (char *)xmalloc (1 + strlen_1 + strlen (arr2[j]));
+         strcpy (result[len], arr1[i]);
+         strcpy (result[len] + strlen_1, arr2[j]);
+         len++;
+       }
+      free (arr1[i]);
+    }
+  free (arr1);
+
+  result[len] = (char *)NULL;
+  return (result);
+}
+
+#if defined (TEST)
+#include <stdio.h>
+
+fatal_error (format, arg1, arg2)
+     char *format, *arg1, *arg2;
+{
+  report_error (format, arg1, arg2);
+  exit (1);
+}
+
+report_error (format, arg1, arg2)
+     char *format, *arg1, *arg2;
+{
+  fprintf (stderr, format, arg1, arg2);
+  fprintf (stderr, "\n");
+}
+
+main ()
+{
+  char example[256];
+
+  for (;;)
+    {
+      char **result;
+      int i;
+
+      fprintf (stderr, "brace_expand> ");
+
+      if ((!fgets (example, 256, stdin)) ||
+         (strncmp (example, "quit", 4) == 0))
+       break;
+
+      if (strlen (example))
+       example[strlen (example) - 1] = '\0';
+
+      result = brace_expand (example);
+
+      for (i = 0; result[i]; i++)
+       printf ("%s\n", result[i]);
+
+      free_array (result);
+    }
+}
+\f
+/*
+ * Local variables:
+ * compile-command: "gcc -g -Bstatic -DTEST -o brace_expand braces.c general.o"
+ * end:
+ */
+
+#endif /* TEST */
+#endif /* BRACE_EXPANSION */
index d94118f5b739085aec2f02df32df6eea89e248d1..4d94face666ef5147f9b940c361a72154cec82b6 100644 (file)
@@ -76,6 +76,7 @@ $END
 #include "bashgetopt.h"
 
 extern int array_needs_making;
+extern int posixly_correct;
 
 static int declare_internal __P((register WORD_LIST *, int));
 
@@ -256,8 +257,12 @@ declare_internal (list, local_var)
       else
        making_array_special = 0;
 #endif
-       
-      if (legal_identifier (name) == 0)
+
+      /* If we're in posix mode or not looking for a shell function (since
+        shell function names don't have to be valid identifiers when the
+        shell's not in posix mode), check whether or not the argument is a
+        valid, well-formed shell identifier. */
+      if ((posixly_correct || (flags_on & att_function) == 0) && legal_identifier (name) == 0)
        {
          sh_invalidid (name);
          assign_error++;
diff --git a/builtins/declare.def~ b/builtins/declare.def~
new file mode 100644 (file)
index 0000000..0db7cc4
--- /dev/null
@@ -0,0 +1,475 @@
+This file is declare.def, from which is created declare.c.
+It implements the builtins "declare" and "local" in Bash.
+
+Copyright (C) 1987-2004 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 2, 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; see the file COPYING.  If not, write to the Free Software
+Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+$PRODUCES declare.c
+
+$BUILTIN declare
+$FUNCTION declare_builtin
+$SHORT_DOC declare [-afFirtx] [-p] [name[=value] ...]
+Declare variables and/or give them attributes.  If no NAMEs are
+given, then display the values of variables instead.  The -p option
+will display the attributes and values of each NAME.
+
+The flags are:
+
+  -a   to make NAMEs arrays (if supported)
+  -f   to select from among function names only
+  -F   to display function names (and line number and source file name if
+       debugging) without definitions 
+  -i   to make NAMEs have the `integer' attribute
+  -r   to make NAMEs readonly
+  -t   to make NAMEs have the `trace' attribute
+  -x   to make NAMEs export
+
+Variables with the integer attribute have arithmetic evaluation (see
+`let') done when the variable is assigned to.
+
+When displaying values of variables, -f displays a function's name
+and definition.  The -F option restricts the display to function
+name only.
+
+Using `+' instead of `-' turns off the given attribute instead.  When
+used in a function, makes NAMEs local, as with the `local' command.
+$END
+
+$BUILTIN typeset
+$FUNCTION declare_builtin
+$SHORT_DOC typeset [-afFirtx] [-p] name[=value] ...
+Obsolete.  See `declare'.
+$END
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include <stdio.h>
+
+#include "../bashansi.h"
+#include "../bashintl.h"
+
+#include "../shell.h"
+#include "common.h"
+#include "builtext.h"
+#include "bashgetopt.h"
+
+extern int array_needs_making;
+extern int posixly_correct;
+
+static int declare_internal __P((register WORD_LIST *, int));
+
+/* Declare or change variable attributes. */
+int
+declare_builtin (list)
+     register WORD_LIST *list;
+{
+  return (declare_internal (list, 0));
+}
+
+$BUILTIN local
+$FUNCTION local_builtin
+$SHORT_DOC local name[=value] ...
+Create a local variable called NAME, and give it VALUE.  LOCAL
+can only be used within a function; it makes the variable NAME
+have a visible scope restricted to that function and its children.
+$END
+int
+local_builtin (list)
+     register WORD_LIST *list;
+{
+  if (variable_context)
+    return (declare_internal (list, 1));
+  else
+    {
+      builtin_error (_("can only be used in a function"));
+      return (EXECUTION_FAILURE);
+    }
+}
+
+#if defined (ARRAY_VARS)
+#  define DECLARE_OPTS "+afiprtxF"
+#else
+#  define DECLARE_OPTS "+fiprtxF"
+#endif
+
+/* The workhorse function. */
+static int
+declare_internal (list, local_var)
+     register WORD_LIST *list;
+     int local_var;
+{
+  int flags_on, flags_off, *flags, any_failed, assign_error, pflag, nodefs, opt;
+  char *t, *subscript_start;
+  SHELL_VAR *var;
+  FUNCTION_DEF *shell_fn;
+
+  flags_on = flags_off = any_failed = assign_error = pflag = nodefs = 0;
+  reset_internal_getopt ();
+  while ((opt = internal_getopt (list, DECLARE_OPTS)) != EOF)
+    {
+      flags = list_opttype == '+' ? &flags_off : &flags_on;
+
+      switch (opt)
+       {
+       case 'a':
+#if defined (ARRAY_VARS)
+         *flags |= att_array;
+#endif
+         break;
+       case 'p':
+         if (local_var == 0)
+           pflag++;
+         break;
+        case 'F':
+         nodefs++;
+         *flags |= att_function;
+         break;
+       case 'f':
+         *flags |= att_function;
+         break;
+       case 'i':
+         *flags |= att_integer;
+         break;
+       case 'r':
+         *flags |= att_readonly;
+         break;
+       case 't':
+         *flags |= att_trace;
+         break;
+       case 'x':
+         *flags |= att_exported;
+         array_needs_making = 1;
+         break;
+       default:
+         builtin_usage ();
+         return (EX_USAGE);
+       }
+    }
+
+  list = loptend;
+
+  /* If there are no more arguments left, then we just want to show
+     some variables. */
+  if (list == 0)       /* declare -[afFirtx] */
+    {
+      /* Show local variables defined at this context level if this is
+        the `local' builtin. */
+      if (local_var)
+       {
+         register SHELL_VAR **vlist;
+         register int i;
+
+         vlist = all_local_variables ();
+
+         if (vlist)
+           {
+             for (i = 0; vlist[i]; i++)
+               print_assignment (vlist[i]);
+
+             free (vlist);
+           }
+       }
+      else
+       {
+         if (flags_on == 0)
+           set_builtin ((WORD_LIST *)NULL);
+         else
+           set_or_show_attributes ((WORD_LIST *)NULL, flags_on, nodefs);
+       }
+
+      fflush (stdout);
+      return (EXECUTION_SUCCESS);
+    }
+
+  if (pflag)   /* declare -p [-afFirtx] name [name...] */
+    {
+      for (any_failed = 0; list; list = list->next)
+       {
+         pflag = show_name_attributes (list->word->word, nodefs);
+         if (pflag)
+           {
+             sh_notfound (list->word->word);
+             any_failed++;
+           }
+       }
+      return (any_failed ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
+    }
+
+#define NEXT_VARIABLE() free (name); list = list->next; continue
+
+  /* There are arguments left, so we are making variables. */
+  while (list)         /* declare [-afFirx] name [name ...] */
+    {
+      char *value, *name;
+      int offset, aflags;
+#if defined (ARRAY_VARS)
+      int making_array_special, compound_array_assign, simple_array_assign;
+#endif
+
+      name = savestring (list->word->word);
+      offset = assignment (name, 0);
+      aflags = 0;
+
+      if (offset)      /* declare [-afFirx] name=value */
+       {
+         name[offset] = '\0';
+         value = name + offset + 1;
+         if (name[offset - 1] == '+')
+           {
+             aflags |= ASS_APPEND;
+             name[offset - 1] = '\0';
+           }
+       }
+      else
+       value = "";
+
+#if defined (ARRAY_VARS)
+      compound_array_assign = simple_array_assign = 0;
+      subscript_start = (char *)NULL;
+      if (t = strchr (name, '['))      /* ] */
+       {
+         subscript_start = t;
+         *t = '\0';
+         making_array_special = 1;
+       }
+      else
+       making_array_special = 0;
+#endif
+
+      /* If we're in posix mode or not looking for a shell function (since
+        shell function names don't have to be valid identifiers when the
+        shell's not in posix mode), check whether or not the argument is a
+        valid, well-formed shell identifier. */
+      if ((posixly_correct || (flags & att_function) == 0) && legal_identifier (name) == 0)
+       {
+         sh_invalidid (name);
+         assign_error++;
+         NEXT_VARIABLE ();
+       }
+
+      /* If VARIABLE_CONTEXT has a non-zero value, then we are executing
+        inside of a function.  This means we should make local variables,
+        not global ones. */
+
+      /* XXX - this has consequences when we're making a local copy of a
+              variable that was in the temporary environment.  Watch out
+              for this. */
+      if (variable_context && ((flags_on & att_function) == 0))
+       {
+#if defined (ARRAY_VARS)
+         if ((flags_on & att_array) || making_array_special)
+           var = make_local_array_variable (name);
+         else
+#endif
+         var = make_local_variable (name);
+         if (var == 0)
+           {
+             any_failed++;
+             NEXT_VARIABLE ();
+           }
+       }
+      else
+       var = (SHELL_VAR *)NULL;
+
+      /* If we are declaring a function, then complain about it in some way.
+        We don't let people make functions by saying `typeset -f foo=bar'. */
+
+      /* There should be a way, however, to let people look at a particular
+        function definition by saying `typeset -f foo'. */
+
+      if (flags_on & att_function)
+       {
+         if (offset)   /* declare -f [-rix] foo=bar */
+           {
+             builtin_error (_("cannot use `-f' to make functions"));
+             free (name);
+             return (EXECUTION_FAILURE);
+           }
+         else          /* declare -f [-rx] name [name...] */
+           {
+             var = find_function (name);
+
+             if (var)
+               {
+                 if (readonly_p (var) && (flags_off & att_readonly))
+                   {
+                     builtin_error (_("%s: readonly function"), name);
+                     any_failed++;
+                     NEXT_VARIABLE ();
+                   }
+
+                 /* declare -[Ff] name [name...] */
+                 if (flags_on == att_function && flags_off == 0)
+                   {
+#if defined (DEBUGGER)
+                     if (nodefs && debugging_mode)
+                       {
+                         shell_fn = find_function_def (var->name);
+                         if (shell_fn)
+                           printf ("%s %d %s\n", var->name, shell_fn->line, shell_fn->source_file);
+                         else
+                           printf ("%s\n", var->name);
+                       }
+                     else
+#endif /* DEBUGGER */
+                       {       
+                         t = nodefs ? var->name
+                                    : named_function_string (name, function_cell (var), 1);
+                         printf ("%s\n", t);
+                       }
+                   }
+                 else          /* declare -[fF] -[rx] name [name...] */
+                   {
+                     VSETATTR (var, flags_on);
+                     VUNSETATTR (var, flags_off);
+                   }
+               }
+             else
+               any_failed++;
+             NEXT_VARIABLE ();
+           }
+       }
+      else             /* declare -[airx] name [name...] */
+       {
+         /* Non-null if we just created or fetched a local variable. */
+         if (var == 0)
+           var = find_variable (name);
+
+         if (var == 0)
+           {
+#if defined (ARRAY_VARS)
+             if ((flags_on & att_array) || making_array_special)
+               var = make_new_array_variable (name);
+             else
+#endif
+             var = bind_variable (name, "", 0);
+           }
+
+         /* Cannot use declare +r to turn off readonly attribute. */ 
+         if (readonly_p (var) && (flags_off & att_readonly))
+           {
+             sh_readonly (name);
+             any_failed++;
+             NEXT_VARIABLE ();
+           }
+
+         /* Cannot use declare to assign value to readonly or noassign
+            variable. */
+         if ((readonly_p (var) || noassign_p (var)) && offset)
+           {
+             if (readonly_p (var))
+               sh_readonly (name);
+             assign_error++;
+             NEXT_VARIABLE ();
+           }
+
+#if defined (ARRAY_VARS)
+         if ((making_array_special || (flags_on & att_array) || array_p (var)) && offset)
+           {
+             int vlen;
+             vlen = STRLEN (value);
+#if 0
+             if (value[0] == '(' && strchr (value, ')'))
+#else
+             if (value[0] == '(' && value[vlen-1] == ')')
+#endif
+               compound_array_assign = 1;
+             else
+               simple_array_assign = 1;
+           }
+
+         /* Cannot use declare +a name to remove an array variable. */
+         if ((flags_off & att_array) && array_p (var))
+           {
+             builtin_error (_("%s: cannot destroy array variables in this way"), name);
+             any_failed++;
+             NEXT_VARIABLE ();
+           }
+
+         /* declare -a name makes name an array variable. */
+         if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0)
+           var = convert_var_to_array (var);
+#endif /* ARRAY_VARS */
+
+         VSETATTR (var, flags_on);
+         VUNSETATTR (var, flags_off);
+
+#if defined (ARRAY_VARS)
+         if (offset && compound_array_assign)
+           assign_array_var_from_string (var, value, aflags);
+         else if (simple_array_assign && subscript_start)
+           {
+             /* declare [-a] name[N]=value */
+             *subscript_start = '[';   /* ] */
+             var = assign_array_element (name, value, 0);      /* XXX - not aflags */
+             *subscript_start = '\0';
+           }
+         else if (simple_array_assign)
+           /* let bind_array_variable take care of this. */
+           bind_array_variable (name, 0, value, aflags);
+         else
+#endif
+         /* bind_variable_value duplicates the essential internals of
+            bind_variable() */
+         if (offset)
+           bind_variable_value (var, value, aflags);
+
+         /* If we found this variable in the temporary environment, as with
+            `var=value declare -x var', make sure it is treated identically
+            to `var=value export var'.  Do the same for `declare -r' and
+            `readonly'.  Preserve the attributes, except for att_tempvar. */
+         /* XXX -- should this create a variable in the global scope, or
+            modify the local variable flags?  ksh93 has it modify the
+            global scope.
+            Need to handle case like in set_var_attribute where a temporary
+            variable is in the same table as the function local vars. */
+         if ((flags_on & (att_exported|att_readonly)) && tempvar_p (var))
+           {
+             SHELL_VAR *tv;
+             char *tvalue;
+
+             tv = find_tempenv_variable (var->name);
+             if (tv)
+               {
+                 tvalue = var_isset (var) ? savestring (value_cell (var)) : savestring ("");
+                 tv = bind_variable (var->name, tvalue, 0);
+                 tv->attributes |= var->attributes & ~att_tempvar;
+                 if (tv->context > 0)
+                   VSETATTR (tv, att_propagate);
+                 free (tvalue);
+               }
+             VSETATTR (var, att_propagate);
+           }
+       }
+
+      stupidly_hack_special_variables (name);
+
+      NEXT_VARIABLE ();
+    }
+
+  return (assign_error ? EX_BADASSIGN
+                      : ((any_failed == 0) ? EXECUTION_SUCCESS
+                                           : EXECUTION_FAILURE));
+}
index 646ab61ee4dbdc92d86e650f1eebe093a4fe80ae..e844906c1f026991a568e0f22c73abf3e9406309 100644 (file)
@@ -87,8 +87,6 @@ $END
 extern int errno;
 #endif
 
-extern int interrupt_immediately;
-
 #if defined (READLINE)
 static void reset_attempted_completion_function __P((char *));
 static char *edit_line __P((char *));
@@ -378,6 +376,7 @@ read_builtin (list)
      of the unwind-protect stack after the realloc() works right. */
   add_unwind_protect (xfree, input_string);
   interrupt_immediately++;
+  terminate_immediately = 1;
 
   unbuffered_read = (nchars > 0) || (delim != '\n') || input_is_pipe;
 
@@ -505,6 +504,7 @@ add_char:
     zsyncfd (fd);
 
   interrupt_immediately--;
+  terminate_immediately = 0;
   discard_unwind_frame ("read_builtin");
 
   retval = eof ? EXECUTION_FAILURE : EXECUTION_SUCCESS;
index 669bea7a49756a82d93087e4e56c9c91e14e9d11..426833a156aec3914a84599bc2778d537838606a 100644 (file)
@@ -1,7 +1,7 @@
 This file is trap.def, from which is created trap.c.
 It implements the builtin "trap" in Bash.
 
-Copyright (C) 1987-2005 Free Software Foundation, Inc.
+Copyright (C) 1987-2006 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -124,7 +124,10 @@ trap_builtin (list)
       first_arg = list->word->word;
       first_signal = first_arg && *first_arg && all_digits (first_arg) && signal_object_p (first_arg, opt);
 
-      /* Backwards compatibility */
+      /* Backwards compatibility.  XXX - question about whether or not we
+        should throw an error if an all-digit argument doesn't correspond
+        to a valid signal number (e.g., if it's `50' on a system with only
+        32 signals).  */
       if (first_signal)
        operation = REVERT;
       /* When in posix mode, the historical behavior of looking for a
@@ -176,7 +179,7 @@ trap_builtin (list)
                        if (interactive)
                          set_signal_handler (SIGINT, sigint_sighandler);
                        else
-                         set_signal_handler (SIGINT, termination_unwind_protect);
+                         set_signal_handler (SIGINT, termsig_sighandler);
                        break;
 
                      case SIGQUIT:
diff --git a/builtins/trap.def~ b/builtins/trap.def~
new file mode 100644 (file)
index 0000000..a9d1be3
--- /dev/null
@@ -0,0 +1,265 @@
+This file is trap.def, from which is created trap.c.
+It implements the builtin "trap" in Bash.
+
+Copyright (C) 1987-2006 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 2, 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; see the file COPYING.  If not, write to the Free Software
+Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+$PRODUCES trap.c
+
+$BUILTIN trap
+$FUNCTION trap_builtin
+$SHORT_DOC trap [-lp] [arg signal_spec ...]
+The command ARG is to be read and executed when the shell receives
+signal(s) SIGNAL_SPEC.  If ARG is absent (and a single SIGNAL_SPEC
+is supplied) or `-', each specified signal is reset to its original
+value.  If ARG is the null string each SIGNAL_SPEC is ignored by the
+shell and by the commands it invokes.  If a SIGNAL_SPEC is EXIT (0)
+the command ARG is executed on exit from the shell.  If a SIGNAL_SPEC
+is DEBUG, ARG is executed after every simple command.  If the`-p' option
+is supplied then the trap commands associated with each SIGNAL_SPEC are
+displayed.  If no arguments are supplied or if only `-p' is given, trap
+prints the list of commands associated with each signal.  Each SIGNAL_SPEC
+is either a signal name in <signal.h> or a signal number.  Signal names
+are case insensitive and the SIG prefix is optional.  `trap -l' prints
+a list of signal names and their corresponding numbers.  Note that a
+signal can be sent to the shell with "kill -signal $$".
+$END
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include "../bashtypes.h"
+#include <signal.h>
+#include <stdio.h>
+#include "../bashansi.h"
+
+#include "../shell.h"
+#include "../trap.h"
+#include "common.h"
+#include "bashgetopt.h"
+
+static void showtrap __P((int));
+static int display_traps __P((WORD_LIST *));
+
+/* The trap command:
+
+   trap <arg> <signal ...>
+   trap <signal ...>
+   trap -l
+   trap -p [sigspec ...]
+   trap [--]
+
+   Set things up so that ARG is executed when SIGNAL(s) N is recieved.
+   If ARG is the empty string, then ignore the SIGNAL(s).  If there is
+   no ARG, then set the trap for SIGNAL(s) to its original value.  Just
+   plain "trap" means to print out the list of commands associated with
+   each signal number.  Single arg of "-l" means list the signal names. */
+
+/* Possible operations to perform on the list of signals.*/
+#define SET 0                  /* Set this signal to first_arg. */
+#define REVERT 1               /* Revert to this signals original value. */
+#define IGNORE 2               /* Ignore this signal. */
+
+extern int posixly_correct;
+
+int
+trap_builtin (list)
+     WORD_LIST *list;
+{
+  int list_signal_names, display, result, opt, first_signal;
+
+  list_signal_names = display = 0;
+  result = EXECUTION_SUCCESS;
+  reset_internal_getopt ();
+  while ((opt = internal_getopt (list, "lp")) != -1)
+    {
+      switch (opt)
+       {
+       case 'l':
+         list_signal_names++;
+         break;
+       case 'p':
+         display++;
+         break;
+       default:
+         builtin_usage ();
+         return (EX_USAGE);
+       }
+    }
+  list = loptend;
+
+  opt = DSIG_NOCASE|DSIG_SIGPREFIX;    /* flags for decode_signal */
+
+  if (list_signal_names)
+    return (display_signal_list ((WORD_LIST *)NULL, 1));
+  else if (display || list == 0)
+    return (display_traps (list));
+  else
+    {
+      char *first_arg;
+      int operation, sig, first_signal;
+
+      operation = SET;
+      first_arg = list->word->word;
+      first_signal = first_arg && *first_arg && all_digits (first_arg) && signal_object_p (first_arg, opt);
+
+      /* Backwards compatibility */
+      if (first_signal)
+       operation = REVERT;
+      /* When in posix mode, the historical behavior of looking for a
+        missing first argument is disabled.  To revert to the original
+        signal handling disposition, use `-' as the first argument. */
+      else if (posixly_correct == 0 && first_arg && *first_arg &&
+               (*first_arg != '-' || first_arg[1]) &&
+               signal_object_p (first_arg, opt) && list->next == 0)
+       operation = REVERT;
+      else
+       {
+         list = list->next;
+         if (list == 0)
+           {
+             builtin_usage ();
+             return (EX_USAGE);
+           }
+         else if (*first_arg == '\0')
+           operation = IGNORE;
+         else if (first_arg[0] == '-' && !first_arg[1])
+           operation = REVERT;
+       }
+
+      while (list)
+       {
+         sig = decode_signal (list->word->word, opt);
+
+         if (sig == NO_SIG)
+           {
+             sh_invalidsig (list->word->word);
+             result = EXECUTION_FAILURE;
+           }
+         else
+           {
+             switch (operation)
+               {
+                 case SET:
+                   set_signal (sig, first_arg);
+                   break;
+
+                 case REVERT:
+                   restore_default_signal (sig);
+
+                   /* Signals that the shell treats specially need special
+                      handling. */
+                   switch (sig)
+                     {
+                     case SIGINT:
+                       if (interactive)
+                         set_signal_handler (SIGINT, sigint_sighandler);
+                       else
+                         set_signal_handler (SIGINT, termsig_sighandler);
+                       break;
+
+                     case SIGQUIT:
+                       /* Always ignore SIGQUIT. */
+                       set_signal_handler (SIGQUIT, SIG_IGN);
+                       break;
+                     case SIGTERM:
+#if defined (JOB_CONTROL)
+                     case SIGTTIN:
+                     case SIGTTOU:
+                     case SIGTSTP:
+#endif /* JOB_CONTROL */
+                       if (interactive)
+                         set_signal_handler (sig, SIG_IGN);
+                       break;
+                     }
+                   break;
+
+                 case IGNORE:
+                   ignore_signal (sig);
+                   break;
+               }
+           }
+         list = list->next;
+       }
+    }
+
+  return (result);
+}
+
+static void
+showtrap (i)
+     int i;
+{
+  char *t, *p, *sn;
+
+  p = trap_list[i];
+  if (p == (char *)DEFAULT_SIG)
+    return;
+
+  t = (p == (char *)IGNORE_SIG) ? (char *)NULL : sh_single_quote (p);
+  sn = signal_name (i);
+  /* Make sure that signals whose names are unknown (for whatever reason)
+     are printed as signal numbers. */
+  if (STREQN (sn, "SIGJUNK", 7) || STREQN (sn, "unknown", 7))
+    printf ("trap -- %s %d\n", t ? t : "''", i);
+  else if (posixly_correct)
+    {
+      if (STREQN (sn, "SIG", 3))
+       printf ("trap -- %s %s\n", t ? t : "''", sn+3);
+      else
+       printf ("trap -- %s %s\n", t ? t : "''", sn);
+    }
+  else
+    printf ("trap -- %s %s\n", t ? t : "''", sn);
+
+  FREE (t);
+}
+
+static int
+display_traps (list)
+     WORD_LIST *list;
+{
+  int result, i;
+
+  if (list == 0)
+    {
+      for (i = 0; i < BASH_NSIG; i++)
+       showtrap (i);
+      return (EXECUTION_SUCCESS);
+    }
+
+  for (result = EXECUTION_SUCCESS; list; list = list->next)
+    {
+      i = decode_signal (list->word->word, DSIG_NOCASE|DSIG_SIGPREFIX);
+      if (i == NO_SIG)
+       {
+         sh_invalidsig (list->word->word);
+         result = EXECUTION_FAILURE;
+       }
+      else
+       showtrap (i);
+    }
+
+  return (result);
+}
index 104bda7a2fc444b59d692ca01834f9ea6afc33ec..4ce6d8c5a75142f9ce7d6b2b9e80834342b8b194 100644 (file)
 /* Define if you have the dup2 function.  */
 #undef HAVE_DUP2
 
+/* Define if you have the eaccess function.  */
+#undef HAVE_EACCESS
+
 /* Define if you have the fcntl function.  */
 #undef HAVE_FCNTL
 
 /* Define if you have the setostype function.  */
 #undef HAVE_SETOSTYPE
 
+/* Define if you have the setregid function.  */
+#undef HAVE_SETREGID
+#undef HAVE_DECL_SETREGID
+
 /* Define if you have the setvbuf function.  */
 #undef HAVE_SETVBUF
 
diff --git a/config.h.in~ b/config.h.in~
new file mode 100644 (file)
index 0000000..7031bde
--- /dev/null
@@ -0,0 +1,1013 @@
+/* config.h -- Configuration file for bash. */
+
+/* Copyright (C) 1987-2004 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 2, 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; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#ifndef _CONFIG_H_
+#define _CONFIG_H_
+
+/* Configuration feature settings controllable by autoconf. */
+
+/* Define JOB_CONTROL if your operating system supports
+   BSD-like job control. */
+#undef JOB_CONTROL
+
+/* Define ALIAS if you want the alias features. */
+#undef ALIAS
+
+/* Define PUSHD_AND_POPD if you want those commands to be compiled in.
+   (Also the `dirs' commands.) */
+#undef PUSHD_AND_POPD
+
+/* Define BRACE_EXPANSION if you want curly brace expansion a la Csh:
+   foo{a,b} -> fooa foob.  Even if this is compiled in (the default) you
+   can turn it off at shell startup with `-nobraceexpansion', or during
+   shell execution with `set +o braceexpand'. */
+#undef BRACE_EXPANSION
+
+/* Define READLINE to get the nifty/glitzy editing features.
+   This is on by default.  You can turn it off interactively
+   with the -nolineediting flag. */
+#undef READLINE
+
+/* Define BANG_HISTORY if you want to have Csh style "!" history expansion.
+   This is unrelated to READLINE. */
+#undef BANG_HISTORY
+
+/* Define HISTORY if you want to have access to previously typed commands.
+
+   If both HISTORY and READLINE are defined, you can get at the commands
+   with line editing commands, and you can directly manipulate the history
+   from the command line.
+
+   If only HISTORY is defined, the `fc' and `history' builtins are
+   available. */
+#undef HISTORY
+
+/* Define this if you want completion that puts all alternatives into
+   a brace expansion shell expression. */
+#if defined (BRACE_EXPANSION) && defined (READLINE)
+#  define BRACE_COMPLETION
+#endif /* BRACE_EXPANSION */
+
+/* Define DEFAULT_ECHO_TO_XPG if you want the echo builtin to interpret
+   the backslash-escape characters by default, like the XPG Single Unix
+   Specification V2 for echo.
+   This requires that V9_ECHO be defined. */
+#undef DEFAULT_ECHO_TO_XPG
+
+/* Define HELP_BUILTIN if you want the `help' shell builtin and the long
+   documentation strings compiled into the shell. */
+#undef HELP_BUILTIN
+
+/* Define RESTRICTED_SHELL if you want the generated shell to have the
+   ability to be a restricted one.  The shell thus generated can become
+   restricted by being run with the name "rbash", or by setting the -r
+   flag. */
+#undef RESTRICTED_SHELL
+
+/* Define DISABLED_BUILTINS if you want "builtin foo" to always run the
+   shell builtin "foo", even if it has been disabled with "enable -n foo". */
+#undef DISABLED_BUILTINS
+
+/* Define PROCESS_SUBSTITUTION if you want the K*rn shell-like process
+   substitution features "<(file)". */
+/* Right now, you cannot do this on machines without fully operational
+   FIFO support.  This currently include NeXT and Alliant. */
+#undef PROCESS_SUBSTITUTION
+
+/* Define PROMPT_STRING_DECODE if you want the backslash-escaped special
+   characters in PS1 and PS2 expanded.  Variable expansion will still be
+   performed. */
+#undef PROMPT_STRING_DECODE
+
+/* Define SELECT_COMMAND if you want the Korn-shell style `select' command:
+       select word in word_list; do command_list; done */
+#undef SELECT_COMMAND
+
+/* Define COMMAND_TIMING of you want the ksh-style `time' reserved word and
+   the ability to time pipelines, functions, and builtins. */
+#undef COMMAND_TIMING
+
+/* Define ARRAY_VARS if you want ksh-style one-dimensional array variables. */
+#undef ARRAY_VARS
+
+/* Define DPAREN_ARITHMETIC if you want the ksh-style ((...)) arithmetic
+   evaluation command. */
+#undef DPAREN_ARITHMETIC
+
+/* Define EXTENDED_GLOB if you want the ksh-style [*+@?!](patlist) extended
+   pattern matching. */
+#undef EXTENDED_GLOB
+
+/* Define COND_COMMAND if you want the ksh-style [[...]] conditional
+   command. */
+#undef COND_COMMAND
+
+/* Define COND_REGEXP if you want extended regular expression matching and the
+   =~ binary operator in the [[...]] conditional command. */
+#define COND_REGEXP
+
+/* Define ARITH_FOR_COMMAND if you want the ksh93-style
+       for (( init; test; step )) do list; done
+   arithmetic for command. */
+#undef ARITH_FOR_COMMAND
+
+/* Define NETWORK_REDIRECTIONS if you want /dev/(tcp|udp)/host/port to open
+   socket connections when used in redirections */
+#undef NETWORK_REDIRECTIONS
+
+/* Define PROGRAMMABLE_COMPLETION for the programmable completion features
+   and the complete builtin. */
+#undef PROGRAMMABLE_COMPLETION
+
+/* Define NO_MULTIBYTE_SUPPORT to not compile in support for multibyte
+   characters, even if the OS supports them. */
+#undef NO_MULTIBYTE_SUPPORT
+
+/* Define DEBUGGER if you want to compile in some features used only by the 
+   bash debugger. */
+#undef DEBUGGER
+
+/* Define STRICT_POSIX if you want bash to be strictly posix.2 conformant by
+   default (except for echo; that is controlled separately). */
+#undef STRICT_POSIX
+
+/* Define MEMSCRAMBLE if you want the bash malloc and free to scramble
+   memory contents on malloc() and free(). */
+#undef MEMSCRAMBLE
+
+/* Define AFS if you are using Transarc's AFS. */
+#undef AFS
+
+#undef ENABLE_NLS
+
+/* End of configuration settings controllable by autoconf. */
+/* Other settable options appear in config-top.h. */
+
+#include "config-top.h"
+
+/* Beginning of autoconf additions. */
+
+/* Characteristics of the C compiler */
+#undef const
+
+#undef inline
+
+/* Define if cpp supports the ANSI-C stringizing `#' operator */
+#undef HAVE_STRINGIZE
+
+/* Define if the compiler supports `long double' variables. */
+#undef HAVE_LONG_DOUBLE
+
+#undef PROTOTYPES
+
+#undef __CHAR_UNSIGNED__
+
+/* Define if the compiler supports `long long' variables. */
+#undef HAVE_LONG_LONG
+
+#undef HAVE_UNSIGNED_LONG_LONG
+
+/* The number of bytes in a int.  */
+#undef SIZEOF_INT
+
+/* The number of bytes in a long.  */
+#undef SIZEOF_LONG
+
+/* The number of bytes in a pointer to char.  */
+#undef SIZEOF_CHAR_P
+
+/* The number of bytes in a double (hopefully 8). */
+#undef SIZEOF_DOUBLE
+
+/* The number of bytes in a `long long', if we have one. */
+#undef SIZEOF_LONG_LONG
+
+/* System paths */
+
+#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail"
+
+/* Characteristics of the system's header files and libraries that affect
+   the compilation environment. */
+
+/* Define if the system does not provide POSIX.1 features except
+   with this defined.  */
+#undef _POSIX_1_SOURCE
+
+/* Define if you need to in order for stat and other things to work.  */
+#undef _POSIX_SOURCE
+
+/* Define to use GNU libc extensions */
+#undef _GNU_SOURCE
+
+/* Define if you have the ANSI C header files.  */
+#undef STDC_HEADERS
+
+/* Memory management functions. */
+
+/* Define if using the bash version of malloc in lib/malloc/malloc.c */
+#undef USING_BASH_MALLOC
+
+#undef DISABLE_MALLOC_WRAPPERS
+
+/* Define if using alloca.c.  */
+#undef C_ALLOCA
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+   This function is required for alloca.c support on those systems.  */
+#undef CRAY_STACKSEG_END
+
+/* Define if you have alloca, as a function or macro.  */
+#undef HAVE_ALLOCA
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
+#undef HAVE_ALLOCA_H
+
+
+/* SYSTEM TYPES */
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef off_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef mode_t
+
+/* Define to `int' if <signal.h> doesn't define. */
+#undef sigset_t
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef pid_t
+
+/* Define to `short' if <sys/types.h> doesn't define.  */
+#undef bits16_t
+
+/* Define to `unsigned short' if <sys/types.h> doesn't define.  */
+#undef u_bits16_t
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef bits32_t
+
+/* Define to `unsigned int' if <sys/types.h> doesn't define.  */
+#undef u_bits32_t
+
+/* Define to `double' if <sys/types.h> doesn't define. */
+#undef bits64_t
+
+/* Define to `unsigned int' if <sys/types.h> doesn't define. */
+#undef u_int
+
+/* Define to `unsigned long' if <sys/types.h> doesn't define.  */
+#undef u_long
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef ptrdiff_t
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+#undef size_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef ssize_t
+
+/* Define to `long' if <stdint.h> doesn't define. */
+#undef intmax_t
+
+/* Define to `unsigned long' if <stdint.h> doesn't define. */
+#undef uintmax_t
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef uid_t
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef clock_t
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef time_t
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+#undef gid_t
+
+/* Define to `unsigned int' if <sys/socket.h> doesn't define. */
+#undef socklen_t
+
+/* Define if you have quad_t in <sys/types.h>. */
+#undef HAVE_QUAD_T
+
+#undef RLIMTYPE
+
+/* Define to the type of elements in the array set by `getgroups'.
+   Usually this is either `int' or `gid_t'.  */
+#undef GETGROUPS_T
+
+/* Characteristics of the machine archictecture. */
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+       STACK_DIRECTION > 0 => grows toward higher addresses
+       STACK_DIRECTION < 0 => grows toward lower addresses
+       STACK_DIRECTION = 0 => direction of growth unknown
+ */
+#undef STACK_DIRECTION
+
+/* Define if the machine architecture is big-endian. */
+#undef WORDS_BIGENDIAN
+
+/* Check for the presence of certain non-function symbols in the system
+   libraries. */
+
+/* Define if `sys_siglist' is declared by <signal.h> or <unistd.h>.  */
+#undef HAVE_DECL_SYS_SIGLIST
+#undef SYS_SIGLIST_DECLARED
+
+/* Define if `_sys_siglist' is declared by <signal.h> or <unistd.h>.  */
+#undef UNDER_SYS_SIGLIST_DECLARED
+
+#undef HAVE_SYS_SIGLIST
+
+#undef HAVE_UNDER_SYS_SIGLIST
+
+#undef HAVE_SYS_ERRLIST
+
+#undef HAVE_TZNAME
+
+
+/* Characteristics of some of the system structures. */
+
+#undef HAVE_STRUCT_DIRENT_D_INO
+
+#undef HAVE_STRUCT_DIRENT_D_FILENO
+
+#undef HAVE_STRUCT_DIRENT_D_NAMLEN
+
+#undef TIOCSTAT_IN_SYS_IOCTL
+
+#undef FIONREAD_IN_SYS_IOCTL
+
+#undef GWINSZ_IN_SYS_IOCTL
+
+#undef STRUCT_WINSIZE_IN_SYS_IOCTL
+
+#undef TM_IN_SYS_TIME
+
+#undef STRUCT_WINSIZE_IN_TERMIOS
+
+#undef SPEED_T_IN_SYS_TYPES
+
+#undef TERMIOS_LDISC
+
+#undef TERMIO_LDISC
+
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+#undef HAVE_STRUCT_TM_TM_ZONE
+#undef HAVE_TM_ZONE
+
+#undef HAVE_TIMEVAL
+
+#undef HAVE_STRUCT_TIMEZONE
+
+/* Characteristics of definitions in the system header files. */
+
+#undef HAVE_GETPW_DECLS
+
+#undef HAVE_RESOURCE
+
+#undef HAVE_LIBC_FNM_EXTMATCH
+
+#undef HAVE_DECL_CONFSTR
+
+#undef HAVE_DECL_PRINTF
+
+#undef HAVE_DECL_SBRK
+
+#undef HAVE_DECL_STRCPY
+
+#undef HAVE_DECL_STRSIGNAL
+
+#undef HAVE_DECL_STRTOLD
+
+#undef STRTOLD_BROKEN
+
+#undef HAVE_MBSTATE_T
+
+/* Define if WCONTINUED is defined in system headers, but rejected by waitpid */
+#undef WCONTINUED_BROKEN
+
+/* These are checked with BASH_CHECK_DECL */
+
+#undef HAVE_DECL_STRTOIMAX
+#undef HAVE_DECL_STRTOL
+#undef HAVE_DECL_STRTOLL
+#undef HAVE_DECL_STRTOUL
+#undef HAVE_DECL_STRTOULL
+#undef HAVE_DECL_STRTOUMAX
+
+/* Characteristics of system calls and C library functions. */
+
+/* Define if the `getpgrp' function takes no argument.  */
+#undef GETPGRP_VOID
+
+#undef NAMED_PIPES_MISSING
+
+#undef OPENDIR_NOT_ROBUST
+
+#undef PGRP_PIPE
+
+/* Define if the setvbuf function takes the buffering type as its second
+   argument and the buffer pointer as the third, as on System V
+   before release 3.  */
+#undef SETVBUF_REVERSED
+
+#undef STAT_MACROS_BROKEN
+
+#undef ULIMIT_MAXFDS
+
+#undef CAN_REDEFINE_GETENV
+
+#undef HAVE_STD_PUTENV
+
+#undef HAVE_STD_UNSETENV
+
+#undef HAVE_PRINTF_A_FORMAT
+
+#undef CTYPE_NON_ASCII
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Characteristics of properties exported by the kernel. */
+
+/* Define if the kernel can exec files beginning with #! */
+#undef HAVE_HASH_BANG_EXEC
+
+/* Define if you have the /dev/fd devices to map open files into the file system. */
+#undef HAVE_DEV_FD
+
+/* Defined to /dev/fd or /proc/self/fd (linux). */
+#undef DEV_FD_PREFIX
+
+/* Define if you have the /dev/stdin device. */
+#undef HAVE_DEV_STDIN
+
+
+/* Type and behavior of signal handling functions. */
+
+/* Define as the return type of signal handlers (int or void).  */
+#undef RETSIGTYPE
+
+/* Define if return type of signal handlers is void */
+#undef VOID_SIGHANDLER
+
+#undef MUST_REINSTALL_SIGHANDLERS
+
+#undef HAVE_BSD_SIGNALS
+
+#undef HAVE_POSIX_SIGNALS
+
+#undef HAVE_USG_SIGHOLD
+
+#undef UNUSABLE_RT_SIGNALS
+
+
+/* Presence of system and C library functions. */
+
+/* Define if you have the asprintf function.  */
+#undef HAVE_ASPRINTF
+
+/* Define if you have the bcopy function.  */
+#undef HAVE_BCOPY
+
+/* Define if you have the bzero function.  */
+#undef HAVE_BZERO
+
+/* Define if you have the confstr function.  */
+#undef HAVE_CONFSTR
+
+/* Define if you have the dlclose function.  */
+#undef HAVE_DLCLOSE
+
+/* Define if you have the dlopen function.  */
+#undef HAVE_DLOPEN
+
+/* Define if you have the dlsym function.  */
+#undef HAVE_DLSYM
+
+/* Define if you don't have vprintf but do have _doprnt.  */
+#undef HAVE_DOPRNT
+
+/* Define if you have the dup2 function.  */
+#undef HAVE_DUP2
+
+/* Define if you have the fcntl function.  */
+#undef HAVE_FCNTL
+
+/* Define if you have the getaddrinfo function. */
+#undef HAVE_GETADDRINFO
+
+/* Define if you have the getcwd function.  */
+#undef HAVE_GETCWD
+
+/* Define if you have the getdtablesize function.  */
+#undef HAVE_GETDTABLESIZE
+
+/* Define if you have the getgroups function.  */
+#undef HAVE_GETGROUPS
+
+/* Define if you have the gethostbyname function.  */
+#undef HAVE_GETHOSTBYNAME
+
+/* Define if you have the gethostname function.  */
+#undef HAVE_GETHOSTNAME
+
+/* Define if you have the getpagesize function.  */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the getpeername function.  */
+#undef HAVE_GETPEERNAME
+
+/* Define if you have the getpwent function. */
+#undef HAVE_GETPWENT
+
+/* Define if you have the getpwnam function. */
+#undef HAVE_GETPWNAM
+
+/* Define if you have the getpwuid function. */
+#undef HAVE_GETPWUID
+
+/* Define if you have the getrlimit function.  */
+#undef HAVE_GETRLIMIT
+
+/* Define if you have the getrusage function.  */
+#undef HAVE_GETRUSAGE
+
+/* Define if you have the getservbyname function.  */
+#undef HAVE_GETSERVBYNAME
+
+/* Define if you have the getservent function.  */
+#undef HAVE_GETSERVENT
+
+/* Define if you have the gettimeofday function.  */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define if you have the getwd function.  */
+#undef HAVE_GETWD
+
+/* Define if you have the inet_aton function.  */
+#undef HAVE_INET_ATON
+
+/* Define if you have the isascii function. */
+#undef HAVE_ISASCII
+
+/* Define if you have the isblank function.  */
+#undef HAVE_ISBLANK
+
+/* Define if you have the isgraph function.  */
+#undef HAVE_ISGRAPH
+
+/* Define if you have the isint function in libc */
+#undef HAVE_ISINF_IN_LIBC
+
+/* Define if you have the isprint function.  */
+#undef HAVE_ISPRINT
+
+/* Define if you have the isspace function.  */
+#undef HAVE_ISSPACE
+
+/* Define if you have the isxdigit function.  */
+#undef HAVE_ISXDIGIT
+
+/* Define if you have the kill function.  */
+#undef HAVE_KILL
+
+/* Define if you have the killpg function.  */
+#undef HAVE_KILLPG
+
+/* Define if you have the lstat function. */
+#undef HAVE_LSTAT
+
+/* Define if you have the mbrlen function. */
+#undef HAVE_MBRLEN
+
+/* Define if you have the mbrtowc function. */
+#undef HAVE_MBRTOWC
+
+/* Define if you have the mbsrtowcs function. */
+#undef HAVE_MBSRTOWCS
+
+/* Define if you have the memmove function.  */
+#undef HAVE_MEMMOVE
+
+/* Define if you have the memset function.  */
+#undef HAVE_MEMSET
+
+/* Define if you have the mkfifo function.  */
+#undef HAVE_MKFIFO
+
+/* Define if you have the pathconf function. */
+#undef HAVE_PATHCONF
+
+/* Define if you have the putenv function.  */
+#undef HAVE_PUTENV
+
+/* Define if you have the raise function. */
+#undef HAVE_RAISE
+
+/* Define if you have the readlink function. */
+#undef HAVE_READLINK
+
+/* Define if you have the regcomp function. */
+#undef HAVE_REGCOMP
+
+/* Define if you have the regexec function. */
+#undef HAVE_REGEXEC
+
+/* Define if you have the rename function. */
+#undef HAVE_RENAME
+
+/* Define if you have the sbrk function. */
+#undef HAVE_SBRK
+
+/* Define if you have the select function.  */
+#undef HAVE_SELECT
+
+/* Define if you have the setdtablesize function.  */
+#undef HAVE_SETDTABLESIZE
+
+/* Define if you have the setenv function.  */
+#undef HAVE_SETENV
+
+/* Define if you have the setlinebuf function.  */
+#undef HAVE_SETLINEBUF
+
+/* Define if you have the setlocale function.  */
+#undef HAVE_SETLOCALE
+
+/* Define if you have the setostype function.  */
+#undef HAVE_SETOSTYPE
+
+/* Define if you have the setregid function.  */
+#undef HAVE_SETREGID
+#undef HAVE_DECL_SETREGID
+
+/* Define if you have the setvbuf function.  */
+#undef HAVE_SETVBUF
+
+/* Define if you have the siginterrupt function.  */
+#undef HAVE_SIGINTERRUPT
+
+/* Define if you have the POSIX.1-style sigsetjmp function.  */
+#undef HAVE_POSIX_SIGSETJMP
+
+/* Define if you have the snprintf function.  */
+#undef HAVE_SNPRINTF
+
+/* Define if you have the strcasecmp function.  */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strchr function.  */
+#undef HAVE_STRCHR
+
+/* Define if you have the strcoll function.  */
+#undef HAVE_STRCOLL
+
+/* Define if you have the strerror function.  */
+#undef HAVE_STRERROR
+
+/* Define if you have the strftime function. */
+#undef HAVE_STRFTIME
+
+/* Define if you have the strnlen function. */
+#undef HAVE_STRNLEN
+
+/* Define if you have the strpbrk function. */
+#undef HAVE_STRPBRK
+
+/* Define if you have the strstr function. */
+#undef HAVE_STRSTR
+
+/* Define if you have the strtod function. */
+#undef HAVE_STRTOD
+
+/* Define if you have the strtoimax function. */
+#undef HAVE_STRTOIMAX
+
+/* Define if you have the strtol function. */
+#undef HAVE_STRTOL
+
+/* Define if you have the strtoll function. */
+#undef HAVE_STRTOLL
+
+/* Define if you have the strtoul function. */
+#undef HAVE_STRTOUL
+
+/* Define if you have the strtoull function. */
+#undef HAVE_STRTOULL
+
+/* Define if you have the strtoumax function. */
+#undef HAVE_STRTOUMAX
+
+/* Define if you have the strsignal function or macro. */
+#undef HAVE_STRSIGNAL
+
+/* Define if you have the sysconf function. */
+#undef HAVE_SYSCONF
+
+/* Define if you have the tcgetattr function.  */
+#undef HAVE_TCGETATTR
+
+/* Define if you have the tcgetpgrp function.  */
+#undef HAVE_TCGETPGRP
+
+/* Define if you have the times function.  */
+#undef HAVE_TIMES
+
+/* Define if you have the ttyname function.  */
+#undef HAVE_TTYNAME
+
+/* Define if you have the tzset function. */
+#undef HAVE_TZSET
+
+/* Define if you have the ulimit function. */
+#undef HAVE_ULIMIT
+
+/* Define if you have the uname function. */
+#undef HAVE_UNAME
+
+/* Define if you have the unsetenv function.  */
+#undef HAVE_UNSETENV
+
+/* Define if you have the vasprintf function.  */
+#undef HAVE_VASPRINTF
+
+/* Define if you have the vprintf function.  */
+#undef HAVE_VPRINTF
+
+/* Define if you have the vsnprintf function.  */
+#undef HAVE_VSNPRINTF
+
+/* Define if you have the waitpid function. */
+#undef HAVE_WAITPID
+
+/* Define if you have the wait3 function.  */
+#undef HAVE_WAIT3
+
+/* Define if you have the wcsdup function.  */
+#undef HAVE_WCSDUP
+
+/* Define if you have the wctomb function.  */
+#undef HAVE_WCTOMB
+
+/* Define if you have the wctype function.  */
+#undef HAVE_WCTYPE
+
+/* Define if you have the wcwidth function.  */
+#undef HAVE_WCWIDTH
+
+/* Presence of certain system include files. */
+
+/* Define if you have the <arpa/inet.h> header file. */
+#undef HAVE_ARPA_INET_H
+
+/* Define if you have the <dirent.h> header file.  */
+#undef HAVE_DIRENT_H
+
+/* Define if you have the <dlfcn.h> header file.  */
+#undef HAVE_DLFCN_H
+
+/* Define if you have the <grp.h> header file.  */
+#undef HAVE_GRP_H
+
+/* Define if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if you have the <langinfo.h> header file.  */
+#undef HAVE_LANGINFO_H
+
+/* Define if you have the <libintl.h> header file. */
+#undef HAVE_LIBINTL_H
+
+/* Define if you have the <limits.h> header file.  */
+#undef HAVE_LIMITS_H
+
+/* Define if you have the <locale.h> header file.  */
+#undef HAVE_LOCALE_H
+
+/* Define if you have the <ndir.h> header file.  */
+#undef HAVE_NDIR_H
+
+/* Define if you have the <netdh.h> header file. */
+#undef HAVE_NETDB_H
+
+/* Define if you have the <netinet/in.h> header file. */
+#undef HAVE_NETINET_IN_H
+
+/* Define if you have the <pwd.h> header file. */
+#undef HAVE_PWD_H
+
+/* Define if you have the <regex.h> header file. */
+#undef HAVE_REGEX_H
+
+/* Define if you have the <stdlib.h> header file.  */
+#undef HAVE_STDLIB_H
+
+/* Define if you have the <stdarg.h> header file.  */
+#undef HAVE_STDARG_H
+
+/* Define if you have the <string.h> header file.  */
+#undef HAVE_STRING_H
+
+/* Define if you have the <strings.h> header file.  */
+#undef HAVE_STRINGS_H
+
+/* Define if you have the <memory.h> header file.  */
+#undef HAVE_MEMORY_H
+
+/* Define if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
+/* Define if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define if you have the <sys/dir.h> header file.  */
+#undef HAVE_SYS_DIR_H
+
+/* Define if you have the <sys/file.h> header file.  */
+#undef HAVE_SYS_FILE_H
+
+/* Define if you have the <sys/ndir.h> header file.  */
+#undef HAVE_SYS_NDIR_H
+
+/* Define if you have the <sys/param.h> header file.  */
+#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the <sys/pte.h> header file.  */
+#undef HAVE_SYS_PTE_H
+
+/* Define if you have the <sys/ptem.h> header file.  */
+#undef HAVE_SYS_PTEM_H
+
+/* Define if you have the <sys/resource.h> header file.  */
+#undef HAVE_SYS_RESOURCE_H
+
+/* Define if you have the <sys/select.h> header file.  */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <sys/socket.h> header file.  */
+#undef HAVE_SYS_SOCKET_H
+
+/* Define if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define if you have the <sys/stream.h> header file.  */
+#undef HAVE_SYS_STREAM_H
+
+/* Define if you have <sys/time.h> */
+#undef HAVE_SYS_TIME_H
+
+#undef TIME_WITH_SYS_TIME
+
+/* Define if you have <sys/times.h> */
+#undef HAVE_SYS_TIMES_H
+
+/* Define if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
+#undef HAVE_SYS_WAIT_H
+
+/* Define if you have the <termcap.h> header file.  */
+#undef HAVE_TERMCAP_H
+
+/* Define if you have the <termio.h> header file.  */
+#undef HAVE_TERMIO_H
+
+/* Define if you have the <termios.h> header file.  */
+#undef HAVE_TERMIOS_H
+
+/* Define if you have the <unistd.h> header file.  */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <varargs.h> header file.  */
+#undef HAVE_VARARGS_H
+
+/* Define if you have the <wchar.h> header file.  */
+#undef HAVE_WCHAR_H
+
+/* Define if you have the <varargs.h> header file.  */
+#undef HAVE_WCTYPE_H
+
+/* Presence of certain system libraries. */
+
+#undef HAVE_LIBDL
+
+#undef HAVE_LIBSUN
+
+#undef HAVE_LIBSOCKET
+
+
+/* Define if on MINIX.  */
+#undef _MINIX
+
+/* Are we running SVR5 (UnixWare 7)? */
+#undef SVR5
+
+/* Are we running SVR4.2? */
+#undef SVR4_2
+
+/* Are we running some version of SVR4? */
+#undef SVR4
+
+/* Define if job control is unusable or unsupported. */
+#undef JOB_CONTROL_MISSING
+
+/* Do we need to define _KERNEL to get the RLIMIT_* defines from
+   <sys/resource.h>? */
+#undef RLIMIT_NEEDS_KERNEL
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define for large files on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Do strcoll(3) and strcmp(3) give different results in the default locale? */
+#undef STRCOLL_BROKEN
+
+#undef DUP2_BROKEN
+
+#undef GETCWD_BROKEN
+
+/* Additional defines for configuring lib/intl, maintained by autoscan/autoheader */
+
+/* Define if you have the <argz.h> header file. */
+#undef HAVE_ARGZ_H
+
+/* Define if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define if you have the <stdio_ext.h> header file. */
+#undef HAVE_STDIO_EXT_H
+
+/* Define if you have the `dcgettext' function. */
+#undef HAVE_DCGETTEXT
+
+/* Define if your system has a working `malloc' function. */
+/* #undef HAVE_MALLOC */
+
+/* Define if you have the `mempcpy' function. */
+#undef HAVE_MEMPCPY
+
+/* Define if you have a working `mmap' system call. */
+#undef HAVE_MMAP
+
+/* Define if you have the `munmap' function. */
+#undef HAVE_MUNMAP
+
+/* Define if you have the `nl_langinfo' function. */
+#undef HAVE_NL_LANGINFO
+
+/* Define if you have the `stpcpy' function. */
+#undef HAVE_STPCPY
+
+/* Define if you have the `strcspn' function. */
+#undef HAVE_STRCSPN
+
+/* Define if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
+/* Define if you have the `__argz_count' function. */
+#undef HAVE___ARGZ_COUNT
+
+/* Define if you have the `__argz_next' function. */
+#undef HAVE___ARGZ_NEXT
+
+/* Define if you have the `__argz_stringify' function. */
+#undef HAVE___ARGZ_STRINGIFY
+
+/* End additions for lib/intl */
+
+#include "config-bot.h"
+
+#endif /* _CONFIG_H_ */
index 76f0f46755b4ab4cf9b35a65443bb5c405d8c90f..a227da7f45535d2f250d2ac90beb7431c8f940a8 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in for Bash 3.2, version 3.186.
+# From configure.in for Bash 3.2, version 3.187.
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.59 for bash 3.2-devel.
 #
 
 
 
-for ac_func in dup2 fcntl getdtablesize getgroups gethostname getpagesize \
-               getpeername getrlimit getrusage gettimeofday kill killpg \
-               lstat readlink sbrk select setdtablesize tcgetpgrp uname \
-               ulimit waitpid
+
+for ac_func in dup2 eaccess fcntl getdtablesize getgroups gethostname \
+               getpagesize getpeername getrlimit getrusage gettimeofday \
+               kill killpg lstat readlink sbrk select setdtablesize \
+               tcgetpgrp uname ulimit waitpid
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -13159,6 +13160,78 @@ _ACEOF
 fi
 
 
+echo "$as_me:$LINENO: checking whether setregid is declared" >&5
+echo $ECHO_N "checking whether setregid is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_setregid+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef setregid
+  char *p = (char *) setregid;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl_setregid=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_setregid=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_setregid" >&5
+echo "${ECHO_T}$ac_cv_have_decl_setregid" >&6
+if test $ac_cv_have_decl_setregid = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SETREGID 1
+_ACEOF
+
+
+else
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SETREGID 0
+_ACEOF
+
+
+fi
+
+
 echo "$as_me:$LINENO: checking whether strcpy is declared" >&5
 echo $ECHO_N "checking whether strcpy is declared... $ECHO_C" >&6
 if test "${ac_cv_have_decl_strcpy+set}" = set; then
index 71331664f10c85147fd8707b99170bb27c96528f..4bfcc8cbdb06862e61a93b3e8a976268d19b3c42 100644 (file)
@@ -5,7 +5,7 @@ dnl report bugs to chet@po.cwru.edu
 dnl
 dnl Process this file with autoconf to produce a configure script.
 
-# Copyright (C) 1987-2005 Free Software Foundation, Inc.
+# Copyright (C) 1987-2006 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -22,12 +22,12 @@ dnl Process this file with autoconf to produce a configure script.
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
-AC_REVISION([for Bash 3.2, version 3.186])dnl
+AC_REVISION([for Bash 3.2, version 3.187])dnl
 
 define(bashvers, 3.2)
 define(relstatus, devel)
 
-AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org)
+AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
 
 dnl make sure we are using a recent autoconf version
 AC_PREREQ(2.50)
@@ -693,10 +693,10 @@ dnl checks for missing libc functions
 AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
 
 dnl checks for system calls
-AC_CHECK_FUNCS(dup2 fcntl getdtablesize getgroups gethostname getpagesize \
-               getpeername getrlimit getrusage gettimeofday kill killpg \
-               lstat readlink sbrk select setdtablesize tcgetpgrp uname \
-               ulimit waitpid)
+AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
+               getpagesize getpeername getrlimit getrusage gettimeofday \
+               kill killpg lstat readlink sbrk select setdtablesize \
+               tcgetpgrp uname ulimit waitpid)
 AC_REPLACE_FUNCS(rename)
 
 dnl checks for c library functions
@@ -715,6 +715,7 @@ AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
 AC_CHECK_DECLS([confstr])
 AC_CHECK_DECLS([printf])
 AC_CHECK_DECLS([sbrk])
+AC_CHECK_DECLS([setregid])
 AC_CHECK_DECLS([strcpy])
 AC_CHECK_DECLS([strsignal])
 
index 411b801e544b35957b1724c74edd89a918d620b0..78e78d11f0c2a5ddd2d91ddb10c26f1867fdd6a3 100644 (file)
@@ -5,7 +5,7 @@ dnl report bugs to chet@po.cwru.edu
 dnl
 dnl Process this file with autoconf to produce a configure script.
 
-# Copyright (C) 1987-2005 Free Software Foundation, Inc.
+# Copyright (C) 1987-2006 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -22,12 +22,12 @@ dnl Process this file with autoconf to produce a configure script.
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
-AC_REVISION([for Bash 3.2, version 3.186])dnl
+AC_REVISION([for Bash 3.2, version 3.187])dnl
 
 define(bashvers, 3.2)
 define(relstatus, devel)
 
-AC_INIT(bash, bashvers-relstatus, bug-bash@gnu.org)
+AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
 
 dnl make sure we are using a recent autoconf version
 AC_PREREQ(2.50)
@@ -373,8 +373,6 @@ AC_SYS_LARGEFILE
 dnl BEGIN changes for cross-building (currently cygwin, minGW, and
 dnl (obsolete) BeOS)
 
-cross_compiling=yes
-
 SIGNAMES_O=
 SIGNAMES_H=lsignames.h
 
@@ -411,8 +409,6 @@ fi
 AC_SUBST(SIGNAMES_H)
 AC_SUBST(SIGNAMES_O)
 
-cross_compiling=no
-
 if test -z "$CC_FOR_BUILD"; then
     if test "x$cross_compiling" = "xno"; then
        CC_FOR_BUILD='$(CC)'
@@ -719,6 +715,7 @@ AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
 AC_CHECK_DECLS([confstr])
 AC_CHECK_DECLS([printf])
 AC_CHECK_DECLS([sbrk])
+AC_CHECK_DECLS([setregid])
 AC_CHECK_DECLS([strcpy])
 AC_CHECK_DECLS([strsignal])
 
diff --git a/d1 b/d1
new file mode 100644 (file)
index 0000000..6200267
--- /dev/null
+++ b/d1
@@ -0,0 +1,132 @@
+*** braces.c.orig      Fri Sep 17 18:42:36 2004
+--- braces.c   Sat Jan 28 19:24:14 2006
+***************
+*** 81,94 ****
+    char *preamble, *postamble, *amble;
+    size_t alen;
+    char **tack, **result;
+!   int i, j, c;
+  
+    DECLARE_MBSTATE;
+  
+    /* Find the text of the preamble. */
+    tlen = strlen (text);
+    i = 0;
+!   c = brace_gobbler (text, tlen, &i, '{');
+  
+    preamble = (char *)xmalloc (i + 1);
+    strncpy (preamble, text, i);
+--- 81,121 ----
+    char *preamble, *postamble, *amble;
+    size_t alen;
+    char **tack, **result;
+!   int i, j, c, c1;
+  
+    DECLARE_MBSTATE;
+  
+    /* Find the text of the preamble. */
+    tlen = strlen (text);
+    i = 0;
+!   /* Make sure that when we exit this loop, c == 0 or text[i] begins a
+!      valid brace expansion sequence. */
+!   do
+!     {
+!       c = brace_gobbler (text, tlen, &i, '{');       /* } */
+!       c1 = c;
+!       /* Verify that c begins a valid brace expansion word.  If it doesn't, we
+!       go on.  Loop stops when there are no more open braces in the word. */
+!       if (c)
+!      {
+!        start = j = i + 1;    /* { */
+!        c = brace_gobbler (text, tlen, &j, '}');
+!        if (c == 0)           /* it's not */
+!          {
+!            i++;
+!            c = c1;
+!            continue;
+!          }
+!        else                  /* it is */
+!          {
+!            c = c1;
+!            break;
+!          }
+!      }
+!       else
+!      break;
+!     }
+!   while (c);
+  
+    preamble = (char *)xmalloc (i + 1);
+    strncpy (preamble, text, i);
+***************
+*** 361,366 ****
+--- 388,398 ----
+     index of the character matching SATISFY.  This understands about
+     quoting.  Return the character that caused us to stop searching;
+     this is either the same as SATISFY, or 0. */
++ /* If SATISFY is `}', we are looking for a brace expression, so we
++    should enforce the rules that govern valid brace expansions:
++      1) to count as an arg separator, a comma or `..' has to be outside
++         an inner set of braces.       
++ */
+  static int
+  brace_gobbler (text, tlen, indx, satisfy)
+       char *text;
+***************
+*** 368,374 ****
+       int *indx;
+       int satisfy;
+  {
+!   register int i, c, quoted, level, pass_next;
+  #if defined (SHELL)
+    int si;
+    char *t;
+--- 400,406 ----
+       int *indx;
+       int satisfy;
+  {
+!   register int i, c, quoted, level, commas, pass_next;
+  #if defined (SHELL)
+    int si;
+    char *t;
+***************
+*** 376,381 ****
+--- 408,414 ----
+    DECLARE_MBSTATE;
+  
+    level = quoted = pass_next = 0;
++   commas = (satisfy == '}') ? 0 : 1;
+  
+    i = *indx;
+    while (c = text[i])
+***************
+*** 436,442 ****
+       }
+  #endif
+  
+!       if (c == satisfy && level == 0 && quoted == 0)
+       {
+         /* We ignore an open brace surrounded by whitespace, and also
+            an open brace followed immediately by a close brace preceded
+--- 469,475 ----
+       }
+  #endif
+  
+!       if (c == satisfy && level == 0 && quoted == 0 && commas > 0)
+       {
+         /* We ignore an open brace surrounded by whitespace, and also
+            an open brace followed immediately by a close brace preceded
+***************
+*** 456,461 ****
+--- 489,499 ----
+       level++;
+        else if (c == '}' && level)
+       level--;
++       else if (satisfy == '}' && c == brace_arg_separator && level == 0)
++      commas++;
++       else if (satisfy == '}' && STREQN (text+i, BRACE_SEQ_SPECIFIER, 2) &&
++                      text[i+2] != satisfy && level == 0)
++      commas++;
+  
+        ADVANCE_CHAR (text, tlen, i);
+      }
diff --git a/doc/.DS_Store b/doc/.DS_Store
new file mode 100644 (file)
index 0000000..c08dc25
Binary files /dev/null and b/doc/.DS_Store differ
index ecf8ae2e85d61ec79ad6bd7619c32cbe1d4be7a2..a760983ee6913e7b67e62cd086821f69dabc0fe0 100644 (file)
@@ -17,9 +17,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        commands read from the standard input or from a file.  B\bBa\bas\bsh\bh also incor-
        porates useful features from the _\bK_\bo_\br_\bn and _\bC shells (k\bks\bsh\bh and c\bcs\bsh\bh).
 
-       B\bBa\bas\bsh\bh  is  intended  to be a conformant implementation of the IEEE POSIX
-       Shell and Tools specification (IEEE Working Group 1003.2).  B\bBa\bas\bsh\bh can be
-       configured to be POSIX-conformant by default.
+       B\bBa\bas\bsh\bh  is  intended  to  be a conformant implementation of the Shell and
+       Utilities portion  of  the  IEEE  POSIX  specification  (IEEE  Standard
+       1003.1).  B\bBa\bas\bsh\bh can be configured to be POSIX-conformant by default.
 
 O\bOP\bPT\bTI\bIO\bON\bNS\bS
        In  addition  to  the  single-character shell options documented in the
@@ -98,8 +98,7 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        -\b--\b-p\bpo\bos\bsi\bix\bx
               Change the behavior of b\bba\bas\bsh\bh where the default operation  differs
-              from  the  POSIX  1003.2  standard  to match the standard (_\bp_\bo_\bs_\bi_\bx
-              _\bm_\bo_\bd_\be).
+              from the POSIX standard to match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
 
        -\b--\b-r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd
               The shell becomes restricted (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below).
@@ -108,110 +107,110 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
               Equivalent to  -\b-v\bv.
 
        -\b--\b-v\bve\ber\brs\bsi\bio\bon\bn
-              Show version information for this instance of b\bba\bas\bsh\bh on the  stan-
+              Show  version information for this instance of b\bba\bas\bsh\bh on the stan-
               dard output and exit successfully.
 
 A\bAR\bRG\bGU\bUM\bME\bEN\bNT\bTS\bS
        If arguments remain after option processing, and neither the -\b-c\bc nor the
-       -\b-s\boption has been supplied, the first argument is assumed  to  be  the
-       name  of  a file containing shell commands.  If b\bba\bas\bsh\bh is invoked in this
-       fashion, $\b$0\b0 is set to the name of the file, and the positional  parame-
-       ters  are set to the remaining arguments.  B\bBa\bas\bsh\bh reads and executes com-
-       mands from this file, then exits.  B\bBa\bas\bsh\bh's exit status is the exit  sta-
-       tus  of  the  last  command executed in the script.  If no commands are
-       executed, the exit status is 0.  An attempt is first made to  open  the
+       -\b-s\b option  has  been supplied, the first argument is assumed to be the
+       name of a file containing shell commands.  If b\bba\bas\bsh\bh is invoked  in  this
+       fashion,  $\b$0\b0 is set to the name of the file, and the positional parame-
+       ters are set to the remaining arguments.  B\bBa\bas\bsh\bh reads and executes  com-
+       mands  from this file, then exits.  B\bBa\bas\bsh\bh's exit status is the exit sta-
+       tus of the last command executed in the script.   If  no  commands  are
+       executed,  the  exit status is 0.  An attempt is first made to open the
        file in the current directory, and, if no file is found, then the shell
        searches the directories in P\bPA\bAT\bTH\bH for the script.
 
 I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN
-       A _\bl_\bo_\bg_\bi_\bn _\bs_\bh_\be_\bl_\bl is one whose first character of argument zero is a -\b-,  or
+       A  _\bl_\bo_\bg_\bi_\bn _\bs_\bh_\be_\bl_\bl is one whose first character of argument zero is a -\b-, or
        one started with the -\b--\b-l\blo\bog\bgi\bin\bn option.
 
-       An  _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be  shell  is one started without non-option arguments and
+       An _\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be shell is one started without  non-option  arguments  and
        without the -\b-c\bc option whose standard input and error are both connected
-       to  terminals  (as determined by _\bi_\bs_\ba_\bt_\bt_\by(3)), or one started with the -\b-i\bi
-       option.  P\bPS\bS1\b1 is set and $\b$-\b- includes i\bi if b\bba\bas\bsh\bh is interactive,  allowing
+       to terminals (as determined by _\bi_\bs_\ba_\bt_\bt_\by(3)), or one started with  the  -\b-i\bi
+       option.   P\bPS\bS1\b1 is set and $\b$-\b- includes i\bi if b\bba\bas\bsh\bh is interactive, allowing
        a shell script or a startup file to test this state.
 
-       The  following paragraphs describe how b\bba\bas\bsh\bh executes its startup files.
-       If any of the files exist but cannot be read, b\bba\bas\bsh\bh  reports  an  error.
+       The following paragraphs describe how b\bba\bas\bsh\bh executes its startup  files.
+       If  any  of  the files exist but cannot be read, b\bba\bas\bsh\bh reports an error.
        Tildes are expanded in file names as described below under T\bTi\bil\bld\bde\be E\bEx\bxp\bpa\ban\bn-\b-
        s\bsi\bio\bon\bn in the E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN section.
 
-       When b\bba\bas\bsh\bh is invoked as an interactive login shell, or as a  non-inter-
-       active  shell with the -\b--\b-l\blo\bog\bgi\bin\bn option, it first reads and executes com-
-       mands from the file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be, if that file exists.   After  reading
+       When  b\bba\bas\bsh\bh is invoked as an interactive login shell, or as a non-inter-
+       active shell with the -\b--\b-l\blo\bog\bgi\bin\bn option, it first reads and executes  com-
+       mands  from  the file _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be, if that file exists.  After reading
        that file, it looks for _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bp_\br_\bo_\bf_\bi_\bl_\be, _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bi_\bn, and _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be,
-       in that order, and reads and executes commands from the first one  that
-       exists  and  is  readable.  The -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be option may be used when the
+       in  that order, and reads and executes commands from the first one that
+       exists and is readable.  The -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be option may be  used  when  the
        shell is started to inhibit this behavior.
 
-       When a login shell exits, b\bba\bas\bsh\bh reads and  executes  commands  from  the
+       When  a  login  shell  exits, b\bba\bas\bsh\bh reads and executes commands from the
        file _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt, if it exists.
 
-       When  an  interactive  shell that is not a login shell is started, b\bba\bas\bsh\bh
-       reads and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists.   This
-       may  be inhibited by using the -\b--\b-n\bno\bor\brc\bc option.  The -\b--\b-r\brc\bcf\bfi\bil\ble\be _\bf_\bi_\bl_\be option
-       will force b\bba\bas\bsh\bh to read and  execute  commands  from  _\bf_\bi_\bl_\be  instead  of
+       When an interactive shell that is not a login shell  is  started,  b\bba\bas\bsh\bh
+       reads  and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists.  This
+       may be inhibited by using the -\b--\b-n\bno\bor\brc\bc option.  The -\b--\b-r\brc\bcf\bfi\bil\ble\be _\bf_\bi_\bl_\b option
+       will  force  b\bba\bas\bsh\bh  to  read  and  execute commands from _\bf_\bi_\bl_\be instead of
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc.
 
-       When  b\bba\bas\bsh\bh  is  started  non-interactively,  to run a shell script, for
+       When b\bba\bas\bsh\bh is started non-interactively, to  run  a  shell  script,  for
        example, it looks for the variable B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV in the environment, expands
-       its  value if it appears there, and uses the expanded value as the name
-       of a file to read and execute.  B\bBa\bas\bsh\bh behaves as if the  following  com-
+       its value if it appears there, and uses the expanded value as the  name
+       of  a  file to read and execute.  B\bBa\bas\bsh\bh behaves as if the following com-
        mand were executed:
               if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
-       but  the  value of the P\bPA\bAT\bTH\bH variable is not used to search for the file
+       but the value of the P\bPA\bAT\bTH\bH variable is not used to search for  the  file
        name.
 
-       If b\bba\bas\bsh\bh is invoked with the name s\bsh\bh, it  tries  to  mimic  the  startup
-       behavior  of  historical  versions  of s\bsh\bh as closely as possible, while
-       conforming to the POSIX standard as well.  When invoked as an  interac-
-       tive  login  shell, or a non-interactive shell with the -\b--\b-l\blo\bog\bgi\bin\bn option,
-       it first attempts to read and execute commands  from  _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\b and
-       _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be,  in  that  order.   The  -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be  option may be used to
-       inhibit this behavior.  When invoked as an interactive shell  with  the
-       name  s\bsh\bh,  b\bba\bas\bsh\bh  looks for the variable E\bEN\bNV\bV, expands its value if it is
-       defined, and uses the expanded value as the name of a file to read  and
+       If  b\bba\bas\bsh\bh  is  invoked  with  the name s\bsh\bh, it tries to mimic the startup
+       behavior of historical versions of s\bsh\bh as  closely  as  possible,  while
+       conforming  to the POSIX standard as well.  When invoked as an interac-
+       tive login shell, or a non-interactive shell with the  -\b--\b-l\blo\bog\bgi\bin\b option,
+       it  first  attempts  to read and execute commands from _\b/_\be_\bt_\bc_\b/_\bp_\br_\bo_\bf_\bi_\bl_\be and
+       _\b~_\b/_\b._\bp_\br_\bo_\bf_\bi_\bl_\be, in that order.  The  -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be  option  may  be  used  to
+       inhibit  this  behavior.  When invoked as an interactive shell with the
+       name s\bsh\bh, b\bba\bas\bsh\bh looks for the variable E\bEN\bNV\bV, expands its value  if  it  is
+       defined,  and uses the expanded value as the name of a file to read and
        execute.  Since a shell invoked as s\bsh\bh does not attempt to read and exe-
-       cute commands from any other startup files, the -\b--\b-r\brc\bcf\bfi\bil\ble\be option has  no
-       effect.   A  non-interactive  shell  invoked  with the name s\bsh\bh does not
-       attempt to read any other startup files.   When  invoked  as  s\bsh\bh,  b\bba\bas\bsh\bh
+       cute  commands from any other startup files, the -\b--\b-r\brc\bcf\bfi\bil\ble\be option has no
+       effect.  A non-interactive shell invoked with  the  name  s\bsh\bh  does  not
+       attempt  to  read  any  other  startup files.  When invoked as s\bsh\bh, b\bba\bas\bsh\bh
        enters _\bp_\bo_\bs_\bi_\bx mode after the startup files are read.
 
-       When  b\bba\bas\bsh\bh  is  started in _\bp_\bo_\bs_\bi_\bx mode, as with the -\b--\b-p\bpo\bos\bsi\bix\bx command line
+       When b\bba\bas\bsh\bh is started in _\bp_\bo_\bs_\bi_\bx mode, as with the  -\b--\b-p\bpo\bos\bsi\bix\bx  command  line
        option, it follows the POSIX standard for startup files.  In this mode,
-       interactive  shells  expand  the E\bEN\bNV\bV variable and commands are read and
-       executed from the file whose name is  the  expanded  value.   No  other
+       interactive shells expand the E\bEN\bNV\bV variable and commands  are  read  and
+       executed  from  the  file  whose  name is the expanded value.  No other
        startup files are read.
 
-       B\bBa\bas\bsh\b attempts  to  determine  when it is being run by the remote shell
-       daemon, usually _\br_\bs_\bh_\bd.  If b\bba\bas\bsh\bh determines it is being run by  _\br_\bs_\bh_\bd,  it
-       reads  and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists and is
+       B\bBa\bas\bsh\battempts to determine when it is being run  by  the  remote  shell
+       daemon,  usually  _\br_\bs_\bh_\bd.  If b\bba\bas\bsh\bh determines it is being run by _\br_\bs_\bh_\bd, it
+       reads and executes commands from _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc, if that file exists and  is
        readable.  It will not do this if invoked as s\bsh\bh.  The -\b--\b-n\bno\bor\brc\bc option may
-       be  used  to inhibit this behavior, and the -\b--\b-r\brc\bcf\bfi\bil\ble\be option may be used
-       to force another file to be read, but _\br_\bs_\bh_\bd does  not  generally  invoke
+       be used to inhibit this behavior, and the -\b--\b-r\brc\bcf\bfi\bil\ble\be option may  be  used
+       to  force  another  file to be read, but _\br_\bs_\bh_\bd does not generally invoke
        the shell with those options or allow them to be specified.
 
        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, no startup
        files are read, shell functions are not inherited from the environment,
-       the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS variable, if it appears in the environment,  is  ignored,
+       the  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS  variable, if it appears in the environment, is ignored,
        and the effective user id is set to the real user id.  If the -\b-p\bp option
-       is supplied at invocation, the startup behavior is the  same,  but  the
+       is  supplied  at  invocation, the startup behavior is the same, but the
        effective user id is not reset.
 
 D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS
-       The  following  definitions  are used throughout the rest of this docu-
+       The following definitions are used throughout the rest  of  this  docu-
        ment.
        b\bbl\bla\ban\bnk\bk  A space or tab.
-       w\bwo\bor\brd\bd   A sequence of characters considered as  a  single  unit  by  the
+       w\bwo\bor\brd\bd   A  sequence  of  characters  considered  as a single unit by the
               shell.  Also known as a t\bto\bok\bke\ben\bn.
-       n\bna\bam\bme\be   A  _\bw_\bo_\br_\bd  consisting  only  of alphanumeric characters and under-
-              scores, and beginning with an alphabetic character or an  under-
+       n\bna\bam\bme\be   A _\bw_\bo_\br_\bd consisting only of  alphanumeric  characters  and  under-
+              scores,  and beginning with an alphabetic character or an under-
               score.  Also referred to as an i\bid\bde\ben\bnt\bti\bif\bfi\bie\ber\br.
        m\bme\bet\bta\bac\bch\bha\bar\bra\bac\bct\bte\ber\br
-              A  character  that,  when unquoted, separates words.  One of the
+              A character that, when unquoted, separates words.   One  of  the
               following:
               |\b|  &\b& ;\b; (\b( )\b) <\b< >\b> s\bsp\bpa\bac\bce\be t\bta\bab\bb
        c\bco\bon\bnt\btr\bro\bol\bl o\bop\bpe\ber\bra\bat\bto\bor\br
@@ -222,21 +221,21 @@ D\bDE\bEF\bFI\bIN\bNI\bIT\bTI\bIO\bON\bNS\bS
 R\bRE\bES\bSE\bER\bRV\bVE\bED\bD W\bWO\bOR\bRD\bDS\bS
        _\bR_\be_\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs are words that have a special meaning to the shell.  The
        following words are recognized as reserved when unquoted and either the
-       first  word  of a simple command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR below) or the third
+       first word of a simple command (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR below) or  the  third
        word of a c\bca\bas\bse\be or f\bfo\bor\br command:
 
-       !\bc\bca\bas\bse\be  d\bdo\bo d\bdo\bon\bne\be e\bel\bli\bif\bf e\bel\bls\bse\be e\bes\bsa\bac\bc f\bfi\bi f\bfo\bor\br f\bfu\bun\bnc\bct\bti\bio\bon\bn i\bif\bf i\bin\bn s\bse\bel\ble\bec\bct\bt t\bth\bhe\ben\b u\bun\bnt\bti\bil\bl
+       !\b c\bca\bas\bse\be  d\bdo\bo d\bdo\bon\bne\be e\bel\bli\bif\bf e\bel\bls\bse\be e\bes\bsa\bac\bc f\bfi\bi f\bfo\bor\br f\bfu\bun\bnc\bct\bti\bio\bon\bn i\bif\bf i\bin\bn s\bse\bel\ble\bec\bct\bt t\bth\bhe\ben\bn u\bun\bnt\bti\bil\bl
        w\bwh\bhi\bil\ble\be {\b{ }\b} t\bti\bim\bme\be [\b[[\b[ ]\b]]\b]
 
 S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
    S\bSi\bim\bmp\bpl\ble\be C\bCo\bom\bmm\bma\ban\bnd\bds\bs
-       A  _\bs_\bi_\bm_\bp_\bl_\be  _\bc_\bo_\bm_\bm_\ba_\bn_\bd  is a sequence of optional variable assignments fol-
-       lowed by b\bbl\bla\ban\bnk\bk-separated words and redirections, and  terminated  by  a
+       A _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is a sequence of optional  variable  assignments  fol-
+       lowed  by  b\bbl\bla\ban\bnk\bk-separated  words and redirections, and terminated by a
        _\bc_\bo_\bn_\bt_\br_\bo_\bl _\bo_\bp_\be_\br_\ba_\bt_\bo_\br.  The first word specifies the command to be executed,
-       and is passed as argument zero.  The  remaining  words  are  passed  as
+       and  is  passed  as  argument  zero.  The remaining words are passed as
        arguments to the invoked command.
 
-       The  return  value  of a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is its exit status, or 128+_\bn if
+       The return value of a _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd is its exit status,  or  128+_\b if
        the command is terminated by signal _\bn.
 
    P\bPi\bip\bpe\bel\bli\bin\bne\bes\bs
@@ -245,53 +244,53 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
 
               [t\bti\bim\bme\be [-\b-p\bp]] [ ! ] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [ |\b| _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2 ... ]
 
-       The  standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a pipe to the standard
-       input of _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2.  This connection is performed  before  any  redirec-
+       The standard output of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is connected via a pipe to the  standard
+       input  of  _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2.   This connection is performed before any redirec-
        tions specified by the command (see R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN below).
 
        The return status of a pipeline is the exit status of the last command,
-       unless the p\bpi\bip\bpe\bef\bfa\bai\bil\bl option is enabled.  If  p\bpi\bip\bpe\bef\bfa\bai\bil\bl  is  enabled,  the
-       pipeline's  return  status is the value of the last (rightmost) command
-       to exit with a non-zero status, or zero if all commands  exit  success-
+       unless  the  p\bpi\bip\bpe\bef\bfa\bai\bil\bl  option  is enabled.  If p\bpi\bip\bpe\bef\bfa\bai\bil\bl is enabled, the
+       pipeline's return status is the value of the last  (rightmost)  command
+       to  exit  with a non-zero status, or zero if all commands exit success-
        fully.  If the reserved word !\b!  precedes a pipeline, the exit status of
-       that pipeline is the logical negation of the exit status  as  described
-       above.   The  shell waits for all commands in the pipeline to terminate
+       that  pipeline  is the logical negation of the exit status as described
+       above.  The shell waits for all commands in the pipeline  to  terminate
        before returning a value.
 
-       If the t\bti\bim\bme\be reserved word precedes a pipeline, the elapsed as  well  as
-       user  and  system  time consumed by its execution are reported when the
-       pipeline terminates.  The -\b-p\bp option changes the output format  to  that
-       specified  by  POSIX.   The  T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable may be set to a format
-       string that specifies how the timing information should  be  displayed;
+       If  the  t\bti\bim\bme\be reserved word precedes a pipeline, the elapsed as well as
+       user and system time consumed by its execution are  reported  when  the
+       pipeline  terminates.   The -\b-p\bp option changes the output format to that
+       specified by POSIX.  The T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable may be  set  to  a  format
+       string  that  specifies how the timing information should be displayed;
        see the description of T\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs below.
 
-       Each  command in a pipeline is executed as a separate process (i.e., in
+       Each command in a pipeline is executed as a separate process (i.e.,  in
        a subshell).
 
    L\bLi\bis\bst\bts\bs
-       A _\bl_\bi_\bs_\bt is a sequence of one or more pipelines separated by one  of  the
+       A  _\bl_\bi_\bs_\bt  is a sequence of one or more pipelines separated by one of the
        operators ;\b;, &\b&, &\b&&\b&, or |\b||\b|, and optionally terminated by one of ;\b;, &\b&, or
        <\b<n\bne\bew\bwl\bli\bin\bne\be>\b>.
 
        Of these list operators, &\b&&\b& and |\b||\b| have equal precedence, followed by ;\b;
        and &\b&,\b, which have equal precedence.
 
-       A  sequence  of  one or more newlines may appear in a _\bl_\bi_\bs_\bt instead of a
+       A sequence of one or more newlines may appear in a _\bl_\bi_\bs_\bt  instead  of  a
        semicolon to delimit commands.
 
-       If a command is terminated by the control operator &\b&,  the  shell  exe-
-       cutes  the command in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd in a subshell.  The shell does not
-       wait for the command to finish, and the return status is  0.   Commands
-       separated  by  a  ;\b; are executed sequentially; the shell waits for each
-       command to terminate in turn.  The return status is the exit status  of
+       If  a  command  is terminated by the control operator &\b&, the shell exe-
+       cutes the command in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd in a subshell.  The shell does  not
+       wait  for  the command to finish, and the return status is 0.  Commands
+       separated by a ;\b; are executed sequentially; the shell  waits  for  each
+       command  to terminate in turn.  The return status is the exit status of
        the last command executed.
 
-       The  control operators &\b&&\b& and |\b||\b| denote AND lists and OR lists, respec-
+       The control operators &\b&&\b& and |\b||\b| denote AND lists and OR lists,  respec-
        tively.  An AND list has the form
 
               _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 &\b&&\b& _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
 
-       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\bis executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns an  exit  status
+       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b is  executed if, and only if, _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns an exit status
        of zero.
 
        An OR list has the form
@@ -299,75 +298,75 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
               _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 |\b||\b| _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b2
 
 
-       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b is  executed  if and only if _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns a non-zero exit
-       status.  The return status of AND and OR lists is the  exit  status  of
+       _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\bis executed if and only if _\bc_\bo_\bm_\bm_\ba_\bn_\bd_\b1 returns  a  non-zero  exit
+       status.   The  return  status of AND and OR lists is the exit status of
        the last command executed in the list.
 
    C\bCo\bom\bmp\bpo\bou\bun\bnd\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs
        A _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd is one of the following:
 
-       (_\bl_\bi_\bs_\bt) _\bl_\bi_\bs_\b is  executed in a subshell environment (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bU-\b-
-              T\bTI\bIO\bON\bE\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT below).  Variable assignments and builtin  com-
-              mands  that  affect  the  shell's  environment  do not remain in
-              effect after the command completes.  The return  status  is  the
+       (_\bl_\bi_\bs_\bt) _\bl_\bi_\bs_\bis executed in a subshell environment (see  C\bCO\bOM\bMM\bMA\bAN\bND\b E\bEX\bXE\bEC\bCU\bU-\b-
+              T\bTI\bIO\bON\b E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT below).  Variable assignments and builtin com-
+              mands that affect the  shell's  environment  do  not  remain  in
+              effect  after  the  command completes.  The return status is the
               exit status of _\bl_\bi_\bs_\bt.
 
        { _\bl_\bi_\bs_\bt; }
-              _\bl_\bi_\bs_\b is simply executed in the current shell environment.  _\bl_\bi_\bs_\bt
-              must be terminated with a newline or semicolon.  This  is  known
-              as  a  _\bg_\br_\bo_\bu_\bp  _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   The return status is the exit status of
-              _\bl_\bi_\bs_\bt.  Note that unlike the metacharacters (\b( and )\b), {\b{ and }\b are
+              _\bl_\bi_\bs_\bis simply executed in the current shell environment.   _\bl_\bi_\bs_\bt
+              must  be  terminated with a newline or semicolon.  This is known
+              as a _\bg_\br_\bo_\bu_\bp _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  The return status is  the  exit  status  of
+              _\bl_\bi_\bs_\bt.   Note that unlike the metacharacters (\b( and )\b), {\b{ and }\b} are
               _\br_\be_\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs and must occur where a reserved word is permitted
-              to be recognized.  Since they do not cause a  word  break,  they
+              to  be  recognized.   Since they do not cause a word break, they
               must be separated from _\bl_\bi_\bs_\bt by whitespace.
 
        ((_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn))
-              The  _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn  is  evaluated  according to the rules described
-              below under A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  If the value of the  expres-
-              sion  is  non-zero, the return status is 0; otherwise the return
+              The _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is evaluated according  to  the  rules  described
+              below  under A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  If the value of the expres-
+              sion is non-zero, the return status is 0; otherwise  the  return
               status is 1.  This is exactly equivalent to l\ble\bet\bt "\b"_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn"\b".
 
        [\b[[\b[ _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn ]\b]]\b]
-              Return a status of 0 or 1 depending on  the  evaluation  of  the
-              conditional  expression _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  Expressions are composed of
-              the primaries described  below  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\b E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
-              Word  splitting  and pathname expansion are not performed on the
-              words between the [\b[[\b[ and  ]\b]]\b];  tilde  expansion,  parameter  and
-              variable  expansion, arithmetic expansion, command substitution,
-              process substitution, and quote removal are  performed.   Condi-
+              Return  a  status  of  0 or 1 depending on the evaluation of the
+              conditional expression _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  Expressions are composed  of
+              the  primaries  described  below  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.
+              Word splitting and pathname expansion are not performed  on  the
+              words  between  the  [\b[[\b[  and  ]\b]]\b]; tilde expansion, parameter and
+              variable expansion, arithmetic expansion, command  substitution,
+              process  substitution,  and quote removal are performed.  Condi-
               tional operators such as -\b-f\bf must be unquoted to be recognized as
               primaries.
 
-              When the =\b==\b= and !\b!=\b= operators are used, the string to  the  right
+              When  the  =\b==\b= and !\b!=\b= operators are used, the string to the right
               of the operator is considered a pattern and matched according to
-              the rules described below under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg.  If the  shell
-              option  n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh  is  enabled, the match is performed without
-              regard to the case of alphabetic characters.  The  return  value
-              is  0  if  the  string  matches  or  does not match the pattern,
-              respectively, and 1 otherwise.  Any part of the pattern  may  be
-              quoted to force it to be matched as a string.
-
-              An  additional  binary operator, =\b=~\b~, is available, with the same
-              precedence as =\b==\b= and !\b!=\b=.  When it is used,  the  string  to  the
-              right  of the operator is considered an extended regular expres-
+              the  rules described below under P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg.  If the shell
+              option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh is enabled, the match  is  performed  without
+              regard  to  the case of alphabetic characters.  The return value
+              is 0 if the string matches (=\b==\b=) or does not match (!\b!=\b=) the  pat-
+              tern, and 1 otherwise.  Any part of the pattern may be quoted to
+              force it to be matched as a string.
+
+              An additional binary operator, =\b=~\b~, is available, with  the  same
+              precedence  as  =\b==\b=  and  !\b!=\b=.  When it is used, the string to the
+              right of the operator is considered an extended regular  expres-
               sion and matched accordingly (as in _\br_\be_\bg_\be_\bx(3)).  The return value
               is 0 if the string matches the pattern, and 1 otherwise.  If the
-              regular expression is syntactically incorrect,  the  conditional
+              regular  expression  is syntactically incorrect, the conditional
               expression's return value is 2.  If the shell option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
               is enabled, the match is performed without regard to the case of
               alphabetic  characters.   Substrings  matched  by  parenthesized
-              subexpressions within the regular expression are  saved  in  the
-              array  variable  B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH.  The element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with
+              subexpressions  within  the  regular expression are saved in the
+              array variable B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH.  The element of  B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\b with
               index 0 is the portion of the string matching the entire regular
-              expression.   The  element  of  B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with index _\bn is the
-              portion of the string matching the _\bnth parenthesized  subexpres-
+              expression.  The element of B\bBA\bAS\bSH\bH_\b_R\bRE\bEM\bMA\bAT\bTC\bCH\bH with  index  _\bn  is  the
+              portion  of the string matching the _\bnth parenthesized subexpres-
               sion.
 
-              Expressions  may  be  combined  using  the  following operators,
+              Expressions may  be  combined  using  the  following  operators,
               listed in decreasing order of precedence:
 
               (\b( _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn )\b)
-                     Returns the value of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  This  may  be  used  to
+                     Returns  the  value  of  _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn.  This may be used to
                      override the normal precedence of operators.
               !\b! _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
                      True if _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn is false.
@@ -377,56 +376,61 @@ S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
                      True if either _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 or _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 is true.
 
               The &\b&&\b& and |\b||\b| operators do not evaluate _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b2 if the value
-              of _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1 is sufficient to determine the  return  value  of
+              of  _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn_\b1  is  sufficient to determine the return value of
               the entire conditional expression.
 
        f\bfo\bor\br _\bn_\ba_\bm_\be [ i\bin\bn _\bw_\bo_\br_\bd ] ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
               The list of words following i\bin\bn is expanded, generating a list of
               items.  The variable _\bn_\ba_\bm_\be is set to each element of this list in
-              turn,  and  _\bl_\bi_\bs_\bt is executed each time.  If the i\bin\bn _\bw_\bo_\br_\bd is omit-
-              ted, the f\bfo\bor\br command executes  _\bl_\bi_\bs_\bt  once  for  each  positional
+              turn, and _\bl_\bi_\bs_\bt is executed each time.  If the i\bin\bn _\bw_\bo_\br_\bd  is  omit-
+              ted,  the  f\bfo\bor\br  command  executes  _\bl_\bi_\bs_\bt once for each positional
               parameter that is set (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).  The return status
-              is the exit status of the last command that  executes.   If  the
+              is  the  exit  status of the last command that executes.  If the
               expansion of the items following i\bin\bn results in an empty list, no
               commands are executed, and the return status is 0.
 
        f\bfo\bor\br (( _\be_\bx_\bp_\br_\b1 ; _\be_\bx_\bp_\br_\b2 ; _\be_\bx_\bp_\br_\b3 )) ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
               First, the arithmetic expression _\be_\bx_\bp_\br_\b1 is evaluated according to
-              the  rules  described  below  under  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.  The
-              arithmetic expression _\be_\bx_\bp_\br_\b2 is then evaluated  repeatedly  until
-              it  evaluates  to zero.  Each time _\be_\bx_\bp_\br_\b2 evaluates to a non-zero
-              value, _\bl_\bi_\bs_\bt is executed and the arithmetic expression  _\be_\bx_\bp_\br_\b is
-              evaluated.   If  any  expression is omitted, it behaves as if it
+              the rules described  below  under  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC  E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN.   The
+              arithmetic  expression  _\be_\bx_\bp_\br_\b2 is then evaluated repeatedly until
+              it evaluates to zero.  Each time _\be_\bx_\bp_\br_\b2 evaluates to  a  non-zero
+              value,  _\bl_\bi_\bs_\bt  is executed and the arithmetic expression _\be_\bx_\bp_\br_\b3 is
+              evaluated.  If any expression is omitted, it behaves  as  if  it
               evaluates to 1.  The return value is the exit status of the last
               command in _\bl_\bi_\bs_\bt that is executed, or false if any of the expres-
               sions is invalid.
 
        s\bse\bel\ble\bec\bct\bt _\bn_\ba_\bm_\be [ i\bin\bn _\bw_\bo_\br_\bd ] ; d\bdo\bo _\bl_\bi_\bs_\bt ; d\bdo\bon\bne\be
               The list of words following i\bin\bn is expanded, generating a list of
-              items.   The  set  of  expanded words is printed on the standard
-              error, each preceded by a number.  If the i\bin\bn  _\bw_\bo_\br_\bd  is  omitted,
-              the  positional  parameters  are printed (see P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS below).
-              The P\bPS\bS3\b3 prompt is then displayed and a line read from the  stan-
-              dard  input.   If the line consists of a number corresponding to
-              one of the displayed words, then the value of  _\bn_\ba_\bm_\be  is  set  to
-              that  word.  If the line is empty, the words and prompt are dis-
+              items.  The set of expanded words is  printed  on  the  standard
+              error,  each  preceded  by a number.  If the i\bin\bn _\bw_\bo_\br_\bd is omitted,
+              the positional parameters are printed  (see  P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\b below).
+              The  P\bPS\bS3\b3 prompt is then displayed and a line read from the stan-
+              dard input.  If the line consists of a number  corresponding  to
+              one  of  the  displayed  words, then the value of _\bn_\ba_\bm_\be is set to
+              that word.  If the line is empty, the words and prompt are  dis-
               played again.  If EOF is read, the command completes.  Any other
-              value  read  causes  _\bn_\ba_\bm_\be  to  be set to null.  The line read is
-              saved in the variable R\bRE\bEP\bPL\bLY\bY.  The _\bl_\bi_\bs_\bt is  executed  after  each
+              value read causes _\bn_\ba_\bm_\be to be set to  null.   The  line  read  is
+              saved  in  the  variable R\bRE\bEP\bPL\bLY\bY.  The _\bl_\bi_\bs_\bt is executed after each
               selection until a b\bbr\bre\bea\bak\bk command is executed.  The exit status of
-              s\bse\bel\ble\bec\bct\bis the exit status of the last command executed in  _\bl_\bi_\bs_\bt,
+              s\bse\bel\ble\bec\bct\b is the exit status of the last command executed in _\bl_\bi_\bs_\bt,
               or zero if no commands were executed.
 
        c\bca\bas\bse\be _\bw_\bo_\br_\bd i\bin\bn [ [(] _\bp_\ba_\bt_\bt_\be_\br_\bn [ |\b| _\bp_\ba_\bt_\bt_\be_\br_\bn ] ... ) _\bl_\bi_\bs_\bt ;; ] ... e\bes\bsa\bac\bc
               A c\bca\bas\bse\be command first expands _\bw_\bo_\br_\bd, and tries to match it against
               each _\bp_\ba_\bt_\bt_\be_\br_\bn in turn, using the same matching rules as for path-
-              name  expansion  (see  P\bPa\bat\bth\bhn\bna\bam\bme\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn below).  If the shell
-              option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh is enabled, the match  is  performed  without
-              regard  to  the  case of alphabetic characters.  When a match is
-              found, the corresponding _\bl_\bi_\bs_\bt  is  executed.   After  the  first
-              match,  no subsequent matches are attempted.  The exit status is
-              zero if no pattern matches.  Otherwise, it is the exit status of
-              the last command executed in _\bl_\bi_\bs_\bt.
+              name expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be  E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn  below).   The  _\bw_\bo_\br_\bd  is
+              expanded  using  tilde  expansion, parameter and variable expan-
+              sion, arithmetic substituion, command substitution, process sub-
+              stitution  and quote removal.  Each _\bp_\ba_\bt_\bt_\be_\br_\bn examined is expanded
+              using tilde expansion, parameter and variable expansion,  arith-
+              metic  substituion,  command substitution, and process substitu-
+              tion.  If the shell option n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh is enabled, the match  is
+              performed  without  regard to the case of alphabetic characters.
+              When a match is  found,  the  corresponding  _\bl_\bi_\bs_\bt  is  executed.
+              After the first match, no subsequent matches are attempted.  The
+              exit status is zero if no pattern matches.  Otherwise, it is the
+              exit status of the last command executed in _\bl_\bi_\bs_\bt.
 
        i\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt_\b; [ e\bel\bli\bif\bf _\bl_\bi_\bs_\bt; t\bth\bhe\ben\bn _\bl_\bi_\bs_\bt; ] ... [ e\bel\bls\bse\be _\bl_\bi_\bs_\bt; ] f\bfi\bi
               The  i\bif\bf  _\bl_\bi_\bs_\bt is executed.  If its exit status is zero, the t\bth\bhe\ben\bn
@@ -1381,21 +1385,20 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
               the expansion is the resultant list.
 
        ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br/\b/_\bp_\ba_\bt_\bt_\be_\br_\bn/\b/_\bs_\bt_\br_\bi_\bn_\bg}
-       ${_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br/\b//\b/_\bp_\ba_\bt_\bt_\be_\br_\bn/\b/_\bs_\bt_\br_\bi_\bn_\bg}
               The _\bp_\ba_\bt_\bt_\be_\br_\bn is expanded to produce a pattern just as in pathname
               expansion.  _\bP_\ba_\br_\ba_\bm_\be_\bt_\be_\br is expanded and the longest match of  _\bp_\ba_\bt_\b-
-              _\bt_\be_\br_\bn  against  its  value is replaced with _\bs_\bt_\br_\bi_\bn_\bg.  In the first
-              form, only the first match is replaced.  The second form  causes
-              all  matches  of _\bp_\ba_\bt_\bt_\be_\br_\bn to be replaced with _\bs_\bt_\br_\bi_\bn_\bg.  If _\bp_\ba_\bt_\bt_\be_\br_\bn
-              begins with #\b#, it must match at the beginning  of  the  expanded
-              value  of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  If _\bp_\ba_\bt_\bt_\be_\br_\bn begins with %\b%, it must match at
-              the end of the expanded value of _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br.  If _\bs_\bt_\br_\bi_\bn_\bg is  null,
-              matches  of  _\bp_\ba_\bt_\bt_\be_\br_\bn are deleted and the /\b/ following _\bp_\ba_\bt_\bt_\be_\br_\bn may
-              be omitted.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or *\b*, the substitution  operation
-              is  applied to each positional parameter in turn, and the expan-
-              sion is the resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an  array  variable
-              subscripted  with  @\b@ or *\b*, the substitution operation is applied
-              to each member of the array in turn, and the  expansion  is  the
+              _\bt_\be_\br_\bn  against  its  value  is replaced with _\bs_\bt_\br_\bi_\bn_\bg.  If Ipattern
+              _\bb_\be_\bg_\bi_\bn_\bs _\bw_\bi_\bt_\bh /\b/_\b, _\ba_\bl_\bl _\bm_\ba_\bt_\bc_\bh_\be_\bs _\bo_\bf _\bp_\ba_\bt_\bt_\be_\br_\bn _\ba_\br_\be _\br_\be_\bp_\bl_\ba_\bc_\be_\bd _\bw_\bi_\bt_\bh  _\bs_\bt_\br_\bi_\bn_\bg_\b.
+              _\bN_\bo_\br_\bm_\ba_\bl_\bl_\by  _\bo_\bn_\bl_\by  _\bt_\bh_\be  _\bf_\bi_\br_\bs_\bt _\bm_\ba_\bt_\bc_\bh _\bi_\bs _\br_\be_\bp_\bl_\ba_\bc_\be_\bd_\b.  _\bI_\bf _\bp_\ba_\bt_\bt_\be_\br_\bn _\bb_\be_\bg_\bi_\bn_\bs
+              _\bw_\bi_\bt_\bh #\b#_\b, _\bi_\bt _\bm_\bu_\bs_\bt _\bm_\ba_\bt_\bc_\bh _\ba_\bt _\bt_\bh_\be _\bb_\be_\bg_\bi_\bn_\bn_\bi_\bn_\bg _\bo_\bf _\bt_\bh_\be _\be_\bx_\bp_\ba_\bn_\bd_\be_\bd _\bv_\ba_\bl_\bu_\be  _\bo_\bf
+              _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br_\b.   _\bI_\bf  _\bp_\ba_\bt_\bt_\be_\br_\bn _\bb_\be_\bg_\bi_\bn_\bs _\bw_\bi_\bt_\bh %\b%_\b, _\bi_\bt _\bm_\bu_\bs_\bt _\bm_\ba_\bt_\bc_\bh _\ba_\bt _\bt_\bh_\be _\be_\bn_\bd
+              _\bo_\bf _\bt_\bh_\be _\be_\bx_\bp_\ba_\bn_\bd_\be_\bd _\bv_\ba_\bl_\bu_\be _\bo_\bf _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br_\b.  _\bI_\bf _\bs_\bt_\br_\bi_\bn_\bg _\bi_\bs _\bn_\bu_\bl_\bl_\b,  _\bm_\ba_\bt_\bc_\bh_\be_\bs
+              _\bo_\bf  _\bp_\ba_\bt_\bt_\be_\br_\bn _\ba_\br_\be _\bd_\be_\bl_\be_\bt_\be_\bd _\ba_\bn_\bd _\bt_\bh_\be /\b/ _\bf_\bo_\bl_\bl_\bo_\bw_\bi_\bn_\bg _\bp_\ba_\bt_\bt_\be_\br_\bn _\bm_\ba_\by _\bb_\be _\bo_\bm_\bi_\bt_\b-
+              _\bt_\be_\bd_\b.  _\bI_\bf _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is @\b@ or  *\b*,  the  substitution  operation  is
+              applied  to each positional parameter in turn, and the expansion
+              is the resultant list.  If _\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br is an array  variable  sub-
+              scripted  with  @\b@ or *\b*, the substitution operation is applied to
+              each member of the array in  turn,  and  the  expansion  is  the
               resultant list.
 
    C\bCo\bom\bmm\bma\ban\bnd\bd S\bSu\bub\bbs\bst\bti\bit\btu\but\bti\bio\bon\bn
@@ -1537,7 +1540,7 @@ E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
 
               Within [\b[ and ]\b], _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\bc_\bl_\ba_\bs_\bs_\be_\bs can  be  specified  using  the
               syntax  [\b[:\b:_\bc_\bl_\ba_\bs_\bs:\b:]\b],  where  _\bc_\bl_\ba_\bs_\bs is one of the following classes
-              defined in the POSIX.2 standard:
+              defined in the POSIX standard:
               a\bal\bln\bnu\bum\bm a\bal\blp\bph\bha\ba a\bas\bsc\bci\bii\bi b\bbl\bla\ban\bnk\bk c\bcn\bnt\btr\brl\bl  d\bdi\big\bgi\bit\bt  g\bgr\bra\bap\bph\bh  l\blo\bow\bwe\ber\br  p\bpr\bri\bin\bnt\bt  p\bpu\bun\bnc\bct\bt
               s\bsp\bpa\bac\bce\be u\bup\bpp\bpe\ber\br w\bwo\bor\brd\bd x\bxd\bdi\big\bgi\bit\bt
               A character class matches any character belonging to that class.
@@ -1852,22 +1855,23 @@ F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        s\bse\bet\bt  will  list the function names only (and optionally the source file
        and line number, if the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is  enabled).   Functions
        may  be exported so that subshells automatically have them defined with
-       the -\b-f\bf option to the e\bex\bxp\bpo\bor\brt\bt builtin.  Note  that  shell  functions  and
-       variables  with  the same name may result in multiple identically-named
-       entries in the environment passed to the shell's children.  Care should
-       be taken in cases where this may cause a problem.
+       the -\b-f\bf option to the e\bex\bxp\bpo\bor\brt\bt builtin.   A  function  definition  may  be
+       deleted  using  the  -\b-f\bf  option  to the u\bun\bns\bse\bet\bt builtin.  Note that shell
+       functions and variables with the same name may result in multiple iden-
+       tically-named  entries  in  the environment passed to the shell's chil-
+       dren.  Care should be taken in cases where this may cause a problem.
 
-       Functions  may  be  recursive.   No  limit  is imposed on the number of
+       Functions may be recursive.  No limit  is  imposed  on  the  number  of
        recursive calls.
 
 A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
-       The shell allows arithmetic expressions to be evaluated, under  certain
-       circumstances  (see the l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands and A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc
-       E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn).  Evaluation is done in fixed-width integers with  no  check
-       for  overflow, though division by 0 is trapped and flagged as an error.
-       The operators and their precedence, associativity, and values  are  the
-       same  as in the C language.  The following list of operators is grouped
-       into levels of equal-precedence operators.  The levels  are  listed  in
+       The  shell allows arithmetic expressions to be evaluated, under certain
+       circumstances (see the l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands and  A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc
+       E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn).   Evaluation  is done in fixed-width integers with no check
+       for overflow, though division by 0 is trapped and flagged as an  error.
+       The  operators  and their precedence, associativity, and values are the
+       same as in the C language.  The following list of operators is  grouped
+       into  levels  of  equal-precedence operators.  The levels are listed in
        order of decreasing precedence.
 
        _\bi_\bd+\b++\b+ _\bi_\bd-\b--\b-
@@ -1895,39 +1899,39 @@ A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
        _\be_\bx_\bp_\br_\b1 ,\b, _\be_\bx_\bp_\br_\b2
               comma
 
-       Shell  variables  are  allowed as operands; parameter expansion is per-
+       Shell variables are allowed as operands; parameter  expansion  is  per-
        formed before the expression is evaluated.  Within an expression, shell
-       variables  may  also  be referenced by name without using the parameter
-       expansion syntax.  A shell variable that is null or unset evaluates  to
+       variables may also be referenced by name without  using  the  parameter
+       expansion  syntax.  A shell variable that is null or unset evaluates to
        0 when referenced by name without using the parameter expansion syntax.
-       The value of a variable is evaluated as an arithmetic  expression  when
-       it  is  referenced, or when a variable which has been given the _\bi_\bn_\bt_\be_\bg_\be_\br
+       The  value  of a variable is evaluated as an arithmetic expression when
+       it is referenced, or when a variable which has been given  the  _\bi_\bn_\bt_\be_\bg_\be_\br
        attribute using d\bde\bec\bcl\bla\bar\bre\be -\b-i\bi is assigned a value.  A null value evaluates
-       to  0.   A shell variable need not have its integer attribute turned on
+       to 0.  A shell variable need not have its integer attribute  turned  on
        to be used in an expression.
 
        Constants with a leading 0 are interpreted as octal numbers.  A leading
-       0x  or  0X  denotes  hexadecimal.   Otherwise,  numbers  take  the form
-       [_\bb_\ba_\bs_\be_\b#]n, where _\bb_\ba_\bs_\be is a decimal number between 2 and 64  representing
+       0x or  0X  denotes  hexadecimal.   Otherwise,  numbers  take  the  form
+       [_\bb_\ba_\bs_\be_\b#]n,  where _\bb_\ba_\bs_\be is a decimal number between 2 and 64 representing
        the arithmetic base, and _\bn is a number in that base.  If _\bb_\ba_\bs_\be_\b# is omit-
-       ted, then base 10 is used.  The digits greater than 9  are  represented
-       by  the  lowercase  letters,  the  uppercase letters, @, and _, in that
-       order.  If _\bb_\ba_\bs_\be is less than or equal to 36,  lowercase  and  uppercase
+       ted,  then  base 10 is used.  The digits greater than 9 are represented
+       by the lowercase letters, the uppercase letters,  @,  and  _,  in  that
+       order.   If  _\bb_\ba_\bs_\be  is less than or equal to 36, lowercase and uppercase
        letters may be used interchangeably to represent numbers between 10 and
        35.
 
-       Operators are evaluated in order  of  precedence.   Sub-expressions  in
-       parentheses  are  evaluated first and may override the precedence rules
+       Operators  are  evaluated  in  order of precedence.  Sub-expressions in
+       parentheses are evaluated first and may override the  precedence  rules
        above.
 
 C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
-       Conditional expressions are used by the [\b[[\b[  compound  command  and  the
-       t\bte\bes\bst\b and [\b[ builtin commands to test file attributes and perform string
-       and arithmetic comparisons.  Expressions are formed from the  following
-       unary  or  binary  primaries.   If any _\bf_\bi_\bl_\be argument to one of the pri-
+       Conditional  expressions  are  used  by the [\b[[\b[ compound command and the
+       t\bte\bes\bst\band [\b[ builtin commands to test file attributes and perform  string
+       and  arithmetic comparisons.  Expressions are formed from the following
+       unary or binary primaries.  If any _\bf_\bi_\bl_\be argument to  one  of  the  pri-
        maries is of the form _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\bn, then file descriptor _\bn is checked.  If
-       the  _\bf_\bi_\bl_\be  argument  to  one  of  the  primaries  is one of _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
-       _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt, or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, file descriptor 0, 1, or 2,  respectively,
+       the _\bf_\bi_\bl_\be argument to  one  of  the  primaries  is  one  of  _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
+       _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt,  or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, file descriptor 0, 1, or 2, respectively,
        is checked.
 
        Unless otherwise specified, primaries that operate on files follow sym-
@@ -1974,20 +1978,20 @@ C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
        -\b-S\bS _\bf_\bi_\bl_\be
               True if _\bf_\bi_\bl_\be exists and is a socket.
        -\b-N\bN _\bf_\bi_\bl_\be
-              True  if  _\bf_\bi_\bl_\be  exists  and  has been modified since it was last
+              True if _\bf_\bi_\bl_\be exists and has been  modified  since  it  was  last
               read.
        _\bf_\bi_\bl_\be_\b1 -n\bnt\bt _\bf_\bi_\bl_\be_\b2
-              True if _\bf_\bi_\bl_\be_\b1 is newer (according  to  modification  date)  than
+              True  if  _\bf_\bi_\bl_\be_\b1  is  newer (according to modification date) than
               _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b1 exists and _\bf_\bi_\bl_\be_\b2 does not.
        _\bf_\bi_\bl_\be_\b1 -o\bot\bt _\bf_\bi_\bl_\be_\b2
-              True  if _\bf_\bi_\bl_\be_\b1 is older than _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b2 exists and _\bf_\bi_\bl_\be_\b1
+              True if _\bf_\bi_\bl_\be_\b1 is older than _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b2 exists and  _\bf_\bi_\bl_\be_\b1
               does not.
        _\bf_\bi_\bl_\be_\b1 -\b-e\bef\bf _\bf_\bi_\bl_\be_\b2
-              True if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode  num-
+              True  if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode num-
               bers.
        -\b-o\bo _\bo_\bp_\bt_\bn_\ba_\bm_\be
-              True  if  shell  option  _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  enabled.   See the list of
-              options under the description  of  the  -\b-o\bo  option  to  the  s\bse\bet\bt
+              True if shell option  _\bo_\bp_\bt_\bn_\ba_\bm_\be  is  enabled.   See  the  list  of
+              options  under  the  description  of  the  -\b-o\bo  option to the s\bse\bet\bt
               builtin below.
        -\b-z\bz _\bs_\bt_\br_\bi_\bn_\bg
               True if the length of _\bs_\bt_\br_\bi_\bn_\bg is zero.
@@ -2003,111 +2007,111 @@ C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
               True if the strings are not equal.
 
        _\bs_\bt_\br_\bi_\bn_\bg_\b1 <\b< _\bs_\bt_\br_\bi_\bn_\bg_\b2
-              True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts before _\bs_\bt_\br_\bi_\bn_\bg_\b2  lexicographically  in  the
+              True  if  _\bs_\bt_\br_\bi_\bn_\bg_\b1  sorts before _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically in the
               current locale.
 
        _\bs_\bt_\br_\bi_\bn_\bg_\b1 >\b> _\bs_\bt_\br_\bi_\bn_\bg_\b2
-              True  if  _\bs_\bt_\br_\bi_\bn_\bg_\b1  sorts  after _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically in the
+              True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts after  _\bs_\bt_\br_\bi_\bn_\bg_\b2  lexicographically  in  the
               current locale.
 
        _\ba_\br_\bg_\b1 O\bOP\bP _\ba_\br_\bg_\b2
-              O\bOP\bis one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be.  These  arithmetic
-              binary  operators return true if _\ba_\br_\bg_\b1 is equal to, not equal to,
-              less than, less than or equal to, greater than, or greater  than
-              or  equal  to _\ba_\br_\bg_\b2, respectively.  _\bA_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may be positive
+              O\bOP\b is one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be.  These arithmetic
+              binary operators return true if _\ba_\br_\bg_\b1 is equal to, not equal  to,
+              less  than, less than or equal to, greater than, or greater than
+              or equal to _\ba_\br_\bg_\b2, respectively.  _\bA_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may  be  positive
               or negative integers.
 
 S\bSI\bIM\bMP\bPL\bLE\bE C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
-       When a simple command is executed, the  shell  performs  the  following
+       When  a  simple  command  is executed, the shell performs the following
        expansions, assignments, and redirections, from left to right.
 
-       1.     The  words  that  the  parser has marked as variable assignments
-              (those preceding the command name) and  redirections  are  saved
+       1.     The words that the parser has  marked  as  variable  assignments
+              (those  preceding  the  command name) and redirections are saved
               for later processing.
 
-       2.     The  words that are not variable assignments or redirections are
-              expanded.  If any words remain after expansion, the  first  word
-              is  taken  to be the name of the command and the remaining words
+       2.     The words that are not variable assignments or redirections  are
+              expanded.   If  any words remain after expansion, the first word
+              is taken to be the name of the command and the  remaining  words
               are the arguments.
 
        3.     Redirections are performed as described above under R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN.
 
        4.     The text after the =\b= in each variable assignment undergoes tilde
               expansion, parameter expansion, command substitution, arithmetic
-              expansion,  and quote removal before being assigned to the vari-
+              expansion, and quote removal before being assigned to the  vari-
               able.
 
        If no command name results, the variable assignments affect the current
-       shell  environment.  Otherwise, the variables are added to the environ-
-       ment of the executed command and do not affect the current shell  envi-
-       ronment.   If  any  of  the assignments attempts to assign a value to a
-       readonly variable, an error occurs, and the command exits with  a  non-
+       shell environment.  Otherwise, the variables are added to the  environ-
+       ment  of the executed command and do not affect the current shell envi-
+       ronment.  If any of the assignments attempts to assign  a  value  to  a
+       readonly  variable,  an error occurs, and the command exits with a non-
        zero status.
 
-       If  no  command  name  results,  redirections are performed, but do not
-       affect the current shell environment.  A redirection error  causes  the
+       If no command name results, redirections  are  performed,  but  do  not
+       affect  the  current shell environment.  A redirection error causes the
        command to exit with a non-zero status.
 
-       If  there is a command name left after expansion, execution proceeds as
-       described below.  Otherwise, the command exits.  If one of  the  expan-
-       sions  contained a command substitution, the exit status of the command
-       is the exit status of the  last  command  substitution  performed.   If
+       If there is a command name left after expansion, execution proceeds  as
+       described  below.   Otherwise, the command exits.  If one of the expan-
+       sions contained a command substitution, the exit status of the  command
+       is  the  exit  status  of  the last command substitution performed.  If
        there were no command substitutions, the command exits with a status of
        zero.
 
 C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN
-       After a command has been split into words, if it results  in  a  simple
-       command  and  an  optional list of arguments, the following actions are
+       After  a  command  has been split into words, if it results in a simple
+       command and an optional list of arguments, the  following  actions  are
        taken.
 
-       If the command name contains no slashes, the shell attempts  to  locate
-       it.   If  there  exists a shell function by that name, that function is
-       invoked as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS.  If the name does not match  a
-       function,  the shell searches for it in the list of shell builtins.  If
+       If  the  command name contains no slashes, the shell attempts to locate
+       it.  If there exists a shell function by that name,  that  function  is
+       invoked  as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS.  If the name does not match a
+       function, the shell searches for it in the list of shell builtins.   If
        a match is found, that builtin is invoked.
 
-       If the name is neither a shell function nor a builtin, and contains  no
-       slashes,  b\bba\bas\bsh\bh  searches  each element of the P\bPA\bAT\bTH\bH for a directory con-
-       taining an executable file by that name.  B\bBa\bas\bsh\bh uses  a  hash  table  to
-       remember  the  full pathnames of executable files (see h\bha\bas\bsh\bh under S\bSH\bHE\bEL\bLL\bL
-       B\bBU\bUI\bIL\bLT\bTI\bIN\bC\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  A full search of the directories in  P\bPA\bAT\bTH\b is
-       performed  only  if the command is not found in the hash table.  If the
-       search is unsuccessful, the shell prints an error message  and  returns
+       If  the name is neither a shell function nor a builtin, and contains no
+       slashes, b\bba\bas\bsh\bh searches each element of the P\bPA\bAT\bTH\bH for  a  directory  con-
+       taining  an  executable  file  by that name.  B\bBa\bas\bsh\bh uses a hash table to
+       remember the full pathnames of executable files (see h\bha\bas\bsh\bh  under  S\bSH\bHE\bEL\bLL\bL
+       B\bBU\bUI\bIL\bLT\bTI\bIN\b C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below).  A full search of the directories in P\bPA\bAT\bTH\bH is
+       performed only if the command is not found in the hash table.   If  the
+       search  is  unsuccessful, the shell prints an error message and returns
        an exit status of 127.
 
-       If  the  search  is  successful, or if the command name contains one or
+       If the search is successful, or if the command  name  contains  one  or
        more slashes, the shell executes the named program in a separate execu-
        tion environment.  Argument 0 is set to the name given, and the remain-
        ing arguments to the command are set to the arguments given, if any.
 
-       If this execution fails because the file is not in  executable  format,
-       and  the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt, a
-       file containing shell commands.  A subshell is spawned to  execute  it.
-       This  subshell  reinitializes itself, so that the effect is as if a new
-       shell had been invoked to handle the script, with  the  exception  that
-       the  locations  of  commands  remembered  by the parent (see h\bha\bas\bsh\bh below
+       If  this  execution fails because the file is not in executable format,
+       and the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt,  a
+       file  containing  shell commands.  A subshell is spawned to execute it.
+       This subshell reinitializes itself, so that the effect is as if  a  new
+       shell  had  been  invoked to handle the script, with the exception that
+       the locations of commands remembered by  the  parent  (see  h\bha\bas\bsh\b below
        under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS) are retained by the child.
 
-       If the program is a file beginning with #\b#!\b!, the remainder of the  first
-       line  specifies an interpreter for the program.  The shell executes the
+       If  the program is a file beginning with #\b#!\b!, the remainder of the first
+       line specifies an interpreter for the program.  The shell executes  the
        specified interpreter on operating systems that do not handle this exe-
        cutable format themselves.  The arguments to the interpreter consist of
-       a single optional argument following the interpreter name on the  first
-       line  of  the program, followed by the name of the program, followed by
+       a  single optional argument following the interpreter name on the first
+       line of the program, followed by the name of the program,  followed  by
        the command arguments, if any.
 
 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
-       The shell has an _\be_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt, which consists of  the  follow-
+       The  shell  has an _\be_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt, which consists of the follow-
        ing:
 
 
-       +\bo      open  files inherited by the shell at invocation, as modified by
+       +\bo      open files inherited by the shell at invocation, as modified  by
               redirections supplied to the e\bex\bxe\bec\bc builtin
 
-       +\bo      the current working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or  p\bpo\bop\bpd\bd,  or
+       +\bo      the  current  working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or p\bpo\bop\bpd\bd, or
               inherited by the shell at invocation
 
-       +\bo      the  file  creation  mode mask as set by u\bum\bma\bas\bsk\bk or inherited from
+       +\bo      the file creation mode mask as set by u\bum\bma\bas\bsk\bk  or  inherited  from
               the shell's parent
 
        +\bo      current traps set by t\btr\bra\bap\bp
@@ -2115,225 +2119,225 @@ 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\bN
        +\bo      shell parameters that are set by variable assignment or with s\bse\bet\bt
               or inherited from the shell's parent in the environment
 
-       +\bo      shell  functions  defined during execution or inherited from the
+       +\bo      shell functions defined during execution or inherited  from  the
               shell's parent in the environment
 
-       +\bo      options enabled at invocation (either by default  or  with  com-
+       +\bo      options  enabled  at  invocation (either by default or with com-
               mand-line arguments) or by s\bse\bet\bt
 
        +\bo      options enabled by s\bsh\bho\bop\bpt\bt
 
        +\bo      shell aliases defined with a\bal\bli\bia\bas\bs
 
-       +\bo      various  process  IDs,  including  those of background jobs, the
+       +\bo      various process IDs, including those  of  background  jobs,  the
               value of $\b$$\b$, and the value of $\b$P\bPP\bPI\bID\bD
 
-       When a simple command other than a builtin or shell function is  to  be
-       executed,  it  is invoked in a separate execution environment that con-
-       sists of the following.  Unless otherwise noted, the values are  inher-
+       When  a  simple command other than a builtin or shell function is to be
+       executed, it is invoked in a separate execution environment  that  con-
+       sists  of the following.  Unless otherwise noted, the values are inher-
        ited from the shell.
 
 
-       +\bo      the  shell's  open  files,  plus any modifications and additions
+       +\bo      the shell's open files, plus  any  modifications  and  additions
               specified by redirections to the command
 
        +\bo      the current working directory
 
        +\bo      the file creation mode mask
 
-       +\bo      shell variables and functions  marked  for  export,  along  with
+       +\bo      shell  variables  and  functions  marked  for export, along with
               variables exported for the command, passed in the environment
 
        +\bo      traps caught by the shell are reset to the values inherited from
               the shell's parent, and traps ignored by the shell are ignored
 
-       A command invoked  in  this  separate  environment  cannot  affect  the
+       A  command  invoked  in  this  separate  environment  cannot affect the
        shell's execution environment.
 
-       Command  substitution, commands grouped with parentheses, and asynchro-
+       Command substitution, commands grouped with parentheses, and  asynchro-
        nous commands are invoked in a subshell environment that is a duplicate
-       of  the  shell  environment,  except that traps caught by the shell are
+       of the shell environment, except that traps caught  by  the  shell  are
        reset to the values that the shell inherited from its parent at invoca-
        tion.  Builtin commands that are invoked as part of a pipeline are also
        executed in a subshell environment.  Changes made to the subshell envi-
        ronment cannot affect the shell's execution environment.
 
-       If  a  command  is  followed  by a &\b& and job control is not active, the
-       default standard input for the command is  the  empty  file  _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl.
-       Otherwise,  the  invoked  command  inherits the file descriptors of the
+       If a command is followed by a &\b& and job  control  is  not  active,  the
+       default  standard  input  for  the command is the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl.
+       Otherwise, the invoked command inherits the  file  descriptors  of  the
        calling shell as modified by redirections.
 
 E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
-       When a program is invoked it is given an array of  strings  called  the
+       When  a  program  is invoked it is given an array of strings called the
        _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt.   This  is  a  list  of  _\bn_\ba_\bm_\be-_\bv_\ba_\bl_\bu_\be  pairs,  of  the  form
        _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be.
 
-       The shell provides several ways  to  manipulate  the  environment.   On
+       The  shell  provides  several  ways  to manipulate the environment.  On
        invocation, the shell scans its own environment and creates a parameter
-       for each name found, automatically marking it for _\be_\bx_\bp_\bo_\br_\bt to child  pro-
-       cesses.   Executed  commands  inherit  the environment.  The e\bex\bxp\bpo\bor\brt\bt and
-       d\bde\bec\bcl\bla\bar\bre\b-\b-x\bx commands allow parameters and functions to be added  to  and
+       for  each name found, automatically marking it for _\be_\bx_\bp_\bo_\br_\bt to child pro-
+       cesses.  Executed commands inherit the  environment.   The  e\bex\bxp\bpo\bor\brt\b and
+       d\bde\bec\bcl\bla\bar\bre\b -\b-x\bx  commands allow parameters and functions to be added to and
        deleted from the environment.  If the value of a parameter in the envi-
-       ronment is modified, the new value becomes  part  of  the  environment,
-       replacing  the  old.  The environment inherited by any executed command
-       consists of the shell's initial environment, whose values may be  modi-
-       fied  in  the  shell, less any pairs removed by the u\bun\bns\bse\bet\bt command, plus
+       ronment  is  modified,  the  new value becomes part of the environment,
+       replacing the old.  The environment inherited by any  executed  command
+       consists  of the shell's initial environment, whose values may be modi-
+       fied in the shell, less any pairs removed by the  u\bun\bns\bse\bet\bt  command,  plus
        any additions via the e\bex\bxp\bpo\bor\brt\bt and d\bde\bec\bcl\bla\bar\bre\be -\b-x\bx commands.
 
-       The environment for any _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or  function  may  be  augmented
-       temporarily  by  prefixing  it with parameter assignments, as described
+       The  environment  for  any  _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or function may be augmented
+       temporarily by prefixing it with parameter  assignments,  as  described
        above in P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS.  These assignment statements affect only the envi-
        ronment seen by that command.
 
-       If  the  -\b-k\bk option is set (see the s\bse\bet\bt builtin command below), then _\ba_\bl_\bl
-       parameter assignments are placed in the environment for a command,  not
+       If the -\b-k\bk option is set (see the s\bse\bet\bt builtin command below),  then  _\ba_\bl_\bl
+       parameter  assignments are placed in the environment for a command, not
        just those that precede the command name.
 
-       When  b\bba\bas\bsh\bh  invokes  an  external command, the variable _\b_ is set to the
-       full file name of the command and passed to that command in  its  envi-
+       When b\bba\bas\bsh\bh invokes an external command, the variable _\b_  is  set  to  the
+       full  file  name of the command and passed to that command in its envi-
        ronment.
 
 E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
        For the shell's purposes, a command which exits with a zero exit status
-       has succeeded.  An exit status of zero indicates success.   A  non-zero
-       exit  status  indicates  failure.  When a command terminates on a fatal
+       has  succeeded.   An exit status of zero indicates success.  A non-zero
+       exit status indicates failure.  When a command terminates  on  a  fatal
        signal _\bN, b\bba\bas\bsh\bh uses the value of 128+_\bN as the exit status.
 
-       If a command is not found, the child  process  created  to  execute  it
-       returns  a status of 127.  If a command is found but is not executable,
+       If  a  command  is  not  found, the child process created to execute it
+       returns a status of 127.  If a command is found but is not  executable,
        the return status is 126.
 
        If a command fails because of an error during expansion or redirection,
        the exit status is greater than zero.
 
-       Shell  builtin  commands return a status of 0 (_\bt_\br_\bu_\be) if successful, and
-       non-zero (_\bf_\ba_\bl_\bs_\be) if an error occurs while they execute.   All  builtins
+       Shell builtin commands return a status of 0 (_\bt_\br_\bu_\be) if  successful,  and
+       non-zero  (_\bf_\ba_\bl_\bs_\be)  if an error occurs while they execute.  All builtins
        return an exit status of 2 to indicate incorrect usage.
 
-       B\bBa\bas\bsh\b itself  returns  the  exit  status  of the last command executed,
-       unless a syntax error occurs, in which case it exits  with  a  non-zero
+       B\bBa\bas\bsh\bitself returns the exit  status  of  the  last  command  executed,
+       unless  a  syntax  error occurs, in which case it exits with a non-zero
        value.  See also the e\bex\bxi\bit\bt builtin command below.
 
 S\bSI\bIG\bGN\bNA\bAL\bLS\bS
-       When  b\bba\bas\bsh\bh  is  interactive,  in  the  absence of any traps, it ignores
+       When b\bba\bas\bsh\bh is interactive, in the  absence  of  any  traps,  it  ignores
        S\bSI\bIG\bGT\bTE\bER\bRM\bM (so that k\bki\bil\bll\bl 0\b0 does not kill an interactive shell), and S\bSI\bIG\bGI\bIN\bNT\bT
-       is  caught and handled (so that the w\bwa\bai\bit\bt builtin is interruptible).  In
-       all cases, b\bba\bas\bsh\bh ignores S\bSI\bIG\bGQ\bQU\bUI\bIT\bT.  If job control  is  in  effect,  b\bba\bas\bsh\bh
+       is caught and handled (so that the w\bwa\bai\bit\bt builtin is interruptible).   In
+       all  cases,  b\bba\bas\bsh\bh  ignores  S\bSI\bIG\bGQ\bQU\bUI\bIT\bT.  If job control is in effect, b\bba\bas\bsh\bh
        ignores S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bTT\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
 
        Non-builtin commands run by b\bba\bas\bsh\bh have signal handlers set to the values
-       inherited by the shell from its parent.  When job  control  is  not  in
-       effect,  asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition to
-       these inherited handlers.  Commands run as a result of command  substi-
+       inherited  by  the  shell  from its parent.  When job control is not in
+       effect, asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition  to
+       these  inherited handlers.  Commands run as a result of command substi-
        tution ignore the keyboard-generated job control signals S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bT-\b-
        T\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
 
-       The shell exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP.   Before  exiting,
-       an  interactive  shell  resends  the  S\bSI\bIG\bGH\bHU\bUP\bP  to  all  jobs, running or
+       The  shell  exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP.  Before exiting,
+       an interactive shell  resends  the  S\bSI\bIG\bGH\bHU\bUP\bP  to  all  jobs,  running  or
        stopped.  Stopped jobs are sent S\bSI\bIG\bGC\bCO\bON\bNT\bT to ensure that they receive the
-       S\bSI\bIG\bGH\bHU\bUP\bP.   To  prevent the shell from sending the signal to a particular
-       job, it should be removed from the jobs table with the  d\bdi\bis\bso\bow\bwn\b builtin
-       (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below)  or marked to not receive S\bSI\bIG\bGH\bHU\bUP\bP
+       S\bSI\bIG\bGH\bHU\bUP\bP.  To prevent the shell from sending the signal to  a  particular
+       job,  it  should be removed from the jobs table with the d\bdi\bis\bso\bow\bwn\bn builtin
+       (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) or  marked  to  not  receive  S\bSI\bIG\bGH\bHU\bUP\bP
        using d\bdi\bis\bso\bow\bwn\bn -\b-h\bh.
 
-       If the h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt shell option has been set with  s\bsh\bho\bop\bpt\bt,  b\bba\bas\bsh\bh  sends  a
+       If  the  h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt  shell  option has been set with s\bsh\bho\bop\bpt\bt, b\bba\bas\bsh\bh sends a
        S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an interactive login shell exits.
 
-       If  b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal for
+       If b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal  for
        which a trap has been set, the trap will not be executed until the com-
-       mand  completes.   When b\bba\bas\bsh\bh is waiting for an asynchronous command via
-       the w\bwa\bai\bit\bt builtin, the reception of a signal for which a trap  has  been
+       mand completes.  When b\bba\bas\bsh\bh is waiting for an asynchronous  command  via
+       the  w\bwa\bai\bit\bt  builtin, the reception of a signal for which a trap has been
        set will cause the w\bwa\bai\bit\bt builtin to return immediately with an exit sta-
        tus greater than 128, immediately after which the trap is executed.
 
 J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
-       _\bJ_\bo_\b_\bc_\bo_\bn_\bt_\br_\bo_\bl refers to the ability to  selectively  stop  (_\bs_\bu_\bs_\bp_\be_\bn_\bd)  the
+       _\bJ_\bo_\b _\bc_\bo_\bn_\bt_\br_\bo_\bl  refers  to  the ability to selectively stop (_\bs_\bu_\bs_\bp_\be_\bn_\bd) the
        execution of processes and continue (_\br_\be_\bs_\bu_\bm_\be) their execution at a later
-       point.  A user typically  employs  this  facility  via  an  interactive
+       point.   A  user  typically  employs  this  facility via an interactive
        interface supplied jointly by the system's terminal driver and b\bba\bas\bsh\bh.
 
-       The  shell  associates  a  _\bj_\bo_\bb with each pipeline.  It keeps a table of
-       currently executing jobs, which may be listed with  the  j\bjo\bob\bbs\b command.
-       When  b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd), it prints a
+       The shell associates a _\bj_\bo_\bb with each pipeline.  It  keeps  a  table  of
+       currently  executing  jobs,  which may be listed with the j\bjo\bob\bbs\bs command.
+       When b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd), it prints  a
        line that looks like:
 
               [1] 25647
 
        indicating that this job is job number 1 and that the process ID of the
        last process in the pipeline associated with this job is 25647.  All of
-       the processes in a single pipeline are members of the same  job.   B\bBa\bas\bsh\bh
+       the  processes  in a single pipeline are members of the same job.  B\bBa\bas\bsh\bh
        uses the _\bj_\bo_\bb abstraction as the basis for job control.
 
-       To  facilitate the implementation of the user interface to job control,
+       To facilitate the implementation of the user interface to job  control,
        the operating system maintains the notion of a _\bc_\bu_\br_\br_\be_\bn_\bt _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl _\bp_\br_\bo_\bc_\be_\bs_\bs
        _\bg_\br_\bo_\bu_\bp _\bI_\bD.  Members of this process group (processes whose process group
        ID is equal to the current terminal process group ID) receive keyboard-
-       generated  signals  such  as S\bSI\bIG\bGI\bIN\bNT\bT.  These processes are said to be in
-       the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd.  _\bB_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd processes are those whose process group  ID
+       generated signals such as S\bSI\bIG\bGI\bIN\bNT\bT.  These processes are said  to  be  in
+       the  _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd.  _\bB_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd processes are those whose process group ID
        differs from the terminal's; such processes are immune to keyboard-gen-
-       erated signals.  Only foreground processes are allowed to read from  or
+       erated  signals.  Only foreground processes are allowed to read from or
        write to the terminal.  Background processes which attempt to read from
        (write to) the terminal are sent a S\bSI\bIG\bGT\bTT\bTI\bIN\bN (\b(S\bSI\bIG\bGT\bTT\bTO\bOU\bU)\b) signal by the ter-
        minal driver, which, unless caught, suspends the process.
 
-       If  the operating system on which b\bba\bas\bsh\bh is running supports job control,
+       If the operating system on which b\bba\bas\bsh\bh is running supports job  control,
        b\bba\bas\bsh\bh contains facilities to use it.  Typing the _\bs_\bu_\bs_\bp_\be_\bn_\bd character (typ-
        ically ^\b^Z\bZ, Control-Z) while a process is running causes that process to
-       be stopped and returns control to b\bba\bas\bsh\bh.   Typing  the  _\bd_\be_\bl_\ba_\by_\be_\b _\bs_\bu_\bs_\bp_\be_\bn_\bd
-       character  (typically  ^\b^Y\bY,  Control-Y) causes the process to be stopped
-       when it attempts to read input from the terminal,  and  control  to  be
-       returned  to b\bba\bas\bsh\bh.  The user may then manipulate the state of this job,
-       using the b\bbg\bg command to continue it in the background, the  f\bfg\b command
+       be  stopped  and  returns  control to b\bba\bas\bsh\bh.  Typing the _\bd_\be_\bl_\ba_\by_\be_\bd _\bs_\bu_\bs_\bp_\be_\bn_\bd
+       character (typically ^\b^Y\bY, Control-Y) causes the process  to  be  stopped
+       when  it  attempts  to  read input from the terminal, and control to be
+       returned to b\bba\bas\bsh\bh.  The user may then manipulate the state of this  job,
+       using  the  b\bbg\bg command to continue it in the background, the f\bfg\bg command
        to continue it in the foreground, or the k\bki\bil\bll\bl command to kill it.  A ^\b^Z\bZ
        takes effect immediately, and has the additional side effect of causing
        pending output and typeahead to be discarded.
 
        There are a number of ways to refer to a job in the shell.  The charac-
        ter %\b% introduces a job name.  Job number _\bn may be referred to as %\b%n\bn.  A
-       job  may  also  be referred to using a prefix of the name used to start
-       it, or using a substring that appears in its command line.   For  exam-
+       job may also be referred to using a prefix of the name  used  to  start
+       it,  or  using a substring that appears in its command line.  For exam-
        ple, %\b%c\bce\be refers to a stopped c\bce\be job.  If a prefix matches more than one
-       job, b\bba\bas\bsh\bh reports an error.  Using %\b%?\b?c\bce\be, on the other hand,  refers  to
+       job,  b\bba\bas\bsh\bh  reports an error.  Using %\b%?\b?c\bce\be, on the other hand, refers to
        any job containing the string c\bce\be in its command line.  If the substring
-       matches more than one job, b\bba\bas\bsh\bh reports an error.  The symbols  %\b%%\b and
-       %\b%+\b refer  to  the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb, which is the last
-       job stopped while it was in the foreground  or  started  in  the  back-
-       ground.   The  _\bp_\br_\be_\bv_\bi_\bo_\bu_\bs _\bj_\bo_\bb may be referenced using %\b%-\b-.  In output per-
+       matches  more  than one job, b\bba\bas\bsh\bh reports an error.  The symbols %\b%%\b% and
+       %\b%+\brefer to the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb, which  is  the  last
+       job  stopped  while  it  was  in the foreground or started in the back-
+       ground.  The _\bp_\br_\be_\bv_\bi_\bo_\bu_\bs _\bj_\bo_\bb may be referenced using %\b%-\b-.  In  output  per-
        taining to jobs (e.g., the output of the j\bjo\bob\bbs\bs command), the current job
-       is  always flagged with a +\b+, and the previous job with a -\b-.  A single %
-       (with no accompanying job specification) also  refers  to  the  current
+       is always flagged with a +\b+, and the previous job with a -\b-.  A single  %
+       (with  no  accompanying  job  specification) also refers to the current
        job.
 
-       Simply  naming a job can be used to bring it into the foreground: %\b%1\b1 is
-       a synonym for `\b``\b`f\bfg\bg %\b%1\b1'\b''\b', bringing job 1 from the  background  into  the
-       foreground.   Similarly,  `\b``\b`%\b%1\b1  &\b&'\b''\b'  resumes  job  1 in the background,
+       Simply naming a job can be used to bring it into the foreground: %\b%1\b is
+       a  synonym  for  `\b``\b`f\bfg\bg %\b%1\b1'\b''\b', bringing job 1 from the background into the
+       foreground.  Similarly, `\b``\b`%\b%1\b1 &\b&'\b''\b'  resumes  job  1  in  the  background,
        equivalent to `\b``\b`b\bbg\bg %\b%1\b1'\b''\b'.
 
-       The shell learns immediately whenever a job changes  state.   Normally,
+       The  shell  learns immediately whenever a job changes state.  Normally,
        b\bba\bas\bsh\bh waits until it is about to print a prompt before reporting changes
-       in a job's status so as to not interrupt any other output.  If  the  -\b-b\bb
+       in  a  job's status so as to not interrupt any other output.  If the -\b-b\bb
        option to the s\bse\bet\bt builtin command is enabled, b\bba\bas\bsh\bh reports such changes
-       immediately.  Any trap on S\bSI\bIG\bGC\bCH\bHL\bLD\bD  is  executed  for  each  child  that
+       immediately.   Any  trap  on  S\bSI\bIG\bGC\bCH\bHL\bLD\bD  is  executed for each child that
        exits.
 
-       If  an  attempt  to exit b\bba\bas\bsh\bh is made while jobs are stopped, the shell
+       If an attempt to exit b\bba\bas\bsh\bh is made while jobs are  stopped,  the  shell
        prints a warning message.  The j\bjo\bob\bbs\bs command may then be used to inspect
        their status.  If a second attempt to exit is made without an interven-
-       ing command, the shell does not print another warning, and the  stopped
+       ing  command, the shell does not print another warning, and the stopped
        jobs are terminated.
 
 P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
        When executing interactively, b\bba\bas\bsh\bh displays the primary prompt P\bPS\bS1\b1 when
-       it is ready to read a command, and the secondary  prompt  P\bPS\bS2\b2  when  it
-       needs  more  input  to  complete  a  command.  B\bBa\bas\bsh\bh allows these prompt
-       strings to be customized by inserting  a  number  of  backslash-escaped
+       it  is  ready  to  read a command, and the secondary prompt P\bPS\bS2\b2 when it
+       needs more input to complete  a  command.   B\bBa\bas\bsh\bh  allows  these  prompt
+       strings  to  be  customized  by inserting a number of backslash-escaped
        special characters that are decoded as follows:
               \\b\a\ba     an ASCII bell character (07)
-              \\b\d\bd     the  date  in "Weekday Month Date" format (e.g., "Tue May
+              \\b\d\bd     the date in "Weekday Month Date" format (e.g.,  "Tue  May
                      26")
               \\b\D\bD{\b{_\bf_\bo_\br_\bm_\ba_\bt}\b}
-                     the _\bf_\bo_\br_\bm_\ba_\bt is passed to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  and  the  result  is
-                     inserted  into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\bt results
+                     the  _\bf_\bo_\br_\bm_\ba_\bt  is  passed  to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) and the result is
+                     inserted into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\b results
                      in a locale-specific time representation.  The braces are
                      required
               \\b\e\be     an ASCII escape character (033)
@@ -2343,7 +2347,7 @@ P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
               \\b\l\bl     the basename of the shell's terminal device name
               \\b\n\bn     newline
               \\b\r\br     carriage return
-              \\b\s\bs     the  name  of  the shell, the basename of $\b$0\b0 (the portion
+              \\b\s\bs     the name of the shell, the basename of  $\b$0\b0  (the  portion
                      following the final slash)
               \\b\t\bt     the current time in 24-hour HH:MM:SS format
               \\b\T\bT     the current time in 12-hour HH:MM:SS format
@@ -2352,7 +2356,7 @@ P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
               \\b\u\bu     the username of the current user
               \\b\v\bv     the version of b\bba\bas\bsh\bh (e.g., 2.00)
               \\b\V\bV     the release of b\bba\bas\bsh\bh, version + patch level (e.g., 2.00.0)
-              \\b\w\bw     the  current  working  directory,  with $\b$H\bHO\bOM\bME\bE abbreviated
+              \\b\w\bw     the current working  directory,  with  $\b$H\bHO\bOM\bME\b abbreviated
                      with a tilde
               \\b\W\bW     the basename of the current working directory, with $\b$H\bHO\bOM\bME\bE
                      abbreviated with a tilde
@@ -2361,63 +2365,63 @@ P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
               \\b\$\b$     if the effective UID is 0, a #\b#, otherwise a $\b$
               \\b\_\bn_\bn_\bn   the character corresponding to the octal number _\bn_\bn_\bn
               \\b\\\b\     a backslash
-              \\b\[\b[     begin  a sequence of non-printing characters, which could
-                     be used to embed a terminal  control  sequence  into  the
+              \\b\[\b[     begin a sequence of non-printing characters, which  could
+                     be  used  to  embed  a terminal control sequence into the
                      prompt
               \\b\]\b]     end a sequence of non-printing characters
 
-       The  command  number  and the history number are usually different: the
-       history number of a command is its position in the history list,  which
-       may  include  commands  restored  from  the  history  file (see H\bHI\bIS\bST\bTO\bOR\bRY\bY
-       below), while the command number is the position  in  the  sequence  of
-       commands  executed  during the current shell session.  After the string
-       is decoded, it is expanded via parameter expansion,  command  substitu-
-       tion,  arithmetic expansion, and quote removal, subject to the value of
-       the p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs shell option (see the description of the  s\bsh\bho\bop\bpt\b command
+       The command number and the history number are  usually  different:  the
+       history  number of a command is its position in the history list, which
+       may include commands  restored  from  the  history  file  (see  H\bHI\bIS\bST\bTO\bOR\bRY\bY
+       below),  while  the  command  number is the position in the sequence of
+       commands executed during the current shell session.  After  the  string
+       is  decoded,  it is expanded via parameter expansion, command substitu-
+       tion, arithmetic expansion, and quote removal, subject to the value  of
+       the  p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs  shell option (see the description of the s\bsh\bho\bop\bpt\bt command
        under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
 
 R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
-       This  is  the library that handles reading input when using an interac-
+       This is the library that handles reading input when using  an  interac-
        tive shell, unless the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option is given at shell invocation.
        By default, the line editing commands are similar to those of emacs.  A
-       vi-style line editing interface is also available.  To  turn  off  line
-       editing  after  the shell is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo v\bvi\bi options
+       vi-style  line  editing  interface is also available.  To turn off line
+       editing after the shell is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo  v\bvi\b options
        to the s\bse\bet\bt builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be N\bNo\bot\bta\bat\bti\bio\bon\bn
        In this section, the emacs-style notation is used to denote keystrokes.
-       Control  keys  are  denoted by C-_\bk_\be_\by, e.g., C-n means Control-N.  Simi-
-       larly, _\bm_\be_\bt_\ba keys are denoted by M-_\bk_\be_\by, so M-x means Meta-X.   (On  key-
-       boards  without a _\bm_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press the Escape key
+       Control keys are denoted by C-_\bk_\be_\by, e.g., C-n  means  Control-N.   Simi-
+       larly,  _\bm_\be_\bt_\ba  keys are denoted by M-_\bk_\be_\by, so M-x means Meta-X.  (On key-
+       boards without a _\bm_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press the Escape  key
        then the _\bx key.  This makes ESC the _\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx.  The combination M-C-_\bx
-       means  ESC-Control-_\bx, or press the Escape key then hold the Control key
+       means ESC-Control-_\bx, or press the Escape key then hold the Control  key
        while pressing the _\bx key.)
 
        Readline commands may be given numeric _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, which normally act as
-       a  repeat  count.   Sometimes,  however, it is the sign of the argument
-       that is significant.  Passing a negative argument  to  a  command  that
-       acts  in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) causes that command to
-       act in a backward direction.  Commands whose  behavior  with  arguments
+       a repeat count.  Sometimes, however, it is the  sign  of  the  argument
+       that  is  significant.   Passing  a negative argument to a command that
+       acts in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) causes that command  to
+       act  in  a  backward direction.  Commands whose behavior with arguments
        deviates from this are noted below.
 
-       When  a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is saved
+       When a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is  saved
        for possible future retrieval (_\by_\ba_\bn_\bk_\bi_\bn_\bg).  The killed text is saved in a
        _\bk_\bi_\bl_\bl _\br_\bi_\bn_\bg.  Consecutive kills cause the text to be accumulated into one
        unit, which can be yanked all at once.  Commands which do not kill text
        separate the chunks of text on the kill ring.
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be I\bIn\bni\bit\bti\bia\bal\bli\biz\bza\bat\bti\bio\bon\bn
-       Readline  is  customized  by putting commands in an initialization file
-       (the _\bi_\bn_\bp_\bu_\bt_\br_\bc file).  The name of this file is taken from the  value  of
-       the  I\bIN\bNP\bPU\bUT\bTR\bRC\bC  variable.   If  that  variable  is  unset, the default is
-       _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc.  When a program which uses the readline library starts  up,
+       Readline is customized by putting commands in  an  initialization  file
+       (the  _\bi_\bn_\bp_\bu_\bt_\br_\bc  file).  The name of this file is taken from the value of
+       the I\bIN\bNP\bPU\bUT\bTR\bRC\bC variable.  If  that  variable  is  unset,  the  default  is
+       _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc.   When a program which uses the readline library starts up,
        the initialization file is read, and the key bindings and variables are
-       set.  There are only a few basic constructs  allowed  in  the  readline
-       initialization  file.  Blank lines are ignored.  Lines beginning with a
-       #\bare comments.  Lines beginning with a  $\b$  indicate  conditional  con-
+       set.   There  are  only  a few basic constructs allowed in the readline
+       initialization file.  Blank lines are ignored.  Lines beginning with  a
+       #\b are  comments.   Lines  beginning with a $\b$ indicate conditional con-
        structs.  Other lines denote key bindings and variable settings.
 
-       The  default  key-bindings  may be changed with an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.  Other
+       The default key-bindings may be changed with an  _\bi_\bn_\bp_\bu_\bt_\br_\bc  file.   Other
        programs that use this library may add their own commands and bindings.
 
        For example, placing
@@ -2425,19 +2429,19 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               M-Control-u: universal-argument
        or
               C-Meta-u: universal-argument
-       into  the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the readline command _\bu_\bn_\bi_\bv_\be_\br_\b-
+       into the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the readline command  _\bu_\bn_\bi_\bv_\be_\br_\b-
        _\bs_\ba_\bl_\b-_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.
 
-       The following symbolic character names  are  recognized:  _\bR_\bU_\bB_\bO_\bU_\bT,  _\bD_\bE_\bL,
+       The  following  symbolic  character  names are recognized: _\bR_\bU_\bB_\bO_\bU_\bT, _\bD_\bE_\bL,
        _\bE_\bS_\bC, _\bL_\bF_\bD, _\bN_\bE_\bW_\bL_\bI_\bN_\bE, _\bR_\bE_\bT, _\bR_\bE_\bT_\bU_\bR_\bN, _\bS_\bP_\bC, _\bS_\bP_\bA_\bC_\bE, and _\bT_\bA_\bB.
 
-       In  addition  to  command  names, readline allows keys to be bound to a
+       In addition to command names, readline allows keys to  be  bound  to  a
        string that is inserted when the key is pressed (a _\bm_\ba_\bc_\br_\bo).
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be K\bKe\bey\by B\bBi\bin\bnd\bdi\bin\bng\bgs\bs
-       The syntax for controlling key bindings in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file is  simple.
-       All  that is required is the name of the command or the text of a macro
-       and a key sequence to which it should be bound. The name may be  speci-
+       The  syntax for controlling key bindings in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file is simple.
+       All that is required is the name of the command or the text of a  macro
+       and  a key sequence to which it should be bound. The name may be speci-
        fied in one of two ways: as a symbolic key name, possibly with _\bM_\be_\bt_\ba_\b- or
        _\bC_\bo_\bn_\bt_\br_\bo_\bl_\b- prefixes, or as a key sequence.
 
@@ -2448,15 +2452,15 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               Meta-Rubout: backward-kill-word
               Control-o: "> output"
 
-       In  the above example, _\bC_\b-_\bu is bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
-       _\bM_\b-_\bD_\bE_\bis bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound  to
-       run  the macro expressed on the right hand side (that is, to insert the
+       In the above example, _\bC_\b-_\bu is bound to the function  u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
+       _\bM_\b-_\bD_\bE_\b is bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound to
+       run the macro expressed on the right hand side (that is, to insert  the
        text ``> output'' into the line).
 
-       In the second form, "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be  or  _\bm_\ba_\bc_\br_\bo,  k\bke\bey\bys\bse\beq\b differs
-       from  k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence may
-       be specified by placing the sequence within double  quotes.   Some  GNU
-       Emacs  style  key escapes can be used, as in the following example, but
+       In  the  second  form,  "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be or _\bm_\ba_\bc_\br_\bo, k\bke\bey\bys\bse\beq\bq differs
+       from k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence  may
+       be  specified  by  placing the sequence within double quotes.  Some GNU
+       Emacs style key escapes can be used, as in the following  example,  but
        the symbolic character names are not recognized.
 
               "\C-u": universal-argument
@@ -2464,7 +2468,7 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               "\e[11~": "Function Key 1"
 
        In this example, _\bC_\b-_\bu is again bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt.
-       _\bC_\b-_\b _\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b~ is
+       _\bC_\b-_\b_\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b is
        bound to insert the text ``Function Key 1''.
 
        The full set of GNU Emacs style escape sequences is
@@ -2475,7 +2479,7 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               \\b\"\b"     literal "
               \\b\'\b'     literal '
 
-       In addition to the GNU Emacs style escape sequences, a  second  set  of
+       In  addition  to  the GNU Emacs style escape sequences, a second set of
        backslash escapes is available:
               \\b\a\ba     alert (bell)
               \\b\b\bb     backspace
@@ -2485,20 +2489,20 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               \\b\r\br     carriage return
               \\b\t\bt     horizontal tab
               \\b\v\bv     vertical tab
-              \\b\_\bn_\bn_\bn   the  eight-bit  character  whose value is the octal value
+              \\b\_\bn_\bn_\bn   the eight-bit character whose value is  the  octal  value
                      _\bn_\bn_\bn (one to three digits)
-              \\b\x\bx_\bH_\bH   the eight-bit character whose value  is  the  hexadecimal
+              \\b\x\bx_\bH_\bH   the  eight-bit  character  whose value is the hexadecimal
                      value _\bH_\bH (one or two hex digits)
 
        When entering the text of a macro, single or double quotes must be used
        to indicate a macro definition.  Unquoted text is assumed to be a func-
-       tion  name.   In  the macro body, the backslash escapes described above
-       are expanded.  Backslash will quote any other character  in  the  macro
+       tion name.  In the macro body, the backslash  escapes  described  above
+       are  expanded.   Backslash  will quote any other character in the macro
        text, including " and '.
 
-       B\bBa\bas\bsh\b allows the current readline key bindings to be displayed or modi-
-       fied with the b\bbi\bin\bnd\bd builtin command.  The editing mode may  be  switched
-       during  interactive  use by using the -\b-o\bo option to the s\bse\bet\bt builtin com-
+       B\bBa\bas\bsh\ballows the current readline key bindings to be displayed or  modi-
+       fied  with  the b\bbi\bin\bnd\bd builtin command.  The editing mode may be switched
+       during interactive use by using the -\b-o\bo option to the s\bse\bet\bt  builtin  com-
        mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
@@ -2508,44 +2512,44 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
 
               s\bse\bet\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\b-_\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
 
-       Except where noted, readline variables can take the values  O\bOn\bn  or  O\bOf\bff\bf
-       (without  regard  to  case).   Unrecognized variable names are ignored.
-       When a variable value is read, empty or null values, "on"  (case-insen-
+       Except  where  noted,  readline variables can take the values O\bOn\bn or O\bOf\bff\bf
+       (without regard to case).  Unrecognized  variable  names  are  ignored.
+       When  a variable value is read, empty or null values, "on" (case-insen-
        sitive), and "1" are equivalent to O\bOn\bn.  All other values are equivalent
        to O\bOf\bff\bf.  The variables and their default values are:
 
        b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be (\b(a\bau\bud\bdi\bib\bbl\ble\be)\b)
-              Controls what happens when readline wants to ring  the  terminal
+              Controls  what  happens when readline wants to ring the terminal
               bell.  If set to n\bno\bon\bne\be, readline never rings the bell.  If set to
-              v\bvi\bis\bsi\bib\bbl\ble\be, readline uses a visible bell if one is  available.   If
+              v\bvi\bis\bsi\bib\bbl\ble\be,  readline  uses a visible bell if one is available.  If
               set to a\bau\bud\bdi\bib\bbl\ble\be, readline attempts to ring the terminal's bell.
        b\bbi\bin\bnd\bd-\b-t\btt\bty\by-\b-s\bsp\bpe\bec\bci\bia\bal\bl-\b-c\bch\bha\bar\brs\bs (\b(O\bOn\bn)\b)
-              If  set  to O\bOn\bn, readline attempts to bind the control characters
+              If set to O\bOn\bn, readline attempts to bind the  control  characters
               treated specially by the kernel's terminal driver to their read-
               line equivalents.
        c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn (\b(`\b``\b`#\b#'\b''\b')\b)
-              The  string  that  is  inserted when the readline i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt
+              The string that is inserted  when  the  readline  i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt
               command is executed.  This command is bound to M\bM-\b-#\b# in emacs mode
               and to #\b# in vi command mode.
        c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
               If set to O\bOn\bn, readline performs filename matching and completion
               in a case-insensitive fashion.
        c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-q\bqu\bue\ber\bry\by-\b-i\bit\bte\bem\bms\bs (\b(1\b10\b00\b0)\b)
-              This determines when the user is queried about viewing the  num-
-              ber  of  possible  completions generated by the p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
-              t\bti\bio\bon\bns\bcommand.  It may be set to any integer value greater  than
-              or  equal  to  zero.   If  the number of possible completions is
+              This  determines when the user is queried about viewing the num-
+              ber of possible completions generated  by  the  p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
+              t\bti\bio\bon\bns\b command.  It may be set to any integer value greater than
+              or equal to zero.  If the  number  of  possible  completions  is
               greater than or equal to the value of this variable, the user is
-              asked  whether or not he wishes to view them; otherwise they are
+              asked whether or not he wishes to view them; otherwise they  are
               simply listed on the terminal.
        c\bco\bon\bnv\bve\ber\brt\bt-\b-m\bme\bet\bta\ba (\b(O\bOn\bn)\b)
-              If set to O\bOn\bn, readline will convert characters with  the  eighth
+              If  set  to O\bOn\bn, readline will convert characters with the eighth
               bit set to an ASCII key sequence by stripping the eighth bit and
-              prefixing an escape character (in effect, using  escape  as  the
+              prefixing  an  escape  character (in effect, using escape as the
               _\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx).
        d\bdi\bis\bsa\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn (\b(O\bOf\bff\bf)\b)
               If set to O\bOn\bn, readline will inhibit word completion.  Completion
-              characters will be inserted into the line as if  they  had  been
+              characters  will  be  inserted into the line as if they had been
               mapped to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt.
        e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be (\b(e\bem\bma\bac\bcs\bs)\b)
               Controls whether readline begins with a set of key bindings sim-
@@ -2553,111 +2557,111 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               v\bvi\bi.
        e\ben\bna\bab\bbl\ble\be-\b-k\bke\bey\byp\bpa\bad\bd (\b(O\bOf\bff\bf)\b)
               When set to O\bOn\bn, readline will try to enable the application key-
-              pad when it is called.  Some systems need  this  to  enable  the
+              pad  when  it  is  called.  Some systems need this to enable the
               arrow keys.
        e\bex\bxp\bpa\ban\bnd\bd-\b-t\bti\bil\bld\bde\be (\b(O\bOf\bff\bf)\b)
-              If  set  to  o\bon\bn,  tilde  expansion  is  performed  when readline
+              If set  to  o\bon\bn,  tilde  expansion  is  performed  when  readline
               attempts word completion.
        h\bhi\bis\bst\bto\bor\bry\by-\b-p\bpr\bre\bes\bse\ber\brv\bve\be-\b-p\bpo\boi\bin\bnt\bt (\b(O\bOf\bff\bf)\b)
-              If set to o\bon\bn, the history code attempts to place  point  at  the
-              same  location on each history line retrieved with p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
+              If  set  to  o\bon\bn, the history code attempts to place point at the
+              same location on each history line retrieved with  p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
               t\bto\bor\bry\by or n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by.
        h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsc\bcr\bro\bol\bll\bl-\b-m\bmo\bod\bde\be (\b(O\bOf\bff\bf)\b)
-              When set to O\bOn\bn, makes readline use a single  line  for  display,
+              When  set  to  O\bOn\bn, makes readline use a single line for display,
               scrolling the input horizontally on a single screen line when it
-              becomes longer than the screen width rather than wrapping  to  a
+              becomes  longer  than the screen width rather than wrapping to a
               new line.
        i\bin\bnp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
-              If  set to O\bOn\bn, readline will enable eight-bit input (that is, it
-              will not strip the high  bit  from  the  characters  it  reads),
+              If set to O\bOn\bn, readline will enable eight-bit input (that is,  it
+              will  not  strip  the  high  bit  from the characters it reads),
               regardless of what the terminal claims it can support.  The name
               m\bme\bet\bta\ba-\b-f\bfl\bla\bag\bg is a synonym for this variable.
        i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs (\b(`\b``\b`C\bC-\b-[\b[C\bC-\b-J\bJ'\b''\b')\b)
-              The string of characters that should  terminate  an  incremental
-              search  without  subsequently  executing the character as a com-
-              mand.  If this variable has not been given a value, the  charac-
+              The  string  of  characters that should terminate an incremental
+              search without subsequently executing the character  as  a  com-
+              mand.   If this variable has not been given a value, the charac-
               ters _\bE_\bS_\bC and _\bC_\b-_\bJ will terminate an incremental search.
        k\bke\bey\bym\bma\bap\bp (\b(e\bem\bma\bac\bcs\bs)\b)
-              Set  the current readline keymap.  The set of valid keymap names
-              is _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b _\bv_\bi_\b-_\bc_\bo_\bm_\b-
-              _\bm_\ba_\bn_\bd,  and  _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
-              equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.  The default value is  _\be_\bm_\ba_\bc_\bs;  the
+              Set the current readline keymap.  The set of valid keymap  names
+              is  _\be_\bm_\ba_\bc_\bs_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\b-
+              _\bm_\ba_\bn_\bd, and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd;  _\be_\bm_\ba_\bc_\b is
+              equivalent  to  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.  The default value is _\be_\bm_\ba_\bc_\bs; the
               value of e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be also affects the default keymap.
        m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOn\bn)\b)
               If set to O\bOn\bn, completed directory names have a slash appended.
        m\bma\bar\brk\bk-\b-m\bmo\bod\bdi\bif\bfi\bie\bed\bd-\b-l\bli\bin\bne\bes\bs (\b(O\bOf\bff\bf)\b)
-              If  set  to  O\bOn\bn,  history lines that have been modified are dis-
+              If set to O\bOn\bn, history lines that have  been  modified  are  dis-
               played with a preceding asterisk (*\b*).
        m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOf\bff\bf)\b)
               If set to O\bOn\bn, completed names which are symbolic links to direc-
-              tories   have   a  slash  appended  (subject  to  the  value  of
+              tories  have  a  slash  appended  (subject  to  the   value   of
               m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs).
        m\bma\bat\btc\bch\bh-\b-h\bhi\bid\bdd\bde\ben\bn-\b-f\bfi\bil\ble\bes\bs (\b(O\bOn\bn)\b)
-              This variable, when set to O\bOn\bn, causes readline  to  match  files
-              whose  names  begin  with  a  `.' (hidden files) when performing
-              filename completion, unless the leading `.' is supplied  by  the
+              This  variable,  when  set to O\bOn\bn, causes readline to match files
+              whose names begin with a  `.'  (hidden  files)  when  performing
+              filename  completion,  unless the leading `.' is supplied by the
               user in the filename to be completed.
        o\bou\but\btp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
-              If  set  to O\bOn\bn, readline will display characters with the eighth
+              If set to O\bOn\bn, readline will display characters with  the  eighth
               bit set directly rather than as a meta-prefixed escape sequence.
        p\bpa\bag\bge\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(O\bOn\bn)\b)
-              If  set to O\bOn\bn, readline uses an internal _\bm_\bo_\br_\be-like pager to dis-
+              If set to O\bOn\bn, readline uses an internal _\bm_\bo_\br_\be-like pager to  dis-
               play a screenful of possible completions at a time.
        p\bpr\bri\bin\bnt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bll\bly\by (\b(O\bOf\bff\bf)\b)
-              If set to O\bOn\bn, readline will  display  completions  with  matches
-              sorted  horizontally in alphabetical order, rather than down the
+              If  set  to  O\bOn\bn,  readline will display completions with matches
+              sorted horizontally in alphabetical order, rather than down  the
               screen.
        s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs (\b(O\bOf\bff\bf)\b)
-              This alters the default behavior of  the  completion  functions.
+              This  alters  the  default behavior of the completion functions.
               If set to o\bon\bn, words which have more than one possible completion
-              cause the matches to be listed immediately  instead  of  ringing
+              cause  the  matches  to be listed immediately instead of ringing
               the bell.
        s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-u\bun\bnm\bmo\bod\bdi\bif\bfi\bie\bed\bd (\b(O\bOf\bff\bf)\b)
-              This  alters the default behavior of the completion functions in
+              This alters the default behavior of the completion functions  in
               a fashion similar to s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs.  If set to o\bon\bn, words
-              which  have more than one possible completion without any possi-
-              ble partial completion (the possible completions don't  share  a
-              common  prefix)  cause  the  matches  to  be  listed immediately
+              which have more than one possible completion without any  possi-
+              ble  partial  completion (the possible completions don't share a
+              common prefix)  cause  the  matches  to  be  listed  immediately
               instead of ringing the bell.
        v\bvi\bis\bsi\bib\bbl\ble\be-\b-s\bst\bta\bat\bts\bs (\b(O\bOf\bff\bf)\b)
-              If set to O\bOn\bn, a character denoting a file's type as reported  by
-              _\bs_\bt_\ba_\bt(2)  is  appended to the filename when listing possible com-
+              If  set to O\bOn\bn, a character denoting a file's type as reported by
+              _\bs_\bt_\ba_\bt(2) is appended to the filename when listing  possible  com-
               pletions.
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bon\bnd\bdi\bit\bti\bio\bon\bna\bal\bl C\bCo\bon\bns\bst\btr\bru\buc\bct\bts\bs
-       Readline implements a facility similar in  spirit  to  the  conditional
-       compilation  features  of  the C preprocessor which allows key bindings
-       and variable settings to be performed as the result  of  tests.   There
+       Readline  implements  a  facility  similar in spirit to the conditional
+       compilation features of the C preprocessor which  allows  key  bindings
+       and  variable  settings  to be performed as the result of tests.  There
        are four parser directives used.
 
-       $\b$i\bif\bf    The  $\b$i\bif\bf construct allows bindings to be made based on the edit-
-              ing mode, the terminal being  used,  or  the  application  using
-              readline.   The text of the test extends to the end of the line;
+       $\b$i\bif\bf    The $\b$i\bif\bf construct allows bindings to be made based on the  edit-
+              ing  mode,  the  terminal  being  used, or the application using
+              readline.  The text of the test extends to the end of the  line;
               no characters are required to isolate it.
 
-              m\bmo\bod\bde\be   The m\bmo\bod\bde\be=\b= form of the  $\b$i\bif\bf  directive  is  used  to  test
-                     whether  readline  is  in  emacs or vi mode.  This may be
-                     used in conjunction with  the  s\bse\bet\bt  k\bke\bey\bym\bma\bap\bp  command,  for
-                     instance,  to  set  bindings  in  the  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd and
-                     _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bkeymaps only if readline is  starting  out  in
+              m\bmo\bod\bde\be   The  m\bmo\bod\bde\be=\b=  form  of  the  $\b$i\bif\bf  directive is used to test
+                     whether readline is in emacs or vi  mode.   This  may  be
+                     used  in  conjunction  with  the  s\bse\bet\bt k\bke\bey\bym\bma\bap\bp command, for
+                     instance, to  set  bindings  in  the  _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\b and
+                     _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\b keymaps  only  if readline is starting out in
                      emacs mode.
 
-              t\bte\ber\brm\bm   The  t\bte\ber\brm\bm=\b=  form may be used to include terminal-specific
+              t\bte\ber\brm\bm   The t\bte\ber\brm\bm=\b= form may be used to  include  terminal-specific
                      key bindings, perhaps to bind the key sequences output by
                      the terminal's function keys.  The word on the right side
                      of the =\b= is tested against the both full name of the ter-
-                     minal  and  the  portion  of the terminal name before the
-                     first -\b-.  This allows _\bs_\bu_\bn to match both _\bs_\bu_\bn and  _\bs_\bu_\bn_\b-_\bc_\bm_\bd,
+                     minal and the portion of the  terminal  name  before  the
+                     first  -\b-.  This allows _\bs_\bu_\bn to match both _\bs_\bu_\bn and _\bs_\bu_\bn_\b-_\bc_\bm_\bd,
                      for instance.
 
               a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn
                      The a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn construct is used to include application-
                      specific  settings.   Each  program  using  the  readline
-                     library  sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an initialization
+                     library sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an  initialization
                      file can test for a particular value.  This could be used
-                     to  bind key sequences to functions useful for a specific
-                     program.  For instance, the following command adds a  key
-                     sequence  that  quotes  the  current  or previous word in
+                     to bind key sequences to functions useful for a  specific
+                     program.   For instance, the following command adds a key
+                     sequence that quotes the  current  or  previous  word  in
                      Bash:
 
                      $\b$i\bif\bf Bash
@@ -2672,51 +2676,51 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               test fails.
 
        $\b$i\bin\bnc\bcl\blu\bud\bde\be
-              This directive takes a single filename as an argument and  reads
-              commands  and bindings from that file.  For example, the follow-
+              This  directive takes a single filename as an argument and reads
+              commands and bindings from that file.  For example, the  follow-
               ing directive would read _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc:
 
               $\b$i\bin\bnc\bcl\blu\bud\bde\be  _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc
 
    S\bSe\bea\bar\brc\bch\bhi\bin\bng\bg
-       Readline provides commands for searching through  the  command  history
+       Readline  provides  commands  for searching through the command history
        (see H\bHI\bIS\bST\bTO\bOR\bRY\bY below) for lines containing a specified string.  There are
        two search modes: _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl and _\bn_\bo_\bn_\b-_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl.
 
-       Incremental searches begin before the  user  has  finished  typing  the
-       search  string.  As each character of the search string is typed, read-
+       Incremental  searches  begin  before  the  user has finished typing the
+       search string.  As each character of the search string is typed,  read-
        line displays the next entry from the history matching the string typed
-       so  far.   An  incremental  search  requires only as many characters as
-       needed to find the desired history entry.  The  characters  present  in
-       the  value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used to terminate an
+       so far.  An incremental search requires  only  as  many  characters  as
+       needed  to  find  the desired history entry.  The characters present in
+       the value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used to terminate  an
        incremental search.  If that variable has not been assigned a value the
-       Escape  and  Control-J characters will terminate an incremental search.
-       Control-G will abort an incremental search  and  restore  the  original
-       line.   When the search is terminated, the history entry containing the
+       Escape and Control-J characters will terminate an  incremental  search.
+       Control-G  will  abort  an  incremental search and restore the original
+       line.  When the search is terminated, the history entry containing  the
        search string becomes the current line.
 
-       To find other matching entries in the history list, type  Control-S  or
-       Control-R  as appropriate.  This will search backward or forward in the
-       history for the next entry matching the search  string  typed  so  far.
-       Any  other  key sequence bound to a readline command will terminate the
-       search and execute that command.  For instance, a _\bn_\be_\bw_\bl_\bi_\bn_\be  will  termi-
+       To  find  other matching entries in the history list, type Control-S or
+       Control-R as appropriate.  This will search backward or forward in  the
+       history  for  the  next  entry matching the search string typed so far.
+       Any other key sequence bound to a readline command will  terminate  the
+       search  and  execute that command.  For instance, a _\bn_\be_\bw_\bl_\bi_\bn_\be will termi-
        nate the search and accept the line, thereby executing the command from
        the history list.
 
        Readline remembers the last incremental search string.  If two Control-
-       Rs  are  typed without any intervening characters defining a new search
+       Rs are typed without any intervening characters defining a  new  search
        string, any remembered search string is used.
 
-       Non-incremental searches read the entire search string before  starting
-       to  search  for matching history lines.  The search string may be typed
+       Non-incremental  searches read the entire search string before starting
+       to search for matching history lines.  The search string may  be  typed
        by the user or be part of the contents of the current line.
 
    R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bom\bmm\bma\ban\bnd\bd N\bNa\bam\bme\bes\bs
-       The following is a list of the names of the commands  and  the  default
+       The  following  is  a list of the names of the commands and the default
        key sequences to which they are bound.  Command names without an accom-
        panying key sequence are unbound by default.  In the following descrip-
-       tions,  _\bp_\bo_\bi_\bn_\bt refers to the current cursor position, and _\bm_\ba_\br_\bk refers to
-       a cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk command.  The text between  the
+       tions, _\bp_\bo_\bi_\bn_\bt refers to the current cursor position, and _\bm_\ba_\br_\bk refers  to
+       a  cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk command.  The text between the
        point and mark is referred to as the _\br_\be_\bg_\bi_\bo_\bn.
 
    C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMo\bov\bvi\bin\bng\bg
@@ -2732,11 +2736,11 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               Move forward to the end of the next word.  Words are composed of
               alphanumeric characters (letters and digits).
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-b\bb)\b)
-              Move back to the start of the current or previous  word.   Words
+              Move  back  to the start of the current or previous word.  Words
               are composed of alphanumeric characters (letters and digits).
        c\bcl\ble\bea\bar\br-\b-s\bsc\bcr\bre\bee\ben\bn (\b(C\bC-\b-l\bl)\b)
-              Clear  the  screen  leaving  the  current line at the top of the
-              screen.  With an argument,  refresh  the  current  line  without
+              Clear the screen leaving the current line  at  the  top  of  the
+              screen.   With  an  argument,  refresh  the current line without
               clearing the screen.
        r\bre\bed\bdr\bra\baw\bw-\b-c\bcu\bur\brr\bre\ben\bnt\bt-\b-l\bli\bin\bne\be
               Refresh the current line.
@@ -2744,132 +2748,132 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
    C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMa\ban\bni\bip\bpu\bul\bla\bat\bti\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by
        a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be (\b(N\bNe\bew\bwl\bli\bin\bne\be,\b, R\bRe\bet\btu\bur\brn\bn)\b)
               Accept the line regardless of where the cursor is.  If this line
-              is non-empty, add it to the history list according to the  state
-              of  the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL variable.  If the line is a modified history
+              is  non-empty, add it to the history list according to the state
+              of the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL variable.  If the line is a modified  history
               line, then restore the history line to its original state.
        p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-p\bp)\b)
               Fetch the previous command from the history list, moving back in
               the list.
        n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-n\bn)\b)
-              Fetch  the next command from the history list, moving forward in
+              Fetch the next command from the history list, moving forward  in
               the list.
        b\bbe\beg\bgi\bin\bnn\bni\bin\bng\bg-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-<\b<)\b)
               Move to the first line in the history.
        e\ben\bnd\bd-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b->\b>)\b)
-              Move to the end of the input history, i.e., the  line  currently
+              Move  to  the end of the input history, i.e., the line currently
               being entered.
        r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-r\br)\b)
-              Search  backward  starting  at  the current line and moving `up'
-              through the  history  as  necessary.   This  is  an  incremental
+              Search backward starting at the current  line  and  moving  `up'
+              through  the  history  as  necessary.   This  is  an incremental
               search.
        f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-s\bs)\b)
-              Search  forward  starting  at the current line and moving `down'
-              through the  history  as  necessary.   This  is  an  incremental
+              Search forward starting at the current line  and  moving  `down'
+              through  the  history  as  necessary.   This  is  an incremental
               search.
        n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-p\bp)\b)
               Search backward through the history starting at the current line
-              using a non-incremental search for  a  string  supplied  by  the
+              using  a  non-incremental  search  for  a string supplied by the
               user.
        n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-n\bn)\b)
-              Search  forward  through  the  history  using  a non-incremental
+              Search forward  through  the  history  using  a  non-incremental
               search for a string supplied by the user.
        h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-f\bfo\bor\brw\bwa\bar\brd\bd
-              Search forward through the history for the string of  characters
-              between  the start of the current line and the point.  This is a
+              Search  forward through the history for the string of characters
+              between the start of the current line and the point.  This is  a
               non-incremental search.
        h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
               Search backward through the history for the string of characters
-              between  the start of the current line and the point.  This is a
+              between the start of the current line and the point.  This is  a
               non-incremental search.
        y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg (\b(M\bM-\b-C\bC-\b-y\by)\b)
-              Insert the first argument to the previous command  (usually  the
+              Insert  the  first argument to the previous command (usually the
               second word on the previous line) at point.  With an argument _\bn,
-              insert the _\bnth word from the previous command (the words in  the
-              previous  command  begin  with  word  0).   A  negative argument
+              insert  the _\bnth word from the previous command (the words in the
+              previous command  begin  with  word  0).   A  negative  argument
               inserts the _\bnth word from the end of the previous command.  Once
-              the  argument _\bn is computed, the argument is extracted as if the
+              the argument _\bn is computed, the argument is extracted as if  the
               "!_\bn" history expansion had been specified.
        y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
-              Insert the last argument to the previous command (the last  word
-              of  the  previous  history  entry).   With  an  argument, behave
-              exactly like y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg.  Successive  calls  to  y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
-              move  back through the history list, inserting the last argument
+              Insert  the last argument to the previous command (the last word
+              of the  previous  history  entry).   With  an  argument,  behave
+              exactly  like  y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg.   Successive calls to y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
+              move back through the history list, inserting the last  argument
               of each line in turn.  The history expansion facilities are used
-              to  extract  the last argument, as if the "!$" history expansion
+              to extract the last argument, as if the "!$"  history  expansion
               had been specified.
        s\bsh\bhe\bel\bll\bl-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-C\bC-\b-e\be)\b)
               Expand the line as the shell does.  This performs alias and his-
               tory expansion as well as all of the shell word expansions.  See
-              H\bHI\bIS\bST\bTO\bOR\bRY\bE\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history  expansion.
+              H\bHI\bIS\bST\bTO\bOR\bRY\b E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
        h\bhi\bis\bst\bto\bor\bry\by-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-^\b^)\b)
-              Perform  history  expansion  on  the  current line.  See H\bHI\bIS\bST\bTO\bOR\bRY\bY
+              Perform history expansion on  the  current  line.   See  H\bHI\bIS\bST\bTO\bOR\bRY\bY
               E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
        m\bma\bag\bgi\bic\bc-\b-s\bsp\bpa\bac\bce\be
-              Perform history expansion on  the  current  line  and  insert  a
+              Perform  history  expansion  on  the  current  line and insert a
               space.  See H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history
               expansion.
        a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
-              Perform alias expansion on the current line.  See A\bAL\bLI\bIA\bAS\bSE\bES\b above
+              Perform  alias expansion on the current line.  See A\bAL\bLI\bIA\bAS\bSE\bES\bS above
               for a description of alias expansion.
        h\bhi\bis\bst\bto\bor\bry\by-\b-a\ban\bnd\bd-\b-a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
               Perform history and alias expansion on the current line.
        i\bin\bns\bse\ber\brt\bt-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
               A synonym for y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg.
        o\bop\bpe\ber\bra\bat\bte\be-\b-a\ban\bnd\bd-\b-g\bge\bet\bt-\b-n\bne\bex\bxt\bt (\b(C\bC-\b-o\bo)\b)
-              Accept  the  current  line for execution and fetch the next line
-              relative to the current line from the history for editing.   Any
+              Accept the current line for execution and fetch  the  next  line
+              relative  to the current line from the history for editing.  Any
               argument is ignored.
        e\bed\bdi\bit\bt-\b-a\ban\bnd\bd-\b-e\bex\bxe\bec\bcu\but\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(C\bC-\b-x\bxC\bC-\b-e\be)\b)
-              Invoke  an  editor  on the current command line, and execute the
-              result as shell commands.   B\bBa\bas\bsh\bh  attempts  to  invoke  $\b$F\bFC\bCE\bED\bDI\bIT\bT,
+              Invoke an editor on the current command line,  and  execute  the
+              result  as  shell  commands.   B\bBa\bas\bsh\bh  attempts to invoke $\b$F\bFC\bCE\bED\bDI\bIT\bT,
               $\b$E\bED\bDI\bIT\bTO\bOR\bR, and _\be_\bm_\ba_\bc_\bs as the editor, in that order.
 
    C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br C\bCh\bha\ban\bng\bgi\bin\bng\bg T\bTe\bex\bxt\bt
        d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(C\bC-\b-d\bd)\b)
-              Delete  the character at point.  If point is at the beginning of
-              the line, there are no characters in  the  line,  and  the  last
+              Delete the character at point.  If point is at the beginning  of
+              the  line,  there  are  no  characters in the line, and the last
               character typed was not bound to d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br, then return E\bEO\bOF\bF.
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(R\bRu\bub\bbo\bou\but\bt)\b)
-              Delete  the  character  behind the cursor.  When given a numeric
+              Delete the character behind the cursor.  When  given  a  numeric
               argument, save the deleted text on the kill ring.
        f\bfo\bor\brw\bwa\bar\brd\bd-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br
-              Delete the character under the cursor, unless the cursor  is  at
+              Delete  the  character under the cursor, unless the cursor is at
               the end of the line, in which case the character behind the cur-
               sor is deleted.
        q\bqu\buo\bot\bte\bed\bd-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-q\bq,\b, C\bC-\b-v\bv)\b)
-              Add the next character typed to the line verbatim.  This is  how
+              Add  the next character typed to the line verbatim.  This is how
               to insert characters like C\bC-\b-q\bq, for example.
        t\bta\bab\bb-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-v\bv T\bTA\bAB\bB)\b)
               Insert a tab character.
        s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt (\b(a\ba,\b, b\bb,\b, A\bA,\b, 1\b1,\b, !\b!,\b, .\b..\b..\b.)\b)
               Insert the character typed.
        t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-c\bch\bha\bar\brs\bs (\b(C\bC-\b-t\bt)\b)
-              Drag  the  character  before point forward over the character at
-              point, moving point forward as well.  If point is at the end  of
-              the  line, then this transposes the two characters before point.
+              Drag the character before point forward over  the  character  at
+              point,  moving point forward as well.  If point is at the end of
+              the line, then this transposes the two characters before  point.
               Negative arguments have no effect.
        t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-w\bwo\bor\brd\bds\bs (\b(M\bM-\b-t\bt)\b)
-              Drag the word before point past the  word  after  point,  moving
-              point  over  that  word  as well.  If point is at the end of the
+              Drag  the  word  before  point past the word after point, moving
+              point over that word as well.  If point is at  the  end  of  the
               line, this transposes the last two words on the line.
        u\bup\bpc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-u\bu)\b)
-              Uppercase the current (or  following)  word.   With  a  negative
+              Uppercase  the  current  (or  following)  word.  With a negative
               argument, uppercase the previous word, but do not move point.
        d\bdo\bow\bwn\bnc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-l\bl)\b)
-              Lowercase  the  current  (or  following)  word.  With a negative
+              Lowercase the current (or  following)  word.   With  a  negative
               argument, lowercase the previous word, but do not move point.
        c\bca\bap\bpi\bit\bta\bal\bli\biz\bze\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-c\bc)\b)
-              Capitalize the current (or following)  word.   With  a  negative
+              Capitalize  the  current  (or  following) word.  With a negative
               argument, capitalize the previous word, but do not move point.
        o\bov\bve\ber\brw\bwr\bri\bit\bte\be-\b-m\bmo\bod\bde\be
-              Toggle  overwrite mode.  With an explicit positive numeric argu-
+              Toggle overwrite mode.  With an explicit positive numeric  argu-
               ment, switches to overwrite mode.  With an explicit non-positive
               numeric argument, switches to insert mode.  This command affects
-              only e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently.  Each  call
+              only  e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently.  Each call
               to _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b(_\b) starts in insert mode.  In overwrite mode, charac-
-              ters bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the text at point rather  than
-              pushing  the  text  to  the  right.   Characters  bound to b\bba\bac\bck\bk-\b-
-              w\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\breplace  the  character  before  point  with  a
+              ters  bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the text at point rather than
+              pushing the text  to  the  right.   Characters  bound  to  b\bba\bac\bck\bk-\b-
+              w\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\b replace  the  character  before  point  with a
               space.  By default, this command is unbound.
 
    K\bKi\bil\bll\bli\bin\bng\bg a\ban\bnd\bd Y\bYa\ban\bnk\bki\bin\bng\bg
@@ -2878,24 +2882,24 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-l\bli\bin\bne\be (\b(C\bC-\b-x\bx R\bRu\bub\bbo\bou\but\bt)\b)
               Kill backward to the beginning of the line.
        u\bun\bni\bix\bx-\b-l\bli\bin\bne\be-\b-d\bdi\bis\bsc\bca\bar\brd\bd (\b(C\bC-\b-u\bu)\b)
-              Kill  backward  from  point  to  the beginning of the line.  The
+              Kill backward from point to the  beginning  of  the  line.   The
               killed text is saved on the kill-ring.
        k\bki\bil\bll\bl-\b-w\bwh\bho\bol\ble\be-\b-l\bli\bin\bne\be
-              Kill all characters on the current line, no matter  where  point
+              Kill  all  characters on the current line, no matter where point
               is.
        k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
-              Kill  from  point  to the end of the current word, or if between
-              words, to the end of the next word.   Word  boundaries  are  the
+              Kill from point to the end of the current word,  or  if  between
+              words,  to  the  end  of the next word.  Word boundaries are the
               same as those used by f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
-              Kill  the  word  behind  point.  Word boundaries are the same as
+              Kill the word behind point.  Word boundaries  are  the  same  as
               those used by b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        u\bun\bni\bix\bx-\b-w\bwo\bor\brd\bd-\b-r\bru\bub\bbo\bou\but\bt (\b(C\bC-\b-w\bw)\b)
-              Kill the word behind point, using white space as a  word  bound-
+              Kill  the  word behind point, using white space as a word bound-
               ary.  The killed text is saved on the kill-ring.
        u\bun\bni\bix\bx-\b-f\bfi\bil\ble\ben\bna\bam\bme\be-\b-r\bru\bub\bbo\bou\but\bt
-              Kill  the  word  behind  point,  using white space and the slash
-              character as the word boundaries.  The killed text is  saved  on
+              Kill the word behind point, using  white  space  and  the  slash
+              character  as  the word boundaries.  The killed text is saved on
               the kill-ring.
        d\bde\bel\ble\bet\bte\be-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsp\bpa\bac\bce\be (\b(M\bM-\b-\\b\)\b)
               Delete all spaces and tabs around point.
@@ -2904,61 +2908,61 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        c\bco\bop\bpy\by-\b-r\bre\beg\bgi\bio\bon\bn-\b-a\bas\bs-\b-k\bki\bil\bll\bl
               Copy the text in the region to the kill buffer.
        c\bco\bop\bpy\by-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
-              Copy  the word before point to the kill buffer.  The word bound-
+              Copy the word before point to the kill buffer.  The word  bound-
               aries are the same as b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        c\bco\bop\bpy\by-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
-              Copy the word following point to  the  kill  buffer.   The  word
+              Copy  the  word  following  point  to the kill buffer.  The word
               boundaries are the same as f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
        y\bya\ban\bnk\bk (\b(C\bC-\b-y\by)\b)
               Yank the top of the kill ring into the buffer at point.
        y\bya\ban\bnk\bk-\b-p\bpo\bop\bp (\b(M\bM-\b-y\by)\b)
-              Rotate  the kill ring, and yank the new top.  Only works follow-
+              Rotate the kill ring, and yank the new top.  Only works  follow-
               ing y\bya\ban\bnk\bk or y\bya\ban\bnk\bk-\b-p\bpo\bop\bp.
 
    N\bNu\bum\bme\ber\bri\bic\bc A\bAr\brg\bgu\bum\bme\ben\bnt\bts\bs
        d\bdi\big\bgi\bit\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-0\b0,\b, M\bM-\b-1\b1,\b, .\b..\b..\b.,\b, M\bM-\b--\b-)\b)
-              Add this digit to the argument already accumulating, or start  a
+              Add  this digit to the argument already accumulating, or start a
               new argument.  M-- starts a negative argument.
        u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt
-              This  is another way to specify an argument.  If this command is
-              followed by one or more digits, optionally with a leading  minus
-              sign,  those digits define the argument.  If the command is fol-
-              lowed by digits, executing  u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt  again  ends  the
-              numeric  argument, but is otherwise ignored.  As a special case,
-              if this command is immediately followed by a character  that  is
-              neither  a  digit or minus sign, the argument count for the next
-              command is multiplied by four.  The argument count is  initially
-              one,  so  executing this function the first time makes the argu-
+              This is another way to specify an argument.  If this command  is
+              followed  by one or more digits, optionally with a leading minus
+              sign, those digits define the argument.  If the command is  fol-
+              lowed  by  digits,  executing  u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt again ends the
+              numeric argument, but is otherwise ignored.  As a special  case,
+              if  this  command is immediately followed by a character that is
+              neither a digit or minus sign, the argument count for  the  next
+              command  is multiplied by four.  The argument count is initially
+              one, so executing this function the first time makes  the  argu-
               ment count four, a second time makes the argument count sixteen,
               and so on.
 
    C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg
        c\bco\bom\bmp\bpl\ble\bet\bte\be (\b(T\bTA\bAB\bB)\b)
-              Attempt  to  perform  completion on the text before point.  B\bBa\bas\bsh\bh
+              Attempt to perform completion on the text  before  point.   B\bBa\bas\bsh\bh
               attempts completion treating the text as a variable (if the text
-              begins  with  $\b$), username (if the text begins with ~\b~), hostname
-              (if the text begins with @\b@), or command (including  aliases  and
+              begins with $\b$), username (if the text begins with  ~\b~),  hostname
+              (if  the  text begins with @\b@), or command (including aliases and
               functions) in turn.  If none of these produces a match, filename
               completion is attempted.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-?\b?)\b)
               List the possible completions of the text before point.
        i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-*\b*)\b)
-              Insert all completions of the text before point that would  have
+              Insert  all completions of the text before point that would have
               been generated by p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs.
        m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be
-              Similar  to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed with
-              a single match from the list of possible completions.   Repeated
-              execution  of  m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be  steps through the list of possible
-              completions, inserting each match in turn.  At the  end  of  the
+              Similar to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed  with
+              a  single match from the list of possible completions.  Repeated
+              execution of m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be steps through the  list  of  possible
+              completions,  inserting  each  match in turn.  At the end of the
               list of completions, the bell is rung (subject to the setting of
               b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be) and the original text is restored.  An argument of _\bn
-              moves  _\bn  positions  forward  in the list of matches; a negative
-              argument may be used to move backward through  the  list.   This
-              command  is  intended  to  be  bound  to  T\bTA\bAB\bB, but is unbound by
+              moves _\bn positions forward in the list  of  matches;  a  negative
+              argument  may  be  used to move backward through the list.  This
+              command is intended to be  bound  to  T\bTA\bAB\bB,  but  is  unbound  by
               default.
        d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br-\b-o\bor\br-\b-l\bli\bis\bst\bt
-              Deletes the character under the cursor if not at  the  beginning
-              or  end  of  the  line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br).  If at the end of the
+              Deletes  the  character under the cursor if not at the beginning
+              or end of the line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br).  If at  the  end  of  the
               line, behaves identically to p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs.  This command
               is unbound by default.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-f\bfi\bil\ble\ben\bna\bam\bme\be (\b(M\bM-\b-/\b/)\b)
@@ -2967,197 +2971,197 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
               List the possible completions of the text before point, treating
               it as a filename.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be (\b(M\bM-\b-~\b~)\b)
-              Attempt completion on the text before point, treating  it  as  a
+              Attempt  completion  on  the text before point, treating it as a
               username.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx ~\b~)\b)
               List the possible completions of the text before point, treating
               it as a username.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be (\b(M\bM-\b-$\b$)\b)
-              Attempt completion on the text before point, treating  it  as  a
+              Attempt  completion  on  the text before point, treating it as a
               shell variable.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx $\b$)\b)
               List the possible completions of the text before point, treating
               it as a shell variable.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be (\b(M\bM-\b-@\b@)\b)
-              Attempt completion on the text before point, treating  it  as  a
+              Attempt  completion  on  the text before point, treating it as a
               hostname.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx @\b@)\b)
               List the possible completions of the text before point, treating
               it as a hostname.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(M\bM-\b-!\b!)\b)
-              Attempt completion on the text before point, treating  it  as  a
-              command  name.   Command  completion  attempts to match the text
-              against  aliases,  reserved  words,   shell   functions,   shell
+              Attempt  completion  on  the text before point, treating it as a
+              command name.  Command completion attempts  to  match  the  text
+              against   aliases,   reserved   words,  shell  functions,  shell
               builtins, and finally executable filenames, in that order.
        p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx !\b!)\b)
               List the possible completions of the text before point, treating
               it as a command name.
        d\bdy\byn\bna\bam\bmi\bic\bc-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-T\bTA\bAB\bB)\b)
-              Attempt completion on the text before point, comparing the  text
-              against  lines  from  the  history  list for possible completion
+              Attempt  completion on the text before point, comparing the text
+              against lines from the  history  list  for  possible  completion
               matches.
        c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-i\bin\bnt\bto\bo-\b-b\bbr\bra\bac\bce\bes\bs (\b(M\bM-\b-{\b{)\b)
               Perform filename completion and insert the list of possible com-
-              pletions  enclosed within braces so the list is available to the
+              pletions enclosed within braces so the list is available to  the
               shell (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
 
    K\bKe\bey\byb\bbo\boa\bar\brd\bd M\bMa\bac\bcr\bro\bos\bs
        s\bst\bta\bar\brt\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx (\b()\b)
-              Begin saving the characters  typed  into  the  current  keyboard
+              Begin  saving  the  characters  typed  into the current keyboard
               macro.
        e\ben\bnd\bd-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx )\b))\b)
               Stop saving the characters typed into the current keyboard macro
               and store the definition.
        c\bca\bal\bll\bl-\b-l\bla\bas\bst\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx e\be)\b)
-              Re-execute the last keyboard macro defined, by making the  char-
+              Re-execute  the last keyboard macro defined, by making the char-
               acters in the macro appear as if typed at the keyboard.
 
    M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
        r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be (\b(C\bC-\b-x\bx C\bC-\b-r\br)\b)
-              Read  in  the  contents of the _\bi_\bn_\bp_\bu_\bt_\br_\bc file, and incorporate any
+              Read in the contents of the _\bi_\bn_\bp_\bu_\bt_\br_\bc file,  and  incorporate  any
               bindings or variable assignments found there.
        a\bab\bbo\bor\brt\bt (\b(C\bC-\b-g\bg)\b)
-              Abort the current editing command and ring the  terminal's  bell
+              Abort  the  current editing command and ring the terminal's bell
               (subject to the setting of b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be).
        d\bdo\bo-\b-u\bup\bpp\bpe\ber\brc\bca\bas\bse\be-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(M\bM-\b-a\ba,\b, M\bM-\b-b\bb,\b, M\bM-\b-_\bx,\b, .\b..\b..\b.)\b)
-              If  the  metafied character _\bx is lowercase, run the command that
+              If the metafied character _\bx is lowercase, run the  command  that
               is bound to the corresponding uppercase character.
        p\bpr\bre\bef\bfi\bix\bx-\b-m\bme\bet\bta\ba (\b(E\bES\bSC\bC)\b)
               Metafy the next character typed.  E\bES\bSC\bC f\bf is equivalent to M\bMe\bet\bta\ba-\b-f\bf.
        u\bun\bnd\bdo\bo (\b(C\bC-\b-_\b_,\b, C\bC-\b-x\bx C\bC-\b-u\bu)\b)
               Incremental undo, separately remembered for each line.
        r\bre\bev\bve\ber\brt\bt-\b-l\bli\bin\bne\be (\b(M\bM-\b-r\br)\b)
-              Undo  all changes made to this line.  This is like executing the
-              u\bun\bnd\bdo\bcommand enough times to return  the  line  to  its  initial
+              Undo all changes made to this line.  This is like executing  the
+              u\bun\bnd\bdo\b command  enough  times  to  return the line to its initial
               state.
        t\bti\bil\bld\bde\be-\b-e\bex\bxp\bpa\ban\bnd\bd (\b(M\bM-\b-&\b&)\b)
               Perform tilde expansion on the current word.
        s\bse\bet\bt-\b-m\bma\bar\brk\bk (\b(C\bC-\b-@\b@,\b, M\bM-\b-<\b<s\bsp\bpa\bac\bce\be>\b>)\b)
-              Set  the  mark to the point.  If a numeric argument is supplied,
+              Set the mark to the point.  If a numeric argument  is  supplied,
               the mark is set to that position.
        e\bex\bxc\bch\bha\ban\bng\bge\be-\b-p\bpo\boi\bin\bnt\bt-\b-a\ban\bnd\bd-\b-m\bma\bar\brk\bk (\b(C\bC-\b-x\bx C\bC-\b-x\bx)\b)
-              Swap the point with the mark.  The current  cursor  position  is
-              set  to the saved position, and the old cursor position is saved
+              Swap  the  point  with the mark.  The current cursor position is
+              set to the saved position, and the old cursor position is  saved
               as the mark.
        c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh (\b(C\bC-\b-]\b])\b)
               A character is read and point is moved to the next occurrence of
-              that  character.   A negative count searches for previous occur-
+              that character.  A negative count searches for  previous  occur-
               rences.
        c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd (\b(M\bM-\b-C\bC-\b-]\b])\b)
-              A character is read and point is moved to  the  previous  occur-
-              rence  of  that character.  A negative count searches for subse-
+              A  character  is  read and point is moved to the previous occur-
+              rence of that character.  A negative count searches  for  subse-
               quent occurrences.
        i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt (\b(M\bM-\b-#\b#)\b)
-              Without a numeric argument,  the  value  of  the  readline  c\bco\bom\bm-\b-
-              m\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\b variable is inserted at the beginning of the current
+              Without  a  numeric  argument,  the  value  of the readline c\bco\bom\bm-\b-
+              m\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bvariable is inserted at the beginning of the  current
               line.  If a numeric argument is supplied, this command acts as a
-              toggle:   if  the characters at the beginning of the line do not
-              match the value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, the value is inserted,  other-
+              toggle:  if the characters at the beginning of the line  do  not
+              match  the value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, the value is inserted, other-
               wise the characters in c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn are deleted from the begin-
-              ning of the line.  In either case, the line is accepted as if  a
-              newline  had  been  typed.   The  default value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn
-              causes this command to make the current line  a  shell  comment.
-              If  a  numeric  argument  causes  the  comment  character  to be
+              ning  of the line.  In either case, the line is accepted as if a
+              newline had been typed.   The  default  value  of  c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn
+              causes  this  command  to make the current line a shell comment.
+              If a  numeric  argument  causes  the  comment  character  to  be
               removed, the line will be executed by the shell.
        g\bgl\blo\bob\bb-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-g\bg)\b)
-              The word before point is  treated  as  a  pattern  for  pathname
-              expansion,  with  an asterisk implicitly appended.  This pattern
-              is used to generate a list of matching file names  for  possible
+              The  word  before  point  is  treated  as a pattern for pathname
+              expansion, with an asterisk implicitly appended.   This  pattern
+              is  used  to generate a list of matching file names for possible
               completions.
        g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd (\b(C\bC-\b-x\bx *\b*)\b)
-              The  word  before  point  is  treated  as a pattern for pathname
-              expansion, and the list of  matching  file  names  is  inserted,
-              replacing  the  word.   If  a  numeric  argument is supplied, an
+              The word before point is  treated  as  a  pattern  for  pathname
+              expansion,  and  the  list  of  matching file names is inserted,
+              replacing the word.  If  a  numeric  argument  is  supplied,  an
               asterisk is appended before pathname expansion.
        g\bgl\blo\bob\bb-\b-l\bli\bis\bst\bt-\b-e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bns\bs (\b(C\bC-\b-x\bx g\bg)\b)
-              The list  of  expansions  that  would  have  been  generated  by
-              g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\b is  displayed,  and the line is redrawn.  If a
-              numeric argument is supplied, an  asterisk  is  appended  before
+              The  list  of  expansions  that  would  have  been  generated by
+              g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bis displayed, and the line is  redrawn.   If  a
+              numeric  argument  is  supplied,  an asterisk is appended before
               pathname expansion.
        d\bdu\bum\bmp\bp-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bns\bs
-              Print  all  of the functions and their key bindings to the read-
+              Print all of the functions and their key bindings to  the  read-
               line output stream.  If a numeric argument is supplied, the out-
-              put  is  formatted  in such a way that it can be made part of an
+              put is formatted in such a way that it can be made  part  of  an
               _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
        d\bdu\bum\bmp\bp-\b-v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
               Print all of the settable readline variables and their values to
-              the  readline output stream.  If a numeric argument is supplied,
-              the output is formatted in such a way that it can be  made  part
+              the readline output stream.  If a numeric argument is  supplied,
+              the  output  is formatted in such a way that it can be made part
               of an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
        d\bdu\bum\bmp\bp-\b-m\bma\bac\bcr\bro\bos\bs
-              Print  all of the readline key sequences bound to macros and the
-              strings they output.  If a numeric  argument  is  supplied,  the
+              Print all of the readline key sequences bound to macros and  the
+              strings  they  output.   If  a numeric argument is supplied, the
               output is formatted in such a way that it can be made part of an
               _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
        d\bdi\bis\bsp\bpl\bla\bay\by-\b-s\bsh\bhe\bel\bll\bl-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(C\bC-\b-x\bx C\bC-\b-v\bv)\b)
-              Display version information about the current instance of  b\bba\bas\bsh\bh.
+              Display  version information about the current instance of b\bba\bas\bsh\bh.
 
    P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
-       When  word  completion  is  attempted  for an argument to a command for
-       which a completion specification (a _\bc_\bo_\bm_\bp_\bs_\bp_\be_\bc) has  been  defined  using
-       the  c\bco\bom\bmp\bpl\ble\bet\bte\be  builtin  (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the pro-
+       When word completion is attempted for an  argument  to  a  command  for
+       which  a  completion  specification (a _\bc_\bo_\bm_\bp_\bs_\bp_\be_\bc) has been defined using
+       the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin (see  S\bSH\bHE\bEL\bLL\bL  B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  below),  the  pro-
        grammable completion facilities are invoked.
 
-       First, the command name is identified.  If a compspec has been  defined
+       First,  the command name is identified.  If a compspec has been defined
        for that command, the compspec is used to generate the list of possible
-       completions for the word.  If the command word is a  full  pathname,  a
-       compspec  for  the full pathname is searched for first.  If no compspec
-       is found for the full pathname, an attempt is made to find  a  compspec
+       completions  for  the  word.  If the command word is a full pathname, a
+       compspec for the full pathname is searched for first.  If  no  compspec
+       is  found  for the full pathname, an attempt is made to find a compspec
        for the portion following the final slash.
 
-       Once  a  compspec  has  been  found, it is used to generate the list of
-       matching words.  If a compspec is not found, the default  b\bba\bas\bsh\b comple-
+       Once a compspec has been found, it is used  to  generate  the  list  of
+       matching  words.   If a compspec is not found, the default b\bba\bas\bsh\bh comple-
        tion as described above under C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg is performed.
 
-       First,  the  actions  specified by the compspec are used.  Only matches
-       which are prefixed by the word being completed are returned.  When  the
-       -\b-f\b or -\b-d\bd option is used for filename or directory name completion, the
+       First, the actions specified by the compspec are  used.   Only  matches
+       which  are prefixed by the word being completed are returned.  When the
+       -\b-f\bor -\b-d\bd option is used for filename or directory name completion,  the
        shell variable F\bFI\bIG\bGN\bNO\bOR\bRE\bE is used to filter the matches.
 
-       Any completions specified by a filename expansion  pattern  to  the  -\b-G\bG
+       Any  completions  specified  by  a filename expansion pattern to the -\b-G\bG
        option are generated next.  The words generated by the pattern need not
-       match the word being completed.  The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable  is  not
+       match  the  word being completed.  The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable is not
        used to filter the matches, but the F\bFI\bIG\bGN\bNO\bOR\bRE\bE variable is used.
 
-       Next,  the string specified as the argument to the -\b-W\bW option is consid-
-       ered.  The string is first split using the characters in the  I\bIF\bFS\b spe-
-       cial  variable  as delimiters.  Shell quoting is honored.  Each word is
-       then expanded using brace expansion,  tilde  expansion,  parameter  and
-       variable  expansion, command substitution, and arithmetic expansion, as
+       Next, the string specified as the argument to the -\b-W\bW option is  consid-
+       ered.   The  string is first split using the characters in the I\bIF\bFS\bS spe-
+       cial variable as delimiters.  Shell quoting is honored.  Each  word  is
+       then  expanded  using  brace  expansion, tilde expansion, parameter and
+       variable expansion, command substitution, and arithmetic expansion,  as
        described above under E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN.  The results are split using the rules
        described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg.  The results of the expansion are
        prefix-matched against the word being completed, and the matching words
        become the possible completions.
 
-       After  these matches have been generated, any shell function or command
-       specified with the -\b-F\bF and -\b-C\bC options is invoked.  When the  command  or
+       After these matches have been generated, any shell function or  command
+       specified  with  the -\b-F\bF and -\b-C\bC options is invoked.  When the command or
        function  is  invoked,  the  C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE  and  C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT  variables  are
-       assigned values as described above under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs.  If  a  shell
-       function  is being invoked, the C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS and C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD variables are
-       also set.  When the function or command is invoked, the first  argument
-       is  the  name  of  the command whose arguments are being completed, the
-       second argument is the word being completed, and the third argument  is
-       the  word  preceding  the  word  being completed on the current command
+       assigned  values  as described above under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs.  If a shell
+       function is being invoked, the C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS and C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD variables  are
+       also  set.  When the function or command is invoked, the first argument
+       is the name of the command whose arguments  are  being  completed,  the
+       second  argument is the word being completed, and the third argument is
+       the word preceding the word being  completed  on  the  current  command
        line.  No filtering of the generated completions against the word being
        completed is performed; the function or command has complete freedom in
        generating the matches.
 
-       Any function specified with -\b-F\bF is invoked first.  The function may  use
-       any  of  the  shell facilities, including the c\bco\bom\bmp\bpg\bge\ben\bn builtin described
-       below, to generate the matches.  It must put the  possible  completions
+       Any  function specified with -\b-F\bF is invoked first.  The function may use
+       any of the shell facilities, including the  c\bco\bom\bmp\bpg\bge\ben\bn  builtin  described
+       below,  to  generate the matches.  It must put the possible completions
        in the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY array variable.
 
-       Next,  any  command specified with the -\b-C\bC option is invoked in an envi-
-       ronment equivalent to command substitution.  It should print a list  of
-       completions,  one  per  line, to the standard output.  Backslash may be
+       Next, any command specified with the -\b-C\bC option is invoked in  an  envi-
+       ronment  equivalent to command substitution.  It should print a list of
+       completions, one per line, to the standard output.   Backslash  may  be
        used to escape a newline, if necessary.
 
-       After all of the possible completions are generated, any filter  speci-
-       fied  with  the -\b-X\bX option is applied to the list.  The filter is a pat-
-       tern as used for pathname expansion; a &\b& in  the  pattern  is  replaced
-       with  the text of the word being completed.  A literal &\b& may be escaped
-       with a backslash; the backslash is removed before attempting  a  match.
-       Any  completion that matches the pattern will be removed from the list.
+       After  all of the possible completions are generated, any filter speci-
+       fied with the -\b-X\bX option is applied to the list.  The filter is  a  pat-
+       tern  as  used  for  pathname expansion; a &\b& in the pattern is replaced
+       with the text of the word being completed.  A literal &\b& may be  escaped
+       with  a  backslash; the backslash is removed before attempting a match.
+       Any completion that matches the pattern will be removed from the  list.
        A leading !\b! negates the pattern; in this case any completion not match-
        ing the pattern will be removed.
 
@@ -3165,127 +3169,127 @@ R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
        added to each member of the completion list, and the result is returned
        to the readline completion code as the list of possible completions.
 
-       If  the previously-applied actions do not generate any matches, and the
-       -\b-o\bd\bdi\bir\brn\bna\bam\bme\bes\bs option was supplied  to  c\bco\bom\bmp\bpl\ble\bet\bte\be  when  the  compspec  was
+       If the previously-applied actions do not generate any matches, and  the
+       -\b-o\b d\bdi\bir\brn\bna\bam\bme\bes\bs  option  was  supplied  to  c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was
        defined, directory name completion is attempted.
 
-       If  the  -\b-o\bo  p\bpl\blu\bus\bsd\bdi\bir\brs\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec
+       If the -\b-o\bo p\bpl\blu\bus\bsd\bdi\bir\brs\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be  when  the  compspec
        was defined, directory name completion is attempted and any matches are
        added to the results of the other actions.
 
-       By  default,  if a compspec is found, whatever it generates is returned
-       to the completion code as the full set of  possible  completions.   The
+       By default, if a compspec is found, whatever it generates  is  returned
+       to  the  completion  code as the full set of possible completions.  The
        default b\bba\bas\bsh\bh completions are not attempted, and the readline default of
        filename completion is disabled.  If the -\b-o\bo b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt option was sup-
-       plied  to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined, the b\bba\bas\bsh\bh default com-
+       plied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined, the b\bba\bas\bsh\bh default  com-
        pletions are attempted if the compspec generates no matches.  If the -\b-o\bo
-       d\bde\bef\bfa\bau\bul\blt\b option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined,
-       readline's default completion will be performed if the  compspec  (and,
+       d\bde\bef\bfa\bau\bul\blt\boption was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was  defined,
+       readline's  default  completion will be performed if the compspec (and,
        if attempted, the default b\bba\bas\bsh\bh completions) generate no matches.
 
-       When  a  compspec  indicates that directory name completion is desired,
-       the programmable completion functions force readline to append a  slash
-       to  completed names which are symbolic links to directories, subject to
-       the value of the m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable, regardless of  the
+       When a compspec indicates that directory name  completion  is  desired,
+       the  programmable completion functions force readline to append a slash
+       to completed names which are symbolic links to directories, subject  to
+       the  value of the m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable, regardless of the
        setting of the m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable.
 
 H\bHI\bIS\bST\bTO\bOR\bRY\bY
-       When  the  -\b-o\bo  h\bhi\bis\bst\bto\bor\bry\by  option to the s\bse\bet\bt builtin is enabled, the shell
+       When the -\b-o\bo h\bhi\bis\bst\bto\bor\bry\by option to the s\bse\bet\bt builtin  is  enabled,  the  shell
        provides access to the _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bh_\bi_\bs_\bt_\bo_\br_\by, the list of commands previously
-       typed.   The  value  of  the H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE variable is used as the number of
+       typed.  The value of the H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE variable is used  as  the  number  of
        commands to save in a history list.  The text of the last H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE com-
-       mands  (default  500)  is  saved.  The shell stores each command in the
-       history list prior to parameter and variable expansion  (see  E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
-       above)  but after history expansion is performed, subject to the values
+       mands (default 500) is saved.  The shell stores  each  command  in  the
+       history  list  prior to parameter and variable expansion (see E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
+       above) but after history expansion is performed, subject to the  values
        of the shell variables H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE and H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL.
 
        On startup, the history is initialized from the file named by the vari-
-       able  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  (default _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by).  The file named by the value
-       of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is truncated, if necessary, to contain  no  more  than  the
+       able H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE (default _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by).  The file named by  the  value
+       of  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE  is  truncated,  if necessary, to contain no more than the
        number of lines specified by the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE.  When an inter-
-       active shell exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines are copied from  the  his-
+       active  shell  exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines are copied from the his-
        tory list to $\b$H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE.  If the h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd shell option is enabled (see
        the description of s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the lines
-       are  appended  to the history file, otherwise the history file is over-
-       written.  If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset, or if the history file  is  unwritable,
-       the  history  is not saved.  After saving the history, the history file
-       is truncated to contain no more than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines.  If  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE-\b-
+       are appended to the history file, otherwise the history file  is  over-
+       written.   If  H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset, or if the history file is unwritable,
+       the history is not saved.  After saving the history, the  history  file
+       is  truncated to contain no more than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines.  If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE-\b-
        S\bSI\bIZ\bZE\bE is not set, no truncation is performed.
 
-       The  builtin  command f\bfc\bc (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) may be used
+       The builtin command f\bfc\bc (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) may  be  used
        to list or edit and re-execute a portion of the history list.  The h\bhi\bis\bs-\b-
-       t\bto\bor\bry\b builtin  may  be  used  to display or modify the history list and
-       manipulate the history file.  When using command-line  editing,  search
-       commands  are available in each editing mode that provide access to the
+       t\bto\bor\bry\bbuiltin may be used to display or  modify  the  history  list  and
+       manipulate  the  history file.  When using command-line editing, search
+       commands are available in each editing mode that provide access to  the
        history list.
 
-       The shell allows control over which commands are saved on  the  history
+       The  shell  allows control over which commands are saved on the history
        list.  The H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL and H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE variables may be set to cause the
        shell to save only a subset of the commands entered.  The c\bcm\bmd\bdh\bhi\bis\bst\bt shell
-       option,  if enabled, causes the shell to attempt to save each line of a
-       multi-line command in the same history entry, adding  semicolons  where
-       necessary  to preserve syntactic correctness.  The l\bli\bit\bth\bhi\bis\bst\bt shell option
-       causes the shell to save the command with embedded newlines instead  of
+       option, if enabled, causes the shell to attempt to save each line of  a
+       multi-line  command  in the same history entry, adding semicolons where
+       necessary to preserve syntactic correctness.  The l\bli\bit\bth\bhi\bis\bst\bt shell  option
+       causes  the shell to save the command with embedded newlines instead of
        semicolons.  See the description of the s\bsh\bho\bop\bpt\bt builtin below under S\bSH\bHE\bEL\bLL\bL
        B\bBU\bUI\bIL\bLT\bTI\bIN\bN  C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS  for  information  on  setting  and  unsetting  shell
        options.
 
 H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
-       The  shell  supports a history expansion feature that is similar to the
-       history expansion in c\bcs\bsh\bh.\b.  This section describes what syntax  features
-       are  available.   This  feature  is  enabled by default for interactive
+       The shell supports a history expansion feature that is similar  to  the
+       history  expansion in c\bcs\bsh\bh.\b.  This section describes what syntax features
+       are available.  This feature is  enabled  by  default  for  interactive
        shells, and can be disabled using the +\b+H\bH option to the s\bse\bet\bt builtin com-
        mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).  Non-interactive shells do not
        perform history expansion by default.
 
        History expansions introduce words from the history list into the input
-       stream,  making  it  easy to repeat commands, insert the arguments to a
+       stream, making it easy to repeat commands, insert the  arguments  to  a
        previous command into the current input line, or fix errors in previous
        commands quickly.
 
-       History  expansion  is  performed  immediately after a complete line is
-       read, before the shell breaks it into words.  It  takes  place  in  two
-       parts.   The  first is to determine which line from the history list to
+       History expansion is performed immediately after  a  complete  line  is
+       read,  before  the  shell  breaks it into words.  It takes place in two
+       parts.  The first is to determine which line from the history  list  to
        use during substitution.  The second is to select portions of that line
        for inclusion into the current one.  The line selected from the history
-       is the _\be_\bv_\be_\bn_\bt, and the portions of that line that  are  acted  upon  are
-       _\bw_\bo_\br_\bd_\bs.   Various  _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs  are  available  to manipulate the selected
+       is  the  _\be_\bv_\be_\bn_\bt,  and  the portions of that line that are acted upon are
+       _\bw_\bo_\br_\bd_\bs.  Various _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs are  available  to  manipulate  the  selected
        words.  The line is broken into words in the same fashion as when read-
-       ing  input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br-separated words surrounded by
-       quotes are considered one word.  History expansions are  introduced  by
-       the  appearance  of  the  history  expansion  character,  which is !\b! by
-       default.  Only backslash (\\b\) and single quotes can  quote  the  history
+       ing input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br-separated words surrounded  by
+       quotes  are  considered one word.  History expansions are introduced by
+       the appearance of the  history  expansion  character,  which  is  !\b by
+       default.   Only  backslash  (\\b\) and single quotes can quote the history
        expansion character.
 
-       Several  characters inhibit history expansion if found immediately fol-
-       lowing the history expansion character, even if it is unquoted:  space,
-       tab,  newline,  carriage return, and =\b=.  If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is
+       Several characters inhibit history expansion if found immediately  fol-
+       lowing  the history expansion character, even if it is unquoted: space,
+       tab, newline, carriage return, and =\b=.  If the e\bex\bxt\btg\bgl\blo\bob\bb shell  option  is
        enabled, (\b( will also inhibit expansion.
 
-       Several shell options settable with the s\bsh\bho\bop\bpt\bt builtin may  be  used  to
-       tailor  the  behavior  of  history  expansion.  If the h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by shell
+       Several  shell  options  settable with the s\bsh\bho\bop\bpt\bt builtin may be used to
+       tailor the behavior of history  expansion.   If  the  h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\b shell
        option is enabled (see the description of the s\bsh\bho\bop\bpt\bt builtin), and r\bre\bea\bad\bd-\b-
        l\bli\bin\bne\be is being used, history substitutions are not immediately passed to
-       the shell parser.  Instead, the expanded  line  is  reloaded  into  the
+       the  shell  parser.   Instead,  the  expanded line is reloaded into the
        r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for further modification.  If r\bre\bea\bad\bdl\bli\bin\bne\be is being
        used, and the h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt shell option is enabled, a failed history sub-
        stitution will be reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for correc-
-       tion.  The -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command may be used to  see
+       tion.   The -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command may be used to see
        what a history expansion will do before using it.  The -\b-s\bs option to the
-       h\bhi\bis\bst\bto\bor\bry\bbuiltin may be used to add commands to the end of  the  history
-       list  without  actually  executing them, so that they are available for
+       h\bhi\bis\bst\bto\bor\bry\b builtin  may be used to add commands to the end of the history
+       list without actually executing them, so that they  are  available  for
        subsequent recall.
 
-       The shell allows control of the various characters used by the  history
+       The  shell allows control of the various characters used by the history
        expansion mechanism (see the description of h\bhi\bis\bst\btc\bch\bha\bar\brs\bs above under S\bSh\bhe\bel\bll\bl
        V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs).
 
    E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
-       An event designator is a reference to a command line entry in the  his-
+       An  event designator is a reference to a command line entry in the his-
        tory list.
 
-       !\b!      Start  a  history substitution, except when followed by a b\bbl\bla\ban\bnk\bk,
-              newline, carriage return, = or ( (when the e\bex\bxt\btg\bgl\blo\bob\bb shell  option
+       !\b!      Start a history substitution, except when followed by  a  b\bbl\bla\ban\bnk\bk,
+              newline,  carriage return, = or ( (when the e\bex\bxt\btg\bgl\blo\bob\bb shell option
               is enabled using the s\bsh\bho\bop\bpt\bt builtin).
        !\b!_\bn     Refer to command line _\bn.
        !\b!-\b-_\bn    Refer to the current command line minus _\bn.
@@ -3293,21 +3297,21 @@ H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        !\b!_\bs_\bt_\br_\bi_\bn_\bg
               Refer to the most recent command starting with _\bs_\bt_\br_\bi_\bn_\bg.
        !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]
-              Refer  to the most recent command containing _\bs_\bt_\br_\bi_\bn_\bg.  The trail-
+              Refer to the most recent command containing _\bs_\bt_\br_\bi_\bn_\bg.  The  trail-
               ing ?\b? may be omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed immediately by a new-
               line.
        ^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b1^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b2^\b^
-              Quick  substitution.  Repeat the last command, replacing _\bs_\bt_\br_\bi_\bn_\bg_\b1
+              Quick substitution.  Repeat the last command, replacing  _\bs_\bt_\br_\bi_\bn_\bg_\b1
               with _\bs_\bt_\br_\bi_\bn_\bg_\b2.  Equivalent to ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/'' (see M\bMo\bod\bd-\b-
               i\bif\bfi\bie\ber\brs\bs below).
        !\b!#\b#     The entire command line typed so far.
 
    W\bWo\bor\brd\bd D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
-       Word  designators are used to select desired words from the event.  A :\b:
-       separates the event specification from the word designator.  It may  be
-       omitted  if  the word designator begins with a ^\b^, $\b$, *\b*, -\b-, or %\b%.  Words
-       are numbered from the beginning of the line, with the first word  being
-       denoted  by  0  (zero).  Words are inserted into the current line sepa-
+       Word designators are used to select desired words from the event.  A  :\b:
+       separates  the event specification from the word designator.  It may be
+       omitted if the word designator begins with a ^\b^, $\b$, *\b*, -\b-, or  %\b%.   Words
+       are  numbered from the beginning of the line, with the first word being
+       denoted by 0 (zero).  Words are inserted into the  current  line  sepa-
        rated by single spaces.
 
        0\b0 (\b(z\bze\ber\bro\bo)\b)
@@ -3317,17 +3321,17 @@ H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        $\b$      The last argument.
        %\b%      The word matched by the most recent `?_\bs_\bt_\br_\bi_\bn_\bg?' search.
        _\bx-\b-_\by    A range of words; `-_\by' abbreviates `0-_\by'.
-       *\b*      All of the words but the zeroth.  This is a synonym  for  `_\b1_\b-_\b$'.
-              It  is  not  an  error to use *\b* if there is just one word in the
+       *\b*      All  of  the words but the zeroth.  This is a synonym for `_\b1_\b-_\b$'.
+              It is not an error to use *\b* if there is just  one  word  in  the
               event; the empty string is returned in that case.
        x\bx*\b*     Abbreviates _\bx_\b-_\b$.
        x\bx-\b-     Abbreviates _\bx_\b-_\b$ like x\bx*\b*, but omits the last word.
 
-       If a word designator is supplied without an  event  specification,  the
+       If  a  word  designator is supplied without an event specification, the
        previous command is used as the event.
 
    M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs
-       After  the optional word designator, there may appear a sequence of one
+       After the optional word designator, there may appear a sequence of  one
        or more of the following modifiers, each preceded by a `:'.
 
        h\bh      Remove a trailing file name component, leaving only the head.
@@ -3336,70 +3340,70 @@ H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
        e\be      Remove all but the trailing suffix.
        p\bp      Print the new command but do not execute it.
        q\bq      Quote the substituted words, escaping further substitutions.
-       x\bx      Quote  the  substituted words as with q\bq, but break into words at
+       x\bx      Quote the substituted words as with q\bq, but break into  words  at
               b\bbl\bla\ban\bnk\bks\bs and newlines.
        s\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/
-              Substitute _\bn_\be_\bw for the first occurrence  of  _\bo_\bl_\bd  in  the  event
-              line.   Any  delimiter  can  be  used  in place of /.  The final
-              delimiter is optional if it is the last character of  the  event
-              line.   The delimiter may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a single
-              backslash.  If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd.  A  sin-
-              gle  backslash  will  quote the &.  If _\bo_\bl_\bd is null, it is set to
-              the last _\bo_\bl_\bd substituted, or, if no previous  history  substitu-
+              Substitute  _\bn_\be_\bw  for  the  first  occurrence of _\bo_\bl_\bd in the event
+              line.  Any delimiter can be used  in  place  of  /.   The  final
+              delimiter  is  optional if it is the last character of the event
+              line.  The delimiter may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a  single
+              backslash.   If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd.  A sin-
+              gle backslash will quote the &.  If _\bo_\bl_\bd is null, it  is  set  to
+              the  last  _\bo_\bl_\bd substituted, or, if no previous history substitu-
               tions took place, the last _\bs_\bt_\br_\bi_\bn_\bg in a !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]  search.
        &\b&      Repeat the previous substitution.
        g\bg      Cause changes to be applied over the entire event line.  This is
-              used in conjunction with `:\b:s\bs' (e.g.,  `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/')  or  `:\b:&\b&'.
-              If  used with `:\b:s\bs', any delimiter can be used in place of /, and
-              the final delimiter is optional if it is the last  character  of
+              used  in  conjunction  with `:\b:s\bs' (e.g., `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/') or `:\b:&\b&'.
+              If used with `:\b:s\bs', any delimiter can be used in place of /,  and
+              the  final  delimiter is optional if it is the last character of
               the event line.  An a\ba may be used as a synonym for g\bg.
-       G\bG      Apply  the following `s\bs' modifier once to each word in the event
+       G\bG      Apply the following `s\bs' modifier once to each word in the  event
               line.
 
 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
+       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.
        :\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
+              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
               returned.
 
         .\b.  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
        s\bso\bou\bur\brc\bce\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
-              Read  and  execute  commands  from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be in the current shell
-              environment and return the exit status of the last command  exe-
+              Read and execute commands from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  in  the  current  shell
+              environment  and return the exit status of the last command exe-
               cuted from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not contain a slash, file
-              names in P\bPA\bAT\bTH\bH are used to find the  directory  containing  _\bf_\bi_\bl_\be_\b-
-              _\bn_\ba_\bm_\be.   The  file  searched  for in P\bPA\bAT\bTH\bH need not be executable.
-              When b\bba\bas\bsh\bh is  not  in  _\bp_\bo_\bs_\bi_\bx  _\bm_\bo_\bd_\be,  the  current  directory  is
-              searched  if no file is found in P\bPA\bAT\bTH\bH.  If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh option
-              to the s\bsh\bho\bop\bpt\bt builtin command is turned  off,  the  P\bPA\bAT\bTH\bH  is  not
-              searched.   If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the posi-
-              tional parameters when  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is  executed.   Otherwise  the
-              positional  parameters  are unchanged.  The return status is the
-              status of the last command exited within the  script  (0  if  no
-              commands  are  executed),  and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is not found or
+              names  in  P\bPA\bAT\bTH\bH  are used to find the directory containing _\bf_\bi_\bl_\be_\b-
+              _\bn_\ba_\bm_\be.  The file searched for in P\bPA\bAT\bTH\bH  need  not  be  executable.
+              When  b\bba\bas\bsh\bh  is  not  in  _\bp_\bo_\bs_\bi_\bx  _\bm_\bo_\bd_\be,  the  current directory is
+              searched if no file is found in P\bPA\bAT\bTH\bH.  If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\b option
+              to  the  s\bsh\bho\bop\bpt\bt  builtin  command  is turned off, the P\bPA\bAT\bTH\bH is not
+              searched.  If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the  posi-
+              tional  parameters  when  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be  is  executed.  Otherwise the
+              positional parameters are unchanged.  The return status  is  the
+              status  of  the  last  command exited within the script (0 if no
+              commands are executed), and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is  not  found  or
               cannot be read.
 
        a\bal\bli\bia\bas\bs [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
               A\bAl\bli\bia\bas\bs with no arguments or with the -\b-p\bp option prints the list of
-              aliases  in  the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard output.  When
-              arguments are supplied, an alias is defined for each _\bn_\ba_\bm_\b whose
+              aliases in the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard  output.   When
+              arguments  are supplied, an alias is defined for each _\bn_\ba_\bm_\be whose
               _\bv_\ba_\bl_\bu_\be is given.  A trailing space in  _\bv_\ba_\bl_\bu_\be causes the next word
               to be checked for alias substitution when the alias is expanded.
-              For  each  _\bn_\ba_\bm_\be  in the argument list for which no _\bv_\ba_\bl_\bu_\be is sup-
-              plied, the name and  value  of  the  alias  is  printed.   A\bAl\bli\bia\bas\bs
-              returns  true unless a _\bn_\ba_\bm_\be is given for which no alias has been
+              For each _\bn_\ba_\bm_\be in the argument list for which no  _\bv_\ba_\bl_\bu_\be  is  sup-
+              plied,  the  name  and  value  of  the  alias is printed.  A\bAl\bli\bia\bas\bs
+              returns true unless a _\bn_\ba_\bm_\be is given for which no alias has  been
               defined.
 
        b\bbg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
-              Resume each suspended job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background,  as  if  it
+              Resume  each  suspended  job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background, as if it
               had been started with &\b&.  If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's
-              notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.  b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0  unless
-              run  when  job control is disabled or, when run with job control
-              enabled, any specified _\bj_\bo_\bb_\bs_\bp_\be_\bc was  not  found  or  was  started
+              notion  of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used.  b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0 unless
+              run when job control is disabled or, when run with  job  control
+              enabled,  any  specified  _\bj_\bo_\bb_\bs_\bp_\be_\bc  was  not found or was started
               without job control.
 
        b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-l\blp\bps\bsv\bvP\bPS\bSV\bV]
@@ -3408,29 +3412,29 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
        b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
        b\bbi\bin\bnd\bd _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
-              Display  current  r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind a key
-              sequence to a r\bre\bea\bad\bdl\bli\bin\bne\be function or  macro,  or  set  a  r\bre\bea\bad\bdl\bli\bin\bne\be
-              variable.   Each  non-option  argument  is a command as it would
-              appear in _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must  be  passed
-              as  a  separate argument; e.g., '"\C-x\C-r": re-read-init-file'.
+              Display current r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind  a  key
+              sequence  to  a  r\bre\bea\bad\bdl\bli\bin\bne\be  function  or macro, or set a r\bre\bea\bad\bdl\bli\bin\bne\be
+              variable.  Each non-option argument is a  command  as  it  would
+              appear  in  _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must be passed
+              as a separate argument; e.g.,  '"\C-x\C-r":  re-read-init-file'.
               Options, if supplied, have the following meanings:
               -\b-m\bm _\bk_\be_\by_\bm_\ba_\bp
                      Use _\bk_\be_\by_\bm_\ba_\bp as the keymap to be affected by the subsequent
                      bindings.  Acceptable _\bk_\be_\by_\bm_\ba_\bp names are _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
-                     _\bd_\ba_\br_\bd_\b_\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b,  _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
-                     and  _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
+                     _\bd_\ba_\br_\bd_\b _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b,  _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b,  _\bv_\bi_\b, _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
+                     and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt.  _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\b is
                      equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.
               -\b-l\bl     List the names of all r\bre\bea\bad\bdl\bli\bin\bne\be functions.
-              -\b-p\bp     Display r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings  in  such  a
+              -\b-p\bp     Display  r\bre\bea\bad\bdl\bli\bin\bne\be  function  names and bindings in such a
                      way that they can be re-read.
               -\b-P\bP     List current r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings.
-              -\b-v\bv     Display  r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values in such a way
+              -\b-v\bv     Display r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values in such a  way
                      that they can be re-read.
               -\b-V\bV     List current r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values.
-              -\b-s\bs     Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to  macros  and  the
-                     strings  they  output  in such a way that they can be re-
+              -\b-s\bs     Display  r\bre\bea\bad\bdl\bli\bin\bne\be  key  sequences bound to macros and the
+                     strings they output in such a way that they  can  be  re-
                      read.
-              -\b-S\bS     Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to  macros  and  the
+              -\b-S\bS     Display  r\bre\bea\bad\bdl\bli\bin\bne\be  key  sequences bound to macros and the
                      strings they output.
               -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
                      Read key bindings from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
@@ -3441,141 +3445,141 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-r\br _\bk_\be_\by_\bs_\be_\bq
                      Remove any current binding for _\bk_\be_\by_\bs_\be_\bq.
               -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:\b:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
-                     Cause  _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd  to  be  executed whenever _\bk_\be_\by_\bs_\be_\bq is
+                     Cause _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd to be  executed  whenever  _\bk_\be_\by_\bs_\be_\b is
                      entered.
 
-              The return value is 0 unless an unrecognized option is given  or
+              The  return value is 0 unless an unrecognized option is given or
               an error occurred.
 
        b\bbr\bre\bea\bak\bk [_\bn]
-              Exit  from  within a f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop.  If _\bn is
-              specified, break _\bn levels.  _\bn must be >= 1.   If  _\bn  is  greater
-              than  the  number  of  enclosing  loops, all enclosing loops are
+              Exit from within a f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop.  If  _\b is
+              specified,  break  _\bn  levels.   _\bn must be >= 1.  If _\bn is greater
+              than the number of enclosing  loops,  all  enclosing  loops  are
               exited.  The return value is 0 unless the shell is not executing
               a loop when b\bbr\bre\bea\bak\bk is executed.
 
        b\bbu\bui\bil\blt\bti\bin\bn _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
-              Execute  the  specified shell builtin, passing it _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, and
+              Execute the specified shell builtin, passing it  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs,  and
               return its exit status.  This is useful when defining a function
-              whose  name  is the same as a shell builtin, retaining the func-
+              whose name is the same as a shell builtin, retaining  the  func-
               tionality of the builtin within the function.  The c\bcd\bd builtin is
-              commonly  redefined  this  way.   The  return status is false if
+              commonly redefined this way.  The  return  status  is  false  if
               _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn is not a shell builtin command.
 
        c\bcd\bd [-\b-L\bL|\b|-\b-P\bP] [_\bd_\bi_\br]
-              Change the current directory to _\bd_\bi_\br.  The variable H\bHO\bOM\bME\bE  is  the
-              default  _\bd_\bi_\br.   The  variable C\bCD\bDP\bPA\bAT\bTH\bH defines the search path for
-              the directory containing _\bd_\bi_\br.  Alternative  directory  names  in
-              C\bCD\bDP\bPA\bAT\bTH\b are  separated by a colon (:).  A null directory name in
-              C\bCD\bDP\bPA\bAT\bTH\bis the same as the current directory,  i.e.,  ``.\b.''.   If
-              _\bd_\bi_\b begins  with  a  slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is not used. The -\b-P\bP
-              option says to use the physical directory structure  instead  of
-              following  symbolic  links  (see  also  the -\b-P\bP option to the s\bse\bet\bt
+              Change  the  current directory to _\bd_\bi_\br.  The variable H\bHO\bOM\bME\bE is the
+              default _\bd_\bi_\br.  The variable C\bCD\bDP\bPA\bAT\bTH\bH defines the  search  path  for
+              the  directory  containing  _\bd_\bi_\br.  Alternative directory names in
+              C\bCD\bDP\bPA\bAT\bTH\bare separated by a colon (:).  A null directory  name  in
+              C\bCD\bDP\bPA\bAT\bTH\b is  the  same as the current directory, i.e., ``.\b.''.  If
+              _\bd_\bi_\bbegins with a slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is  not  used.  The  -\b-P\bP
+              option  says  to use the physical directory structure instead of
+              following symbolic links (see also the  -\b-P\bP  option  to  the  s\bse\bet\bt
               builtin command); the -\b-L\bL option forces symbolic links to be fol-
-              lowed.   An  argument  of -\b- is equivalent to $\b$O\bOL\bLD\bDP\bPW\bWD\bD.  If a non-
-              empty directory name from C\bCD\bDP\bPA\bAT\bTH\bH is used, or if -\b- is  the  first
-              argument,  and  the directory change is successful, the absolute
+              lowed.  An argument of -\b- is equivalent to $\b$O\bOL\bLD\bDP\bPW\bWD\bD.   If  a  non-
+              empty  directory  name from C\bCD\bDP\bPA\bAT\bTH\bH is used, or if -\b- is the first
+              argument, and the directory change is successful,  the  absolute
               pathname of the new working directory is written to the standard
-              output.   The return value is true if the directory was success-
+              output.  The return value is true if the directory was  success-
               fully changed; false otherwise.
 
        c\bca\bal\bll\ble\ber\br [_\be_\bx_\bp_\br]
               Returns the context of any active subroutine call (a shell func-
-              tion  or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins.  With-
+              tion or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins.   With-
               out _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number and source filename of
-              the  current subroutine call.  If a non-negative integer is sup-
+              the current subroutine call.  If a non-negative integer is  sup-
               plied as _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number, subroutine name,
-              and  source  file  corresponding to that position in the current
-              execution call stack.  This extra information may be  used,  for
-              example,  to print a stack trace.  The current frame is frame 0.
-              The return value is 0 unless the shell is not executing  a  sub-
-              routine  call or _\be_\bx_\bp_\br does not correspond to a valid position in
+              and source file corresponding to that position  in  the  current
+              execution  call  stack.  This extra information may be used, for
+              example, to print a stack trace.  The current frame is frame  0.
+              The  return  value is 0 unless the shell is not executing a sub-
+              routine call or _\be_\bx_\bp_\br does not correspond to a valid position  in
               the call stack.
 
        c\bco\bom\bmm\bma\ban\bnd\bd [-\b-p\bpV\bVv\bv] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg ...]
-              Run _\bc_\bo_\bm_\bm_\ba_\bn_\bd with _\ba_\br_\bg_\bs  suppressing  the  normal  shell  function
-              lookup.  Only builtin commands or commands found in the P\bPA\bAT\bTH\bH are
-              executed.  If the -\b-p\bp option is given, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\b is
-              performed  using  a default value for P\bPA\bAT\bTH\bH that is guaranteed to
-              find all of the standard utilities.  If  either  the  -\b-V\bV  or  -\b-v\bv
+              Run  _\bc_\bo_\bm_\bm_\ba_\bn_\bd  with  _\ba_\br_\bg_\bs  suppressing  the normal shell function
+              lookup. Only builtin commands or commands found in the P\bPA\bAT\bTH\b are
+              executed.   If the -\b-p\bp option is given, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
+              performed using a default value for P\bPA\bAT\bTH\bH that is  guaranteed  to
+              find  all  of  the  standard  utilities.  If either the -\b-V\bV or -\b-v\bv
               option is supplied, a description of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is printed.  The -\b-v\bv
-              option causes a single word indicating the command or file  name
+              option  causes a single word indicating the command or file name
               used to invoke _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be displayed; the -\b-V\bV option produces a
-              more verbose description.  If the -\b-V\bV or -\b-v\bv option  is  supplied,
-              the  exit  status  is  0 if _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and 1 if not.  If
+              more  verbose  description.  If the -\b-V\bV or -\b-v\bv option is supplied,
+              the exit status is 0 if _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and  1  if  not.   If
               neither option is supplied and an error occurred or _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
-              not  be found, the exit status is 127.  Otherwise, the exit sta-
+              not be found, the exit status is 127.  Otherwise, the exit  sta-
               tus of the c\bco\bom\bmm\bma\ban\bnd\bd builtin is the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
 
        c\bco\bom\bmp\bpg\bge\ben\bn [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bw_\bo_\br_\bd]
-              Generate possible completion matches for _\bw_\bo_\br_\bd according  to  the
-              _\bo_\bp_\bt_\bi_\bo_\bns,  which  may  be  any  option  accepted  by the c\bco\bom\bmp\bpl\ble\bet\bte\be
-              builtin with the exception of -\b-p\bp and -\b-r\br, and write  the  matches
-              to  the  standard  output.  When using the -\b-F\bF or -\b-C\bC options, the
-              various shell  variables  set  by  the  programmable  completion
+              Generate  possible  completion matches for _\bw_\bo_\br_\bd according to the
+              _\bo_\bp_\bt_\bi_\bo_\bns, which may  be  any  option  accepted  by  the  c\bco\bom\bmp\bpl\ble\bet\bte\be
+              builtin  with  the exception of -\b-p\bp and -\b-r\br, and write the matches
+              to the standard output.  When using the -\b-F\bF or  -\b-C\bC  options,  the
+              various  shell  variables  set  by  the  programmable completion
               facilities, while available, will not have useful values.
 
-              The  matches  will  be  generated in the same way as if the pro-
-              grammable completion code had generated  them  directly  from  a
+              The matches will be generated in the same way  as  if  the  pro-
+              grammable  completion  code  had  generated them directly from a
               completion specification with the same flags.  If _\bw_\bo_\br_\bd is speci-
               fied, only those completions matching _\bw_\bo_\br_\bd will be displayed.
 
-              The return value is true unless an invalid option  is  supplied,
+              The  return  value is true unless an invalid option is supplied,
               or no matches were generated.
 
-       c\bco\bom\bmp\bpl\ble\bet\bte\b [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt] [-\b-W\bW
+       c\bco\bom\bmp\bpl\ble\bet\bte\b[-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt]  [-\b-W\bW
        _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt] [-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx] [-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx]
               [-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt] [-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be _\b._\b._\b.]
        c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [_\bn_\ba_\bm_\be ...]
-              Specify  how arguments to each _\bn_\ba_\bm_\be should be completed.  If the
-              -\b-p\boption is supplied, or if no options are  supplied,  existing
-              completion  specifications are printed in a way that allows them
+              Specify how arguments to each _\bn_\ba_\bm_\be should be completed.  If  the
+              -\b-p\b option  is supplied, or if no options are supplied, existing
+              completion specifications are printed in a way that allows  them
               to be reused as input.  The -\b-r\br option removes a completion spec-
-              ification  for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all com-
+              ification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all  com-
               pletion specifications.
 
-              The process of applying  these  completion  specifications  when
-              word  completion  is  attempted  is  described  above under P\bPr\bro\bo-\b-
+              The  process  of  applying  these completion specifications when
+              word completion is  attempted  is  described  above  under  P\bPr\bro\bo-\b-
               g\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
 
-              Other options, if specified, have the following  meanings.   The
-              arguments  to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary, the
-              -\b-P\band -\b-S\bS options) should be quoted to protect them from  expan-
+              Other  options,  if specified, have the following meanings.  The
+              arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary,  the
+              -\b-P\b and -\b-S\bS options) should be quoted to protect them from expan-
               sion before the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin is invoked.
               -\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn
-                      The  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn  controls  several aspects of the comp-
-                      spec's behavior beyond the simple generation of  comple-
+                      The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects  of  the  comp-
+                      spec's  behavior beyond the simple generation of comple-
                       tions.  _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn may be one of:
                       b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt
                               Perform the rest of the default b\bba\bas\bsh\bh completions
                               if the compspec generates no matches.
-                      d\bde\bef\bfa\bau\bul\blt\bt Use readline's default  filename  completion  if
+                      d\bde\bef\bfa\bau\bul\blt\bt Use  readline's  default  filename completion if
                               the compspec generates no matches.
                       d\bdi\bir\brn\bna\bam\bme\bes\bs
-                              Perform  directory  name completion if the comp-
+                              Perform directory name completion if  the  comp-
                               spec generates no matches.
                       f\bfi\bil\ble\ben\bna\bam\bme\bes\bs
-                              Tell readline that the compspec generates  file-
-                              names,  so  it can perform any filename-specific
-                              processing (like adding  a  slash  to  directory
+                              Tell  readline that the compspec generates file-
+                              names, so it can perform  any  filename-specific
+                              processing  (like  adding  a  slash to directory
                               names or suppressing trailing spaces).  Intended
                               to be used with shell functions.
-                      n\bno\bos\bsp\bpa\bac\bce\be Tell  readline  not  to  append  a  space   (the
-                              default)  to  words  completed at the end of the
+                      n\bno\bos\bsp\bpa\bac\bce\be Tell   readline  not  to  append  a  space  (the
+                              default) to words completed at the  end  of  the
                               line.
                       p\bpl\blu\bus\bsd\bdi\bir\brs\bs
-                              After any matches defined by  the  compspec  are
-                              generated,    directory   name   completion   is
-                              attempted and  any  matches  are  added  to  the
+                              After  any  matches  defined by the compspec are
+                              generated,   directory   name   completion    is
+                              attempted  and  any  matches  are  added  to the
                               results of the other actions.
               -\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn
-                      The  _\ba_\bc_\bt_\bi_\bo_\bn  may  be  one of the following to generate a
+                      The _\ba_\bc_\bt_\bi_\bo_\bn may be one of the  following  to  generate  a
                       list of possible completions:
                       a\bal\bli\bia\bas\bs   Alias names.  May also be specified as -\b-a\ba.
                       a\bar\brr\bra\bay\byv\bva\bar\br
                               Array variable names.
                       b\bbi\bin\bnd\bdi\bin\bng\bg R\bRe\bea\bad\bdl\bli\bin\bne\be key binding names.
-                      b\bbu\bui\bil\blt\bti\bin\bn Names of shell builtin commands.   May  also  be
+                      b\bbu\bui\bil\blt\bti\bin\bn Names  of  shell  builtin commands.  May also be
                               specified as -\b-b\bb.
                       c\bco\bom\bmm\bma\ban\bnd\bd Command names.  May also be specified as -\b-c\bc.
                       d\bdi\bir\bre\bec\bct\bto\bor\bry\by
@@ -3583,7 +3587,7 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       d\bdi\bis\bsa\bab\bbl\ble\bed\bd
                               Names of disabled shell builtins.
                       e\ben\bna\bab\bbl\ble\bed\bd Names of enabled shell builtins.
-                      e\bex\bxp\bpo\bor\brt\bt  Names  of exported shell variables.  May also be
+                      e\bex\bxp\bpo\bor\brt\bt  Names of exported shell variables.  May also  be
                               specified as -\b-e\be.
                       f\bfi\bil\ble\be    File names.  May also be specified as -\b-f\bf.
                       f\bfu\bun\bnc\bct\bti\bio\bon\bn
@@ -3592,17 +3596,17 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                       h\bhe\bel\blp\bpt\bto\bop\bpi\bic\bc
                               Help topics as accepted by the h\bhe\bel\blp\bp builtin.
                       h\bho\bos\bst\btn\bna\bam\bme\be
-                              Hostnames, as taken from the file  specified  by
+                              Hostnames,  as  taken from the file specified by
                               the H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE shell variable.
-                      j\bjo\bob\bb     Job  names,  if job control is active.  May also
+                      j\bjo\bob\bb     Job names, if job control is active.   May  also
                               be specified as -\b-j\bj.
-                      k\bke\bey\byw\bwo\bor\brd\bd Shell reserved words.  May also be specified  as
+                      k\bke\bey\byw\bwo\bor\brd\bd Shell  reserved words.  May also be specified as
                               -\b-k\bk.
                       r\bru\bun\bnn\bni\bin\bng\bg Names of running jobs, if job control is active.
                       s\bse\ber\brv\bvi\bic\bce\be Service names.  May also be specified as -\b-s\bs.
-                      s\bse\bet\bto\bop\bpt\bt  Valid arguments for the -\b-o\bo  option  to  the  s\bse\bet\bt
+                      s\bse\bet\bto\bop\bpt\bt  Valid  arguments  for  the  -\b-o\bo option to the s\bse\bet\bt
                               builtin.
-                      s\bsh\bho\bop\bpt\bt   Shell  option  names  as  accepted  by the s\bsh\bho\bop\bpt\bt
+                      s\bsh\bho\bop\bpt\bt   Shell option names  as  accepted  by  the  s\bsh\bho\bop\bpt\bt
                               builtin.
                       s\bsi\big\bgn\bna\bal\bl  Signal names.
                       s\bst\bto\bop\bpp\bpe\bed\bd Names of stopped jobs, if job control is active.
@@ -3611,136 +3615,136 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               Names of all shell variables.  May also be spec-
                               ified as -\b-v\bv.
               -\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
-                      The filename expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt  is  expanded  to
+                      The  filename  expansion  pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt is expanded to
                       generate the possible completions.
               -\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
-                      The  _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt  is  split using the characters in the I\bIF\bFS\bS
-                      special variable as delimiters, and each resultant  word
-                      is  expanded.   The possible completions are the members
-                      of the resultant list which match the  word  being  com-
+                      The _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is split using the characters  in  the  I\bIF\bFS\bS
+                      special  variable as delimiters, and each resultant word
+                      is expanded.  The possible completions are  the  members
+                      of  the  resultant  list which match the word being com-
                       pleted.
               -\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd
-                      _\bc_\bo_\bm_\bm_\ba_\bn_\b is  executed in a subshell environment, and its
+                      _\bc_\bo_\bm_\bm_\ba_\bn_\bis executed in a subshell environment,  and  its
                       output is used as the possible completions.
               -\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
-                      The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in  the  current
-                      shell  environment.  When it finishes, the possible com-
-                      pletions are retrieved from the value of  the  C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
+                      The  shell  function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in the current
+                      shell environment.  When it finishes, the possible  com-
+                      pletions  are  retrieved from the value of the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
                       array variable.
               -\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
-                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\b is  a pattern as used for filename expansion.
+                      _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bis a pattern as used for  filename  expansion.
                       It is applied to the list of possible completions gener-
-                      ated  by  the  preceding options and arguments, and each
-                      completion matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the  list.
-                      A  leading  !\b!  in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the pattern; in this
-                      case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is  removed.
+                      ated by the preceding options and  arguments,  and  each
+                      completion  matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the list.
+                      A leading !\b! in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the  pattern;  in  this
+                      case,  any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed.
               -\b-P\bP _\bp_\br_\be_\bf_\bi_\bx
-                      _\bp_\br_\be_\bf_\bi_\b is  added at the beginning of each possible com-
+                      _\bp_\br_\be_\bf_\bi_\bis added at the beginning of each  possible  com-
                       pletion after all other options have been applied.
               -\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx
                       _\bs_\bu_\bf_\bf_\bi_\bx is appended to each possible completion after all
                       other options have been applied.
 
-              The  return  value is true unless an invalid option is supplied,
-              an option other than -\b-p\bp or -\b-r\br is supplied without a  _\bn_\ba_\bm_\b argu-
-              ment,  an  attempt  is made to remove a completion specification
+              The return value is true unless an invalid option  is  supplied,
+              an  option  other than -\b-p\bp or -\b-r\br is supplied without a _\bn_\ba_\bm_\be argu-
+              ment, an attempt is made to remove  a  completion  specification
               for a _\bn_\ba_\bm_\be for which no specification exists, or an error occurs
               adding a completion specification.
 
        c\bco\bon\bnt\bti\bin\bnu\bue\be [_\bn]
               Resume the next iteration of the enclosing f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or
-              s\bse\bel\ble\bec\bct\bloop.  If _\bn is specified, resume  at  the  _\bnth  enclosing
-              loop.   _\bn  must  be  >=  1.   If _\bn is greater than the number of
-              enclosing loops, the  last  enclosing  loop  (the  ``top-level''
+              s\bse\bel\ble\bec\bct\b loop.   If  _\bn  is specified, resume at the _\bnth enclosing
+              loop.  _\bn must be >= 1.  If _\bn  is  greater  than  the  number  of
+              enclosing  loops,  the  last  enclosing  loop (the ``top-level''
               loop) is resumed.  The return value is 0 unless the shell is not
               executing a loop when c\bco\bon\bnt\bti\bin\bnu\bue\be is executed.
 
        d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baf\bfF\bFi\bir\brt\btx\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
        t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baf\bfF\bFi\bir\brt\btx\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
-              Declare variables and/or give them attributes.  If no _\bn_\ba_\bm_\bes  are
-              given  then display the values of variables.  The -\b-p\bp option will
-              display the attributes and values of  each  _\bn_\ba_\bm_\be.   When  -\b-p\b is
-              used,  additional  options  are ignored.  The -\b-F\bF option inhibits
-              the display of function definitions; only the function name  and
+              Declare  variables and/or give them attributes.  If no _\bn_\ba_\bm_\bes are
+              given then display the values of variables.  The -\b-p\bp option  will
+              display  the  attributes  and  values  of each _\bn_\ba_\bm_\be.  When -\b-p\bp is
+              used, additional options are ignored.  The  -\b-F\bF  option  inhibits
+              the  display of function definitions; only the function name and
               attributes are printed.  If the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled
-              using s\bsh\bho\bop\bpt\bt, the source file name  and  line  number  where  the
-              function  is  defined  are  displayed  as  well.   The -\b-F\bF option
-              implies -\b-f\bf.  The following options can be used to restrict  out-
-              put  to  variables with the specified attribute or to give vari-
+              using  s\bsh\bho\bop\bpt\bt,  the  source  file  name and line number where the
+              function is defined  are  displayed  as  well.   The  -\b-F\b option
+              implies  -\b-f\bf.  The following options can be used to restrict out-
+              put to variables with the specified attribute or to  give  vari-
               ables attributes:
               -\b-a\ba     Each _\bn_\ba_\bm_\be is an array variable (see A\bAr\brr\bra\bay\bys\bs above).
               -\b-f\bf     Use function names only.
               -\b-i\bi     The variable is treated as an integer; arithmetic evalua-
-                     tion  (see  A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN )\b) is performed when the
+                     tion (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN )\b) is performed  when  the
                      variable is assigned a value.
               -\b-r\br     Make _\bn_\ba_\bm_\bes readonly.  These names cannot then be assigned
                      values by subsequent assignment statements or unset.
-              -\b-t\bt     Give  each  _\bn_\ba_\bm_\be  the  _\bt_\br_\ba_\bc_\be attribute.  Traced functions
-                     inherit the D\bDE\bEB\bBU\bUG\bG  and  R\bRE\bET\bTU\bUR\bRN\bN  traps  from  the  calling
-                     shell.   The  trace  attribute has no special meaning for
+              -\b-t\bt     Give each _\bn_\ba_\bm_\be the  _\bt_\br_\ba_\bc_\be  attribute.   Traced  functions
+                     inherit  the  D\bDE\bEB\bBU\bUG\bG  and  R\bRE\bET\bTU\bUR\bRN\bN  traps  from the calling
+                     shell.  The trace attribute has no  special  meaning  for
                      variables.
-              -\b-x\bx     Mark _\bn_\ba_\bm_\bes for export  to  subsequent  commands  via  the
+              -\b-x\bx     Mark  _\bn_\ba_\bm_\bes  for  export  to  subsequent commands via the
                      environment.
 
-              Using  `+'  instead of `-' turns off the attribute instead, with
-              the exception that +\b+a\ba may not be used to destroy an array  vari-
-              able.   When  used in a function, makes each _\bn_\ba_\bm_\be local, as with
-              the l\blo\boc\bca\bal\bl command.  If a variable name is  followed  by  =_\bv_\ba_\bl_\bu_\be,
-              the  value of the variable is set to _\bv_\ba_\bl_\bu_\be.  The return value is
+              Using `+' instead of `-' turns off the attribute  instead,  with
+              the  exception that +\b+a\ba may not be used to destroy an array vari-
+              able.  When used in a function, makes each _\bn_\ba_\bm_\be local,  as  with
+              the  l\blo\boc\bca\bal\bl  command.   If a variable name is followed by =_\bv_\ba_\bl_\bu_\be,
+              the value of the variable is set to _\bv_\ba_\bl_\bu_\be.  The return value  is
               0 unless an invalid option is encountered, an attempt is made to
-              define  a  function  using ``-f foo=bar'', an attempt is made to
-              assign a value to a readonly variable, an  attempt  is  made  to
-              assign  a  value to an array variable without using the compound
-              assignment syntax (see A\bAr\brr\bra\bay\bys\bs above), one of the _\bn_\ba_\bm_\be_\bs is not  a
-              valid  shell variable name, an attempt is made to turn off read-
-              only status for a readonly variable, an attempt is made to  turn
+              define a function using ``-f foo=bar'', an attempt  is  made  to
+              assign  a  value  to  a readonly variable, an attempt is made to
+              assign a value to an array variable without using  the  compound
+              assignment  syntax (see A\bAr\brr\bra\bay\bys\bs above), one of the _\bn_\ba_\bm_\be_\bs is not a
+              valid shell variable name, an attempt is made to turn off  read-
+              only  status for a readonly variable, an attempt is made to turn
               off array status for an array variable, or an attempt is made to
               display a non-existent function with -\b-f\bf.
 
        d\bdi\bir\brs\bs [\b[-\b-c\bcl\blp\bpv\bv]\b] [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b]
-              Without options,  displays  the  list  of  currently  remembered
-              directories.   The  default  display  is  on  a single line with
-              directory names separated by spaces.  Directories are  added  to
-              the  list  with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd command removes
+              Without  options,  displays  the  list  of  currently remembered
+              directories.  The default display  is  on  a  single  line  with
+              directory  names  separated by spaces.  Directories are added to
+              the list with  the  p\bpu\bus\bsh\bhd\bd  command;  the  p\bpo\bop\bpd\bd  command  removes
               entries from the list.
               +\b+_\bn     Displays the _\bnth entry counting from the left of the list
                      shown by d\bdi\bir\brs\bs when invoked without options, starting with
                      zero.
-              -\b-_\bn     Displays the _\bnth entry counting from  the  right  of  the
+              -\b-_\bn     Displays  the  _\bnth  entry  counting from the right of the
                      list shown by d\bdi\bir\brs\bs when invoked without options, starting
                      with zero.
               -\b-c\bc     Clears  the  directory  stack  by  deleting  all  of  the
                      entries.
-              -\b-l\bl     Produces  a  longer  listing;  the default listing format
+              -\b-l\bl     Produces a longer listing;  the  default  listing  format
                      uses a tilde to denote the home directory.
               -\b-p\bp     Print the directory stack with one entry per line.
-              -\b-v\bv     Print the directory stack with one entry per  line,  pre-
+              -\b-v\bv     Print  the  directory stack with one entry per line, pre-
                      fixing each entry with its index in the stack.
 
-              The  return value is 0 unless an invalid option is supplied or _\bn
+              The return value is 0 unless an invalid option is supplied or  _\bn
               indexes beyond the end of the directory stack.
 
        d\bdi\bis\bso\bow\bwn\bn [-\b-a\bar\br] [-\b-h\bh] [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
-              Without options, each _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  removed  from  the  table  of
-              active  jobs.   If  the  -\b-h\bh option is given, each _\bj_\bo_\bb_\bs_\bp_\be_\bc is not
+              Without  options,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  removed  from the table of
+              active jobs.  If the -\b-h\bh option is given,  each  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is  not
               removed from the table, but is marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not sent
-              to  the  job  if  the shell receives a S\bSI\bIG\bGH\bHU\bUP\bP.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is
-              present, and neither the -\b-a\ba nor the -\b-r\br option is  supplied,  the
-              _\bc_\bu_\br_\br_\be_\bn_\b _\bj_\bo_\bb  is used.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option
-              means to remove or mark all jobs; the -\b-r\br option without  a  _\bj_\bo_\bb_\b-
-              _\bs_\bp_\be_\b argument  restricts operation to running jobs.  The return
+              to the job if the shell receives a S\bSI\bIG\bGH\bHU\bUP\bP.   If  no  _\bj_\bo_\bb_\bs_\bp_\be_\b is
+              present,  and  neither the -\b-a\ba nor the -\b-r\br option is supplied, the
+              _\bc_\bu_\br_\br_\be_\bn_\b_\bj_\bo_\bb is used.  If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the  -\b-a\b option
+              means  to  remove or mark all jobs; the -\b-r\br option without a _\bj_\bo_\bb_\b-
+              _\bs_\bp_\be_\bargument restricts operation to running jobs.   The  return
               value is 0 unless a _\bj_\bo_\bb_\bs_\bp_\be_\bc does not specify a valid job.
 
        e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
-              Output the _\ba_\br_\bgs, separated by spaces,  followed  by  a  newline.
+              Output  the  _\ba_\br_\bgs,  separated  by spaces, followed by a newline.
               The return status is always 0.  If -\b-n\bn is specified, the trailing
-              newline is suppressed.  If the -\b-e\be option is  given,  interpreta-
-              tion  of  the following backslash-escaped characters is enabled.
-              The -\b-E\bE option disables the interpretation of these escape  char-
-              acters,  even  on systems where they are interpreted by default.
-              The x\bxp\bpg\bg_\b_e\bec\bch\bho\bo shell option may be used to  dynamically  determine
-              whether  or not e\bec\bch\bho\bo expands these escape characters by default.
-              e\bec\bch\bho\bdoes not interpret -\b--\b- to mean the  end  of  options.   e\bec\bch\bho\bo
+              newline  is  suppressed.  If the -\b-e\be option is given, interpreta-
+              tion of the following backslash-escaped characters  is  enabled.
+              The  -\b-E\bE option disables the interpretation of these escape char-
+              acters, even on systems where they are interpreted  by  default.
+              The  x\bxp\bpg\bg_\b_e\bec\bch\bho\bo  shell option may be used to dynamically determine
+              whether or not e\bec\bch\bho\bo expands these escape characters by  default.
+              e\bec\bch\bho\b does  not  interpret  -\b--\b- to mean the end of options.  e\bec\bch\bho\bo
               interprets the following escape sequences:
               \\b\a\ba     alert (bell)
               \\b\b\bb     backspace
@@ -3752,188 +3756,188 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               \\b\t\bt     horizontal tab
               \\b\v\bv     vertical tab
               \\b\\\b\     backslash
-              \\b\0\b0_\bn_\bn_\bn  the  eight-bit  character  whose value is the octal value
+              \\b\0\b0_\bn_\bn_\bn  the eight-bit character whose value is  the  octal  value
                      _\bn_\bn_\bn (zero to three octal digits)
-              \\b\_\bn_\bn_\bn   the eight-bit character whose value is  the  octal  value
+              \\b\_\bn_\bn_\bn   the  eight-bit  character  whose value is the octal value
                      _\bn_\bn_\bn (one to three octal digits)
-              \\b\x\bx_\bH_\bH   the  eight-bit  character  whose value is the hexadecimal
+              \\b\x\bx_\bH_\bH   the eight-bit character whose value  is  the  hexadecimal
                      value _\bH_\bH (one or two hex digits)
 
        e\ben\bna\bab\bbl\ble\be [-\b-a\bad\bdn\bnp\bps\bs] [-\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [_\bn_\ba_\bm_\be ...]
-              Enable and disable builtin shell commands.  Disabling a  builtin
+              Enable  and disable builtin shell commands.  Disabling a builtin
               allows a disk command which has the same name as a shell builtin
-              to be executed without specifying a full pathname,  even  though
-              the  shell  normally searches for builtins before disk commands.
-              If -\b-n\bn is used, each  _\bn_\ba_\bm_\be  is  disabled;  otherwise,  _\bn_\ba_\bm_\be_\b are
+              to  be  executed without specifying a full pathname, even though
+              the shell normally searches for builtins before  disk  commands.
+              If  -\b-n\bn  is  used,  each  _\bn_\ba_\bm_\be  is disabled; otherwise, _\bn_\ba_\bm_\be_\bs are
               enabled.  For example, to use the t\bte\bes\bst\bt binary found via the P\bPA\bAT\bTH\bH
-              instead of the shell builtin version, run  ``enable  -n  test''.
-              The  -\b-f\bf  option  means to load the new builtin command _\bn_\ba_\bm_\be from
+              instead  of  the  shell builtin version, run ``enable -n test''.
+              The -\b-f\bf option means to load the new builtin  command  _\bn_\ba_\bm_\b from
               shared object _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, on systems that support dynamic loading.
-              The  -\b-d\bd  option will delete a builtin previously loaded with -\b-f\bf.
+              The -\b-d\bd option will delete a builtin previously loaded  with  -\b-f\bf.
               If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,
               a list of shell builtins is printed.  With no other option argu-
-              ments, the list consists of all enabled shell builtins.   If  -\b-n\bn
-              is  supplied, only disabled builtins are printed.  If -\b-a\ba is sup-
-              plied, the list printed includes all builtins, with  an  indica-
-              tion  of whether or not each is enabled.  If -\b-s\bs is supplied, the
-              output is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The  return
-              value  is  0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there is an
+              ments,  the  list consists of all enabled shell builtins.  If -\b-n\bn
+              is supplied, only disabled builtins are printed.  If -\b-a\ba is  sup-
+              plied,  the  list printed includes all builtins, with an indica-
+              tion of whether or not each is enabled.  If -\b-s\bs is supplied,  the
+              output  is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins.  The return
+              value is 0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there  is  an
               error loading a new builtin from a shared object.
 
        e\bev\bva\bal\bl [_\ba_\br_\bg ...]
-              The _\ba_\br_\bgs are read and concatenated together into a  single  com-
-              mand.   This command is then read and executed by the shell, and
-              its exit status is returned as the value of e\bev\bva\bal\bl.  If there  are
+              The  _\ba_\br_\bgs  are read and concatenated together into a single com-
+              mand.  This command is then read and executed by the shell,  and
+              its  exit status is returned as the value of e\bev\bva\bal\bl.  If there are
               no _\ba_\br_\bg_\bs, or only null arguments, e\bev\bva\bal\bl returns 0.
 
        e\bex\bxe\bec\bc [-\b-c\bcl\bl] [-\b-a\ba _\bn_\ba_\bm_\be] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]]
-              If  _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new process
-              is created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.   If
+              If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell.  No new  process
+              is  created.  The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  If
               the -\b-l\bl option is supplied, the shell places a dash at the begin-
               ning of the zeroth arg passed to _\bc_\bo_\bm_\bm_\ba_\bn_\bd.  This is what _\bl_\bo_\bg_\bi_\bn(1)
               does.  The -\b-c\bc option causes _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed with an empty
-              environment.  If -\b-a\ba is supplied, the shell passes  _\bn_\ba_\bm_\be  as  the
-              zeroth  argument  to the executed command.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd cannot be
-              executed for some reason, a non-interactive shell exits,  unless
-              the  shell  option e\bex\bxe\bec\bcf\bfa\bai\bil\bl is enabled, in which case it returns
-              failure.  An interactive shell returns failure if the file  can-
-              not  be executed.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redirections
-              take effect in the current shell, and the return  status  is  0.
+              environment.   If  -\b-a\ba  is supplied, the shell passes _\bn_\ba_\bm_\be as the
+              zeroth argument to the executed command.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd  cannot  be
+              executed  for some reason, a non-interactive shell exits, unless
+              the shell option e\bex\bxe\bec\bcf\bfa\bai\bil\bl is enabled, in which case  it  returns
+              failure.   An interactive shell returns failure if the file can-
+              not be executed.  If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any  redirections
+              take  effect  in  the current shell, and the return status is 0.
               If there is a redirection error, the return status is 1.
 
        e\bex\bxi\bit\bt [_\bn]
-              Cause  the  shell  to exit with a status of _\bn.  If _\bn is omitted,
+              Cause the shell to exit with a status of _\bn.  If  _\bn  is  omitted,
               the exit status is that of the last command executed.  A trap on
               E\bEX\bXI\bIT\bT is executed before the shell terminates.
 
        e\bex\bxp\bpo\bor\brt\bt [-\b-f\bfn\bn] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd]] ...
        e\bex\bxp\bpo\bor\brt\bt -\b-p\bp
-              The  supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the envi-
-              ronment of subsequently executed commands.  If the -\b-f\bf option  is
-              given,  the _\bn_\ba_\bm_\be_\bs refer to functions.  If no _\bn_\ba_\bm_\be_\bs are given, or
-              if the -\b-p\bp option is supplied, a  list  of  all  names  that  are
-              exported  in  this  shell  is printed.  The -\b-n\bn option causes the
-              export property to be removed from each  _\bn_\ba_\bm_\be.   If  a  variable
-              name  is  followed by =_\bw_\bo_\br_\bd, the value of the variable is set to
-              _\bw_\bo_\br_\bd.  e\bex\bxp\bpo\bor\brt\bt returns an exit status  of  0  unless  an  invalid
-              option  is  encountered,  one  of the _\bn_\ba_\bm_\be_\bs is not a valid shell
+              The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the  envi-
+              ronment  of subsequently executed commands.  If the -\b-f\bf option is
+              given, the _\bn_\ba_\bm_\be_\bs refer to functions.  If no _\bn_\ba_\bm_\be_\bs are given,  or
+              if  the  -\b-p\bp  option  is  supplied,  a list of all names that are
+              exported in this shell is printed.  The  -\b-n\bn  option  causes  the
+              export  property  to  be  removed from each _\bn_\ba_\bm_\be.  If a variable
+              name is followed by =_\bw_\bo_\br_\bd, the value of the variable is  set  to
+              _\bw_\bo_\br_\bd.   e\bex\bxp\bpo\bor\brt\bt  returns  an  exit  status of 0 unless an invalid
+              option is encountered, one of the _\bn_\ba_\bm_\be_\bs is  not  a  valid  shell
               variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be that is not a func-
               tion.
 
        f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-n\bnl\blr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
        f\bfc\bc -\b-s\bs [_\bp_\ba_\bt=_\br_\be_\bp] [_\bc_\bm_\bd]
-              Fix  Command.  In the first form, a range of commands from _\bf_\bi_\br_\bs_\bt
-              to _\bl_\ba_\bs_\bt is selected from the history list.  _\bF_\bi_\br_\bs_\bt and  _\bl_\ba_\bs_\b may
-              be  specified  as a string (to locate the last command beginning
-              with that string) or as a number  (an  index  into  the  history
+              Fix Command.  In the first form, a range of commands from  _\bf_\bi_\br_\bs_\bt
+              to  _\bl_\ba_\bs_\bt  is selected from the history list.  _\bF_\bi_\br_\bs_\bt and _\bl_\ba_\bs_\bt may
+              be specified as a string (to locate the last  command  beginning
+              with  that  string)  or  as  a number (an index into the history
               list, where a negative number is used as an offset from the cur-
               rent command number).  If _\bl_\ba_\bs_\bt is not specified it is set to the
-              current  command  for  listing (so that ``fc -l -10'' prints the
+              current command for listing (so that ``fc -l  -10''  prints  the
               last 10 commands) and to _\bf_\bi_\br_\bs_\bt otherwise.  If _\bf_\bi_\br_\bs_\bt is not spec-
-              ified  it is set to the previous command for editing and -16 for
+              ified it is set to the previous command for editing and -16  for
               listing.
 
-              The -\b-n\bn option suppresses the command numbers when listing.   The
-              -\b-r\b option reverses the order of the commands.  If the -\b-l\bl option
-              is given, the commands are listed on  standard  output.   Other-
-              wise,  the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file containing
-              those commands.  If _\be_\bn_\ba_\bm_\be is not given, the value of the  F\bFC\bCE\bED\bDI\bIT\bT
-              variable  is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not set.
-              If neither variable is set, _\bv_\bi is used.  When  editing  is  com-
+              The  -\b-n\bn option suppresses the command numbers when listing.  The
+              -\b-r\boption reverses the order of the commands.  If the -\b-l\b option
+              is  given,  the  commands are listed on standard output.  Other-
+              wise, the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file  containing
+              those  commands.  If _\be_\bn_\ba_\bm_\be is not given, the value of the F\bFC\bCE\bED\bDI\bIT\bT
+              variable is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not  set.
+              If  neither  variable  is set, _\bv_\bi is used.  When editing is com-
               plete, the edited commands are echoed and executed.
 
-              In  the  second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after each instance
-              of _\bp_\ba_\bt is replaced by _\br_\be_\bp.  A useful alias to use with  this  is
-              ``r="fc  -s"'',  so  that  typing ``r cc'' runs the last command
+              In the second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after  each  instance
+              of  _\bp_\ba_\bt  is replaced by _\br_\be_\bp.  A useful alias to use with this is
+              ``r="fc -s"'', so that typing ``r cc''  runs  the  last  command
               beginning with ``cc'' and typing ``r'' re-executes the last com-
               mand.
 
-              If  the  first  form  is  used,  the return value is 0 unless an
-              invalid option is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt  specify  history
-              lines  out  of  range.  If the -\b-e\be option is supplied, the return
+              If the first form is used, the  return  value  is  0  unless  an
+              invalid  option  is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
+              lines out of range.  If the -\b-e\be option is  supplied,  the  return
               value is the value of the last command executed or failure if an
               error occurs with the temporary file of commands.  If the second
-              form is used, the return status is that of the  command  re-exe-
-              cuted,  unless  _\bc_\bm_\bd  does  not  specify a valid history line, in
+              form  is  used, the return status is that of the command re-exe-
+              cuted, unless _\bc_\bm_\bd does not specify  a  valid  history  line,  in
               which case f\bfc\bc returns failure.
 
        f\bfg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc]
-              Resume _\bj_\bo_\bb_\bs_\bp_\be_\bc in the foreground, and make it the  current  job.
+              Resume  _\bj_\bo_\bb_\bs_\bp_\be_\bc  in the foreground, and make it the current job.
               If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb
-              is used.  The return value is that of the  command  placed  into
-              the  foreground,  or failure if run when job control is disabled
+              is  used.   The  return value is that of the command placed into
+              the foreground, or failure if run when job control  is  disabled
               or, when run with job control enabled, if _\bj_\bo_\bb_\bs_\bp_\be_\bc does not spec-
-              ify  a  valid  job  or  _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies a job that was started
+              ify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies  a  job  that  was  started
               without job control.
 
        g\bge\bet\bto\bop\bpt\bts\bs _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg _\bn_\ba_\bm_\be [_\ba_\br_\bg_\bs]
-              g\bge\bet\bto\bop\bpt\bts\bis used by shell procedures to parse positional  parame-
-              ters.   _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  contains  the  option characters to be recog-
-              nized; if a character is followed by  a  colon,  the  option  is
-              expected  to have an argument, which should be separated from it
-              by white space.  The colon and question mark characters may  not
-              be  used as option characters.  Each time it is invoked, g\bge\bet\bto\bop\bpt\bts\bs
-              places the next option in the shell variable _\bn_\ba_\bm_\be,  initializing
+              g\bge\bet\bto\bop\bpt\bts\b is used by shell procedures to parse positional parame-
+              ters.  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg contains the option  characters  to  be  recog-
+              nized;  if  a  character  is  followed by a colon, the option is
+              expected to have an argument, which should be separated from  it
+              by  white space.  The colon and question mark characters may not
+              be used as option characters.  Each time it is invoked,  g\bge\bet\bto\bop\bpt\bts\bs
+              places  the next option in the shell variable _\bn_\ba_\bm_\be, initializing
               _\bn_\ba_\bm_\be if it does not exist, and the index of the next argument to
               be processed into the variable O\bOP\bPT\bTI\bIN\bND\bD.  O\bOP\bPT\bTI\bIN\bND\bD is initialized to
-              1  each  time  the  shell or a shell script is invoked.  When an
-              option requires an argument, g\bge\bet\bto\bop\bpt\bts\bs places that  argument  into
-              the  variable O\bOP\bPT\bTA\bAR\bRG\bG.  The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD automati-
-              cally; it must be  manually  reset  between  multiple  calls  to
+              1 each time the shell or a shell script  is  invoked.   When  an
+              option  requires  an argument, g\bge\bet\bto\bop\bpt\bts\bs places that argument into
+              the variable O\bOP\bPT\bTA\bAR\bRG\bG.  The shell does not reset O\bOP\bPT\bTI\bIN\bND\b automati-
+              cally;  it  must  be  manually  reset  between multiple calls to
               g\bge\bet\bto\bop\bpt\bts\bs within the same shell invocation if a new set of parame-
               ters is to be used.
 
-              When the end of options is encountered,  g\bge\bet\bto\bop\bpt\bts\bs  exits  with  a
-              return  value  greater than zero.  O\bOP\bPT\bTI\bIN\bND\bD is set to the index of
+              When  the  end  of  options is encountered, g\bge\bet\bto\bop\bpt\bts\bs exits with a
+              return value greater than zero.  O\bOP\bPT\bTI\bIN\bND\bD is set to the  index  of
               the first non-option argument, and n\bna\bam\bme\be is set to ?.
 
-              g\bge\bet\bto\bop\bpt\bts\bnormally parses the positional parameters, but  if  more
+              g\bge\bet\bto\bop\bpt\bts\b normally  parses the positional parameters, but if more
               arguments are given in _\ba_\br_\bg_\bs, g\bge\bet\bto\bop\bpt\bts\bs parses those instead.
 
-              g\bge\bet\bto\bop\bpt\bts\b can  report errors in two ways.  If the first character
-              of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is a colon, _\bs_\bi_\bl_\be_\bn_\bt error  reporting  is  used.   In
-              normal  operation  diagnostic  messages are printed when invalid
-              options or missing option arguments  are  encountered.   If  the
-              variable  O\bOP\bPT\bTE\bER\bRR\bR  is  set  to  0, no error messages will be dis-
+              g\bge\bet\bto\bop\bpt\bts\bcan report errors in two ways.  If the  first  character
+              of  _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg  is  a  colon, _\bs_\bi_\bl_\be_\bn_\bt error reporting is used.  In
+              normal operation diagnostic messages are  printed  when  invalid
+              options  or  missing  option  arguments are encountered.  If the
+              variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, no  error  messages  will  be  dis-
               played, even if the first character of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is not a colon.
 
               If an invalid option is seen, g\bge\bet\bto\bop\bpt\bts\bs places ? into _\bn_\ba_\bm_\be and, if
-              not silent, prints an  error  message  and  unsets  O\bOP\bPT\bTA\bAR\bRG\bG.   If
-              g\bge\bet\bto\bop\bpt\bts\b is  silent,  the  option  character  found is placed in
+              not  silent,  prints  an  error  message  and unsets O\bOP\bPT\bTA\bAR\bRG\bG.  If
+              g\bge\bet\bto\bop\bpt\bts\bis silent, the  option  character  found  is  placed  in
               O\bOP\bPT\bTA\bAR\bRG\bG and no diagnostic message is printed.
 
-              If a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not  silent,
-              a  question  mark  (?\b?) is placed in _\bn_\ba_\bm_\be, O\bOP\bPT\bTA\bAR\bRG\bG is unset, and a
-              diagnostic message is printed.  If g\bge\bet\bto\bop\bpt\bts\bs  is  silent,  then  a
-              colon  (:\b:)  is  placed  in  _\bn_\ba_\bm_\be and O\bOP\bPT\bTA\bAR\bRG\bG is set to the option
+              If  a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not silent,
+              a question mark (?\b?) is placed in _\bn_\ba_\bm_\be, O\bOP\bPT\bTA\bAR\bRG\bG is  unset,  and  a
+              diagnostic  message  is  printed.   If g\bge\bet\bto\bop\bpt\bts\bs is silent, then a
+              colon (:\b:) is placed in _\bn_\ba_\bm_\be and O\bOP\bPT\bTA\bAR\bRG\bG  is  set  to  the  option
               character found.
 
-              g\bge\bet\bto\bop\bpt\bts\breturns true if an option, specified or unspecified,  is
+              g\bge\bet\bto\bop\bpt\bts\b returns true if an option, specified or unspecified, is
               found.  It returns false if the end of options is encountered or
               an error occurs.
 
        h\bha\bas\bsh\bh [-\b-l\blr\br] [-\b-p\bp _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [-\b-d\bdt\bt] [_\bn_\ba_\bm_\be]
-              For each _\bn_\ba_\bm_\be, the full file name of the command  is  determined
+              For  each  _\bn_\ba_\bm_\be, the full file name of the command is determined
               by searching the directories in $\b$P\bPA\bAT\bTH\bH and remembered.  If the -\b-p\bp
               option is supplied, no path search is performed, and _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
               used as the full file name of the command.  The -\b-r\br option causes
-              the shell to forget all remembered  locations.   The  -\b-d\b option
+              the  shell  to  forget  all remembered locations.  The -\b-d\bd option
               causes the shell to forget the remembered location of each _\bn_\ba_\bm_\be.
-              If the -\b-t\bt option is supplied, the full pathname  to  which  each
-              _\bn_\ba_\bm_\b corresponds  is  printed.   If multiple _\bn_\ba_\bm_\be arguments are
-              supplied with -\b-t\bt, the _\bn_\ba_\bm_\be is printed  before  the  hashed  full
+              If  the  -\b-t\bt  option is supplied, the full pathname to which each
+              _\bn_\ba_\bm_\bcorresponds is printed.  If  multiple  _\bn_\ba_\bm_\be  arguments  are
+              supplied  with  -\b-t\bt,  the  _\bn_\ba_\bm_\be is printed before the hashed full
               pathname.  The -\b-l\bl option causes output to be displayed in a for-
-              mat that may be reused as input.  If no arguments are given,  or
+              mat  that may be reused as input.  If no arguments are given, or
               if only -\b-l\bl is supplied, information about remembered commands is
-              printed.  The return status is true unless a _\bn_\ba_\bm_\be is  not  found
+              printed.   The  return status is true unless a _\bn_\ba_\bm_\be is not found
               or an invalid option is supplied.
 
        h\bhe\bel\blp\bp [-\b-s\bs] [_\bp_\ba_\bt_\bt_\be_\br_\bn]
-              Display  helpful information about builtin commands.  If _\bp_\ba_\bt_\bt_\be_\br_\bn
-              is specified, h\bhe\bel\blp\bp gives detailed help on all commands  matching
-              _\bp_\ba_\bt_\bt_\be_\br_\bn;  otherwise  help for all the builtins and shell control
-              structures is printed.  The -\b-s\bs option restricts the  information
-              displayed  to  a  short  usage synopsis.  The return status is 0
+              Display helpful information about builtin commands.  If  _\bp_\ba_\bt_\bt_\be_\br_\bn
+              is  specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
+              _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and  shell  control
+              structures  is printed.  The -\b-s\bs option restricts the information
+              displayed to a short usage synopsis.  The  return  status  is  0
               unless no command matches _\bp_\ba_\bt_\bt_\be_\br_\bn.
 
        h\bhi\bis\bst\bto\bor\bry\by [\b[_\bn]\b]
@@ -3944,41 +3948,41 @@ 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 -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg _\b._\b._\b.]
               With no options, display the command history list with line num-
               bers.  Lines listed with a *\b* have been modified.  An argument of
-              _\blists only the last _\bn lines.  If the shell variable  H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
-              F\bFO\bOR\bRM\bMA\bAT\b is  set  and not null, it is used as a format string for
-              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each  dis-
-              played  history  entry.  No intervening blank is printed between
-              the formatted time stamp and the history line.  If  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\b is
-              supplied,  it  is  used as the name of the history file; if not,
-              the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used.  Options, if supplied,  have  the
+              _\b lists only the last _\bn lines.  If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
+              F\bFO\bOR\bRM\bMA\bAT\bis set and not null, it is used as a  format  string  for
+              _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3)  to display the time stamp associated with each dis-
+              played history entry.  No intervening blank is  printed  between
+              the  formatted  time stamp and the history line.  If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
+              supplied, it is used as the name of the history  file;  if  not,
+              the  value  of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used.  Options, if supplied, have the
               following meanings:
               -\b-c\bc     Clear the history list by deleting all the entries.
               -\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
                      Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.
-              -\b-a\ba     Append  the  ``new'' history lines (history lines entered
-                     since the beginning of the current b\bba\bas\bsh\bh session)  to  the
+              -\b-a\ba     Append the ``new'' history lines (history  lines  entered
+                     since  the  beginning of the current b\bba\bas\bsh\bh session) to the
                      history file.
-              -\b-n\bn     Read  the history lines not already read from the history
-                     file into the current  history  list.   These  are  lines
-                     appended  to  the history file since the beginning of the
+              -\b-n\bn     Read the history lines not already read from the  history
+                     file  into  the  current  history  list.  These are lines
+                     appended to the history file since the beginning  of  the
                      current b\bba\bas\bsh\bh session.
               -\b-r\br     Read the contents of the history file and use them as the
                      current history.
-              -\b-w\bw     Write  the current history to the history file, overwrit-
+              -\b-w\bw     Write the current history to the history file,  overwrit-
                      ing the history file's contents.
-              -\b-p\bp     Perform history substitution on the  following  _\ba_\br_\bg_\b and
-                     display  the  result  on  the  standard output.  Does not
-                     store the results in the history list.  Each _\ba_\br_\bg must  be
+              -\b-p\bp     Perform  history  substitution  on the following _\ba_\br_\bg_\bs and
+                     display the result on  the  standard  output.   Does  not
+                     store  the results in the history list.  Each _\ba_\br_\bg must be
                      quoted to disable normal history expansion.
-              -\b-s\bs     Store  the  _\ba_\br_\bg_\bs  in  the history list as a single entry.
-                     The last command in the history list  is  removed  before
+              -\b-s\bs     Store the _\ba_\br_\bg_\bs in the history list  as  a  single  entry.
+                     The  last  command  in the history list is removed before
                      the _\ba_\br_\bg_\bs are added.
 
               If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT is set, the time stamp information associ-
-              ated with each history entry is written  to  the  history  file.
-              The  return  value is 0 unless an invalid option is encountered,
-              an error occurs while reading or writing the  history  file,  an
-              invalid  _\bo_\bf_\bf_\bs_\be_\bt is supplied as an argument to -\b-d\bd, or the history
+              ated  with  each  history  entry is written to the history file.
+              The return value is 0 unless an invalid option  is  encountered,
+              an  error  occurs  while reading or writing the history file, an
+              invalid _\bo_\bf_\bf_\bs_\be_\bt is supplied as an argument to -\b-d\bd, or the  history
               expansion supplied as an argument to -\b-p\bp fails.
 
        j\bjo\bob\bbs\bs [-\b-l\bln\bnp\bpr\brs\bs] [ _\bj_\bo_\bb_\bs_\bp_\be_\bc ... ]
@@ -3986,147 +3990,147 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               The first form lists the active jobs.  The options have the fol-
               lowing meanings:
               -\b-l\bl     List process IDs in addition to the normal information.
-              -\b-p\bp     List  only  the  process  ID  of  the job's process group
+              -\b-p\bp     List only the process  ID  of  the  job's  process  group
                      leader.
-              -\b-n\bn     Display information only about  jobs  that  have  changed
-                     status  since the user was last notified of their status.
+              -\b-n\bn     Display  information  only  about  jobs that have changed
+                     status since the user was last notified of their  status.
               -\b-r\br     Restrict output to running jobs.
               -\b-s\bs     Restrict output to stopped jobs.
 
-              If _\bj_\bo_\bb_\bs_\bp_\be_\bc is given, output is restricted to  information  about
-              that  job.   The  return status is 0 unless an invalid option is
+              If  _\bj_\bo_\bb_\bs_\bp_\be_\bc  is given, output is restricted to information about
+              that job.  The return status is 0 unless an  invalid  option  is
               encountered or an invalid _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied.
 
               If the -\b-x\bx option is supplied, j\bjo\bob\bbs\bs replaces any _\bj_\bo_\bb_\bs_\bp_\be_\bc found in
-              _\bc_\bo_\bm_\bm_\ba_\bn_\b or  _\ba_\br_\bg_\bs  with  the corresponding process group ID, and
+              _\bc_\bo_\bm_\bm_\ba_\bn_\bor _\ba_\br_\bg_\bs with the corresponding  process  group  ID,  and
               executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd passing it _\ba_\br_\bg_\bs, returning its exit status.
 
        k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bs_\bp_\be_\bc | -\b-n\bn _\bs_\bi_\bg_\bn_\bu_\bm | -\b-_\bs_\bi_\bg_\bs_\bp_\be_\bc] [_\bp_\bi_\bd | _\bj_\bo_\bb_\bs_\bp_\be_\bc] ...
        k\bki\bil\bll\bl -\b-l\bl [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
-              Send the signal named by _\bs_\bi_\bg_\bs_\bp_\be_\bc  or  _\bs_\bi_\bg_\bn_\bu_\bm  to  the  processes
-              named  by  _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive
-              signal name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix)  or
-              a  signal  number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not
-              present, then S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed.  An argument of -\b-l\bl  lists  the
-              signal  names.   If any arguments are supplied when -\b-l\bl is given,
-              the names of the signals  corresponding  to  the  arguments  are
+              Send  the  signal  named  by  _\bs_\bi_\bg_\bs_\bp_\be_\bc or _\bs_\bi_\bg_\bn_\bu_\bm to the processes
+              named by _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc.  _\bs_\bi_\bg_\bs_\bp_\be_\bc is either  a  case-insensitive
+              signal  name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix) or
+              a signal number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number.  If _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  not
+              present,  then  S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed.  An argument of -\b-l\bl lists the
+              signal names.  If any arguments are supplied when -\b-l\bl  is  given,
+              the  names  of  the  signals  corresponding to the arguments are
               listed, and the return status is 0.  The _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs argument to
-              -\b-l\bis a number specifying either a signal  number  or  the  exit
-              status  of  a process terminated by a signal.  k\bki\bil\bll\bl returns true
-              if at least one signal was successfully sent,  or  false  if  an
+              -\b-l\b is  a  number  specifying either a signal number or the exit
+              status of a process terminated by a signal.  k\bki\bil\bll\bl  returns  true
+              if  at  least  one  signal was successfully sent, or false if an
               error occurs or an invalid option is encountered.
 
        l\ble\bet\bt _\ba_\br_\bg [_\ba_\br_\bg ...]
               Each _\ba_\br_\bg is an arithmetic expression to be evaluated (see A\bAR\bRI\bIT\bTH\bH-\b-
-              M\bME\bET\bTI\bIC\bE\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN).  If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\b returns
+              M\bME\bET\bTI\bIC\b E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN).  If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt returns
               1; 0 is returned otherwise.
 
        l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
-              For  each  argument, a local variable named _\bn_\ba_\bm_\be is created, and
-              assigned _\bv_\ba_\bl_\bu_\be.  The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the  options  accepted
+              For each argument, a local variable named _\bn_\ba_\bm_\be is  created,  and
+              assigned  _\bv_\ba_\bl_\bu_\be.   The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the options accepted
               by d\bde\bec\bcl\bla\bar\bre\be.  When l\blo\boc\bca\bal\bl is used within a function, it causes the
-              variable _\bn_\ba_\bm_\be to have a visible scope restricted to  that  func-
+              variable  _\bn_\ba_\bm_\be  to have a visible scope restricted to that func-
               tion and its children.  With no operands, l\blo\boc\bca\bal\bl writes a list of
-              local variables to the standard output.  It is an error  to  use
+              local  variables  to the standard output.  It is an error to use
               l\blo\boc\bca\bal\bl when not within a function.  The return status is 0 unless
-              l\blo\boc\bca\bal\bis used outside a function, an invalid _\bn_\ba_\bm_\be  is  supplied,
+              l\blo\boc\bca\bal\b is  used outside a function, an invalid _\bn_\ba_\bm_\be is supplied,
               or _\bn_\ba_\bm_\be is a readonly variable.
 
        l\blo\bog\bgo\bou\but\bt Exit a login shell.
 
        p\bpo\bop\bpd\bd [-n\bn] [+_\bn] [-_\bn]
-              Removes  entries  from  the directory stack.  With no arguments,
-              removes the top directory from the stack, and performs a  c\bcd\b to
+              Removes entries from the directory stack.   With  no  arguments,
+              removes  the  top directory from the stack, and performs a c\bcd\bd to
               the new top directory.  Arguments, if supplied, have the follow-
               ing meanings:
-              +\b+_\bn     Removes the _\bnth entry counting from the left of the  list
-                     shown  by  d\bdi\bir\brs\bs, starting with zero.  For example: ``popd
+              +\b+_\bn     Removes  the _\bnth entry counting from the left of the list
+                     shown by d\bdi\bir\brs\bs, starting with zero.  For  example:  ``popd
                      +0'' removes the first directory, ``popd +1'' the second.
               -\b-_\bn     Removes the _\bnth entry counting from the right of the list
-                     shown by d\bdi\bir\brs\bs, starting with zero.  For  example:  ``popd
-                     -0''  removes the last directory, ``popd -1'' the next to
+                     shown  by  d\bdi\bir\brs\bs, starting with zero.  For example: ``popd
+                     -0'' removes the last directory, ``popd -1'' the next  to
                      last.
-              -\b-n\bn     Suppresses the normal change of directory  when  removing
-                     directories  from  the  stack,  so that only the stack is
+              -\b-n\bn     Suppresses  the  normal change of directory when removing
+                     directories from the stack, so that  only  the  stack  is
                      manipulated.
 
-              If the p\bpo\bop\bpd\bd command is successful, a d\bdi\bir\brs\bs is performed as  well,
-              and  the  return  status is 0.  p\bpo\bop\bpd\bd returns false if an invalid
+              If  the p\bpo\bop\bpd\bd command is successful, a d\bdi\bir\brs\bs is performed as well,
+              and the return status is 0.  p\bpo\bop\bpd\bd returns false  if  an  invalid
               option is encountered, the directory stack is empty, a non-exis-
               tent directory stack entry is specified, or the directory change
               fails.
 
        p\bpr\bri\bin\bnt\btf\bf [-\b-v\bv _\bv_\ba_\br] _\bf_\bo_\br_\bm_\ba_\bt [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
-              Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output  under  the
-              control  of  the _\bf_\bo_\br_\bm_\ba_\bt.  The _\bf_\bo_\br_\bm_\ba_\bt is a character string which
-              contains three types of objects:  plain  characters,  which  are
-              simply  copied  to  standard output, character escape sequences,
-              which are converted and copied to the standard output, and  for-
-              mat  specifications,  each  of which causes printing of the next
+              Write  the  formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output under the
+              control of the _\bf_\bo_\br_\bm_\ba_\bt.  The _\bf_\bo_\br_\bm_\ba_\bt is a character  string  which
+              contains  three  types  of  objects: plain characters, which are
+              simply copied to standard output,  character  escape  sequences,
+              which  are converted and copied to the standard output, and for-
+              mat specifications, each of which causes printing  of  the  next
               successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.  In addition to the standard _\bp_\br_\bi_\bn_\bt_\bf(1) for-
-              mats,  %\b%b\bb  causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in
-              the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt (except that  \\b\c\bc  terminates  output,
+              mats, %\b%b\bb causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape  sequences  in
+              the  corresponding  _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt  (except that \\b\c\bc terminates output,
               backslashes in \\b\'\b', \\b\"\b", and \\b\?\b? are not removed, and octal escapes
-              beginning with \\b\0\b0 may contain up to four digits), and %\b%q\b causes
+              beginning  with \\b\0\b0 may contain up to four digits), and %\b%q\bq causes
               p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a format that can
               be reused as shell input.
 
-              The -\b-v\bv option causes the output to be assigned to  the  variable
+              The  -\b-v\bv  option causes the output to be assigned to the variable
               _\bv_\ba_\br rather than being printed to the standard output.
 
-              The  _\bf_\bo_\br_\bm_\ba_\bt  is  reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
+              The _\bf_\bo_\br_\bm_\ba_\bt is reused as necessary to consume all  of  the  _\ba_\br_\bg_\bu_\b-
               _\bm_\be_\bn_\bt_\bs.  If the _\bf_\bo_\br_\bm_\ba_\bt requires more _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs than are supplied,
-              the  extra  format  specifications  behave as if a zero value or
-              null string, as appropriate,  had  been  supplied.   The  return
+              the extra format specifications behave as if  a  zero  value  or
+              null  string,  as  appropriate,  had  been supplied.  The return
               value is zero on success, non-zero on failure.
 
        p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
        p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [+_\bn] [-_\bn]
-              Adds  a  directory to the top of the directory stack, or rotates
-              the stack, making the new top of the stack the  current  working
+              Adds a directory to the top of the directory stack,  or  rotates
+              the  stack,  making the new top of the stack the current working
               directory.  With no arguments, exchanges the top two directories
-              and returns 0, unless the directory stack is empty.   Arguments,
+              and  returns 0, unless the directory stack is empty.  Arguments,
               if supplied, have the following meanings:
-              +\b+_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
-                     from the left of the list shown by  d\bdi\bir\brs\bs,  starting  with
+              +\b+_\bn     Rotates the stack so that  the  _\bnth  directory  (counting
+                     from  the  left  of the list shown by d\bdi\bir\brs\bs, starting with
                      zero) is at the top.
-              -\b-_\bn     Rotates  the  stack  so  that the _\bnth directory (counting
-                     from the right of the list shown by d\bdi\bir\brs\bs,  starting  with
+              -\b-_\bn     Rotates the stack so that  the  _\bnth  directory  (counting
+                     from  the  right of the list shown by d\bdi\bir\brs\bs, starting with
                      zero) is at the top.
-              -\b-n\bn     Suppresses  the  normal  change  of directory when adding
-                     directories to the stack,  so  that  only  the  stack  is
+              -\b-n\bn     Suppresses the normal change  of  directory  when  adding
+                     directories  to  the  stack,  so  that  only the stack is
                      manipulated.
               _\bd_\bi_\br    Adds _\bd_\bi_\br to the directory stack at the top, making it the
                      new current working directory.
 
               If the p\bpu\bus\bsh\bhd\bd command is successful, a d\bdi\bir\brs\bs is performed as well.
-              If  the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
-              fails.  With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the  direc-
-              tory  stack  is empty, a non-existent directory stack element is
-              specified, or the directory change to the specified new  current
+              If the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to  _\bd_\bi_\br
+              fails.   With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the direc-
+              tory stack is empty, a non-existent directory stack  element  is
+              specified,  or the directory change to the specified new current
               directory fails.
 
        p\bpw\bwd\bd [-\b-L\bLP\bP]
-              Print  the  absolute  pathname of the current working directory.
+              Print the absolute pathname of the  current  working  directory.
               The pathname printed contains no symbolic links if the -\b-P\bP option
               is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
-              is enabled.  If the -\b-L\bL 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
+              is  enabled.  If the -\b-L\bL 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.
 
        r\bre\bea\bad\bd [-\b-e\ber\brs\bs] [-\b-u\bu _\bf_\bd] [-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-d\bd
        _\bd_\be_\bl_\bi_\bm] [_\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
+              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
               first word is assigned to the first _\bn_\ba_\bm_\be, the second word to the
-              second _\bn_\ba_\bm_\be, and so on, with leftover words and their  interven-
-              ing  separators  assigned  to the last _\bn_\ba_\bm_\be.  If there are fewer
+              second  _\bn_\ba_\bm_\be, and so on, with leftover words and their interven-
+              ing separators assigned to the last _\bn_\ba_\bm_\be.  If  there  are  fewer
               words read from the input stream than names, the remaining names
-              are  assigned  empty  values.  The characters in I\bIF\bFS\bS are used to
-              split the line into words.  The backslash character (\\b\)  may  be
-              used  to  remove any special meaning for the next character read
-              and for line continuation.  Options, if supplied, have the  fol-
+              are assigned empty values.  The characters in I\bIF\bFS\bS  are  used  to
+              split  the  line into words.  The backslash character (\\b\) may be
+              used to remove any special meaning for the next  character  read
+              and  for line continuation.  Options, if supplied, have the fol-
               lowing meanings:
               -\b-a\ba _\ba_\bn_\ba_\bm_\be
                      The words are assigned to sequential indices of the array
@@ -4134,100 +4138,100 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      new  values  are  assigned.   Other  _\bn_\ba_\bm_\be  arguments  are
                      ignored.
               -\b-d\bd _\bd_\be_\bl_\bi_\bm
-                     The first character of _\bd_\be_\bl_\bi_\bm is  used  to  terminate  the
+                     The  first  character  of  _\bd_\be_\bl_\bi_\bm is used to terminate the
                      input line, rather than newline.
               -\b-e\be     If the standard input is coming from a terminal, r\bre\bea\bad\bdl\bli\bin\bne\be
                      (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) is used to obtain the line.
               -\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
-                     r\bre\bea\bad\breturns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather  than
+                     r\bre\bea\bad\b returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
                      waiting for a complete line of input.
               -\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
                      Display _\bp_\br_\bo_\bm_\bp_\bt on standard error, without a trailing new-
                      line, before attempting to read any input.  The prompt is
                      displayed only if input is coming from a terminal.
               -\b-r\br     Backslash does not act as an escape character.  The back-
-                     slash is considered to be part of the line.  In  particu-
-                     lar,  a  backslash-newline pair may not be used as a line
+                     slash  is considered to be part of the line.  In particu-
+                     lar, a backslash-newline pair may not be used as  a  line
                      continuation.
               -\b-s\bs     Silent mode.  If input is coming from a terminal, charac-
                      ters are not echoed.
               -\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt
-                     Cause  r\bre\bea\bad\bd  to time out and return failure if a complete
-                     line of input is not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt  seconds.   This
-                     option  has  no  effect if r\bre\bea\bad\bd is not reading input from
+                     Cause r\bre\bea\bad\bd to time out and return failure if  a  complete
+                     line  of  input is not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds.  This
+                     option has no effect if r\bre\bea\bad\bd is not  reading  input  from
                      the terminal or a pipe.
               -\b-u\bu _\bf_\bd  Read input from file descriptor _\bf_\bd.
 
               If no _\bn_\ba_\bm_\be_\bs are supplied, the line read is assigned to the vari-
-              able  R\bRE\bEP\bPL\bLY\bY.   The  return  code  is zero, unless end-of-file is
-              encountered, r\bre\bea\bad\bd times out, or an invalid  file  descriptor  is
+              able R\bRE\bEP\bPL\bLY\bY.  The return code  is  zero,  unless  end-of-file  is
+              encountered,  r\bre\bea\bad\bd  times  out, or an invalid file descriptor is
               supplied as the argument to -\b-u\bu.
 
        r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\bap\bpf\bf] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
-              The  given  _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
-              may not be changed by subsequent assignment.  If the  -\b-f\b option
-              is  supplied,  the  functions  corresponding to the _\bn_\ba_\bm_\be_\bs are so
+              The given _\bn_\ba_\bm_\be_\bs are marked readonly; the values of  these  _\bn_\ba_\bm_\be_\bs
+              may  not  be changed by subsequent assignment.  If the -\b-f\bf option
+              is supplied, the functions corresponding to  the  _\bn_\ba_\bm_\be_\bs  are  so
               marked.  The -\b-a\ba option restricts the variables to arrays.  If no
-              _\bn_\ba_\bm_\b arguments  are  given,  or if the -\b-p\bp option is supplied, a
-              list of all readonly names is printed.   The  -\b-p\bp  option  causes
-              output  to be displayed in a format that may be reused as input.
-              If a variable name is followed by =_\bw_\bo_\br_\bd, the value of the  vari-
-              able  is  set to _\bw_\bo_\br_\bd.  The return status is 0 unless an invalid
-              option is encountered, one of the _\bn_\ba_\bm_\be_\bs is  not  a  valid  shell
+              _\bn_\ba_\bm_\barguments are given, or if the -\b-p\bp  option  is  supplied,  a
+              list  of  all  readonly  names is printed.  The -\b-p\bp option causes
+              output to be displayed in a format that may be reused as  input.
+              If  a variable name is followed by =_\bw_\bo_\br_\bd, the value of the vari-
+              able is set to _\bw_\bo_\br_\bd.  The return status is 0 unless  an  invalid
+              option  is  encountered,  one  of the _\bn_\ba_\bm_\be_\bs is not a valid shell
               variable name, or -\b-f\bf is supplied with a _\bn_\ba_\bm_\be that is not a func-
               tion.
 
        r\bre\bet\btu\bur\brn\bn [_\bn]
-              Causes a function to exit with the return value specified by  _\bn.
-              If  _\bn  is omitted, the return status is that of the last command
-              executed in the function body.  If used outside a function,  but
-              during  execution  of  a  script  by the .\b.  (s\bso\bou\bur\brc\bce\be) command, it
+              Causes  a function to exit with the return value specified by _\bn.
+              If _\bn is omitted, the return status is that of the  last  command
+              executed  in the function body.  If used outside a function, but
+              during execution of a script by  the  .\b.   (s\bso\bou\bur\brc\bce\be)  command,  it
               causes the shell to stop executing that script and return either
-              _\b or  the  exit  status of the last command executed within the
-              script as the exit status of the  script.   If  used  outside  a
-              function  and  not during execution of a script by .\b., the return
+              _\bor the exit status of the last  command  executed  within  the
+              script  as  the  exit  status  of the script.  If used outside a
+              function and not during execution of a script by .\b.,  the  return
               status is false.  Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is
-              executed  before execution resumes after the function or script.
+              executed before execution resumes after the function or  script.
 
        s\bse\bet\bt [-\b--\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCH\bHP\bP] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\ba_\br_\bg ...]
-              Without options, the name and value of each shell  variable  are
+              Without  options,  the name and value of each shell variable are
               displayed in a format that can be reused as input for setting or
               resetting the currently-set variables.  Read-only variables can-
-              not  be  reset.  In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables are listed.
-              The output is sorted according  to  the  current  locale.   When
-              options  are specified, they set or unset shell attributes.  Any
-              arguments remaining after the options are processed are  treated
-              as  values  for  the  positional parameters and are assigned, in
+              not be reset.  In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables  are  listed.
+              The  output  is  sorted  according  to the current locale.  When
+              options are specified, they set or unset shell attributes.   Any
+              arguments  remaining after the options are processed are treated
+              as values for the positional parameters  and  are  assigned,  in
               order, to $\b$1\b1, $\b$2\b2, .\b..\b..\b.  $\b$_\bn.  Options, if specified, have the fol-
               lowing meanings:
-              -\b-a\ba      Automatically  mark  variables  and  functions which are
-                      modified or created for export  to  the  environment  of
+              -\b-a\ba      Automatically mark variables  and  functions  which  are
+                      modified  or  created  for  export to the environment of
                       subsequent commands.
-              -\b-b\bb      Report  the status of terminated background jobs immedi-
+              -\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 _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd (see S\bSH\bHE\bEL\bLL\b 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\b keyword,
-                      part  of the test in an _\bi_\bf statement, part of a &\b&&\b& or |\b||\b|
+                      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 _\bi_\bf statement, part of a &\b&&\b& or  |\b||\b|
                       list, or if the command's return value is being inverted
-                      via  !\b!.   A  trap on E\bER\bRR\bR, if set, is executed before the
+                      via !\b!.  A trap on E\bER\bRR\bR, if set, is  executed  before  the
                       shell exits.
               -\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:
@@ -4235,7 +4239,7 @@ 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.
@@ -4251,8 +4255,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.
@@ -4266,250 +4270,250 @@ 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 1003.2 standard
-                              to match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
+                      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.
                       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
-                      variable, if it appears in the environment, is  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
+              -\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
+                      variable,  if it appears in the environment, is 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
+                      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
+                      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:
 
               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\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.
-              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\b builtin  command.   An  interactive shell does not
+                      not  execute  the  file  specified as an argument to the
+                      e\bex\bxe\bec\bbuiltin 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\b and 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\band 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\b shell
-                      variable  cause words to be ignored when performing word
+                      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
                       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\bgn\bnu\bu_\b_e\ber\brr\brf\bfm\bmt\bt
                       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-
@@ -4517,46 +4521,46 @@ 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
-              signal.  The -\b-f\bf option says not to complain if this is  a  login
-              shell;  just  suspend anyway.  The return status is 0 unless the
+              Suspend the execution of this shell until it receives a  S\bSI\bIG\bGC\bCO\bON\bNT\bT
+              signal.   The  -\b-f\bf option says not to complain if this is a login
+              shell; just suspend anyway.  The return status is 0  unless  the
               shell is a login shell and -\b-f\bf is not supplied, 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.
               !\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.
@@ -4573,179 +4577,184 @@ 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.  If the
-                     first argument is !\b!, the value is  the  negation  of  the
-                     two-argument  test  using the second and third arguments.
+                     using the first and third arguments as operands.  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.  Otherwise,  the  expression  is  false.
-                     The  -\b-a\ba  and -\b-o\bo operators are considered binary operators
+                     is exactly )\b), the result is the one-argument test of  the
+                     second  argument.   Otherwise,  the  expression is false.
+                     The -\b-a\ba and -\b-o\bo operators are considered  binary  operators
                      in this case.
               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_\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
+              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
               _\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\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,
+              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 &\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
+              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 executed each time a shell
               function or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins fin-
               ishes executing.  Signals ignored upon entry to the shell cannot
-              be  trapped or reset.  Trapped signals are reset to their origi-
-              nal values in 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
+              be trapped or reset.  Trapped signals are reset to their  origi-
+              nal  values  in  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_\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
+              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
               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
               any of the arguments are found, false if none are found.
 
-       u\bul\bli\bim\bmi\bit\bt [-\b-S\bSH\bHa\bac\bcd\bdf\bfl\blm\bmn\bnp\bps\bst\btu\buv\bv [_\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.
+       u\bul\bli\bim\bmi\bit\bt [-\b-S\bSH\bHa\bac\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.
               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 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 specified, both the soft
-              and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt can be a number  in
+              for the given resource.  A hard limit cannot be  increased  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 specified,  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_\bis 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
+              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_\b 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 interpreted as fol-
               lows:
               -\b-a\ba     All current limits are reported
               -\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 created by the shell
+              -\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-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)
+              -\b-q\bq     The maximum number of bytes in POSIX message queues
+              -\b-r\br     The maximum real-time scheduling priority
               -\b-s\bs     The maximum stack size
               -\b-t\bt     The maximum amount of cpu time in seconds
-              -\b-u\bu     The  maximum  number  of  processes available to a single
+              -\b-u\bu     The maximum number of processes  available  to  a  single
                      user
-              -\b-v\bv     The maximum amount of virtual  memory  available  to  the
+              -\b-v\bv     The  maximum  amount  of  virtual memory available to the
                      shell
+              -\b-x\bx     The maximum number of file locks
 
               If _\bl_\bi_\bm_\bi_\bt is given, it is the new value of the specified resource
               (the -\b-a\ba option is display only).  If no option is given, then -\b-f\bf
-              is  assumed.  Values are in 1024-byte increments, except for -\b-t\bt,
-              which is in seconds, -\b-p\bp, which is in units of  512-byte  blocks,
-              and  -\b-n\bn and -\b-u\bu, which are unscaled values.  The return status is
-              0 unless an invalid option or argument is supplied, or an  error
+              is assumed.  Values are in 1024-byte increments, except for  -\b-t\bt,
+              which  is  in seconds, -\b-p\bp, which is in units of 512-byte blocks,
+              and -\b-n\bn and -\b-u\bu, which are unscaled values.  The return status  is
+              0  unless an invalid option or argument is supplied, or an error
               occurs while setting a new limit.
 
        u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
               The user file-creation mask is set to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with
-              a digit, it is interpreted as an octal number; otherwise  it  is
-              interpreted  as a symbolic mode mask similar to that accepted by
-              _\bc_\bh_\bm_\bo_\bd(1).  If _\bm_\bo_\bd_\be is omitted, the current value of the mask  is
-              printed.   The  -\b-S\bS  option causes the mask to be printed in sym-
-              bolic form; the default output is an octal number.   If  the  -\b-p\bp
+              a  digit,  it is interpreted as an octal number; otherwise it is
+              interpreted as a symbolic mode mask similar to that accepted  by
+              _\bc_\bh_\bm_\bo_\bd(1).   If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
+              printed.  The -\b-S\bS option causes the mask to be  printed  in  sym-
+              bolic  form;  the  default output is an octal number.  If the -\b-p\bp
               option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
               that may be reused as input.  The return status is 0 if the mode
-              was  successfully  changed  or if no _\bm_\bo_\bd_\be argument was supplied,
+              was successfully changed or if no _\bm_\bo_\bd_\be  argument  was  supplied,
               and false otherwise.
 
        u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
-              Remove each _\bn_\ba_\bm_\be from the list of defined  aliases.   If  -\b-a\b is
-              supplied,  all  alias definitions are removed.  The return value
+              Remove  each  _\bn_\ba_\bm_\be  from  the list of defined aliases.  If -\b-a\ba is
+              supplied, all alias definitions are removed.  The  return  value
               is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
 
        u\bun\bns\bse\bet\bt [-f\bfv\bv] [_\bn_\ba_\bm_\be ...]
-              For each _\bn_\ba_\bm_\be, remove the corresponding  variable  or  function.
+              For  each  _\bn_\ba_\bm_\be,  remove the corresponding variable or function.
               If no options are supplied, or the -\b-v\bv option is given, each _\bn_\ba_\bm_\be
-              refers to a shell variable.   Read-only  variables  may  not  be
-              unset.   If  -\b-f\bf  is specified, each _\bn_\ba_\bm_\be refers to a shell func-
-              tion, and the function definition is removed.  Each unset  vari-
-              able  or function is removed from the environment passed to sub-
-              sequent commands.  If any of R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS,  L\bLI\bIN\bNE\bEN\bNO\bO,  H\bHI\bIS\bST\bTC\bCM\bMD\bD,
+              refers  to  a  shell  variable.   Read-only variables may not be
+              unset.  If -\b-f\bf is specified, each _\bn_\ba_\bm_\be refers to  a  shell  func-
+              tion,  and the function definition is removed.  Each unset vari-
+              able or function is removed from the environment passed to  sub-
+              sequent  commands.   If any of R\bRA\bAN\bND\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS, L\bLI\bIN\bNE\bEN\bNO\bO, H\bHI\bIS\bST\bTC\bCM\bMD\bD,
               F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are unset, they lose their special
-              properties, even if they are subsequently reset.  The exit  sta-
+              properties,  even if they are subsequently reset.  The exit sta-
               tus is true unless a _\bn_\ba_\bm_\be is readonly.
 
        w\bwa\bai\bit\bt [_\bn _\b._\b._\b.]
-              Wait  for each specified process and return its termination sta-
-              tus.  Each _\bn may be a process ID or a job  specification;  if  a
-              job  spec  is  given,  all  processes in that job's pipeline are
-              waited for.  If _\bn is not given, all currently active child  pro-
-              cesses  are  waited  for,  and  the return status is zero.  If _\bn
-              specifies a non-existent process or job, the  return  status  is
-              127.   Otherwise,  the  return  status is the exit status of the
+              Wait for each specified process and return its termination  sta-
+              tus.   Each  _\bn  may be a process ID or a job specification; if a
+              job spec is given, all processes  in  that  job's  pipeline  are
+              waited  for.  If _\bn is not given, all currently active child pro-
+              cesses are waited for, and the return  status  is  zero.   If  _\bn
+              specifies  a  non-existent  process or job, the return status is
+              127.  Otherwise, the return status is the  exit  status  of  the
               last process or job waited for.
 
 R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
-       invocation,  the  shell becomes restricted.  A restricted shell is used
-       to set up an environment more controlled than the standard  shell.   It
-       behaves  identically  to b\bba\bas\bsh\bh with the exception that the following are
+       invocation, the shell becomes restricted.  A restricted shell  is  used
+       to  set  up an environment more controlled than the standard shell.  It
+       behaves identically to b\bba\bas\bsh\bh with the exception that the  following  are
        disallowed or not performed:
 
        +\bo      changing directories with c\bcd\bd
@@ -4754,16 +4763,16 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
 
        +\bo      specifying command names containing /\b/
 
-       +\bo      specifying  a  file  name containing a /\b/ as an argument to the .\b.
+       +\bo      specifying a file name containing a /\b/ as an argument  to  the  .\b.
               builtin command
 
-       +\bo      Specifying a filename containing a slash as an argument  to  the
+       +\bo      Specifying  a  filename containing a slash as an argument to the
               -\b-p\bp option to the h\bha\bas\bsh\bh builtin command
 
-       +\bo      importing  function  definitions  from  the shell environment at
+       +\bo      importing function definitions from  the  shell  environment  at
               startup
 
-       +\bo      parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from  the  shell  environment  at
+       +\bo      parsing  the  value  of  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
               startup
 
        +\bo      redirecting output using the >, >|, <>, >&, &>, and >> redirect-
@@ -4772,10 +4781,10 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        +\bo      using the e\bex\bxe\bec\bc builtin command to replace the shell with another
               command
 
-       +\bo      adding  or  deleting builtin commands with the -\b-f\bf and -\b-d\bd options
+       +\bo      adding or deleting builtin commands with the -\b-f\bf and  -\b-d\b options
               to the e\ben\bna\bab\bbl\ble\be builtin command
 
-       +\bo      Using the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled  shell
+       +\bo      Using  the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled shell
               builtins
 
        +\bo      specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
@@ -4785,14 +4794,14 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        These restrictions are enforced after any startup files are read.
 
        When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
-       M\bMA\bAN\bND\bE\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions  in  the  shell
+       M\bMA\bAN\bND\b E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  above),  r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
        spawned to execute the script.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        _\bB_\ba_\bs_\bh _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl, Brian Fox and Chet Ramey
        _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
        _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
-       _\bP_\bo_\br_\bt_\ba_\bb_\bl_\b _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg  _\bS_\by_\bs_\bt_\be_\bm  _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
+       _\bP_\bo_\br_\bt_\ba_\bb_\bl_\b_\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b:  _\bS_\bh_\be_\bl_\bl  _\ba_\bn_\b _\bU_\bt_\bi_\bl_\bi_\b-
        _\bt_\bi_\be_\bs, IEEE
        _\bs_\bh(1), _\bk_\bs_\bh(1), _\bc_\bs_\bh(1)
        _\be_\bm_\ba_\bc_\bs(1), _\bv_\bi(1)
@@ -4808,7 +4817,7 @@ F\bFI\bIL\bLE\bES\bS
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
               The individual per-interactive-shell startup file
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
-              The  individual  login shell cleanup file, executed when a login
+              The individual login shell cleanup file, executed when  a  login
               shell exits
        _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
               Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
@@ -4822,14 +4831,14 @@ A\bAU\bUT\bTH\bHO\bOR\bRS\bS
 
 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
-       make  sure  that  it really is a bug, and that it appears in the latest
-       version  of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available   from
+       make sure that it really is a bug, and that it appears  in  the  latest
+       version   of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available  from
        _\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bb_\ba_\bs_\bh_\b/.
 
-       Once  you  have  determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
-       command to submit a bug report.  If you have a fix, you are  encouraged
-       to  mail that as well!  Suggestions and `philosophical' bug reports may
-       be mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet  newsgroup
+       Once you have determined that a bug actually exists,  use  the  _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+       command  to submit a bug report.  If you have a fix, you are encouraged
+       to mail that as well!  Suggestions and `philosophical' bug reports  may
+       be  mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet newsgroup
        g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
 
        ALL bug reports should include:
@@ -4840,7 +4849,7 @@ B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        A description of the bug behaviour
        A short script or `recipe' which exercises the bug
 
-       _\bb_\ba_\bs_\bh_\bb_\bu_\b inserts  the first three items automatically into the template
+       _\bb_\ba_\bs_\bh_\bb_\bu_\binserts the first three items automatically into  the  template
        it provides for filing a bug report.
 
        Comments and bug reports concerning this manual page should be directed
@@ -4857,20 +4866,20 @@ B\bBU\bUG\bGS\bS
        Shell builtin commands and functions are not stoppable/restartable.
 
        Compound commands and command sequences of the form `a ; b ; c' are not
-       handled  gracefully  when  process  suspension  is  attempted.   When a
-       process is stopped, the shell immediately executes the next command  in
-       the  sequence.   It  suffices to place the sequence of commands between
-       parentheses to force it into a subshell, which  may  be  stopped  as  a
+       handled gracefully  when  process  suspension  is  attempted.   When  a
+       process  is stopped, the shell immediately executes the next command in
+       the sequence.  It suffices to place the sequence  of  commands  between
+       parentheses  to  force  it  into  a subshell, which may be stopped as a
        unit.
 
-       Commands  inside  of  $\b$(\b(...)\b)  command substitution are not parsed until
-       substitution is attempted.  This will delay error reporting until  some
+       Commands inside of $\b$(\b(...)\b) command substitution  are  not  parsed  until
+       substitution  is attempted.  This will delay error reporting until some
        time after the command is entered.  For example, unmatched parentheses,
-       even inside shell comments, will result in  error  messages  while  the
+       even  inside  shell  comments,  will result in error messages while the
        construct is being read.
 
        Array variables may not (yet) be exported.
 
 
 
-GNU Bash-3.1-beta1                2005 Aug 27                          BASH(1)
+GNU Bash-3.2                      2006 Jan 26                          BASH(1)
index 4c3a929f6f407b832359dd6b54de33860b8a1c22..baab3772c1e622a6671a837b5e8be0c1437b3a7c 100644 (file)
@@ -6,12 +6,12 @@
 .\"    Case Western Reserve University
 .\"    chet@po.cwru.edu
 .\"
-.\"    Last Change: Fri Jan 13 19:56:03 EST 2006
+.\"    Last Change: Thu Jan 26 09:04:43 EST 2006
 .\"
 .\" bash_builtins, strip all but Built-Ins section
 .if \n(zZ=1 .ig zZ
 .if \n(zY=1 .ig zY
-.TH BASH 1 "2006 Jan 13" "GNU Bash-3.2"
+.TH BASH 1 "2006 Jan 26" "GNU Bash-3.2"
 .\"
 .\" There's some problem with having a `@'
 .\" in a tagged paragraph with the BSD man macros.
@@ -62,8 +62,9 @@ also incorporates useful features from the \fIKorn\fP and \fIC\fP
 shells (\fBksh\fP and \fBcsh\fP).
 .PP
 .B Bash
-is intended to be a conformant implementation of the IEEE
-POSIX Shell and Tools specification (IEEE Working Group 1003\.2).
+is intended to be a conformant implementation of the
+Shell and Utilities portion of the IEEE POSIX specification
+(IEEE Standard 1003.1).
 .B Bash
 can be configured to be POSIX-conformant by default.
 .SH OPTIONS
@@ -223,7 +224,7 @@ This option is on by default if the shell is invoked as
 .TP
 .B \-\-posix
 Change the behavior of \fBbash\fP where the default operation differs
-from the POSIX 1003.2 standard to match the standard (\fIposix mode\fP).
+from the POSIX standard to match the standard (\fIposix mode\fP).
 .TP
 .B \-\-restricted
 The shell becomes restricted (see
@@ -2862,7 +2863,7 @@ and
 .BR ] ,
 \fIcharacter classes\fP can be specified using the syntax
 \fB[:\fP\fIclass\fP\fB:]\fP, where \fIclass\fP is one of the
-following classes defined in the POSIX.2 standard:
+following classes defined in the POSIX standard:
 .PP
 .RS
 .B
@@ -7717,7 +7718,7 @@ This option is disabled by default.
 Change the behavior of
 .B bash
 where the default operation differs
-from the POSIX 1003.2 standard to match the standard (\fIposix mode\fP).
+from the POSIX standard to match the standard (\fIposix mode\fP).
 .TP 8
 .B privileged
 Same as
index 9c69fcc4273d4b4800c122c1c61734ed32ff8342..fad585203804d94c94c6d6fd47be8fc17838b755 100644 (file)
@@ -3,7 +3,7 @@
 </HEAD>
 <BODY><TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2005 Aug 27<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2006 Jan 26<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <BR><A HREF="#index">Index</A>
@@ -58,8 +58,9 @@ shells (<B>ksh</B> and <B>csh</B>).
 
 <B>Bash</B>
 
-is intended to be a conformant implementation of the IEEE
-POSIX Shell and Tools specification (IEEE Working Group 1003.2).
+is intended to be a conformant implementation of the
+Shell and Utilities portion of the IEEE POSIX specification
+(IEEE Standard 1003.1).
 <B>Bash</B>
 
 can be configured to be POSIX-conformant by default.
@@ -276,7 +277,7 @@ This option is on by default if the shell is invoked as
 
 <DD>
 Change the behavior of <B>bash</B> where the default operation differs
-from the POSIX 1003.2 standard to match the standard (<I>posix mode</I>).
+from the POSIX standard to match the standard (<I>posix mode</I>).
 <DT><B>--restricted</B>
 
 <DD>
@@ -897,8 +898,8 @@ If the shell option
 
 is enabled, the match is performed without regard to the case
 of alphabetic characters.
-The return value is 0 if the string matches or does not match
-the pattern, respectively, and 1 otherwise.
+The return value is 0 if the string matches (<B>==</B>) or does not match
+(<B>!=</B>) the pattern, and 1 otherwise.
 Any part of the pattern may be quoted to force it to be matched as a
 string.
 <P>
@@ -1049,6 +1050,12 @@ as for pathname expansion (see
 <B>Pathname Expansion</B>
 
 below).
+The <I>word</I> is expanded using tilde
+expansion, parameter and variable expansion, arithmetic substituion,
+command substitution, process substitution and quote removal.
+Each <I>pattern</I> examined is expanded using tilde
+expansion, parameter and variable expansion, arithmetic substituion,
+command substitution, and process substitution.
 If the shell option
 <B>nocasematch</B>
 
@@ -1259,7 +1266,7 @@ quotes (see
 below).
 <P>
 
-Words of the form <B>$</B>'<I>string</I>' are treated specially.  The
+Words of the form <B>$</B>aq<I>string</I>aq are treated specially.  The
 word expands to <I>string</I>, with backslash-escaped characters replaced
 as specified by the ANSI C standard.  Backslash escape sequences, if
 present, are decoded as follows:
@@ -1302,7 +1309,7 @@ vertical tab
 
 <DD>
 backslash
-<DT><B>\'</B>
+<DT><B>\aq</B>
 
 <DD>
 single quote
@@ -2380,7 +2387,7 @@ Example:
 <DL COMPACT><DT><DD>
 <P>
 
-<B>MAILPATH</B>='/var/mail/bfox?&quot;You have mail&quot;:~/shell-mail?&quot;$_ has mail!&quot;'
+<B>MAILPATH</B>=aq/var/mail/bfox?&quot;You have mail&quot;:~/shell-mail?&quot;$_ has mail!&quot;aq
 <P>
 
 <B>Bash</B>
@@ -2550,7 +2557,7 @@ The value of <I>p</I> determines whether or not the fraction is
 included.
 <DT><DD>
 If this variable is not set, <B>bash</B> acts as if it had the
-value <B>$'\nreal\t%3lR\nuser\t%3lU\nsys       %3lS'</B>.
+value <B>$aq\nreal\t%3lR\nuser\t%3lU\nsys      %3lSaq</B>.
 If the value is null, no timing information is displayed.
 A trailing newline is added when the format string is displayed.
 <DT><B>TMOUT</B>
@@ -3230,16 +3237,12 @@ or
 the pattern removal operation is applied to each member of the
 array in turn, and the expansion is the resultant list.
 <DT>${<I>parameter</I><B>/</B><I>pattern</I><B>/</B><I>string</I>}<DD>
-
-<DT>${<I>parameter</I><B>//</B><I>pattern</I><B>/</B><I>string</I>}<DD>
-
 The <I>pattern</I> is expanded to produce a pattern just as in
 pathname expansion.
 <I>Parameter</I> is expanded and the longest match of <I>pattern</I>
 against its value is replaced with <I>string</I>.
-In the first form, only the first match is replaced.
-The second form causes all matches of <I>pattern</I> to be
-replaced with <I>string</I>.
+If Ipattern begins with <B>/</B>, all matches of <I>pattern</I> are
+replaced with <I>string</I>.  Normally only the first match is replaced.
 If <I>pattern</I> begins with <B>#</B>, it must match at the beginning
 of the expanded value of <I>parameter</I>.
 If <I>pattern</I> begins with <B>%</B>, it must match at the end
@@ -3463,7 +3466,7 @@ If the value of
 is null, no word splitting occurs.
 <P>
 
-Explicit null arguments (<B>&quot;&quot;</B> or <B>''</B>) are retained.
+Explicit null arguments (<B>&quot;&quot;</B> or <B>aqaq</B>) are retained.
 Unquoted implicit null arguments, resulting from the expansion of
 parameters that have no values, are removed.
 If a parameter with no value is expanded within double quotes, a
@@ -3678,7 +3681,7 @@ and
 
 <I>character classes</I> can be specified using the syntax
 <B>[:</B><I>class</I><B>:]</B>, where <I>class</I> is one of the
-following classes defined in the POSIX.2 standard:
+following classes defined in the POSIX standard:
 </DL>
 <P>
 
@@ -3756,7 +3759,7 @@ After the preceding expansions, all unquoted occurrences of the
 characters
 <B>\</B>,
 
-<B>'</B>,
+<B>aq</B>,
 
 and <B>&quot;</B> that did not result from one of the above
 expansions are removed.
@@ -4441,6 +4444,11 @@ automatically have them defined with the
 option to the 
 <B>export</B>
 
+builtin.
+A function definition may be deleted using the <B>-f</B> option to
+the
+<B>unset</B>
+
 builtin.
 Note that shell functions and variables with the same name may result
 in multiple identically-named entries in the environment passed to the
@@ -5846,10 +5854,10 @@ backslash
 
 <DD>
 literal &quot;
-<DT><B>\'</B>
+<DT><B>\aq</B>
 
 <DD>
-literal '
+literal aq
 </DL></DL>
 
 
@@ -5912,7 +5920,7 @@ be used to indicate a macro definition.
 Unquoted text is assumed to be a function name.
 In the macro body, the backslash escapes described above are expanded.
 Backslash will quote any other character in the macro text,
-including &quot; and '.
+including &quot; and aq.
 <P>
 
 <B>Bash</B>
@@ -9411,7 +9419,7 @@ format specifications, each of which causes printing of the next successive
 In addition to the standard <I>printf</I>(1) formats, <B>%b</B> causes
 <B>printf</B> to expand backslash escape sequences in the corresponding
 <I>argument</I> (except that <B>\c</B> terminates output, backslashes in
-<B>\'</B>, <B>\&quot;</B>, and <B>\?</B> are not removed, and octal escapes
+<B>\aq</B>, <B>\&quot;</B>, and <B>\?</B> are not removed, and octal escapes
 beginning with <B>\0</B> may contain up to four digits),
 and <B>%q</B> causes <B>printf</B> to output the corresponding
 <I>argument</I> in a format that can be reused as shell input.
@@ -9919,7 +9927,7 @@ Change the behavior of
 <B>bash</B>
 
 where the default operation differs
-from the POSIX 1003.2 standard to match the standard (<I>posix mode</I>).
+from the POSIX standard to match the standard (<I>posix mode</I>).
 <DT><B>privileged</B>
 
 <DD>
@@ -10337,7 +10345,7 @@ If set, the extended pattern matching features described above under
 <DT><B>extquote</B>
 
 <DD>
-If set, <B>$</B>'<I>string</I>' and <B>$</B>&quot;<I>string</I>&quot; quoting is
+If set, <B>$</B>aq<I>string</I>aq and <B>$</B>&quot;<I>string</I>&quot; quoting is
 performed within <B>${</B><I>parameter</I><B>}</B> expansions
 enclosed in double quotes.  This option is enabled by default.
 <DT><B>failglob</B>
@@ -10904,7 +10912,7 @@ option suppresses shell function lookup, as with the <B>command</B> builtin.
 
 returns true if any of the arguments are found, false if
 none are found.
-<DT><B>ulimit</B> [<B>-SHacdflmnpstuv</B> [<I>limit</I>]]<DD>
+<DT><B>ulimit</B> [<B>-SHacdefilmnpqrstuvx</B> [<I>limit</I>]]<DD>
 Provides control over the resources available to the shell and to
 processes started by it, on systems that allow such control.
 The <B>-H</B> and <B>-S</B> options specify that the hard or soft limit is
@@ -10948,10 +10956,18 @@ The maximum size of core files created
 
 <DD>
 The maximum size of a process's data segment
+<DT><B>-e</B>
+
+<DD>
+The maximum scheduling priority (&quot;nice&quot;)
 <DT><B>-f</B>
 
 <DD>
 The maximum size of files created by the shell
+<DT><B>-i</B>
+
+<DD>
+The maximum number of pending signals
 <DT><B>-l</B>
 
 <DD>
@@ -10969,6 +10985,14 @@ allow this value to be set)
 
 <DD>
 The pipe size in 512-byte blocks (this may not be set)
+<DT><B>-q</B>
+
+<DD>
+The maximum number of bytes in POSIX message queues
+<DT><B>-r</B>
+
+<DD>
+The maximum real-time scheduling priority
 <DT><B>-s</B>
 
 <DD>
@@ -10985,6 +11009,10 @@ The maximum number of processes available to a single user
 
 <DD>
 The maximum amount of virtual memory available to the shell
+<DT><B>-x</B>
+
+<DD>
+The maximum number of file locks
 
 </DL>
 <P>
@@ -11407,7 +11435,7 @@ Array variables may not (yet) be exported.
 <HR>
 <TABLE WIDTH=100%>
 <TR>
-<TH ALIGN=LEFT width=33%>GNU Bash-3.1-beta1<TH ALIGN=CENTER width=33%>2005 Aug 27<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash-3.2<TH ALIGN=CENTER width=33%>2006 Jan 26<TH ALIGN=RIGHT width=33%>BASH(1)
 </TR>
 </TABLE>
 <HR>
@@ -11511,6 +11539,6 @@ Array variables may not (yet) be exported.
 </DL>
 <HR>
 This document was created by man2html from bash.1.<BR>
-Time: 12 October 2005 16:46:47 EDT
+Time: 26 January 2006 11:19:07 EST
 </BODY>
 </HTML>
index fffc41ea049dbf7cca8a596142adb22a2a272d15..cada2fbf29b105d531d520d8d7fac731d4e7c00e 100644 (file)
Binary files a/doc/bash.pdf and b/doc/bash.pdf differ
index 0615c0da7880d9410d1390da6f7337be525cdc8b..a6d6ec859be21e50ed501c00114e25673216a75d 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.19.1
-%%CreationDate: Wed Oct 12 16:46:45 2005
+%%CreationDate: Thu Jan 26 11:18:52 2006
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -252,9 +252,9 @@ Q/F2 10/Times-Bold@0 SF(bash)108 124.8 Q F0([options] [\214le])2.5 E F1
 194.4 Q F2(Bash)5 E F0(also incorporates useful features from the)2.5 E
 /F3 10/Times-Italic@0 SF -.4(Ko)2.5 G(rn).4 E F0(and)2.5 E F3(C)2.5 E F0
 (shells \()2.5 E F2(ksh)A F0(and)2.5 E F2(csh)2.5 E F0(\).)A F2(Bash)108
-211.2 Q F0 1.54(is intended to be a conformant implementation of the IE\
-EE POSIX Shell and T)4.04 F 1.54(ools speci\214cation)-.8 F(\(IEEE W)108
-223.2 Q(orking Group 1003.2\).)-.8 E F2(Bash)5 E F0
+211.2 Q F0 .527(is intended to be a conformant implementation of the Sh\
+ell and Utilities portion of the IEEE POSIX)3.027 F
+(speci\214cation \(IEEE Standard 1003.1\).)108 223.2 Q F2(Bash)5 E F0
 (can be con\214gured to be POSIX-conformant by def)2.5 E(ault.)-.1 E F1
 (OPTIONS)72 240 Q F0 .52(In addition to the single-character shell opti\
 ons documented in the description of the)108 252 R F2(set)3.02 E F0 -.2
@@ -337,7 +337,7 @@ E F2(po)2.5 E F0(\(portable object\) \214le format.)2.5 E F2
 144 686.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
 (TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2(\255\255login)108 703.2 Q F0
 (Equi)144 715.2 Q -.25(va)-.25 G(lent to).25 E F2<ad6c>2.5 E F0(.)A
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(1)202.89 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(1)204.835 E 0 Cg EP
 %%Page: 2 3
 %%BeginPageSetup
 BP
@@ -362,15 +362,15 @@ BP
 F F2(~/.bashr)3.228 E(c)-.37 E F0 1.228(if the shell is interacti)4.038
 F -.15(ve)-.25 G 6.228(.T).15 G(his)-6.228 E(option is on by def)144
 177.6 Q(ault if the shell is in)-.1 E -.2(vo)-.4 G -.1(ke).2 G 2.5(da).1
-G(s)-2.5 E F1(sh)2.5 E F0(.)A F1(\255\255posix)108 194.4 Q F0 .374
-(Change the beha)144 206.4 R .374(vior of)-.2 F F1(bash)2.874 E F0 .374
-(where the def)2.874 F .374(ault operation dif)-.1 F .373
-(fers from the POSIX 1003.2 standard)-.25 F(to match the standard \()144
-218.4 Q F2(posix mode)A F0(\).)A F1<adad72>108 235.2 Q(estricted)-.18 E
-F0(The shell becomes restricted \(see)144 247.2 Q F3(RESTRICTED SHELL)
-2.5 E F0(belo)2.25 E(w\).)-.25 E F1<adad76>108 264 Q(erbose)-.1 E F0
-(Equi)144 276 Q -.25(va)-.25 G(lent to).25 E F1<ad76>5 E F0(.)A F1
-<adad76>108 292.8 Q(ersion)-.1 E F0(Sho)144 304.8 Q 2.5(wv)-.25 G
+G(s)-2.5 E F1(sh)2.5 E F0(.)A F1(\255\255posix)108 194.4 Q F0 1.783
+(Change the beha)144 206.4 R 1.782(vior of)-.2 F F1(bash)4.282 E F0
+1.782(where the def)4.282 F 1.782(ault operation dif)-.1 F 1.782
+(fers from the POSIX standard to)-.25 F(match the standard \()144 218.4
+Q F2(posix mode)A F0(\).)A F1<adad72>108 235.2 Q(estricted)-.18 E F0
+(The shell becomes restricted \(see)144 247.2 Q F3(RESTRICTED SHELL)2.5
+E F0(belo)2.25 E(w\).)-.25 E F1<adad76>108 264 Q(erbose)-.1 E F0(Equi)
+144 276 Q -.25(va)-.25 G(lent to).25 E F1<ad76>5 E F0(.)A F1<adad76>108
+292.8 Q(ersion)-.1 E F0(Sho)144 304.8 Q 2.5(wv)-.25 G
 (ersion information for this instance of)-2.65 E F1(bash)2.5 E F0
 (on the standard output and e)2.5 E(xit successfully)-.15 E(.)-.65 E/F4
 10.95/Times-Bold@0 SF(ARGUMENTS)72 321.6 Q F0 .016(If ar)108 333.6 R
@@ -458,8 +458,8 @@ F(ariable)-.25 E F3 -.27(BA)108 679.2 S(SH_ENV).27 E F0 1.01(in the en)
 (if [ \255n "$BASH_ENV" ]; then . "$BASH_ENV"; fi)144 709.2 Q F0 -.2(bu)
 108 727.2 S 2.5(tt).2 G(he v)-2.5 E(alue of the)-.25 E F3 -.666(PA)2.5 G
 (TH)-.189 E F0 -.25(va)2.25 G
-(riable is not used to search for the \214le name.).25 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(2)202.89 E 0 Cg EP
+(riable is not used to search for the \214le name.).25 E(GNU Bash-3.2)72
+768 Q(2006 Jan 26)149.845 E(2)204.835 E 0 Cg EP
 %%Page: 3 4
 %%BeginPageSetup
 BP
@@ -584,7 +584,7 @@ F1(Pipelines)87 679.2 Q F0(A)108 691.2 Q F2(pipeline)2.919 E F0 .419
 F F1(|)2.92 E F0 5.42(.T)C .42(he format for a pipeline)-5.42 F(is:)108
 703.2 Q([)144 720 Q F1(time)A F0([)2.5 E F1<ad70>A F0(]] [ ! ])A F2
 (command)2.5 E F0([)2.5 E F1(|)2.5 E F2(command2)2.5 E F0(... ])2.5 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(3)202.89 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(3)204.835 E 0 Cg EP
 %%Page: 4 5
 %%BeginPageSetup
 BP
@@ -704,8 +704,8 @@ A({)108 573.6 Q F1(list)2.5 E F0 2.5(;})C F1(list)3.89 E F0 .402
 F(SIONS)144 727.2 Q F5(.)A F0 -.8(Wo)5.633 G 1.133
 (rd splitting and pathname e).8 F 1.133
 (xpansion are not performed on the w)-.15 F 1.133(ords between the)-.1 F
-F3([[)3.632 E F0(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(4)
-202.89 E 0 Cg EP
+F3([[)3.632 E F0(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(4)204.835 E
+0 Cg EP
 %%Page: 5 6
 %%BeginPageSetup
 BP
@@ -727,11 +727,12 @@ ed a pat-)3.002 F 1.225
 (atching)-3.724 E F0 6.224(.I)C 3.724(ft)-6.224 G 1.224(he shell)-3.724
 F(option)144 150 Q F1(nocasematch)3.404 E F0 .904
 (is enabled, the match is performed without re)3.404 F -.05(ga)-.15 G
-.905(rd to the case of alphabetic).05 F 2.997(characters. The)144 162 R
-.497(return v)2.997 F .496(alue is 0 if the string matches or does not \
-match the pattern, respecti)-.25 F -.15(ve)-.25 G(ly).15 E(,)-.65 E
-(and 1 otherwise.)144 174 Q(An)5 E 2.5(yp)-.15 G(art of the pattern may\
- be quoted to force it to be matched as a string.)-2.5 E .243
+.905(rd to the case of alphabetic).05 F 2.752(characters. The)144 162 R
+.251(return v)2.752 F .251(alue is 0 if the string matches \()-.25 F F1
+(==)A F0 2.751(\)o)C 2.751(rd)-2.751 G .251(oes not match \()-2.751 F F1
+(!=)A F0 2.751(\)t)C .251(he pattern, and)-2.751 F 2.5(1o)144 174 S 2.5
+(therwise. An)-2.5 F 2.5(yp)-.15 G(art of the pattern may be quoted to \
+force it to be matched as a string.)-2.5 E .243
 (An additional binary operator)144 192 R(,)-.4 E F1(=~)2.743 E F0 2.743
 (,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243
 (ilable, with the same precedence as).25 F F1(==)2.743 E F0(and)2.743 E
@@ -842,7 +843,7 @@ F 1.538(played w)144 715.2 R 1.538(ords, then the v)-.1 F 1.538(alue of)
 F 1.537(ords and)-.1 F .065(prompt are displayed ag)144 727.2 R 2.565
 (ain. If)-.05 F .065(EOF is read, the command completes.)2.565 F(An)
 5.066 E 2.566(yo)-.15 G .066(ther v)-2.566 F .066(alue read causes)-.25
-F(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(5)202.89 E 0 Cg EP
+F(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(5)204.835 E 0 Cg EP
 %%Page: 6 7
 %%BeginPageSetup
 BP
@@ -865,6578 +866,6598 @@ F1(pattern)2.5 E F0([)2.5 E F2(|)2.5 E F1(pattern)2.5 E F0 2.5(].)2.5 G
 136.8 Q F2(case)3.265 E F0 .764(command \214rst e)3.265 F(xpands)-.15 E
 F1(wor)3.264 E(d)-.37 E F0 3.264(,a)C .764(nd tries to match it ag)
 -3.264 F .764(ainst each)-.05 F F1(pattern)3.264 E F0 .764
-(in turn, using the)3.264 F .952(same matching rules as for pathname e)
-144 148.8 R .952(xpansion \(see)-.15 F F2 -.1(Pa)3.452 G .952
-(thname Expansion).1 F F0(belo)3.453 E 3.453(w\). If)-.25 F .953
-(the shell)3.453 F(option)144 160.8 Q F2(nocasematch)3.405 E F0 .904
-(is enabled, the match is performed without re)3.405 F -.05(ga)-.15 G
-.904(rd to the case of alphabetic).05 F 3.388(characters. When)144 172.8
-R 3.388(am)3.388 G .888(atch is found, the corresponding)-3.388 F F1
-(list)3.388 E F0 .888(is e)3.388 F -.15(xe)-.15 G 3.388(cuted. After).15
-F .888(the \214rst match, no)3.388 F .674
-(subsequent matches are attempted.)144 184.8 R .674(The e)5.674 F .673
-(xit status is zero if no pattern matches.)-.15 F .673(Otherwise, it is)
-5.673 F(the e)144 196.8 Q(xit status of the last command e)-.15 E -.15
-(xe)-.15 G(cuted in).15 E F1(list)2.5 E F0(.)A F2(if)108 213.6 Q F1
-(list)2.5 E F0(;)A F2(then)2.5 E F1(list;)2.5 E F0([)2.5 E F2(elif)2.5 E
-F1(list)2.5 E F0(;)A F2(then)2.5 E F1(list)2.5 E F0 2.5(;].)C(.. [)-2.5
-E F2(else)2.5 E F1(list)2.5 E F0 2.5(;])C F2<8c>A F0(The)144 225.6 Q F2
-(if)2.977 E F1(list)3.067 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978
-(cuted. If).15 F .478(its e)2.978 F .478(xit status is zero, the)-.15 F
-F2(then)2.978 E F1(list)2.978 E F0 .478(is e)2.978 F -.15(xe)-.15 G
-2.978(cuted. Otherwise,).15 F(each)2.978 E F2(elif)2.978 E F1(list)2.978
-E F0 1.088(is e)144 237.6 R -.15(xe)-.15 G 1.088
-(cuted in turn, and if its e).15 F 1.087
-(xit status is zero, the corresponding)-.15 F F2(then)3.587 E F1(list)
-3.587 E F0 1.087(is e)3.587 F -.15(xe)-.15 G 1.087(cuted and the).15 F
-.103(command completes.)144 249.6 R .103(Otherwise, the)5.103 F F2(else)
-2.603 E F1(list)2.603 E F0 .103(is e)2.603 F -.15(xe)-.15 G .103
-(cuted, if present.).15 F .103(The e)5.103 F .103(xit status is the e)
--.15 F .104(xit sta-)-.15 F(tus of the last command e)144 261.6 Q -.15
-(xe)-.15 G(cuted, or zero if no condition tested true.).15 E F2(while)
-108 278.4 Q F1(list)2.5 E F0(;)A F2(do)2.5 E F1(list)2.5 E F0(;)A F2
-(done)2.5 E(until)108 290.4 Q F1(list)2.5 E F0(;)A F2(do)2.5 E F1(list)
-2.5 E F0(;)A F2(done)2.5 E F0(The)144 302.4 Q F2(while)3.104 E F0 .603
+(in turn, using the)3.264 F .595(same matching rules as for pathname e)
+144 148.8 R .595(xpansion \(see)-.15 F F2 -.1(Pa)3.095 G .596
+(thname Expansion).1 F F0(belo)3.096 E 3.096(w\). The)-.25 F F1(wor)
+3.096 E(d)-.37 E F0(is)3.096 E -.15(ex)144 160.8 S 1.37
+(panded using tilde e).15 F 1.37(xpansion, parameter and v)-.15 F 1.37
+(ariable e)-.25 F 1.37(xpansion, arithmetic substituion, com-)-.15 F
+1.268(mand substitution, process substitution and quote remo)144 172.8 R
+-.25(va)-.15 G 3.768(l. Each).25 F F1(pattern)3.768 E F0 -.15(ex)3.768 G
+1.269(amined is e).15 F(xpanded)-.15 E .631(using tilde e)144 184.8 R
+.631(xpansion, parameter and v)-.15 F .631(ariable e)-.25 F .631
+(xpansion, arithmetic substituion, command substi-)-.15 F 1.516
+(tution, and process substitution.)144 196.8 R 1.516
+(If the shell option)6.516 F F2(nocasematch)4.016 E F0 1.517
+(is enabled, the match is per)4.017 F(-)-.2 E 1.347(formed without re)
+144 208.8 R -.05(ga)-.15 G 1.347
+(rd to the case of alphabetic characters.).05 F 1.346
+(When a match is found, the corre-)6.347 F(sponding)144 220.8 Q F1(list)
+3.579 E F0 1.079(is e)3.579 F -.15(xe)-.15 G 3.579(cuted. After).15 F
+1.079(the \214rst match, no subsequent matches are attempted.)3.579 F
+1.08(The e)6.08 F(xit)-.15 E .006(status is zero if no pattern matches.)
+144 232.8 R .006(Otherwise, it is the e)5.006 F .006
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .006(cuted in)
+.15 F F1(list)144 244.8 Q F0(.)A F2(if)108 261.6 Q F1(list)2.5 E F0(;)A
+F2(then)2.5 E F1(list;)2.5 E F0([)2.5 E F2(elif)2.5 E F1(list)2.5 E F0
+(;)A F2(then)2.5 E F1(list)2.5 E F0 2.5(;].)C(.. [)-2.5 E F2(else)2.5 E
+F1(list)2.5 E F0 2.5(;])C F2<8c>A F0(The)144 273.6 Q F2(if)2.977 E F1
+(list)3.067 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978(cuted. If).15 F
+.478(its e)2.978 F .478(xit status is zero, the)-.15 F F2(then)2.978 E
+F1(list)2.978 E F0 .478(is e)2.978 F -.15(xe)-.15 G 2.978
+(cuted. Otherwise,).15 F(each)2.978 E F2(elif)2.978 E F1(list)2.978 E F0
+1.088(is e)144 285.6 R -.15(xe)-.15 G 1.088(cuted in turn, and if its e)
+.15 F 1.087(xit status is zero, the corresponding)-.15 F F2(then)3.587 E
+F1(list)3.587 E F0 1.087(is e)3.587 F -.15(xe)-.15 G 1.087
+(cuted and the).15 F .103(command completes.)144 297.6 R .103
+(Otherwise, the)5.103 F F2(else)2.603 E F1(list)2.603 E F0 .103(is e)
+2.603 F -.15(xe)-.15 G .103(cuted, if present.).15 F .103(The e)5.103 F
+.103(xit status is the e)-.15 F .104(xit sta-)-.15 F
+(tus of the last command e)144 309.6 Q -.15(xe)-.15 G
+(cuted, or zero if no condition tested true.).15 E F2(while)108 326.4 Q
+F1(list)2.5 E F0(;)A F2(do)2.5 E F1(list)2.5 E F0(;)A F2(done)2.5 E
+(until)108 338.4 Q F1(list)2.5 E F0(;)A F2(do)2.5 E F1(list)2.5 E F0(;)A
+F2(done)2.5 E F0(The)144 350.4 Q F2(while)3.104 E F0 .603
 (command continuously e)3.104 F -.15(xe)-.15 G .603(cutes the).15 F F2
 (do)3.103 E F1(list)3.103 E F0 .603(as long as the last command in)3.103
-F F1(list)3.103 E F0(returns)3.103 E .47(an e)144 314.4 R .47
+F F1(list)3.103 E F0(returns)3.103 E .47(an e)144 362.4 R .47
 (xit status of zero.)-.15 F(The)5.47 E F2(until)2.97 E F0 .471
 (command is identical to the)2.97 F F2(while)2.971 E F0 .471(command, e)
-2.971 F .471(xcept that the test)-.15 F .096(is ne)144 326.4 R -.05(ga)
+2.971 F .471(xcept that the test)-.15 F .096(is ne)144 374.4 R -.05(ga)
 -.15 G .096(ted; the).05 F F2(do)2.596 E F1(list)2.686 E F0 .095(is e)
 3.276 F -.15(xe)-.15 G .095(cuted as long as the last command in).15 F
 F1(list)2.685 E F0 .095(returns a non-zero e)3.275 F .095(xit status.)
--.15 F 1.306(The e)144 338.4 R 1.306(xit status of the)-.15 F F2(while)
+-.15 F 1.306(The e)144 386.4 R 1.306(xit status of the)-.15 F F2(while)
 3.806 E F0(and)3.806 E F2(until)3.807 E F0 1.307(commands is the e)3.807
 F 1.307(xit status of the last)-.15 F F2(do)3.807 E F1(list)3.807 E F0
-(command)3.807 E -.15(exe)144 350.4 S(cuted, or zero if none w).15 E
+(command)3.807 E -.15(exe)144 398.4 S(cuted, or zero if none w).15 E
 (as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F2(Shell Function De\214nitions)
-87 367.2 Q F0 2.698(As)108 379.2 S .198
+87 415.2 Q F0 2.698(As)108 427.2 S .198
 (hell function is an object that is called lik)-2.698 F 2.698(eas)-.1 G
 .198(imple command and e)-2.698 F -.15(xe)-.15 G .197
-(cutes a compound command with).15 F 2.5(an)108 391.2 S .5 -.25(ew s)
+(cutes a compound command with).15 F 2.5(an)108 439.2 S .5 -.25(ew s)
 -2.5 H(et of positional parameters.).25 E
-(Shell functions are declared as follo)5 E(ws:)-.25 E([)108 408 Q F2
+(Shell functions are declared as follo)5 E(ws:)-.25 E([)108 456 Q F2
 (function)2.5 E F0(])2.5 E F1(name)2.5 E F0(\(\))2.5 E F1
 (compound\255command)2.5 E F0([)2.5 E F1 -.37(re)C(dir).37 E(ection)-.37
-E F0(])A 1.402(This de\214nes a function named)144 420 R F1(name)3.902 E
+E F0(])A 1.402(This de\214nes a function named)144 468 R F1(name)3.902 E
 F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402(ed w)-.15 F(ord)-.1 E F2
 (function)3.902 E F0 1.402(is optional.)3.902 F 1.403(If the)6.402 F F2
-(function)3.903 E F0(reserv)144 432 Q .162(ed w)-.15 F .162
+(function)3.903 E F0(reserv)144 480 Q .162(ed w)-.15 F .162
 (ord is supplied, the parentheses are optional.)-.1 F(The)5.162 E F1
 (body)2.662 E F0 .162(of the function is the compound)2.662 F(command)
-144 444 Q F1(compound\255command)2.784 E F0(\(see)3.354 E F2 .084
+144 492 Q F1(compound\255command)2.784 E F0(\(see)3.354 E F2 .084
 (Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G 2.584(\). That)
-.15 F .084(command is usually a)2.584 F F1(list)144 456 Q F0 .044
+.15 F .084(command is usually a)2.584 F F1(list)144 504 Q F0 .044
 (of commands between { and }, b)2.544 F .044(ut may be an)-.2 F 2.544
 (yc)-.15 G .044(ommand listed under)-2.544 F F2 .044(Compound Commands)
-2.544 F F0(abo)144 468 Q -.15(ve)-.15 G(.).15 E F1(compound\255command)
+2.544 F F0(abo)144 516 Q -.15(ve)-.15 G(.).15 E F1(compound\255command)
 6.67 E F0 1.67(is e)4.17 F -.15(xe)-.15 G 1.671(cuted whene).15 F -.15
 (ve)-.25 G(r).15 E F1(name)4.171 E F0 1.671
 (is speci\214ed as the name of a simple)4.171 F 3.009(command. An)144
-480 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F/F3 9/Times-Bold@0
+528 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F/F3 9/Times-Bold@0
 SF(REDIRECTION)3.009 E F0(belo)2.759 E .509
 (w\) speci\214ed when a function is de\214ned are)-.25 F .58
-(performed when the function is e)144 492 R -.15(xe)-.15 G 3.08
+(performed when the function is e)144 540 R -.15(xe)-.15 G 3.08
 (cuted. The).15 F -.15(ex)3.081 G .581
 (it status of a function de\214nition is zero unless a).15 F .177(synta\
 x error occurs or a readonly function with the same name already e)144
-504 R 2.677(xists. When)-.15 F -.15(exe)2.677 G .177(cuted, the).15 F
--.15(ex)144 516 S .64(it status of a function is the e).15 F .64
+552 R 2.677(xists. When)-.15 F -.15(exe)2.677 G .177(cuted, the).15 F
+-.15(ex)144 564 S .64(it status of a function is the e).15 F .64
 (xit status of the last command e)-.15 F -.15(xe)-.15 G .64
 (cuted in the body).15 F 5.64(.\()-.65 G(See)-5.64 E F3(FUNC-)3.14 E
-(TIONS)144 528 Q F0(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95
-/Times-Bold@0 SF(COMMENTS)72 544.8 Q F0 .982(In a non-interacti)108
-556.8 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282
+(TIONS)144 576 Q F0(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95
+/Times-Bold@0 SF(COMMENTS)72 592.8 Q F0 .982(In a non-interacti)108
+604.8 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282
 -.15(ve s)-.25 H .982(hell in which the).15 F F2(interacti)3.482 E -.1
 (ve)-.1 G(_comments).1 E F0 .982(option to the)3.482 F F2(shopt)3.482 E
-F0 -.2(bu)108 568.8 S .951(iltin is enabled \(see).2 F F3 .952(SHELL B)
+F0 -.2(bu)108 616.8 S .951(iltin is enabled \(see).2 F F3 .952(SHELL B)
 3.451 F(UIL)-.09 E .952(TIN COMMANDS)-.828 F F0(belo)3.202 E .952
 (w\), a w)-.25 F .952(ord be)-.1 F .952(ginning with)-.15 F F2(#)3.452 E
 F0 .952(causes that w)3.452 F(ord)-.1 E .605
-(and all remaining characters on that line to be ignored.)108 580.8 R
+(and all remaining characters on that line to be ignored.)108 628.8 R
 .604(An interacti)5.605 F .904 -.15(ve s)-.25 H .604(hell without the)
-.15 F F2(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 592.8 Q F0
+.15 F F2(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 640.8 Q F0
 1.336(option enabled does not allo)3.836 F 3.836(wc)-.25 G 3.836
 (omments. The)-3.836 F F2(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E
 F0 1.337(option is on by def)3.837 F 1.337(ault in)-.1 F(interacti)108
-604.8 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 621.6 S -.438(OT)
-.11 G(ING).438 E F1(Quoting)108 633.6 Q F0 .478(is used to remo)2.978 F
+652.8 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 669.6 S -.438(OT)
+.11 G(ING).438 E F1(Quoting)108 681.6 Q F0 .478(is used to remo)2.978 F
 .777 -.15(ve t)-.15 H .477
 (he special meaning of certain characters or w).15 F .477
 (ords to the shell.)-.1 F .477(Quoting can be)5.477 F .184
 (used to disable special treatment for special characters, to pre)108
-645.6 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
-(ords from being recognized as)-.1 F(such, and to pre)108 657.6 Q -.15
+693.6 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185
+(ords from being recognized as)-.1 F(such, and to pre)108 705.6 Q -.15
 (ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108
-674.4 R F1(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
+722.4 R F1(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
 (listed abo)2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)
 2.788 E F0 .288(has special meaning to the shell and must be)2.538 F
-(quoted if it is to represent itself.)108 686.4 Q 1.344
-(When the command history e)108 703.2 R 1.344(xpansion f)-.15 F 1.344
-(acilities are being used \(see)-.1 F F3(HIST)3.844 E(OR)-.162 E 3.594
-(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.595 E 1.345(w\), the)
--.25 F F1(history e)108 715.2 Q(xpansion)-.2 E F0(character)2.5 E 2.5
-(,u)-.4 G(sually)-2.5 E F2(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5
-E -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E(GNU Bash-3.1-beta1)
-72 768 Q(2005 Aug 27)122.91 E(6)202.89 E 0 Cg EP
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(6)204.835 E 0 Cg EP
 %%Page: 7 8
 %%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(There are three quoting mechanisms: the)108 84 Q/F1 10
-/Times-Italic@0 SF(escape c)2.5 E(har)-.15 E(acter)-.15 E F0 2.5(,s).73
-G(ingle quotes, and double quotes.)-2.5 E 2.975(An)108 100.8 S .475
-(on-quoted backslash \()-2.975 F/F2 10/Times-Bold@0 SF(\\)A F0 2.974
-(\)i)C 2.974(st)-2.974 G(he)-2.974 E F1 .474(escape c)2.974 F(har)-.15 E
-(acter)-.15 E F0 5.474(.I).73 G 2.974(tp)-5.474 G(reserv)-2.974 E .474
-(es the literal v)-.15 F .474(alue of the ne)-.25 F .474
-(xt character that)-.15 F(follo)108 112.8 Q 1.553(ws, with the e)-.25 F
-1.553(xception of <ne)-.15 F 4.053(wline>. If)-.25 F(a)4.053 E F2(\\)
-4.053 E F0(<ne)A 1.553
+-.35 E(quoted if it is to represent itself.)108 84 Q 1.344
+(When the command history e)108 100.8 R 1.344(xpansion f)-.15 F 1.344
+(acilities are being used \(see)-.1 F/F1 9/Times-Bold@0 SF(HIST)3.844 E
+(OR)-.162 E 3.594(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.595 E
+1.345(w\), the)-.25 F/F2 10/Times-Italic@0 SF(history e)108 112.8 Q
+(xpansion)-.2 E F0(character)2.5 E 2.5(,u)-.4 G(sually)-2.5 E/F3 10
+/Times-Bold@0 SF(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5 E -.15
+(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E
+(There are three quoting mechanisms: the)108 129.6 Q F2(escape c)2.5 E
+(har)-.15 E(acter)-.15 E F0 2.5(,s).73 G
+(ingle quotes, and double quotes.)-2.5 E 2.975(An)108 146.4 S .475
+(on-quoted backslash \()-2.975 F F3(\\)A F0 2.974(\)i)C 2.974(st)-2.974
+G(he)-2.974 E F2 .474(escape c)2.974 F(har)-.15 E(acter)-.15 E F0 5.474
+(.I).73 G 2.974(tp)-5.474 G(reserv)-2.974 E .474(es the literal v)-.15 F
+.474(alue of the ne)-.25 F .474(xt character that)-.15 F(follo)108 158.4
+Q 1.553(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
+(wline>. If)-.25 F(a)4.053 E F3(\\)4.053 E F0(<ne)A 1.553
 (wline> pair appears, and the backslash is not itself)-.25 F 1.123
-(quoted, the)108 124.8 R F2(\\)3.623 E F0(<ne)A 1.122
+(quoted, the)108 170.4 R F3(\\)3.623 E F0(<ne)A 1.122
 (wline> is treated as a line continuation \(that is, it is remo)-.25 F
 -.15(ve)-.15 G 3.622(df).15 G 1.122(rom the input stream and)-3.622 F
-(ef)108 136.8 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
-(Enclosing characters in single quotes preserv)108 153.6 R .295
+(ef)108 182.4 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
+(Enclosing characters in single quotes preserv)108 199.2 R .295
 (es the literal v)-.15 F .295(alue of each character within the quotes.)
 -.25 F 2.795(As)5.295 G(in-)-2.795 E
-(gle quote may not occur between single quotes, e)108 165.6 Q -.15(ve)
+(gle quote may not occur between single quotes, e)108 211.2 Q -.15(ve)
 -.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .034
-(Enclosing characters in double quotes preserv)108 182.4 R .034
+(Enclosing characters in double quotes preserv)108 228 R .034
 (es the literal v)-.15 F .034
 (alue of all characters within the quotes, with the)-.25 F -.15(ex)108
-194.4 S .827(ception of).15 F F2($)3.327 E F0(,)A F2(`)3.328 E F0(,)A F2
+240 S .827(ception of).15 F F3($)3.327 E F0(,)A F3(`)3.328 E F0(,)A F3
 (\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828
-(xpansion is enabled,)-.15 F F2(!)3.328 E F0 5.828(.T)C .828
-(he characters)-5.828 F F2($)3.328 E F0(and)3.328 E F2(`)3.328 E F0 .828
-(retain their special)3.328 F .075(meaning within double quotes.)108
-206.4 R .074(The backslash retains its special meaning only when follo)
-5.075 F .074(wed by one of the)-.25 F(follo)108 218.4 Q .204
-(wing characters:)-.25 F F2($)2.704 E F0(,)A F2(`)2.704 E F0(,)A F2(")
-3.537 E F0(,).833 E F2(\\)2.704 E F0 2.704(,o)C(r)-2.704 E F2(<newline>)
-2.705 E F0 5.205(.A)C .205
-(double quote may be quoted within double quotes by pre-)-2.5 F .082
-(ceding it with a backslash.)108 230.4 R .082(If enabled, history e)
-5.082 F .082(xpansion will be performed unless an)-.15 F F2(!)2.581 E F0
-.081(appearing in double)5.081 F(quotes is escaped using a backslash.)
-108 242.4 Q(The backslash preceding the)5 E F2(!)2.5 E F0(is not remo)5
-E -.15(ve)-.15 G(d.).15 E(The special parameters)108 259.2 Q F2(*)2.5 E
-F0(and)2.5 E F2(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
-(pecial meaning when in double quotes \(see).15 E/F3 9/Times-Bold@0 SF
--.666(PA)2.5 G(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 276
-S .007(rds of the form).8 F F2($)2.507 E F0(')A F1(string)A F0 2.507('a)
-C .007(re treated specially)-2.507 F 5.007(.T)-.65 G .007(he w)-5.007 F
-.007(ord e)-.1 F .008(xpands to)-.15 F F1(string)2.508 E F0 2.508(,w)C
-.008(ith backslash-escaped char)-2.508 F(-)-.2 E .605
-(acters replaced as speci\214ed by the ANSI C standard.)108 288 R .604
+(xpansion is enabled,)-.15 F F3(!)3.328 E F0 5.828(.T)C .828
+(he characters)-5.828 F F3($)3.328 E F0(and)3.328 E F3(`)3.328 E F0 .828
+(retain their special)3.328 F .075(meaning within double quotes.)108 252
+R .074(The backslash retains its special meaning only when follo)5.075 F
+.074(wed by one of the)-.25 F(follo)108 264 Q .204(wing characters:)-.25
+F F3($)2.704 E F0(,)A F3(`)2.704 E F0(,)A F3(")3.537 E F0(,).833 E F3
+(\\)2.704 E F0 2.704(,o)C(r)-2.704 E F3(<newline>)2.705 E F0 5.205(.A)C
+.205(double quote may be quoted within double quotes by pre-)-2.5 F .082
+(ceding it with a backslash.)108 276 R .082(If enabled, history e)5.082
+F .082(xpansion will be performed unless an)-.15 F F3(!)2.581 E F0 .081
+(appearing in double)5.081 F(quotes is escaped using a backslash.)108
+288 Q(The backslash preceding the)5 E F3(!)2.5 E F0(is not remo)5 E -.15
+(ve)-.15 G(d.).15 E(The special parameters)108 304.8 Q F3(*)2.5 E F0
+(and)2.5 E F3(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
+(pecial meaning when in double quotes \(see).15 E F1 -.666(PA)2.5 G
+(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 321.6 S .211
+(rds of the form).8 F F3($)2.711 E F0<08>A F2(string)A F0 2.711<0861>C
+.211(re treated specially)-2.711 F 5.211(.T)-.65 G .211(he w)-5.211 F
+.211(ord e)-.1 F .212(xpands to)-.15 F F2(string)2.712 E F0 2.712(,w)C
+.212(ith backslash-escaped char)-2.712 F(-)-.2 E .605
+(acters replaced as speci\214ed by the ANSI C standard.)108 333.6 R .604
 (Backslash escape sequences, if present, are decoded)5.605 F(as follo)
-108 300 Q(ws:)-.25 E F2(\\a)144 312 Q F0(alert \(bell\))28.22 E F2(\\b)
-144 324 Q F0(backspace)27.66 E F2(\\e)144 336 Q F0(an escape character)
-28.78 E F2(\\f)144 348 Q F0(form feed)29.89 E F2(\\n)144 360 Q F0(ne)
-27.66 E 2.5(wl)-.25 G(ine)-2.5 E F2(\\r)144 372 Q F0(carriage return)
-28.78 E F2(\\t)144 384 Q F0(horizontal tab)29.89 E F2(\\v)144 396 Q F0
--.15(ve)28.22 G(rtical tab).15 E F2(\\\\)144 408 Q F0(backslash)30.44 E
-F2(\\')144 420 Q F0(single quote)29.89 E F2(\\)144 432 Q F1(nnn)A F0
-(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
-(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)144
-444 Q F1(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
--.25 E(xadecimal v)-.15 E(alue)-.25 E F1(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 F2(\\c)144 456 Q F1(x)A
-F0 2.5(ac)24.34 G(ontrol-)-2.5 E F1(x)A F0(character)2.5 E(The e)108
-472.8 Q(xpanded result is single-quoted, as if the dollar sign had not \
-been present.)-.15 E 2.985(Ad)108 489.6 S .485
-(ouble-quoted string preceded by a dollar sign \()-2.985 F F2($)A F0
+108 345.6 Q(ws:)-.25 E F3(\\a)144 357.6 Q F0(alert \(bell\))28.22 E F3
+(\\b)144 369.6 Q F0(backspace)27.66 E F3(\\e)144 381.6 Q F0
+(an escape character)28.78 E F3(\\f)144 393.6 Q F0(form feed)29.89 E F3
+(\\n)144 405.6 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F3(\\r)144 417.6
+Q F0(carriage return)28.78 E F3(\\t)144 429.6 Q F0(horizontal tab)29.89
+E F3(\\v)144 441.6 Q F0 -.15(ve)28.22 G(rtical tab).15 E F3(\\\\)144
+453.6 Q F0(backslash)30.44 E F3<5c08>144 465.6 Q F0(single quote)30.44 E
+F3(\\)144 477.6 Q F2(nnn)A F0(the eight-bit character whose v)18.22 E
+(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
+(\(one to three digits\))2.5 E F3(\\x)144 489.6 Q F2(HH)A F0
+(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
+(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 F3(\\c)144 501.6 Q F2(x)A F0 2.5
+(ac)24.34 G(ontrol-)-2.5 E F2(x)A F0(character)2.5 E(The e)108 518.4 Q(\
+xpanded result is single-quoted, as if the dollar sign had not been pre\
+sent.)-.15 E 2.985(Ad)108 535.2 S .485
+(ouble-quoted string preceded by a dollar sign \()-2.985 F F3($)A F0
 2.986(\)w)C .486(ill cause the string to be translated according to the)
--2.986 F .118(current locale.)108 501.6 R .118(If the current locale is)
-5.118 F F2(C)2.618 E F0(or)2.618 E F2(POSIX)2.618 E F0 2.618(,t)C .117
+-2.986 F .118(current locale.)108 547.2 R .118(If the current locale is)
+5.118 F F3(C)2.618 E F0(or)2.618 E F3(POSIX)2.618 E F0 2.618(,t)C .117
 (he dollar sign is ignored.)-2.618 F .117
 (If the string is translated and)5.117 F
-(replaced, the replacement is double-quoted.)108 513.6 Q/F4 10.95
-/Times-Bold@0 SF -.81(PA)72 530.4 S(RAMETERS).81 E F0(A)108 542.4 Q F1
-(par)4.592 E(ameter)-.15 E F0 .842(is an entity that stores v)4.072 F
-3.342(alues. It)-.25 F .842(can be a)3.342 F F1(name)3.343 E F0 3.343
-(,an).18 G(umber)-3.343 E 3.343(,o)-.4 G 3.343(ro)-3.343 G .843
-(ne of the special characters)-3.343 F .823(listed belo)108 554.4 R
-3.323(wu)-.25 G(nder)-3.323 E F2 .823(Special P)3.323 F(arameters)-.1 E
-F0 5.823(.A)C F1(variable)-2.21 E F0 .823(is a parameter denoted by a)
-3.503 F F1(name)3.323 E F0 5.823(.A).18 G -.25(va)-2.5 G .823
-(riable has a).25 F F1(value)108 566.4 Q F0 .368(and zero or more)2.868
-F F1(attrib)2.868 E(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369
-(utes are assigned using the)-.2 F F2(declar)2.869 E(e)-.18 E F0 -.2(bu)
-2.869 G .369(iltin command \(see).2 F F2(declar)2.869 E(e)-.18 E F0
-(belo)108 578.4 Q 2.5(wi)-.25 G(n)-2.5 E F3(SHELL B)2.5 E(UIL)-.09 E
-(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0 2.755(Ap)108 595.2
+(replaced, the replacement is double-quoted.)108 559.2 Q/F4 10.95
+/Times-Bold@0 SF -.81(PA)72 576 S(RAMETERS).81 E F0(A)108 588 Q F2(par)
+4.592 E(ameter)-.15 E F0 .842(is an entity that stores v)4.072 F 3.342
+(alues. It)-.25 F .842(can be a)3.342 F F2(name)3.343 E F0 3.343(,an).18
+G(umber)-3.343 E 3.343(,o)-.4 G 3.343(ro)-3.343 G .843
+(ne of the special characters)-3.343 F .823(listed belo)108 600 R 3.323
+(wu)-.25 G(nder)-3.323 E F3 .823(Special P)3.323 F(arameters)-.1 E F0
+5.823(.A)C F2(variable)-2.21 E F0 .823(is a parameter denoted by a)3.503
+F F2(name)3.323 E F0 5.823(.A).18 G -.25(va)-2.5 G .823(riable has a).25
+F F2(value)108 612 Q F0 .368(and zero or more)2.868 F F2(attrib)2.868 E
+(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369
+(utes are assigned using the)-.2 F F3(declar)2.869 E(e)-.18 E F0 -.2(bu)
+2.869 G .369(iltin command \(see).2 F F3(declar)2.869 E(e)-.18 E F0
+(belo)108 624 Q 2.5(wi)-.25 G(n)-2.5 E F1(SHELL B)2.5 E(UIL)-.09 E
+(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0 2.755(Ap)108 640.8
 S .255(arameter is set if it has been assigned a v)-2.755 F 2.754
 (alue. The)-.25 F .254(null string is a v)2.754 F .254(alid v)-.25 F
 2.754(alue. Once)-.25 F 2.754(av)2.754 G .254(ariable is set, it)-3.004
-F(may be unset only by using the)108 607.2 Q F2(unset)2.5 E F0 -.2(bu)
-2.5 G(iltin command \(see).2 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
--.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 624 Q F1(variable)2.79 E F0
-(may be assigned to by a statement of the form)2.68 E F1(name)144 640.8
-Q F0(=[)A F1(value)A F0(])A(If)108 657.6 Q F1(value)3.022 E F0 .232
+F(may be unset only by using the)108 652.8 Q F3(unset)2.5 E F0 -.2(bu)
+2.5 G(iltin command \(see).2 E F1(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
+-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 669.6 Q F2(variable)2.79 E F0
+(may be assigned to by a statement of the form)2.68 E F2(name)144 686.4
+Q F0(=[)A F2(value)A F0(])A(If)108 703.2 Q F2(value)3.022 E F0 .232
 (is not gi)2.912 F -.15(ve)-.25 G .232(n, the v).15 F .232
-(ariable is assigned the null string.)-.25 F(All)5.233 E F1(values)3.023
+(ariable is assigned the null string.)-.25 F(All)5.233 E F2(values)3.023
 E F0(under)3.003 E .233(go tilde e)-.18 F .233(xpansion, parameter)-.15
-F .515(and v)108 669.6 R .515(ariable e)-.25 F .515
+F .515(and v)108 715.2 R .515(ariable e)-.25 F .515
 (xpansion, command substitution, arithmetic e)-.15 F .515
 (xpansion, and quote remo)-.15 F -.25(va)-.15 G 3.015(l\().25 G(see)
--3.015 E F3(EXP)3.015 E(ANSION)-.666 E F0(belo)108 681.6 Q 2.698
-(w\). If)-.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F2
-(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F1(value)
+-3.015 E F1(EXP)3.015 E(ANSION)-.666 E F0(belo)108 727.2 Q 2.698
+(w\). If)-.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F3
+(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value)
 2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .199
 (luated as an arithmetic e).25 F .199(xpression e)-.15 F -.15(ve)-.25 G
-(n).15 E .902(if the $\(\(...\)\) e)108 693.6 R .902
-(xpansion is not used \(see)-.15 F F2 .901(Arithmetic Expansion)3.401 F
-F0(belo)3.401 E 3.401(w\). W)-.25 F .901
-(ord splitting is not performed,)-.8 F 1.178(with the e)108 705.6 R
-1.178(xception of)-.15 F F2("$@")3.678 E F0 1.178(as e)3.678 F 1.179
-(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F2 1.179(Special P)
-3.679 F(arameters)-.1 E F0 6.179(.P)C 1.179(athname e)-6.329 F 1.179
-(xpansion is not)-.15 F 3.649(performed. Assignment)108 717.6 R 1.149
-(statements may also appear as ar)3.649 F 1.148(guments to the)-.18 F F2
-(alias)3.648 E F0(,)A F2(declar)3.648 E(e)-.18 E F0(,)A F2(typeset)3.648
-E F0(,)A F2(export)3.648 E F0(,)A F2 -.18(re)108 729.6 S(adonly).18 E F0
-2.5(,a)C(nd)-2.5 E F2(local)2.5 E F0 -.2(bu)2.5 G(iltin commands.).2 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(7)202.89 E 0 Cg EP
+(n).15 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(7)204.835 E 0 Cg EP
 %%Page: 8 9
 %%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 .376(In the conte)108 84 R .376
+-.35 E .902(if the $\(\(...\)\) e)108 84 R .902
+(xpansion is not used \(see)-.15 F/F1 10/Times-Bold@0 SF .901
+(Arithmetic Expansion)3.401 F F0(belo)3.401 E 3.401(w\). W)-.25 F .901
+(ord splitting is not performed,)-.8 F 1.178(with the e)108 96 R 1.178
+(xception of)-.15 F F1("$@")3.678 E F0 1.178(as e)3.678 F 1.179
+(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.179(Special P)
+3.679 F(arameters)-.1 E F0 6.179(.P)C 1.179(athname e)-6.329 F 1.179
+(xpansion is not)-.15 F 3.649(performed. Assignment)108 108 R 1.149
+(statements may also appear as ar)3.649 F 1.148(guments to the)-.18 F F1
+(alias)3.648 E F0(,)A F1(declar)3.648 E(e)-.18 E F0(,)A F1(typeset)3.648
+E F0(,)A F1(export)3.648 E F0(,)A F1 -.18(re)108 120 S(adonly).18 E F0
+2.5(,a)C(nd)-2.5 E F1(local)2.5 E F0 -.2(bu)2.5 G(iltin commands.).2 E
+.376(In the conte)108 136.8 R .376
 (xt where an assignment statement is assigning a v)-.15 F .376
 (alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377
 (x, the +=)-.15 F .257
-(operator can be used to append to or add to the v)108 96 R(ariable')
+(operator can be used to append to or add to the v)108 148.8 R(ariable')
 -.25 E 2.757(sp)-.55 G(re)-2.757 E .257(vious v)-.25 F 2.757(alue. When)
 -.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .372
-(for which the inte)108 108 R .372(ger attrib)-.15 F .372
-(ute has been set,)-.2 F/F1 10/Times-Italic@0 SF(value)2.872 E F0 .372
+(for which the inte)108 160.8 R .372(ger attrib)-.15 F .372
+(ute has been set,)-.2 F/F2 10/Times-Italic@0 SF(value)2.872 E F0 .372
 (is e)2.872 F -.25(va)-.25 G .372(luated as an arithmetic e).25 F .373
-(xpression and added to the)-.15 F -.25(va)108 120 S(riable').25 E 2.889
-(sc)-.55 G .389(urrent v)-2.889 F .389(alue, which is also e)-.25 F -.25
-(va)-.25 G 2.889(luated. When).25 F .389(+= is applied to an array v)
-2.889 F .388(ariable using compound)-.25 F .185(assignment \(see)108 132
-R/F2 10/Times-Bold@0 SF(Arrays)2.685 E F0(belo)2.685 E .185(w\), the v)
--.25 F(ariable')-.25 E 2.685(sv)-.55 G .185
+(xpression and added to the)-.15 F -.25(va)108 172.8 S(riable').25 E
+2.889(sc)-.55 G .389(urrent v)-2.889 F .389(alue, which is also e)-.25 F
+-.25(va)-.25 G 2.889(luated. When).25 F .389
+(+= is applied to an array v)2.889 F .388(ariable using compound)-.25 F
+.185(assignment \(see)108 184.8 R F1(Arrays)2.685 E F0(belo)2.685 E .185
+(w\), the v)-.25 F(ariable')-.25 E 2.685(sv)-.55 G .185
 (alue is not unset \(as it is when using =\), and ne)-2.935 F 2.686(wv)
--.25 G .186(alues are)-2.936 F .32(appended to the array be)108 144 R
+-.25 G .186(alues are)-2.936 F .32(appended to the array be)108 196.8 R
 .32(ginning at one greater than the array')-.15 F 2.82(sm)-.55 G .32
 (aximum inde)-2.82 F 2.82(x. When)-.15 F .32(applied to a string-)2.82 F
--.25(va)108 156 S(lued v).25 E(ariable,)-.25 E F1(value)2.5 E F0(is e)
+-.25(va)108 208.8 S(lued v).25 E(ariable,)-.25 E F2(value)2.5 E F0(is e)
 2.5 E(xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G
-(alue.)-2.75 E F2 -.2(Po)87 172.8 S(sitional P).2 E(arameters)-.1 E F0
-(A)108 184.8 Q F1 .705(positional par)4.455 F(ameter)-.15 E F0 .706(is \
+(alue.)-2.75 E F1 -.2(Po)87 225.6 S(sitional P).2 E(arameters)-.1 E F0
+(A)108 237.6 Q F2 .705(positional par)4.455 F(ameter)-.15 E F0 .706(is \
 a parameter denoted by one or more digits, other than the single digit \
 0.)3.935 F(Posi-)5.706 E .445
-(tional parameters are assigned from the shell')108 196.8 R 2.944(sa)
+(tional parameters are assigned from the shell')108 249.6 R 2.944(sa)
 -.55 G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1
-(ke).2 G .444(d, and may be reassigned using).1 F(the)108 208.8 Q F2
+(ke).2 G .444(d, and may be reassigned using).1 F(the)108 261.6 Q F1
 (set)3.333 E F0 -.2(bu)3.333 G .833(iltin command.).2 F .834(Positional\
  parameters may not be assigned to with assignment statements.)5.833 F
 (The)5.834 E .334(positional parameters are temporarily replaced when a\
- shell function is e)108 220.8 R -.15(xe)-.15 G .333(cuted \(see).15 F
+ shell function is e)108 273.6 R -.15(xe)-.15 G .333(cuted \(see).15 F
 /F3 9/Times-Bold@0 SF(FUNCTIONS)2.833 E F0(belo)2.583 E(w\).)-.25 E
 1.403(When a positional parameter consisting of more than a single digi\
-t is e)108 237.6 R 1.404(xpanded, it must be enclosed in)-.15 F
-(braces \(see)108 249.6 Q F3(EXP)2.5 E(ANSION)-.666 E F0(belo)2.25 E
-(w\).)-.25 E F2(Special P)87 266.4 Q(arameters)-.1 E F0 1.675
-(The shell treats se)108 278.4 R -.15(ve)-.25 G 1.675
+t is e)108 290.4 R 1.404(xpanded, it must be enclosed in)-.15 F
+(braces \(see)108 302.4 Q F3(EXP)2.5 E(ANSION)-.666 E F0(belo)2.25 E
+(w\).)-.25 E F1(Special P)87 319.2 Q(arameters)-.1 E F0 1.675
+(The shell treats se)108 331.2 R -.15(ve)-.25 G 1.675
 (ral parameters specially).15 F 6.675(.T)-.65 G 1.674
 (hese parameters may only be referenced; assignment to)-6.675 F
-(them is not allo)108 290.4 Q(wed.)-.25 E F2(*)108 302.4 Q F0 .605
+(them is not allo)108 343.2 Q(wed.)-.25 E F1(*)108 355.2 Q F0 .605
 (Expands to the positional parameters, starting from one.)31 F .606
 (When the e)5.605 F .606(xpansion occurs within dou-)-.15 F .084
-(ble quotes, it e)144 314.4 R .084(xpands to a single w)-.15 F .084
+(ble quotes, it e)144 367.2 R .084(xpands to a single w)-.15 F .084
 (ord with the v)-.1 F .084
 (alue of each parameter separated by the \214rst char)-.25 F(-)-.2 E
-.003(acter of the)144 326.4 R F3(IFS)2.503 E F0 .003(special v)2.253 F
-2.503(ariable. That)-.25 F .003(is, ")2.503 F F2($*)A F0 2.503("i)C
-2.503(se)-2.503 G(qui)-2.503 E -.25(va)-.25 G .003(lent to ").25 F F2
-($1)A F1(c)A F2($2)A F1(c)A F2(...)A F0 .003(", where)B F1(c)2.703 E F0
-.004(is the \214rst char)2.813 F(-)-.2 E .769(acter of the v)144 338.4 R
+.003(acter of the)144 379.2 R F3(IFS)2.503 E F0 .003(special v)2.253 F
+2.503(ariable. That)-.25 F .003(is, ")2.503 F F1($*)A F0 2.503("i)C
+2.503(se)-2.503 G(qui)-2.503 E -.25(va)-.25 G .003(lent to ").25 F F1
+($1)A F2(c)A F1($2)A F2(c)A F1(...)A F0 .003(", where)B F2(c)2.703 E F0
+.004(is the \214rst char)2.813 F(-)-.2 E .769(acter of the v)144 391.2 R
 .769(alue of the)-.25 F F3(IFS)3.269 E F0 -.25(va)3.019 G 3.269
 (riable. If).25 F F3(IFS)3.268 E F0 .768
 (is unset, the parameters are separated by spaces.)3.018 F(If)5.768 E F3
-(IFS)144 350.4 Q F0(is null, the parameters are joined without interv)
-2.25 E(ening separators.)-.15 E F2(@)108 362.4 Q F0 .605
+(IFS)144 403.2 Q F0(is null, the parameters are joined without interv)
+2.25 E(ening separators.)-.15 E F1(@)108 415.2 Q F0 .605
 (Expands to the positional parameters, starting from one.)26.7 F .606
 (When the e)5.605 F .606(xpansion occurs within dou-)-.15 F .114
-(ble quotes, each parameter e)144 374.4 R .114(xpands to a separate w)
--.15 F 2.614(ord. That)-.1 F .113(is, ")2.613 F F2($@)A F0 2.613("i)C
-2.613(se)-2.613 G(qui)-2.613 E -.25(va)-.25 G .113(lent to ").25 F F2
-($1)A F0 2.613("")C F2($2)-2.613 E F0 2.613(".)C(..)-2.613 E .134
-(If the double-quoted e)144 386.4 R .134(xpansion occurs within a w)-.15
+(ble quotes, each parameter e)144 427.2 R .114(xpands to a separate w)
+-.15 F 2.614(ord. That)-.1 F .113(is, ")2.613 F F1($@)A F0 2.613("i)C
+2.613(se)-2.613 G(qui)-2.613 E -.25(va)-.25 G .113(lent to ").25 F F1
+($1)A F0 2.613("")C F1($2)-2.613 E F0 2.613(".)C(..)-2.613 E .134
+(If the double-quoted e)144 439.2 R .134(xpansion occurs within a w)-.15
 F .135(ord, the e)-.1 F .135
 (xpansion of the \214rst parameter is joined)-.15 F .151(with the be)144
-398.4 R .151(ginning part of the original w)-.15 F .151(ord, and the e)
+451.2 R .151(ginning part of the original w)-.15 F .151(ord, and the e)
 -.1 F .15(xpansion of the last parameter is joined with)-.15 F .337
-(the last part of the original w)144 410.4 R 2.837(ord. When)-.1 F .338
-(there are no positional parameters, ")2.837 F F2($@)A F0 2.838("a)C(nd)
--2.838 E F2($@)2.838 E F0 -.15(ex)2.838 G(pand).15 E
-(to nothing \(i.e., the)144 422.4 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15
-(ve)-.15 G(d\).).15 E F2(#)108 434.4 Q F0
-(Expands to the number of positional parameters in decimal.)31 E F2(?)
-108 446.4 Q F0(Expands to the status of the most recently e)31 E -.15
-(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F2<ad>108 458.4 Q F0
+(the last part of the original w)144 463.2 R 2.837(ord. When)-.1 F .338
+(there are no positional parameters, ")2.837 F F1($@)A F0 2.838("a)C(nd)
+-2.838 E F1($@)2.838 E F0 -.15(ex)2.838 G(pand).15 E
+(to nothing \(i.e., the)144 475.2 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15
+(ve)-.15 G(d\).).15 E F1(#)108 487.2 Q F0
+(Expands to the number of positional parameters in decimal.)31 E F1(?)
+108 499.2 Q F0(Expands to the status of the most recently e)31 E -.15
+(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F1<ad>108 511.2 Q F0
 .882(Expands to the current option \215ags as speci\214ed upon in)30.3 F
--.2(vo)-.4 G .881(cation, by the).2 F F2(set)3.381 E F0 -.2(bu)3.381 G
+-.2(vo)-.4 G .881(cation, by the).2 F F1(set)3.381 E F0 -.2(bu)3.381 G
 .881(iltin command, or).2 F(those set by the shell itself \(such as the)
-144 470.4 Q F2<ad69>2.5 E F0(option\).)2.5 E F2($)108 482.4 Q F0 .214
+144 523.2 Q F1<ad69>2.5 E F0(option\).)2.5 E F1($)108 535.2 Q F0 .214
 (Expands to the process ID of the shell.)31 F .214
 (In a \(\) subshell, it e)5.214 F .214
 (xpands to the process ID of the current)-.15 F
-(shell, not the subshell.)144 494.4 Q F2(!)108 506.4 Q F0
+(shell, not the subshell.)144 547.2 Q F1(!)108 559.2 Q F0
 (Expands to the process ID of the most recently e)32.67 E -.15(xe)-.15 G
-(cuted background \(asynchronous\) command.).15 E F2(0)108 518.4 Q F0
+(cuted background \(asynchronous\) command.).15 E F1(0)108 571.2 Q F0
 1.692(Expands to the name of the shell or shell script.)31 F 1.691
-(This is set at shell initialization.)6.692 F(If)6.691 E F2(bash)4.191 E
-F0(is)4.191 E(in)144 530.4 Q -.2(vo)-.4 G -.1(ke).2 G 3.077(dw).1 G .577
-(ith a \214le of commands,)-3.077 F F2($0)3.077 E F0 .578
-(is set to the name of that \214le.)3.077 F(If)5.578 E F2(bash)3.078 E
-F0 .578(is started with the)3.078 F F2<ad63>3.078 E F0 .369
-(option, then)144 542.4 R F2($0)2.869 E F0 .369
+(This is set at shell initialization.)6.692 F(If)6.691 E F1(bash)4.191 E
+F0(is)4.191 E(in)144 583.2 Q -.2(vo)-.4 G -.1(ke).2 G 3.077(dw).1 G .577
+(ith a \214le of commands,)-3.077 F F1($0)3.077 E F0 .578
+(is set to the name of that \214le.)3.077 F(If)5.578 E F1(bash)3.078 E
+F0 .578(is started with the)3.078 F F1<ad63>3.078 E F0 .369
+(option, then)144 595.2 R F1($0)2.869 E F0 .369
 (is set to the \214rst ar)2.869 F .369(gument after the string to be e)
 -.18 F -.15(xe)-.15 G .369(cuted, if one is present.).15 F(Other)5.368 E
-(-)-.2 E(wise, it is set to the \214le name used to in)144 554.4 Q -.2
-(vo)-.4 G -.1(ke).2 G F2(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25
+(-)-.2 E(wise, it is set to the \214le name used to in)144 607.2 Q -.2
+(vo)-.4 G -.1(ke).2 G F1(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25
 (iv e)-2.5 H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E
-F2(_)108 566.4 Q F0 .054
+F1(_)108 619.2 Q F0 .054
 (At shell startup, set to the absolute pathname used to in)31 F -.2(vo)
 -.4 G .255 -.1(ke t).2 H .055(he shell or shell script being e).1 F -.15
-(xe)-.15 G(cuted).15 E .692(as passed in the en)144 578.4 R .692
+(xe)-.15 G(cuted).15 E .692(as passed in the en)144 631.2 R .692
 (vironment or ar)-.4 F .691(gument list.)-.18 F(Subsequently)5.691 E
 3.191(,e)-.65 G .691(xpands to the last ar)-3.341 F .691(gument to the)
--.18 F(pre)144 590.4 Q .57(vious command, after e)-.25 F 3.07
+-.18 F(pre)144 643.2 Q .57(vious command, after e)-.25 F 3.07
 (xpansion. Also)-.15 F .571(set to the full pathname used to in)3.071 F
--.2(vo)-.4 G .771 -.1(ke e).2 H .571(ach command).1 F -.15(exe)144 602.4
+-.2(vo)-.4 G .771 -.1(ke e).2 H .571(ach command).1 F -.15(exe)144 655.2
 S 1.6(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
 (xported to that command.)-.15 F 1.6(When checking mail, this)6.6 F
 (parameter holds the name of the mail \214le currently being check)144
-614.4 Q(ed.)-.1 E F2(Shell V)87 631.2 Q(ariables)-.92 E F0(The follo)108
-643.2 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F2 -.3(BA)
-108 660 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E
--.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E F0(.)A
-F2 -.3(BA)108 672 S(SH_ARGC).3 E F0 1.039(An array v)144 684 R 1.039
-(ariable whose v)-.25 F 1.039
-(alues are the number of parameters in each frame of the current bash)
--.25 F -.15(exe)144 696 S .535(cution call stack.).15 F .535(The number\
- of parameters to the current subroutine \(shell function or script)
-5.535 F -.15(exe)144 708 S .141(cuted with).15 F F2(.)2.641 E F0(or)
-2.641 E F2(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)-2.641 G 2.641
-(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
-(When a subroutine is e)5.142 F -.15(xe)-.15 G .142
-(cuted, the number of).15 F 1.525(parameters passed is pushed onto)144
-720 R F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 6.524(.T)C 1.524(he shell sets)
--6.524 F F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 1.524(only when in)4.024 F
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(8)202.89 E 0 Cg EP
+667.2 Q(ed.)-.1 E F1(Shell V)87 684 Q(ariables)-.92 E F0(The follo)108
+696 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F1 -.3(BA)108
+712.8 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E -.2
+(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F1(bash)2.5 E F0(.)A
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(8)204.835 E 0 Cg EP
 %%Page: 9 10
 %%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 -.15(ex)144 84 S(tended deb).15 E
-(ugging mode \(see the description of the)-.2 E/F1 10/Times-Bold@0 SF
-(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)
-2.5 G(iltin belo).2 E(w\))-.25 E F1 -.3(BA)108 96 S(SH_ARGV).3 E F0
-1.091(An array v)144 108 R 1.091
-(ariable containing all of the parameters in the current bash e)-.25 F
--.15(xe)-.15 G 1.092(cution call stack.).15 F(The)6.092 E .275(\214nal \
-parameter of the last subroutine call is at the top of the stack; the \
-\214rst parameter of the initial)144 120 R 1.424(call is at the bottom.)
-144 132 R 1.424(When a subroutine is e)6.424 F -.15(xe)-.15 G 1.424
-(cuted, the parameters supplied are pushed onto).15 F F1 -.3(BA)144 144
-S(SH_ARGV).3 E F0 6.091(.T)C 1.091(he shell sets)-6.091 F F1 -.3(BA)
-3.591 G(SH_ARGV).3 E F0 1.091(only when in e)3.591 F 1.091(xtended deb)
--.15 F 1.09(ugging mode \(see the)-.2 F(description of the)144 156 Q F1
-(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)
-2.5 G(iltin belo).2 E(w\))-.25 E F1 -.3(BA)108 168 S(SH_COMMAND).3 E F0
-1.242(The command currently being e)144 180 R -.15(xe)-.15 G 1.243
-(cuted or about to be e).15 F -.15(xe)-.15 G 1.243
-(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a).15 F
+-.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_ARGC).3 E F0 1.039
+(An array v)144 96 R 1.039(ariable whose v)-.25 F 1.039
+(alues are the number of parameters in each frame of the current bash)
+-.25 F -.15(exe)144 108 S .535(cution call stack.).15 F .535(The number\
+ of parameters to the current subroutine \(shell function or script)
+5.535 F -.15(exe)144 120 S .141(cuted with).15 F F1(.)2.641 E F0(or)
+2.641 E F1(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)-2.641 G 2.641
+(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
+(When a subroutine is e)5.142 F -.15(xe)-.15 G .142
+(cuted, the number of).15 F 1.525(parameters passed is pushed onto)144
+132 R F1 -.3(BA)4.024 G(SH_ARGC).3 E F0 6.524(.T)C 1.524(he shell sets)
+-6.524 F F1 -.3(BA)4.024 G(SH_ARGC).3 E F0 1.524(only when in)4.024 F
+-.15(ex)144 144 S(tended deb).15 E
+(ugging mode \(see the description of the)-.2 E F1(extdeb)2.5 E(ug)-.2 E
+F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E
+(w\))-.25 E F1 -.3(BA)108 156 S(SH_ARGV).3 E F0 1.091(An array v)144 168
+R 1.091(ariable containing all of the parameters in the current bash e)
+-.25 F -.15(xe)-.15 G 1.092(cution call stack.).15 F(The)6.092 E .275(\
+\214nal parameter of the last subroutine call is at the top of the stac\
+k; the \214rst parameter of the initial)144 180 R 1.424
+(call is at the bottom.)144 192 R 1.424(When a subroutine is e)6.424 F
+-.15(xe)-.15 G 1.424(cuted, the parameters supplied are pushed onto).15
+F F1 -.3(BA)144 204 S(SH_ARGV).3 E F0 6.091(.T)C 1.091(he shell sets)
+-6.091 F F1 -.3(BA)3.591 G(SH_ARGV).3 E F0 1.091(only when in e)3.591 F
+1.091(xtended deb)-.15 F 1.09(ugging mode \(see the)-.2 F
+(description of the)144 216 Q F1(extdeb)2.5 E(ug)-.2 E F0(option to the)
+2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E(w\))-.25 E F1 -.3
+(BA)108 228 S(SH_COMMAND).3 E F0 1.242(The command currently being e)144
+240 R -.15(xe)-.15 G 1.243(cuted or about to be e).15 F -.15(xe)-.15 G
+1.243(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a)
+.15 F
 (command as the result of a trap, in which case it is the command e)144
-192 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
-204 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 216 Q
+252 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
+264 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 276 Q
 (gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E -.2(vo)-.4 G
-(cation option.).2 E F1 -.3(BA)108 228 S(SH_LINENO).3 E F0 .034
-(An array v)144 240 R .034(ariable whose members are the line numbers i\
-n source \214les corresponding to each mem-)-.25 F 2.944(ber of)144 252
+(cation option.).2 E F1 -.3(BA)108 288 S(SH_LINENO).3 E F0 .034
+(An array v)144 300 R .034(ariable whose members are the line numbers i\
+n source \214les corresponding to each mem-)-.25 F 2.944(ber of)144 312
 R F1(FUNCN)5.444 E(AME)-.2 E F0(.)A F1(${B)7.944 E(ASH_LINENO[)-.3 E/F2
 10/Times-Italic@0 SF($i)A F1(]})A F0 2.944
 (is the line number in the source \214le where)5.444 F F1(${FUNCN)144
-264 Q(AME[)-.2 E F2($ifP)A F1(]})A F2 12.109(was called.)14.609 F 12.109
+324 Q(AME[)-.2 E F2($ifP)A F1(]})A F2 12.109(was called.)14.609 F 12.109
 (The corr)17.109 F 12.109(esponding sour)-.37 F 12.108
-(ce \214le name is)-.37 F F1(${B)144 276 Q(ASH_SOURCE[)-.3 E F2($i)A F1
+(ce \214le name is)-.37 F F1(${B)144 336 Q(ASH_SOURCE[)-.3 E F2($i)A F1
 2.5(]}. Use)B(LINENO to obtain the curr)2.5 E(ent line number)-.18 E(.)
--1 E -.3(BA)108 288 S(SH_REMA).3 E(TCH)-.95 E F0 .005(An array v)144 300
+-1 E -.3(BA)108 348 S(SH_REMA).3 E(TCH)-.95 E F0 .005(An array v)144 360
 R .005(ariable whose members are assigned by the)-.25 F F1(=~)2.506 E F0
 .006(binary operator to the)2.506 F F1([[)2.506 E F0 .006
-(conditional com-)2.506 F 2.507(mand. The)144 312 R .007
+(conditional com-)2.506 F 2.507(mand. The)144 372 R .007
 (element with inde)2.507 F 2.507(x0i)-.15 G 2.507(st)-2.507 G .007
 (he portion of the string matching the entire re)-2.507 F .006(gular e)
--.15 F(xpression.)-.15 E .997(The element with inde)144 324 R(x)-.15 E
+-.15 F(xpression.)-.15 E .997(The element with inde)144 384 R(x)-.15 E
 F2(n)3.497 E F0 .997(is the portion of the string matching the)3.497 F
 F2(n)3.498 E F0 .998(th parenthesized sube)B(xpres-)-.15 E 2.5
-(sion. This)144 336 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
-F1 -.3(BA)108 348 S(SH_SOURCE).3 E F0 .89(An array v)144 360 R .889(ari\
+(sion. This)144 396 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
+F1 -.3(BA)108 408 S(SH_SOURCE).3 E F0 .89(An array v)144 420 R .889(ari\
 able whose members are the source \214lenames corresponding to the elem\
-ents in the)-.25 F F1(FUNCN)144 372 Q(AME)-.2 E F0(array v)2.5 E
-(ariable.)-.25 E F1 -.3(BA)108 384 S(SH_SUBSHELL).3 E F0 .401
-(Incremented by one each time a subshell or subshell en)144 396 R .401
+ents in the)-.25 F F1(FUNCN)144 432 Q(AME)-.2 E F0(array v)2.5 E
+(ariable.)-.25 E F1 -.3(BA)108 444 S(SH_SUBSHELL).3 E F0 .401
+(Incremented by one each time a subshell or subshell en)144 456 R .401
 (vironment is spa)-.4 F 2.902(wned. The)-.15 F .402(initial v)2.902 F
-.402(alue is)-.25 F(0.)144 408 Q F1 -.3(BA)108 420 S(SH_VERSINFO).3 E F0
-2.645(Ar)144 432 S .145(eadonly array v)-2.645 F .144
+.402(alue is)-.25 F(0.)144 468 Q F1 -.3(BA)108 480 S(SH_VERSINFO).3 E F0
+2.645(Ar)144 492 S .145(eadonly array v)-2.645 F .144
 (ariable whose members hold v)-.25 F .144
 (ersion information for this instance of)-.15 F F1(bash)2.644 E F0 5.144
-(.T)C(he)-5.144 E -.25(va)144 444 S
+(.T)C(he)-5.144 E -.25(va)144 504 S
 (lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3
-(BA)144 462 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E
+(BA)144 522 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E
 (ersion number \(the)-.15 E F2 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3
-(BA)144 474 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E
+(BA)144 534 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E
 (ersion number \(the)-.15 E F2(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA)
-144 486 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15
-(ve)-.25 G(l.).15 E F1 -.3(BA)144 498 S(SH_VERSINFO[).3 E F0(3)A F1(])A
-F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 510 S
+144 546 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15
+(ve)-.25 G(l.).15 E F1 -.3(BA)144 558 S(SH_VERSINFO[).3 E F0(3)A F1(])A
+F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 570 S
 (SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)24.74 E
-F2(beta1)2.5 E F0(\).)A F1 -.3(BA)144 522 S(SH_VERSINFO[).3 E F0(5)A F1
+F2(beta1)2.5 E F0(\).)A F1 -.3(BA)144 582 S(SH_VERSINFO[).3 E F0(5)A F1
 (])A F0(The v)24.74 E(alue of)-.25 E F1(MA)2.5 E(CHTYPE)-.55 E F0(.)A F1
--.3(BA)108 538.8 S(SH_VERSION).3 E F0
-(Expands to a string describing the v)144 550.8 Q
+-.3(BA)108 598.8 S(SH_VERSION).3 E F0
+(Expands to a string describing the v)144 610.8 Q
 (ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108
-567.6 Q(ORD)-.1 E F0 .396(An inde)144 579.6 R 2.896(xi)-.15 G(nto)-2.896
+627.6 Q(ORD)-.1 E F0 .396(An inde)144 639.6 R 2.896(xi)-.15 G(nto)-2.896
 E F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .396(of the w)2.896 F .396
 (ord containing the current cursor position.)-.1 F .397(This v)5.397 F
-(ari-)-.25 E 1.181(able is a)144 591.6 R -.25(va)-.2 G 1.181
+(ari-)-.25 E 1.181(able is a)144 651.6 R -.25(va)-.2 G 1.181
 (ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681
 (db).1 G 3.681(yt)-3.681 G 1.18(he programmable completion f)-3.681 F
-1.18(acilities \(see)-.1 F F1(Pr)144 603.6 Q(ogrammable Completion)-.18
-E F0(belo)2.5 E(w\).)-.25 E F1(COMP_LINE)108 620.4 Q F0 1.207
-(The current command line.)144 632.4 R 1.208(This v)6.208 F 1.208
+1.18(acilities \(see)-.1 F F1(Pr)144 663.6 Q(ogrammable Completion)-.18
+E F0(belo)2.5 E(w\).)-.25 E F1(COMP_LINE)108 680.4 Q F0 1.207
+(The current command line.)144 692.4 R 1.208(This v)6.208 F 1.208
 (ariable is a)-.25 F -.25(va)-.2 G 1.208
 (ilable only in shell functions and e).25 F 1.208(xternal com-)-.15 F
-2.849(mands in)144 644.4 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
+2.849(mands in)144 704.4 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
 (yt)-5.349 G 2.849(he programmable completion f)-5.349 F 2.849
 (acilities \(see)-.1 F F1(Pr)5.349 E 2.848(ogrammable Completion)-.18 F
-F0(belo)144 656.4 Q(w\).)-.25 E F1(COMP_POINT)108 673.2 Q F0 .666
-(The inde)144 685.2 R 3.166(xo)-.15 G 3.166(ft)-3.166 G .666
+F0(belo)144 716.4 Q(w\).)-.25 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)
+149.845 E(9)204.835 E 0 Cg EP
+%%Page: 10 11
+%%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(COMP_POINT)108 84 Q F0 .666(The inde)144 96
+R 3.166(xo)-.15 G 3.166(ft)-3.166 G .666
 (he current cursor position relati)-3.166 F .966 -.15(ve t)-.25 H 3.166
 (ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)-.15
 F .667(If the)5.667 F .535
 (current cursor position is at the end of the current command, the v)144
-697.2 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F1
-(${#COMP_LINE})144 709.2 Q F0 7.005(.T)C 2.005(his v)-7.005 F 2.005
+108 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F1
+(${#COMP_LINE})144 120 Q F0 7.005(.T)C 2.005(his v)-7.005 F 2.005
 (ariable is a)-.25 F -.25(va)-.2 G 2.006
 (ilable only in shell functions and e).25 F 2.006(xternal commands)-.15
-F(in)144 721.2 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+F(in)144 132 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
 (he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(9)202.89 E 0 Cg EP
-%%Page: 10 11
-%%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(COMP_W)108 84 Q(ORDBREAKS)-.1 E F0 1.284
-(The set of characters that the Readline library treats as w)144 96 R
+(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108
+148.8 Q(ORDBREAKS)-.1 E F0 1.284
+(The set of characters that the Readline library treats as w)144 160.8 R
 1.283(ord separators when performing w)-.1 F(ord)-.1 E 3.125
-(completion. If)144 108 R/F2 9/Times-Bold@0 SF(COMP_W)3.125 E(ORDBREAKS)
--.09 E F0 .626(is unset, it loses its special properties, e)2.875 F -.15
-(ve)-.25 G 3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)
--3.126 G(ubse-)-3.126 E(quently reset.)144 120 Q F1(COMP_W)108 136.8 Q
-(ORDS)-.1 E F0 .654(An array v)144 148.8 R .654(ariable \(see)-.25 F F1
-(Arrays)3.154 E F0(belo)3.154 E .654(w\) consisting of the indi)-.25 F
-.653(vidual w)-.25 F .653(ords in the current command)-.1 F 3.477
-(line. This)144 160.8 R -.25(va)3.477 G .977(riable is a).25 F -.25(va)
--.2 G .978(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke)
-.2 G 3.478(db).1 G 3.478(yt)-3.478 G .978(he programmable completion)
--3.478 F -.1(fa)144 172.8 S(cilities \(see).1 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(DIRST)108
-189.6 Q -.55(AC)-.9 G(K).55 E F0 2.26(An array v)144 201.6 R 2.26
-(ariable \(see)-.25 F F1(Arrays)4.76 E F0(belo)4.76 E 2.26
+(completion. If)144 172.8 R/F2 9/Times-Bold@0 SF(COMP_W)3.125 E
+(ORDBREAKS)-.09 E F0 .626(is unset, it loses its special properties, e)
+2.875 F -.15(ve)-.25 G 3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126
+G 3.126(ss)-3.126 G(ubse-)-3.126 E(quently reset.)144 184.8 Q F1(COMP_W)
+108 201.6 Q(ORDS)-.1 E F0 .654(An array v)144 213.6 R .654
+(ariable \(see)-.25 F F1(Arrays)3.154 E F0(belo)3.154 E .654
+(w\) consisting of the indi)-.25 F .653(vidual w)-.25 F .653
+(ords in the current command)-.1 F 3.477(line. This)144 225.6 R -.25(va)
+3.477 G .977(riable is a).25 F -.25(va)-.2 G .978
+(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.478
+(db).1 G 3.478(yt)-3.478 G .978(he programmable completion)-3.478 F -.1
+(fa)144 237.6 S(cilities \(see).1 E F1(Pr)2.5 E(ogrammable Completion)
+-.18 E F0(belo)2.5 E(w\).)-.25 E F1(DIRST)108 254.4 Q -.55(AC)-.9 G(K)
+.55 E F0 2.26(An array v)144 266.4 R 2.26(ariable \(see)-.25 F F1
+(Arrays)4.76 E F0(belo)4.76 E 2.26
 (w\) containing the current contents of the directory stack.)-.25 F
-1.094(Directories appear in the stack in the order the)144 213.6 R 3.594
+1.094(Directories appear in the stack in the order the)144 278.4 R 3.594
 (ya)-.15 G 1.095(re displayed by the)-3.594 F F1(dirs)3.595 E F0 -.2(bu)
 3.595 G 3.595(iltin. Assigning).2 F(to)3.595 E 1.432
-(members of this array v)144 225.6 R 1.432
+(members of this array v)144 290.4 R 1.432
 (ariable may be used to modify directories already in the stack, b)-.25
-F 1.431(ut the)-.2 F F1(pushd)144 237.6 Q F0(and)2.746 E F1(popd)2.746 E
+F 1.431(ut the)-.2 F F1(pushd)144 302.4 Q F0(and)2.746 E F1(popd)2.746 E
 F0 -.2(bu)2.746 G .246(iltins must be used to add and remo).2 F .546
 -.15(ve d)-.15 H 2.746(irectories. Assignment).15 F .246(to this v)2.746
-F(ariable)-.25 E .351(will not change the current directory)144 249.6 R
+F(ariable)-.25 E .351(will not change the current directory)144 314.4 R
 5.35(.I)-.65 G(f)-5.35 E F2(DIRST)2.85 E -.495(AC)-.81 G(K).495 E F0 .35
 (is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.85
-(ni).15 G(f)-2.85 E(it is subsequently reset.)144 261.6 Q F1(EUID)108
-278.4 Q F0 1.103(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)
+(ni).15 G(f)-2.85 E(it is subsequently reset.)144 326.4 Q F1(EUID)108
+343.2 Q F0 1.103(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)
 -.25 H 1.103(ser ID of the current user).15 F 3.603(,i)-.4 G 1.103
 (nitialized at shell startup.)-3.603 F 1.104(This v)6.103 F 1.104
-(ariable is)-.25 F(readonly)144 290.4 Q(.)-.65 E F1(FUNCN)108 307.2 Q
-(AME)-.2 E F0 .479(An array v)144 319.2 R .479
+(ariable is)-.25 F(readonly)144 355.2 Q(.)-.65 E F1(FUNCN)108 372 Q(AME)
+-.2 E F0 .479(An array v)144 384 R .479
 (ariable containing the names of all shell functions currently in the e)
 -.25 F -.15(xe)-.15 G .478(cution call stack.).15 F .276
-(The element with inde)144 331.2 R 2.776(x0i)-.15 G 2.776(st)-2.776 G
-.276(he name of an)-2.776 F 2.777(yc)-.15 G(urrently-e)-2.777 E -.15(xe)
--.15 G .277(cuting shell function.).15 F .277(The bottom-most)5.277 F
-.81(element is "main".)144 343.2 R .81(This v)5.81 F .81(ariable e)-.25
-F .81(xists only when a shell function is e)-.15 F -.15(xe)-.15 G 3.31
-(cuting. Assignments).15 F(to)3.31 E F2(FUNCN)144 355.2 Q(AME)-.18 E F0
+(The element with inde)144 396 R 2.776(x0i)-.15 G 2.776(st)-2.776 G .276
+(he name of an)-2.776 F 2.777(yc)-.15 G(urrently-e)-2.777 E -.15(xe)-.15
+G .277(cuting shell function.).15 F .277(The bottom-most)5.277 F .81
+(element is "main".)144 408 R .81(This v)5.81 F .81(ariable e)-.25 F .81
+(xists only when a shell function is e)-.15 F -.15(xe)-.15 G 3.31
+(cuting. Assignments).15 F(to)3.31 E F2(FUNCN)144 420 Q(AME)-.18 E F0
 (ha)2.634 E .684 -.15(ve n)-.2 H 2.884(oe).15 G -.25(ff)-2.884 G .384
 (ect and return an error status.).25 F(If)5.385 E F2(FUNCN)2.885 E(AME)
 -.18 E F0 .385(is unset, it loses its special)2.635 F(properties, e)144
-367.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)
--2.5 G(ubsequently reset.)-2.5 E F1(GR)108 384 Q(OUPS)-.3 E F0 1.229
-(An array v)144 396 R 1.228(ariable containing the list of groups of wh\
-ich the current user is a member)-.25 F 6.228(.A)-.55 G(ssign-)-6.228 E
-.596(ments to)144 408 R F2(GR)3.096 E(OUPS)-.27 E F0(ha)2.847 E .897
+432 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)
+-2.5 G(ubsequently reset.)-2.5 E F1(GR)108 448.8 Q(OUPS)-.3 E F0 1.229
+(An array v)144 460.8 R 1.228(ariable containing the list of groups of \
+which the current user is a member)-.25 F 6.228(.A)-.55 G(ssign-)-6.228
+E .596(ments to)144 472.8 R F2(GR)3.096 E(OUPS)-.27 E F0(ha)2.847 E .897
 -.15(ve n)-.2 H 3.097(oe).15 G -.25(ff)-3.097 G .597
 (ect and return an error status.).25 F(If)5.597 E F2(GR)3.097 E(OUPS)
 -.27 E F0 .597(is unset, it loses its spe-)2.847 F(cial properties, e)
-144 420 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5
-(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 436.8 Q F0 .356
-(The history number)144 448.8 R 2.856(,o)-.4 G 2.856(ri)-2.856 G(nde)
+144 484.8 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5
+(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 501.6 Q F0 .356
+(The history number)144 513.6 R 2.856(,o)-.4 G 2.856(ri)-2.856 G(nde)
 -2.856 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356
 (he history list, of the current command.)-2.856 F(If)5.356 E F2
 (HISTCMD)2.855 E F0 .355(is unset, it)2.605 F
-(loses its special properties, e)144 460.8 Q -.15(ve)-.25 G 2.5(ni).15 G
+(loses its special properties, e)144 525.6 Q -.15(ve)-.25 G 2.5(ni).15 G
 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1
-(HOSTN)108 477.6 Q(AME)-.2 E F0
-(Automatically set to the name of the current host.)144 489.6 Q F1
-(HOSTTYPE)108 506.4 Q F0 .222(Automatically set to a string that unique\
-ly describes the type of machine on which)144 518.4 R F1(bash)2.723 E F0
-.223(is e)2.723 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 530.4 R
-(def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 547.2 Q F0
-1.408(Each time this parameter is referenced, the shell substitutes a d\
-ecimal number representing the)144 559.2 R .078(current sequential line\
- number \(starting with 1\) within a script or function.)144 571.2 R
-.079(When not in a script or)5.078 F .307(function, the v)144 583.2 R
-.307(alue substituted is not guaranteed to be meaningful.)-.25 F(If)
-5.306 E F2(LINENO)2.806 E F0 .306(is unset, it loses its)2.556 F
-(special properties, e)144 595.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)
--2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108
-612 Q(CHTYPE)-.55 E F0 .898(Automatically set to a string that fully de\
-scribes the system type on which)144 624 R F1(bash)3.398 E F0 .899(is e)
-3.398 F -.15(xe)-.15 G .899(cuting, in).15 F(the standard GNU)144 636 Q
-/F3 10/Times-Italic@0 SF(cpu-company-system)2.5 E F0 2.5(format. The)2.5
-F(def)2.5 E(ault is system-dependent.)-.1 E F1(OLDPWD)108 652.8 Q F0
-(The pre)144 664.8 Q(vious w)-.25 E(orking directory as set by the)-.1 E
-F1(cd)2.5 E F0(command.)2.5 E F1(OPT)108 681.6 Q(ARG)-.9 E F0 1.627
-(The v)144 693.6 R 1.627(alue of the last option ar)-.25 F 1.627
-(gument processed by the)-.18 F F1(getopts)4.127 E F0 -.2(bu)4.127 G
-1.626(iltin command \(see).2 F F2(SHELL)4.126 E -.09(BU)144 705.6 S(IL)
-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(10)197.89 E 0 Cg EP
+(HOSTN)108 542.4 Q(AME)-.2 E F0
+(Automatically set to the name of the current host.)144 554.4 Q F1
+(HOSTTYPE)108 571.2 Q F0 .222(Automatically set to a string that unique\
+ly describes the type of machine on which)144 583.2 R F1(bash)2.723 E F0
+.223(is e)2.723 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 595.2 R
+(def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 612 Q F0 1.408
+(Each time this parameter is referenced, the shell substitutes a decima\
+l number representing the)144 624 R .078(current sequential line number\
+ \(starting with 1\) within a script or function.)144 636 R .079
+(When not in a script or)5.078 F .307(function, the v)144 648 R .307
+(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.306 E
+F2(LINENO)2.806 E F0 .306(is unset, it loses its)2.556 F
+(special properties, e)144 660 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
+G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108 676.8
+Q(CHTYPE)-.55 E F0 .898(Automatically set to a string that fully descri\
+bes the system type on which)144 688.8 R F1(bash)3.398 E F0 .899(is e)
+3.398 F -.15(xe)-.15 G .899(cuting, in).15 F(the standard GNU)144 700.8
+Q/F3 10/Times-Italic@0 SF(cpu-company-system)2.5 E F0 2.5(format. The)
+2.5 F(def)2.5 E(ault is system-dependent.)-.1 E(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(10)199.835 E 0 Cg EP
 %%Page: 11 12
 %%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(OPTIND)108 84 Q F0 1.651(The inde)144 96 R
-4.151(xo)-.15 G 4.151(ft)-4.151 G 1.651(he ne)-4.151 F 1.651(xt ar)-.15
-F 1.652(gument to be processed by the)-.18 F F1(getopts)4.152 E F0 -.2
-(bu)4.152 G 1.652(iltin command \(see).2 F/F2 9/Times-Bold@0 SF(SHELL)
-4.152 E -.09(BU)144 108 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E
-(w\).)-.25 E F1(OSTYPE)108 124.8 Q F0 .329(Automatically set to a strin\
-g that describes the operating system on which)144 136.8 R F1(bash)2.829
-E F0 .329(is e)2.829 F -.15(xe)-.15 G 2.829(cuting. The).15 F(def)144
-148.8 Q(ault is system-dependent.)-.1 E F1(PIPEST)108 165.6 Q -.95(AT)
--.9 G(US).95 E F0 .61(An array v)144 177.6 R .61(ariable \(see)-.25 F F1
-(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61
-(xit status v)-.15 F .61(alues from the processes in)-.25 F
-(the most-recently-e)144 189.6 Q -.15(xe)-.15 G(cuted fore).15 E
+-.35 E/F1 10/Times-Bold@0 SF(OLDPWD)108 84 Q F0(The pre)144 96 Q
+(vious w)-.25 E(orking directory as set by the)-.1 E F1(cd)2.5 E F0
+(command.)2.5 E F1(OPT)108 112.8 Q(ARG)-.9 E F0 1.627(The v)144 124.8 R
+1.627(alue of the last option ar)-.25 F 1.627(gument processed by the)
+-.18 F F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.626(iltin command \(see).2
+F/F2 9/Times-Bold@0 SF(SHELL)4.126 E -.09(BU)144 136.8 S(IL).09 E
+(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OPTIND)108 153.6 Q
+F0 1.651(The inde)144 165.6 R 4.151(xo)-.15 G 4.151(ft)-4.151 G 1.651
+(he ne)-4.151 F 1.651(xt ar)-.15 F 1.652(gument to be processed by the)
+-.18 F F1(getopts)4.152 E F0 -.2(bu)4.152 G 1.652(iltin command \(see).2
+F F2(SHELL)4.152 E -.09(BU)144 177.6 S(IL).09 E(TIN COMMANDS)-.828 E F0
+(belo)2.25 E(w\).)-.25 E F1(OSTYPE)108 194.4 Q F0 .329(Automatically se\
+t to a string that describes the operating system on which)144 206.4 R
+F1(bash)2.829 E F0 .329(is e)2.829 F -.15(xe)-.15 G 2.829(cuting. The)
+.15 F(def)144 218.4 Q(ault is system-dependent.)-.1 E F1(PIPEST)108
+235.2 Q -.95(AT)-.9 G(US).95 E F0 .61(An array v)144 247.2 R .61
+(ariable \(see)-.25 F F1(Arrays)3.11 E F0(belo)3.11 E .61
+(w\) containing a list of e)-.25 F .61(xit status v)-.15 F .61
+(alues from the processes in)-.25 F(the most-recently-e)144 259.2 Q -.15
+(xe)-.15 G(cuted fore).15 E
 (ground pipeline \(which may contain only a single command\).)-.15 E F1
-(PPID)108 206.4 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G
+(PPID)108 276 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G
 2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E
-F1(PWD)108 223.2 Q F0(The current w)12.67 E
+F1(PWD)108 292.8 Q F0(The current w)12.67 E
 (orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
-(RANDOM)108 240 Q F0 .566
-(Each time this parameter is referenced, a random inte)144 252 R .565
+(RANDOM)108 309.6 Q F0 .566
+(Each time this parameter is referenced, a random inte)144 321.6 R .565
 (ger between 0 and 32767 is generated.)-.15 F(The)5.565 E .01
-(sequence of random numbers may be initialized by assigning a v)144 264
-R .01(alue to)-.25 F F2(RANDOM)2.51 E/F3 9/Times-Roman@0 SF(.)A F0(If)
-4.51 E F2(RANDOM)2.51 E F0(is)2.26 E
-(unset, it loses its special properties, e)144 276 Q -.15(ve)-.25 G 2.5
-(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F1(REPL)108 292.8 Q(Y)-.92 E F0
-(Set to the line of input read by the)144 304.8 Q F1 -.18(re)2.5 G(ad)
+(sequence of random numbers may be initialized by assigning a v)144
+333.6 R .01(alue to)-.25 F F2(RANDOM)2.51 E/F3 9/Times-Roman@0 SF(.)A F0
+(If)4.51 E F2(RANDOM)2.51 E F0(is)2.26 E
+(unset, it loses its special properties, e)144 345.6 Q -.15(ve)-.25 G
+2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
+(ubsequently reset.)-2.5 E F1(REPL)108 362.4 Q(Y)-.92 E F0
+(Set to the line of input read by the)144 374.4 Q F1 -.18(re)2.5 G(ad)
 .18 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E
-(guments are supplied.)-.18 E F1(SECONDS)108 321.6 Q F0 .795(Each time \
+(guments are supplied.)-.18 E F1(SECONDS)108 391.2 Q F0 .795(Each time \
 this parameter is referenced, the number of seconds since shell in)144
-333.6 R -.2(vo)-.4 G .795(cation is returned.).2 F .712(If a v)144 345.6
+403.2 R -.2(vo)-.4 G .795(cation is returned.).2 F .712(If a v)144 415.2
 R .712(alue is assigned to)-.25 F F2(SECONDS)3.212 E F3(,)A F0 .712
 (the v)2.962 F .712
 (alue returned upon subsequent references is the number)-.25 F .408
-(of seconds since the assignment plus the v)144 357.6 R .408
+(of seconds since the assignment plus the v)144 427.2 R .408
 (alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .407
-(is unset, it loses its special)2.658 F(properties, e)144 369.6 Q -.15
+(is unset, it loses its special)2.658 F(properties, e)144 439.2 Q -.15
 (ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 386.4 Q F0 3.262(Ac)144
-398.4 S .763(olon-separated list of enabled shell options.)-3.262 F .763
-(Each w)5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F
-.763(gument for the)-.18 F F1<ad6f>144 410.4 Q F0 1.174(option to the)
-3.674 F F1(set)3.674 E F0 -.2(bu)3.674 G 1.174(iltin command \(see).2 F
-F2 1.173(SHELL B)3.673 F(UIL)-.09 E 1.173(TIN COMMANDS)-.828 F F0(belo)
-3.423 E 3.673(w\). The)-.25 F(options)3.673 E .019(appearing in)144
-422.4 R F2(SHELLOPTS)2.519 E F0 .019(are those reported as)2.269 F/F4 10
+(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 456 Q F0 3.262(Ac)144 468 S
+.763(olon-separated list of enabled shell options.)-3.262 F .763(Each w)
+5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F .763
+(gument for the)-.18 F F1<ad6f>144 480 Q F0 1.174(option to the)3.674 F
+F1(set)3.674 E F0 -.2(bu)3.674 G 1.174(iltin command \(see).2 F F2 1.173
+(SHELL B)3.673 F(UIL)-.09 E 1.173(TIN COMMANDS)-.828 F F0(belo)3.423 E
+3.673(w\). The)-.25 F(options)3.673 E .019(appearing in)144 492 R F2
+(SHELLOPTS)2.519 E F0 .019(are those reported as)2.269 F/F4 10
 /Times-Italic@0 SF(on)2.749 E F0(by)2.759 E F1 .019(set \255o)2.519 F F0
 5.019(.I)C 2.519(ft)-5.019 G .019(his v)-2.519 F .02
-(ariable is in the en)-.25 F(vironment)-.4 E(when)144 434.4 Q F1(bash)
+(ariable is in the en)-.25 F(vironment)-.4 E(when)144 504 Q F1(bash)
 3.142 E F0 .642(starts up, each shell option in the list will be enable\
 d before reading an)3.142 F 3.141(ys)-.15 G .641(tartup \214les.)-3.141
-F(This v)144 446.4 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108
-463.2 Q(VL)-.92 E F0(Incremented by one each time an instance of)144
-475.2 Q F1(bash)2.5 E F0(is started.)2.5 E F1(UID)108 492 Q F0
+F(This v)144 516 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 532.8
+Q(VL)-.92 E F0(Incremented by one each time an instance of)144 544.8 Q
+F1(bash)2.5 E F0(is started.)2.5 E F1(UID)108 561.6 Q F0
 (Expands to the user ID of the current user)17.67 E 2.5(,i)-.4 G
 (nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25
-E(.)-.65 E .993(The follo)108 508.8 R .993(wing v)-.25 F .994
+E(.)-.65 E .993(The follo)108 578.4 R .993(wing v)-.25 F .994
 (ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1
 (bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994
-(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 520.8
-Q -.65(w.)-.25 G F1 -.3(BA)108 537.6 S(SH_ENV).3 E F0 .506
-(If this parameter is set when)144 549.6 R F1(bash)3.006 E F0 .506(is e)
+(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 590.4
+Q -.65(w.)-.25 G F1 -.3(BA)108 607.2 S(SH_ENV).3 E F0 .506
+(If this parameter is set when)144 619.2 R F1(bash)3.006 E F0 .506(is e)
 3.006 F -.15(xe)-.15 G .505(cuting a shell script, its v).15 F .505
 (alue is interpreted as a \214lename)-.25 F .354
-(containing commands to initialize the shell, as in)144 561.6 R F4
+(containing commands to initialize the shell, as in)144 631.2 R F4
 (~/.bashr)2.855 E(c)-.37 E F0 5.355(.T).31 G .355(he v)-5.355 F .355
 (alue of)-.25 F F2 -.27(BA)2.855 G(SH_ENV).27 E F0 .355(is subjected)
-2.605 F .525(to parameter e)144 573.6 R .525
+2.605 F .525(to parameter e)144 643.2 R .525
 (xpansion, command substitution, and arithmetic e)-.15 F .525
-(xpansion before being interpreted)-.15 F(as a \214le name.)144 585.6 Q
+(xpansion before being interpreted)-.15 F(as a \214le name.)144 655.2 Q
 F2 -.666(PA)5 G(TH)-.189 E F0
 (is not used to search for the resultant \214le name.)2.25 E F1(CDP)108
-597.6 Q -.95(AT)-.74 G(H).95 E F0 1.247(The search path for the)144
-609.6 R F1(cd)3.747 E F0 3.747(command. This)3.747 F 1.248
+667.2 Q -.95(AT)-.74 G(H).95 E F0 1.247(The search path for the)144
+679.2 R F1(cd)3.747 E F0 3.747(command. This)3.747 F 1.248
 (is a colon-separated list of directories in which the)3.747 F 3.796
-(shell looks for destination directories speci\214ed by the)144 621.6 R
+(shell looks for destination directories speci\214ed by the)144 691.2 R
 F1(cd)6.295 E F0 6.295(command. A)6.295 F 3.795(sample v)6.295 F 3.795
-(alue is)-.25 F/F5 10/Courier@0 SF(".:~:/usr")144 633.6 Q F0(.)A F1
-(COLUMNS)108 645.6 Q F0 .425(Used by the)144 657.6 R F1(select)2.925 E
-F0 -.2(bu)2.925 G .425(iltin command to determine the terminal width wh\
-en printing selection lists.).2 F
-(Automatically set upon receipt of a SIGWINCH.)144 669.6 Q F1(COMPREPL)
-108 681.6 Q(Y)-.92 E F0 .848(An array v)144 693.6 R .848
-(ariable from which)-.25 F F1(bash)3.348 E F0 .848
-(reads the possible completions generated by a shell function)3.348 F
-(in)144 705.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
-(he programmable completion f)-2.5 E(acility \(see)-.1 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(11)197.89 E 0 Cg EP
+(alue is)-.25 F/F5 10/Courier@0 SF(".:~:/usr")144 703.2 Q F0(.)A
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(11)199.835 E 0 Cg EP
 %%Page: 12 13
 %%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(EMA)108 84 Q(CS)-.55 E F0(If)144 96 Q F1
-(bash)2.535 E F0 .035(\214nds this v)2.535 F .035(ariable in the en)-.25
-F .036(vironment when the shell starts with v)-.4 F(alue)-.25 E/F2 10
+-.35 E/F1 10/Times-Bold@0 SF(COLUMNS)108 84 Q F0 .425(Used by the)144 96
+R F1(select)2.925 E F0 -.2(bu)2.925 G .425(iltin command to determine t\
+he terminal width when printing selection lists.).2 F
+(Automatically set upon receipt of a SIGWINCH.)144 108 Q F1(COMPREPL)108
+120 Q(Y)-.92 E F0 .848(An array v)144 132 R .848(ariable from which)-.25
+F F1(bash)3.348 E F0 .848
+(reads the possible completions generated by a shell function)3.348 F
+(in)144 144 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+(he programmable completion f)-2.5 E(acility \(see)-.1 E F1(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(EMA)108 156 Q
+(CS)-.55 E F0(If)144 168 Q F1(bash)2.535 E F0 .035(\214nds this v)2.535
+F .035(ariable in the en)-.25 F .036
+(vironment when the shell starts with v)-.4 F(alue)-.25 E/F2 10
 /Courier@0 SF(t)2.536 E F0 2.536(,i)C 2.536(ta)-2.536 G .036
-(ssumes that the)-2.536 F(shell is running in an emacs shell b)144 108 Q
-(uf)-.2 E(fer and disables line editing.)-.25 E F1(FCEDIT)108 120 Q F0
-(The def)144 132 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G
-(iltin command.).2 E F1(FIGNORE)108 144 Q F0 2.599(Ac)144 156 S .098
+(ssumes that the)-2.536 F(shell is running in an emacs shell b)144 180 Q
+(uf)-.2 E(fer and disables line editing.)-.25 E F1(FCEDIT)108 192 Q F0
+(The def)144 204 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G
+(iltin command.).2 E F1(FIGNORE)108 216 Q F0 2.599(Ac)144 228 S .098
 (olon-separated list of suf)-2.599 F<8c78>-.25 E .098
 (es to ignore when performing \214lename completion \(see)-.15 F/F3 9
-/Times-Bold@0 SF(READLINE)2.598 E F0(belo)144 168 Q 2.704(w\). A)-.25 F
+/Times-Bold@0 SF(READLINE)2.598 E F0(belo)144 240 Q 2.704(w\). A)-.25 F
 .204(\214lename whose suf)2.704 F .205
 (\214x matches one of the entries in)-.25 F F3(FIGNORE)2.705 E F0 .205
 (is e)2.455 F .205(xcluded from the list)-.15 F(of matched \214lenames.)
-144 180 Q 2.5(As)5 G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.)
-A F1(GLOBIGNORE)108 192 Q F0 3.118(Ac)144 204 S .618(olon-separated lis\
+144 252 Q 2.5(As)5 G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.)
+A F1(GLOBIGNORE)108 264 Q F0 3.118(Ac)144 276 S .618(olon-separated lis\
 t of patterns de\214ning the set of \214lenames to be ignored by pathna\
-me e)-3.118 F(xpan-)-.15 E 3.131(sion. If)144 216 R 3.132<618c>3.131 G
+me e)-3.118 F(xpan-)-.15 E 3.131(sion. If)144 288 R 3.132<618c>3.131 G
 .632(lename matched by a pathname e)-3.132 F .632
 (xpansion pattern also matches one of the patterns in)-.15 F F3
-(GLOBIGNORE)144 228 Q/F4 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E
+(GLOBIGNORE)144 300 Q/F4 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E
 -.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.)-2.5 E F1
-(HISTCONTR)108 240 Q(OL)-.3 E F0 2.654(Ac)144 252 S .153
+(HISTCONTR)108 312 Q(OL)-.3 E F0 2.654(Ac)144 324 S .153
 (olon-separated list of v)-2.654 F .153(alues controlling ho)-.25 F
 2.653(wc)-.25 G .153(ommands are sa)-2.653 F -.15(ve)-.2 G 2.653(do).15
 G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .153(If the list)
-5.153 F .49(of v)144 264 R .49(alues includes)-.25 F/F5 10
+5.153 F .49(of v)144 336 R .49(alues includes)-.25 F/F5 10
 /Times-Italic@0 SF(ignor)2.99 E(espace)-.37 E F0 2.99(,l).18 G .49
 (ines which be)-2.99 F .491(gin with a)-.15 F F1(space)2.991 E F0 .491
 (character are not sa)2.991 F -.15(ve)-.2 G 2.991(di).15 G 2.991(nt)
--2.991 G .491(he his-)-2.991 F .558(tory list.)144 276 R 3.058(Av)5.558
+-2.991 G .491(he his-)-2.991 F .558(tory list.)144 348 R 3.058(Av)5.558
 G .558(alue of)-3.308 F F5(ignor)3.068 E(edups)-.37 E F0 .558
 (causes lines matching the pre)3.328 F .557
 (vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.958
-(Av)144 288 S .458(alue of)-3.208 F F5(ignor)2.968 E(eboth)-.37 E F0
+(Av)144 360 S .458(alue of)-3.208 F F5(ignor)2.968 E(eboth)-.37 E F0
 .458(is shorthand for)3.238 F F5(ignor)2.959 E(espace)-.37 E F0(and)
 2.959 E F5(ignor)2.959 E(edups)-.37 E F0 5.459(.A)C -.25(va)-2.5 G .459
 (lue of).25 F F5(er)2.959 E(asedups)-.15 E F0(causes)2.959 E .699
-(all pre)144 300 R .698
+(all pre)144 372 R .698
 (vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
 3.198(df).15 G .698(rom the history list before that line is)-3.198 F
-(sa)144 312 Q -.15(ve)-.2 G 4.296(d. An).15 F 4.296(yv)-.15 G 1.797
+(sa)144 384 Q -.15(ve)-.2 G 4.296(d. An).15 F 4.296(yv)-.15 G 1.797
 (alue not in the abo)-4.546 F 2.097 -.15(ve l)-.15 H 1.797
 (ist is ignored.).15 F(If)6.797 E F1(HISTCONTR)4.297 E(OL)-.3 E F0 1.797
-(is unset, or does not)4.297 F .613(include a v)144 324 R .612(alid v)
+(is unset, or does not)4.297 F .613(include a v)144 396 R .612(alid v)
 -.25 F .612(alue, all lines read by the shell parser are sa)-.25 F -.15
 (ve)-.2 G 3.112(do).15 G 3.112(nt)-3.112 G .612
-(he history list, subject to the)-3.112 F -.25(va)144 336 S .985(lue of)
+(he history list, subject to the)-3.112 F -.25(va)144 408 S .985(lue of)
 .25 F F1(HISTIGNORE)3.485 E F0 5.986(.T)C .986
 (he second and subsequent lines of a multi-line compound command)-5.986
-F(are not tested, and are added to the history re)144 348 Q -.05(ga)-.15
+F(are not tested, and are added to the history re)144 420 Q -.05(ga)-.15
 G(rdless of the v).05 E(alue of)-.25 E F1(HISTCONTR)2.5 E(OL)-.3 E F0(.)
-A F1(HISTFILE)108 360 Q F0 .181
-(The name of the \214le in which command history is sa)144 372 R -.15
+A F1(HISTFILE)108 432 Q F0 .181
+(The name of the \214le in which command history is sa)144 444 R -.15
 (ve)-.2 G 2.681(d\().15 G(see)-2.681 E F3(HIST)2.681 E(OR)-.162 E(Y)
 -.315 E F0(belo)2.431 E 2.681(w\). The)-.25 F(def)2.681 E .181(ault v)
--.1 F(alue)-.25 E(is)144 384 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5
+-.1 F(alue)-.25 E(is)144 456 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5
 (fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5
 (dw).15 G(hen an interacti)-2.5 E .3 -.15(ve s)-.25 H(hell e).15 E
-(xits.)-.15 E F1(HISTFILESIZE)108 396 Q F0 1.622
-(The maximum number of lines contained in the history \214le.)144 408 R
+(xits.)-.15 E F1(HISTFILESIZE)108 468 Q F0 1.622
+(The maximum number of lines contained in the history \214le.)144 480 R
 1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25(va)144
-420 S .311(lue, the history \214le is truncated, if necessary).25 F
+492 S .311(lue, the history \214le is truncated, if necessary).25 F
 2.811(,t)-.65 G 2.811(oc)-2.811 G .311
 (ontain no more than that number of lines.)-2.811 F(The)5.311 E(def)144
-432 Q .386(ault v)-.1 F .386(alue is 500.)-.25 F .387(The history \214l\
+504 Q .386(ault v)-.1 F .386(alue is 500.)-.25 F .387(The history \214l\
 e is also truncated to this size after writing it when an interac-)5.386
-F(ti)144 444 Q .3 -.15(ve s)-.25 H(hell e).15 E(xits.)-.15 E F1
-(HISTIGNORE)108 456 Q F0 2.658(Ac)144 468 S .158(olon-separated list of\
+F(ti)144 516 Q .3 -.15(ve s)-.25 H(hell e).15 E(xits.)-.15 E F1
+(HISTIGNORE)108 528 Q F0 2.658(Ac)144 540 S .158(olon-separated list of\
  patterns used to decide which command lines should be sa)-2.658 F -.15
 (ve)-.2 G 2.657(do).15 G 2.657(nt)-2.657 G .157(he his-)-2.657 F .707
-(tory list.)144 480 R .707(Each pattern is anchored at the be)5.707 F
+(tory list.)144 552 R .707(Each pattern is anchored at the be)5.707 F
 .708(ginning of the line and must match the complete line)-.15 F .626
-(\(no implicit `)144 492 R F1(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126
+(\(no implicit `)144 564 R F1(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126
 (ppended\). Each)-3.126 F .626(pattern is tested ag)3.126 F .625
 (ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144
-504 Q(OL)-.3 E F0 1.154(are applied.)3.654 F 1.154
+576 Q(OL)-.3 E F0 1.154(are applied.)3.654 F 1.154
 (In addition to the normal shell pattern matching characters, `)6.154 F
-F1(&)A F0(')A 2.515(matches the pre)144 516 R 2.515(vious history line.)
+F1(&)A F0(')A 2.515(matches the pre)144 588 R 2.515(vious history line.)
 -.25 F(`)7.514 E F1(&)A F0 5.014('m)C 2.514
-(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 528
+(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 600
 Q -.15(ve)-.15 G 3.352(db).15 G .852(efore attempting a match.)-3.352 F
 .852(The second and subsequent lines of a multi-line compound)5.852 F
-(command are not tested, and are added to the history re)144 540 Q -.05
+(command are not tested, and are added to the history re)144 612 Q -.05
 (ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F1(HISTIGNORE)2.5 E F0
-(.)A F1(HISTSIZE)108 552 Q F0 1.942
-(The number of commands to remember in the command history \(see)144 564
+(.)A F1(HISTSIZE)108 624 Q F0 1.942
+(The number of commands to remember in the command history \(see)144 636
 R F3(HIST)4.442 E(OR)-.162 E(Y)-.315 E F0(belo)4.192 E 4.442(w\). The)
--.25 F(def)144 576 Q(ault v)-.1 E(alue is 500.)-.25 E F1(HISTTIMEFORMA)
-108 588 Q(T)-.95 E F0 .951(If this v)144 600 R .951
+-.25 F(def)144 648 Q(ault v)-.1 E(alue is 500.)-.25 E F1(HISTTIMEFORMA)
+108 660 Q(T)-.95 E F0 .951(If this v)144 672 R .951
 (ariable is set and not null, its v)-.25 F .952
 (alue is used as a format string for)-.25 F F5(strftime)3.452 E F0 .952
 (\(3\) to print the)B .673
-(time stamp associated with each history entry displayed by the)144 612
+(time stamp associated with each history entry displayed by the)144 684
 R F1(history)3.173 E F0 -.2(bu)3.172 G 3.172(iltin. If).2 F .672(this v)
 3.172 F .672(ariable is)-.25 F
-(set, time stamps are written to the history \214le so the)144 624 Q 2.5
-(ym)-.15 G(ay be preserv)-2.5 E(ed across shell sessions.)-.15 E F1
-(HOME)108 636 Q F0 1.27(The home directory of the current user; the def)
-144 648 R 1.27(ault ar)-.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0
--.2(bu)3.77 G 1.27(iltin command.).2 F(The)6.27 E -.25(va)144 660 S
-(lue of this v).25 E(ariable is also used when performing tilde e)-.25 E
-(xpansion.)-.15 E F1(HOSTFILE)108 672 Q F0 1.015
-(Contains the name of a \214le in the same format as)144 684 R F5
-(/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F
-.55(needs to complete a hostname.)144 696 R .551
-(The list of possible hostname completions may be changed while)5.551 F
-1.059(the shell is running; the ne)144 708 R 1.059
-(xt time hostname completion is attempted after the v)-.15 F 1.058
-(alue is changed,)-.25 F F1(bash)144 720 Q F0 .715
-(adds the contents of the ne)3.215 F 3.215<778c>-.25 G .715(le to the e)
--3.215 F .715(xisting list.)-.15 F(If)5.716 E F3(HOSTFILE)3.216 E F0
-.716(is set, b)2.966 F .716(ut has no v)-.2 F(alue,)-.25 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(12)197.89 E 0 Cg EP
+(set, time stamps are written to the history \214le so the)144 696 Q 2.5
+(ym)-.15 G(ay be preserv)-2.5 E(ed across shell sessions.)-.15 E
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(12)199.835 E 0 Cg EP
 %%Page: 13 14
 %%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(bash)144 84 Q F0 2.236(attempts to read)
-4.736 F/F2 10/Times-Italic@0 SF(/etc/hosts)6.401 E F0 2.235
+-.35 E/F1 10/Times-Bold@0 SF(HOME)108 84 Q F0 1.27
+(The home directory of the current user; the def)144 96 R 1.27(ault ar)
+-.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27
+(iltin command.).2 F(The)6.27 E -.25(va)144 108 S(lue of this v).25 E
+(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1
+(HOSTFILE)108 120 Q F0 1.015
+(Contains the name of a \214le in the same format as)144 132 R/F2 10
+/Times-Italic@0 SF(/etc/hosts)5.181 E F0 1.015
+(that should be read when the shell)5.181 F .55
+(needs to complete a hostname.)144 144 R .551
+(The list of possible hostname completions may be changed while)5.551 F
+1.059(the shell is running; the ne)144 156 R 1.059
+(xt time hostname completion is attempted after the v)-.15 F 1.058
+(alue is changed,)-.25 F F1(bash)144 168 Q F0 .715
+(adds the contents of the ne)3.215 F 3.215<778c>-.25 G .715(le to the e)
+-3.215 F .715(xisting list.)-.15 F(If)5.716 E/F3 9/Times-Bold@0 SF
+(HOSTFILE)3.216 E F0 .716(is set, b)2.966 F .716(ut has no v)-.2 F
+(alue,)-.25 E F1(bash)144 180 Q F0 2.236(attempts to read)4.736 F F2
+(/etc/hosts)6.401 E F0 2.235
 (to obtain the list of possible hostname completions.)6.401 F(When)7.235
-E/F3 9/Times-Bold@0 SF(HOSTFILE)144 96 Q F0
-(is unset, the hostname list is cleared.)2.25 E F1(IFS)108 108 Q F0(The)
-20.44 E F2 .555(Internal F)3.635 F .555(ield Separ)-.45 F(ator)-.15 E F0
-.555(that is used for w)3.785 F .556(ord splitting after e)-.1 F .556
-(xpansion and to split lines into)-.15 F -.1(wo)144 120 S(rds with the)
-.1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2(bu)2.5 G(iltin command.).2 E
-(The def)5 E(ault v)-.1 E(alue is `)-.25 E(`<space><tab><ne)-.74 E
-(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 132 Q F0 .503
-(Controls the action of an interacti)144 144 R .803 -.15(ve s)-.25 H
-.503(hell on receipt of an).15 F F3(EOF)3.003 E F0 .503
+E F3(HOSTFILE)144 192 Q F0(is unset, the hostname list is cleared.)2.25
+E F1(IFS)108 204 Q F0(The)20.44 E F2 .555(Internal F)3.635 F .555
+(ield Separ)-.45 F(ator)-.15 E F0 .555(that is used for w)3.785 F .556
+(ord splitting after e)-.1 F .556(xpansion and to split lines into)-.15
+F -.1(wo)144 216 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2
+(bu)2.5 G(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E
+(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 228 Q
+F0 .503(Controls the action of an interacti)144 240 R .803 -.15(ve s)
+-.25 H .503(hell on receipt of an).15 F F3(EOF)3.003 E F0 .503
 (character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v)
-144 156 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F3
+144 252 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F3
 (EOF)3.076 E F0 .426
 (characters which must be typed as the \214rst characters)2.676 F .303
-(on an input line before)144 168 R F1(bash)2.802 E F0 -.15(ex)2.802 G
+(on an input line before)144 264 R F1(bash)2.802 E F0 -.15(ex)2.802 G
 2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302
 (xists b)-.15 F .302(ut does not ha)-.2 F .602 -.15(ve a n)-.2 H .302
-(umeric v).15 F .302(alue, or has)-.25 F(no v)144 180 Q(alue, the def)
+(umeric v).15 F .302(alue, or has)-.25 F(no v)144 276 Q(alue, the def)
 -.25 E(ault v)-.1 E(alue is 10.)-.25 E(If it does not e)5 E(xist,)-.15 E
 F3(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1
-(INPUTRC)108 192 Q F0 1.435(The \214lename for the)144 204 R F1 -.18(re)
+(INPUTRC)108 288 Q F0 1.435(The \214lename for the)144 300 R F1 -.18(re)
 3.936 G(adline).18 E F0 1.436(startup \214le, o)3.936 F -.15(ve)-.15 G
 1.436(rriding the def).15 F 1.436(ault of)-.1 F F2(~/.inputr)5.602 E(c)
--.37 E F0(\(see)5.602 E F3(READLINE)3.936 E F0(belo)144 216 Q(w\).)-.25
-E F1(LANG)108 228 Q F0 1.24(Used to determine the locale cate)7.11 F
+-.37 E F0(\(see)5.602 E F3(READLINE)3.936 E F0(belo)144 312 Q(w\).)-.25
+E F1(LANG)108 324 Q F0 1.24(Used to determine the locale cate)7.11 F
 1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.239
 (gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
-(starting with)144 240 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 252 Q F0 .764
-(This v)144 264 R .764(ariable o)-.25 F -.15(ve)-.15 G .764
+(starting with)144 336 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 348 Q F0 .764
+(This v)144 360 R .764(ariable o)-.25 F -.15(ve)-.15 G .764
 (rrides the v).15 F .764(alue of)-.25 F F1(LANG)3.264 E F0 .764(and an)
 3.264 F 3.264(yo)-.15 G(ther)-3.264 E F1(LC_)3.264 E F0 -.25(va)3.264 G
-.764(riable specifying a locale cate-).25 F(gory)144 276 Q(.)-.65 E F1
-(LC_COLLA)108 288 Q(TE)-.95 E F0 .412(This v)144 300 R .412(ariable det\
+.764(riable specifying a locale cate-).25 F(gory)144 372 Q(.)-.65 E F1
+(LC_COLLA)108 384 Q(TE)-.95 E F0 .412(This v)144 396 R .412(ariable det\
 ermines the collation order used when sorting the results of pathname e)
--.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 312 R 1.464
+-.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 408 R 1.464
 (vior of range e)-.2 F 1.465(xpressions, equi)-.15 F -.25(va)-.25 G
 1.465(lence classes, and collating sequences).25 F(within pathname e)144
-324 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 336 Q F0
-1.936(This v)144 348 R 1.936
+420 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 432 Q F0
+1.936(This v)144 444 R 1.936
 (ariable determines the interpretation of characters and the beha)-.25 F
-1.935(vior of character classes)-.2 F(within pathname e)144 360 Q
-(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 372 Q(GES)-.55 E
-F0(This v)144 384 Q(ariable determines the locale used to translate dou\
+1.935(vior of character classes)-.2 F(within pathname e)144 456 Q
+(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 468 Q(GES)-.55 E
+F0(This v)144 480 Q(ariable determines the locale used to translate dou\
 ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)
-108 396 Q F0(This v)144 408 Q(ariable determines the locale cate)-.25 E
-(gory used for number formatting.)-.15 E F1(LINES)108 420 Q F0 1.218
+108 492 Q F0(This v)144 504 Q(ariable determines the locale cate)-.25 E
+(gory used for number formatting.)-.15 E F1(LINES)108 516 Q F0 1.218
 (Used by the)5.99 F F1(select)3.718 E F0 -.2(bu)3.718 G 1.219(iltin com\
 mand to determine the column length for printing selection lists.).2 F
-(Automatically set upon receipt of a SIGWINCH.)144 432 Q F1(MAIL)108 444
+(Automatically set upon receipt of a SIGWINCH.)144 528 Q F1(MAIL)108 540
 Q F0 .188(If this parameter is set to a \214le name and the)8.78 F F3
 (MAILP)2.687 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.437 G .187
 (riable is not set,).25 F F1(bash)2.687 E F0 .187(informs the user)2.687
-F(of the arri)144 456 Q -.25(va)-.25 G 2.5(lo).25 G 2.5(fm)-2.5 G
-(ail in the speci\214ed \214le.)-2.5 E F1(MAILCHECK)108 468 Q F0 .098
-(Speci\214es ho)144 480 R 2.598(wo)-.25 G .098(ften \(in seconds\))
+F(of the arri)144 552 Q -.25(va)-.25 G 2.5(lo).25 G 2.5(fm)-2.5 G
+(ail in the speci\214ed \214le.)-2.5 E F1(MAILCHECK)108 564 Q F0 .098
+(Speci\214es ho)144 576 R 2.598(wo)-.25 G .098(ften \(in seconds\))
 -2.598 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
 5.098 F .098(ault is 60 seconds.)-.1 F .099(When it is time)5.099 F .224
 (to check for mail, the shell does so before displaying the primary pro\
-mpt.)144 492 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066
-(or set to a v)144 504 R .066(alue that is not a number greater than or\
+mpt.)144 588 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066
+(or set to a v)144 600 R .066(alue that is not a number greater than or\
  equal to zero, the shell disables mail checking.)-.25 F F1(MAILP)108
-516 Q -.95(AT)-.74 G(H).95 E F0 2.815(Ac)144 528 S .314
+612 Q -.95(AT)-.74 G(H).95 E F0 2.815(Ac)144 624 S .314
 (olon-separated list of \214le names to be check)-2.815 F .314
 (ed for mail.)-.1 F .314(The message to be printed when mail)5.314 F
-(arri)144 540 Q -.15(ve)-.25 G 3.42(si).15 G 3.42(nap)-3.42 G .92(artic\
+(arri)144 636 Q -.15(ve)-.25 G 3.42(si).15 G 3.42(nap)-3.42 G .92(artic\
 ular \214le may be speci\214ed by separating the \214le name from the m\
-essage with a)-3.42 F 2.808(`?'. When)144 552 R .308(used in the te)
+essage with a)-3.42 F 2.808(`?'. When)144 648 R .308(used in the te)
 2.808 F .308(xt of the message,)-.15 F F1($_)2.808 E F0 -.15(ex)2.808 G
 .308(pands to the name of the current mail\214le.).15 F(Exam-)5.307 E
-(ple:)144 564 Q F1(MAILP)144 576 Q -.95(AT)-.74 G(H).95 E F0(='/v)A
+(ple:)144 660 Q F1(MAILP)144 672 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A
 (ar/mail/bfox?"Y)-.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H
-(ail":~/shell\255mail?"$_ has mail!"').15 E F1(Bash)144 588 Q F0 .388
+(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 684 Q F0 .388
 (supplies a def)2.888 F .388(ault v)-.1 F .388(alue for this v)-.25 F
 .388(ariable, b)-.25 F .389
 (ut the location of the user mail \214les that it uses is)-.2 F
-(system dependent \(e.g., /v)144 600 Q(ar/mail/)-.25 E F1($USER)A F0
-(\).)A F1(OPTERR)108 612 Q F0 .39(If set to the v)144 624 R .39(alue 1,)
--.25 F F1(bash)2.89 E F0 .389(displays error messages generated by the)
-2.889 F F1(getopts)2.889 E F0 -.2(bu)2.889 G .389(iltin command \(see).2
-F F3 .359(SHELL B)144 636 R(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0
-(belo)2.609 E(w\).)-.25 E F3(OPTERR)5.359 E F0 .36
+(system dependent \(e.g., /v)144 696 Q(ar/mail/)-.25 E F1($USER)A F0
+(\).)A(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(13)199.835 E 0 Cg EP
+%%Page: 14 15
+%%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(OPTERR)108 84 Q F0 .39(If set to the v)144
+96 R .39(alue 1,)-.25 F F1(bash)2.89 E F0 .389
+(displays error messages generated by the)2.889 F F1(getopts)2.889 E F0
+-.2(bu)2.889 G .389(iltin command \(see).2 F/F2 9/Times-Bold@0 SF .359
+(SHELL B)144 108 R(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0(belo)2.609 E
+(w\).)-.25 E F2(OPTERR)5.359 E F0 .36
 (is initialized to 1 each time the shell is in)2.609 F -.2(vo)-.4 G -.1
-(ke).2 G(d).1 E(or a shell script is e)144 648 Q -.15(xe)-.15 G(cuted.)
-.15 E F1 -.74(PA)108 660 S(TH)-.21 E F0 .588
+(ke).2 G(d).1 E(or a shell script is e)144 120 Q -.15(xe)-.15 G(cuted.)
+.15 E F1 -.74(PA)108 132 S(TH)-.21 E F0 .588
 (The search path for commands.)9.91 F .587
 (It is a colon-separated list of directories in which the shell looks)
-5.588 F .471(for commands \(see)144 672 R F3 .471(COMMAND EXECUTION)
+5.588 F .471(for commands \(see)144 144 R F2 .471(COMMAND EXECUTION)
 2.971 F F0(belo)2.722 E 2.972(w\). A)-.25 F .472
-(zero-length \(null\) directory name in the)2.972 F -.25(va)144 684 S
+(zero-length \(null\) directory name in the)2.972 F -.25(va)144 156 S
 .345(lue of).25 F F1 -.74(PA)2.845 G(TH)-.21 E F0 .345
 (indicates the current directory)2.845 F 5.345(.A)-.65 G .344
 (null directory name may appear as tw)-2.5 F 2.844(oa)-.1 G(djacent)
--2.844 E .867(colons, or as an initial or trailing colon.)144 696 R .868
+-2.844 E .867(colons, or as an initial or trailing colon.)144 168 R .868
 (The def)5.868 F .868(ault path is system-dependent, and is set by the)
--.1 F 26.329(administrator who installs)144 708 R F1(bash)28.829 E F0
-31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F/F4 10
-/Courier@0 SF(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 720
-Q F0(.)A(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(13)197.89 E 0
-Cg EP
-%%Page: 14 15
-%%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(POSIXL)108 84 Q(Y_CORRECT)-.92 E F0 .471
-(If this v)144 96 R .471(ariable is in the en)-.25 F .471
-(vironment when)-.4 F F1(bash)2.971 E F0 .471(starts, the shell enters)
-2.971 F/F2 10/Times-Italic@0 SF .472(posix mode)2.972 F F0 .472
-(before reading)2.972 F .011(the startup \214les, as if the)144 108 R F1
-(\255\255posix)2.511 E F0(in)2.511 E -.2(vo)-.4 G .011
-(cation option had been supplied.).2 F .011
-(If it is set while the shell is)5.011 F(running,)144 120 Q F1(bash)2.5
-E F0(enables)2.5 E F2(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5(ft)
--2.5 G(he command)-2.5 E/F3 10/Courier@0 SF(set -o posix)2.5 E F0
-(had been e)2.5 E -.15(xe)-.15 G(cuted.).15 E F1(PR)108 132 Q
-(OMPT_COMMAND)-.3 E F0(If set, the v)144 144 Q(alue is e)-.25 E -.15(xe)
--.15 G(cuted as a command prior to issuing each primary prompt.).15 E F1
-(PS1)108 156 Q F0 .064(The v)19.33 F .065(alue of this parameter is e)
--.25 F .065(xpanded \(see)-.15 F/F4 9/Times-Bold@0 SF(PR)2.565 E
-(OMPTING)-.27 E F0(belo)2.315 E .065(w\) and used as the primary prompt)
--.25 F 2.5(string. The)144 168 R(def)2.5 E(ault v)-.1 E(alue is `)-.25 E
-(`)-.74 E F1(\\s\255\\v\\$)A F0 -.74('')2.5 G(.).74 E F1(PS2)108 180 Q
-F0 .005(The v)19.33 F .005(alue of this parameter is e)-.25 F .005
-(xpanded as with)-.15 F F1(PS1)2.505 E F0 .004
-(and used as the secondary prompt string.)2.505 F(The)5.004 E(def)144
-192 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G(.).74 E F1(PS3)
-108 204 Q F0 1.115(The v)19.33 F 1.115
+-.1 F 26.329(administrator who installs)144 180 R F1(bash)28.829 E F0
+31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F/F3 10
+/Courier@0 SF(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 192
+Q F0(.)A F1(POSIXL)108 204 Q(Y_CORRECT)-.92 E F0 .471(If this v)144 216
+R .471(ariable is in the en)-.25 F .471(vironment when)-.4 F F1(bash)
+2.971 E F0 .471(starts, the shell enters)2.971 F/F4 10/Times-Italic@0 SF
+.472(posix mode)2.972 F F0 .472(before reading)2.972 F .011
+(the startup \214les, as if the)144 228 R F1(\255\255posix)2.511 E F0
+(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F .011
+(If it is set while the shell is)5.011 F(running,)144 240 Q F1(bash)2.5
+E F0(enables)2.5 E F4(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5(ft)
+-2.5 G(he command)-2.5 E F3(set -o posix)2.5 E F0(had been e)2.5 E -.15
+(xe)-.15 G(cuted.).15 E F1(PR)108 252 Q(OMPT_COMMAND)-.3 E F0
+(If set, the v)144 264 Q(alue is e)-.25 E -.15(xe)-.15 G
+(cuted as a command prior to issuing each primary prompt.).15 E F1(PS1)
+108 276 Q F0 .064(The v)19.33 F .065(alue of this parameter is e)-.25 F
+.065(xpanded \(see)-.15 F F2(PR)2.565 E(OMPTING)-.27 E F0(belo)2.315 E
+.065(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 288 R
+(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F1(\\s\255\\v\\$)A F0
+-.74('')2.5 G(.).74 E F1(PS2)108 300 Q F0 .005(The v)19.33 F .005
+(alue of this parameter is e)-.25 F .005(xpanded as with)-.15 F F1(PS1)
+2.505 E F0 .004(and used as the secondary prompt string.)2.505 F(The)
+5.004 E(def)144 312 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
+(.).74 E F1(PS3)108 324 Q F0 1.115(The v)19.33 F 1.115
 (alue of this parameter is used as the prompt for the)-.25 F F1(select)
-3.615 E F0 1.116(command \(see)3.616 F F4 1.116(SHELL GRAM-)3.616 F(MAR)
-144 216 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 228 Q F0
+3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR)
+144 336 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 348 Q F0
 1.099(The v)19.33 F 1.099(alue of this parameter is e)-.25 F 1.099
 (xpanded as with)-.15 F F1(PS1)3.599 E F0 1.099(and the v)3.599 F 1.098
-(alue is printed before each com-)-.25 F(mand)144 240 Q F1(bash)3.725 E
+(alue is printed before each com-)-.25 F(mand)144 360 Q F1(bash)3.725 E
 F0 1.225(displays during an e)3.725 F -.15(xe)-.15 G 1.225
-(cution trace.).15 F 1.226(The \214rst character of)6.225 F F4(PS4)3.726
-E F0 1.226(is replicated multiple)3.476 F(times, as necessary)144 252 Q
+(cution trace.).15 F 1.226(The \214rst character of)6.225 F F2(PS4)3.726
+E F0 1.226(is replicated multiple)3.476 F(times, as necessary)144 372 Q
 2.5(,t)-.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G
 (ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0
--.74('')2.5 G(.).74 E F1(SHELL)108 264 Q F0 .664
-(The full pathname to the shell is k)144 276 R .664(ept in this en)-.1 F
+-.74('')2.5 G(.).74 E F1(SHELL)108 384 Q F0 .664
+(The full pathname to the shell is k)144 396 R .664(ept in this en)-.1 F
 .664(vironment v)-.4 F 3.164(ariable. If)-.25 F .663
-(it is not set when the shell)3.164 F(starts,)144 288 Q F1(bash)2.5 E F0
+(it is not set when the shell)3.164 F(starts,)144 408 Q F1(bash)2.5 E F0
 (assigns to it the full pathname of the current user')2.5 E 2.5(sl)-.55
-G(ogin shell.)-2.5 E F1(TIMEFORMA)108 300 Q(T)-.95 E F0 .826(The v)144
-312 R .826
+G(ogin shell.)-2.5 E F1(TIMEFORMA)108 420 Q(T)-.95 E F0 .826(The v)144
+432 R .826
 (alue of this parameter is used as a format string specifying ho)-.25 F
 3.327(wt)-.25 G .827(he timing information for)-3.327 F .649
-(pipelines pre\214x)144 324 R .649(ed with the)-.15 F F1(time)3.149 E F0
+(pipelines pre\214x)144 444 R .649(ed with the)-.15 F F1(time)3.149 E F0
 (reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F
 (The)5.648 E F1(%)3.148 E F0 .648(character introduces)3.148 F .711
-(an escape sequence that is e)144 336 R .711(xpanded to a time v)-.15 F
+(an escape sequence that is e)144 456 R .711(xpanded to a time v)-.15 F
 .712(alue or other information.)-.25 F .712(The escape sequences)5.712 F
-(and their meanings are as follo)144 348 Q
-(ws; the braces denote optional portions.)-.25 E F1(%%)144 366 Q F0 2.5
-(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 378 Q F2(p)A F1
-(][l]R)A F0(The elapsed time in seconds.)11.68 E F1(%[)144 390 Q F2(p)A
+(and their meanings are as follo)144 468 Q
+(ws; the braces denote optional portions.)-.25 E F1(%%)144 486 Q F0 2.5
+(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 498 Q F4(p)A F1
+(][l]R)A F0(The elapsed time in seconds.)11.68 E F1(%[)144 510 Q F4(p)A
 F1(][l]U)A F0(The number of CPU seconds spent in user mode.)11.68 E F1
-(%[)144 402 Q F2(p)A F1(][l]S)A F0
-(The number of CPU seconds spent in system mode.)13.34 E F1(%P)144 414 Q
+(%[)144 522 Q F4(p)A F1(][l]S)A F0
+(The number of CPU seconds spent in system mode.)13.34 E F1(%P)144 534 Q
 F0(The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87
-(The optional)144 430.8 R F2(p)3.37 E F0 .87(is a digit specifying the)
-3.37 F F2(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
+(The optional)144 550.8 R F4(p)3.37 E F0 .87(is a digit specifying the)
+3.37 F F4(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
 (he number of fractional digits after a decimal)-3.37 F 2.525(point. A)
-144 442.8 R -.25(va)2.525 G .025
+144 562.8 R -.25(va)2.525 G .025
 (lue of 0 causes no decimal point or fraction to be output.).25 F .026
 (At most three places after the)5.025 F .538
-(decimal point may be speci\214ed; v)144 454.8 R .538(alues of)-.25 F F2
+(decimal point may be speci\214ed; v)144 574.8 R .538(alues of)-.25 F F4
 (p)3.038 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.537 E
-F2(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 466.8 Q
-(alue 3 is used.)-.25 E .667(The optional)144 483.6 R F1(l)3.167 E F0
+F4(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 586.8 Q
+(alue 3 is used.)-.25 E .667(The optional)144 603.6 R F1(l)3.167 E F0
 .668(speci\214es a longer format, including minutes, of the form)3.168 F
-F2(MM)3.168 E F0(m)A F2(SS)A F0(.)A F2(FF)A F0 3.168(s. The)B -.25(va)
-3.168 G(lue).25 E(of)144 495.6 Q F2(p)2.5 E F0
-(determines whether or not the fraction is included.)2.5 E 13.365
-(If this v)144 512.4 R 13.365(ariable is not set,)-.25 F F1(bash)15.865
-E F0 13.364(acts as if it had the v)15.865 F(alue)-.25 E F1($'\\nr)144
-524.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys%3lS')-.18 E F0 5.031(.I)C 2.531
-(ft)-5.031 G .031(he v)-2.531 F .031
-(alue is null, no timing information is displayed.)-.25 F 2.5(At)144
-536.4 S(railing ne)-2.5 E
-(wline is added when the format string is displayed.)-.25 E F1(TMOUT)108
-553.2 Q F0 .718(If set to a v)144 565.2 R .717(alue greater than zero,)
--.25 F F1(TMOUT)3.217 E F0 .717(is treated as the def)3.217 F .717
-(ault timeout for the)-.1 F F1 -.18(re)3.217 G(ad).18 E F0 -.2(bu)3.217
-G(iltin.).2 E(The)144 577.2 Q F1(select)2.542 E F0 .042
-(command terminates if input does not arri)2.542 F .342 -.15(ve a)-.25 H
-(fter).15 E F1(TMOUT)2.542 E F0 .042(seconds when input is com-)2.542 F
-.886(ing from a terminal.)144 589.2 R .886(In an interacti)5.886 F 1.185
--.15(ve s)-.25 H .885(hell, the v).15 F .885
-(alue is interpreted as the number of seconds to)-.25 F -.1(wa)144 601.2
-S .546(it for input after issuing the primary prompt.).1 F F1(Bash)5.546
-E F0 .546(terminates after w)3.046 F .546(aiting for that number of)-.1
-F(seconds if input does not arri)144 613.2 Q -.15(ve)-.25 G(.).15 E F1
-(TMPDIR)108 630 Q F0 .274(If set,)144 642 R F1(Bash)2.774 E F0 .274
-(uses its v)2.774 F .274(alue as the name of a directory in which)-.25 F
-F1(Bash)2.773 E F0 .273(creates temporary \214les for the)2.773 F
-(shell')144 654 Q 2.5(su)-.55 G(se.)-2.5 E F1(auto_r)108 670.8 Q(esume)
--.18 E F0 .53(This v)144 682.8 R .53(ariable controls ho)-.25 F 3.03(wt)
--.25 G .531(he shell interacts with the user and job control.)-3.03 F
-.531(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144
-694.8 R .538(ord simple commands without redirections are treated as ca\
-ndidates for resumption of an)-.1 F -.15(ex)144 706.8 S .366
-(isting stopped job).15 F 5.366(.T)-.4 G .366(here is no ambiguity allo)
--5.366 F .366(wed; if there is more than one job be)-.25 F .367
-(ginning with)-.15 F 1.125
-(the string typed, the job most recently accessed is selected.)144 718.8
-R(The)6.125 E F2(name)3.985 E F0 1.124(of a stopped job, in this)3.805 F
-(conte)144 730.8 Q 1.132(xt, is the command line used to start it.)-.15
-F 1.133(If set to the v)6.133 F(alue)-.25 E F2 -.2(ex)3.633 G(act).2 E
-F0 3.633(,t).68 G 1.133(he string supplied must)-3.633 F
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(14)197.89 E 0 Cg EP
+F4(MM)3.168 E F0(m)A F4(SS)A F0(.)A F4(FF)A F0 3.168(s. The)B -.25(va)
+3.168 G(lue).25 E(of)144 615.6 Q F4(p)2.5 E F0
+(determines whether or not the fraction is included.)2.5 E .001
+(If this v)144 632.4 R .001(ariable is not set,)-.25 F F1(bash)2.501 E
+F0 .001(acts as if it had the v)2.501 F(alue)-.25 E F1($\010\\nr)2.5 E
+(eal\\t%3lR\\nuser\\t%3lU\\nsys%3lS\010)-.18 E F0(.)A .494(If the v)144
+644.4 R .494(alue is null, no timing information is displayed.)-.25 F
+2.994(At)5.494 G .494(railing ne)-2.994 F .494
+(wline is added when the for)-.25 F(-)-.2 E(mat string is displayed.)144
+656.4 Q F1(TMOUT)108 673.2 Q F0 .718(If set to a v)144 685.2 R .717
+(alue greater than zero,)-.25 F F1(TMOUT)3.217 E F0 .717
+(is treated as the def)3.217 F .717(ault timeout for the)-.1 F F1 -.18
+(re)3.217 G(ad).18 E F0 -.2(bu)3.217 G(iltin.).2 E(The)144 697.2 Q F1
+(select)2.542 E F0 .042(command terminates if input does not arri)2.542
+F .342 -.15(ve a)-.25 H(fter).15 E F1(TMOUT)2.542 E F0 .042
+(seconds when input is com-)2.542 F .886(ing from a terminal.)144 709.2
+R .886(In an interacti)5.886 F 1.185 -.15(ve s)-.25 H .885(hell, the v)
+.15 F .885(alue is interpreted as the number of seconds to)-.25 F -.1
+(wa)144 721.2 S .546(it for input after issuing the primary prompt.).1 F
+F1(Bash)5.546 E F0 .546(terminates after w)3.046 F .546
+(aiting for that number of)-.1 F(GNU Bash-3.2)72 768 Q(2006 Jan 26)
+149.845 E(14)199.835 E 0 Cg EP
 %%Page: 15 16
 %%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 .625(match the name of a stopped job e)144 84 R .624
-(xactly; if set to)-.15 F/F1 10/Times-Italic@0 SF(substring)3.124 E F0
-3.124(,t).22 G .624(he string supplied needs to match a)-3.124 F .884
-(substring of the name of a stopped job)144 96 R 5.884(.T)-.4 G(he)
--5.884 E F1(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885
-(vides functionality analogous to)-.15 F(the)144 108 Q/F2 10
-/Times-Bold@0 SF(%?)3.334 E F0 .834(job identi\214er \(see)5.834 F/F3 9
-/Times-Bold@0 SF .834(JOB CONTR)3.334 F(OL)-.27 E F0(belo)3.084 E 3.334
-(w\). If)-.25 F .834(set to an)3.334 F 3.334(yo)-.15 G .834(ther v)
--3.334 F .833(alue, the supplied string)-.25 F .315
-(must be a pre\214x of a stopped job')144 120 R 2.816(sn)-.55 G .316
+-.35 E(seconds if input does not arri)144 84 Q -.15(ve)-.25 G(.).15 E/F1
+10/Times-Bold@0 SF(TMPDIR)108 100.8 Q F0 .274(If set,)144 112.8 R F1
+(Bash)2.774 E F0 .274(uses its v)2.774 F .274
+(alue as the name of a directory in which)-.25 F F1(Bash)2.773 E F0 .273
+(creates temporary \214les for the)2.773 F(shell')144 124.8 Q 2.5(su)
+-.55 G(se.)-2.5 E F1(auto_r)108 141.6 Q(esume)-.18 E F0 .53(This v)144
+153.6 R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531
+(he shell interacts with the user and job control.)-3.03 F .531
+(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 165.6 R
+.538(ord simple commands without redirections are treated as candidates\
+ for resumption of an)-.1 F -.15(ex)144 177.6 S .366(isting stopped job)
+.15 F 5.366(.T)-.4 G .366(here is no ambiguity allo)-5.366 F .366
+(wed; if there is more than one job be)-.25 F .367(ginning with)-.15 F
+1.125(the string typed, the job most recently accessed is selected.)144
+189.6 R(The)6.125 E/F2 10/Times-Italic@0 SF(name)3.985 E F0 1.124
+(of a stopped job, in this)3.805 F(conte)144 201.6 Q 1.132
+(xt, is the command line used to start it.)-.15 F 1.133(If set to the v)
+6.133 F(alue)-.25 E F2 -.2(ex)3.633 G(act).2 E F0 3.633(,t).68 G 1.133
+(he string supplied must)-3.633 F .625
+(match the name of a stopped job e)144 213.6 R .624(xactly; if set to)
+-.15 F F2(substring)3.124 E F0 3.124(,t).22 G .624
+(he string supplied needs to match a)-3.124 F .884
+(substring of the name of a stopped job)144 225.6 R 5.884(.T)-.4 G(he)
+-5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885
+(vides functionality analogous to)-.15 F(the)144 237.6 Q F1(%?)3.334 E
+F0 .834(job identi\214er \(see)5.834 F/F3 9/Times-Bold@0 SF .834
+(JOB CONTR)3.334 F(OL)-.27 E F0(belo)3.084 E 3.334(w\). If)-.25 F .834
+(set to an)3.334 F 3.334(yo)-.15 G .834(ther v)-3.334 F .833
+(alue, the supplied string)-.25 F .315
+(must be a pre\214x of a stopped job')144 249.6 R 2.816(sn)-.55 G .316
 (ame; this pro)-2.816 F .316(vides functionality analogous to the)-.15 F
-F2(%)2.816 E F1(string)A F0(job)2.816 E(identi\214er)144 132 Q(.)-.55 E
-F2(histchars)108 148.8 Q F0 2.07(The tw)144 160.8 R 4.57(oo)-.1 G 4.57
+F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 261.6 Q(.)-.55
+E F1(histchars)108 278.4 Q F0 2.07(The tw)144 290.4 R 4.57(oo)-.1 G 4.57
 (rt)-4.57 G 2.07(hree characters which control history e)-4.57 F 2.07
 (xpansion and tok)-.15 F 2.07(enization \(see)-.1 F F3(HIST)4.569 E(OR)
--.162 E(Y)-.315 E(EXP)144 172.8 Q(ANSION)-.666 E F0(belo)3.465 E 3.715
-(w\). The)-.25 F 1.215(\214rst character is the)3.715 F F1 1.216
+-.162 E(Y)-.315 E(EXP)144 302.4 Q(ANSION)-.666 E F0(belo)3.465 E 3.715
+(w\). The)-.25 F 1.215(\214rst character is the)3.715 F F2 1.216
 (history e)3.715 F(xpansion)-.2 E F0(character)3.716 E 3.716(,t)-.4 G
 1.216(he character which)-3.716 F .798(signals the start of a history e)
-144 184.8 R .798(xpansion, normally `)-.15 F F2(!)A F0 3.298('. The)B
-.798(second character is the)3.298 F F1(quic)3.298 E 3.298(ks)-.2 G
-(ubstitu-)-3.298 E(tion)144 196.8 Q F0(character)2.739 E 2.739(,w)-.4 G
+144 314.4 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B
+.798(second character is the)3.298 F F2(quic)3.298 E 3.298(ks)-.2 G
+(ubstitu-)-3.298 E(tion)144 326.4 Q F0(character)2.739 E 2.739(,w)-.4 G
 .239(hich is used as shorthand for re-running the pre)-2.739 F .24
 (vious command entered, substitut-)-.25 F .576
-(ing one string for another in the command.)144 208.8 R .575(The def)
-5.575 F .575(ault is `)-.1 F F2(^)A F0 3.075('. The)B .575
+(ing one string for another in the command.)144 338.4 R .575(The def)
+5.575 F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .575
 (optional third character is the)3.075 F .223(character which indicates\
  that the remainder of the line is a comment when found as the \214rst \
-char)144 220.8 R(-)-.2 E 1.294(acter of a w)144 232.8 R 1.294
-(ord, normally `)-.1 F F2(#)A F0 3.794('. The)B 1.293
+char)144 350.4 R(-)-.2 E 1.294(acter of a w)144 362.4 R 1.294
+(ord, normally `)-.1 F F1(#)A F0 3.794('. The)B 1.293
 (history comment character causes history substitution to be)3.794 F
-.379(skipped for the remaining w)144 244.8 R .379(ords on the line.)-.1
+.379(skipped for the remaining w)144 374.4 R .379(ords on the line.)-.1
 F .38(It does not necessarily cause the shell parser to treat)5.379 F
-(the rest of the line as a comment.)144 256.8 Q F2(Arrays)87 273.6 Q
-(Bash)108 285.6 Q F0(pro)2.958 E .458(vides one-dimensional array v)-.15
+(the rest of the line as a comment.)144 386.4 Q F1(Arrays)87 403.2 Q
+(Bash)108 415.2 Q F0(pro)2.958 E .458(vides one-dimensional array v)-.15
 F 2.958(ariables. An)-.25 F 2.958(yv)-.15 G .458
-(ariable may be used as an array; the)-3.208 F F2(declar)2.958 E(e)-.18
-E F0 -.2(bu)2.958 G(iltin).2 E .96(will e)108 297.6 R .96
+(ariable may be used as an array; the)-3.208 F F1(declar)2.958 E(e)-.18
+E F0 -.2(bu)2.958 G(iltin).2 E .96(will e)108 427.2 R .96
 (xplicitly declare an array)-.15 F 5.96(.T)-.65 G .961
 (here is no maximum limit on the size of an array)-5.96 F 3.461(,n)-.65
 G .961(or an)-3.461 F 3.461(yr)-.15 G(equirement)-3.461 E
-(that members be inde)108 309.6 Q -.15(xe)-.15 G 2.5(do).15 G 2.5(ra)
+(that members be inde)108 439.2 Q -.15(xe)-.15 G 2.5(do).15 G 2.5(ra)
 -2.5 G(ssigned contiguously)-2.5 E 5(.A)-.65 G(rrays are inde)-5 E -.15
 (xe)-.15 G 2.5(du).15 G(sing inte)-2.5 E(gers and are zero-based.)-.15 E
-1.302(An array is created automatically if an)108 326.4 R 3.801(yv)-.15
-G 1.301(ariable is assigned to using the syntax)-4.051 F F1(name)3.801 E
-F0([)A F1(subscript)A F0(]=)A F1(value)A F0(.)A(The)108 338.4 Q F1
+1.302(An array is created automatically if an)108 456 R 3.801(yv)-.15 G
+1.301(ariable is assigned to using the syntax)-4.051 F F2(name)3.801 E
+F0([)A F2(subscript)A F0(]=)A F2(value)A F0(.)A(The)108 468 Q F2
 (subscript)3.181 E F0 .341(is treated as an arithmetic e)3.521 F .342
 (xpression that must e)-.15 F -.25(va)-.25 G .342
-(luate to a number greater than or equal to).25 F 4.077(zero. T)108
-350.4 R 4.077(oe)-.8 G 1.577(xplicitly declare an array)-4.227 F 4.077
-(,u)-.65 G(se)-4.077 E F2(declar)4.077 E 4.077<65ad>-.18 G(a)-4.077 E F1
-(name)4.077 E F0(\(see)4.077 E F3 1.577(SHELL B)4.077 F(UIL)-.09 E 1.576
-(TIN COMMANDS)-.828 F F0(belo)3.826 E(w\).)-.25 E F2(declar)108 362.4 Q
-3.375<65ad>-.18 G(a)-3.375 E F1(name)3.375 E F2([)A F1(subscript)A F2(])
-A F0 .875(is also accepted; the)3.375 F F1(subscript)3.375 E F0 .875
+(luate to a number greater than or equal to).25 F 4.077(zero. T)108 480
+R 4.077(oe)-.8 G 1.577(xplicitly declare an array)-4.227 F 4.077(,u)-.65
+G(se)-4.077 E F1(declar)4.077 E 4.077<65ad>-.18 G(a)-4.077 E F2(name)
+4.077 E F0(\(see)4.077 E F3 1.577(SHELL B)4.077 F(UIL)-.09 E 1.576
+(TIN COMMANDS)-.828 F F0(belo)3.826 E(w\).)-.25 E F1(declar)108 492 Q
+3.375<65ad>-.18 G(a)-3.375 E F2(name)3.375 E F1([)A F2(subscript)A F1(])
+A F0 .875(is also accepted; the)3.375 F F2(subscript)3.375 E F0 .875
 (is ignored.)3.375 F(Attrib)5.875 E .876(utes may be speci\214ed for an)
--.2 F(array v)108 374.4 Q(ariable using the)-.25 E F2(declar)2.5 E(e)
--.18 E F0(and)2.5 E F2 -.18(re)2.5 G(adonly).18 E F0 -.2(bu)2.5 G 2.5
+-.2 F(array v)108 504 Q(ariable using the)-.25 E F1(declar)2.5 E(e)-.18
+E F0(and)2.5 E F1 -.18(re)2.5 G(adonly).18 E F0 -.2(bu)2.5 G 2.5
 (iltins. Each).2 F(attrib)2.5 E(ute applies to all members of an array)
 -.2 E(.)-.65 E 1.647
-(Arrays are assigned to using compound assignments of the form)108 391.2
-R F1(name)4.147 E F0(=)A F2(\()A F0 -.25(va)C(lue).25 E F1(1)A F0 1.647
-(... v)4.147 F(alue)-.25 E F1(n)A F2(\))A F0 4.147(,w)C 1.647(here each)
--4.147 F F1(value)108 403.2 Q F0 .65(is of the form [)3.15 F F1
-(subscript)A F0(]=)A F1(string)A F0 5.65(.O)C(nly)-5.65 E F1(string)3.15
+(Arrays are assigned to using compound assignments of the form)108 520.8
+R F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647
+(... v)4.147 F(alue)-.25 E F2(n)A F1(\))A F0 4.147(,w)C 1.647(here each)
+-4.147 F F2(value)108 532.8 Q F0 .65(is of the form [)3.15 F F2
+(subscript)A F0(]=)A F2(string)A F0 5.65(.O)C(nly)-5.65 E F2(string)3.15
 E F0 .65(is required.)3.15 F .65(If the optional brack)5.65 F .65
-(ets and subscript are)-.1 F .277(supplied, that inde)108 415.2 R 2.777
+(ets and subscript are)-.1 F .277(supplied, that inde)108 544.8 R 2.777
 (xi)-.15 G 2.777(sa)-2.777 G .277(ssigned to; otherwise the inde)-2.777
 F 2.777(xo)-.15 G 2.777(ft)-2.777 G .276
 (he element assigned is the last inde)-2.777 F 2.776(xa)-.15 G .276
-(ssigned to)-2.776 F 1.393(by the statement plus one.)108 427.2 R(Inde)
+(ssigned to)-2.776 F 1.393(by the statement plus one.)108 556.8 R(Inde)
 6.393 E 1.393(xing starts at zero.)-.15 F 1.394
-(This syntax is also accepted by the)6.394 F F2(declar)3.894 E(e)-.18 E
-F0 -.2(bu)3.894 G(iltin.).2 E(Indi)108 439.2 Q
-(vidual array elements may be assigned to using the)-.25 E F1(name)2.5 E
-F0([)A F1(subscript)A F0(]=)A F1(value)A F0(syntax introduced abo)2.5 E
--.15(ve)-.15 G(.).15 E(An)108 456 Q 3.576(ye)-.15 G 1.076
-(lement of an array may be referenced using ${)-3.576 F F1(name)A F0([)A
-F1(subscript)A F0 3.575(]}. The)B 1.075(braces are required to a)3.575 F
--.2(vo)-.2 G(id).2 E 1.541(con\215icts with pathname e)108 468 R 4.041
-(xpansion. If)-.15 F F1(subscript)4.041 E F0(is)4.041 E F2(@)4.041 E F0
-(or)4.041 E F2(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)
--.1 F 1.541(xpands to all members of)-.15 F F1(name)4.042 E F0(.)A 1.057
-(These subscripts dif)108 480 R 1.057(fer only when the w)-.25 F 1.057
+(This syntax is also accepted by the)6.394 F F1(declar)3.894 E(e)-.18 E
+F0 -.2(bu)3.894 G(iltin.).2 E(Indi)108 568.8 Q
+(vidual array elements may be assigned to using the)-.25 E F2(name)2.5 E
+F0([)A F2(subscript)A F0(]=)A F2(value)A F0(syntax introduced abo)2.5 E
+-.15(ve)-.15 G(.).15 E(An)108 585.6 Q 3.576(ye)-.15 G 1.076
+(lement of an array may be referenced using ${)-3.576 F F2(name)A F0([)A
+F2(subscript)A F0 3.575(]}. The)B 1.075(braces are required to a)3.575 F
+-.2(vo)-.2 G(id).2 E 1.541(con\215icts with pathname e)108 597.6 R 4.041
+(xpansion. If)-.15 F F2(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0
+(or)4.041 E F1(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)
+-.1 F 1.541(xpands to all members of)-.15 F F2(name)4.042 E F0(.)A 1.057
+(These subscripts dif)108 609.6 R 1.057(fer only when the w)-.25 F 1.057
 (ord appears within double quotes.)-.1 F 1.056(If the w)6.056 F 1.056
-(ord is double-quoted,)-.1 F(${)108 492 Q F1(name)A F0 .52([*]} e)B .52
-(xpands to a single w)-.15 F .52(ord with the v)-.1 F .521
+(ord is double-quoted,)-.1 F(${)108 621.6 Q F2(name)A F0 .52([*]} e)B
+.52(xpands to a single w)-.15 F .52(ord with the v)-.1 F .521
 (alue of each array member separated by the \214rst character)-.25 F
-1.375(of the)108 504 R F3(IFS)3.875 E F0 1.375(special v)3.625 F 1.375
-(ariable, and ${)-.25 F F1(name)A F0 1.375([@]} e)B 1.375
-(xpands each element of)-.15 F F1(name)3.875 E F0 1.374(to a separate w)
+1.375(of the)108 633.6 R F3(IFS)3.875 E F0 1.375(special v)3.625 F 1.375
+(ariable, and ${)-.25 F F2(name)A F0 1.375([@]} e)B 1.375
+(xpands each element of)-.15 F F2(name)3.875 E F0 1.374(to a separate w)
 3.875 F 3.874(ord. When)-.1 F 2.027(there are no array members, ${)108
-516 R F1(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F 2.028
-(If the double-quoted e)7.028 F 2.028(xpansion occurs)-.15 F .759
-(within a w)108 528 R .759(ord, the e)-.1 F .759
+645.6 R F2(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F
+2.028(If the double-quoted e)7.028 F 2.028(xpansion occurs)-.15 F .759
+(within a w)108 657.6 R .759(ord, the e)-.1 F .759
 (xpansion of the \214rst parameter is joined with the be)-.15 F .759
-(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108 540
-R .516(xpansion of the last parameter is joined with the last part of t\
-he original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016 F
-.228(to the e)108 552 R .228(xpansion of the special parameters)-.15 F
-F2(*)2.728 E F0(and)2.728 E F2(@)2.728 E F0(\(see)2.728 E F2 .228
+(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108
+669.6 R .516(xpansion of the last parameter is joined with the last par\
+t of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016
+F .228(to the e)108 681.6 R .228(xpansion of the special parameters)-.15
+F F1(*)2.728 E F0(and)2.728 E F1(@)2.728 E F0(\(see)2.728 E F1 .228
 (Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727
-(\). ${#).15 F F1(name)A F0([)A F1(subscript)A F0(]})A -.15(ex)108 564 S
-.886(pands to the length of ${).15 F F1(name)A F0([)A F1(subscript)A F0
-3.386(]}. If)B F1(subscript)3.386 E F0(is)3.386 E F2(*)3.386 E F0(or)
-3.386 E F2(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886
-(xpansion is the number of ele-)-.15 F .734(ments in the array)108 576 R
-5.734(.R)-.65 G .733(eferencing an array v)-5.734 F .733
+(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A -.15(ex)108 693.6
+S .886(pands to the length of ${).15 F F2(name)A F0([)A F2(subscript)A
+F0 3.386(]}. If)B F2(subscript)3.386 E F0(is)3.386 E F1(*)3.386 E F0(or)
+3.386 E F1(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886
+(xpansion is the number of ele-)-.15 F .734(ments in the array)108 705.6
+5.734(.R)-.65 G .733(eferencing an array v)-5.734 F .733
 (ariable without a subscript is equi)-.25 F -.25(va)-.25 G .733
-(lent to referencing element).25 F(zero.)108 588 Q(The)108 604.8 Q F2
-(unset)2.766 E F0 -.2(bu)2.766 G .267(iltin is used to destro).2 F 2.767
-(ya)-.1 G(rrays.)-2.767 E F2(unset)5.267 E F1(name)2.767 E F0([)A F1
-(subscript)A F0 2.767(]d)C(estro)-2.767 E .267
-(ys the array element at inde)-.1 F(x)-.15 E F1(sub-)2.767 E(script)108
-616.8 Q F0 6.38(.C)C 1.38(are must be tak)-6.38 F 1.38(en to a)-.1 F -.2
-(vo)-.2 G 1.38(id unw).2 F 1.38(anted side ef)-.1 F 1.38
-(fects caused by \214lename generation.)-.25 F F2(unset)6.38 E F1(name)
-3.88 E F0(,)A(where)108 628.8 Q F1(name)2.5 E F0(is an array)2.5 E 2.5
-(,o)-.65 G(r)-2.5 E F2(unset)2.5 E F1(name)2.5 E F0([)A F1(subscript)A
-F0(], where)A F1(subscript)2.5 E F0(is)2.5 E F2(*)2.5 E F0(or)2.5 E F2
-(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G
-(he entire array)-2.5 E(.)-.65 E(The)108 645.6 Q F2(declar)3.67 E(e)-.18
-E F0(,)A F2(local)3.67 E F0 3.67(,a)C(nd)-3.67 E F2 -.18(re)3.67 G
-(adonly).18 E F0 -.2(bu)3.67 G 1.17(iltins each accept a).2 F F2<ad61>
-3.671 E F0 1.171(option to specify an array)3.671 F 6.171(.T)-.65 G(he)
--6.171 E F2 -.18(re)3.671 G(ad).18 E F0 -.2(bu)3.671 G(iltin).2 E .441
-(accepts a)108 657.6 R F2<ad61>2.941 E F0 .441
-(option to assign a list of w)2.941 F .441
-(ords read from the standard input to an array)-.1 F 5.441(.T)-.65 G(he)
--5.441 E F2(set)2.941 E F0(and)2.941 E F2(declar)2.94 E(e)-.18 E F0 -.2
-(bu)108 669.6 S(iltins display array v).2 E(alues in a w)-.25 E
-(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F4 10.95
-/Times-Bold@0 SF(EXP)72 686.4 Q(ANSION)-.81 E F0 .76(Expansion is perfo\
-rmed on the command line after it has been split into w)108 698.4 R 3.26
-(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26(nk).15 G .76
-(inds of)-3.26 F -.15(ex)108 710.4 S .37(pansion performed:).15 F F1(br)
-2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .369(tilde e)
-2.869 F(xpansion)-.2 E F0(,).24 E F1(par)2.869 E .369
-(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .369
-(command sub-)2.869 F(stitution)108 722.4 Q F0(,).24 E F1(arithmetic e)
-2.5 E(xpansion)-.2 E F0(,).24 E F1(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5
-E F0 2.5(,a).22 G(nd)-2.5 E F1(pathname e)2.5 E(xpansion)-.2 E F0(.).24
-E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(15)197.89 E 0 Cg EP
+(lent to referencing element).25 F(zero.)108 717.6 Q(GNU Bash-3.2)72 768
+Q(2006 Jan 26)149.845 E(15)199.835 E 0 Cg EP
 %%Page: 16 17
 %%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 .47(The order of e)108 84 R .471(xpansions is: brace e)-.15 F
-.471(xpansion, tilde e)-.15 F .471(xpansion, parameter)-.15 F 2.971(,v)
--.4 G .471(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
-(and command substitution \(done in a left-to-right f)108 96 Q
+-.35 E(The)108 84 Q/F1 10/Times-Bold@0 SF(unset)2.766 E F0 -.2(bu)2.766
+G .267(iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F1
+(unset)5.267 E/F2 10/Times-Italic@0 SF(name)2.767 E F0([)A F2(subscript)
+A F0 2.767(]d)C(estro)-2.767 E .267(ys the array element at inde)-.1 F
+(x)-.15 E F2(sub-)2.767 E(script)108 96 Q F0 6.38(.C)C 1.38
+(are must be tak)-6.38 F 1.38(en to a)-.1 F -.2(vo)-.2 G 1.38(id unw).2
+F 1.38(anted side ef)-.1 F 1.38(fects caused by \214lename generation.)
+-.25 F F1(unset)6.38 E F2(name)3.88 E F0(,)A(where)108 108 Q F2(name)2.5
+E F0(is an array)2.5 E 2.5(,o)-.65 G(r)-2.5 E F1(unset)2.5 E F2(name)2.5
+E F0([)A F2(subscript)A F0(], where)A F2(subscript)2.5 E F0(is)2.5 E F1
+(*)2.5 E F0(or)2.5 E F1(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G
+2.5(st).15 G(he entire array)-2.5 E(.)-.65 E(The)108 124.8 Q F1(declar)
+3.67 E(e)-.18 E F0(,)A F1(local)3.67 E F0 3.67(,a)C(nd)-3.67 E F1 -.18
+(re)3.67 G(adonly).18 E F0 -.2(bu)3.67 G 1.17(iltins each accept a).2 F
+F1<ad61>3.671 E F0 1.171(option to specify an array)3.671 F 6.171(.T)
+-.65 G(he)-6.171 E F1 -.18(re)3.671 G(ad).18 E F0 -.2(bu)3.671 G(iltin)
+.2 E .441(accepts a)108 136.8 R F1<ad61>2.941 E F0 .441
+(option to assign a list of w)2.941 F .441
+(ords read from the standard input to an array)-.1 F 5.441(.T)-.65 G(he)
+-5.441 E F1(set)2.941 E F0(and)2.941 E F1(declar)2.94 E(e)-.18 E F0 -.2
+(bu)108 148.8 S(iltins display array v).2 E(alues in a w)-.25 E
+(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F3 10.95
+/Times-Bold@0 SF(EXP)72 165.6 Q(ANSION)-.81 E F0 .76(Expansion is perfo\
+rmed on the command line after it has been split into w)108 177.6 R 3.26
+(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26(nk).15 G .76
+(inds of)-3.26 F -.15(ex)108 189.6 S .37(pansion performed:).15 F F2(br)
+2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24 E F2 .369(tilde e)
+2.869 F(xpansion)-.2 E F0(,).24 E F2(par)2.869 E .369
+(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F2 .369
+(command sub-)2.869 F(stitution)108 201.6 Q F0(,).24 E F2(arithmetic e)
+2.5 E(xpansion)-.2 E F0(,).24 E F2(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5
+E F0 2.5(,a).22 G(nd)-2.5 E F2(pathname e)2.5 E(xpansion)-.2 E F0(.).24
+E .47(The order of e)108 218.4 R .471(xpansions is: brace e)-.15 F .471
+(xpansion, tilde e)-.15 F .471(xpansion, parameter)-.15 F 2.971(,v)-.4 G
+.471(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
+(and command substitution \(done in a left-to-right f)108 230.4 Q
 (ashion\), w)-.1 E(ord splitting, and pathname e)-.1 E(xpansion.)-.15 E
-(On systems that can support it, there is an additional e)108 112.8 Q
-(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E/F1 10/Times-Italic@0 SF
-(pr)2.5 E(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 129.6
-R 1.487(xpansion, w)-.15 F 1.487(ord splitting, and pathname e)-.1 F
-1.487(xpansion can change the number of w)-.15 F 1.486(ords of the)-.1 F
--.15(ex)108 141.6 S 1.164(pansion; other e).15 F 1.164(xpansions e)-.15
-1.164(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665
+(On systems that can support it, there is an additional e)108 247.2 Q
+(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F2(pr)2.5 E
+(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 264 R 1.487
+(xpansion, w)-.15 F 1.487(ord splitting, and pathname e)-.1 F 1.487
+(xpansion can change the number of w)-.15 F 1.486(ords of the)-.1 F -.15
+(ex)108 276 S 1.164(pansion; other e).15 F 1.164(xpansions e)-.15 F
+1.164(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665
 (ord. The)-.1 F 1.165(only e)3.665 F 1.165(xceptions to this are the)
--.15 F -.15(ex)108 153.6 S(pansions of ").15 E/F2 10/Times-Bold@0 SF($@)
-A F0 2.5("a)C(nd ")-2.5 E F2(${)A F1(name)A F2([@]})A F0 2.5("a)C 2.5
-(se)-2.5 G(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E/F3 9
-/Times-Bold@0 SF -.666(PA)2.5 G(RAMETERS).666 E/F4 9/Times-Roman@0 SF
-(\).)A F2(Brace Expansion)87 170.4 Q F1(Br)108.58 182.4 Q .606(ace e)
--.15 F(xpansion)-.2 E F0 .606
+-.15 F -.15(ex)108 288 S(pansions of ").15 E F1($@)A F0 2.5("a)C(nd ")
+-2.5 E F1(${)A F2(name)A F1([@]})A F0 2.5("a)C 2.5(se)-2.5 G
+(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0
+SF -.666(PA)2.5 G(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F1
+(Brace Expansion)87 304.8 Q F2(Br)108.58 316.8 Q .606(ace e)-.15 F
+(xpansion)-.2 E F0 .606
 (is a mechanism by which arbitrary strings may be generated.)3.346 F
-.606(This mechanism is similar)5.606 F(to)108 194.4 Q F1 .415
+.606(This mechanism is similar)5.606 F(to)108 328.8 Q F2 .415
 (pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
 (ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F
 .415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G
-(he)-2.915 E .152(form of an optional)108 206.4 R F1(pr)2.652 E(eamble)
+(he)-2.915 E .152(form of an optional)108 340.8 R F2(pr)2.652 E(eamble)
 -.37 E F0 2.651(,f).18 G(ollo)-2.651 E .151
 (wed by either a series of comma-separated strings or a sequence e)-.25
-F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 218.4 R
-.563(wed by an optional)-.25 F F1(postscript)3.063 E F0 5.563(.T).68 G
+F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 352.8 R
+.563(wed by an optional)-.25 F F2(postscript)3.063 E F0 5.563(.T).68 G
 .563(he preamble is pre\214x)-5.563 F .563(ed to each string)-.15 F .659
 (contained within the braces, and the postscript is then appended to ea\
-ch resulting string, e)108 230.4 R .658(xpanding left to)-.15 F(right.)
-108 242.4 Q .718(Brace e)108 259.2 R .719(xpansions may be nested.)-.15
+ch resulting string, e)108 364.8 R .658(xpanding left to)-.15 F(right.)
+108 376.8 Q .718(Brace e)108 393.6 R .719(xpansions may be nested.)-.15
 F .719(The results of each e)5.719 F .719
 (xpanded string are not sorted; left to right order is)-.15 F(preserv)
-108 271.2 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F2({)A F0
-(d,c,b)A F2(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.134(As)
-108 288 S .634(equence e)-3.134 F .634(xpression tak)-.15 F .634
-(es the form)-.1 F F2({)3.134 E F1(x)A F2(..)A F1(y)A F2(})A F0 3.134
-(,w)C(here)-3.134 E F1(x)3.134 E F0(and)3.134 E F1(y)3.133 E F0 .633
+108 405.6 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F1({)A F0
+(d,c,b)A F1(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.134(As)
+108 422.4 S .634(equence e)-3.134 F .634(xpression tak)-.15 F .634
+(es the form)-.1 F F1({)3.134 E F2(x)A F1(..)A F2(y)A F1(})A F0 3.134
+(,w)C(here)-3.134 E F2(x)3.134 E F0(and)3.134 E F2(y)3.133 E F0 .633
 (are either inte)3.133 F .633(gers or single characters.)-.15 F(When)
-5.633 E(inte)108 300 Q .401(gers are supplied, the e)-.15 F .401
-(xpression e)-.15 F .401(xpands to each number between)-.15 F F1(x)2.901
-E F0(and)2.902 E F1(y)2.902 E F0 2.902(,i)C(nclusi)-2.902 E -.15(ve)-.25
+5.633 E(inte)108 434.4 Q .401(gers are supplied, the e)-.15 F .401
+(xpression e)-.15 F .401(xpands to each number between)-.15 F F2(x)2.901
+E F0(and)2.902 E F2(y)2.902 E F0 2.902(,i)C(nclusi)-2.902 E -.15(ve)-.25
 G 5.402(.W).15 G .402(hen characters)-5.402 F .688(are supplied, the e)
-108 312 R .688(xpression e)-.15 F .688(xpands to each character le)-.15
-F .688(xicographically between)-.15 F F1(x)3.188 E F0(and)3.188 E F1(y)
-3.188 E F0 3.187(,i)C(nclusi)-3.187 E -.15(ve)-.25 G 5.687(.N).15 G(ote)
--5.687 E(that both)108 324 Q F1(x)2.5 E F0(and)2.5 E F1(y)2.5 E F0
-(must be of the same type.)2.5 E .581(Brace e)108 340.8 R .581
+108 446.4 R .688(xpression e)-.15 F .688(xpands to each character le)
+-.15 F .688(xicographically between)-.15 F F2(x)3.188 E F0(and)3.188 E
+F2(y)3.188 E F0 3.187(,i)C(nclusi)-3.187 E -.15(ve)-.25 G 5.687(.N).15 G
+(ote)-5.687 E(that both)108 458.4 Q F2(x)2.5 E F0(and)2.5 E F2(y)2.5 E
+F0(must be of the same type.)2.5 E .581(Brace e)108 475.2 R .581
 (xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581(ther e)
 -3.081 F .581(xpansions, and an)-.15 F 3.082(yc)-.15 G .582
 (haracters special to other e)-3.082 F(xpansions)-.15 E .016
-(are preserv)108 352.8 R .016(ed in the result.)-.15 F .016
-(It is strictly te)5.016 F(xtual.)-.15 E F2(Bash)5.016 E F0 .015
+(are preserv)108 487.2 R .016(ed in the result.)-.15 F .016
+(It is strictly te)5.016 F(xtual.)-.15 E F1(Bash)5.016 E F0 .015
 (does not apply an)2.516 F 2.515(ys)-.15 G .015
-(yntactic interpretation to the con-)-2.515 F(te)108 364.8 Q
+(yntactic interpretation to the con-)-2.515 F(te)108 499.2 Q
 (xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.)
--.15 E 3.632(Ac)108 381.6 S 1.132(orrectly-formed brace e)-3.632 F 1.132
-(xpansion must contain unquoted opening and closing braces, and at leas\
-t one)-.15 F 3.441(unquoted comma or a v)108 393.6 R 3.441
-(alid sequence e)-.25 F 5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441
+-.15 E 3.632(Ac)108 516 S 1.132(orrectly-formed brace e)-3.632 F 1.132(\
+xpansion must contain unquoted opening and closing braces, and at least\
+ one)-.15 F 3.441(unquoted comma or a v)108 528 R 3.441(alid sequence e)
+-.25 F 5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441
 (ncorrectly formed brace e)-5.941 F 3.44(xpansion is left)-.15 F 2.755
-(unchanged. A)108 405.6 R F2({)2.755 E F0(or)2.755 E F2(,)2.755 E F0
-.255(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255
+(unchanged. A)108 540 R F1({)2.755 E F0(or)2.755 E F1(,)2.755 E F0 .255
+(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255
 (nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.911
-(sion. T)108 417.6 R 2.911(oa)-.8 G -.2(vo)-3.111 G .411
+(sion. T)108 552 R 2.911(oa)-.8 G -.2(vo)-3.111 G .411
 (id con\215icts with parameter e).2 F .411(xpansion, the string)-.15 F
-F2(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F
-(xpan-)-.15 E(sion.)108 429.6 Q 1.476(This construct is typically used \
-as shorthand when the common pre\214x of the strings to be generated is)
-108 446.4 R(longer than in the abo)108 458.4 Q .3 -.15(ve ex)-.15 H
-(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 475.2 Q -.65(w,)-.25
-G(dist,b).65 E(ugs})-.2 E(or)108 487.2 Q(cho)144 499.2 Q
+F1(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F
+(xpan-)-.15 E(sion.)108 564 Q 1.476(This construct is typically used as\
+ shorthand when the common pre\214x of the strings to be generated is)
+108 580.8 R(longer than in the abo)108 592.8 Q .3 -.15(ve ex)-.15 H
+(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 609.6 Q -.65(w,)-.25
+G(dist,b).65 E(ugs})-.2 E(or)108 621.6 Q(cho)144 633.6 Q
 (wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15 E(w_e)
--.25 E(x}})-.15 E .618(Brace e)108 516 R .618
+-.25 E(x}})-.15 E .618(Brace e)108 650.4 R .618
 (xpansion introduces a slight incompatibility with historical v)-.15 F
-.618(ersions of)-.15 F F2(sh)3.118 E F0(.)A F2(sh)5.618 E F0 .618
+.618(ersions of)-.15 F F1(sh)3.118 E F0(.)A F1(sh)5.618 E F0 .618
 (does not treat open-)3.118 F .247
-(ing or closing braces specially when the)108 528 R 2.747(ya)-.15 G .247
-(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248
-(es them in the output.)-.15 F F2(Bash)5.248 E F0(remo)108 540 Q -.15
+(ing or closing braces specially when the)108 662.4 R 2.747(ya)-.15 G
+.247(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248
+(es them in the output.)-.15 F F1(Bash)5.248 E F0(remo)108 674.4 Q -.15
 (ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03
 (ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03
-(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F2(sh)
-3.53 E F0(as)3.53 E F1(\214le{1,2})108 552 Q F0 .514
+(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F1(sh)
+3.53 E F0(as)3.53 E F2(\214le{1,2})108 686.4 Q F0 .514
 (appears identically in the output.)3.014 F .515(The same w)5.515 F .515
-(ord is output as)-.1 F F1 .515(\214le1 \214le2)4.925 F F0 .515(after e)
-3.035 F .515(xpansion by)-.15 F F2(bash)3.015 E F0(.)A .437
-(If strict compatibility with)108 564 R F2(sh)2.936 E F0 .436
-(is desired, start)2.936 F F2(bash)2.936 E F0 .436(with the)2.936 F F2
+(ord is output as)-.1 F F2 .515(\214le1 \214le2)4.925 F F0 .515(after e)
+3.035 F .515(xpansion by)-.15 F F1(bash)3.015 E F0(.)A .437
+(If strict compatibility with)108 698.4 R F1(sh)2.936 E F0 .436
+(is desired, start)2.936 F F1(bash)2.936 E F0 .436(with the)2.936 F F1
 (+B)2.936 E F0 .436(option or disable brace e)2.936 F .436
-(xpansion with the)-.15 F F2(+B)108 576 Q F0(option to the)2.5 E F2(set)
-2.5 E F0(command \(see)2.5 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
--.828 E F0(belo)2.25 E(w\).)-.25 E F2 -.18(Ti)87 592.8 S(lde Expansion)
-.18 E F0 1.086(If a w)108 604.8 R 1.086(ord be)-.1 F 1.086
-(gins with an unquoted tilde character \(`)-.15 F F2(~)A F0 1.087
+(xpansion with the)-.15 F F1(+B)108 710.4 Q F0(option to the)2.5 E F1
+(set)2.5 E F0(command \(see)2.5 E F4(SHELL B)2.5 E(UIL)-.09 E
+(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(16)199.835 E 0 Cg EP
+%%Page: 17 18
+%%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 -.18(Ti)87 84 S(lde Expansion).18 E F0
+1.086(If a w)108 96 R 1.086(ord be)-.1 F 1.086
+(gins with an unquoted tilde character \(`)-.15 F F1(~)A F0 1.087
 ('\), all of the characters preceding the \214rst unquoted)B .185(slash\
  \(or all characters, if there is no unquoted slash\) are considered a)
-108 616.8 R F1(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685(fn)
--5.185 G .185(one of the characters)-2.685 F .725(in the tilde-pre\214x\
- are quoted, the characters in the tilde-pre\214x follo)108 628.8 R .726
-(wing the tilde are treated as a possible)-.25 F F1(lo)108 640.8 Q .523
-(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523
+108 108 R/F2 10/Times-Italic@0 SF(tilde-pr)2.685 E(e\214x)-.37 E F0
+5.185(.I)C 2.685(fn)-5.185 G .185(one of the characters)-2.685 F .725(i\
+n the tilde-pre\214x are quoted, the characters in the tilde-pre\214x f\
+ollo)108 120 R .726(wing the tilde are treated as a possible)-.25 F F2
+(lo)108 132 Q .523(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523
 (his login name is the null string, the tilde is replaced with the v)
--3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 652.8 Q F4
-(.)A F0(If)4.786 E F3(HOME)2.786 E F0 .287
-(is unset, the home directory of the user e)2.536 F -.15(xe)-.15 G .287
-(cuting the shell is substituted instead.).15 F(Other)5.287 E(-)-.2 E(w\
-ise, the tilde-pre\214x is replaced with the home directory associated \
-with the speci\214ed login name.)108 664.8 Q .093
-(If the tilde-pre\214x is a `~+', the v)108 681.6 R .092
+-3.023 F .522(alue of the shell parameter)-.25 F/F3 9/Times-Bold@0 SF
+(HOME)108 144 Q/F4 9/Times-Roman@0 SF(.)A F0(If)4.786 E F3(HOME)2.786 E
+F0 .287(is unset, the home directory of the user e)2.536 F -.15(xe)-.15
+G .287(cuting the shell is substituted instead.).15 F(Other)5.287 E(-)
+-.2 E(wise, the tilde-pre\214x is replaced with the home directory asso\
+ciated with the speci\214ed login name.)108 156 Q .093
+(If the tilde-pre\214x is a `~+', the v)108 172.8 R .092
 (alue of the shell v)-.25 F(ariable)-.25 E F3(PWD)2.592 E F0 .092
 (replaces the tilde-pre\214x.)2.342 F .092(If the tilde-pre\214x is)
-5.092 F 3.403(a`)108 693.6 S .903(~\255', the v)-3.403 F .903
+5.092 F 3.403(a`)108 184.8 S .903(~\255', the v)-3.403 F .903
 (alue of the shell v)-.25 F(ariable)-.25 E F3(OLDPWD)3.404 E F4(,)A F0
 .904(if it is set, is substituted.)3.154 F .904(If the characters follo)
 5.904 F .904(wing the)-.25 F 1.642
-(tilde in the tilde-pre\214x consist of a number)108 705.6 R F1(N)4.142
+(tilde in the tilde-pre\214x consist of a number)108 196.8 R F2(N)4.142
 E F0 4.142(,o)C 1.642(ptionally pre\214x)-4.142 F 1.641
 (ed by a `+' or a `\255', the tilde-pre\214x is)-.15 F 1.437(replaced w\
 ith the corresponding element from the directory stack, as it w)108
-717.6 R 1.438(ould be displayed by the)-.1 F F2(dirs)3.938 E F0 -.2(bu)
-108 729.6 S .455(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.955(dw).1 G
+208.8 R 1.438(ould be displayed by the)-.1 F F1(dirs)3.938 E F0 -.2(bu)
+108 220.8 S .455(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.955(dw).1 G
 .455(ith the tilde-pre\214x as an ar)-2.955 F 2.954(gument. If)-.18 F
 .454(the characters follo)2.954 F .454
-(wing the tilde in the tilde-pre\214x)-.25 F(GNU Bash-3.1-beta1)72 768 Q
-(2005 Aug 27)122.91 E(16)197.89 E 0 Cg EP
-%%Page: 17 18
-%%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
+(wing the tilde in the tilde-pre\214x)-.25 F
 (consist of a number without a leading `+' or `\255', `+' is assumed.)
-108 84 Q(If the login name is in)108 100.8 Q -.25(va)-.4 G
+108 232.8 Q(If the login name is in)108 249.6 Q -.25(va)-.4 G
 (lid, or the tilde e).25 E(xpansion f)-.15 E(ails, the w)-.1 E
-(ord is unchanged.)-.1 E .166(Each v)108 117.6 R .167
+(ord is unchanged.)-.1 E .166(Each v)108 266.4 R .167
 (ariable assignment is check)-.25 F .167(ed for unquoted tilde-pre\214x)
--.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F/F1 10
-/Times-Bold@0 SF(:)2.667 E F0 .167(or the \214rst)2.667 F F1(=)2.667 E
-F0 5.167(.I)C(n)-5.167 E .282(these cases, tilde e)108 129.6 R .282
-(xpansion is also performed.)-.15 F(Consequently)5.282 E 2.782(,o)-.65 G
-.282(ne may use \214le names with tildes in assign-)-2.782 F(ments to)
-108 141.6 Q/F2 9/Times-Bold@0 SF -.666(PA)2.5 G(TH)-.189 E/F3 9
-/Times-Roman@0 SF(,)A F2(MAILP)2.25 E -.855(AT)-.666 G(H).855 E F3(,)A
-F0(and)2.25 E F2(CDP)2.5 E -.855(AT)-.666 G(H).855 E F3(,)A F0
-(and the shell assigns the e)2.25 E(xpanded v)-.15 E(alue.)-.25 E F1 -.1
-(Pa)87 158.4 S(rameter Expansion).1 E F0 1.605(The `)108 170.4 R F1($)A
-F0 4.105('c)C 1.605(haracter introduces parameter e)-4.105 F 1.606
+-.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F1(:)2.667 E
+F0 .167(or the \214rst)2.667 F F1(=)2.667 E F0 5.167(.I)C(n)-5.167 E
+.282(these cases, tilde e)108 278.4 R .282(xpansion is also performed.)
+-.15 F(Consequently)5.282 E 2.782(,o)-.65 G .282
+(ne may use \214le names with tildes in assign-)-2.782 F(ments to)108
+290.4 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 E -.855(AT)
+-.666 G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT)-.666 G(H)
+.855 E F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)-.15 E
+(alue.)-.25 E F1 -.1(Pa)87 307.2 S(rameter Expansion).1 E F0 1.605
+(The `)108 319.2 R F1($)A F0 4.105('c)C 1.605
+(haracter introduces parameter e)-4.105 F 1.606
 (xpansion, command substitution, or arithmetic e)-.15 F 4.106
-(xpansion. The)-.15 F .407(parameter name or symbol to be e)108 182.4 R
+(xpansion. The)-.15 F .407(parameter name or symbol to be e)108 331.2 R
 .407(xpanded may be enclosed in braces, which are optional b)-.15 F .406
 (ut serv)-.2 F 2.906(et)-.15 G 2.906(op)-2.906 G(ro-)-2.906 E .032
-(tect the v)108 194.4 R .032(ariable to be e)-.25 F .032
+(tect the v)108 343.2 R .032(ariable to be e)-.25 F .032
 (xpanded from characters immediately follo)-.15 F .033
 (wing it which could be interpreted as part)-.25 F(of the name.)108
-206.4 Q 1.19
+355.2 Q 1.19
 (When braces are used, the matching ending brace is the \214rst `)108
-223.2 R F1(})A F0 3.689('n)C 1.189
-(ot escaped by a backslash or within a)-3.689 F 2.15
-(quoted string, and not within an embedded arithmetic e)108 235.2 R 2.15
-(xpansion, command substitution, or parameter)-.15 F -.15(ex)108 247.2 S
-(pansion.).15 E(${)108 264 Q/F4 10/Times-Italic@0 SF(par)A(ameter)-.15 E
-F0(})A 1.205(The v)144 276 R 1.205(alue of)-.25 F F4(par)3.705 E(ameter)
--.15 E F0 1.204(is substituted.)3.705 F 1.204
-(The braces are required when)6.204 F F4(par)4.954 E(ameter)-.15 E F0
-1.204(is a positional)4.434 F .264
-(parameter with more than one digit, or when)144 288 R F4(par)4.014 E
-(ameter)-.15 E F0 .264(is follo)3.494 F .264
+372 R F1(})A F0 3.689('n)C 1.189(ot escaped by a backslash or within a)
+-3.689 F 2.15(quoted string, and not within an embedded arithmetic e)108
+384 R 2.15(xpansion, command substitution, or parameter)-.15 F -.15(ex)
+108 396 S(pansion.).15 E(${)108 412.8 Q F2(par)A(ameter)-.15 E F0(})A
+1.205(The v)144 424.8 R 1.205(alue of)-.25 F F2(par)3.705 E(ameter)-.15
+E F0 1.204(is substituted.)3.705 F 1.204(The braces are required when)
+6.204 F F2(par)4.954 E(ameter)-.15 E F0 1.204(is a positional)4.434 F
+.264(parameter with more than one digit, or when)144 436.8 R F2(par)
+4.014 E(ameter)-.15 E F0 .264(is follo)3.494 F .264
 (wed by a character which is not to)-.25 F
-(be interpreted as part of its name.)144 300 Q 1.509
-(If the \214rst character of)108 316.8 R F4(par)4.009 E(ameter)-.15 E F0
+(be interpreted as part of its name.)144 448.8 Q 1.509
+(If the \214rst character of)108 465.6 R F2(par)4.009 E(ameter)-.15 E F0
 1.509(is an e)4.009 F 1.509(xclamation point, a le)-.15 F -.15(ve)-.25 G
 4.009(lo).15 G 4.008(fv)-4.009 G 1.508
-(ariable indirection is introduced.)-4.258 F F1(Bash)108 328.8 Q F0 .106
+(ariable indirection is introduced.)-4.258 F F1(Bash)108 477.6 Q F0 .106
 (uses the v)2.606 F .106(alue of the v)-.25 F .106
-(ariable formed from the rest of)-.25 F F4(par)2.606 E(ameter)-.15 E F0
+(ariable formed from the rest of)-.25 F F2(par)2.606 E(ameter)-.15 E F0
 .106(as the name of the v)2.606 F .106(ariable; this v)-.25 F(ari-)-.25
-E .352(able is then e)108 340.8 R .352(xpanded and that v)-.15 F .351
+E .352(able is then e)108 489.6 R .352(xpanded and that v)-.15 F .351
 (alue is used in the rest of the substitution, rather than the v)-.25 F
-.351(alue of)-.25 F F4(par)2.851 E(ame-)-.15 E(ter)108 352.8 Q F0 2.519
-(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F4(indir)
+.351(alue of)-.25 F F2(par)2.851 E(ame-)-.15 E(ter)108 501.6 Q F0 2.519
+(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F2(indir)
 2.519 E .019(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019
-F .02(xceptions to this are the e)-.15 F .02(xpansions of ${!)-.15 F F4
-(pr)A(e\214x)-.37 E F0 .02(*} and)B(${)108 364.8 Q F1(!)A F4(name)A F0
-([)A F4(@)A F0 .763(]} described belo)B 4.563 -.65(w. T)-.25 H .763
+F .02(xceptions to this are the e)-.15 F .02(xpansions of ${!)-.15 F F2
+(pr)A(e\214x)-.37 E F0 .02(*} and)B(${)108 513.6 Q F1(!)A F2(name)A F0
+([)A F2(@)A F0 .763(]} described belo)B 4.563 -.65(w. T)-.25 H .763
 (he e).65 F .763(xclamation point must immediately follo)-.15 F 3.263
 (wt)-.25 G .763(he left brace in order to)-3.263 F
-(introduce indirection.)108 376.8 Q .334(In each of the cases belo)108
-393.6 R -.65(w,)-.25 G F4(wor)3.484 E(d)-.37 E F0 .334
+(introduce indirection.)108 525.6 Q .334(In each of the cases belo)108
+542.4 R -.65(w,)-.25 G F2(wor)3.484 E(d)-.37 E F0 .334
 (is subject to tilde e)2.834 F .334(xpansion, parameter e)-.15 F .334
-(xpansion, command substitution,)-.15 F 1.418(and arithmetic e)108 405.6
+(xpansion, command substitution,)-.15 F 1.418(and arithmetic e)108 554.4
 R 3.918(xpansion. When)-.15 F 1.418(not performing substring e)3.918 F
 (xpansion,)-.15 E F1(bash)3.918 E F0 1.418
 (tests for a parameter that is)3.918 F(unset or null; omitting the colo\
-n results in a test only for a parameter that is unset.)108 417.6 Q(${)
-108 434.4 Q F4(par)A(ameter)-.15 E F1<3aad>A F4(wor)A(d)-.37 E F0(})A F1
-.722(Use Default V)144 446.4 R(alues)-.92 E F0 5.722(.I)C(f)-5.722 E F4
+n results in a test only for a parameter that is unset.)108 566.4 Q(${)
+108 583.2 Q F2(par)A(ameter)-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(})A F1
+.722(Use Default V)144 595.2 R(alues)-.92 E F0 5.722(.I)C(f)-5.722 E F2
 (par)4.472 E(ameter)-.15 E F0 .723(is unset or null, the e)3.952 F .723
-(xpansion of)-.15 F F4(wor)3.563 E(d)-.37 E F0 .723(is substituted.)
-3.993 F(Other)5.723 E(-)-.2 E(wise, the v)144 458.4 Q(alue of)-.25 E F4
-(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 470.4 Q F4
-(par)A(ameter)-.15 E F1(:=)A F4(wor)A(d)-.37 E F0(})A F1 2.005
-(Assign Default V)144 482.4 R(alues)-.92 E F0 7.005(.I)C(f)-7.005 E F4
+(xpansion of)-.15 F F2(wor)3.563 E(d)-.37 E F0 .723(is substituted.)
+3.993 F(Other)5.723 E(-)-.2 E(wise, the v)144 607.2 Q(alue of)-.25 E F2
+(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 619.2 Q F2
+(par)A(ameter)-.15 E F1(:=)A F2(wor)A(d)-.37 E F0(})A F1 2.005
+(Assign Default V)144 631.2 R(alues)-.92 E F0 7.005(.I)C(f)-7.005 E F2
 (par)5.755 E(ameter)-.15 E F0 2.005(is unset or null, the e)5.235 F
-2.004(xpansion of)-.15 F F4(wor)4.844 E(d)-.37 E F0 2.004
-(is assigned to)5.274 F F4(par)144 494.4 Q(ameter)-.15 E F0 5.278(.T).73
-G .278(he v)-5.278 F .278(alue of)-.25 F F4(par)4.028 E(ameter)-.15 E F0
+2.004(xpansion of)-.15 F F2(wor)4.844 E(d)-.37 E F0 2.004
+(is assigned to)5.274 F F2(par)144 643.2 Q(ameter)-.15 E F0 5.278(.T).73
+G .278(he v)-5.278 F .278(alue of)-.25 F F2(par)4.028 E(ameter)-.15 E F0
 .278(is then substituted.)3.508 F .279
 (Positional parameters and special param-)5.278 F
-(eters may not be assigned to in this w)144 506.4 Q(ay)-.1 E(.)-.65 E
-(${)108 518.4 Q F4(par)A(ameter)-.15 E F1(:?)A F4(wor)A(d)-.37 E F0(})A
-F1 .535(Display Err)144 530.4 R .535(or if Null or Unset)-.18 F F0 5.535
-(.I)C(f)-5.535 E F4(par)4.285 E(ameter)-.15 E F0 .535
-(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F4(wor)3.035 E
-(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 542.4 R
-.661(fect if)-.25 F F4(wor)3.501 E(d)-.37 E F0 .662(is not present\) is\
+(eters may not be assigned to in this w)144 655.2 Q(ay)-.1 E(.)-.65 E
+(${)108 667.2 Q F2(par)A(ameter)-.15 E F1(:?)A F2(wor)A(d)-.37 E F0(})A
+F1 .535(Display Err)144 679.2 R .535(or if Null or Unset)-.18 F F0 5.535
+(.I)C(f)-5.535 E F2(par)4.285 E(ameter)-.15 E F0 .535
+(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F2(wor)3.035 E
+(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 691.2 R
+.661(fect if)-.25 F F2(wor)3.501 E(d)-.37 E F0 .662(is not present\) is\
  written to the standard error and the shell, if it is not)3.931 F
-(interacti)144 554.4 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
--2.65 F(the v)2.5 E(alue of)-.25 E F4(par)2.5 E(ameter)-.15 E F0
-(is substituted.)2.5 E(${)108 566.4 Q F4(par)A(ameter)-.15 E F1(:+)A F4
-(wor)A(d)-.37 E F0(})A F1 .745(Use Alter)144 578.4 R .745(nate V)-.15 F
-(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F4(par)4.495 E(ameter)-.15 E F0
-.745(is null or unset, nothing is substituted, otherwise the e)3.975 F
-(xpan-)-.15 E(sion of)144 590.4 Q F4(wor)2.84 E(d)-.37 E F0
-(is substituted.)3.27 E(${)108 602.4 Q F4(par)A(ameter)-.15 E F1(:)A F4
-(of)A(fset)-.18 E F0(})A(${)108 614.4 Q F4(par)A(ameter)-.15 E F1(:)A F4
-(of)A(fset)-.18 E F1(:)A F4(length)A F0(})A F1 .796
-(Substring Expansion.)144 626.4 R F0 .796(Expands to up to)5.796 F F4
-(length)3.296 E F0 .796(characters of)3.296 F F4(par)3.296 E(ameter)-.15
-E F0 .797(starting at the character)3.296 F .229(speci\214ed by)144
-638.4 R F4(of)2.729 E(fset)-.18 E F0 5.229(.I)C(f)-5.229 E F4(length)
-2.729 E F0 .229(is omitted, e)2.729 F .229(xpands to the substring of)
--.15 F F4(par)2.729 E(ameter)-.15 E F0 .228(starting at the char)2.728 F
-(-)-.2 E .432(acter speci\214ed by)144 650.4 R F4(of)2.933 E(fset)-.18 E
-F0(.)A F4(length)5.433 E F0(and)2.933 E F4(of)2.933 E(fset)-.18 E F0
-.433(are arithmetic e)2.933 F .433(xpressions \(see)-.15 F F2 .433
-(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144 662.4 S(ION).855 E F0
-(belo)2.577 E(w\).)-.25 E F4(length)5.327 E F0 .327(must e)2.827 F -.25
-(va)-.25 G .326(luate to a number greater than or equal to zero.).25 F
-(If)5.326 E F4(of)2.826 E(fset)-.18 E F0 -.25(eva)2.826 G(luates).25 E
-.015(to a number less than zero, the v)144 674.4 R .015
+(interacti)144 703.2 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
+-2.65 F(the v)2.5 E(alue of)-.25 E F2(par)2.5 E(ameter)-.15 E F0
+(is substituted.)2.5 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(17)
+199.835 E 0 Cg EP
+%%Page: 18 19
+%%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(${)108 84 Q/F1 10/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10
+/Times-Bold@0 SF(:+)A F1(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 96
+R .745(nate V)-.15 F(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F1(par)4.495 E
+(ameter)-.15 E F0 .745
+(is null or unset, nothing is substituted, otherwise the e)3.975 F
+(xpan-)-.15 E(sion of)144 108 Q F1(wor)2.84 E(d)-.37 E F0
+(is substituted.)3.27 E(${)108 120 Q F1(par)A(ameter)-.15 E F2(:)A F1
+(of)A(fset)-.18 E F0(})A(${)108 132 Q F1(par)A(ameter)-.15 E F2(:)A F1
+(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .796
+(Substring Expansion.)144 144 R F0 .796(Expands to up to)5.796 F F1
+(length)3.296 E F0 .796(characters of)3.296 F F1(par)3.296 E(ameter)-.15
+E F0 .797(starting at the character)3.296 F .229(speci\214ed by)144 156
+R F1(of)2.729 E(fset)-.18 E F0 5.229(.I)C(f)-5.229 E F1(length)2.729 E
+F0 .229(is omitted, e)2.729 F .229(xpands to the substring of)-.15 F F1
+(par)2.729 E(ameter)-.15 E F0 .228(starting at the char)2.728 F(-)-.2 E
+.432(acter speci\214ed by)144 168 R F1(of)2.933 E(fset)-.18 E F0(.)A F1
+(length)5.433 E F0(and)2.933 E F1(of)2.933 E(fset)-.18 E F0 .433
+(are arithmetic e)2.933 F .433(xpressions \(see)-.15 F/F3 9/Times-Bold@0
+SF .433(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144 180 S(ION).855
+E F0(belo)2.577 E(w\).)-.25 E F1(length)5.327 E F0 .327(must e)2.827 F
+-.25(va)-.25 G .326(luate to a number greater than or equal to zero.).25
+F(If)5.326 E F1(of)2.826 E(fset)-.18 E F0 -.25(eva)2.826 G(luates).25 E
+.015(to a number less than zero, the v)144 192 R .015
 (alue is used as an of)-.25 F .015(fset from the end of the v)-.25 F
-.016(alue of)-.25 F F4(par)2.516 E(ameter)-.15 E F0 5.016(.I)C(f)-5.016
-E F4(par)144 686.4 Q(ameter)-.15 E F0(is)3.25 E F1(@)3.25 E F0 3.25(,t)C
-.75(he result is)-3.25 F F4(length)3.25 E F0 .75
-(positional parameters be)3.25 F .75(ginning at)-.15 F F4(of)3.25 E
-(fset)-.18 E F0 5.75(.I)C(f)-5.75 E F4(par)3.25 E(ameter)-.15 E F0 .75
-(is an)3.25 F 1.834(array name inde)144 698.4 R -.15(xe)-.15 G 4.334(db)
+.016(alue of)-.25 F F1(par)2.516 E(ameter)-.15 E F0 5.016(.I)C(f)-5.016
+E F1(par)144 204 Q(ameter)-.15 E F0(is)3.25 E F2(@)3.25 E F0 3.25(,t)C
+.75(he result is)-3.25 F F1(length)3.25 E F0 .75
+(positional parameters be)3.25 F .75(ginning at)-.15 F F1(of)3.25 E
+(fset)-.18 E F0 5.75(.I)C(f)-5.75 E F1(par)3.25 E(ameter)-.15 E F0 .75
+(is an)3.25 F 1.834(array name inde)144 216 R -.15(xe)-.15 G 4.334(db)
 .15 G 4.334(y@o)-4.334 G 4.335(r*)-4.334 G 4.335(,t)-4.335 G 1.835
-(he result is the)-4.335 F F4(length)4.335 E F0 1.835
-(members of the array be)4.335 F 1.835(ginning with)-.15 F(${)144 710.4
-Q F4(par)A(ameter)-.15 E F0([)A F4(of)A(fset)-.18 E F0 2.611(]}. A)B(ne)
-2.611 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F4(of)2.761 E(fset)-.18 E
+(he result is the)-4.335 F F1(length)4.335 E F0 1.835
+(members of the array be)4.335 F 1.835(ginning with)-.15 F(${)144 228 Q
+F1(par)A(ameter)-.15 E F0([)A F1(of)A(fset)-.18 E F0 2.611(]}. A)B(ne)
+2.611 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F1(of)2.761 E(fset)-.18 E
 F0 .111(is tak)2.611 F .111(en relati)-.1 F .411 -.15(ve t)-.25 H 2.611
 (oo).15 G .11(ne greater than the maximum inde)-2.611 F 2.61(xo)-.15 G
-(f)-2.61 E .92(the speci\214ed array)144 722.4 R 5.92(.N)-.65 G .92
+(f)-2.61 E .92(the speci\214ed array)144 240 R 5.92(.N)-.65 G .92
 (ote that a ne)-5.92 F -.05(ga)-.15 G(ti).05 E 1.22 -.15(ve o)-.25 H
 -.25(ff).15 G .92(set must be separated from the colon by at least one)
-.25 F(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(17)197.89 E 0 Cg
-EP
-%%Page: 18 19
-%%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 .641(space to a)144 84 R -.2(vo)-.2 G .641
+.25 F .641(space to a)144 252 R -.2(vo)-.2 G .641
 (id being confused with the :- e).2 F 3.141(xpansion. Substring)-.15 F
 (inde)3.141 E .64(xing is zero-based unless the)-.15 F
-(positional parameters are used, in which case the inde)144 96 Q
-(xing starts at 1.)-.15 E(${)108 112.8 Q/F1 10/Times-Bold@0 SF(!)A/F2 10
-/Times-Italic@0 SF(pr)A(e\214x)-.37 E F1(*)A F0(})A(${)108 124.8 Q F1(!)
-A F2(pr)A(e\214x)-.37 E F1(@)A F0(})A .42(Expands to the names of v)144
-136.8 R .42(ariables whose names be)-.25 F .42(gin with)-.15 F F2(pr)
-2.92 E(e\214x)-.37 E F0 2.92(,s)C .42(eparated by the \214rst character)
--2.92 F(of the)144 148.8 Q/F3 9/Times-Bold@0 SF(IFS)2.5 E F0(special v)
-2.25 E(ariable.)-.25 E(${)108 165.6 Q F1(!)A F2(name)A F0([)A F2(@)A F0
-(]})A(${)108 177.6 Q F1(!)A F2(name)A F0([)A F2(*)A F0(]})A(If)144 189.6
-Q F2(name)2.922 E F0 .421(is an array v)2.922 F .421(ariable, e)-.25 F
-.421(xpands to the list of array indices \(k)-.15 F -.15(ey)-.1 G .421
-(s\) assigned in).15 F F2(name)2.921 E F0 5.421(.I)C(f)-5.421 E F2(name)
-2.921 E F0 .237(is not an array)144 201.6 R 2.737(,e)-.65 G .237
-(xpands to 0 if)-2.887 F F2(name)2.737 E F0 .238
-(is set and null otherwise.)2.737 F(When)5.238 E F2(@)2.738 E F0 .238
+(positional parameters are used, in which case the inde)144 264 Q
+(xing starts at 1.)-.15 E(${)108 280.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2
+(*)A F0(})A(${)108 292.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(@)A F0(})A
+.42(Expands to the names of v)144 304.8 R .42(ariables whose names be)
+-.25 F .42(gin with)-.15 F F1(pr)2.92 E(e\214x)-.37 E F0 2.92(,s)C .42
+(eparated by the \214rst character)-2.92 F(of the)144 316.8 Q F3(IFS)2.5
+E F0(special v)2.25 E(ariable.)-.25 E(${)108 333.6 Q F2(!)A F1(name)A F0
+([)A F1(@)A F0(]})A(${)108 345.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0(]})
+A(If)144 357.6 Q F1(name)2.922 E F0 .421(is an array v)2.922 F .421
+(ariable, e)-.25 F .421(xpands to the list of array indices \(k)-.15 F
+-.15(ey)-.1 G .421(s\) assigned in).15 F F1(name)2.921 E F0 5.421(.I)C
+(f)-5.421 E F1(name)2.921 E F0 .237(is not an array)144 369.6 R 2.737
+(,e)-.65 G .237(xpands to 0 if)-2.887 F F1(name)2.737 E F0 .238
+(is set and null otherwise.)2.737 F(When)5.238 E F1(@)2.738 E F0 .238
 (is used and the e)2.738 F(xpansion)-.15 E
-(appears within double quotes, each k)144 213.6 Q .3 -.15(ey ex)-.1 H
-(pands to a separate w).15 E(ord.)-.1 E(${)108 230.4 Q F1(#)A F2(par)A
-(ameter)-.15 E F0(})A 1.392(The length in characters of the v)144 242.4
-R 1.392(alue of)-.25 F F2(par)3.892 E(ameter)-.15 E F0 1.392
-(is substituted.)3.892 F(If)6.392 E F2(par)5.142 E(ameter)-.15 E F0(is)
-4.622 E F1(*)3.891 E F0(or)3.891 E F1(@)3.891 E F0 3.891(,t)C(he)-3.891
-E -.25(va)144 254.4 S 1.748
+(appears within double quotes, each k)144 381.6 Q .3 -.15(ey ex)-.1 H
+(pands to a separate w).15 E(ord.)-.1 E(${)108 398.4 Q F2(#)A F1(par)A
+(ameter)-.15 E F0(})A 1.392(The length in characters of the v)144 410.4
+R 1.392(alue of)-.25 F F1(par)3.892 E(ameter)-.15 E F0 1.392
+(is substituted.)3.892 F(If)6.392 E F1(par)5.142 E(ameter)-.15 E F0(is)
+4.622 E F2(*)3.891 E F0(or)3.891 E F2(@)3.891 E F0 3.891(,t)C(he)-3.891
+E -.25(va)144 422.4 S 1.748
 (lue substituted is the number of positional parameters.).25 F(If)6.749
-E F2(par)5.499 E(ameter)-.15 E F0 1.749(is an array name sub-)4.979 F
-(scripted by)144 266.4 Q F1(*)2.5 E F0(or)2.5 E F1(@)2.5 E F0 2.5(,t)C
+E F1(par)5.499 E(ameter)-.15 E F0 1.749(is an array name sub-)4.979 F
+(scripted by)144 434.4 Q F2(*)2.5 E F0(or)2.5 E F2(@)2.5 E F0 2.5(,t)C
 (he v)-2.5 E(alue substituted is the number of elements in the array)
--.25 E(.)-.65 E(${)108 283.2 Q F2(par)A(ameter)-.15 E F1(#)A F2(wor)A(d)
--.37 E F0(})A(${)108 295.2 Q F2(par)A(ameter)-.15 E F1(##)A F2(wor)A(d)
--.37 E F0(})A(The)144 307.2 Q F2(wor)3.331 E(d)-.37 E F0 .491(is e)3.761
+-.25 E(.)-.65 E(${)108 451.2 Q F1(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)
+-.37 E F0(})A(${)108 463.2 Q F1(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)
+-.37 E F0(})A(The)144 475.2 Q F1(wor)3.331 E(d)-.37 E F0 .491(is e)3.761
 F .491(xpanded to produce a pattern just as in pathname e)-.15 F 2.99
 (xpansion. If)-.15 F .49(the pattern matches)2.99 F .411(the be)144
-319.2 R .411(ginning of the v)-.15 F .411(alue of)-.25 F F2(par)2.911 E
+487.2 R .411(ginning of the v)-.15 F .411(alue of)-.25 F F1(par)2.911 E
 (ameter)-.15 E F0 2.911(,t).73 G .411(hen the result of the e)-2.911 F
 .411(xpansion is the e)-.15 F .412(xpanded v)-.15 F .412(alue of)-.25 F
-F2(par)145.25 331.2 Q(ameter)-.15 E F0 .607
-(with the shortest matching pattern \(the `)3.838 F(`)-.74 E F1(#)A F0
+F1(par)145.25 499.2 Q(ameter)-.15 E F0 .607
+(with the shortest matching pattern \(the `)3.838 F(`)-.74 E F2(#)A F0
 2.087 -.74('' c)D .607(ase\) or the longest matching pattern \(the).74 F
--.74(``)144 343.2 S F1(##).74 E F0 1.653 -.74('' c)D .173
-(ase\) deleted.).74 F(If)5.173 E F2(par)3.923 E(ameter)-.15 E F0(is)
-3.403 E F1(@)2.673 E F0(or)2.673 E F1(*)2.673 E F0 2.674(,t)C .174
+-.74(``)144 511.2 S F2(##).74 E F0 1.653 -.74('' c)D .173
+(ase\) deleted.).74 F(If)5.173 E F1(par)3.923 E(ameter)-.15 E F0(is)
+3.403 E F2(@)2.673 E F0(or)2.673 E F2(*)2.673 E F0 2.674(,t)C .174
 (he pattern remo)-2.674 F -.25(va)-.15 G 2.674(lo).25 G .174
 (peration is applied to each posi-)-2.674 F .655
-(tional parameter in turn, and the e)144 355.2 R .654
-(xpansion is the resultant list.)-.15 F(If)5.654 E F2(par)4.404 E
+(tional parameter in turn, and the e)144 523.2 R .654
+(xpansion is the resultant list.)-.15 F(If)5.654 E F1(par)4.404 E
 (ameter)-.15 E F0 .654(is an array v)3.884 F(ariable)-.25 E .65
-(subscripted with)144 367.2 R F1(@)3.15 E F0(or)3.15 E F1(*)3.15 E F0
+(subscripted with)144 535.2 R F2(@)3.15 E F0(or)3.15 E F2(*)3.15 E F0
 3.15(,t)C .65(he pattern remo)-3.15 F -.25(va)-.15 G 3.151(lo).25 G .651
 (peration is applied to each member of the array in)-3.151 F
-(turn, and the e)144 379.2 Q(xpansion is the resultant list.)-.15 E(${)
-108 396 Q F2(par)A(ameter)-.15 E F1(%)A F2(wor)A(d)-.37 E F0(})A(${)108
-408 Q F2(par)A(ameter)-.15 E F1(%%)A F2(wor)A(d)-.37 E F0(})A(The)144
-420 Q F2(wor)2.619 E(d)-.37 E F0 .119(is e)2.619 F .119
+(turn, and the e)144 547.2 Q(xpansion is the resultant list.)-.15 E(${)
+108 564 Q F1(par)A(ameter)-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108
+576 Q F1(par)A(ameter)-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A(The)144
+588 Q F1(wor)2.619 E(d)-.37 E F0 .119(is e)2.619 F .119
 (xpanded to produce a pattern just as in pathname e)-.15 F 2.619
 (xpansion. If)-.15 F .118(the pattern matches a)2.619 F 2.401
-(trailing portion of the e)144 432 R 2.401(xpanded v)-.15 F 2.401
-(alue of)-.25 F F2(par)4.901 E(ameter)-.15 E F0 4.901(,t).73 G 2.402
+(trailing portion of the e)144 600 R 2.401(xpanded v)-.15 F 2.401
+(alue of)-.25 F F1(par)4.901 E(ameter)-.15 E F0 4.901(,t).73 G 2.402
 (hen the result of the e)-4.901 F 2.402(xpansion is the)-.15 F -.15(ex)
-144 444 S 1.153(panded v).15 F 1.153(alue of)-.25 F F2(par)4.902 E
+144 612 S 1.153(panded v).15 F 1.153(alue of)-.25 F F1(par)4.902 E
 (ameter)-.15 E F0 1.152(with the shortest matching pattern \(the `)4.382
-F(`)-.74 E F1(%)A F0 2.632 -.74('' c)D 1.152(ase\) or the longest).74 F
-.79(matching pattern \(the `)144 456 R(`)-.74 E F1(%%)A F0 2.27 -.74
-('' c)D .79(ase\) deleted.).74 F(If)5.79 E F2(par)4.54 E(ameter)-.15 E
-F0(is)4.02 E F1(@)3.29 E F0(or)3.29 E F1(*)3.29 E F0 3.29(,t)C .79
+F(`)-.74 E F2(%)A F0 2.632 -.74('' c)D 1.152(ase\) or the longest).74 F
+.79(matching pattern \(the `)144 624 R(`)-.74 E F2(%%)A F0 2.27 -.74
+('' c)D .79(ase\) deleted.).74 F(If)5.79 E F1(par)4.54 E(ameter)-.15 E
+F0(is)4.02 E F2(@)3.29 E F0(or)3.29 E F2(*)3.29 E F0 3.29(,t)C .79
 (he pattern remo)-3.29 F -.25(va)-.15 G 3.29(lo).25 G(pera-)-3.29 E
 1.758(tion is applied to each positional parameter in turn, and the e)
-144 468 R 1.758(xpansion is the resultant list.)-.15 F(If)6.758 E F2
-(par)145.25 480 Q(ameter)-.15 E F0 .088(is an array v)3.318 F .089
-(ariable subscripted with)-.25 F F1(@)2.589 E F0(or)2.589 E F1(*)2.589 E
+144 636 R 1.758(xpansion is the resultant list.)-.15 F(If)6.758 E F1
+(par)145.25 648 Q(ameter)-.15 E F0 .088(is an array v)3.318 F .089
+(ariable subscripted with)-.25 F F2(@)2.589 E F0(or)2.589 E F2(*)2.589 E
 F0 2.589(,t)C .089(he pattern remo)-2.589 F -.25(va)-.15 G 2.589(lo).25
 G .089(peration is applied to)-2.589 F
-(each member of the array in turn, and the e)144 492 Q
-(xpansion is the resultant list.)-.15 E(${)108 508.8 Q F2(par)A(ameter)
--.15 E F1(/)A F2(pattern)A F1(/)A F2(string)A F0(})A(${)108 520.8 Q F2
-(par)A(ameter)-.15 E F1(//)A F2(pattern)A F1(/)A F2(string)A F0(})A(The)
-144 532.8 Q F2(pattern)5.085 E F0 2.585(is e)5.085 F 2.585
+(each member of the array in turn, and the e)144 660 Q
+(xpansion is the resultant list.)-.15 E(${)108 676.8 Q F1(par)A(ameter)
+-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0(})A(The)144 688.8 Q F1
+(pattern)5.085 E F0 2.585(is e)5.085 F 2.585
 (xpanded to produce a pattern just as in pathname e)-.15 F(xpansion.)
--.15 E F2 -.8(Pa)7.585 G -.15(ra).8 G(meter).15 E F0(is)5.085 E -.15(ex)
-144 544.8 S 1.169(panded and the longest match of).15 F F2(pattern)3.669
-E F0(ag)3.669 E 1.169(ainst its v)-.05 F 1.17(alue is replaced with)-.25
-F F2(string)3.67 E F0 6.17(.I)C 3.67(nt)-6.17 G 1.17(he \214rst)-3.67 F
-2.028(form, only the \214rst match is replaced.)144 556.8 R 2.028
-(The second form causes all matches of)7.028 F F2(pattern)4.528 E F0
-2.028(to be)4.528 F 1.36(replaced with)144 568.8 R F2(string)3.86 E F0
-6.36(.I)C(f)-6.36 E F2(pattern)3.86 E F0(be)3.86 E 1.36(gins with)-.15 F
-F1(#)3.86 E F0 3.86(,i)C 3.86(tm)-3.86 G 1.36(ust match at the be)-3.86
-F 1.36(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 580.8 S .621
-(lue of).25 F F2(par)3.121 E(ameter)-.15 E F0 5.621(.I)C(f)-5.621 E F2
-(pattern)3.121 E F0(be)3.121 E .621(gins with)-.15 F F1(%)3.121 E F0
-3.121(,i)C 3.121(tm)-3.121 G .62(ust match at the end of the e)-3.121 F
-.62(xpanded v)-.15 F .62(alue of)-.25 F F2(par)144 592.8 Q(ameter)-.15 E
-F0 6.253(.I)C(f)-6.253 E F2(string)3.753 E F0 1.253(is null, matches of)
-3.753 F F2(pattern)3.753 E F0 1.253(are deleted and the)3.753 F F1(/)
-3.753 E F0(follo)3.753 E(wing)-.25 E F2(pattern)3.753 E F0 1.254(may be)
-3.754 F 2.679(omitted. If)144 604.8 R F2(par)3.929 E(ameter)-.15 E F0
-(is)3.409 E F1(@)2.679 E F0(or)2.679 E F1(*)2.679 E F0 2.679(,t)C .178
-(he substitution operation is applied to each positional parameter)
--2.679 F .618(in turn, and the e)144 616.8 R .619
-(xpansion is the resultant list.)-.15 F(If)5.619 E F2(par)4.369 E
-(ameter)-.15 E F0 .619(is an array v)3.849 F .619
-(ariable subscripted with)-.25 F F1(@)144 628.8 Q F0(or)3.224 E F1(*)
-3.224 E F0 3.224(,t)C .723(he substitution operation is applied to each\
- member of the array in turn, and the e)-3.224 F(xpan-)-.15 E
-(sion is the resultant list.)144 640.8 Q F1(Command Substitution)87
-657.6 Q F2 1.697(Command substitution)108 669.6 R F0(allo)4.197 E 1.697
-(ws the output of a command to replace the command name.)-.25 F 1.698
-(There are tw)6.698 F(o)-.1 E(forms:)108 681.6 Q F1($\()144 703.2 Q F2
-(command)A F1(\))1.666 E F0(or)108 715.2 Q F1(`)144 727.2 Q F2(command)A
-F1(`)A F0(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(18)197.89 E 0
-Cg EP
+-.15 E F1 -.8(Pa)7.585 G -.15(ra).8 G(meter).15 E F0(is)5.085 E -.15(ex)
+144 700.8 S 1.304(panded and the longest match of).15 F F1(pattern)3.804
+E F0(ag)3.804 E 1.304(ainst its v)-.05 F 1.304(alue is replaced with)
+-.25 F F1(string)3.804 E F0 6.304(.I)C 3.804(fI)-6.304 G(pattern)-3.804
+E F1(be)144 712.8 Q 1.331(gins with)-.4 F F2(/)3.831 E F1 3.831(,a)C
+1.331(ll matc)-3.831 F 1.331(hes of pattern ar)-.15 F 3.831(er)-.37 G
+1.331(eplaced with string)-4.201 F 6.33(.N)-.15 G 1.33
+(ormally only the \214r)-6.33 F 1.33(st matc)-.1 F 3.83(hi)-.15 G(s)
+-3.83 E -.37(re)144 724.8 S 4.69(placed. If).37 F 2.19(pattern be)4.69 F
+2.19(gins with)-.4 F F2(#)4.69 E F1 4.69(,i)C 4.69(tm)-4.69 G 2.19
+(ust matc)-4.69 F 4.69(ha)-.15 G 4.69(tt)-4.69 G 2.19(he be)-4.69 F 2.19
+(ginning of the e)-.4 F 2.19(xpanded value of)-.2 F F0(GNU Bash-3.2)72
+768 Q(2006 Jan 26)149.845 E(18)199.835 E 0 Cg EP
 %%Page: 19 20
 %%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(Bash)108 84 Q F0 .02(performs the e)2.52 F
-.02(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E/F2 10
-/Times-Italic@0 SF(command)2.519 E F0 .019
+-.35 E/F1 10/Times-Italic@0 SF(par)144 84 Q(ameter)-.15 E 5.237(.I)-1.11
+G 2.737(fp)-5.237 G .237(attern be)-2.737 F .237(gins with)-.4 F/F2 10
+/Times-Bold@0 SF(%)2.737 E F1 2.737(,i)C 2.737(tm)-2.737 G .237
+(ust matc)-2.737 F 2.736(ha)-.15 G 2.736(tt)-2.736 G .236
+(he end of the e)-2.736 F .236(xpanded value of par)-.2 F(ameter)-.15 E
+(.)-1.11 E 1.429(If string is null, matc)144 96 R 1.429
+(hes of pattern ar)-.15 F 3.929(ed)-.37 G 1.429(eleted and the)-3.929 F
+F2(/)3.93 E F1 1.43(following pattern may be omitted.)3.93 F(If)6.43 E
+(par)145.25 108 Q(ameter)-.15 E F0(is)3.329 E F2(@)2.599 E F0(or)2.598 E
+F2(*)2.598 E F0 2.598(,t)C .098(he substitution operation is applied to\
+ each positional parameter in turn, and)-2.598 F .64(the e)144 120 R .64
+(xpansion is the resultant list.)-.15 F(If)5.64 E F1(par)4.39 E(ameter)
+-.15 E F0 .64(is an array v)3.87 F .64(ariable subscripted with)-.25 F
+F2(@)3.14 E F0(or)3.14 E F2(*)3.14 E F0 3.14(,t)C(he)-3.14 E 1.446(subs\
+titution operation is applied to each member of the array in turn, and \
+the e)144 132 R 1.446(xpansion is the)-.15 F(resultant list.)144 144 Q
+F2(Command Substitution)87 160.8 Q F1 1.697(Command substitution)108
+172.8 R F0(allo)4.197 E 1.697
+(ws the output of a command to replace the command name.)-.25 F 1.698
+(There are tw)6.698 F(o)-.1 E(forms:)108 184.8 Q F2($\()144 206.4 Q F1
+(command)A F2(\))1.666 E F0(or)108 218.4 Q F2(`)144 230.4 Q F1(command)A
+F2(`)A(Bash)108 247.2 Q F0 .02(performs the e)2.52 F .02(xpansion by e)
+-.15 F -.15(xe)-.15 G(cuting).15 E F1(command)2.519 E F0 .019
 (and replacing the command substitution with the stan-)2.519 F .768
-(dard output of the command, with an)108 96 R 3.268(yt)-.15 G .768
+(dard output of the command, with an)108 259.2 R 3.268(yt)-.15 G .768
 (railing ne)-3.268 F .768(wlines deleted.)-.25 F .768(Embedded ne)5.768
-F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 108 Q 3.219(ym)
--.15 G .719(ay be remo)-3.219 F -.15(ve)-.15 G 3.219(dd).15 G .719
+F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 271.2 Q 3.219
+(ym)-.15 G .719(ay be remo)-3.219 F -.15(ve)-.15 G 3.219(dd).15 G .719
 (uring w)-3.219 F .719(ord splitting.)-.1 F .719
-(The command substitution)5.719 F F1($\(cat)3.219 E F2(\214le)3.219 E F1
-(\))A F0 .718(can be replaced by the)3.219 F(equi)108 120 Q -.25(va)-.25
-G(lent b).25 E(ut f)-.2 E(aster)-.1 E F1($\(<)2.5 E F2(\214le)2.5 E F1
-(\))A F0(.)A 1.724(When the old-style backquote form of substitution is\
- used, backslash retains its literal meaning e)108 136.8 R(xcept)-.15 E
-.315(when follo)108 148.8 R .315(wed by)-.25 F F1($)2.815 E F0(,)A F1(`)
-2.815 E F0 2.815(,o)C(r)-2.815 E F1(\\)2.815 E F0 5.315(.T)C .314(he \
+(The command substitution)5.719 F F2($\(cat)3.219 E F1(\214le)3.219 E F2
+(\))A F0 .718(can be replaced by the)3.219 F(equi)108 283.2 Q -.25(va)
+-.25 G(lent b).25 E(ut f)-.2 E(aster)-.1 E F2($\(<)2.5 E F1(\214le)2.5 E
+F2(\))A F0(.)A 1.724(When the old-style backquote form of substitution \
+is used, backslash retains its literal meaning e)108 300 R(xcept)-.15 E
+.315(when follo)108 312 R .315(wed by)-.25 F F2($)2.815 E F0(,)A F2(`)
+2.815 E F0 2.815(,o)C(r)-2.815 E F2(\\)2.815 E F0 5.315(.T)C .314(he \
 \214rst backquote not preceded by a backslash terminates the command su\
-b-)-5.315 F 3.886(stitution. When)108 160.8 R 1.386(using the $\()3.886
-F F2(command).833 E F0 3.886(\)f)1.666 G 1.387
+b-)-5.315 F 3.886(stitution. When)108 324 R 1.386(using the $\()3.886 F
+F1(command).833 E F0 3.886(\)f)1.666 G 1.387
 (orm, all characters between the parentheses mak)-3.886 F 3.887(eu)-.1 G
 3.887(pt)-3.887 G 1.387(he com-)-3.887 F
-(mand; none are treated specially)108 172.8 Q(.)-.65 E .894
-(Command substitutions may be nested.)108 189.6 R 2.494 -.8(To n)5.894 H
+(mand; none are treated specially)108 336 Q(.)-.65 E .894
+(Command substitutions may be nested.)108 352.8 R 2.494 -.8(To n)5.894 H
 .894(est when using the backquoted form, escape the inner back-).8 F
-(quotes with backslashes.)108 201.6 Q .422
-(If the substitution appears within double quotes, w)108 218.4 R .422
+(quotes with backslashes.)108 364.8 Q .422
+(If the substitution appears within double quotes, w)108 381.6 R .422
 (ord splitting and pathname e)-.1 F .423(xpansion are not performed)-.15
-F(on the results.)108 230.4 Q F1(Arithmetic Expansion)87 247.2 Q F0
-1.035(Arithmetic e)108 259.2 R 1.035(xpansion allo)-.15 F 1.035
+F(on the results.)108 393.6 Q F2(Arithmetic Expansion)87 410.4 Q F0
+1.035(Arithmetic e)108 422.4 R 1.035(xpansion allo)-.15 F 1.035
 (ws the e)-.25 F -.25(va)-.25 G 1.034(luation of an arithmetic e).25 F
 1.034(xpression and the substitution of the result.)-.15 F
-(The format for arithmetic e)108 271.2 Q(xpansion is:)-.15 E F1($\(\()
-144 288 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 304.8 Q
-F2 -.2(ex)2.665 G(pr).2 E(ession)-.37 E F0 .165
+(The format for arithmetic e)108 434.4 Q(xpansion is:)-.15 E F2($\(\()
+144 451.2 Q F1 -.2(ex)C(pr).2 E(ession)-.37 E F2(\)\))A F0(The)108 468 Q
+F1 -.2(ex)2.665 G(pr).2 E(ession)-.37 E F0 .165
 (is treated as if it were within double quotes, b)2.905 F .166
 (ut a double quote inside the parentheses is not)-.2 F 1.075
-(treated specially)108 316.8 R 6.075(.A)-.65 G 1.074(ll tok)-6.075 F
-1.074(ens in the e)-.1 F 1.074(xpression under)-.15 F 1.074
-(go parameter e)-.18 F 1.074(xpansion, string e)-.15 F 1.074
-(xpansion, command)-.15 F(substitution, and quote remo)108 328.8 Q -.25
-(va)-.15 G 2.5(l. Arithmetic).25 F -.15(ex)2.5 G
-(pansions may be nested.).15 E 1.378(The e)108 345.6 R -.25(va)-.25 G
-1.378(luation is performed according to the rules listed belo).25 F
-3.878(wu)-.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)
-3.878 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)
-A F0(If)5.879 E F2 -.2(ex)108 357.6 S(pr).2 E(ession)-.37 E F0(is in)
-2.74 E -.25(va)-.4 G(lid,).25 E F1(bash)2.5 E F0
-(prints a message indicating f)2.5 E(ailure and no substitution occurs.)
--.1 E F1(Pr)87 374.4 Q(ocess Substitution)-.18 E F2(Pr)108 386.4 Q .971
-(ocess substitution)-.45 F F0 .971
-(is supported on systems that support named pipes \()3.471 F F2(FIFOs)A
-F0 3.47(\)o)C 3.47(rt)-3.47 G(he)-3.47 E F1(/de)3.47 E(v/fd)-.15 E F0
-.97(method of)3.47 F .021(naming open \214les.)108 398.4 R .021(It tak)
-5.021 F .021(es the form of)-.1 F F1(<\()2.521 E F2(list)A F1(\)).833 E
-F0(or)2.521 E F1(>\()2.521 E F2(list)A F1(\)).833 E F0 5.021(.T)C .021
-(he process)-5.021 F F2(list)2.521 E F0 .021
-(is run with its input or output con-)2.521 F .059(nected to a)108 410.4
-R F2(FIFO)2.559 E F0 .058(or some \214le in)2.559 F F1(/de)2.558 E(v/fd)
+(treated specially)108 480 R 6.075(.A)-.65 G 1.074(ll tok)-6.075 F 1.074
+(ens in the e)-.1 F 1.074(xpression under)-.15 F 1.074(go parameter e)
+-.18 F 1.074(xpansion, string e)-.15 F 1.074(xpansion, command)-.15 F
+(substitution, and quote remo)108 492 Q -.25(va)-.15 G 2.5
+(l. Arithmetic).25 F -.15(ex)2.5 G(pansions may be nested.).15 E 1.378
+(The e)108 508.8 R -.25(va)-.25 G 1.378
+(luation is performed according to the rules listed belo).25 F 3.878(wu)
+-.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)3.878 F
+(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F0
+(If)5.879 E F1 -.2(ex)108 520.8 S(pr).2 E(ession)-.37 E F0(is in)2.74 E
+-.25(va)-.4 G(lid,).25 E F2(bash)2.5 E F0(prints a message indicating f)
+2.5 E(ailure and no substitution occurs.)-.1 E F2(Pr)87 537.6 Q
+(ocess Substitution)-.18 E F1(Pr)108 549.6 Q .971(ocess substitution)
+-.45 F F0 .971(is supported on systems that support named pipes \()3.471
+F F1(FIFOs)A F0 3.47(\)o)C 3.47(rt)-3.47 G(he)-3.47 E F2(/de)3.47 E
+(v/fd)-.15 E F0 .97(method of)3.47 F .021(naming open \214les.)108 561.6
+R .021(It tak)5.021 F .021(es the form of)-.1 F F2(<\()2.521 E F1(list)A
+F2(\)).833 E F0(or)2.521 E F2(>\()2.521 E F1(list)A F2(\)).833 E F0
+5.021(.T)C .021(he process)-5.021 F F1(list)2.521 E F0 .021
+(is run with its input or output con-)2.521 F .059(nected to a)108 573.6
+R F1(FIFO)2.559 E F0 .058(or some \214le in)2.559 F F2(/de)2.558 E(v/fd)
 -.15 E F0 5.058(.T)C .058(he name of this \214le is passed as an ar)
 -5.058 F .058(gument to the current com-)-.18 F .13
-(mand as the result of the e)108 422.4 R 2.63(xpansion. If)-.15 F(the)
-2.63 E F1(>\()2.63 E F2(list)A F1(\)).833 E F0 .13
+(mand as the result of the e)108 585.6 R 2.63(xpansion. If)-.15 F(the)
+2.63 E F2(>\()2.63 E F1(list)A F2(\)).833 E F0 .13
 (form is used, writing to the \214le will pro)2.63 F .131
-(vide input for)-.15 F F2(list)2.631 E F0(.)A(If the)108 434.4 Q F1(<\()
-2.5 E F2(list)A F1(\)).833 E F0
+(vide input for)-.15 F F1(list)2.631 E F0(.)A(If the)108 597.6 Q F2(<\()
+2.5 E F1(list)A F2(\)).833 E F0
 (form is used, the \214le passed as an ar)2.5 E
-(gument should be read to obtain the output of)-.18 E F2(list)2.5 E F0
-(.)A .897(When a)108 451.2 R -.25(va)-.2 G .896(ilable, process substit\
+(gument should be read to obtain the output of)-.18 E F1(list)2.5 E F0
+(.)A .897(When a)108 614.4 R -.25(va)-.2 G .896(ilable, process substit\
 ution is performed simultaneously with parameter and v).25 F .896
 (ariable e)-.25 F(xpansion,)-.15 E
-(command substitution, and arithmetic e)108 463.2 Q(xpansion.)-.15 E F1
--.75(Wo)87 480 S(rd Splitting).75 E F0 1.142
-(The shell scans the results of parameter e)108 492 R 1.143
+(command substitution, and arithmetic e)108 626.4 Q(xpansion.)-.15 E F2
+-.75(Wo)87 643.2 S(rd Splitting).75 E F0 1.142
+(The shell scans the results of parameter e)108 655.2 R 1.143
 (xpansion, command substitution, and arithmetic e)-.15 F 1.143
-(xpansion that)-.15 F(did not occur within double quotes for)108 504 Q
-F2(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
-(The shell treats each character of)108 520.8 R F3(IFS)2.563 E F0 .063
+(xpansion that)-.15 F(did not occur within double quotes for)108 667.2 Q
+F1(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
+(The shell treats each character of)108 684 R F3(IFS)2.563 E F0 .063
 (as a delimiter)2.313 F 2.563(,a)-.4 G .063
 (nd splits the results of the other e)-2.563 F .063(xpansions into w)
--.15 F(ords)-.1 E .627(on these characters.)108 532.8 R(If)5.627 E F3
-(IFS)3.127 E F0 .627(is unset, or its v)2.877 F .627(alue is e)-.25 F
-(xactly)-.15 E F1(<space><tab><newline>)3.127 E F0 3.128(,t)C .628
-(he def)-3.128 F .628(ault, then an)-.1 F(y)-.15 E 2.528(sequence of)108
-544.8 R F3(IFS)5.028 E F0 2.527(characters serv)4.778 F 2.527
-(es to delimit w)-.15 F 5.027(ords. If)-.1 F F3(IFS)5.027 E F0 2.527
-(has a v)4.777 F 2.527(alue other than the def)-.25 F 2.527(ault, then)
--.1 F .362(sequences of the whitespace characters)108 556.8 R F1(space)
-2.863 E F0(and)2.863 E F1(tab)2.863 E F0 .363(are ignored at the be)
-2.863 F .363(ginning and end of the w)-.15 F .363(ord, as)-.1 F .335
-(long as the whitespace character is in the v)108 568.8 R .334(alue of)
--.25 F F3(IFS)2.834 E F0(\(an)2.584 E F3(IFS)2.834 E F0 .334
-(whitespace character\).)2.584 F(An)5.334 E 2.834(yc)-.15 G .334
-(haracter in)-2.834 F F3(IFS)2.834 E F0 .295(that is not)108 580.8 R F3
-(IFS)2.795 E F0 .295(whitespace, along with an)2.545 F 2.795(ya)-.15 G
-(djacent)-2.795 E F3(IFS)2.795 E F0 .295
-(whitespace characters, delimits a \214eld.)2.545 F 2.796(As)5.296 G
-(equence)-2.796 E(of)108 592.8 Q F3(IFS)3.753 E F0 1.252
-(whitespace characters is also treated as a delimiter)3.503 F 6.252(.I)
--.55 G 3.752(ft)-6.252 G 1.252(he v)-3.752 F 1.252(alue of)-.25 F F3
-(IFS)3.752 E F0 1.252(is null, no w)3.502 F 1.252(ord splitting)-.1 F
-(occurs.)108 604.8 Q 1.799(Explicit null ar)108 621.6 R 1.799
-(guments \()-.18 F F1 .833("").833 G F0(or)3.466 E F1 .833('')5.132 G F0
-4.3(\)a)C 1.8(re retained.)-4.3 F 1.8(Unquoted implicit null ar)6.8 F
-1.8(guments, resulting from the)-.18 F -.15(ex)108 633.6 S .177
-(pansion of parameters that ha).15 F .477 -.15(ve n)-.2 H 2.677(ov).15 G
-.177(alues, are remo)-2.927 F -.15(ve)-.15 G 2.676(d. If).15 F 2.676(ap)
-2.676 G .176(arameter with no v)-2.676 F .176(alue is e)-.25 F .176
-(xpanded within)-.15 F(double quotes, a null ar)108 645.6 Q
-(gument results and is retained.)-.18 E(Note that if no e)108 662.4 Q
-(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87 679.2 S
-(thname Expansion).1 E F0 .37(After w)108 691.2 R .37
-(ord splitting, unless the)-.1 F F1<ad66>2.87 E F0 .37
-(option has been set,)2.87 F F1(bash)2.87 E F0 .371(scans each w)2.871 F
-.371(ord for the characters)-.1 F F1(*)2.871 E F0(,)A F1(?)2.871 E F0
-2.871(,a)C(nd)-2.871 E F1([)2.871 E F0(.)A .678
-(If one of these characters appears, then the w)108 703.2 R .677
-(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F F2(pattern)3.177 E
-F0 3.177(,a).24 G .677(nd replaced with an alphabeti-)-3.177 F 1.456
-(cally sorted list of \214le names matching the pattern.)108 715.2 R
-1.457(If no matching \214le names are found, and the shell)6.457 F
-(option)108 727.2 Q F1(nullglob)3.265 E F0 .765(is disabled, the w)3.265
-F .765(ord is left unchanged.)-.1 F .765(If the)5.765 F F1(nullglob)
-3.265 E F0 .765(option is set, and no matches are)3.265 F
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(19)197.89 E 0 Cg EP
+-.15 F(ords)-.1 E .627(on these characters.)108 696 R(If)5.627 E F3(IFS)
+3.127 E F0 .627(is unset, or its v)2.877 F .627(alue is e)-.25 F(xactly)
+-.15 E F2(<space><tab><newline>)3.127 E F0 3.128(,t)C .628(he def)-3.128
+F .628(ault, then an)-.1 F(y)-.15 E 2.528(sequence of)108 708 R F3(IFS)
+5.028 E F0 2.527(characters serv)4.778 F 2.527(es to delimit w)-.15 F
+5.027(ords. If)-.1 F F3(IFS)5.027 E F0 2.527(has a v)4.777 F 2.527
+(alue other than the def)-.25 F 2.527(ault, then)-.1 F .362
+(sequences of the whitespace characters)108 720 R F2(space)2.863 E F0
+(and)2.863 E F2(tab)2.863 E F0 .363(are ignored at the be)2.863 F .363
+(ginning and end of the w)-.15 F .363(ord, as)-.1 F(GNU Bash-3.2)72 768
+Q(2006 Jan 26)149.845 E(19)199.835 E 0 Cg EP
 %%Page: 20 21
 %%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 .305(found, the w)108 84 R .305(ord is remo)-.1 F -.15(ve)-.15 G
-2.805(d. If).15 F(the)2.805 E/F1 10/Times-Bold@0 SF(failglob)2.805 E F0
-.305(shell option is set, and no matches are found, an error message)
-2.805 F .929(is printed and the command is not e)108 96 R -.15(xe)-.15 G
-3.428(cuted. If).15 F .928(the shell option)3.428 F F1(nocaseglob)3.428
+-.35 E .335(long as the whitespace character is in the v)108 84 R .334
+(alue of)-.25 F/F1 9/Times-Bold@0 SF(IFS)2.834 E F0(\(an)2.584 E F1(IFS)
+2.834 E F0 .334(whitespace character\).)2.584 F(An)5.334 E 2.834(yc)-.15
+G .334(haracter in)-2.834 F F1(IFS)2.834 E F0 .295(that is not)108 96 R
+F1(IFS)2.795 E F0 .295(whitespace, along with an)2.545 F 2.795(ya)-.15 G
+(djacent)-2.795 E F1(IFS)2.795 E F0 .295
+(whitespace characters, delimits a \214eld.)2.545 F 2.796(As)5.296 G
+(equence)-2.796 E(of)108 108 Q F1(IFS)3.753 E F0 1.252
+(whitespace characters is also treated as a delimiter)3.503 F 6.252(.I)
+-.55 G 3.752(ft)-6.252 G 1.252(he v)-3.752 F 1.252(alue of)-.25 F F1
+(IFS)3.752 E F0 1.252(is null, no w)3.502 F 1.252(ord splitting)-.1 F
+(occurs.)108 120 Q 1.878(Explicit null ar)108 136.8 R 1.878(guments \()
+-.18 F/F2 10/Times-Bold@0 SF .833("").833 G F0(or)3.545 E F2 .833<0808>
+5.211 G F0 4.378(\)a)C 1.878(re retained.)-4.378 F 1.878
+(Unquoted implicit null ar)6.878 F 1.879(guments, resulting from the)
+-.18 F -.15(ex)108 148.8 S .177(pansion of parameters that ha).15 F .477
+-.15(ve n)-.2 H 2.677(ov).15 G .177(alues, are remo)-2.927 F -.15(ve)
+-.15 G 2.676(d. If).15 F 2.676(ap)2.676 G .176(arameter with no v)-2.676
+F .176(alue is e)-.25 F .176(xpanded within)-.15 F
+(double quotes, a null ar)108 160.8 Q(gument results and is retained.)
+-.18 E(Note that if no e)108 177.6 Q
+(xpansion occurs, no splitting is performed.)-.15 E F2 -.1(Pa)87 194.4 S
+(thname Expansion).1 E F0 .37(After w)108 206.4 R .37
+(ord splitting, unless the)-.1 F F2<ad66>2.87 E F0 .37
+(option has been set,)2.87 F F2(bash)2.87 E F0 .371(scans each w)2.871 F
+.371(ord for the characters)-.1 F F2(*)2.871 E F0(,)A F2(?)2.871 E F0
+2.871(,a)C(nd)-2.871 E F2([)2.871 E F0(.)A .678
+(If one of these characters appears, then the w)108 218.4 R .677
+(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F/F3 10
+/Times-Italic@0 SF(pattern)3.177 E F0 3.177(,a).24 G .677
+(nd replaced with an alphabeti-)-3.177 F 1.456
+(cally sorted list of \214le names matching the pattern.)108 230.4 R
+1.457(If no matching \214le names are found, and the shell)6.457 F
+(option)108 242.4 Q F2(nullglob)3.265 E F0 .765(is disabled, the w)3.265
+F .765(ord is left unchanged.)-.1 F .765(If the)5.765 F F2(nullglob)
+3.265 E F0 .765(option is set, and no matches are)3.265 F .305
+(found, the w)108 254.4 R .305(ord is remo)-.1 F -.15(ve)-.15 G 2.805
+(d. If).15 F(the)2.805 E F2(failglob)2.805 E F0 .305
+(shell option is set, and no matches are found, an error message)2.805 F
+.929(is printed and the command is not e)108 266.4 R -.15(xe)-.15 G
+3.428(cuted. If).15 F .928(the shell option)3.428 F F2(nocaseglob)3.428
 E F0 .928(is enabled, the match is per)3.428 F(-)-.2 E .032
-(formed without re)108 108 R -.05(ga)-.15 G .032
+(formed without re)108 278.4 R -.05(ga)-.15 G .032
 (rd to the case of alphabetic characters.).05 F .033
 (When a pattern is used for pathname e)5.033 F(xpansion,)-.15 E .105
-(the character)108 120 R F1 -.63(``)2.605 G -.55(.').63 G(')-.08 E F0
+(the character)108 290.4 R F2 -.63(``)2.605 G -.55(.').63 G(')-.08 E F0
 .105(at the start of a name or immediately follo)5.105 F .104
 (wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.604(,u)-.65 G
-(nless)-2.604 E .887(the shell option)108 132 R F1(dotglob)3.387 E F0
+(nless)-2.604 E .887(the shell option)108 302.4 R F2(dotglob)3.387 E F0
 .887(is set.)3.387 F .888
 (When matching a pathname, the slash character must al)5.887 F -.1(wa)
--.1 G .888(ys be matched).1 F -.15(ex)108 144 S(plicitly).15 E 6.166(.I)
--.65 G 3.666(no)-6.166 G 1.166(ther cases, the)-3.666 F F1 -.63(``)3.666
-G -.55(.').63 G(')-.08 E F0 1.166(character is not treated specially)
-6.166 F 6.165(.S)-.65 G 1.165(ee the description of)-6.165 F F1(shopt)
-3.665 E F0(belo)3.665 E(w)-.25 E(under)108 156 Q/F2 9/Times-Bold@0 SF
-.477(SHELL B)2.977 F(UIL)-.09 E .477(TIN COMMANDS)-.828 F F0 .477
-(for a description of the)2.727 F F1(nocaseglob)2.978 E F0(,)A F1
-(nullglob)2.978 E F0(,)A F1(failglob)2.978 E F0 2.978(,a)C(nd)-2.978 E
-F1(dotglob)2.978 E F0(shell options.)108 168 Q(The)108 184.8 Q F2
-(GLOBIGNORE)2.631 E F0 .131(shell v)2.381 F .131
-(ariable may be used to restrict the set of \214le names matching a)-.25
-F/F3 10/Times-Italic@0 SF(pattern)2.63 E F0 5.13(.I).24 G(f)-5.13 E F2
-(GLO-)2.63 E(BIGNORE)108 196.8 Q F0 2.015(is set, each matching \214le \
-name that also matches one of the patterns in)4.264 F F2(GLOBIGNORE)
-4.515 E F0(is)4.265 E(remo)108 208.8 Q -.15(ve)-.15 G 2.504(df).15 G
-.004(rom the list of matches.)-2.504 F .003(The \214le names)5.003 F F1
--.63(``)2.503 G -.55(.').63 G(')-.08 E F0(and)5.003 E F1 -.63(``)2.503 G
-(..).63 E -.63('')-.55 G F0 .003(are al)5.633 F -.1(wa)-.1 G .003
-(ys ignored when).1 F F2(GLOBIGNORE)2.503 E F0(is)2.253 E .045
-(set and not null.)108 220.8 R(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845
--.4(r, s).15 H(etting).4 E F2(GLOBIGNORE)2.545 E F0 .046
+-.1 G .888(ys be matched).1 F -.15(ex)108 314.4 S(plicitly).15 E 6.166
+(.I)-.65 G 3.666(no)-6.166 G 1.166(ther cases, the)-3.666 F F2 -.63(``)
+3.666 G -.55(.').63 G(')-.08 E F0 1.166
+(character is not treated specially)6.166 F 6.165(.S)-.65 G 1.165
+(ee the description of)-6.165 F F2(shopt)3.665 E F0(belo)3.665 E(w)-.25
+E(under)108 326.4 Q F1 .477(SHELL B)2.977 F(UIL)-.09 E .477
+(TIN COMMANDS)-.828 F F0 .477(for a description of the)2.727 F F2
+(nocaseglob)2.978 E F0(,)A F2(nullglob)2.978 E F0(,)A F2(failglob)2.978
+E F0 2.978(,a)C(nd)-2.978 E F2(dotglob)2.978 E F0(shell options.)108
+338.4 Q(The)108 355.2 Q F1(GLOBIGNORE)2.631 E F0 .131(shell v)2.381 F
+.131(ariable may be used to restrict the set of \214le names matching a)
+-.25 F F3(pattern)2.63 E F0 5.13(.I).24 G(f)-5.13 E F1(GLO-)2.63 E
+(BIGNORE)108 367.2 Q F0 2.015(is set, each matching \214le name that al\
+so matches one of the patterns in)4.264 F F1(GLOBIGNORE)4.515 E F0(is)
+4.265 E(remo)108 379.2 Q -.15(ve)-.15 G 2.504(df).15 G .004
+(rom the list of matches.)-2.504 F .003(The \214le names)5.003 F F2 -.63
+(``)2.503 G -.55(.').63 G(')-.08 E F0(and)5.003 E F2 -.63(``)2.503 G(..)
+.63 E -.63('')-.55 G F0 .003(are al)5.633 F -.1(wa)-.1 G .003
+(ys ignored when).1 F F1(GLOBIGNORE)2.503 E F0(is)2.253 E .045
+(set and not null.)108 391.2 R(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845
+-.4(r, s).15 H(etting).4 E F1(GLOBIGNORE)2.545 E F0 .046
 (to a non-null v)2.296 F .046(alue has the ef)-.25 F .046
-(fect of enabling the)-.25 F F1(dotglob)2.546 E F0 .614
-(shell option, so all other \214le names be)108 232.8 R .614
-(ginning with a)-.15 F F1 -.63(``)3.114 G -.55(.').63 G(')-.08 E F0 .614
+(fect of enabling the)-.25 F F2(dotglob)2.546 E F0 .614
+(shell option, so all other \214le names be)108 403.2 R .614
+(ginning with a)-.15 F F2 -.63(``)3.114 G -.55(.').63 G(')-.08 E F0 .614
 (will match.)5.614 F 2.213 -.8(To g)5.614 H .613(et the old beha).8 F
-.613(vior of ignoring)-.2 F .456(\214le names be)108 244.8 R .456
-(ginning with a)-.15 F F1 -.63(``)2.957 G -.55(.').63 G(')-.08 E F0
-2.957(,m)C(ak)-2.957 E(e)-.1 E F1 -.63(``)2.957 G(.*').63 E(')-.63 E F0
-.457(one of the patterns in)5.457 F F2(GLOBIGNORE)2.957 E/F4 9
-/Times-Roman@0 SF(.)A F0(The)4.957 E F1(dotglob)2.957 E F0 .457
-(option is)2.957 F(disabled when)108 256.8 Q F2(GLOBIGNORE)2.5 E F0
-(is unset.)2.25 E F1 -.1(Pa)108 273.6 S(tter).1 E 2.5(nM)-.15 G(atching)
--2.5 E F0(An)108 290.4 Q 3.138(yc)-.15 G .638(haracter that appears in \
+.613(vior of ignoring)-.2 F .456(\214le names be)108 415.2 R .456
+(ginning with a)-.15 F F2 -.63(``)2.957 G -.55(.').63 G(')-.08 E F0
+2.957(,m)C(ak)-2.957 E(e)-.1 E F2 -.63(``)2.957 G(.*').63 E(')-.63 E F0
+.457(one of the patterns in)5.457 F F1(GLOBIGNORE)2.957 E/F4 9
+/Times-Roman@0 SF(.)A F0(The)4.957 E F2(dotglob)2.957 E F0 .457
+(option is)2.957 F(disabled when)108 427.2 Q F1(GLOBIGNORE)2.5 E F0
+(is unset.)2.25 E F2 -.1(Pa)108 444 S(tter).1 E 2.5(nM)-.15 G(atching)
+-2.5 E F0(An)108 460.8 Q 3.138(yc)-.15 G .638(haracter that appears in \
 a pattern, other than the special pattern characters described belo)
--3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 302.4
+-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 472.8
 R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)6.12 G
 1.12(ackslash escapes the follo)-3.62 F 1.12(wing character; the)-.25 F
-.576(escaping backslash is discarded when matching.)108 314.4 R .576
+.576(escaping backslash is discarded when matching.)108 484.8 R .576
 (The special pattern characters must be quoted if the)5.576 F 3.076(ya)
--.15 G(re)-3.076 E(to be matched literally)108 326.4 Q(.)-.65 E
-(The special pattern characters ha)108 343.2 Q .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F1(*)108 360 Q F0(Matches an)31 E
-2.5(ys)-.15 G(tring, including the null string.)-2.5 E F1(?)108 372 Q F0
-(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F1([...])
-108 384 Q F0 .256(Matches an)21.84 F 2.756(yo)-.15 G .257
+-.15 G(re)-3.076 E(to be matched literally)108 496.8 Q(.)-.65 E
+(The special pattern characters ha)108 513.6 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F2(*)108 530.4 Q F0(Matches an)31
+E 2.5(ys)-.15 G(tring, including the null string.)-2.5 E F2(?)108 542.4
+Q F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F2
+([...])108 554.4 Q F0 .256(Matches an)21.84 F 2.756(yo)-.15 G .257
 (ne of the enclosed characters.)-2.756 F 2.757(Ap)5.257 G .257
 (air of characters separated by a h)-2.757 F .257(yphen denotes a)-.05 F
-F3 -.15(ra)144 396 S(ng).15 E 3.29(ee)-.1 G(xpr)-3.49 E(ession)-.37 E F0
-3.29(;a)C 1.09 -.15(ny c)-3.29 H .789
+F3 -.15(ra)144 566.4 S(ng).15 E 3.29(ee)-.1 G(xpr)-3.49 E(ession)-.37 E
+F0 3.29(;a)C 1.09 -.15(ny c)-3.29 H .789
 (haracter that sorts between those tw).15 F 3.289(oc)-.1 G .789
 (haracters, inclusi)-3.289 F -.15(ve)-.25 G 3.289(,u).15 G .789
-(sing the cur)-3.289 F(-)-.2 E .349(rent locale')144 408 R 2.849(sc)-.55
-G .349(ollating sequence and character set, is matched.)-2.849 F .35
-(If the \214rst character follo)5.349 F .35(wing the)-.25 F F1([)2.85 E
-F0 .564(is a)144 420 R F1(!)3.064 E F0 .564(or a)5.564 F F1(^)3.064 E F0
-.564(then an)3.064 F 3.064(yc)-.15 G .564
+(sing the cur)-3.289 F(-)-.2 E .349(rent locale')144 578.4 R 2.849(sc)
+-.55 G .349(ollating sequence and character set, is matched.)-2.849 F
+.35(If the \214rst character follo)5.349 F .35(wing the)-.25 F F2([)2.85
+E F0 .564(is a)144 590.4 R F2(!)3.064 E F0 .564(or a)5.564 F F2(^)3.064
+E F0 .564(then an)3.064 F 3.064(yc)-.15 G .564
 (haracter not enclosed is matched.)-3.064 F .563
-(The sorting order of characters in range)5.564 F -.15(ex)144 432 S
+(The sorting order of characters in range)5.564 F -.15(ex)144 602.4 S
 1.102(pressions is determined by the current locale and the v).15 F
-1.102(alue of the)-.25 F F1(LC_COLLA)3.602 E(TE)-.95 E F0 1.103(shell v)
-3.603 F(ari-)-.25 E .089(able, if set.)144 444 R(A)5.089 E F1<ad>2.589 E
-F0 .088(may be matched by including it as the \214rst or last character\
- in the set.)2.589 F(A)5.088 E F1(])2.588 E F0 .088(may be)2.588 F
-(matched by including it as the \214rst character in the set.)144 456 Q
--.4(Wi)144 474 S(thin).4 E F1([)2.914 E F0(and)2.914 E F1(])2.914 E F0
-(,)A F3 -.15(ch)2.914 G(ar).15 E .414(acter classes)-.15 F F0 .415
-(can be speci\214ed using the syntax)2.915 F F1([:)2.915 E F3(class)A F1
+1.102(alue of the)-.25 F F2(LC_COLLA)3.602 E(TE)-.95 E F0 1.103(shell v)
+3.603 F(ari-)-.25 E .089(able, if set.)144 614.4 R(A)5.089 E F2<ad>2.589
+E F0 .088(may be matched by including it as the \214rst or last charact\
+er in the set.)2.589 F(A)5.088 E F2(])2.588 E F0 .088(may be)2.588 F
+(matched by including it as the \214rst character in the set.)144 626.4
+Q -.4(Wi)144 644.4 S(thin).4 E F2([)2.914 E F0(and)2.914 E F2(])2.914 E
+F0(,)A F3 -.15(ch)2.914 G(ar).15 E .414(acter classes)-.15 F F0 .415
+(can be speci\214ed using the syntax)2.915 F F2([:)2.915 E F3(class)A F2
 (:])A F0 2.915(,w)C(here)-2.915 E F3(class)2.915 E F0 .415(is one of)
-2.915 F(the follo)144 486 Q
-(wing classes de\214ned in the POSIX.2 standard:)-.25 E F1 5.421
-(alnum alpha ascii blank cntrl digit graph lo)144 498 R 5.421
-(wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 510 Q F0 2.518
-(Ac)144 522 S .018(haracter class matches an)-2.518 F 2.518(yc)-.15 G
-.019(haracter belonging to that class.)-2.518 F(The)5.019 E F1 -.1(wo)
-2.519 G(rd).1 E F0 .019(character class matches)2.519 F
-(letters, digits, and the character _.)144 534 Q -.4(Wi)144 552 S(thin)
-.4 E F1([)3.547 E F0(and)3.547 E F1(])3.547 E F0 3.547(,a)C(n)-3.547 E
-F3 1.046(equivalence class)3.546 F F0 1.046
-(can be speci\214ed using the syntax)3.546 F F1([=)3.546 E F3(c)A F1(=])
-A F0 3.546(,w)C 1.046(hich matches all)-3.546 F(characters with the sam\
-e collation weight \(as de\214ned by the current locale\) as the charac\
-ter)144 564 Q F3(c)2.5 E F0(.)A -.4(Wi)144 582 S(thin).4 E F1([)2.5 E F0
-(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)2.5 E F3
-(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F3(symbol)2.5 E
-F0(.)A .704(If the)108 598.8 R F1(extglob)3.204 E F0 .705
-(shell option is enabled using the)3.204 F F1(shopt)3.205 E F0 -.2(bu)
-3.205 G .705(iltin, se).2 F -.15(ve)-.25 G .705(ral e).15 F .705
-(xtended pattern matching operators)-.15 F .256(are recognized.)108
-610.8 R .256(In the follo)5.256 F .256(wing description, a)-.25 F F3
-(pattern-list)2.755 E F0 .255
-(is a list of one or more patterns separated by a)2.755 F F1(|)2.755 E
-F0(.)A(Composite patterns may be formed using one or more of the follo)
-108 622.8 Q(wing sub-patterns:)-.25 E F1(?\()144 646.8 Q F3
-(pattern-list).833 E F1(\)).833 E F0
-(Matches zero or one occurrence of the gi)180 658.8 Q -.15(ve)-.25 G 2.5
-(np).15 G(atterns)-2.5 E F1(*\()144 670.8 Q F3(pattern-list).833 E F1
-(\)).833 E F0(Matches zero or more occurrences of the gi)180 682.8 Q
--.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 694.8 Q F3
-(pattern-list).833 E F1(\)).833 E F0
-(Matches one or more occurrences of the gi)180 706.8 Q -.15(ve)-.25 G
-2.5(np).15 G(atterns)-2.5 E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)
-122.91 E(20)197.89 E 0 Cg EP
+2.915 F(the follo)144 656.4 Q
+(wing classes de\214ned in the POSIX standard:)-.25 E F2 5.421
+(alnum alpha ascii blank cntrl digit graph lo)144 668.4 R 5.421
+(wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 680.4 Q F0
+2.518(Ac)144 692.4 S .018(haracter class matches an)-2.518 F 2.518(yc)
+-.15 G .019(haracter belonging to that class.)-2.518 F(The)5.019 E F2
+-.1(wo)2.519 G(rd).1 E F0 .019(character class matches)2.519 F
+(letters, digits, and the character _.)144 704.4 Q -.4(Wi)144 722.4 S
+(thin).4 E F2([)3.547 E F0(and)3.547 E F2(])3.547 E F0 3.547(,a)C(n)
+-3.547 E F3 1.046(equivalence class)3.546 F F0 1.046
+(can be speci\214ed using the syntax)3.546 F F2([=)3.546 E F3(c)A F2(=])
+A F0 3.546(,w)C 1.046(hich matches all)-3.546 F(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(20)199.835 E 0 Cg EP
 %%Page: 21 22
 %%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(@\()144 84 Q/F2 10/Times-Italic@0 SF
-(pattern-list).833 E F1(\)).833 E F0(Matches one of the gi)180 96 Q -.15
-(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(!\()144 108 Q F2(pattern-list)
-.833 E F1(\)).833 E F0(Matches an)180 120 Q(ything e)-.15 E
-(xcept one of the gi)-.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E
-F1(Quote Remo)87 136.8 Q -.1(va)-.1 G(l).1 E F0 1.08
-(After the preceding e)108 148.8 R 1.08
-(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\)3.58
-E F0(,)A F1(')3.58 E F0 3.58(,a)C(nd)-3.58 E F1(")4.413 E F0 1.081
-(that did not result)4.414 F(from one of the abo)108 160.8 Q .3 -.15
-(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3 10.95
-/Times-Bold@0 SF(REDIRECTION)72 177.6 Q F0 .545(Before a command is e)
-108 189.6 R -.15(xe)-.15 G .545(cuted, its input and output may be).15 F
-F2 -.37(re)3.045 G(dir).37 E(ected)-.37 E F0 .545
-(using a special notation interpreted)3.815 F .616(by the shell.)108
-201.6 R .617(Redirection may also be used to open and close \214les for\
- the current shell e)5.616 F -.15(xe)-.15 G .617(cution en).15 F(viron-)
--.4 E 3.275(ment. The)108 213.6 R(follo)3.275 E .774
-(wing redirection operators may precede or appear an)-.25 F .774
-(ywhere within a)-.15 F F2 .774(simple command)3.614 F F0(or)4.044 E
-(may follo)108 225.6 Q 2.5(wa)-.25 G F2(command)A F0 5(.R).77 G
+-.35 E(characters with the same collation weight \(as de\214ned by the \
+current locale\) as the character)144 84 Q/F1 10/Times-Italic@0 SF(c)2.5
+E F0(.)A -.4(Wi)144 102 S(thin).4 E/F2 10/Times-Bold@0 SF([)2.5 E F0
+(and)2.5 E F2(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F2([.)2.5 E F1
+(symbol)A F2(.])A F0(matches the collating symbol)2.5 E F1(symbol)2.5 E
+F0(.)A .704(If the)108 118.8 R F2(extglob)3.204 E F0 .705
+(shell option is enabled using the)3.204 F F2(shopt)3.205 E F0 -.2(bu)
+3.205 G .705(iltin, se).2 F -.15(ve)-.25 G .705(ral e).15 F .705
+(xtended pattern matching operators)-.15 F .256(are recognized.)108
+130.8 R .256(In the follo)5.256 F .256(wing description, a)-.25 F F1
+(pattern-list)2.755 E F0 .255
+(is a list of one or more patterns separated by a)2.755 F F2(|)2.755 E
+F0(.)A(Composite patterns may be formed using one or more of the follo)
+108 142.8 Q(wing sub-patterns:)-.25 E F2(?\()144 166.8 Q F1
+(pattern-list).833 E F2(\)).833 E F0
+(Matches zero or one occurrence of the gi)180 178.8 Q -.15(ve)-.25 G 2.5
+(np).15 G(atterns)-2.5 E F2(*\()144 190.8 Q F1(pattern-list).833 E F2
+(\)).833 E F0(Matches zero or more occurrences of the gi)180 202.8 Q
+-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F2(+\()144 214.8 Q F1
+(pattern-list).833 E F2(\)).833 E F0
+(Matches one or more occurrences of the gi)180 226.8 Q -.15(ve)-.25 G
+2.5(np).15 G(atterns)-2.5 E F2(@\()144 238.8 Q F1(pattern-list).833 E F2
+(\)).833 E F0(Matches one of the gi)180 250.8 Q -.15(ve)-.25 G 2.5(np)
+.15 G(atterns)-2.5 E F2(!\()144 262.8 Q F1(pattern-list).833 E F2(\))
+.833 E F0(Matches an)180 274.8 Q(ything e)-.15 E(xcept one of the gi)
+-.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F2(Quote Remo)87 291.6
+Q -.1(va)-.1 G(l).1 E F0 1.112(After the preceding e)108 303.6 R 1.112
+(xpansions, all unquoted occurrences of the characters)-.15 F F2(\\)
+3.613 E F0(,)A F2<08>3.613 E F0 3.613(,a)C(nd)-3.613 E F2(")4.446 E F0
+1.113(that did not result)4.446 F(from one of the abo)108 315.6 Q .3
+-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3
+10.95/Times-Bold@0 SF(REDIRECTION)72 332.4 Q F0 .545
+(Before a command is e)108 344.4 R -.15(xe)-.15 G .545
+(cuted, its input and output may be).15 F F1 -.37(re)3.045 G(dir).37 E
+(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .616
+(by the shell.)108 356.4 R .617(Redirection may also be used to open an\
+d close \214les for the current shell e)5.616 F -.15(xe)-.15 G .617
+(cution en).15 F(viron-)-.4 E 3.275(ment. The)108 368.4 R(follo)3.275 E
+.774(wing redirection operators may precede or appear an)-.25 F .774
+(ywhere within a)-.15 F F1 .774(simple command)3.614 F F0(or)4.044 E
+(may follo)108 380.4 Q 2.5(wa)-.25 G F1(command)A F0 5(.R).77 G
 (edirections are processed in the order the)-5 E 2.5(ya)-.15 G(ppear)
 -2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .283(In the follo)108
-242.4 R .284(wing descriptions, if the \214le descriptor number is omit\
+397.2 R .284(wing descriptions, if the \214le descriptor number is omit\
 ted, and the \214rst character of the redirect-)-.25 F .513
-(ion operator is)108 254.4 R F1(<)3.012 E F0 3.012(,t)C .512
+(ion operator is)108 409.2 R F2(<)3.012 E F0 3.012(,t)C .512
 (he redirection refers to the standard input \(\214le descriptor 0\).)
 -3.012 F .512(If the \214rst character of the)5.512 F
-(redirection operator is)108 266.4 Q F1(>)2.5 E F0 2.5(,t)C
+(redirection operator is)108 421.2 Q F2(>)2.5 E F0 2.5(,t)C
 (he redirection refers to the standard output \(\214le descriptor 1\).)
--2.5 E .824(The w)108 283.2 R .824(ord follo)-.1 F .824
+-2.5 E .824(The w)108 438 R .824(ord follo)-.1 F .824
 (wing the redirection operator in the follo)-.25 F .825
 (wing descriptions, unless otherwise noted, is sub-)-.25 F .773
-(jected to brace e)108 295.2 R .773(xpansion, tilde e)-.15 F .773
+(jected to brace e)108 450 R .773(xpansion, tilde e)-.15 F .773
 (xpansion, parameter e)-.15 F .772
 (xpansion, command substitution, arithmetic e)-.15 F(xpan-)-.15 E .843
-(sion, quote remo)108 307.2 R -.25(va)-.15 G .843(l, pathname e).25 F
-.843(xpansion, and w)-.15 F .843(ord splitting.)-.1 F .843(If it e)5.843
-F .843(xpands to more than one w)-.15 F(ord,)-.1 E F1(bash)3.344 E F0
-(reports an error)108 319.2 Q(.)-.55 E
-(Note that the order of redirections is signi\214cant.)108 336 Q -.15
-(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 352.8 Q F1(>)2.5
-E F0(dirlist 2)2.5 E F1(>&)A F0(1)A
-(directs both standard output and standard error to the \214le)108 369.6
-Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144
-386.4 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .388
-(directs only the standard output to \214le)108 403.2 R F2(dirlist)2.888
-F0 2.888(,b).68 G .387(ecause the standard error w)-2.888 F .387
+(sion, quote remo)108 462 R -.25(va)-.15 G .843(l, pathname e).25 F .843
+(xpansion, and w)-.15 F .843(ord splitting.)-.1 F .843(If it e)5.843 F
+.843(xpands to more than one w)-.15 F(ord,)-.1 E F2(bash)3.344 E F0
+(reports an error)108 474 Q(.)-.55 E
+(Note that the order of redirections is signi\214cant.)108 490.8 Q -.15
+(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 507.6 Q F2(>)2.5
+E F0(dirlist 2)2.5 E F2(>&)A F0(1)A
+(directs both standard output and standard error to the \214le)108 524.4
+Q F1(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144
+541.2 Q F2(>&)A F0(1)A F2(>)2.5 E F0(dirlist)2.5 E .388
+(directs only the standard output to \214le)108 558 R F1(dirlist)2.888 E
+F0 2.888(,b).68 G .387(ecause the standard error w)-2.888 F .387
 (as duplicated as standard output)-.1 F(before the standard output w)108
-415.2 Q(as redirected to)-.1 E F2(dirlist)2.5 E F0(.).68 E F1(Bash)108
-432 Q F0 .598(handles se)3.098 F -.15(ve)-.25 G .598
+570 Q(as redirected to)-.1 E F1(dirlist)2.5 E F0(.).68 E F2(Bash)108
+586.8 Q F0 .598(handles se)3.098 F -.15(ve)-.25 G .598
 (ral \214lenames specially when the).15 F 3.099(ya)-.15 G .599
 (re used in redirections, as described in the follo)-3.099 F(wing)-.25 E
-(table:)108 444 Q F1(/de)144 460.8 Q(v/fd/)-.15 E F2(fd)A F0(If)180
-472.8 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15 E 2.5
-<2c8c>-.4 G(le descriptor)-2.5 E F2(fd)2.5 E F0(is duplicated.)2.5 E F1
-(/de)144 484.8 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)180
-496.8 Q F1(/de)144 508.8 Q(v/stdout)-.15 E F0
-(File descriptor 1 is duplicated.)180 520.8 Q F1(/de)144 532.8 Q
-(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 544.8 Q F1(/de)
-144 556.8 Q(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 568.8 Q
-F2(host)2.997 E F0 .497(is a v)2.997 F .497
-(alid hostname or Internet address, and)-.25 F F2(port)2.996 E F0 .496
-(is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 580.8 Q F1(bash)2.5 E F0
-(attempts to open a TCP connection to the corresponding sock)2.5 E(et.)
--.1 E F1(/de)144 592.8 Q(v/udp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)
-180 604.8 Q F2(host)2.996 E F0 .496(is a v)2.996 F .496
+(table:)108 598.8 Q F2(/de)144 615.6 Q(v/fd/)-.15 E F1(fd)A F0(If)180
+627.6 Q F1(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15 E 2.5
+<2c8c>-.4 G(le descriptor)-2.5 E F1(fd)2.5 E F0(is duplicated.)2.5 E F2
+(/de)144 639.6 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)180
+651.6 Q F2(/de)144 663.6 Q(v/stdout)-.15 E F0
+(File descriptor 1 is duplicated.)180 675.6 Q F2(/de)144 687.6 Q
+(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 699.6 Q
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(21)199.835 E 0 Cg EP
+%%Page: 22 23
+%%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(/de)144 84 Q(v/tcp/)-.15 E/F2 10
+/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180 96 Q F2(host)2.997
+E F0 .497(is a v)2.997 F .497(alid hostname or Internet address, and)
+-.25 F F2(port)2.996 E F0 .496(is an inte)2.996 F .496
+(ger port number or ser)-.15 F(-)-.2 E(vice name,)180 108 Q F1(bash)2.5
+E F0(attempts to open a TCP connection to the corresponding sock)2.5 E
+(et.)-.1 E F1(/de)144 120 Q(v/udp/)-.15 E F2(host)A F1(/)A F2(port)A F0
+(If)180 132 Q F2(host)2.996 E F0 .496(is a v)2.996 F .496
 (alid hostname or Internet address, and)-.25 F F2(port)2.997 E F0 .497
 (is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 616.8 Q F1(bash)2.5 E F0
+(vice name,)180 144 Q F1(bash)2.5 E F0
 (attempts to open a UDP connection to the corresponding sock)2.5 E(et.)
--.1 E 2.5(Af)108 633.6 S
+-.1 E 2.5(Af)108 160.8 S
 (ailure to open or create a \214le causes the redirection to f)-2.6 E
 (ail.)-.1 E .947(Redirections using \214le descriptors greater than 9 s\
-hould be used with care, as the)108 650.4 R 3.446(ym)-.15 G .946
+hould be used with care, as the)108 177.6 R 3.446(ym)-.15 G .946
 (ay con\215ict with \214le)-3.446 F
-(descriptors the shell uses internally)108 662.4 Q(.)-.65 E F1(Redir)87
-679.2 Q(ecting Input)-.18 E F0 .391
+(descriptors the shell uses internally)108 189.6 Q(.)-.65 E F1(Redir)87
+206.4 Q(ecting Input)-.18 E F0 .391
 (Redirection of input causes the \214le whose name results from the e)
-108 691.2 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
-(to be opened for read-)3.661 F(ing on \214le descriptor)108 703.2 Q F2
+108 218.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
+(to be opened for read-)3.661 F(ing on \214le descriptor)108 230.4 Q F2
 (n)2.5 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
 (he standard input \(\214le descriptor 0\) if)-2.5 E F2(n)2.86 E F0
 (is not speci\214ed.)2.74 E
-(The general format for redirecting input is:)108 720 Q
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(21)197.89 E 0 Cg EP
-%%Page: 22 23
-%%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([)144 84 Q/F1 10/Times-Italic@0 SF(n)A F0(])A/F2 10/Times-Bold@0
-SF(<)A F1(wor)A(d)-.37 E F2(Redir)87 100.8 Q(ecting Output)-.18 E F0
-.175
+(The general format for redirecting input is:)108 247.2 Q([)144 264 Q F2
+(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 280.8 Q(ecting Output)
+-.18 E F0 .175
 (Redirection of output causes the \214le whose name results from the e)
-108 112.8 R .174(xpansion of)-.15 F F1(wor)3.014 E(d)-.37 E F0 .174
-(to be opened for writ-)3.444 F .824(ing on \214le descriptor)108 124.8
-R F1(n)3.324 E F0 3.324(,o).24 G 3.324(rt)-3.324 G .824
-(he standard output \(\214le descriptor 1\) if)-3.324 F F1(n)3.684 E F0
+108 292.8 R .174(xpansion of)-.15 F F2(wor)3.014 E(d)-.37 E F0 .174
+(to be opened for writ-)3.444 F .824(ing on \214le descriptor)108 304.8
+R F2(n)3.324 E F0 3.324(,o).24 G 3.324(rt)-3.324 G .824
+(he standard output \(\214le descriptor 1\) if)-3.324 F F2(n)3.684 E F0
 .824(is not speci\214ed.)3.564 F .825(If the \214le does not)5.825 F
--.15(ex)108 136.8 S(ist it is created; if it does e).15 E
+-.15(ex)108 316.8 S(ist it is created; if it does e).15 E
 (xist it is truncated to zero size.)-.15 E
-(The general format for redirecting output is:)108 153.6 Q([)144 170.4 Q
-F1(n)A F0(])A F2(>)A F1(wor)A(d)-.37 E F0 .155
-(If the redirection operator is)108 187.2 R F2(>)2.655 E F0 2.655(,a)C
-.155(nd the)-2.655 F F2(noclob)2.655 E(ber)-.1 E F0 .154(option to the)
-2.654 F F2(set)2.654 E F0 -.2(bu)2.654 G .154
-(iltin has been enabled, the redirection).2 F .657(will f)108 199.2 R
+(The general format for redirecting output is:)108 333.6 Q([)144 350.4 Q
+F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .155
+(If the redirection operator is)108 367.2 R F1(>)2.655 E F0 2.655(,a)C
+.155(nd the)-2.655 F F1(noclob)2.655 E(ber)-.1 E F0 .154(option to the)
+2.654 F F1(set)2.654 E F0 -.2(bu)2.654 G .154
+(iltin has been enabled, the redirection).2 F .657(will f)108 379.2 R
 .657(ail if the \214le whose name results from the e)-.1 F .658
-(xpansion of)-.15 F F1(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .658
+(xpansion of)-.15 F F2(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .658
 (ists and is a re).15 F .658(gular \214le.)-.15 F .658(If the redi-)
-5.658 F .409(rection operator is)108 211.2 R F2(>|)2.909 E F0 2.909(,o)C
-2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F2(>)2.909 E
-F0 .409(and the)2.909 F F2(noclob)2.909 E(ber)-.1 E F0 .409
-(option to the)2.909 F F2(set)2.909 E F0 -.2(bu)2.908 G .408
+5.658 F .409(rection operator is)108 391.2 R F1(>|)2.909 E F0 2.909(,o)C
+2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F1(>)2.909 E
+F0 .409(and the)2.909 F F1(noclob)2.909 E(ber)-.1 E F0 .409
+(option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.908 G .408
 (iltin command).2 F(is not enabled, the redirection is attempted e)108
-223.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
--2.5 E F1(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F2 -.25(Ap)87
-240 S(pending Redir).25 E(ected Output)-.18 E F0 .641
-(Redirection of output in this f)108 252 R .642
+403.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
+-2.5 E F2(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F1 -.25(Ap)87
+420 S(pending Redir).25 E(ected Output)-.18 E F0 .641
+(Redirection of output in this f)108 432 R .642
 (ashion causes the \214le whose name results from the e)-.1 F .642
-(xpansion of)-.15 F F1(wor)3.482 E(d)-.37 E F0 .642(to be)3.912 F .474
-(opened for appending on \214le descriptor)108 264 R F1(n)2.974 E F0
+(xpansion of)-.15 F F2(wor)3.482 E(d)-.37 E F0 .642(to be)3.912 F .474
+(opened for appending on \214le descriptor)108 444 R F2(n)2.974 E F0
 2.974(,o).24 G 2.974(rt)-2.974 G .474
-(he standard output \(\214le descriptor 1\) if)-2.974 F F1(n)3.333 E F0
+(he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.333 E F0
 .473(is not speci\214ed.)3.213 F(If)5.473 E(the \214le does not e)108
-276 Q(xist it is created.)-.15 E
-(The general format for appending output is:)108 292.8 Q([)144 309.6 Q
-F1(n)A F0(])A F2(>>)A F1(wor)A(d)-.37 E F2(Redir)87 331.2 Q
-(ecting Standard Output and Standard Err)-.18 E(or)-.18 E(Bash)108 343.2
+456 Q(xist it is created.)-.15 E
+(The general format for appending output is:)108 472.8 Q([)144 489.6 Q
+F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 511.2 Q
+(ecting Standard Output and Standard Err)-.18 E(or)-.18 E(Bash)108 523.2
 Q F0(allo)3.141 E .642(ws both the standard output \(\214le descriptor \
 1\) and the standard error output \(\214le descriptor 2\) to)-.25 F
-(be redirected to the \214le whose name is the e)108 355.2 Q
-(xpansion of)-.15 E F1(wor)2.84 E(d)-.37 E F0(with this construct.)3.27
-E(There are tw)108 372 Q 2.5(of)-.1 G
-(ormats for redirecting standard output and standard error:)-2.5 E F2
-(&>)144 388.8 Q F1(wor)A(d)-.37 E F0(and)108 400.8 Q F2(>&)144 412.8 Q
-F1(wor)A(d)-.37 E F0(Of the tw)108 429.6 Q 2.5(of)-.1 G
+(be redirected to the \214le whose name is the e)108 535.2 Q
+(xpansion of)-.15 E F2(wor)2.84 E(d)-.37 E F0(with this construct.)3.27
+E(There are tw)108 552 Q 2.5(of)-.1 G
+(ormats for redirecting standard output and standard error:)-2.5 E F1
+(&>)144 568.8 Q F2(wor)A(d)-.37 E F0(and)108 580.8 Q F1(>&)144 592.8 Q
+F2(wor)A(d)-.37 E F0(Of the tw)108 609.6 Q 2.5(of)-.1 G
 (orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
--.25(va)-.25 G(lent to).25 E F2(>)144 446.4 Q F1(wor)A(d)-.37 E F0(2)2.5
-E F2(>&)A F0(1)A F2(Her)87 463.2 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33
+-.25(va)-.25 G(lent to).25 E F1(>)144 626.4 Q F2(wor)A(d)-.37 E F0(2)2.5
+E F1(>&)A F0(1)A F1(Her)87 643.2 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33
 (This type of redirection instructs the shell to read input from the cu\
-rrent source until a line containing only)108 475.2 R F1(wor)108.34
-487.2 Q(d)-.37 E F0 .683(\(with no trailing blanks\) is seen.)3.953 F
+rrent source until a line containing only)108 655.2 R F2(wor)108.34
+667.2 Q(d)-.37 E F0 .683(\(with no trailing blanks\) is seen.)3.953 F
 .684
 (All of the lines read up to that point are then used as the standard)
-5.684 F(input for a command.)108 499.2 Q
-(The format of here-documents is:)108 516 Q F2(<<)144 532.8 Q F0([)A F2
-<ad>A F0(])A F1(wor)A(d)-.37 E(her)164 544.8 Q(e-document)-.37 E
-(delimiter)144 556.8 Q F0 .128(No parameter e)108 573.6 R .127
+5.684 F(input for a command.)108 679.2 Q
+(The format of here-documents is:)108 696 Q F1(<<)144 712.8 Q F0([)A F1
+<ad>A F0(])A F2(wor)A(d)-.37 E(her)164 724.8 Q(e-document)-.37 E F0
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(22)199.835 E 0 Cg EP
+%%Page: 23 24
+%%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-Italic@0 SF(delimiter)144 84 Q F0 .128
+(No parameter e)108 100.8 R .127
 (xpansion, command substitution, arithmetic e)-.15 F .127
 (xpansion, or pathname e)-.15 F .127(xpansion is performed)-.15 F(on)108
-585.6 Q F1(wor)3.274 E(d)-.37 E F0 5.774(.I).77 G 3.274(fa)-5.774 G
+112.8 Q F1(wor)3.274 E(d)-.37 E F0 5.774(.I).77 G 3.274(fa)-5.774 G
 1.074 -.15(ny c)-3.274 H .774(haracters in).15 F F1(wor)3.614 E(d)-.37 E
 F0 .774(are quoted, the)4.044 F F1(delimiter)3.624 E F0 .774
 (is the result of quote remo)4.004 F -.25(va)-.15 G 3.275(lo).25 G(n)
 -3.275 E F1(wor)3.275 E(d)-.37 E F0 3.275(,a).77 G(nd)-3.275 E .905
-(the lines in the here-document are not e)108 597.6 R 3.405(xpanded. If)
+(the lines in the here-document are not e)108 124.8 R 3.405(xpanded. If)
 -.15 F F1(wor)3.405 E(d)-.37 E F0 .904
 (is unquoted, all lines of the here-document are)3.405 F .694
-(subjected to parameter e)108 609.6 R .695
+(subjected to parameter e)108 136.8 R .695
 (xpansion, command substitution, and arithmetic e)-.15 F 3.195
 (xpansion. In)-.15 F .695(the latter case, the)3.195 F
-(character sequence)108 621.6 Q F2(\\<newline>)2.5 E F0(is ignored, and)
-2.5 E F2(\\)2.5 E F0(must be used to quote the characters)2.5 E F2(\\)
-2.5 E F0(,)A F2($)2.5 E F0 2.5(,a)C(nd)-2.5 E F2(`)2.5 E F0(.)A .602
-(If the redirection operator is)108 638.4 R F2(<<\255)3.101 E F0 3.101
+(character sequence)108 148.8 Q/F2 10/Times-Bold@0 SF(\\<newline>)2.5 E
+F0(is ignored, and)2.5 E F2(\\)2.5 E F0
+(must be used to quote the characters)2.5 E F2(\\)2.5 E F0(,)A F2($)2.5
+E F0 2.5(,a)C(nd)-2.5 E F2(`)2.5 E F0(.)A .602
+(If the redirection operator is)108 165.6 R F2(<<\255)3.101 E F0 3.101
 (,t)C .601(hen all leading tab characters are stripped from input lines\
- and the line)-3.101 F(containing)108 650.4 Q F1(delimiter)2.5 E F0 5
+ and the line)-3.101 F(containing)108 177.6 Q F1(delimiter)2.5 E F0 5
 (.T).73 G(his allo)-5 E
 (ws here-documents within shell scripts to be indented in a natural f)
--.25 E(ashion.)-.1 E F2(Her)87 667.2 Q 2.5(eS)-.18 G(trings)-2.5 E F0
-2.5(Av)108 679.2 S(ariant of here documents, the format is:)-2.75 E F2
-(<<<)144 696 Q F1(wor)A(d)-.37 E F0(The)108 712.8 Q F1(wor)2.5 E(d)-.37
+-.25 E(ashion.)-.1 E F2(Her)87 194.4 Q 2.5(eS)-.18 G(trings)-2.5 E F0
+2.5(Av)108 206.4 S(ariant of here documents, the format is:)-2.75 E F2
+(<<<)144 223.2 Q F1(wor)A(d)-.37 E F0(The)108 240 Q F1(wor)2.5 E(d)-.37
 E F0(is e)2.5 E
-(xpanded and supplied to the command on its standard input.)-.15 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(22)197.89 E 0 Cg EP
-%%Page: 23 24
-%%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(Duplicating File Descriptors)87 84 Q F0
-(The redirection operator)108 96 Q([)144 112.8 Q/F2 10/Times-Italic@0 SF
-(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .126
-(is used to duplicate input \214le descriptors.)108 129.6 R(If)5.127 E
-F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127
+(xpanded and supplied to the command on its standard input.)-.15 E F2
+(Duplicating File Descriptors)87 256.8 Q F0(The redirection operator)108
+268.8 Q([)144 285.6 Q F1(n)A F0(])A F2(<&)A F1(wor)A(d)-.37 E F0 .126
+(is used to duplicate input \214le descriptors.)108 302.4 R(If)5.127 E
+F1(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127
 (pands to one or more digits, the \214le descriptor denoted).15 F(by)108
-141.6 Q F2(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
+314.4 Q F1(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
 2.958(ft)-2.958 G .457(hat \214le descriptor)-2.958 F 5.457(.I)-.55 G
-2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.297 E(d)-.37 E F0
+2.957(ft)-5.457 G .457(he digits in)-2.957 F F1(wor)3.297 E(d)-.37 E F0
 .457(do not specify a \214le descriptor open)3.727 F .149
-(for input, a redirection error occurs.)108 153.6 R(If)5.149 E F2(wor)
-2.989 E(d)-.37 E F0 -.25(eva)3.419 G .149(luates to).25 F F1<ad>2.649 E
-F0 2.65<2c8c>C .15(le descriptor)-2.65 F F2(n)3.01 E F0 .15(is closed.)
-2.89 F(If)5.15 E F2(n)3.01 E F0 .15(is not speci\214ed,)2.89 F
-(the standard input \(\214le descriptor 0\) is used.)108 165.6 Q
-(The operator)108 182.4 Q([)144 199.2 Q F2(n)A F0(])A F1(>&)A F2(wor)A
-(d)-.37 E F0 .444
-(is used similarly to duplicate output \214le descriptors.)108 216 R(If)
-5.444 E F2(n)3.304 E F0 .443
+(for input, a redirection error occurs.)108 326.4 R(If)5.149 E F1(wor)
+2.989 E(d)-.37 E F0 -.25(eva)3.419 G .149(luates to).25 F F2<ad>2.649 E
+F0 2.65<2c8c>C .15(le descriptor)-2.65 F F1(n)3.01 E F0 .15(is closed.)
+2.89 F(If)5.15 E F1(n)3.01 E F0 .15(is not speci\214ed,)2.89 F
+(the standard input \(\214le descriptor 0\) is used.)108 338.4 Q
+(The operator)108 355.2 Q([)144 372 Q F1(n)A F0(])A F2(>&)A F1(wor)A(d)
+-.37 E F0 .444
+(is used similarly to duplicate output \214le descriptors.)108 388.8 R
+(If)5.444 E F1(n)3.304 E F0 .443
 (is not speci\214ed, the standard output \(\214le descrip-)3.183 F 1.357
-(tor 1\) is used.)108 228 R 1.357(If the digits in)6.357 F F2(wor)4.197
-E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for output,\
- a redirection error)4.627 F 2.597(occurs. As)108 240 R 2.597(as)2.597 G
-.097(pecial case, if)-2.597 F F2(n)2.596 E F0 .096(is omitted, and)2.596
-F F2(wor)2.596 E(d)-.37 E F0 .096(does not e)2.596 F .096
-(xpand to one or more digits, the standard out-)-.15 F
-(put and standard error are redirected as described pre)108 252 Q
-(viously)-.25 E(.)-.65 E F1(Mo)87 268.8 Q(ving File Descriptors)-.1 E F0
-(The redirection operator)108 280.8 Q([)144 297.6 Q F2(n)A F0(])A F1(<&)
-A F2(digit)A F1<ad>A F0(mo)108 314.4 Q -.15(ve)-.15 G 3.035(st).15 G
-.535(he \214le descriptor)-3.035 F F2(digit)3.035 E F0 .535
-(to \214le descriptor)3.035 F F2(n)3.035 E F0 3.035(,o).24 G 3.035(rt)
--3.035 G .536(he standard input \(\214le descriptor 0\) if)-3.035 F F2
-(n)3.036 E F0 .536(is not speci-)3.036 F(\214ed.)108 326.4 Q F2(digit)5
-E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
-(Similarly)108 343.2 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)
-144 360 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 376.8 Q
--.15(ve)-.15 G 2.786(st).15 G .286(he \214le descriptor)-2.786 F F2
-(digit)2.786 E F0 .286(to \214le descriptor)2.786 F F2(n)2.786 E F0
-2.786(,o).24 G 2.786(rt)-2.786 G .285
-(he standard output \(\214le descriptor 1\) if)-2.786 F F2(n)2.785 E F0
-.285(is not speci-)2.785 F(\214ed.)108 388.8 Q F1
-(Opening File Descriptors f)87 405.6 Q(or Reading and Writing)-.25 E F0
-(The redirection operator)108 417.6 Q([)144 434.4 Q F2(n)A F0(])A F1(<>)
-A F2(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108
-451.2 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349
+(tor 1\) is used.)108 400.8 R 1.357(If the digits in)6.357 F F1(wor)
+4.197 E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for o\
+utput, a redirection error)4.627 F 2.597(occurs. As)108 412.8 R 2.597
+(as)2.597 G .097(pecial case, if)-2.597 F F1(n)2.596 E F0 .096
+(is omitted, and)2.596 F F1(wor)2.596 E(d)-.37 E F0 .096(does not e)
+2.596 F .096(xpand to one or more digits, the standard out-)-.15 F
+(put and standard error are redirected as described pre)108 424.8 Q
+(viously)-.25 E(.)-.65 E F2(Mo)87 441.6 Q(ving File Descriptors)-.1 E F0
+(The redirection operator)108 453.6 Q([)144 470.4 Q F1(n)A F0(])A F2(<&)
+A F1(digit)A F2<ad>A F0(mo)108 487.2 Q -.15(ve)-.15 G 3.035(st).15 G
+.535(he \214le descriptor)-3.035 F F1(digit)3.035 E F0 .535
+(to \214le descriptor)3.035 F F1(n)3.035 E F0 3.035(,o).24 G 3.035(rt)
+-3.035 G .536(he standard input \(\214le descriptor 0\) if)-3.035 F F1
+(n)3.036 E F0 .536(is not speci-)3.036 F(\214ed.)108 499.2 Q F1(digit)5
+E F0(is closed after being duplicated to)2.5 E F1(n)2.5 E F0(.)A
+(Similarly)108 516 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144
+532.8 Q F1(n)A F0(])A F2(>&)A F1(digit)A F2<ad>A F0(mo)108 549.6 Q -.15
+(ve)-.15 G 2.786(st).15 G .286(he \214le descriptor)-2.786 F F1(digit)
+2.786 E F0 .286(to \214le descriptor)2.786 F F1(n)2.786 E F0 2.786(,o)
+.24 G 2.786(rt)-2.786 G .285
+(he standard output \(\214le descriptor 1\) if)-2.786 F F1(n)2.785 E F0
+.285(is not speci-)2.785 F(\214ed.)108 561.6 Q F2
+(Opening File Descriptors f)87 578.4 Q(or Reading and Writing)-.25 E F0
+(The redirection operator)108 590.4 Q([)144 607.2 Q F1(n)A F0(])A F2(<>)
+A F1(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108
+624 R 1.349(xpansion of)-.15 F F1(wor)4.189 E(d)-.37 E F0 1.349
 (to be opened for both reading and writing on \214le)4.619 F(descriptor)
-108 463.2 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
-(le descriptor 0 if)-2.5 E F2(n)2.86 E F0(is not speci\214ed.)2.74 E
+108 636 Q F1(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
+(le descriptor 0 if)-2.5 E F1(n)2.86 E F0(is not speci\214ed.)2.74 E
 (If the \214le does not e)5 E(xist, it is created.)-.15 E/F3 10.95
-/Times-Bold@0 SF(ALIASES)72 480 Q F2(Aliases)108 492 Q F0(allo)3.174 E
-3.174(was)-.25 G .674(tring to be substituted for a w)-3.174 F .674
+/Times-Bold@0 SF(ALIASES)72 652.8 Q F1(Aliases)108 664.8 Q F0(allo)3.174
+3.174(was)-.25 G .674(tring to be substituted for a w)-3.174 F .674
 (ord when it is used as the \214rst w)-.1 F .673
 (ord of a simple command.)-.1 F .394(The shell maintains a list of alia\
-ses that may be set and unset with the)108 504 R F1(alias)2.894 E F0
-(and)2.894 E F1(unalias)2.894 E F0 -.2(bu)2.894 G .394(iltin commands).2
-F(\(see)108 516 Q/F4 9/Times-Bold@0 SF 1.98(SHELL B)4.48 F(UIL)-.09 E
+ses that may be set and unset with the)108 676.8 R F2(alias)2.894 E F0
+(and)2.894 E F2(unalias)2.894 E F0 -.2(bu)2.894 G .394(iltin commands).2
+F(\(see)108 688.8 Q/F4 9/Times-Bold@0 SF 1.98(SHELL B)4.48 F(UIL)-.09 E
 1.98(TIN COMMANDS)-.828 F F0(belo)4.23 E 4.48(w\). The)-.25 F 1.98
 (\214rst w)4.48 F 1.979(ord of each simple command, if unquoted, is)-.1
-F(check)108 528 Q .472(ed to see if it has an alias.)-.1 F .472
+F(check)108 700.8 Q .472(ed to see if it has an alias.)-.1 F .472
 (If so, that w)5.472 F .473(ord is replaced by the te)-.1 F .473
-(xt of the alias.)-.15 F .473(The characters)5.473 F F1(/)2.973 E F0(,)A
-F1($)2.973 E F0(,)A F1(`)2.973 E F0(,)A(and)108 540 Q F1(=)3.612 E F0
+(xt of the alias.)-.15 F .473(The characters)5.473 F F2(/)2.973 E F0(,)A
+F2($)2.973 E F0(,)A F2(`)2.973 E F0(,)A(and)108 712.8 Q F2(=)3.612 E F0
 1.112(and an)3.612 F 3.612(yo)-.15 G 3.612(ft)-3.612 G 1.112(he shell)
--3.612 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
+-3.612 F F1(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
 (or quoting characters listed abo)3.612 F 1.411 -.15(ve m)-.15 H 1.111
-(ay not appear in an alias).15 F 3.619(name. The)108 552 R 1.119
+(ay not appear in an alias).15 F 3.619(name. The)108 724.8 R 1.119
 (replacement te)3.619 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G
 1.119(alid shell input, including shell metacharacters.)-3.869 F 1.12
-(The \214rst)6.12 F -.1(wo)108 564 S .514(rd of the replacement te).1 F
-.514(xt is tested for aliases, b)-.15 F .514(ut a w)-.2 F .513
+(The \214rst)6.12 F(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(23)
+199.835 E 0 Cg EP
+%%Page: 24 25
+%%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(wo)108 84 S .514(rd of the replacement te).1 F .514
+(xt is tested for aliases, b)-.15 F .514(ut a w)-.2 F .513
 (ord that is identical to an alias being e)-.1 F .513(xpanded is)-.15 F
-.295(not e)108 576 R .295(xpanded a second time.)-.15 F .296
-(This means that one may alias)5.295 F F1(ls)2.796 E F0(to)2.796 E F1
-.296(ls \255F)2.796 F F0 2.796(,f)C .296(or instance, and)-2.796 F F1
-(bash)2.796 E F0 .296(does not try)2.796 F .543(to recursi)108 588 R
--.15(ve)-.25 G .543(ly e).15 F .543(xpand the replacement te)-.15 F
-3.043(xt. If)-.15 F .543(the last character of the alias v)3.043 F .542
-(alue is a)-.25 F F2(blank)3.042 E F0 3.042(,t).67 G .542(hen the ne)
--3.042 F(xt)-.15 E(command w)108 600 Q(ord follo)-.1 E
+.295(not e)108 96 R .295(xpanded a second time.)-.15 F .296
+(This means that one may alias)5.295 F/F1 10/Times-Bold@0 SF(ls)2.796 E
+F0(to)2.796 E F1 .296(ls \255F)2.796 F F0 2.796(,f)C .296
+(or instance, and)-2.796 F F1(bash)2.796 E F0 .296(does not try)2.796 F
+.543(to recursi)108 108 R -.15(ve)-.25 G .543(ly e).15 F .543
+(xpand the replacement te)-.15 F 3.043(xt. If)-.15 F .543
+(the last character of the alias v)3.043 F .542(alue is a)-.25 F/F2 10
+/Times-Italic@0 SF(blank)3.042 E F0 3.042(,t).67 G .542(hen the ne)
+-3.042 F(xt)-.15 E(command w)108 120 Q(ord follo)-.1 E
 (wing the alias is also check)-.25 E(ed for alias e)-.1 E(xpansion.)-.15
-E(Aliases are created and listed with the)108 616.8 Q F1(alias)2.5 E F0
+E(Aliases are created and listed with the)108 136.8 Q F1(alias)2.5 E F0
 (command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F1
 (unalias)2.5 E F0(command.)2.5 E .284
-(There is no mechanism for using ar)108 633.6 R .284
+(There is no mechanism for using ar)108 153.6 R .284
 (guments in the replacement te)-.18 F 2.784(xt. If)-.15 F(ar)2.784 E
 .284(guments are needed, a shell func-)-.18 F(tion should be used \(see)
-108 645.6 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22
-(Aliases are not e)108 662.4 R 1.22
+108 165.6 Q/F3 9/Times-Bold@0 SF(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)
+-.25 E 1.22(Aliases are not e)108 182.4 R 1.22
 (xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 3.72(,u)
 .15 G 1.22(nless the)-3.72 F F1(expand_aliases)3.72 E F0 1.22
-(shell option is set)3.72 F(using)108 674.4 Q F1(shopt)2.5 E F0
-(\(see the description of)2.5 E F1(shopt)2.5 E F0(under)2.5 E F4
+(shell option is set)3.72 F(using)108 194.4 Q F1(shopt)2.5 E F0
+(\(see the description of)2.5 E F1(shopt)2.5 E F0(under)2.5 E F3
 (SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25
 E .435
 (The rules concerning the de\214nition and use of aliases are some)108
-691.2 R .436(what confusing.)-.25 F F1(Bash)5.436 E F0(al)2.936 E -.1
+211.2 R .436(what confusing.)-.25 F F1(Bash)5.436 E F0(al)2.936 E -.1
 (wa)-.1 G .436(ys reads at least).1 F .338
-(one complete line of input before e)108 703.2 R -.15(xe)-.15 G .338
+(one complete line of input before e)108 223.2 R -.15(xe)-.15 G .338
 (cuting an).15 F 2.838(yo)-.15 G 2.838(ft)-2.838 G .338
 (he commands on that line.)-2.838 F .337(Aliases are e)5.337 F .337
-(xpanded when)-.15 F 3.403(ac)108 715.2 S .904
+(xpanded when)-.15 F 3.403(ac)108 235.2 S .904
 (ommand is read, not when it is e)-3.403 F -.15(xe)-.15 G 3.404
 (cuted. Therefore,).15 F .904
 (an alias de\214nition appearing on the same line as)3.404 F 1.162
-(another command does not tak)108 727.2 R 3.662(ee)-.1 G -.25(ff)-3.662
+(another command does not tak)108 247.2 R 3.662(ee)-.1 G -.25(ff)-3.662
 G 1.162(ect until the ne).25 F 1.162(xt line of input is read.)-.15 F
-1.161(The commands follo)6.161 F 1.161(wing the)-.25 F
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(23)197.89 E 0 Cg EP
-%%Page: 24 25
-%%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 .277(alias de\214nition on that line are not af)108 84 R .277
+1.161(The commands follo)6.161 F 1.161(wing the)-.25 F .277
+(alias de\214nition on that line are not af)108 259.2 R .277
 (fected by the ne)-.25 F 2.777(wa)-.25 G 2.777(lias. This)-2.777 F(beha)
 2.777 E .277(vior is also an issue when functions)-.2 F .699(are e)108
-96 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F .699(\
-xpanded when a function de\214nition is read, not when the function is \
-e)-.15 F -.15(xe)-.15 G(cuted,).15 E .494
-(because a function de\214nition is itself a compound command.)108 108 R
-.495(As a consequence, aliases de\214ned in a func-)5.494 F .085
-(tion are not a)108 120 R -.25(va)-.2 G .084
+271.2 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F
+.699(xpanded when a function de\214nition is read, not when the functio\
+n is e)-.15 F -.15(xe)-.15 G(cuted,).15 E .494
+(because a function de\214nition is itself a compound command.)108 283.2
+.495(As a consequence, aliases de\214ned in a func-)5.494 F .085
+(tion are not a)108 295.2 R -.25(va)-.2 G .084
 (ilable until after that function is e).25 F -.15(xe)-.15 G 2.584
 (cuted. T).15 F 2.584(ob)-.8 G 2.584(es)-2.584 G .084(afe, al)-2.584 F
 -.1(wa)-.1 G .084(ys put alias de\214nitions on a sepa-).1 F
-(rate line, and do not use)108 132 Q/F1 10/Times-Bold@0 SF(alias)2.5 E
-F0(in compound commands.)2.5 E -.15(Fo)108 148.8 S 2.5(ra).15 G(lmost e)
--2.5 E -.15(ve)-.25 G
-(ry purpose, aliases are superseded by shell functions.).15 E/F2 10.95
-/Times-Bold@0 SF(FUNCTIONS)72 165.6 Q F0 3.467(As)108 177.6 S .967
-(hell function, de\214ned as described abo)-3.467 F 1.267 -.15(ve u)-.15
-H(nder).15 E/F3 9/Times-Bold@0 SF .967(SHELL GRAMMAR)3.467 F/F4 9
+(rate line, and do not use)108 307.2 Q F1(alias)2.5 E F0
+(in compound commands.)2.5 E -.15(Fo)108 324 S 2.5(ra).15 G(lmost e)-2.5
+E -.15(ve)-.25 G(ry purpose, aliases are superseded by shell functions.)
+.15 E/F4 10.95/Times-Bold@0 SF(FUNCTIONS)72 340.8 Q F0 3.467(As)108
+352.8 S .967(hell function, de\214ned as described abo)-3.467 F 1.267
+-.15(ve u)-.15 H(nder).15 E F3 .967(SHELL GRAMMAR)3.467 F/F5 9
 /Times-Roman@0 SF(,)A F0 .968(stores a series of commands for)3.217 F
-1.002(later e)108 189.6 R -.15(xe)-.15 G 3.502(cution. When).15 F 1.002
+1.002(later e)108 364.8 R -.15(xe)-.15 G 3.502(cution. When).15 F 1.002
 (the name of a shell function is used as a simple command name, the lis\
 t of com-)3.502 F .315(mands associated with that function name is e)108
-201.6 R -.15(xe)-.15 G 2.816(cuted. Functions).15 F .316(are e)2.816 F
+376.8 R -.15(xe)-.15 G 2.816(cuted. Functions).15 F .316(are e)2.816 F
 -.15(xe)-.15 G .316(cuted in the conte).15 F .316(xt of the current)-.15
-F .036(shell; no ne)108 213.6 R 2.536(wp)-.25 G .036
+F .036(shell; no ne)108 388.8 R 2.536(wp)-.25 G .036
 (rocess is created to interpret them \(contrast this with the e)-2.536 F
 -.15(xe)-.15 G .036(cution of a shell script\).).15 F .035(When a)5.035
-F .639(function is e)108 225.6 R -.15(xe)-.15 G .639(cuted, the ar).15 F
+F .639(function is e)108 400.8 R -.15(xe)-.15 G .639(cuted, the ar).15 F
 .639
 (guments to the function become the positional parameters during its e)
--.18 F -.15(xe)-.15 G(cution.).15 E .533(The special parameter)108 237.6
+-.18 F -.15(xe)-.15 G(cution.).15 E .533(The special parameter)108 412.8
 R F1(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532
 (Special parameter 0 is unchanged.)5.532 F .532(The \214rst ele-)5.532 F
-1.017(ment of the)108 249.6 R F3(FUNCN)3.517 E(AME)-.18 E F0 -.25(va)
+1.017(ment of the)108 424.8 R F3(FUNCN)3.517 E(AME)-.18 E F0 -.25(va)
 3.267 G 1.017
 (riable is set to the name of the function while the function is e).25 F
 -.15(xe)-.15 G 3.518(cuting. All).15 F 1.285
-(other aspects of the shell e)108 261.6 R -.15(xe)-.15 G 1.285
+(other aspects of the shell e)108 436.8 R -.15(xe)-.15 G 1.285
 (cution en).15 F 1.285
 (vironment are identical between a function and its caller with the)-.4
-F -.15(ex)108 273.6 S 2.029(ception that the).15 F F3(DEB)4.529 E(UG)
+F -.15(ex)108 448.8 S 2.029(ception that the).15 F F3(DEB)4.529 E(UG)
 -.09 E F0(and)4.279 E F1(RETURN)4.529 E F0 2.029
 (traps \(see the description of the)4.529 F F1(trap)4.53 E F0 -.2(bu)
-4.53 G 2.03(iltin under).2 F F3(SHELL)4.53 E -.09(BU)108 285.6 S(IL).09
+4.53 G 2.03(iltin under).2 F F3(SHELL)4.53 E -.09(BU)108 460.8 S(IL).09
 E .479(TIN COMMANDS)-.828 F F0(belo)2.729 E .479
 (w\) are not inherited unless the function has been gi)-.25 F -.15(ve)
 -.25 G 2.978(nt).15 G(he)-2.978 E F1(trace)2.978 E F0(attrib)2.978 E
-.478(ute \(see)-.2 F .42(the description of the)108 297.6 R F3(declar)
+.478(ute \(see)-.2 F .42(the description of the)108 472.8 R F3(declar)
 2.92 E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)
 -.25 F F1 .42(\255o functrace)2.92 F F0 .42
 (shell option has been enabled with the)2.92 F F1(set)2.921 E F0 -.2(bu)
-108 309.6 S(iltin \(in which case all functions inherit the).2 E F1(DEB)
+108 484.8 S(iltin \(in which case all functions inherit the).2 E F1(DEB)
 2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps\).)2.5 E -1.11(Va)
-108 326.4 S .656(riables local to the function may be declared with the)
+108 501.6 S .656(riables local to the function may be declared with the)
 1.11 F F1(local)3.155 E F0 -.2(bu)3.155 G .655(iltin command.).2 F
 (Ordinarily)5.655 E 3.155(,v)-.65 G .655(ariables and)-3.405 F(their v)
-108 338.4 Q(alues are shared between the function and its caller)-.25 E
-(.)-.55 E .043(If the b)108 355.2 R .043(uiltin command)-.2 F F1 -.18
+108 513.6 Q(alues are shared between the function and its caller)-.25 E
+(.)-.55 E .043(If the b)108 530.4 R .043(uiltin command)-.2 F F1 -.18
 (re)2.543 G(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043
 (cuted in a function, the function completes and e).15 F -.15(xe)-.15 G
-.044(cution resumes with).15 F 1.012(the ne)108 367.2 R 1.012
+.044(cution resumes with).15 F 1.012(the ne)108 542.4 R 1.012
 (xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)-.15 G
 1.011(ommand associated with the)-3.511 F F1(RETURN)3.511 E F0 1.011
-(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 379.2 R
+(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 554.4 R
 -.15(xe)-.15 G .213(cution resumes.).15 F .213
 (When a function completes, the v)5.213 F .214
 (alues of the positional parameters and the spe-)-.25 F(cial parameter)
-108 391.2 Q F1(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
+108 566.4 Q F1(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
 2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
 -2.65 G(cution.).15 E 1.359
-(Function names and de\214nitions may be listed with the)108 408 R F1
+(Function names and de\214nitions may be listed with the)108 583.2 R F1
 <ad66>3.858 E F0 1.358(option to the)3.858 F F1(declar)3.858 E(e)-.18 E
 F0(or)3.858 E F1(typeset)3.858 E F0 -.2(bu)3.858 G 1.358(iltin com-).2 F
-3.39(mands. The)108 420 R F1<ad46>3.39 E F0 .89(option to)3.39 F F1
+3.39(mands. The)108 595.2 R F1<ad46>3.39 E F0 .89(option to)3.39 F F1
 (declar)3.39 E(e)-.18 E F0(or)3.39 E F1(typeset)3.39 E F0 .89
 (will list the function names only \(and optionally the source)3.39 F
-.327(\214le and line number)108 432 R 2.827(,i)-.4 G 2.827(ft)-2.827 G
+.327(\214le and line number)108 607.2 R 2.827(,i)-.4 G 2.827(ft)-2.827 G
 (he)-2.827 E F1(extdeb)2.827 E(ug)-.2 E F0 .326
 (shell option is enabled\).)2.827 F .326(Functions may be e)5.326 F .326
-(xported so that subshells)-.15 F .011(automatically ha)108 444 R .311
--.15(ve t)-.2 H .011(hem de\214ned with the).15 F F1<ad66>2.511 E F0
-.011(option to the)2.511 F F1(export)2.511 E F0 -.2(bu)2.511 G 2.511
-(iltin. Note).2 F .012(that shell functions and v)2.511 F(ari-)-.25 E
-.188(ables with the same name may result in multiple identically-named \
-entries in the en)108 456 R .187(vironment passed to the)-.4 F(shell')
-108 468 Q 2.5(sc)-.55 G 2.5(hildren. Care)-2.5 F(should be tak)2.5 E
+(xported so that subshells)-.15 F 1.297(automatically ha)108 619.2 R
+1.597 -.15(ve t)-.2 H 1.297(hem de\214ned with the).15 F F1<ad66>3.797 E
+F0 1.297(option to the)3.797 F F1(export)3.798 E F0 -.2(bu)3.798 G 3.798
+(iltin. A).2 F 1.298(function de\214nition may be)3.798 F .161
+(deleted using the)108 631.2 R F1<ad66>2.661 E F0 .161(option to the)
+2.661 F F1(unset)2.661 E F0 -.2(bu)2.661 G 2.661(iltin. Note).2 F .16
+(that shell functions and v)2.661 F .16(ariables with the same name)-.25
+F 1.325(may result in multiple identically-named entries in the en)108
+643.2 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825
+(hildren. Care)-3.825 F(should be tak)108 655.2 Q
 (en in cases where this may cause a problem.)-.1 E
-(Functions may be recursi)108 484.8 Q -.15(ve)-.25 G 5(.N).15 G 2.5(ol)
--5 G(imit is imposed on the number of recursi)-2.5 E .3 -.15(ve c)-.25 H
-(alls.).15 E F2(ARITHMETIC EV)72 501.6 Q(ALU)-1.478 E -1.04(AT)-.657 G
-(ION)1.04 E F0 2.297(The shell allo)108 513.6 R 2.297(ws arithmetic e)
+(Functions may be recursi)108 672 Q -.15(ve)-.25 G 5(.N).15 G 2.5(ol)-5
+G(imit is imposed on the number of recursi)-2.5 E .3 -.15(ve c)-.25 H
+(alls.).15 E F4(ARITHMETIC EV)72 688.8 Q(ALU)-1.478 E -1.04(AT)-.657 G
+(ION)1.04 E F0 2.298(The shell allo)108 700.8 R 2.297(ws arithmetic e)
 -.25 F 2.297(xpressions to be e)-.15 F -.25(va)-.25 G 2.297
-(luated, under certain circumstances \(see the).25 F F1(let)4.798 E F0
-(and)4.798 E F1(declar)108 525.6 Q(e)-.18 E F0 -.2(bu)2.706 G .206
-(iltin commands and).2 F F1 .206(Arithmetic Expansion)2.706 F F0 2.705
-(\). Ev)B .205(aluation is done in \214x)-.25 F .205(ed-width inte)-.15
-F .205(gers with no)-.15 F .428(check for o)108 537.6 R -.15(ve)-.15 G
-(r\215o).15 E 1.728 -.65(w, t)-.25 H .428(hough di).65 F .428
-(vision by 0 is trapped and \215agged as an error)-.25 F 5.429(.T)-.55 G
-.429(he operators and their prece-)-5.429 F 1.92(dence, associati)108
-549.6 R(vity)-.25 E 4.42(,a)-.65 G 1.92(nd v)-4.42 F 1.92
-(alues are the same as in the C language.)-.25 F 1.919(The follo)6.919 F
-1.919(wing list of operators is)-.25 F(grouped into le)108 561.6 Q -.15
-(ve)-.25 G(ls of equal-precedence operators.).15 E(The le)5 E -.15(ve)
--.25 G(ls are listed in order of decreasing precedence.).15 E/F5 10
-/Times-Italic@0 SF(id)108 578.4 Q F1(++)A F5(id)2.5 E F1<adad>A F0 -.25
-(va)144 590.4 S(riable post-increment and post-decrement).25 E F1(++)108
-602.4 Q F5(id)A F1<adad>2.5 E F5(id)A F0 -.25(va)144 614.4 S
-(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 626.4 S F0
-(unary minus and plus)19.6 E F1 2.5(!~)108 638.4 S F0
-(logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F1(**)108
-650.4 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 662.4 S F0
-(multiplication, di)10.72 E(vision, remainder)-.25 E F1 2.5<2bad>108
-674.4 S F0(addition, subtraction)19.6 E F1(<< >>)108 686.4 Q F0
-(left and right bitwise shifts)10.7 E F1(<= >= < >)108 698.4 Q F0
-(comparison)144 710.4 Q(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E
-(24)197.89 E 0 Cg EP
+(luated, under certain circumstances \(see the).25 F F1(let)4.797 E F0
+(and)4.797 E F1(declar)108 712.8 Q(e)-.18 E F0 -.2(bu)2.705 G .205
+(iltin commands and).2 F F1 .205(Arithmetic Expansion)2.705 F F0 2.705
+(\). Ev)B .205(aluation is done in \214x)-.25 F .206(ed-width inte)-.15
+F .206(gers with no)-.15 F 2.07(check for o)108 724.8 R -.15(ve)-.15 G
+(r\215o).15 E 3.37 -.65(w, t)-.25 H 2.07(hough di).65 F 2.07
+(vision by 0 is trapped and \215agged as an error)-.25 F 7.07(.T)-.55 G
+2.07(he operators and their)-7.07 F(GNU Bash-3.2)72 768 Q(2006 Jan 26)
+149.845 E(24)199.835 E 0 Cg EP
 %%Page: 25 26
 %%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(== !=)108 84 Q F0(equality and inequality)
-13.07 E F1(&)108 96 Q F0(bitwise AND)27.67 E F1(^)108 108 Q F0
-(bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F1(|)108
-120 Q F0(bitwise OR)33.8 E F1(&&)108 132 Q F0(logical AND)19.34 E F1(||)
-108 144 Q F0(logical OR)31.6 E/F2 10/Times-Italic@0 SF -.2(ex)108 156 S
-(pr).2 E F1(?)A F2 -.2(ex)C(pr).2 E F1(:)A F2 -.2(ex)C(pr).2 E F0
-(conditional operator)144 168 Q F1 2.5(=*)108 180 S 2.5(=/)-2.5 G 2.5
-(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G(<= >>= &= ^= |=)
--2.5 E F0(assignment)144 192 Q F2 -.2(ex)108 204 S(pr1).2 E F1(,)2.5 E
-F2 -.2(ex)2.5 G(pr2).2 E F0(comma)144 216 Q .68(Shell v)108 232.8 R .68
-(ariables are allo)-.25 F .68(wed as operands; parameter e)-.25 F .68
+-.35 E .645(precedence, associati)108 84 R(vity)-.25 E 3.145(,a)-.65 G
+.646(nd v)-3.145 F .646(alues are the same as in the C language.)-.25 F
+.646(The follo)5.646 F .646(wing list of operators is)-.25 F
+(grouped into le)108 96 Q -.15(ve)-.25 G
+(ls of equal-precedence operators.).15 E(The le)5 E -.15(ve)-.25 G
+(ls are listed in order of decreasing precedence.).15 E/F1 10
+/Times-Italic@0 SF(id)108 112.8 Q/F2 10/Times-Bold@0 SF(++)A F1(id)2.5 E
+F2<adad>A F0 -.25(va)144 124.8 S
+(riable post-increment and post-decrement).25 E F2(++)108 136.8 Q F1(id)
+A F2<adad>2.5 E F1(id)A F0 -.25(va)144 148.8 S
+(riable pre-increment and pre-decrement).25 E F2 2.5<ad2b>108 160.8 S F0
+(unary minus and plus)19.6 E F2 2.5(!~)108 172.8 S F0
+(logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F2(**)108
+184.8 Q F0 -.15(ex)26 G(ponentiation).15 E F2 2.5(*/%)108 196.8 S F0
+(multiplication, di)10.72 E(vision, remainder)-.25 E F2 2.5<2bad>108
+208.8 S F0(addition, subtraction)19.6 E F2(<< >>)108 220.8 Q F0
+(left and right bitwise shifts)10.7 E F2(<= >= < >)108 232.8 Q F0
+(comparison)144 244.8 Q F2(== !=)108 256.8 Q F0(equality and inequality)
+13.07 E F2(&)108 268.8 Q F0(bitwise AND)27.67 E F2(^)108 280.8 Q F0
+(bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F2(|)108
+292.8 Q F0(bitwise OR)33.8 E F2(&&)108 304.8 Q F0(logical AND)19.34 E F2
+(||)108 316.8 Q F0(logical OR)31.6 E F1 -.2(ex)108 328.8 S(pr).2 E F2(?)
+A F1 -.2(ex)C(pr).2 E F2(:)A F1 -.2(ex)C(pr).2 E F0
+(conditional operator)144 340.8 Q F2 2.5(=*)108 352.8 S 2.5(=/)-2.5 G
+2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G
+(<= >>= &= ^= |=)-2.5 E F0(assignment)144 364.8 Q F1 -.2(ex)108 376.8 S
+(pr1).2 E F2(,)2.5 E F1 -.2(ex)2.5 G(pr2).2 E F0(comma)144 388.8 Q .68
+(Shell v)108 405.6 R .68(ariables are allo)-.25 F .68
+(wed as operands; parameter e)-.25 F .68
 (xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
--.25(va)-.25 G(lu-).25 E 3.508(ated. W)108 244.8 R 1.008(ithin an e)-.4
-F 1.008(xpression, shell v)-.15 F 1.007
+-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 417.6 R 1.007(ithin an e)-.4
+F 1.007(xpression, shell v)-.15 F 1.007
 (ariables may also be referenced by name without using the parameter)
--.25 F -.15(ex)108 256.8 S 1.04(pansion syntax.).15 F 3.54(As)6.04 G
-1.04(hell v)-3.54 F 1.04(ariable that is null or unset e)-.25 F -.25(va)
--.25 G 1.041(luates to 0 when referenced by name without).25 F 1.467
-(using the parameter e)108 268.8 R 1.467(xpansion syntax.)-.15 F 1.467
-(The v)6.467 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25
-(va)-.25 G 1.466(luated as an arithmetic e).25 F(xpression)-.15 E 1.389
-(when it is referenced, or when a v)108 280.8 R 1.389
-(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.89(nt).15 G(he)-3.89
-E F2(inte)3.89 E -.1(ge)-.4 G(r).1 E F0(attrib)3.89 E 1.39(ute using)-.2
-F F1(declar)3.89 E 3.89(e-)-.18 G(i)-3.89 E F0(is)3.89 E .344
-(assigned a v)108 292.8 R 2.844(alue. A)-.25 F .343(null v)2.843 F .343
-(alue e)-.25 F -.25(va)-.25 G .343(luates to 0.).25 F 2.843(As)5.343 G
-.343(hell v)-2.843 F .343(ariable need not ha)-.25 F .643 -.15(ve i)-.2
-H .343(ts inte).15 F .343(ger attrib)-.15 F .343(ute turned on)-.2 F
-(to be used in an e)108 304.8 Q(xpression.)-.15 E 1.406
-(Constants with a leading 0 are interpreted as octal numbers.)108 321.6
-R 3.906(Al)6.406 G 1.407(eading 0x or 0X denotes he)-3.906 F(xadecimal.)
--.15 E .59(Otherwise, numbers tak)108 333.6 R 3.09(et)-.1 G .59
-(he form [)-3.09 F F2(base#)A F0 .59(]n, where)B F2(base)3.089 E F0 .589
-(is a decimal number between 2 and 64 represent-)3.089 F .092
-(ing the arithmetic base, and)108 345.6 R F2(n)2.592 E F0 .093
-(is a number in that base.)2.592 F(If)5.093 E F2(base#)2.593 E F0 .093
-(is omitted, then base 10 is used.)2.593 F .093(The digits)5.093 F .065
-(greater than 9 are represented by the lo)108 357.6 R .064
+-.25 F -.15(ex)108 429.6 S 1.041(pansion syntax.).15 F 3.541(As)6.041 G
+1.041(hell v)-3.541 F 1.041(ariable that is null or unset e)-.25 F -.25
+(va)-.25 G 1.04(luates to 0 when referenced by name without).25 F 1.466
+(using the parameter e)108 441.6 R 1.466(xpansion syntax.)-.15 F 1.467
+(The v)6.466 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25
+(va)-.25 G 1.467(luated as an arithmetic e).25 F(xpression)-.15 E 1.39
+(when it is referenced, or when a v)108 453.6 R 1.389
+(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.889(nt).15 G(he)
+-3.889 E F1(inte)3.889 E -.1(ge)-.4 G(r).1 E F0(attrib)3.889 E 1.389
+(ute using)-.2 F F2(declar)3.889 E 3.889(e-)-.18 G(i)-3.889 E F0(is)
+3.889 E .343(assigned a v)108 465.6 R 2.843(alue. A)-.25 F .343(null v)
+2.843 F .343(alue e)-.25 F -.25(va)-.25 G .343(luates to 0.).25 F 2.843
+(As)5.343 G .343(hell v)-2.843 F .343(ariable need not ha)-.25 F .643
+-.15(ve i)-.2 H .343(ts inte).15 F .344(ger attrib)-.15 F .344
+(ute turned on)-.2 F(to be used in an e)108 477.6 Q(xpression.)-.15 E
+1.406(Constants with a leading 0 are interpreted as octal numbers.)108
+494.4 R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F
+(xadecimal.)-.15 E .589(Otherwise, numbers tak)108 506.4 R 3.089(et)-.1
+G .589(he form [)-3.089 F F1(base#)A F0 .589(]n, where)B F1(base)3.089 E
+F0 .59(is a decimal number between 2 and 64 represent-)3.089 F .093
+(ing the arithmetic base, and)108 518.4 R F1(n)2.593 E F0 .093
+(is a number in that base.)2.593 F(If)5.093 E F1(base#)2.593 E F0 .092
+(is omitted, then base 10 is used.)2.593 F .092(The digits)5.092 F .064
+(greater than 9 are represented by the lo)108 530.4 R .064
 (wercase letters, the uppercase letters, @, and _, in that order)-.25 F
-5.064(.I)-.55 G(f)-5.064 E F2(base)2.564 E F0 .432
-(is less than or equal to 36, lo)108 369.6 R .433(wercase and uppercase\
+5.065(.I)-.55 G(f)-5.065 E F1(base)2.565 E F0 .433
+(is less than or equal to 36, lo)108 542.4 R .432(wercase and uppercase\
  letters may be used interchangeably to represent num-)-.25 F
-(bers between 10 and 35.)108 381.6 Q .235(Operators are e)108 398.4 R
--.25(va)-.25 G .235(luated in order of precedence.).25 F(Sub-e)5.234 E
-.234(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .234
-(luated \214rst and may).25 F -.15(ove)108 410.4 S
+(bers between 10 and 35.)108 554.4 Q .234(Operators are e)108 571.2 R
+-.25(va)-.25 G .234(luated in order of precedence.).25 F(Sub-e)5.234 E
+.234(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .235
+(luated \214rst and may).25 F -.15(ove)108 583.2 S
 (rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F3 10.95
-/Times-Bold@0 SF(CONDITION)72 427.2 Q(AL EXPRESSIONS)-.219 E F0 .255
-(Conditional e)108 439.2 R .255(xpressions are used by the)-.15 F F1([[)
-2.755 E F0 .255(compound command and the)2.755 F F1(test)2.755 E F0(and)
-2.755 E F1([)2.756 E F0 -.2(bu)2.756 G .256(iltin commands to test).2 F
-.77(\214le attrib)108 451.2 R .77
+/Times-Bold@0 SF(CONDITION)72 600 Q(AL EXPRESSIONS)-.219 E F0 .256
+(Conditional e)108 612 R .256(xpressions are used by the)-.15 F F2([[)
+2.755 E F0 .255(compound command and the)2.755 F F2(test)2.755 E F0(and)
+2.755 E F2([)2.755 E F0 -.2(bu)2.755 G .255(iltin commands to test).2 F
+.77(\214le attrib)108 624 R .77
 (utes and perform string and arithmetic comparisons.)-.2 F .77
-(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.04
-(unary or binary primaries.)108 463.2 R 1.04(If an)6.04 F(y)-.15 E F2
-(\214le)3.54 E F0(ar)3.54 E 1.041
-(gument to one of the primaries is of the form)-.18 F F2(/de)3.541 E
-(v/fd/n)-.15 E F0 3.541(,t)C 1.041(hen \214le)-3.541 F(descriptor)108
-475.2 Q F2(n)3.789 E F0 1.289(is check)3.789 F 3.789(ed. If)-.1 F(the)
-3.789 E F2(\214le)3.789 E F0(ar)3.789 E 1.289
-(gument to one of the primaries is one of)-.18 F F2(/de)3.789 E(v/stdin)
--.15 E F0(,)A F2(/de)3.788 E(v/stdout)-.15 E F0 3.788(,o)C(r)-3.788 E F2
-(/de)108 487.2 Q(v/stderr)-.15 E F0 2.5<2c8c>C
+(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.041
+(unary or binary primaries.)108 636 R 1.041(If an)6.041 F(y)-.15 E F1
+(\214le)3.541 E F0(ar)3.541 E 1.04
+(gument to one of the primaries is of the form)-.18 F F1(/de)3.54 E
+(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 648 Q
+F1(n)3.788 E F0 1.289(is check)3.788 F 3.789(ed. If)-.1 F(the)3.789 E F1
+(\214le)3.789 E F0(ar)3.789 E 1.289
+(gument to one of the primaries is one of)-.18 F F1(/de)3.789 E(v/stdin)
+-.15 E F0(,)A F1(/de)3.789 E(v/stdout)-.15 E F0 3.789(,o)C(r)-3.789 E F1
+(/de)108 660 Q(v/stderr)-.15 E F0 2.5<2c8c>C
 (le descriptor 0, 1, or 2, respecti)-2.5 E -.15(ve)-.25 G(ly).15 E 2.5
-(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .721
+(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .722
 (Unless otherwise speci\214ed, primaries that operate on \214les follo)
-108 504 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar)
--3.221 F(get)-.18 E(of the link, rather than the link itself.)108 516 Q
-F1<ad61>108 540 Q F2(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F2
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F1<ad62>108 552 Q F2(\214le)
-2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a block special \214le.).15 E F1<ad63>108 564 Q F2(\214le)
-2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a character special \214le.).15 E F1<ad64>108 576 Q F2
+108 676.8 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar)
+-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 688.8
+Q F2<ad61>108 712.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(25)199.835 E 0 Cg EP
+%%Page: 26 27
+%%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<ad62>108 84 Q/F2 10/Times-Italic@0 SF
 (\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is a directory).15 E(.)-.65 E F1<ad65>108 588 Q F2
+2.5 G(ists and is a block special \214le.).15 E F1<ad63>108 96 Q F2
 (\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists.).15 E F1<ad66>108 600 Q F2(\214le)2.5 E F0 -.35(Tr)12.25 G
+2.5 G(ists and is a character special \214le.).15 E F1<ad64>108 108 Q F2
+(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a directory).15 E(.)-.65 E F1<ad65>108 120 Q F2
+(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists.).15 E F1<ad66>108 132 Q F2(\214le)2.5 E F0 -.35(Tr)12.25 G
 (ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E
-(gular \214le.)-.15 E F1<ad67>108 612 Q F2(\214le)2.5 E F0 -.35(Tr)10.58
+(gular \214le.)-.15 E F1<ad67>108 144 Q F2(\214le)2.5 E F0 -.35(Tr)10.58
 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is set-group-id.).15 E F1<ad68>108 624 Q F2(\214le)2.5 E F0
+(ists and is set-group-id.).15 E F1<ad68>108 156 Q F2(\214le)2.5 E F0
 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a symbolic link.).15 E F1<ad6b>108 636 Q F2(\214le)2.5 E F0
+(ists and is a symbolic link.).15 E F1<ad6b>108 168 Q F2(\214le)2.5 E F0
 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
 (ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G(it is set.)
--2.5 E F1<ad70>108 648 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E
+-2.5 E F1<ad70>108 180 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E
 F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).).15
-E F1<ad72>108 660 Q F2(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2
+E F1<ad72>108 192 Q F2(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2
 (\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F1<ad73>108
-672 Q F2(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F2(\214le)2.5 E F0
+204 Q F2(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F2(\214le)2.5 E F0
 -.15(ex)2.5 G(ists and has a size greater than zero.).15 E F1<ad74>108
-684 Q F2(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E F2
-(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F1<ad75>108 696 Q
+216 Q F2(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E F2
+(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F1<ad75>108 228 Q
 F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15
 (ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F1<ad77>108
-708 Q F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)2.5 E F0
--.15(ex)2.5 G(ists and is writable.).15 E(GNU Bash-3.1-beta1)72 768 Q
-(2005 Aug 27)122.91 E(25)197.89 E 0 Cg EP
-%%Page: 26 27
-%%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<ad78>108 84 Q/F2 10/Times-Italic@0 SF
-(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F1<ad4f>108 96 Q
-F2(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
+240 Q F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)2.5 E F0
+-.15(ex)2.5 G(ists and is writable.).15 E F1<ad78>108 252 Q F2(\214le)
+2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F1<ad4f>108 264 Q F2
+(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
 2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15
-(ve u)-.25 H(ser id.).15 E F1<ad47>108 108 Q F2(\214le)2.5 E F0 -.35(Tr)
+(ve u)-.25 H(ser id.).15 E F1<ad47>108 276 Q F2(\214le)2.5 E F0 -.35(Tr)
 7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E
 (wned by the ef)-.25 E(fecti)-.25 E .3 -.15(ve g)-.25 H(roup id.).15 E
-F1<ad4c>108 120 Q F2(\214le)2.5 E F0 -.35(Tr)8.91 G(ue if).35 E F2
+F1<ad4c>108 288 Q F2(\214le)2.5 E F0 -.35(Tr)8.91 G(ue if).35 E F2
 (\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a symbolic link.).15 E F1
-<ad53>108 132 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2
+<ad53>108 300 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2
 (\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a sock).15 E(et.)-.1 E F1
-<ad4e>108 144 Q F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)
+<ad4e>108 312 Q F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)
 2.5 E F0 -.15(ex)2.5 G(ists and has been modi\214ed since it w).15 E
-(as last read.)-.1 E F2(\214le1)108 156 Q F0<ad>2.5 E F1(nt)A F2
-(\214le2)2.5 E F0 -.35(Tr)144 168 S .039(ue if).35 F F2(\214le1)2.539 E
+(as last read.)-.1 E F2(\214le1)108 324 Q F0<ad>2.5 E F1(nt)A F2
+(\214le2)2.5 E F0 -.35(Tr)144 336 S .038(ue if).35 F F2(\214le1)2.538 E
 F0 .039(is ne)2.539 F .039
 (wer \(according to modi\214cation date\) than)-.25 F F2(\214le2)2.539 E
 F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F2(\214le1)2.539 E F0 -.15
-(ex)2.539 G .039(ists and).15 F F2(\214le2)2.539 E F0 .038(does not.)
-2.538 F F2(\214le1)108 180 Q F0<ad>2.5 E F1(ot)A F2(\214le2)2.5 E F0
--.35(Tr)144 192 S(ue if).35 E F2(\214le1)2.5 E F0(is older than)2.5 E F2
+(ex)2.539 G .039(ists and).15 F F2(\214le2)2.539 E F0 .039(does not.)
+2.539 F F2(\214le1)108 348 Q F0<ad>2.5 E F1(ot)A F2(\214le2)2.5 E F0
+-.35(Tr)144 360 S(ue if).35 E F2(\214le1)2.5 E F0(is older than)2.5 E F2
 (\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F2(\214le2)2.5 E F0
 -.15(ex)2.5 G(ists and).15 E F2(\214le1)2.5 E F0(does not.)2.5 E F2
-(\214le1)108 204 Q F1(\255ef)2.5 E F2(\214le2)2.5 E F0 -.35(Tr)144 216 S
+(\214le1)108 372 Q F1(\255ef)2.5 E F2(\214le2)2.5 E F0 -.35(Tr)144 384 S
 (ue if).35 E F2(\214le1)2.5 E F0(and)2.5 E F2(\214le2)2.5 E F0
 (refer to the same de)2.5 E(vice and inode numbers.)-.25 E F1<ad6f>108
-228 Q F2(optname)2.5 E F0 -.35(Tr)144 240 S 1.143(ue if shell option).35
-F F2(optname)3.873 E F0 1.143(is enabled.)3.823 F 1.144
-(See the list of options under the description of the)6.143 F F1<ad6f>
-3.644 E F0(option to the)144 252 Q F1(set)2.5 E F0 -.2(bu)2.5 G
-(iltin belo).2 E -.65(w.)-.25 G F1<ad7a>108 264 Q F2(string)2.5 E F0
--.35(Tr)144 276 S(ue if the length of).35 E F2(string)2.5 E F0(is zero.)
-2.5 E F2(string)108 288 Q F1<ad6e>108 300 Q F2(string)2.5 E F0 -.35(Tr)
-144 312 S(ue if the length of).35 E F2(string)2.84 E F0(is non-zero.)
-2.72 E F2(string1)108 328.8 Q F1(==)2.5 E F2(string2)2.5 E F0 -.35(Tr)
-144 340.8 S(ue if the strings are equal.).35 E F1(=)5 E F0
+396 Q F2(optname)2.5 E F0 -.35(Tr)144 408 S 1.144(ue if shell option).35
+F F2(optname)3.874 E F0 1.144(is enabled.)3.824 F 1.143
+(See the list of options under the description of the)6.144 F F1<ad6f>
+3.643 E F0(option to the)144 420 Q F1(set)2.5 E F0 -.2(bu)2.5 G
+(iltin belo).2 E -.65(w.)-.25 G F1<ad7a>108 432 Q F2(string)2.5 E F0
+-.35(Tr)144 444 S(ue if the length of).35 E F2(string)2.5 E F0(is zero.)
+2.5 E F2(string)108 456 Q F1<ad6e>108 468 Q F2(string)2.5 E F0 -.35(Tr)
+144 480 S(ue if the length of).35 E F2(string)2.84 E F0(is non-zero.)
+2.72 E F2(string1)108 496.8 Q F1(==)2.5 E F2(string2)2.5 E F0 -.35(Tr)
+144 508.8 S(ue if the strings are equal.).35 E F1(=)5 E F0
 (may be used in place of)2.5 E F1(==)2.5 E F0
-(for strict POSIX compliance.)2.5 E F2(string1)108 357.6 Q F1(!=)2.5 E
-F2(string2)2.5 E F0 -.35(Tr)144 369.6 S
-(ue if the strings are not equal.).35 E F2(string1)108 386.4 Q F1(<)2.5
-E F2(string2)2.5 E F0 -.35(Tr)144 398.4 S(ue if).35 E F2(string1)2.5 E
+(for strict POSIX compliance.)2.5 E F2(string1)108 525.6 Q F1(!=)2.5 E
+F2(string2)2.5 E F0 -.35(Tr)144 537.6 S
+(ue if the strings are not equal.).35 E F2(string1)108 554.4 Q F1(<)2.5
+E F2(string2)2.5 E F0 -.35(Tr)144 566.4 S(ue if).35 E F2(string1)2.5 E
 F0(sorts before)2.5 E F2(string2)2.5 E F0(le)2.5 E
-(xicographically in the current locale.)-.15 E F2(string1)108 415.2 Q F1
-(>)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 427.2 S(ue if).35 E F2(string1)
+(xicographically in the current locale.)-.15 E F2(string1)108 583.2 Q F1
+(>)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 595.2 S(ue if).35 E F2(string1)
 2.5 E F0(sorts after)2.5 E F2(string2)2.5 E F0(le)2.5 E
-(xicographically in the current locale.)-.15 E F2(ar)108.33 444 Q(g1)
--.37 E F1(OP)2.5 E F2(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF(OP)144 456
-Q F0 .385(is one of)2.635 F F1(\255eq)2.885 E F0(,)A F1(\255ne)2.885 E
+(xicographically in the current locale.)-.15 E F2(ar)108.33 612 Q(g1)
+-.37 E F1(OP)2.5 E F2(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF(OP)144 624
+Q F0 .385(is one of)2.634 F F1(\255eq)2.885 E F0(,)A F1(\255ne)2.885 E
 F0(,)A F1(\255lt)2.885 E F0(,)A F1(\255le)2.885 E F0(,)A F1(\255gt)2.885
 E F0 2.885(,o)C(r)-2.885 E F1(\255ge)2.885 E F0 5.385(.T)C .385
-(hese arithmetic binary operators return true if)-5.385 F F2(ar)2.884 E
+(hese arithmetic binary operators return true if)-5.385 F F2(ar)2.885 E
 (g1)-.37 E F0 .845(is equal to, not equal to, less than, less than or e\
-qual to, greater than, or greater than or equal to)144 468 R F2(ar)144
-480 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.)
+qual to, greater than, or greater than or equal to)144 636 R F2(ar)144
+648 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.)
 -.65 E F2(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F2(ar)2.83 E(g2)-.37 E F0
 (may be positi)2.52 E .3 -.15(ve o)-.25 H 2.5(rn).15 G -2.25 -.15(eg a)
 -2.5 H(ti).15 E .3 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E/F4 10.95
-/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 496.8 Q(ANSION)-.81 E F0 .614
-(When a simple command is e)108 508.8 R -.15(xe)-.15 G .614
-(cuted, the shell performs the follo).15 F .613(wing e)-.25 F .613
+/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 664.8 Q(ANSION)-.81 E F0 .613
+(When a simple command is e)108 676.8 R -.15(xe)-.15 G .614
+(cuted, the shell performs the follo).15 F .614(wing e)-.25 F .614
 (xpansions, assignments, and redi-)-.15 F(rections, from left to right.)
-108 520.8 Q 26(1. The)108 537.6 R -.1(wo)4.348 G 1.848
-(rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.849
+108 688.8 Q 26(1. The)108 705.6 R -.1(wo)4.349 G 1.849
+(rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.848
 (ariable assignments \(those preceding the command)-.25 F
-(name\) and redirections are sa)144 549.6 Q -.15(ve)-.2 G 2.5(df).15 G
-(or later processing.)-2.5 E 26(2. The)108 566.4 R -.1(wo)3.664 G 1.164
-(rds that are not v).1 F 1.164
-(ariable assignments or redirections are e)-.25 F 3.663(xpanded. If)-.15
-F(an)3.663 E 3.663(yw)-.15 G 1.163(ords remain)-3.763 F .775(after e)144
-578.4 R .775(xpansion, the \214rst w)-.15 F .775(ord is tak)-.1 F .775
-(en to be the name of the command and the remaining w)-.1 F(ords)-.1 E
-(are the ar)144 590.4 Q(guments.)-.18 E 26(3. Redirections)108 607.2 R
-(are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F3
-(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0 26(4. The)108 624 R(te)
-3.217 E .717(xt after the)-.15 F F1(=)3.217 E F0 .717(in each v)3.217 F
-.717(ariable assignment under)-.25 F .717(goes tilde e)-.18 F .717
-(xpansion, parameter e)-.15 F(xpansion,)-.15 E .339
-(command substitution, arithmetic e)144 636 R .339
-(xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339
-(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 648 Q .332
-(If no command name results, the v)108 664.8 R .332
-(ariable assignments af)-.25 F .332(fect the current shell en)-.25 F
-2.832(vironment. Otherwise,)-.4 F(the)2.832 E -.25(va)108 676.8 S .757
-(riables are added to the en).25 F .757(vironment of the e)-.4 F -.15
-(xe)-.15 G .757(cuted command and do not af).15 F .757
-(fect the current shell en)-.25 F(vi-)-.4 E 3.177(ronment. If)108 688.8
-R(an)3.177 E 3.177(yo)-.15 G 3.177(ft)-3.177 G .677
-(he assignments attempts to assign a v)-3.177 F .677
-(alue to a readonly v)-.25 F .676(ariable, an error occurs, and)-.25 F
-(the command e)108 700.8 Q(xits with a non-zero status.)-.15 E .149
-(If no command name results, redirections are performed, b)108 717.6 R
-.149(ut do not af)-.2 F .15(fect the current shell en)-.25 F 2.65
-(vironment. A)-.4 F(redirection error causes the command to e)108 729.6
-Q(xit with a non-zero status.)-.15 E(GNU Bash-3.1-beta1)72 768 Q
-(2005 Aug 27)122.91 E(26)197.89 E 0 Cg EP
+(name\) and redirections are sa)144 717.6 Q -.15(ve)-.2 G 2.5(df).15 G
+(or later processing.)-2.5 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E
+(26)199.835 E 0 Cg EP
 %%Page: 27 28
 %%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.064(If there is a command name left after e)108 84 R 1.064
-(xpansion, e)-.15 F -.15(xe)-.15 G 1.064
-(cution proceeds as described belo).15 F 4.864 -.65(w. O)-.25 H 1.064
-(therwise, the).65 F .068(command e)108 96 R 2.568(xits. If)-.15 F .069
-(one of the e)2.568 F .069
-(xpansions contained a command substitution, the e)-.15 F .069
-(xit status of the command)-.15 F .467(is the e)108 108 R .466
-(xit status of the last command substitution performed.)-.15 F .466
-(If there were no command substitutions, the)5.466 F(command e)108 120 Q
-(xits with a status of zero.)-.15 E/F1 10.95/Times-Bold@0 SF
-(COMMAND EXECUTION)72 136.8 Q F0 .546
-(After a command has been split into w)108 148.8 R .547
+-.35 E 26(2. The)108 84 R -.1(wo)3.663 G 1.163(rds that are not v).1 F
+1.164(ariable assignments or redirections are e)-.25 F 3.664
+(xpanded. If)-.15 F(an)3.664 E 3.664(yw)-.15 G 1.164(ords remain)-3.764
+F .776(after e)144 96 R .776(xpansion, the \214rst w)-.15 F .776
+(ord is tak)-.1 F .775
+(en to be the name of the command and the remaining w)-.1 F(ords)-.1 E
+(are the ar)144 108 Q(guments.)-.18 E 26(3. Redirections)108 124.8 R
+(are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E/F1
+9/Times-Bold@0 SF(REDIRECTION)2.5 E/F2 9/Times-Roman@0 SF(.)A F0 26
+(4. The)108 141.6 R(te)3.216 E .717(xt after the)-.15 F/F3 10
+/Times-Bold@0 SF(=)3.217 E F0 .717(in each v)3.217 F .717
+(ariable assignment under)-.25 F .717(goes tilde e)-.18 F .717
+(xpansion, parameter e)-.15 F(xpansion,)-.15 E .34
+(command substitution, arithmetic e)144 153.6 R .339
+(xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339
+(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 165.6 Q
+.332(If no command name results, the v)108 182.4 R .332
+(ariable assignments af)-.25 F .332(fect the current shell en)-.25 F
+2.833(vironment. Otherwise,)-.4 F(the)2.833 E -.25(va)108 194.4 S .757
+(riables are added to the en).25 F .757(vironment of the e)-.4 F -.15
+(xe)-.15 G .757(cuted command and do not af).15 F .757
+(fect the current shell en)-.25 F(vi-)-.4 E 3.176(ronment. If)108 206.4
+R(an)3.176 E 3.176(yo)-.15 G 3.176(ft)-3.176 G .677
+(he assignments attempts to assign a v)-3.176 F .677
+(alue to a readonly v)-.25 F .677(ariable, an error occurs, and)-.25 F
+(the command e)108 218.4 Q(xits with a non-zero status.)-.15 E .15
+(If no command name results, redirections are performed, b)108 235.2 R
+.149(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649
+(vironment. A)-.4 F(redirection error causes the command to e)108 247.2
+Q(xit with a non-zero status.)-.15 E 1.064
+(If there is a command name left after e)108 264 R 1.064(xpansion, e)
+-.15 F -.15(xe)-.15 G 1.064(cution proceeds as described belo).15 F
+4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .069(command e)108 276
+R 2.569(xits. If)-.15 F .069(one of the e)2.569 F .069
+(xpansions contained a command substitution, the e)-.15 F .068
+(xit status of the command)-.15 F .466(is the e)108 288 R .466
+(xit status of the last command substitution performed.)-.15 F .467
+(If there were no command substitutions, the)5.466 F(command e)108 300 Q
+(xits with a status of zero.)-.15 E/F4 10.95/Times-Bold@0 SF
+(COMMAND EXECUTION)72 316.8 Q F0 .547
+(After a command has been split into w)108 328.8 R .546
 (ords, if it results in a simple command and an optional list of ar)-.1
-F(gu-)-.18 E(ments, the follo)108 160.8 Q(wing actions are tak)-.25 E
+F(gu-)-.18 E(ments, the follo)108 340.8 Q(wing actions are tak)-.25 E
 (en.)-.1 E .379(If the command name contains no slashes, the shell atte\
-mpts to locate it.)108 177.6 R .379(If there e)5.379 F .379
+mpts to locate it.)108 357.6 R .379(If there e)5.379 F .379
 (xists a shell function by)-.15 F .246(that name, that function is in)
-108 189.6 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
-.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E/F2 9
-/Times-Bold@0 SF(FUNCTIONS)2.746 E/F3 9/Times-Roman@0 SF(.)A F0 .246
-(If the name does not match a func-)4.746 F
-(tion, the shell searches for it in the list of shell b)108 201.6 Q 2.5
+108 369.6 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
+.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F1(FUNCTIONS)
+2.746 E F2(.)A F0 .246(If the name does not match a func-)4.746 F
+(tion, the shell searches for it in the list of shell b)108 381.6 Q 2.5
 (uiltins. If)-.2 F 2.5(am)2.5 G(atch is found, that b)-2.5 E
-(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .31
-(If the name is neither a shell function nor a b)108 218.4 R .309
-(uiltin, and contains no slashes,)-.2 F/F4 10/Times-Bold@0 SF(bash)2.809
-E F0 .309(searches each element of)2.809 F(the)108 230.4 Q F2 -.666(PA)
-3.162 G(TH)-.189 E F0 .662(for a directory containing an e)2.912 F -.15
-(xe)-.15 G .662(cutable \214le by that name.).15 F F4(Bash)5.662 E F0
-.663(uses a hash table to remember)3.162 F 1.915
-(the full pathnames of e)108 242.4 R -.15(xe)-.15 G 1.915
-(cutable \214les \(see).15 F F4(hash)4.415 E F0(under)4.415 E F2 1.915
-(SHELL B)4.415 F(UIL)-.09 E 1.914(TIN COMMANDS)-.828 F F0(belo)4.164 E
-4.414(w\). A)-.25 F(full)4.414 E .719(search of the directories in)108
-254.4 R F2 -.666(PA)3.219 G(TH)-.189 E F0 .72
-(is performed only if the command is not found in the hash table.)2.969
-F .72(If the)5.72 F(search is unsuccessful, the shell prints an error m\
-essage and returns an e)108 266.4 Q(xit status of 127.)-.15 E 1.089(If \
+(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .309
+(If the name is neither a shell function nor a b)108 398.4 R .31
+(uiltin, and contains no slashes,)-.2 F F3(bash)2.81 E F0 .31
+(searches each element of)2.81 F(the)108 410.4 Q F1 -.666(PA)3.163 G(TH)
+-.189 E F0 .662(for a directory containing an e)2.913 F -.15(xe)-.15 G
+.662(cutable \214le by that name.).15 F F3(Bash)5.662 E F0 .662
+(uses a hash table to remember)3.162 F 1.914(the full pathnames of e)108
+422.4 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F3(hash)4.415 E
+F0(under)4.415 E F1 1.915(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS)
+-.828 F F0(belo)4.165 E 4.415(w\). A)-.25 F(full)4.415 E .72
+(search of the directories in)108 434.4 R F1 -.666(PA)3.22 G(TH)-.189 E
+F0 .719
+(is performed only if the command is not found in the hash table.)2.97 F
+.719(If the)5.719 F(search is unsuccessful, the shell prints an error m\
+essage and returns an e)108 446.4 Q(xit status of 127.)-.15 E 1.089(If \
 the search is successful, or if the command name contains one or more s\
-lashes, the shell e)108 283.2 R -.15(xe)-.15 G 1.089(cutes the).15 F
-.197(named program in a separate e)108 295.2 R -.15(xe)-.15 G .197
+lashes, the shell e)108 463.2 R -.15(xe)-.15 G 1.09(cutes the).15 F .198
+(named program in a separate e)108 475.2 R -.15(xe)-.15 G .198
 (cution en).15 F 2.698(vironment. Ar)-.4 F .198
-(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .198
-(n, and the remain-).15 F(ing ar)108 307.2 Q
+(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .197
+(n, and the remain-).15 F(ing ar)108 487.2 Q
 (guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15
-(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 324 R -.15
+(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 504 R -.15
 (xe)-.15 G 1.809(cution f).15 F 1.809
 (ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.809
 (cutable format, and the \214le is not a directory).15 F 4.309(,i)-.65 G
-4.309(ti)-4.309 G(s)-4.309 E .677(assumed to be a)108 336 R/F5 10
-/Times-Italic@0 SF .678(shell script)3.177 F F0 3.178(,a\214)C .678
+4.309(ti)-4.309 G(s)-4.309 E .678(assumed to be a)108 516 R/F5 10
+/Times-Italic@0 SF .678(shell script)3.178 F F0 3.178(,a\214)C .678
 (le containing shell commands.)-3.178 F 3.178(As)5.678 G .678
-(ubshell is spa)-3.178 F .678(wned to e)-.15 F -.15(xe)-.15 G .678
-(cute it.).15 F(This)5.678 E .33
-(subshell reinitializes itself, so that the ef)108 348 R .33
-(fect is as if a ne)-.25 F 2.829(ws)-.25 G .329(hell had been in)-2.829
-F -.2(vo)-.4 G -.1(ke).2 G 2.829(dt).1 G 2.829(oh)-2.829 G .329
-(andle the script, with)-2.829 F 1.219(the e)108 360 R 1.219
+(ubshell is spa)-3.178 F .677(wned to e)-.15 F -.15(xe)-.15 G .677
+(cute it.).15 F(This)5.677 E .329
+(subshell reinitializes itself, so that the ef)108 528 R .329
+(fect is as if a ne)-.25 F 2.83(ws)-.25 G .33(hell had been in)-2.83 F
+-.2(vo)-.4 G -.1(ke).2 G 2.83(dt).1 G 2.83(oh)-2.83 G .33
+(andle the script, with)-2.83 F 1.219(the e)108 540 R 1.219
 (xception that the locations of commands remembered by the parent \(see)
--.15 F F4(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F2
-(SHELL)3.719 E -.09(BU)108 372 S(IL).09 E(TIN COMMANDS)-.828 E F3(\))A
-F0(are retained by the child.)2.25 E .348(If the program is a \214le be)
-108 388.8 R .348(ginning with)-.15 F F4(#!)2.848 E F0 2.848(,t)C .347(h\
+-.15 F F3(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F1
+(SHELL)3.719 E -.09(BU)108 552 S(IL).09 E(TIN COMMANDS)-.828 E F2(\))A
+F0(are retained by the child.)2.25 E .347(If the program is a \214le be)
+108 568.8 R .347(ginning with)-.15 F F3(#!)2.847 E F0 2.847(,t)C .348(h\
 e remainder of the \214rst line speci\214es an interpreter for the pro-)
--2.848 F 3.178(gram. The)108 400.8 R .678(shell e)3.178 F -.15(xe)-.15 G
+-2.847 F 3.178(gram. The)108 580.8 R .678(shell e)3.178 F -.15(xe)-.15 G
 .678(cutes the speci\214ed interpreter on operating systems that do not\
- handle this e).15 F -.15(xe)-.15 G(cutable).15 E 1.193(format themselv)
-108 412.8 R 3.693(es. The)-.15 F(ar)3.693 E 1.193
-(guments to the interpreter consist of a single optional ar)-.18 F 1.192
-(gument follo)-.18 F 1.192(wing the)-.25 F 1.13
-(interpreter name on the \214rst line of the program, follo)108 424.8 R
-1.131(wed by the name of the program, follo)-.25 F 1.131(wed by the)-.25
-F(command ar)108 436.8 Q(guments, if an)-.18 E -.65(y.)-.15 G F1
-(COMMAND EXECUTION ENVIR)72 453.6 Q(ONMENT)-.329 E F0(The shell has an)
-108 465.6 Q F5 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E(onment)-.45 E F0
+ handle this e).15 F -.15(xe)-.15 G(cutable).15 E 1.192(format themselv)
+108 592.8 R 3.692(es. The)-.15 F(ar)3.693 E 1.193
+(guments to the interpreter consist of a single optional ar)-.18 F 1.193
+(gument follo)-.18 F 1.193(wing the)-.25 F 1.131
+(interpreter name on the \214rst line of the program, follo)108 604.8 R
+1.13(wed by the name of the program, follo)-.25 F 1.13(wed by the)-.25 F
+(command ar)108 616.8 Q(guments, if an)-.18 E -.65(y.)-.15 G F4
+(COMMAND EXECUTION ENVIR)72 633.6 Q(ONMENT)-.329 E F0(The shell has an)
+108 645.6 Q F5 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E(onment)-.45 E F0
 2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25 E 32.5<836f>108
-494.4 S 1.406(pen \214les inherited by the shell at in)-32.5 F -.2(vo)
--.4 G 1.405(cation, as modi\214ed by redirections supplied to the).2 F
-F4(exec)3.905 E F0 -.2(bu)144 506.4 S(iltin).2 E 32.5<8374>108 523.2 S
-(he current w)-32.5 E(orking directory as set by)-.1 E F4(cd)2.5 E F0(,)
-A F4(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F4(popd)2.5 E F0 2.5(,o)C 2.5(ri)
--2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E 32.5
-<8374>108 540 S(he \214le creation mode mask as set by)-32.5 E F4(umask)
-2.5 E F0(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)-2.5 E
-32.5<8363>108 556.8 S(urrent traps set by)-32.5 E F4(trap)2.5 E F0 32.5
-<8373>108 573.6 S .256(hell parameters that are set by v)-32.5 F .256
-(ariable assignment or with)-.25 F F4(set)2.756 E F0 .257
-(or inherited from the shell')2.756 F 2.757(sp)-.55 G(arent)-2.757 E
-(in the en)144 585.6 Q(vironment)-.4 E 32.5<8373>108 602.4 S
-(hell functions de\214ned during e)-32.5 E -.15(xe)-.15 G
-(cution or inherited from the shell').15 E 2.5(sp)-.55 G
-(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 619.2 S
-(ptions enabled at in)-32.5 E -.2(vo)-.4 G(cation \(either by def).2 E
-(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F4(set)2.5 E
-F0 32.5<836f>108 636 S(ptions enabled by)-32.5 E F4(shopt)2.5 E F0 32.5
-<8373>108 652.8 S(hell aliases de\214ned with)-32.5 E F4(alias)2.5 E F0
-32.5<8376>108 669.6 S
-(arious process IDs, including those of background jobs, the v)-32.75 E
-(alue of)-.25 E F4($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E
-F4($PPID)2.5 E F0 .427(When a simple command other than a b)108 686.4 R
-.426(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .426
-(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.926(di).1 G 2.926(nas)
--2.926 G(eparate)-2.926 E -.15(exe)108 698.4 S .133(cution en).15 F .133
-(vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F
-.134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F
-(the shell.)108 710.4 Q(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E
-(27)197.89 E 0 Cg EP
+674.4 S 1.405(pen \214les inherited by the shell at in)-32.5 F -.2(vo)
+-.4 G 1.406(cation, as modi\214ed by redirections supplied to the).2 F
+F3(exec)3.906 E F0 -.2(bu)144 686.4 S(iltin).2 E 32.5<8374>108 703.2 S
+(he current w)-32.5 E(orking directory as set by)-.1 E F3(cd)2.5 E F0(,)
+A F3(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F3(popd)2.5 E F0 2.5(,o)C 2.5(ri)
+-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(27)199.835 E 0 Cg EP
 %%Page: 28 29
 %%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 32.5<8374>108 84 S 1.056(he shell')-32.5 F 3.556(so)-.55 G 1.056
-(pen \214les, plus an)-3.556 F 3.556(ym)-.15 G 1.056
+-.35 E 32.5<8374>108 84 S(he \214le creation mode mask as set by)-32.5 E
+/F1 10/Times-Bold@0 SF(umask)2.5 E F0(or inherited from the shell')2.5 E
+2.5(sp)-.55 G(arent)-2.5 E 32.5<8363>108 100.8 S(urrent traps set by)
+-32.5 E F1(trap)2.5 E F0 32.5<8373>108 117.6 S .257
+(hell parameters that are set by v)-32.5 F .256
+(ariable assignment or with)-.25 F F1(set)2.756 E F0 .256
+(or inherited from the shell')2.756 F 2.756(sp)-.55 G(arent)-2.756 E
+(in the en)144 129.6 Q(vironment)-.4 E 32.5<8373>108 146.4 S
+(hell functions de\214ned during e)-32.5 E -.15(xe)-.15 G
+(cution or inherited from the shell').15 E 2.5(sp)-.55 G
+(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 163.2 S
+(ptions enabled at in)-32.5 E -.2(vo)-.4 G(cation \(either by def).2 E
+(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F1(set)2.5 E
+F0 32.5<836f>108 180 S(ptions enabled by)-32.5 E F1(shopt)2.5 E F0 32.5
+<8373>108 196.8 S(hell aliases de\214ned with)-32.5 E F1(alias)2.5 E F0
+32.5<8376>108 213.6 S
+(arious process IDs, including those of background jobs, the v)-32.75 E
+(alue of)-.25 E F1($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E
+F1($PPID)2.5 E F0 .426(When a simple command other than a b)108 230.4 R
+.427(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .427
+(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.927(di).1 G 2.927(nas)
+-2.927 G(eparate)-2.927 E -.15(exe)108 242.4 S .134(cution en).15 F .134
+(vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F
+.133(otherwise noted, the v)2.634 F .133(alues are inherited from)-.25 F
+(the shell.)108 254.4 Q 32.5<8374>108 283.2 S 1.055(he shell')-32.5 F
+3.555(so)-.55 G 1.055(pen \214les, plus an)-3.555 F 3.556(ym)-.15 G
+1.056
 (odi\214cations and additions speci\214ed by redirections to the com-)
--3.556 F(mand)144 96 Q 32.5<8374>108 112.8 S(he current w)-32.5 E
-(orking directory)-.1 E 32.5<8374>108 129.6 S
-(he \214le creation mode mask)-32.5 E 32.5<8373>108 146.4 S .856(hell v)
+-3.556 F(mand)144 295.2 Q 32.5<8374>108 312 S(he current w)-32.5 E
+(orking directory)-.1 E 32.5<8374>108 328.8 S
+(he \214le creation mode mask)-32.5 E 32.5<8373>108 345.6 S .857(hell v)
 -32.5 F .857(ariables and functions mark)-.25 F .857(ed for e)-.1 F .857
 (xport, along with v)-.15 F .857(ariables e)-.25 F .857
-(xported for the command,)-.15 F(passed in the en)144 158.4 Q(vironment)
--.4 E 32.5<8374>108 175.2 S .307
-(raps caught by the shell are reset to the v)-32.5 F .306
-(alues inherited from the shell')-.25 F 2.806(sp)-.55 G .306
-(arent, and traps ignored)-2.806 F(by the shell are ignored)144 187.2 Q
-2.5(Ac)108 204 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
+(xported for the command,)-.15 F(passed in the en)144 357.6 Q(vironment)
+-.4 E 32.5<8374>108 374.4 S .306
+(raps caught by the shell are reset to the v)-32.5 F .307
+(alues inherited from the shell')-.25 F 2.807(sp)-.55 G .307
+(arent, and traps ignored)-2.807 F(by the shell are ignored)144 386.4 Q
+2.5(Ac)108 403.2 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
 2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
 (fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E
 (vironment.)-.4 E .577(Command substitution, commands grouped with pare\
-ntheses, and asynchronous commands are in)108 220.8 R -.2(vo)-.4 G -.1
-(ke).2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 232.8 S .245(ubshell en)
--2.745 F .245(vironment that is a duplicate of the shell en)-.4 F .244
-(vironment, e)-.4 F .244(xcept that traps caught by the shell are)-.15 F
-.358(reset to the v)108 244.8 R .358
+ntheses, and asynchronous commands are in)108 420 R -.2(vo)-.4 G -.1(ke)
+.2 G 3.077(di).1 G(n)-3.077 E 2.744(as)108 432 S .244(ubshell en)-2.744
+F .244(vironment that is a duplicate of the shell en)-.4 F .245
+(vironment, e)-.4 F .245(xcept that traps caught by the shell are)-.15 F
+.359(reset to the v)108 444 R .358
 (alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4
-G 2.858(cation. Builtin).2 F .359(commands that are in)2.859 F -.2(vo)
--.4 G -.1(ke).2 G(d).1 E .857(as part of a pipeline are also e)108 256.8
-R -.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.356
-(vironment. Changes)-.4 F .856(made to the subshell en)3.356 F(viron-)
--.4 E(ment cannot af)108 268.8 Q(fect the shell')-.25 E 2.5(se)-.55 G
--.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E .404
-(If a command is follo)108 285.6 R .404(wed by a)-.25 F/F1 10
-/Times-Bold@0 SF(&)2.904 E F0 .405(and job control is not acti)2.904 F
--.15(ve)-.25 G 2.905(,t).15 G .405(he def)-2.905 F .405
-(ault standard input for the command)-.1 F .198(is the empty \214le)108
-297.6 R/F2 10/Times-Italic@0 SF(/de)2.698 E(v/null)-.15 E F0 5.198(.O)C
-.198(therwise, the in)-5.198 F -.2(vo)-.4 G -.1(ke).2 G 2.698(dc).1 G
-.197(ommand inherits the \214le descriptors of the calling shell)-2.698
-F(as modi\214ed by redirections.)108 309.6 Q/F3 10.95/Times-Bold@0 SF
-(ENVIR)72 326.4 Q(ONMENT)-.329 E F0 2.353(When a program is in)108 338.4
+G 2.858(cation. Builtin).2 F .358(commands that are in)2.858 F -.2(vo)
+-.4 G -.1(ke).2 G(d).1 E .856(as part of a pipeline are also e)108 456 R
+-.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.357
+(vironment. Changes)-.4 F .857(made to the subshell en)3.357 F(viron-)
+-.4 E(ment cannot af)108 468 Q(fect the shell')-.25 E 2.5(se)-.55 G -.15
+(xe)-2.65 G(cution en).15 E(vironment.)-.4 E .405(If a command is follo)
+108 484.8 R .405(wed by a)-.25 F F1(&)2.905 E F0 .404
+(and job control is not acti)2.905 F -.15(ve)-.25 G 2.904(,t).15 G .404
+(he def)-2.904 F .404(ault standard input for the command)-.1 F .197
+(is the empty \214le)108 496.8 R/F2 10/Times-Italic@0 SF(/de)2.697 E
+(v/null)-.15 E F0 5.197(.O)C .197(therwise, the in)-5.197 F -.2(vo)-.4 G
+-.1(ke).2 G 2.697(dc).1 G .198
+(ommand inherits the \214le descriptors of the calling shell)-2.697 F
+(as modi\214ed by redirections.)108 508.8 Q/F3 10.95/Times-Bold@0 SF
+(ENVIR)72 525.6 Q(ONMENT)-.329 E F0 2.354(When a program is in)108 537.6
 R -.2(vo)-.4 G -.1(ke).2 G 4.853(di).1 G 4.853(ti)-4.853 G 4.853(sg)
 -4.853 G -2.15 -.25(iv e)-4.853 H 4.853(na).25 G 4.853(na)-4.853 G 2.353
 (rray of strings called the)-4.853 F F2(en)4.853 E(vir)-.4 E(onment)-.45
-E F0 7.353(.T).68 G 2.354(his is a list of)-7.353 F F2(name)108 350.4 Q
+E F0 7.353(.T).68 G 2.353(his is a list of)-7.353 F F2(name)108 549.6 Q
 F0<ad>A F2(value)A F0(pairs, of the form)2.5 E F2(name)2.5 E F0(=)A F2
-(value)A F0(.).18 E 1.486(The shell pro)108 367.2 R 1.486(vides se)-.15
-F -.15(ve)-.25 G 1.486(ral w).15 F 1.485(ays to manipulate the en)-.1 F
-3.985(vironment. On)-.4 F(in)3.985 E -.2(vo)-.4 G 1.485
-(cation, the shell scans its o).2 F(wn)-.25 E(en)108 379.2 Q .144(viron\
+(value)A F0(.).18 E 1.485(The shell pro)108 566.4 R 1.485(vides se)-.15
+F -.15(ve)-.25 G 1.485(ral w).15 F 1.485(ays to manipulate the en)-.1 F
+3.985(vironment. On)-.4 F(in)3.985 E -.2(vo)-.4 G 1.486
+(cation, the shell scans its o).2 F(wn)-.25 E(en)108 578.4 Q .144(viron\
 ment and creates a parameter for each name found, automatically marking\
- it for)-.4 F F2 -.2(ex)2.644 G(port).2 E F0 .144(to child pro-)3.324 F
-2.704(cesses. Ex)108 391.2 R .203(ecuted commands inherit the en)-.15 F
+ it for)-.4 F F2 -.2(ex)2.643 G(port).2 E F0 .143(to child pro-)3.323 F
+2.703(cesses. Ex)108 590.4 R .203(ecuted commands inherit the en)-.15 F
 2.703(vironment. The)-.4 F F1(export)2.703 E F0(and)2.703 E F1(declar)
-2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203(commands allo)2.703 F 2.703
-(wp)-.25 G(aram-)-2.703 E 1.153
-(eters and functions to be added to and deleted from the en)108 403.2 R
-3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.154
-(alue of a parameter in the)-.25 F(en)108 415.2 Q .64
+2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203(commands allo)2.703 F 2.704
+(wp)-.25 G(aram-)-2.704 E 1.153
+(eters and functions to be added to and deleted from the en)108 602.4 R
+3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.153
+(alue of a parameter in the)-.25 F(en)108 614.4 Q .64
 (vironment is modi\214ed, the ne)-.4 F 3.14(wv)-.25 G .64
 (alue becomes part of the en)-3.39 F .64(vironment, replacing the old.)
--.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 427.2
+-.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 626.4
 R 3.08(ye)-.15 G -.15(xe)-3.23 G .58
 (cuted command consists of the shell').15 F 3.08(si)-.55 G .58
 (nitial en)-3.08 F .58(vironment, whose v)-.4 F .58(alues may be)-.25 F
-.301(modi\214ed in the shell, less an)108 439.2 R 2.801(yp)-.15 G .301
-(airs remo)-2.801 F -.15(ve)-.15 G 2.801(db).15 G 2.801(yt)-2.801 G(he)
--2.801 E F1(unset)2.801 E F0 .3(command, plus an)2.8 F 2.8(ya)-.15 G .3
-(dditions via the)-2.8 F F1(export)2.8 E F0(and)2.8 E F1(declar)108
-451.2 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .562(The en)108 468
-R .562(vironment for an)-.4 F(y)-.15 E F2 .562(simple command)3.402 F F0
-.563(or function may be augmented temporarily by pre\214xing it with)
-3.833 F .203(parameter assignments, as described abo)108 480 R .502 -.15
-(ve i)-.15 H(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666
-E/F5 9/Times-Roman@0 SF(.)A F0 .202(These assignment statements af)4.702
-F .202(fect only the)-.25 F(en)108 492 Q
-(vironment seen by that command.)-.4 E .81(If the)108 508.8 R F1<ad6b>
-3.31 E F0 .81(option is set \(see the)3.31 F F1(set)3.31 E F0 -.2(bu)
-3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F F2(all)3.64 E F0
-.81(parameter assignments are placed in)3.82 F(the en)108 520.8 Q
+.3(modi\214ed in the shell, less an)108 638.4 R 2.8(yp)-.15 G .3
+(airs remo)-2.8 F -.15(ve)-.15 G 2.8(db).15 G 2.801(yt)-2.8 G(he)-2.801
+E F1(unset)2.801 E F0 .301(command, plus an)2.801 F 2.801(ya)-.15 G .301
+(dditions via the)-2.801 F F1(export)2.801 E F0(and)2.801 E F1(declar)
+108 650.4 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .563(The en)108
+667.2 R .563(vironment for an)-.4 F(y)-.15 E F2 .563(simple command)
+3.403 F F0 .562
+(or function may be augmented temporarily by pre\214xing it with)3.833 F
+.202(parameter assignments, as described abo)108 679.2 R .502 -.15(ve i)
+-.15 H(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F5
+9/Times-Roman@0 SF(.)A F0 .202(These assignment statements af)4.702 F
+.203(fect only the)-.25 F(en)108 691.2 Q
+(vironment seen by that command.)-.4 E .81(If the)108 708 R F1<ad6b>3.31
+E F0 .81(option is set \(see the)3.31 F F1(set)3.31 E F0 -.2(bu)3.31 G
+.81(iltin command belo).2 F .81(w\), then)-.25 F F2(all)3.64 E F0 .81
+(parameter assignments are placed in)3.82 F(the en)108 720 Q
 (vironment for a command, not just those that precede the command name.)
--.4 E(When)108 537.6 Q F1(bash)3.397 E F0(in)3.397 E -.2(vo)-.4 G -.1
-(ke).2 G 3.397(sa).1 G 3.397(ne)-3.397 G .897(xternal command, the v)
--3.547 F(ariable)-.25 E F1(_)3.397 E F0 .897
-(is set to the full \214le name of the command and)3.397 F
-(passed to that command in its en)108 549.6 Q(vironment.)-.4 E F3
-(EXIT ST)72 566.4 Q -1.04(AT)-.986 G(US)1.04 E F0 -.15(Fo)108 578.4 S
-3.372(rt).15 G .872(he shell')-3.372 F 3.372(sp)-.55 G .873
-(urposes, a command which e)-3.372 F .873(xits with a zero e)-.15 F .873
-(xit status has succeeded.)-.15 F .873(An e)5.873 F .873(xit status of)
--.15 F .049(zero indicates success.)108 590.4 R 2.549(An)5.049 G .049
-(on-zero e)-2.549 F .049(xit status indicates f)-.15 F 2.549
-(ailure. When)-.1 F 2.549(ac)2.549 G .048(ommand terminates on a f)
--2.549 F .048(atal sig-)-.1 F(nal)108 602.4 Q F2(N)2.5 E F0(,)A F1(bash)
-2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F2(N)A F0(as the e)2.5 E
-(xit status.)-.15 E .404
-(If a command is not found, the child process created to e)108 619.2 R
--.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .405
-(If a command is)5.405 F(found b)108 631.2 Q(ut is not e)-.2 E -.15(xe)
--.15 G(cutable, the return status is 126.).15 E(If a command f)108 648 Q
-(ails because of an error during e)-.1 E(xpansion or redirection, the e)
--.15 E(xit status is greater than zero.)-.15 E .081(Shell b)108 664.8 R
-.081(uiltin commands return a status of 0 \()-.2 F F2(true)A F0 2.581
-(\)i)C 2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F2
-(false)A F0 2.58(\)i)C 2.58(fa)-2.58 G 2.58(ne)-2.58 G .08
-(rror occurs while)-2.58 F(the)108 676.8 Q 2.5(ye)-.15 G -.15(xe)-2.65 G
-2.5(cute. All).15 F -.2(bu)2.5 G(iltins return an e).2 E
-(xit status of 2 to indicate incorrect usage.)-.15 E F1(Bash)108 693.6 Q
-F0 .201(itself returns the e)2.701 F .202
-(xit status of the last command e)-.15 F -.15(xe)-.15 G .202
-(cuted, unless a syntax error occurs, in which case).15 F(it e)108 705.6
-Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F1
-(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(28)197.89 E 0 Cg EP
+-.4 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(28)199.835 E 0 Cg EP
 %%Page: 29 30
 %%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.95/Times-Bold@0 SF(SIGN)72 84 Q(ALS)-.219 E F0(When)108 96
-Q/F2 10/Times-Bold@0 SF(bash)3.183 E F0 .683(is interacti)3.183 F -.15
-(ve)-.25 G 3.183(,i).15 G 3.183(nt)-3.183 G .683(he absence of an)-3.183
-F 3.183(yt)-.15 G .683(raps, it ignores)-3.183 F/F3 9/Times-Bold@0 SF
-(SIGTERM)3.183 E F0 .682(\(so that)2.933 F F2 .682(kill 0)3.182 F F0
-.682(does not kill an)3.182 F(interacti)108 108 Q .757 -.15(ve s)-.25 H
-.457(hell\), and).15 F F3(SIGINT)2.957 E F0 .458
-(is caught and handled \(so that the)2.707 F F2(wait)2.958 E F0 -.2(bu)
-2.958 G .458(iltin is interruptible\).).2 F .458(In all cases,)5.458 F
-F2(bash)108 120 Q F0(ignores)2.5 E F3(SIGQ)2.5 E(UIT)-.09 E/F4 9
-/Times-Roman@0 SF(.)A F0(If job control is in ef)4.5 E(fect,)-.25 E F2
-(bash)2.5 E F0(ignores)2.5 E F3(SIGTTIN)2.5 E F4(,)A F3(SIGTT)2.25 E(OU)
--.162 E F4(,)A F0(and)2.25 E F3(SIGTSTP)2.5 E F4(.)A F0(Non-b)108 136.8
-Q 1.065(uiltin commands run by)-.2 F F2(bash)3.565 E F0(ha)3.565 E 1.365
--.15(ve s)-.2 H 1.065(ignal handlers set to the v).15 F 1.064
-(alues inherited by the shell from its)-.25 F 3.247(parent. When)108
-148.8 R .747(job control is not in ef)3.247 F .747
-(fect, asynchronous commands ignore)-.25 F F3(SIGINT)3.248 E F0(and)
-2.998 E F3(SIGQ)3.248 E(UIT)-.09 E F0 .748(in addi-)2.998 F .653
-(tion to these inherited handlers.)108 160.8 R .653
-(Commands run as a result of command substitution ignore the k)5.653 F
--.15(ey)-.1 G(board-).15 E(generated job control signals)108 172.8 Q F3
-(SIGTTIN)2.5 E F4(,)A F3(SIGTT)2.25 E(OU)-.162 E F4(,)A F0(and)2.25 E F3
-(SIGTSTP)2.5 E F4(.)A F0 2.045(The shell e)108 189.6 R 2.045
-(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F3(SIGHUP)4.545 E
-F4(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.346
--.15(ve s)-.25 H 2.046(hell resends the).15 F F3(SIGHUP)108 201.6 Q F0
-1.005(to all jobs, running or stopped.)3.255 F 1.004
-(Stopped jobs are sent)6.005 F F3(SIGCONT)3.504 E F0 1.004
-(to ensure that the)3.254 F 3.504(yr)-.15 G(ecei)-3.504 E 1.304 -.15
-(ve t)-.25 H(he).15 E F3(SIGHUP)108 213.6 Q F4(.)A F0 2.529 -.8(To p)
-5.429 H(re).8 E -.15(ve)-.25 G .93(nt the shell from sending the signal\
- to a particular job, it should be remo).15 F -.15(ve)-.15 G 3.43(df).15
-G .93(rom the)-3.43 F 1.357(jobs table with the)108 225.6 R F2(diso)
-3.857 E(wn)-.1 E F0 -.2(bu)3.857 G 1.357(iltin \(see).2 F F3 1.356
-(SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.606 E
-1.356(w\) or mark)-.25 F 1.356(ed to not recei)-.1 F -.15(ve)-.25 G F3
-(SIGHUP)108 237.6 Q F0(using)2.25 E F2(diso)2.5 E(wn \255h)-.1 E F0(.)A
-.166(If the)108 254.4 R F2(huponexit)2.666 E F0 .166
-(shell option has been set with)2.666 F F2(shopt)2.666 E F0(,)A F2(bash)
-2.666 E F0 .166(sends a)2.666 F F3(SIGHUP)2.666 E F0 .166
+-.35 E(When)108 84 Q/F1 10/Times-Bold@0 SF(bash)3.396 E F0(in)3.396 E
+-.2(vo)-.4 G -.1(ke).2 G 3.396(sa).1 G 3.397(ne)-3.396 G .897
+(xternal command, the v)-3.547 F(ariable)-.25 E F1(_)3.397 E F0 .897
+(is set to the full \214le name of the command and)3.397 F
+(passed to that command in its en)108 96 Q(vironment.)-.4 E/F2 10.95
+/Times-Bold@0 SF(EXIT ST)72 112.8 Q -1.04(AT)-.986 G(US)1.04 E F0 -.15
+(Fo)108 124.8 S 3.373(rt).15 G .873(he shell')-3.373 F 3.373(sp)-.55 G
+.873(urposes, a command which e)-3.373 F .873(xits with a zero e)-.15 F
+.873(xit status has succeeded.)-.15 F .872(An e)5.872 F .872
+(xit status of)-.15 F .048(zero indicates success.)108 136.8 R 2.548(An)
+5.048 G .049(on-zero e)-2.548 F .049(xit status indicates f)-.15 F 2.549
+(ailure. When)-.1 F 2.549(ac)2.549 G .049(ommand terminates on a f)
+-2.549 F .049(atal sig-)-.1 F(nal)108 148.8 Q/F3 10/Times-Italic@0 SF(N)
+2.5 E F0(,)A F1(bash)2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F3(N)
+A F0(as the e)2.5 E(xit status.)-.15 E .405
+(If a command is not found, the child process created to e)108 165.6 R
+-.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .404
+(If a command is)5.404 F(found b)108 177.6 Q(ut is not e)-.2 E -.15(xe)
+-.15 G(cutable, the return status is 126.).15 E(If a command f)108 194.4
+Q(ails because of an error during e)-.1 E
+(xpansion or redirection, the e)-.15 E(xit status is greater than zero.)
+-.15 E .08(Shell b)108 211.2 R .08
+(uiltin commands return a status of 0 \()-.2 F F3(true)A F0 2.581(\)i)C
+2.581(fs)-2.581 G .081(uccessful, and non-zero \()-2.581 F F3(false)A F0
+2.581(\)i)C 2.581(fa)-2.581 G 2.581(ne)-2.581 G .081(rror occurs while)
+-2.581 F(the)108 223.2 Q 2.5(ye)-.15 G -.15(xe)-2.65 G 2.5(cute. All).15
+F -.2(bu)2.5 G(iltins return an e).2 E
+(xit status of 2 to indicate incorrect usage.)-.15 E F1(Bash)108 240 Q
+F0 .202(itself returns the e)2.702 F .202
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .201
+(cuted, unless a syntax error occurs, in which case).15 F(it e)108 252 Q
+(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F1
+(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F2
+(SIGN)72 268.8 Q(ALS)-.219 E F0(When)108 280.8 Q F1(bash)3.182 E F0 .682
+(is interacti)3.182 F -.15(ve)-.25 G 3.182(,i).15 G 3.182(nt)-3.182 G
+.682(he absence of an)-3.182 F 3.183(yt)-.15 G .683(raps, it ignores)
+-3.183 F/F4 9/Times-Bold@0 SF(SIGTERM)3.183 E F0 .683(\(so that)2.933 F
+F1 .683(kill 0)3.183 F F0 .683(does not kill an)3.183 F(interacti)108
+292.8 Q .758 -.15(ve s)-.25 H .458(hell\), and).15 F F4(SIGINT)2.958 E
+F0 .458(is caught and handled \(so that the)2.708 F F1(wait)2.958 E F0
+-.2(bu)2.958 G .457(iltin is interruptible\).).2 F .457(In all cases,)
+5.457 F F1(bash)108 304.8 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E/F5
+9/Times-Roman@0 SF(.)A F0(If job control is in ef)4.5 E(fect,)-.25 E F1
+(bash)2.5 E F0(ignores)2.5 E F4(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)
+-.162 E F5(,)A F0(and)2.25 E F4(SIGTSTP)2.5 E F5(.)A F0(Non-b)108 321.6
+Q 1.064(uiltin commands run by)-.2 F F1(bash)3.564 E F0(ha)3.564 E 1.365
+-.15(ve s)-.2 H 1.065(ignal handlers set to the v).15 F 1.065
+(alues inherited by the shell from its)-.25 F 3.248(parent. When)108
+333.6 R .748(job control is not in ef)3.248 F .747
+(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.247 E F0(and)
+2.997 E F4(SIGQ)3.247 E(UIT)-.09 E F0 .747(in addi-)2.997 F .652
+(tion to these inherited handlers.)108 345.6 R .653
+(Commands run as a result of command substitution ignore the k)5.652 F
+-.15(ey)-.1 G(board-).15 E(generated job control signals)108 357.6 Q F4
+(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4
+(SIGTSTP)2.5 E F5(.)A F0 2.046(The shell e)108 374.4 R 2.046
+(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F4(SIGHUP)4.545 E
+F5(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.345
+-.15(ve s)-.25 H 2.045(hell resends the).15 F F4(SIGHUP)108 386.4 Q F0
+1.004(to all jobs, running or stopped.)3.254 F 1.004
+(Stopped jobs are sent)6.004 F F4(SIGCONT)3.505 E F0 1.005
+(to ensure that the)3.255 F 3.505(yr)-.15 G(ecei)-3.505 E 1.305 -.15
+(ve t)-.25 H(he).15 E F4(SIGHUP)108 398.4 Q F5(.)A F0 2.53 -.8(To p)5.43
+H(re).8 E -.15(ve)-.25 G .93(nt the shell from sending the signal to a \
+particular job, it should be remo).15 F -.15(ve)-.15 G 3.429(df).15 G
+.929(rom the)-3.429 F 1.356(jobs table with the)108 410.4 R F1(diso)
+3.856 E(wn)-.1 E F0 -.2(bu)3.856 G 1.356(iltin \(see).2 F F4 1.356
+(SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.607 E
+1.357(w\) or mark)-.25 F 1.357(ed to not recei)-.1 F -.15(ve)-.25 G F4
+(SIGHUP)108 422.4 Q F0(using)2.25 E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A
+.166(If the)108 439.2 R F1(huponexit)2.666 E F0 .166
+(shell option has been set with)2.666 F F1(shopt)2.666 E F0(,)A F1(bash)
+2.666 E F0 .166(sends a)2.666 F F4(SIGHUP)2.666 E F0 .166
 (to all jobs when an interacti)2.416 F -.15(ve)-.25 G(login shell e)108
-266.4 Q(xits.)-.15 E(If)108 283.2 Q F2(bash)3.047 E F0 .547(is w)3.047 F
+451.2 Q(xits.)-.15 E(If)108 468 Q F1(bash)3.046 E F0 .546(is w)3.046 F
 .546(aiting for a command to complete and recei)-.1 F -.15(ve)-.25 G
 3.046(sas).15 G .546(ignal for which a trap has been set, the trap)
--3.046 F .662(will not be e)108 295.2 R -.15(xe)-.15 G .662
-(cuted until the command completes.).15 F(When)5.663 E F2(bash)3.163 E
-F0 .663(is w)3.163 F .663(aiting for an asynchronous command)-.1 F .99
-(via the)108 307.2 R F2(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\
-eption of a signal for which a trap has been set will cause the).2 F F2
+-3.046 F .663(will not be e)108 480 R -.15(xe)-.15 G .663
+(cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E
+F0 .662(is w)3.163 F .662(aiting for an asynchronous command)-.1 F .99
+(via the)108 492 R F1(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the recep\
+tion of a signal for which a trap has been set will cause the).2 F F1
 (wait)3.49 E F0 -.2(bu)3.49 G .99(iltin to).2 F
-(return immediately with an e)108 319.2 Q
+(return immediately with an e)108 504 Q
 (xit status greater than 128, immediately after which the trap is e)-.15
-E -.15(xe)-.15 G(cuted.).15 E F1(JOB CONTR)72 336 Q(OL)-.329 E/F5 10
-/Times-Italic@0 SF -.25(Jo)108 348 S 4.567(bc).25 G(ontr)-4.567 E(ol)
--.45 E F0 2.067(refers to the ability to selecti)5.077 F -.15(ve)-.25 G
-2.067(ly stop \().15 F F5(suspend)A F0 4.567(\)t)C 2.068(he e)-4.567 F
--.15(xe)-.15 G 2.068(cution of processes and continue).15 F(\()108 360 Q
-F5 -.37(re)C(sume).37 E F0 3.202(\)t)C .702(heir e)-3.202 F -.15(xe)-.15
+E -.15(xe)-.15 G(cuted.).15 E F2(JOB CONTR)72 520.8 Q(OL)-.329 E F3 -.25
+(Jo)108 532.8 S 4.568(bc).25 G(ontr)-4.568 E(ol)-.45 E F0 2.068
+(refers to the ability to selecti)5.078 F -.15(ve)-.25 G 2.067
+(ly stop \().15 F F3(suspend)A F0 4.567(\)t)C 2.067(he e)-4.567 F -.15
+(xe)-.15 G 2.067(cution of processes and continue).15 F(\()108 544.8 Q
+F3 -.37(re)C(sume).37 E F0 3.201(\)t)C .701(heir e)-3.201 F -.15(xe)-.15
 G .702(cution at a later point.).15 F 3.202(Au)5.702 G .702
 (ser typically emplo)-3.202 F .702(ys this f)-.1 F .702
-(acility via an interacti)-.1 F 1.001 -.15(ve i)-.25 H(nterf).15 E(ace)
--.1 E(supplied jointly by the system')108 372 Q 2.5(st)-.55 G
-(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E F2(bash)2.5 E
-F0(.)A .784(The shell associates a)108 388.8 R F5(job)5.024 E F0 .784
-(with each pipeline.)3.514 F .784(It k)5.784 F .785
-(eeps a table of currently e)-.1 F -.15(xe)-.15 G .785
-(cuting jobs, which may be).15 F .341(listed with the)108 400.8 R F2
-(jobs)2.841 E F0 2.841(command. When)2.841 F F2(bash)2.841 E F0 .341
-(starts a job asynchronously \(in the)2.841 F F5(bac)2.84 E(kgr)-.2 E
-(ound)-.45 E F0 .34(\), it prints a line).77 F(that looks lik)108 412.8
-Q(e:)-.1 E([1] 25647)144 429.6 Q .241(indicating that this job is job n\
+(acility via an interacti)-.1 F 1.002 -.15(ve i)-.25 H(nterf).15 E(ace)
+-.1 E(supplied jointly by the system')108 556.8 Q 2.5(st)-.55 G
+(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E F1(bash)2.5 E
+F0(.)A .785(The shell associates a)108 573.6 R F3(job)5.025 E F0 .785
+(with each pipeline.)3.515 F .784(It k)5.785 F .784
+(eeps a table of currently e)-.1 F -.15(xe)-.15 G .784
+(cuting jobs, which may be).15 F .34(listed with the)108 585.6 R F1
+(jobs)2.84 E F0 2.84(command. When)2.84 F F1(bash)2.84 E F0 .341
+(starts a job asynchronously \(in the)2.84 F F3(bac)2.841 E(kgr)-.2 E
+(ound)-.45 E F0 .341(\), it prints a line).77 F(that looks lik)108 597.6
+Q(e:)-.1 E([1] 25647)144 614.4 Q .241(indicating that this job is job n\
 umber 1 and that the process ID of the last process in the pipeline ass\
-ociated)108 446.4 R .733(with this job is 25647.)108 458.4 R .732
+ociated)108 631.2 R .732(with this job is 25647.)108 643.2 R .733
 (All of the processes in a single pipeline are members of the same job)
-5.733 F(.)-.4 E F2(Bash)5.732 E F0(uses)3.232 E(the)108 470.4 Q F5(job)
-4.24 E F0(abstraction as the basis for job control.)2.73 E 3.062 -.8
-(To f)108 487.2 T 1.462(acilitate the implementation of the user interf)
-.7 F 1.463(ace to job control, the operating system maintains the)-.1 F
-.871(notion of a)108 499.2 R F5(curr)3.371 E .871(ent terminal pr)-.37 F
-.871(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .87
+5.732 F(.)-.4 E F1(Bash)5.733 E F0(uses)3.233 E(the)108 655.2 Q F3(job)
+4.24 E F0(abstraction as the basis for job control.)2.73 E 3.063 -.8
+(To f)108 672 T 1.463(acilitate the implementation of the user interf).7
+F 1.462(ace to job control, the operating system maintains the)-.1 F .87
+(notion of a)108 684 R F3(curr)3.37 E .87(ent terminal pr)-.37 F .871
+(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .871
 (embers of this process group \(processes whose process)-5.871 F .023
 (group ID is equal to the current terminal process group ID\) recei)108
-511.2 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
-(board-generated signals such as).15 F F3(SIG-)2.523 E(INT)108 523.2 Q
-F4(.)A F0 1.347(These processes are said to be in the)5.847 F F5(for)
-3.846 E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F5(Bac)6.926 E
-(kgr)-.2 E(ound)-.45 E F0 1.346(processes are those whose process)4.616
-F .145(group ID dif)108 535.2 R .145(fers from the terminal')-.25 F .146
-(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .146
-(board-generated signals.).15 F .146(Only fore-)5.146 F .042
-(ground processes are allo)108 547.2 R .042
-(wed to read from or write to the terminal.)-.25 F .042
-(Background processes which attempt to)5.042 F 1.639
-(read from \(write to\) the terminal are sent a)108 559.2 R F3 1.64
-(SIGTTIN \(SIGTT)4.14 F(OU\))-.162 E F0 1.64(signal by the terminal dri)
-3.89 F -.15(ve)-.25 G 2.44 -.4(r, w).15 H(hich,).4 E
-(unless caught, suspends the process.)108 571.2 Q 1.088
-(If the operating system on which)108 588 R F2(bash)3.588 E F0 1.088
-(is running supports job control,)3.588 F F2(bash)3.587 E F0 1.087
-(contains f)3.587 F 1.087(acilities to use it.)-.1 F -.8(Ty)108 600 S
-.301(ping the).8 F F5(suspend)3.141 E F0 .301(character \(typically)
-3.571 F F2(^Z)2.801 E F0 2.801(,C)C .301
+696 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
+(board-generated signals such as).15 F F4(SIG-)2.522 E(INT)108 708 Q F5
+(.)A F0 1.346(These processes are said to be in the)5.846 F F3(for)3.847
+E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F3(Bac)6.927 E(kgr)-.2
+E(ound)-.45 E F0 1.347(processes are those whose process)4.617 F 1.844
+(group ID dif)108 720 R 1.844(fers from the terminal')-.25 F 1.844
+(s; such processes are immune to k)-.55 F -.15(ey)-.1 G 1.843
+(board-generated signals.).15 F(Only)6.843 E(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(29)199.835 E 0 Cg EP
+%%Page: 30 31
+%%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(fore)108 84 Q 1.964(ground processes are allo)-.15 F 1.964
+(wed to read from or write to the terminal.)-.25 F 1.965
+(Background processes which)6.965 F .759
+(attempt to read from \(write to\) the terminal are sent a)108 96 R/F1 9
+/Times-Bold@0 SF .758(SIGTTIN \(SIGTT)3.258 F(OU\))-.162 E F0 .758
+(signal by the terminal dri)3.008 F -.15(ve)-.25 G -.4(r,).15 G
+(which, unless caught, suspends the process.)108 108 Q 1.087
+(If the operating system on which)108 124.8 R/F2 10/Times-Bold@0 SF
+(bash)3.587 E F0 1.088(is running supports job control,)3.588 F F2(bash)
+3.588 E F0 1.088(contains f)3.588 F 1.088(acilities to use it.)-.1 F -.8
+(Ty)108 136.8 S .302(ping the).8 F/F3 10/Times-Italic@0 SF(suspend)3.142
+E F0 .302(character \(typically)3.572 F F2(^Z)2.801 E F0 2.801(,C)C .301
 (ontrol-Z\) while a process is running causes that process to be)-2.801
-F 2.143(stopped and returns control to)108 612 R F2(bash)4.642 E F0
-7.142(.T)C 2.142(yping the)-7.942 F F5 2.142(delayed suspend)4.992 F F0
-2.142(character \(typically)5.412 F F2(^Y)4.642 E F0 4.642(,C)C
-(ontrol-Y\))-4.642 E .021(causes the process to be stopped when it atte\
-mpts to read input from the terminal, and control to be returned)108 624
-R(to)108 636 Q F2(bash)3.392 E F0 5.892(.T)C .892
+F 2.142(stopped and returns control to)108 148.8 R F2(bash)4.642 E F0
+7.142(.T)C 2.142(yping the)-7.942 F F3 2.142(delayed suspend)4.992 F F0
+2.143(character \(typically)5.413 F F2(^Y)4.643 E F0 4.643(,C)C
+(ontrol-Y\))-4.643 E .021(causes the process to be stopped when it atte\
+mpts to read input from the terminal, and control to be returned)108
+160.8 R(to)108 172.8 Q F2(bash)3.392 E F0 5.892(.T)C .892
 (he user may then manipulate the state of this job, using the)-5.892 F
-F2(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894
-(background, the)108 648 R F2(fg)3.394 E F0 .895
-(command to continue it in the fore)3.394 F .895(ground, or the)-.15 F
-F2(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F2(^Z)
-3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 660 Q .949(fect immediately)-.25
-F 3.449(,a)-.65 G .948(nd has the additional side ef)-3.449 F .948
+F2(bg)3.392 E F0 .892(command to continue it in the)3.392 F .895
+(background, the)108 184.8 R F2(fg)3.395 E F0 .895
+(command to continue it in the fore)3.395 F .895(ground, or the)-.15 F
+F2(kill)3.395 E F0 .894(command to kill it.)3.395 F(A)5.894 E F2(^Z)
+3.394 E F0(tak)3.394 E(es)-.1 E(ef)108 196.8 Q .948(fect immediately)
+-.25 F 3.448(,a)-.65 G .948(nd has the additional side ef)-3.448 F .948
 (fect of causing pending output and typeahead to be dis-)-.25 F(carded.)
-108 672 Q 1.097(There are a number of w)108 688.8 R 1.097
+108 208.8 Q 1.098(There are a number of w)108 225.6 R 1.097
 (ays to refer to a job in the shell.)-.1 F 1.097(The character)6.097 F
-F2(%)3.597 E F0 1.098(introduces a job name.)3.597 F(Job)6.098 E(number)
-108 700.8 Q F5(n)3.13 E F0 .27(may be referred to as)3.01 F F2(%n)2.77 E
+F2(%)3.597 E F0 1.097(introduces a job name.)3.597 F(Job)6.097 E(number)
+108 237.6 Q F3(n)3.13 E F0 .27(may be referred to as)3.01 F F2(%n)2.77 E
 F0 5.27(.A)C .27
 (job may also be referred to using a pre\214x of the name used to start)
 -2.5 F .277(it, or using a substring that appears in its command line.)
-108 712.8 R -.15(Fo)5.277 G 2.777(re).15 G(xample,)-2.927 E F2(%ce)2.777
-E F0 .277(refers to a stopped)2.777 F F2(ce)2.777 E F0(job)2.778 E 5.278
-(.I)-.4 G 2.778(fa)-5.278 G .38(pre\214x matches more than one job,)108
-724.8 R F2(bash)2.88 E F0 .38(reports an error)2.88 F 5.38(.U)-.55 G
+108 249.6 R -.15(Fo)5.277 G 2.777(re).15 G(xample,)-2.927 E F2(%ce)2.777
+E F0 .277(refers to a stopped)2.777 F F2(ce)2.777 E F0(job)2.777 E 5.277
+(.I)-.4 G 2.777(fa)-5.277 G .38(pre\214x matches more than one job,)108
+261.6 R F2(bash)2.88 E F0 .38(reports an error)2.88 F 5.38(.U)-.55 G
 (sing)-5.38 E F2(%?ce)2.88 E F0 2.88(,o)C 2.88(nt)-2.88 G .38
-(he other hand, refers to an)-2.88 F 2.88(yj)-.15 G(ob)-2.88 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(29)197.89 E 0 Cg EP
-%%Page: 30 31
-%%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 .622(containing the string)108 84 R/F1 10/Times-Bold@0 SF(ce)
-3.122 E F0 .622(in its command line.)3.122 F .622
-(If the substring matches more than one job,)5.622 F F1(bash)3.123 E F0
-.623(reports an)3.123 F(error)108 96 Q 5.143(.T)-.55 G .143(he symbols)
--5.143 F F1(%%)2.643 E F0(and)2.643 E F1(%+)2.643 E F0 .143
+(he other hand, refers to an)-2.88 F 2.88(yj)-.15 G(ob)-2.88 E .623
+(containing the string)108 273.6 R F2(ce)3.123 E F0 .622
+(in its command line.)3.123 F .622
+(If the substring matches more than one job,)5.622 F F2(bash)3.122 E F0
+.622(reports an)3.122 F(error)108 285.6 Q 5.143(.T)-.55 G .143
+(he symbols)-5.143 F F2(%%)2.643 E F0(and)2.643 E F2(%+)2.643 E F0 .143
 (refer to the shell')2.643 F 2.643(sn)-.55 G .143(otion of the)-2.643 F
-/F2 10/Times-Italic@0 SF(curr)2.643 E .143(ent job)-.37 F F0 2.643(,w)
-.23 G .143(hich is the last job stopped)-2.643 F 1.208(while it w)108
-108 R 1.208(as in the fore)-.1 F 1.208
-(ground or started in the background.)-.15 F(The)6.208 E F2(pr)4.958 E
--.15(ev)-.37 G 1.208(ious job).15 F F0 1.209(may be referenced using)
-3.939 F F1<25ad>108 120 Q F0 5.487(.I)C 2.987(no)-5.487 G .487
-(utput pertaining to jobs \(e.g., the output of the)-2.987 F F1(jobs)
-2.987 E F0 .486(command\), the current job is al)2.987 F -.1(wa)-.1 G
-.486(ys \215agged).1 F .15(with a)108 132 R F1(+)2.65 E F0 2.65(,a)C .15
-(nd the pre)-2.65 F .15(vious job with a)-.25 F F1<ad>2.65 E F0 5.15(.A)
-C .15(single % \(with no accompan)-2.5 F .15
+F3(curr)2.643 E .143(ent job)-.37 F F0 2.643(,w).23 G .143
+(hich is the last job stopped)-2.643 F 1.209(while it w)108 297.6 R
+1.209(as in the fore)-.1 F 1.208(ground or started in the background.)
+-.15 F(The)6.208 E F3(pr)4.958 E -.15(ev)-.37 G 1.208(ious job).15 F F0
+1.208(may be referenced using)3.938 F F2<25ad>108 309.6 Q F0 5.486(.I)C
+2.986(no)-5.486 G .486
+(utput pertaining to jobs \(e.g., the output of the)-2.986 F F2(jobs)
+2.987 E F0 .487(command\), the current job is al)2.987 F -.1(wa)-.1 G
+.487(ys \215agged).1 F .15(with a)108 321.6 R F2(+)2.65 E F0 2.65(,a)C
+.15(nd the pre)-2.65 F .15(vious job with a)-.25 F F2<ad>2.65 E F0 5.15
+(.A)C .15(single % \(with no accompan)-2.5 F .15
 (ying job speci\214cation\) also refers to)-.15 F(the current job)108
-144 Q(.)-.4 E .444
-(Simply naming a job can be used to bring it into the fore)108 160.8 R
-(ground:)-.15 E F1(%1)2.943 E F0 .443(is a synon)2.943 F .443(ym for)
--.15 F F1 -.63(``)2.943 G .443(fg %1').63 F(')-.63 E F0 2.943(,b)C
-(ringing)-2.943 E 1.472(job 1 from the background into the fore)108
-172.8 R 3.972(ground. Similarly)-.15 F(,)-.65 E F1 -.63(``)3.973 G 1.473
-(%1 &').63 F(')-.63 E F0 1.473(resumes job 1 in the background,)3.973 F
-(equi)108 184.8 Q -.25(va)-.25 G(lent to).25 E F1 -.63(``)2.5 G(bg %1')
-.63 E(')-.63 E F0(.)A .131(The shell learns immediately whene)108 201.6
-R -.15(ve)-.25 G 2.631(raj).15 G .131(ob changes state.)-2.631 F
-(Normally)5.131 E(,)-.65 E F1(bash)2.631 E F0 -.1(wa)2.63 G .13
-(its until it is about to print a).1 F .157
-(prompt before reporting changes in a job')108 213.6 R 2.657(ss)-.55 G
-.157(tatus so as to not interrupt an)-2.657 F 2.658(yo)-.15 G .158
-(ther output.)-2.658 F .158(If the)5.158 F F1<ad62>2.658 E F0 .158
-(option to)2.658 F(the)108 225.6 Q F1(set)3.952 E F0 -.2(bu)3.952 G
-1.452(iltin command is enabled,).2 F F1(bash)3.952 E F0 1.451
-(reports such changes immediately)3.952 F 6.451(.A)-.65 G 1.751 -.15
-(ny t)-6.451 H 1.451(rap on).15 F/F3 9/Times-Bold@0 SF(SIGCHLD)3.951 E
-F0(is)3.701 E -.15(exe)108 237.6 S(cuted for each child that e).15 E
-(xits.)-.15 E 1.026(If an attempt to e)108 254.4 R(xit)-.15 E F1(bash)
-3.527 E F0 1.027(is made while jobs are stopped, the shell prints a w)
-3.527 F 1.027(arning message.)-.1 F(The)6.027 E F1(jobs)3.527 E F0 .256
-(command may then be used to inspect their status.)108 266.4 R .255
-(If a second attempt to e)5.255 F .255(xit is made without an interv)
+333.6 Q(.)-.4 E .443
+(Simply naming a job can be used to bring it into the fore)108 350.4 R
+(ground:)-.15 E F2(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
+-.15 F F2 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C
+(ringing)-2.944 E 1.473(job 1 from the background into the fore)108
+362.4 R 3.973(ground. Similarly)-.15 F(,)-.65 E F2 -.63(``)3.972 G 1.472
+(%1 &').63 F(')-.63 E F0 1.472(resumes job 1 in the background,)3.972 F
+(equi)108 374.4 Q -.25(va)-.25 G(lent to).25 E F2 -.63(``)2.5 G(bg %1')
+.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 391.2 R
+-.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally)
+5.131 E(,)-.65 E F2(bash)2.631 E F0 -.1(wa)2.631 G .131
+(its until it is about to print a).1 F .158
+(prompt before reporting changes in a job')108 403.2 R 2.658(ss)-.55 G
+.158(tatus so as to not interrupt an)-2.658 F 2.657(yo)-.15 G .157
+(ther output.)-2.657 F .157(If the)5.157 F F2<ad62>2.657 E F0 .157
+(option to)2.657 F(the)108 415.2 Q F2(set)3.951 E F0 -.2(bu)3.951 G
+1.451(iltin command is enabled,).2 F F2(bash)3.951 E F0 1.452
+(reports such changes immediately)3.951 F 6.452(.A)-.65 G 1.752 -.15
+(ny t)-6.452 H 1.452(rap on).15 F F1(SIGCHLD)3.952 E F0(is)3.702 E -.15
+(exe)108 427.2 S(cuted for each child that e).15 E(xits.)-.15 E 1.027
+(If an attempt to e)108 444 R(xit)-.15 E F2(bash)3.527 E F0 1.027
+(is made while jobs are stopped, the shell prints a w)3.527 F 1.026
+(arning message.)-.1 F(The)6.026 E F2(jobs)3.526 E F0 .255
+(command may then be used to inspect their status.)108 456 R .255
+(If a second attempt to e)5.255 F .256(xit is made without an interv)
 -.15 F(en-)-.15 E(ing command, the shell does not print another w)108
-278.4 Q(arning, and the stopped jobs are terminated.)-.1 E/F4 10.95
-/Times-Bold@0 SF(PR)72 295.2 Q(OMPTING)-.329 E F0 .644(When e)108 307.2
-R -.15(xe)-.15 G .644(cuting interacti).15 F -.15(ve)-.25 G(ly).15 E(,)
--.65 E F1(bash)3.144 E F0 .645(displays the primary prompt)3.145 F F3
-(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.826
-(and the secondary prompt)108 319.2 R F3(PS2)4.326 E F0 1.825
-(when it needs more input to complete a command.)4.076 F F1(Bash)6.825 E
-F0(allo)4.325 E 1.825(ws these)-.25 F 1.499(prompt strings to be custom\
+468 Q(arning, and the stopped jobs are terminated.)-.1 E/F4 10.95
+/Times-Bold@0 SF(PR)72 484.8 Q(OMPTING)-.329 E F0 .645(When e)108 496.8
+R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25 G(ly).15 E(,)
+-.65 E F2(bash)3.145 E F0 .645(displays the primary prompt)3.145 F F1
+(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.825
+(and the secondary prompt)108 508.8 R F1(PS2)4.325 E F0 1.825
+(when it needs more input to complete a command.)4.075 F F2(Bash)6.826 E
+F0(allo)4.326 E 1.826(ws these)-.25 F 1.499(prompt strings to be custom\
 ized by inserting a number of backslash-escaped special characters that\
- are)108 331.2 R(decoded as follo)108 343.2 Q(ws:)-.25 E F1(\\a)144
-355.2 Q F0(an ASCII bell character \(07\))28.22 E F1(\\d)144 367.2 Q F0
+ are)108 520.8 R(decoded as follo)108 532.8 Q(ws:)-.25 E F2(\\a)144
+544.8 Q F0(an ASCII bell character \(07\))28.22 E F2(\\d)144 556.8 Q F0
 (the date in "W)27.66 E(eekday Month Date" format \(e.g., "T)-.8 E
-(ue May 26"\))-.45 E F1(\\D{)144 379.2 Q F2(format)A F1(})A F0(the)180
-391.2 Q F2(format)3.927 E F0 1.427(is passed to)3.927 F F2(strftime)
-3.927 E F0 1.427
+(ue May 26"\))-.45 E F2(\\D{)144 568.8 Q F3(format)A F2(})A F0(the)180
+580.8 Q F3(format)3.926 E F0 1.426(is passed to)3.926 F F3(strftime)
+3.926 E F0 1.427
 (\(3\) and the result is inserted into the prompt string; an)B(empty)180
-403.2 Q F2(format)2.5 E F0
+592.8 Q F3(format)2.5 E F0
 (results in a locale-speci\214c time representation.)2.5 E
-(The braces are required)5 E F1(\\e)144 415.2 Q F0
-(an ASCII escape character \(033\))28.78 E F1(\\h)144 427.2 Q F0
-(the hostname up to the \214rst `.)27.66 E(')-.7 E F1(\\H)144 439.2 Q F0
-(the hostname)25.44 E F1(\\j)144 451.2 Q F0
-(the number of jobs currently managed by the shell)29.89 E F1(\\l)144
-463.2 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de)
--2.5 E(vice name)-.25 E F1(\\n)144 475.2 Q F0(ne)27.66 E(wline)-.25 E F1
-(\\r)144 487.2 Q F0(carriage return)28.78 E F1(\\s)144 499.2 Q F0
-(the name of the shell, the basename of)29.33 E F1($0)2.5 E F0
-(\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F1(\\t)144
-511.2 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F1(\\T)
-144 523.2 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F1
-(\\@)144 535.2 Q F0(the current time in 12-hour am/pm format)23.92 E F1
-(\\A)144 547.2 Q F0(the current time in 24-hour HH:MM format)26 E F1
-(\\u)144 559.2 Q F0(the username of the current user)27.66 E F1(\\v)144
-571.2 Q F0(the v)28.22 E(ersion of)-.15 E F1(bash)2.5 E F0
-(\(e.g., 2.00\))2.5 E F1(\\V)144 583.2 Q F0(the release of)26 E F1(bash)
-2.5 E F0 2.5(,v)C(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G
-(e.g., 2.00.0\))-2.5 E F1(\\w)144 595.2 Q F0(the current w)26 E
-(orking directory)-.1 E 2.5(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0
-(abbre)2.5 E(viated with a tilde)-.25 E F1(\\W)144 607.2 Q F0
-(the basename of the current w)23.22 E(orking directory)-.1 E 2.5(,w)
--.65 G(ith)-2.5 E F1($HOME)2.5 E F0(abbre)2.5 E(viated with a tilde)-.25
-E F1(\\!)144 619.2 Q F0(the history number of this command)29.89 E F1
-(\\#)144 631.2 Q F0(the command number of this command)28.22 E F1(\\$)
-144 643.2 Q F0(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H
-(ID is 0, a).15 E F1(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E
-(\\)144 655.2 Q F2(nnn)A F0
-(the character corresponding to the octal number)18.22 E F2(nnn)2.5 E F1
-(\\\\)144 667.2 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 679.2 Q
-F0(be)29.89 E 1.257(gin a sequence of non-printing characters, which co\
-uld be used to embed a terminal)-.15 F(control sequence into the prompt)
-180 691.2 Q F1(\\])144 703.2 Q F0
-(end a sequence of non-printing characters)29.89 E .12
-(The command number and the history number are usually dif)108 720 R
-.119(ferent: the history number of a command is its)-.25 F
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(30)197.89 E 0 Cg EP
+(The braces are required)5 E F2(\\e)144 604.8 Q F0
+(an ASCII escape character \(033\))28.78 E F2(\\h)144 616.8 Q F0
+(the hostname up to the \214rst `.)27.66 E(')-.7 E F2(\\H)144 628.8 Q F0
+(the hostname)25.44 E F2(\\j)144 640.8 Q F0
+(the number of jobs currently managed by the shell)29.89 E F2(\\l)144
+652.8 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de)
+-2.5 E(vice name)-.25 E F2(\\n)144 664.8 Q F0(ne)27.66 E(wline)-.25 E F2
+(\\r)144 676.8 Q F0(carriage return)28.78 E F2(\\s)144 688.8 Q F0
+(the name of the shell, the basename of)29.33 E F2($0)2.5 E F0
+(\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F2(\\t)144
+700.8 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F2(\\T)
+144 712.8 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(30)199.835 E 0 Cg EP
 %%Page: 31 32
 %%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.585(position in the history list, which may include commands r\
-estored from the history \214le \(see)108 84 R/F1 9/Times-Bold@0 SF
-(HIST)4.085 E(OR)-.162 E(Y)-.315 E F0(belo)108 96 Q .541(w\), while the\
- command number is the position in the sequence of commands e)-.25 F
--.15(xe)-.15 G .54(cuted during the cur).15 F(-)-.2 E .546
-(rent shell session.)108 108 R .546
+-.35 E/F1 10/Times-Bold@0 SF(\\@)144 84 Q F0
+(the current time in 12-hour am/pm format)23.92 E F1(\\A)144 96 Q F0
+(the current time in 24-hour HH:MM format)26 E F1(\\u)144 108 Q F0
+(the username of the current user)27.66 E F1(\\v)144 120 Q F0(the v)
+28.22 E(ersion of)-.15 E F1(bash)2.5 E F0(\(e.g., 2.00\))2.5 E F1(\\V)
+144 132 Q F0(the release of)26 E F1(bash)2.5 E F0 2.5(,v)C
+(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G(e.g., 2.00.0\))
+-2.5 E F1(\\w)144 144 Q F0(the current w)26 E(orking directory)-.1 E 2.5
+(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0(abbre)2.5 E(viated with a tilde)
+-.25 E F1(\\W)144 156 Q F0(the basename of the current w)23.22 E
+(orking directory)-.1 E 2.5(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0
+(abbre)2.5 E(viated with a tilde)-.25 E F1(\\!)144 168 Q F0
+(the history number of this command)29.89 E F1(\\#)144 180 Q F0
+(the command number of this command)28.22 E F1(\\$)144 192 Q F0
+(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E F1
+(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 204 Q/F2 10
+/Times-Italic@0 SF(nnn)A F0
+(the character corresponding to the octal number)18.22 E F2(nnn)2.5 E F1
+(\\\\)144 216 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 228 Q F0
+(be)29.89 E 1.257(gin a sequence of non-printing characters, which coul\
+d be used to embed a terminal)-.15 F(control sequence into the prompt)
+180 240 Q F1(\\])144 252 Q F0(end a sequence of non-printing characters)
+29.89 E .119(The command number and the history number are usually dif)
+108 268.8 R .12(ferent: the history number of a command is its)-.25 F
+1.585(position in the history list, which may include commands restored\
+ from the history \214le \(see)108 280.8 R/F3 9/Times-Bold@0 SF(HIST)
+4.084 E(OR)-.162 E(Y)-.315 E F0(belo)108 292.8 Q .541(w\), while the co\
+mmand number is the position in the sequence of commands e)-.25 F -.15
+(xe)-.15 G .541(cuted during the cur).15 F(-)-.2 E .546
+(rent shell session.)108 304.8 R .546
 (After the string is decoded, it is e)5.546 F .546
 (xpanded via parameter e)-.15 F .546(xpansion, command substitu-)-.15 F
-.352(tion, arithmetic e)108 120 R .352(xpansion, and quote remo)-.15 F
--.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F/F2
-10/Times-Bold@0 SF(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .351
-(shell option \(see the)2.852 F(description of the)108 132 Q F2(shopt)
-2.5 E F0(command under)2.5 E F1(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
--.828 E F0(belo)2.25 E(w\).)-.25 E/F3 10.95/Times-Bold@0 SF(READLINE)72
-148.8 Q F0 .15
+.351(tion, arithmetic e)108 316.8 R .352(xpansion, and quote remo)-.15 F
+-.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F F1
+(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .352(shell option \(see the)2.852
+F(description of the)108 328.8 Q F1(shopt)2.5 E F0(command under)2.5 E
+F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)
+-.25 E/F4 10.95/Times-Bold@0 SF(READLINE)72 345.6 Q F0 .151
 (This is the library that handles reading input when using an interacti)
-108 160.8 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F2
-(\255\255noediting)2.651 E F0(option)2.651 E .067(is gi)108 172.8 R -.15
-(ve)-.25 G 2.567(na).15 G 2.566(ts)-2.567 G .066(hell in)-2.566 F -.2
+108 357.6 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F1
+(\255\255noediting)2.65 E F0(option)2.65 E .066(is gi)108 369.6 R -.15
+(ve)-.25 G 2.566(na).15 G 2.566(ts)-2.566 G .066(hell in)-2.566 F -.2
 (vo)-.4 G 2.566(cation. By).2 F(def)2.566 E .066
 (ault, the line editing commands are similar to those of emacs.)-.1 F
-2.566(Av)5.066 G(i-style)-2.566 E .565(line editing interf)108 184.8 R
-.565(ace is also a)-.1 F -.25(va)-.2 G 3.065(ilable. T).25 F 3.065(ot)
+2.567(Av)5.067 G(i-style)-2.567 E .566(line editing interf)108 381.6 R
+.566(ace is also a)-.1 F -.25(va)-.2 G 3.065(ilable. T).25 F 3.065(ot)
 -.8 G .565(urn of)-3.065 F 3.065(fl)-.25 G .565
-(ine editing after the shell is running, use the)-3.065 F F2 .566
-(+o emacs)3.066 F F0(or)108 196.8 Q F2(+o vi)2.5 E F0(options to the)2.5
-E F2(set)2.5 E F0 -.2(bu)2.5 G(iltin \(see).2 E F1(SHELL B)2.5 E(UIL)
--.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2
-(Readline Notation)87 213.6 Q F0 .568
-(In this section, the emacs-style notation is used to denote k)108 225.6
-R -.15(ey)-.1 G(strok).15 E 3.067(es. Control)-.1 F -.1(ke)3.067 G .567
-(ys are denoted by C\255)-.05 F/F4 10/Times-Italic@0 SF -.1(ke)C(y)-.2 E
-F0(,)A 1.152(e.g., C\255n means Control\255N.)108 237.6 R(Similarly)
-6.152 E(,)-.65 E F4(meta)4.032 E F0 -.1(ke)3.913 G 1.153
-(ys are denoted by M\255)-.05 F F4 -.1(ke)C(y)-.2 E F0 3.653(,s)C 3.653
-(oM)-3.653 G 1.153(\255x means Meta\255X.)-3.653 F(\(On)6.153 E -.1(ke)
-108 249.6 S .831(yboards without a)-.05 F F4(meta)3.711 E F0 -.1(ke)
-3.591 G 2.131 -.65(y, M)-.05 H<ad>.65 E F4(x)A F0 .831(means ESC)3.331 F
-F4(x)3.331 E F0 3.331(,i)C .83(.e., press the Escape k)-3.331 F 1.13
--.15(ey t)-.1 H .83(hen the).15 F F4(x)4.1 E F0 -.1(ke)3.86 G 4.63 -.65
-(y. T)-.05 H .83(his mak).65 F(es)-.1 E .599(ESC the)108 261.6 R F4 .599
-(meta pr)3.099 F(e\214x)-.37 E F0 5.599(.T)C .599
-(he combination M\255C\255)-5.599 F F4(x)A F0 .599
-(means ESC\255Control\255)3.099 F F4(x)A F0 3.099(,o)C 3.099(rp)-3.099 G
-.6(ress the Escape k)-3.099 F .9 -.15(ey t)-.1 H .6(hen hold).15 F
-(the Control k)108 273.6 Q .3 -.15(ey w)-.1 H(hile pressing the).15 E F4
-(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\)).65 E .62
-(Readline commands may be gi)108 290.4 R -.15(ve)-.25 G 3.119(nn).15 G
-(umeric)-3.119 E F4(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G .619
-(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E(ho)108
-302.4 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti).4 G
-3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
+(ine editing after the shell is running, use the)-3.065 F F1 .565
+(+o emacs)3.065 F F0(or)108 393.6 Q F1(+o vi)2.5 E F0(options to the)2.5
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin \(see).2 E F3(SHELL B)2.5 E(UIL)
+-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1
+(Readline Notation)87 410.4 Q F0 .567
+(In this section, the emacs-style notation is used to denote k)108 422.4
+R -.15(ey)-.1 G(strok).15 E 3.068(es. Control)-.1 F -.1(ke)3.068 G .568
+(ys are denoted by C\255)-.05 F F2 -.1(ke)C(y)-.2 E F0(,)A 1.153
+(e.g., C\255n means Control\255N.)108 434.4 R(Similarly)6.153 E(,)-.65 E
+F2(meta)4.033 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255)-.05 F
+F2 -.1(ke)C(y)-.2 E F0 3.652(,s)C 3.652(oM)-3.652 G 1.152
+(\255x means Meta\255X.)-3.652 F(\(On)6.152 E -.1(ke)108 446.4 S .83
+(yboards without a)-.05 F F2(meta)3.71 E F0 -.1(ke)3.59 G 2.13 -.65
+(y, M)-.05 H<ad>.65 E F2(x)A F0 .83(means ESC)3.33 F F2(x)3.33 E F0 3.33
+(,i)C .831(.e., press the Escape k)-3.33 F 1.131 -.15(ey t)-.1 H .831
+(hen the).15 F F2(x)4.101 E F0 -.1(ke)3.861 G 4.631 -.65(y. T)-.05 H
+.831(his mak).65 F(es)-.1 E .6(ESC the)108 458.4 R F2 .6(meta pr)3.1 F
+(e\214x)-.37 E F0 5.6(.T)C .6(he combination M\255C\255)-5.6 F F2(x)A F0
+.599(means ESC\255Control\255)3.099 F F2(x)A F0 3.099(,o)C 3.099(rp)
+-3.099 G .599(ress the Escape k)-3.099 F .899 -.15(ey t)-.1 H .599
+(hen hold).15 F(the Control k)108 470.4 Q .3 -.15(ey w)-.1 H
+(hile pressing the).15 E F2(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\))
+.65 E .619(Readline commands may be gi)108 487.2 R -.15(ve)-.25 G 3.119
+(nn).15 G(umeric)-3.119 E F2(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
+.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.62 E(ho)
+108 499.2 Q(we)-.25 E -.15(ve)-.25 G 1.419 -.4(r, i).15 H 3.119(ti).4 G
+3.119(st)-3.119 G .619(he sign of the ar)-3.119 F .619
 (gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
 .15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
-(ument to a command that).18 F 1.019(acts in the forw)108 314.4 R 1.018
-(ard direction \(e.g.,)-.1 F F2(kill\255line)3.518 E F0 3.518(\)c)C
-1.018(auses that command to act in a backw)-3.518 F 1.018
-(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 326.4 Q
+(ument to a command that).18 F 1.018(acts in the forw)108 511.2 R 1.018
+(ard direction \(e.g.,)-.1 F F1(kill\255line)3.518 E F0 3.518(\)c)C
+1.018(auses that command to act in a backw)-3.518 F 1.019
+(ard direction.)-.1 F(Com-)6.019 E(mands whose beha)108 523.2 Q
 (vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo)
--.25 E -.65(w.)-.25 G .811(When a command is described as)108 343.2 R F4
+-.25 E -.65(w.)-.25 G .812(When a command is described as)108 540 R F2
 (killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811
-(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .812
-(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F4
-(yank-)-3.312 E(ing)108 355.2 Q F0 2.529(\). The)B .029(killed te)2.529
-F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F4
+(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .811
+(or possible future retrie)-3.311 F -.25(va)-.25 G 3.311(l\().25 G F2
+(yank-)-3.311 E(ing)108 552 Q F0 2.529(\). The)B .029(killed te)2.529 F
+.029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F2
 .029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E .329 -.15(ve k)-.25 H
 .029(ills cause the te).15 F .029(xt to be accumulated into one unit,)
--.15 F .567(which can be yank)108 367.2 R .567(ed all at once.)-.1 F
-.567(Commands which do not kill te)5.567 F .567
+-.15 F .567(which can be yank)108 564 R .567(ed all at once.)-.1 F .567
+(Commands which do not kill te)5.567 F .567
 (xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
-108 379.2 Q F2(Readline Initialization)87 396 Q F0 .091(Readline is cus\
-tomized by putting commands in an initialization \214le \(the)108 408 R
-F4(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .091
-(name of this \214le)2.591 F .196(is tak)108 420 R .196(en from the v)
--.1 F .196(alue of the)-.25 F F1(INPUTRC)2.696 E F0 -.25(va)2.446 G
+108 576 Q F1(Readline Initialization)87 592.8 Q F0 .091(Readline is cus\
+tomized by putting commands in an initialization \214le \(the)108 604.8
+R F2(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .092
+(name of this \214le)2.591 F .197(is tak)108 616.8 R .196(en from the v)
+-.1 F .196(alue of the)-.25 F F3(INPUTRC)2.696 E F0 -.25(va)2.446 G
 2.696(riable. If).25 F .196(that v)2.696 F .196
-(ariable is unset, the def)-.25 F .196(ault is)-.1 F F4(~/.inputr)2.696
-E(c)-.37 E F0 5.196(.W).31 G .197(hen a)-5.196 F 1.034(program which us\
+(ariable is unset, the def)-.25 F .196(ault is)-.1 F F2(~/.inputr)2.696
+E(c)-.37 E F0 5.196(.W).31 G .196(hen a)-5.196 F 1.034(program which us\
 es the readline library starts up, the initialization \214le is read, a\
-nd the k)108 432 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25
-(va)108 444 S 1.149(riables are set.).25 F 1.149(There are only a fe)
-6.149 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.15
-(wed in the readline initialization \214le.)-.25 F(Blank)6.15 E .737
-(lines are ignored.)108 456 R .737(Lines be)5.737 F .737(ginning with a)
--.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737(Lines be)5.737 F
-.737(ginning with a)-.15 F F2($)3.237 E F0 .736(indicate conditional)
-3.236 F 2.5(constructs. Other)108 468 R(lines denote k)2.5 E .3 -.15
-(ey b)-.1 H(indings and v).15 E(ariable settings.)-.25 E .986(The def)
-108 484.8 R .986(ault k)-.1 F -.15(ey)-.1 G .987
-(-bindings may be changed with an).15 F F4(inputr)3.497 E(c)-.37 E F0
-3.487(\214le. Other)3.797 F .987(programs that use this library may)
-3.487 F(add their o)108 496.8 Q(wn commands and bindings.)-.25 E -.15
-(Fo)108 513.6 S 2.5(re).15 G(xample, placing)-2.65 E
-(M\255Control\255u: uni)144 530.4 Q -.15(ve)-.25 G(rsal\255ar).15 E
-(gument)-.18 E(or)108 542.4 Q(C\255Meta\255u: uni)144 554.4 Q -.15(ve)
--.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 566.4 Q F4(inputr)
-2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)
--2.5 E -.15(xe)-.15 G(cute the readline command).15 E F4(univer)2.5 E
-(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.261(The follo)108 583.2 R
-1.261(wing symbolic character names are recognized:)-.25 F F4 -.4(RU)
-3.761 G(BOUT).4 E F0(,)1.27 E F4(DEL)3.761 E F0(,).53 E F4(ESC)3.761 E
-F0(,).72 E F4(LFD)3.761 E F0(,).28 E F4(NEWLINE)3.76 E F0(,).73 E F4
-(RET)3.76 E F0(,)1.27 E F4(RETURN)108 595.2 Q F0(,)1.1 E F4(SPC)2.5 E F0
-(,).72 E F4(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G(nd)-2.5 E F4
--.5(TA)2.5 G(B).5 E F0(.).27 E .209
-(In addition to command names, readline allo)108 612 R .209(ws k)-.25 F
--.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
+nd the k)108 628.8 R 1.335 -.15(ey b)-.1 H 1.035(indings and).15 F -.25
+(va)108 640.8 S 1.15(riables are set.).25 F 1.15(There are only a fe)
+6.15 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.149
+(wed in the readline initialization \214le.)-.25 F(Blank)6.149 E .736
+(lines are ignored.)108 652.8 R .737(Lines be)5.737 F .737
+(ginning with a)-.15 F F1(#)3.237 E F0 .737(are comments.)3.237 F .737
+(Lines be)5.737 F .737(ginning with a)-.15 F F1($)3.237 E F0 .737
+(indicate conditional)3.237 F 2.5(constructs. Other)108 664.8 R
+(lines denote k)2.5 E .3 -.15(ey b)-.1 H(indings and v).15 E
+(ariable settings.)-.25 E .987(The def)108 681.6 R .987(ault k)-.1 F
+-.15(ey)-.1 G .987(-bindings may be changed with an).15 F F2(inputr)
+3.497 E(c)-.37 E F0 3.487(\214le. Other)3.797 F .987
+(programs that use this library may)3.487 F(add their o)108 693.6 Q
+(wn commands and bindings.)-.25 E -.15(Fo)108 710.4 S 2.5(re).15 G
+(xample, placing)-2.65 E(M\255Control\255u: uni)144 727.2 Q -.15(ve)-.25
+G(rsal\255ar).15 E(gument)-.18 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)
+149.845 E(31)199.835 E 0 Cg EP
+%%Page: 32 33
+%%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(or)108 84 Q(C\255Meta\255u: uni)144 96 Q -.15(ve)-.25 G
+(rsal\255ar).15 E(gument)-.18 E(into the)108 108 Q/F1 10/Times-Italic@0
+SF(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G
+(\255C\255u e)-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F1
+(univer)2.5 E(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.26(The follo)
+108 124.8 R 1.261(wing symbolic character names are recognized:)-.25 F
+F1 -.4(RU)3.761 G(BOUT).4 E F0(,)1.27 E F1(DEL)3.761 E F0(,).53 E F1
+(ESC)3.761 E F0(,).72 E F1(LFD)3.761 E F0(,).28 E F1(NEWLINE)3.761 E F0
+(,).73 E F1(RET)3.761 E F0(,)1.27 E F1(RETURN)108 136.8 Q F0(,)1.1 E F1
+(SPC)2.5 E F0(,).72 E F1(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G
+(nd)-2.5 E F1 -.5(TA)2.5 G(B).5 E F0(.).27 E .209
+(In addition to command names, readline allo)108 153.6 R .209(ws k)-.25
+F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
 (ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
--.1 H(s).15 E(pressed \(a)108 624 Q F4(macr)2.5 E(o)-.45 E F0(\).)A F2
-(Readline K)87 640.8 Q(ey Bindings)-.25 E F0 .366
-(The syntax for controlling k)108 652.8 R .666 -.15(ey b)-.1 H .366
-(indings in the).15 F F4(inputr)2.876 E(c)-.37 E F0 .366
+-.1 H(s).15 E(pressed \(a)108 165.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A/F2
+10/Times-Bold@0 SF(Readline K)87 182.4 Q(ey Bindings)-.25 E F0 .366
+(The syntax for controlling k)108 194.4 R .666 -.15(ey b)-.1 H .366
+(indings in the).15 F F1(inputr)2.876 E(c)-.37 E F0 .366
 (\214le is simple.)3.176 F .366(All that is required is the name of the)
-5.366 F .382(command or the te)108 664.8 R .383(xt of a macro and a k)
+5.366 F .383(command or the te)108 206.4 R .383(xt of a macro and a k)
 -.15 F .683 -.15(ey s)-.1 H .383
 (equence to which it should be bound. The name may be speci-).15 F .853
-(\214ed in one of tw)108 676.8 R 3.353(ow)-.1 G .853
+(\214ed in one of tw)108 218.4 R 3.353(ow)-.1 G .853
 (ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
-(ame, possibly with).15 F F4(Meta\255)3.353 E F0(or)3.353 E F4(Contr)
+(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr)
 3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
-(ey)-.1 G(sequence.)108 688.8 Q 1.541(When using the form)108 705.6 R F2
--.1(ke)4.041 G(yname).1 E F0(:)A F4(function\255name).833 E F0(or)4.041
-E F4(macr)4.042 E(o)-.45 E F0(,)A F4 -.1(ke)4.042 G(yname)-.2 E F0 1.542
-(is the name of a k)4.222 F 1.842 -.15(ey s)-.1 H 1.542(pelled out in)
-.15 F 2.5(English. F)108 717.6 R(or e)-.15 E(xample:)-.15 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(31)197.89 E 0 Cg EP
-%%Page: 32 33
-%%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(Control-u: uni)144 84 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)
--.18 E(Meta-Rubout: backw)144 96 Q(ard-kill-w)-.1 E(ord)-.1 E
-(Control-o: "> output")144 108 Q .699(In the abo)108 124.8 R .998 -.15
-(ve ex)-.15 H(ample,).15 E/F1 10/Times-Italic@0 SF(C\255u)3.038 E F0
-.698(is bound to the function)3.448 F/F2 10/Times-Bold@0 SF(uni)3.198 E
--.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M\255DEL)3.878 E F0
-.698(is bound to the func-)3.728 F(tion)108 136.8 Q F2
-(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F1
-(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259
+(ey)-.1 G(sequence.)108 230.4 Q 1.542(When using the form)108 247.2 R F2
+-.1(ke)4.042 G(yname).1 E F0(:)A F1(function\255name).833 E F0(or)4.042
+E F1(macr)4.042 E(o)-.45 E F0(,)A F1 -.1(ke)4.042 G(yname)-.2 E F0 1.542
+(is the name of a k)4.222 F 1.841 -.15(ey s)-.1 H 1.541(pelled out in)
+.15 F 2.5(English. F)108 259.2 R(or e)-.15 E(xample:)-.15 E
+(Control-u: uni)144 283.2 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18
+E(Meta-Rubout: backw)144 295.2 Q(ard-kill-w)-.1 E(ord)-.1 E
+(Control-o: "> output")144 307.2 Q .698(In the abo)108 324 R .998 -.15
+(ve ex)-.15 H(ample,).15 E F1(C\255u)3.038 E F0 .698
+(is bound to the function)3.448 F F2(uni)3.198 E -.1(ve)-.1 G
+(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M\255DEL)3.878 E F0 .698
+(is bound to the func-)3.728 F(tion)108 336 Q F2(backward\255kill\255w)
+2.759 E(ord)-.1 E F0 2.759(,a)C(nd)-2.759 E F1(C\255o)2.599 E F0 .258
+(is bound to run the macro e)2.939 F .258
 (xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-148.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
-(into the line\).)2.5 E .056(In the second form,)108 165.6 R F2("k)2.556
-E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
-2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
-(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
-(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
-(denoting an entire k)108 177.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+348 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(into the line\).)2.5 E .055(In the second form,)108 364.8 R F2("k)2.555
+E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.555 E F1(macr)
+2.555 E(o)-.45 E F0(,)A F2 -.1(ke)2.555 G(yseq).1 E F0(dif)2.556 E .056
+(fers from)-.25 F F2 -.1(ke)2.556 G(yname).1 E F0(abo)2.556 E .356 -.15
+(ve i)-.15 H 2.556(nt).15 G .056(hat strings)-2.556 F 1.284
+(denoting an entire k)108 376.8 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
 ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .386(GNU Emacs style k)108 189.6 R .686 -.15(ey e)-.1 H
-.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
-(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
-(are not recognized.)108 201.6 Q("\\C\255u": uni)144 225.6 Q -.15(ve)
+(Some)6.284 E .385(GNU Emacs style k)108 388.8 R .685 -.15(ey e)-.1 H
+.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .386
+(xample, b)-.15 F .386(ut the symbolic character names)-.2 F
+(are not recognized.)108 400.8 Q("\\C\255u": uni)144 424.8 Q -.15(ve)
 -.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 237.6 Q
-("\\e[11~": "Function K)144 249.6 Q .3 -.15(ey 1)-.25 H(").15 E .314
-(In this e)108 266.4 R(xample,)-.15 E F1(C\255u)2.654 E F0 .314(is ag)
-3.064 F .315(ain bound to the function)-.05 F F2(uni)2.815 E -.1(ve)-.1
+("\\C\255x\\C\255r": re\255read\255init\255\214le)144 436.8 Q
+("\\e[11~": "Function K)144 448.8 Q .3 -.15(ey 1)-.25 H(").15 E .315
+(In this e)108 465.6 R(xample,)-.15 E F1(C\255u)2.655 E F0 .315(is ag)
+3.065 F .315(ain bound to the function)-.05 F F2(uni)2.815 E -.1(ve)-.1
 G(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .315(C\255x C\255r)5.155 F F0
-.315(is bound to the func-)3.545 F(tion)108 278.4 Q F2 -.18(re)2.5 G
+.314(is bound to the func-)3.544 F(tion)108 477.6 Q F2 -.18(re)2.5 G
 <ad72>.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1
 (ESC [ 1 1 ~)3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E F3
 (Function Key 1)2.5 E F0(.)A
-(The full set of GNU Emacs style escape sequences is)108 295.2 Q F2
-<5c43ad>144 307.2 Q F0(control pre\214x)20.3 E F2<5c4dad>144 319.2 Q F0
-(meta pre\214x)18.08 E F2(\\e)144 331.2 Q F0(an escape character)28.78 E
-F2(\\\\)144 343.2 Q F0(backslash)30.44 E F2(\\")144 355.2 Q F0
-(literal ")27.67 E F2(\\')144 367.2 Q F0(literal ')29.89 E(In addition \
-to the GNU Emacs style escape sequences, a second set of backslash esca\
-pes is a)108 384 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 396 Q F0
-(alert \(bell\))28.22 E F2(\\b)144 408 Q F0(backspace)27.66 E F2(\\d)144
-420 Q F0(delete)27.66 E F2(\\f)144 432 Q F0(form feed)29.89 E F2(\\n)144
-444 Q F0(ne)27.66 E(wline)-.25 E F2(\\r)144 456 Q F0(carriage return)
-28.78 E F2(\\t)144 468 Q F0(horizontal tab)29.89 E F2(\\v)144 480 Q F0
--.15(ve)28.22 G(rtical tab).15 E F2(\\)144 492 Q F1(nnn)A F0
-(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
-(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)144
-504 Q F1(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
--.25 E(xadecimal v)-.15 E(alue)-.25 E F1(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 1.142
-(When entering the te)108 520.8 R 1.141(xt of a macro, single or double\
- quotes must be used to indicate a macro de\214nition.)-.15 F .089
-(Unquoted te)108 532.8 R .089(xt is assumed to be a function name.)-.15
-F .09(In the macro body)5.089 F 2.59(,t)-.65 G .09
-(he backslash escapes described abo)-2.59 F -.15(ve)-.15 G(are e)108
-544.8 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
-(ther character in the macro te)-2.5 E(xt, including " and '.)-.15 E F2
-(Bash)108 561.6 Q F0(allo)2.93 E .43(ws the current readline k)-.25 F
-.73 -.15(ey b)-.1 H .429(indings to be displayed or modi\214ed with the)
-.15 F F2(bind)2.929 E F0 -.2(bu)2.929 G .429(iltin command.).2 F .045
-(The editing mode may be switched during interacti)108 573.6 R .345 -.15
-(ve u)-.25 H .046(se by using the).15 F F2<ad6f>2.546 E F0 .046
-(option to the)2.546 F F2(set)2.546 E F0 -.2(bu)2.546 G .046
-(iltin command).2 F(\(see)108 585.6 Q/F4 9/Times-Bold@0 SF(SHELL B)2.5 E
-(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2
-(Readline V)87 602.4 Q(ariables)-.92 E F0 .044(Readline has v)108 614.4
-R .043(ariables that can be used to further customize its beha)-.25 F
-(vior)-.2 E 5.043(.A)-.55 G -.25(va)-2.5 G .043
-(riable may be set in the).25 F F1(inpu-)2.553 E(tr)108 626.4 Q(c)-.37 E
-F0(\214le with a statement of the form)2.81 E F2(set)144 643.2 Q F1
-(variable\255name value)2.5 E F0 .79(Except where noted, readline v)108
-660 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F(alues)
--.25 E F2(On)3.29 E F0(or)3.29 E F2(Off)3.29 E F0 .79(\(without re)3.29
-F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-)5.79 E .449(nized v)
-108 672 R .448(ariable names are ignored.)-.25 F .448(When a v)5.448 F
-.448(ariable v)-.25 F .448(alue is read, empty or null v)-.25 F .448
-(alues, "on" \(case-insensi-)-.25 F(ti)108 684 Q -.15(ve)-.25 G .467
-(\), and "1" are equi).15 F -.25(va)-.25 G .468(lent to).25 F F2(On)
-2.968 E F0 5.468(.A)C .468(ll other v)-5.468 F .468(alues are equi)-.25
-F -.25(va)-.25 G .468(lent to).25 F F2(Off)2.968 E F0 5.468(.T)C .468
-(he v)-5.468 F .468(ariables and their def)-.25 F(ault)-.1 E -.25(va)108
-696 S(lues are:).25 E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E
-(32)197.89 E 0 Cg EP
+(The full set of GNU Emacs style escape sequences is)108 494.4 Q F2
+<5c43ad>144 506.4 Q F0(control pre\214x)20.3 E F2<5c4dad>144 518.4 Q F0
+(meta pre\214x)18.08 E F2(\\e)144 530.4 Q F0(an escape character)28.78 E
+F2(\\\\)144 542.4 Q F0(backslash)30.44 E F2(\\")144 554.4 Q F0
+(literal ")27.67 E F2<5c08>144 566.4 Q F0(literal \010)30.44 E(In addit\
+ion to the GNU Emacs style escape sequences, a second set of backslash \
+escapes is a)108 583.2 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 595.2 Q
+F0(alert \(bell\))28.22 E F2(\\b)144 607.2 Q F0(backspace)27.66 E F2
+(\\d)144 619.2 Q F0(delete)27.66 E F2(\\f)144 631.2 Q F0(form feed)29.89
+E F2(\\n)144 643.2 Q F0(ne)27.66 E(wline)-.25 E F2(\\r)144 655.2 Q F0
+(carriage return)28.78 E F2(\\t)144 667.2 Q F0(horizontal tab)29.89 E F2
+(\\v)144 679.2 Q F0 -.15(ve)28.22 G(rtical tab).15 E F2(\\)144 691.2 Q
+F1(nnn)A F0(the eight-bit character whose v)18.22 E(alue is the octal v)
+-.25 E(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)
+144 703.2 Q F1(HH)A F0(the eight-bit character whose v)13.78 E
+(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F1(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 1.141
+(When entering the te)108 720 R 1.141(xt of a macro, single or double q\
+uotes must be used to indicate a macro de\214nition.)-.15 F
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(32)199.835 E 0 Cg EP
 %%Page: 33 34
 %%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(bell\255style \(audible\))108 84 Q F0 .011
-(Controls what happens when readline w)144 96 R .011
-(ants to ring the terminal bell.)-.1 F .01(If set to)5.01 F F1(none)2.51
-E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94
-(rings the bell.)144 108 R .94(If set to)5.94 F F1(visible)3.44 E F0
+-.35 E .09(Unquoted te)108 84 R .09
+(xt is assumed to be a function name.)-.15 F .089(In the macro body)
+5.089 F 2.589(,t)-.65 G .089(he backslash escapes described abo)-2.589 F
+-.15(ve)-.15 G(are e)108 96 Q 2.5(xpanded. Backslash)-.15 F
+(will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E
+(xt, including " and \010.)-.15 E/F1 10/Times-Bold@0 SF(Bash)108 112.8 Q
+F0(allo)2.929 E .429(ws the current readline k)-.25 F .729 -.15(ey b)-.1
+H .429(indings to be displayed or modi\214ed with the).15 F F1(bind)2.93
+E F0 -.2(bu)2.93 G .43(iltin command.).2 F .046
+(The editing mode may be switched during interacti)108 124.8 R .346 -.15
+(ve u)-.25 H .046(se by using the).15 F F1<ad6f>2.545 E F0 .045
+(option to the)2.545 F F1(set)2.545 E F0 -.2(bu)2.545 G .045
+(iltin command).2 F(\(see)108 136.8 Q/F2 9/Times-Bold@0 SF(SHELL B)2.5 E
+(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1
+(Readline V)87 153.6 Q(ariables)-.92 E F0 .043(Readline has v)108 165.6
+R .043(ariables that can be used to further customize its beha)-.25 F
+(vior)-.2 E 5.043(.A)-.55 G -.25(va)-2.5 G .043
+(riable may be set in the).25 F/F3 10/Times-Italic@0 SF(inpu-)2.554 E
+(tr)108 177.6 Q(c)-.37 E F0(\214le with a statement of the form)2.81 E
+F1(set)144 194.4 Q F3(variable\255name value)2.5 E F0 .79
+(Except where noted, readline v)108 211.2 R .79(ariables can tak)-.25 F
+3.29(et)-.1 G .79(he v)-3.29 F(alues)-.25 E F1(On)3.29 E F0(or)3.29 E F1
+(Off)3.29 E F0 .79(\(without re)3.29 F -.05(ga)-.15 G .79(rd to case\).)
+.05 F(Unrecog-)5.79 E .448(nized v)108 223.2 R .448
+(ariable names are ignored.)-.25 F .448(When a v)5.448 F .448(ariable v)
+-.25 F .448(alue is read, empty or null v)-.25 F .449
+(alues, "on" \(case-insensi-)-.25 F(ti)108 235.2 Q -.15(ve)-.25 G .468
+(\), and "1" are equi).15 F -.25(va)-.25 G .468(lent to).25 F F1(On)
+2.968 E F0 5.468(.A)C .468(ll other v)-5.468 F .468(alues are equi)-.25
+F -.25(va)-.25 G .468(lent to).25 F F1(Off)2.968 E F0 5.468(.T)C .467
+(he v)-5.468 F .467(ariables and their def)-.25 F(ault)-.1 E -.25(va)108
+247.2 S(lues are:).25 E F1(bell\255style \(audible\))108 264 Q F0 .01
+(Controls what happens when readline w)144 276 R .011
+(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F1(none)
+2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E
+.94(rings the bell.)144 288 R .94(If set to)5.94 F F1(visible)3.44 E F0
 3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va)
 -.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0(,)A
-(readline attempts to ring the terminal')144 120 Q 2.5(sb)-.55 G(ell.)
--2.5 E F1(bind\255tty\255special\255chars \(On\))108 132 Q F0 .056
-(If set to)144 144 R F1(On)2.556 E F0 2.556(,r)C .056(eadline attempts \
-to bind the control characters treated specially by the k)-2.556 F
-(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 156 Q -.15(ve)
+(readline attempts to ring the terminal')144 300 Q 2.5(sb)-.55 G(ell.)
+-2.5 E F1(bind\255tty\255special\255chars \(On\))108 312 Q F0 .055
+(If set to)144 324 R F1(On)2.555 E F0 2.555(,r)C .056(eadline attempts \
+to bind the control characters treated specially by the k)-2.555 F
+(ernel')-.1 E 2.556(st)-.55 G(ermi-)-2.556 E(nal dri)144 336 Q -.15(ve)
 -.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)-.25
-G(lents.).25 E F1(comment\255begin \(`)108 168 Q(`#')-.63 E('\))-.63 E
-F0 .884(The string that is inserted when the readline)144 180 R F1
-(insert\255comment)3.385 E F0 .885(command is e)3.385 F -.15(xe)-.15 G
-3.385(cuted. This).15 F(com-)3.385 E(mand is bound to)144 192 Q F1
+G(lents.).25 E F1(comment\255begin \(`)108 348 Q(`#')-.63 E('\))-.63 E
+F0 .885(The string that is inserted when the readline)144 360 R F1
+(insert\255comment)3.385 E F0 .884(command is e)3.384 F -.15(xe)-.15 G
+3.384(cuted. This).15 F(com-)3.384 E(mand is bound to)144 372 Q F1
 (M\255#)2.5 E F0(in emacs mode and to)2.5 E F1(#)2.5 E F0
-(in vi command mode.)2.5 E F1(completion\255ignor)108 204 Q
-(e\255case \(Off\))-.18 E F0(If set to)144 216 Q F1(On)2.5 E F0 2.5(,r)C
+(in vi command mode.)2.5 E F1(completion\255ignor)108 384 Q
+(e\255case \(Off\))-.18 E F0(If set to)144 396 Q F1(On)2.5 E F0 2.5(,r)C
 (eadline performs \214lename matching and completion in a case\255insen\
 siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
-(completion\255query\255items \(100\))108 228 Q F0 .53
-(This determines when the user is queried about vie)144 240 R .529
-(wing the number of possible completions gen-)-.25 F .56(erated by the)
-144 252 R F1(possible\255completions)3.06 E F0 3.06(command. It)3.06 F
-.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v)
--.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 264 R
+(completion\255query\255items \(100\))108 408 Q F0 .529
+(This determines when the user is queried about vie)144 420 R .53
+(wing the number of possible completions gen-)-.25 F .561(erated by the)
+144 432 R F1(possible\255completions)3.061 E F0 3.061(command. It)3.061
+F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)-3.06 E .56(ger v)
+-.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144 444 R
 .783(If the number of possible completions is greater than or equal to \
-the v)5.783 F .782(alue of this)-.25 F -.25(va)144 276 S .237
+the v)5.782 F .783(alue of this)-.25 F -.25(va)144 456 S .237
 (riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
 -.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
-.237(re simply listed)-2.737 F(on the terminal.)144 288 Q F1(con)108 300
-Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 312 R F1(On)
-3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4 G .613
-(rt characters with the eighth bit set to an ASCII k).15 F .912 -.15
-(ey s)-.1 H .612(equence by).15 F .541
+.237(re simply listed)-2.737 F(on the terminal.)144 468 Q F1(con)108 480
+Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)144 492 R F1(On)
+3.112 E F0 3.112(,r)C .613(eadline will con)-3.112 F -.15(ve)-.4 G .613
+(rt characters with the eighth bit set to an ASCII k).15 F .913 -.15
+(ey s)-.1 H .613(equence by).15 F .541
 (stripping the eighth bit and pre\214xing an escape character \(in ef)
-144 324 R .541(fect, using escape as the)-.25 F/F2 10/Times-Italic@0 SF
-.542(meta pr)3.042 F(e-)-.37 E<8c78>144 336 Q F0(\).)A F1
-(disable\255completion \(Off\))108 348 Q F0 .038(If set to)144 360 R F1
-(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538 F .038
-(ord completion.)-.1 F .038
+144 504 R .541(fect, using escape as the)-.25 F F3 .541(meta pr)3.041 F
+(e-)-.37 E<8c78>144 516 Q F0(\).)A F1(disable\255completion \(Off\))108
+528 Q F0 .038(If set to)144 540 R F1(On)2.538 E F0 2.538(,r)C .038
+(eadline will inhibit w)-2.538 F .038(ord completion.)-.1 F .038
 (Completion characters will be inserted into the)5.038 F(line as if the)
-144 372 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
-(.)A F1(editing\255mode \(emacs\))108 384 Q F0 .252
-(Controls whether readline be)144 396 R .253(gins with a set of k)-.15 F
-.553 -.15(ey b)-.1 H .253(indings similar to).15 F F2(emacs)2.753 E F0
-(or)2.753 E F2(vi)2.753 E F0(.)A F1(editing\255mode)5.253 E F0
-(can be set to either)144 408 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
-F0(.)A F1(enable\255k)108 420 Q(eypad \(Off\))-.1 E F0 .893(When set to)
-144 432 R F1(On)3.393 E F0 3.393(,r)C .893
+144 552 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
+(.)A F1(editing\255mode \(emacs\))108 564 Q F0 .253
+(Controls whether readline be)144 576 R .253(gins with a set of k)-.15 F
+.553 -.15(ey b)-.1 H .253(indings similar to).15 F F3(emacs)2.752 E F0
+(or)2.752 E F3(vi)2.752 E F0(.)A F1(editing\255mode)5.252 E F0
+(can be set to either)144 588 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
+F0(.)A F1(enable\255k)108 600 Q(eypad \(Off\))-.1 E F0 .892(When set to)
+144 612 R F1(On)3.393 E F0 3.393(,r)C .893
 (eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G
-.893(pad when it is called.).15 F .892(Some sys-)5.893 F
-(tems need this to enable the arro)144 444 Q 2.5(wk)-.25 G -.15(ey)-2.6
-G(s.).15 E F1(expand\255tilde \(Off\))108 456 Q F0(If set to)144 468 Q
+.893(pad when it is called.).15 F .893(Some sys-)5.893 F
+(tems need this to enable the arro)144 624 Q 2.5(wk)-.25 G -.15(ey)-2.6
+G(s.).15 E F1(expand\255tilde \(Off\))108 636 Q F0(If set to)144 648 Q
 F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
 (xpansion is performed when readline attempts w)-.15 E(ord completion.)
--.1 E F1(history\255pr)108 480 Q(eser)-.18 E -.1(ve)-.1 G
-(\255point \(Off\)).1 E F0 1.492(If set to)144 492 R F1(on)3.992 E F0
-3.992(,t)C 1.493(he history code attempts to place point at the same lo\
-cation on each history line)-3.992 F(retrie)144 504 Q -.15(ve)-.25 G 2.5
+-.1 E F1(history\255pr)108 660 Q(eser)-.18 E -.1(ve)-.1 G
+(\255point \(Off\)).1 E F0 1.493(If set to)144 672 R F1(on)3.993 E F0
+3.993(,t)C 1.493(he history code attempts to place point at the same lo\
+cation on each history line)-3.993 F(retrie)144 684 Q -.15(ve)-.25 G 2.5
 (dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0
-(or)2.5 E F1(next-history)2.5 E F0(.)A F1(horizontal\255scr)108 516 Q
-(oll\255mode \(Off\))-.18 E F0 .449(When set to)144 528 R F1(On)2.949 E
-F0 2.949(,m)C(ak)-2.949 E .448
-(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448
+(or)2.5 E F1(next-history)2.5 E F0(.)A F1(horizontal\255scr)108 696 Q
+(oll\255mode \(Off\))-.18 E F0 .448(When set to)144 708 R F1(On)2.948 E
+F0 2.948(,m)C(ak)-2.948 E .448
+(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .449
 (crolling the input horizontally on a)-2.948 F 1.194(single screen line\
  when it becomes longer than the screen width rather than wrapping to a\
- ne)144 540 R(w)-.25 E(line.)144 552 Q F1(input\255meta \(Off\))108 564
-Q F0 .228(If set to)144 576 R F1(On)2.728 E F0 2.728(,r)C .227(eadline \
+ ne)144 720 R(w)-.25 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(33)
+199.835 E 0 Cg EP
+%%Page: 34 35
+%%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(line.)144 84 Q/F1 10/Times-Bold@0 SF(input\255meta \(Off\))108 96
+Q F0 .227(If set to)144 108 R F1(On)2.727 E F0 2.727(,r)C .228(eadline \
 will enable eight-bit input \(that is, it will not strip the high bit f\
-rom the char)-2.728 F(-)-.2 E .956(acters it reads\), re)144 588 R -.05
+rom the char)-2.727 F(-)-.2 E .957(acters it reads\), re)144 120 R -.05
 (ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F
-.957(The name)5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F
-(synon)144 600 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 612 Q
+.956(The name)5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F
+(synon)144 132 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 144 Q
 (ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\))-.63 E F0 .439(\
 The string of characters that should terminate an incremental search wi\
-thout subsequently e)144 624 R -.15(xe)-.15 G(cut-).15 E .934
-(ing the character as a command.)144 636 R .935(If this v)5.935 F .935
-(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.435(nav).15 G .935
-(alue, the characters)-3.685 F F2(ESC)3.435 E F0(and)144 648 Q F2
-(C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F1 -.1(ke)
-108 660 S(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144
-672 R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021
-(alid k)-.25 F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.02
-(emacs, emacs\255standar)4.52 F(d,)-.37 E .068
-(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 684 R F0 2.568(,a)C
-(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0 .068
-(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command)
-2.569 E F0(;)A F2(emacs)2.569 E F0 1.544(is equi)144 696 R -.25(va)-.25
-G 1.544(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C
+thout subsequently e)144 156 R -.15(xe)-.15 G(cut-).15 E .935
+(ing the character as a command.)144 168 R .935(If this v)5.935 F .935
+(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
+(alue, the characters)-3.684 F/F2 10/Times-Italic@0 SF(ESC)3.434 E F0
+(and)144 180 Q F2(C\255J)2.5 E F0(will terminate an incremental search.)
+2.5 E F1 -.1(ke)108 192 S(ymap \(emacs\)).1 E F0 2.02
+(Set the current readline k)144 204 R -.15(ey)-.1 G 4.521(map. The).15 F
+2.021(set of v)4.521 F 2.021(alid k)-.25 F -.15(ey)-.1 G 2.021
+(map names is).15 F F2 2.021(emacs, emacs\255standar)4.521 F(d,)-.37 E
+.069(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 216 R F0 2.568
+(,a)C(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0
+.068(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command)
+2.568 E F0(;)A F2(emacs)2.568 E F0 1.543(is equi)144 228 R -.25(va)-.25
+G 1.543(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C
 1.544(he def)-6.544 F 1.544(ault v)-.1 F 1.544(alue is)-.25 F F2(emacs)
 4.044 E F0 4.044(;t).27 G 1.544(he v)-4.044 F 1.544(alue of)-.25 F F1
-(editing\255mode)4.043 E F0(also)4.043 E(af)144 708 Q(fects the def)-.25
-E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E(GNU Bash-3.1-beta1)72 768 Q
-(2005 Aug 27)122.91 E(33)197.89 E 0 Cg EP
-%%Page: 34 35
-%%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(mark\255dir)108 84 Q(ectories \(On\))-.18 E
-F0(If set to)144 96 Q F1(On)2.5 E F0 2.5(,c)C
+(editing\255mode)4.044 E F0(also)4.044 E(af)144 240 Q(fects the def)-.25
+E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 252 Q
+(ectories \(On\))-.18 E F0(If set to)144 264 Q F1(On)2.5 E F0 2.5(,c)C
 (ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.)
-.15 E F1(mark\255modi\214ed\255lines \(Off\))108 108 Q F0(If set to)144
-120 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
+.15 E F1(mark\255modi\214ed\255lines \(Off\))108 276 Q F0(If set to)144
+288 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
 -.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F1
-(*)A F0(\).)A F1(mark\255symlink)108 132 Q(ed\255dir)-.1 E
-(ectories \(Off\))-.18 E F0 .175(If set to)144 144 R F1(On)2.675 E F0
+(*)A F0(\).)A F1(mark\255symlink)108 300 Q(ed\255dir)-.1 E
+(ectories \(Off\))-.18 E F0 .175(If set to)144 312 R F1(On)2.675 E F0
 2.675(,c)C .175
 (ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 156
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 324
 Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
-(match\255hidden\255\214les \(On\))108 168 Q F0 .193(This v)144 180 R
-.193(ariable, when set to)-.25 F F1(On)2.693 E F0 2.693(,c)C .192
-(auses readline to match \214les whose names be)-2.693 F .192
-(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E 1.023
+(match\255hidden\255\214les \(On\))108 336 Q F0 .192(This v)144 348 R
+.192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692(,c)C .192
+(auses readline to match \214les whose names be)-2.692 F .193
+(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E 1.024
 (\214les\) when performing \214lename completion, unless the leading `.)
-144 192 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.024
-(upplied by the user in the)-3.523 F(\214lename to be completed.)144 204
-Q F1(output\255meta \(Off\))108 216 Q F0 .507(If set to)144 228 R F1(On)
-3.007 E F0 3.007(,r)C .507(eadline will display characters with the eig\
-hth bit set directly rather than as a meta-)-3.007 F(pre\214x)144 240 Q
-(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 252 Q F0
-.808(If set to)144 264 R F1(On)3.308 E F0 3.308(,r)C .808
-(eadline uses an internal)-3.308 F/F2 10/Times-Italic@0 SF(mor)3.308 E
-(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
-(ager to display a screenful of possible comple-)-3.308 F
-(tions at a time.)144 276 Q F1
-(print\255completions\255horizontally \(Off\))108 288 Q F0 1.319
-(If set to)144 300 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\
-play completions with matches sorted horizontally in alphabetical)-3.819
-F(order)144 312 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1(sho)108 324 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .477
-(This alters the def)144 336 R .477(ault beha)-.1 F .477
-(vior of the completion functions.)-.2 F .478(If set to)5.478 F F1(on)
-2.978 E F0 2.978(,w)C .478(ords which ha)-3.078 F .778 -.15(ve m)-.2 H
+144 360 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.023
+(upplied by the user in the)-3.523 F(\214lename to be completed.)144 372
+Q F1(output\255meta \(Off\))108 384 Q F0 .506(If set to)144 396 R F1(On)
+3.006 E F0 3.006(,r)C .507(eadline will display characters with the eig\
+hth bit set directly rather than as a meta-)-3.006 F(pre\214x)144 408 Q
+(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 420 Q F0
+.809(If set to)144 432 R F1(On)3.308 E F0 3.308(,r)C .808
+(eadline uses an internal)-3.308 F F2(mor)3.308 E(e)-.37 E F0(-lik)A
+3.308(ep)-.1 G .808(ager to display a screenful of possible comple-)
+-3.308 F(tions at a time.)144 444 Q F1
+(print\255completions\255horizontally \(Off\))108 456 Q F0 1.318
+(If set to)144 468 R F1(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
+play completions with matches sorted horizontally in alphabetical)-3.818
+F(order)144 480 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
+E F1(sho)108 492 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .478
+(This alters the def)144 504 R .478(ault beha)-.1 F .478
+(vior of the completion functions.)-.2 F .477(If set to)5.477 F F1(on)
+2.977 E F0 2.977(,w)C .477(ords which ha)-3.077 F .777 -.15(ve m)-.2 H
 (ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 348 R(bell.)144 360 Q F1
-(sho)108 372 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345
-(This alters the def)144 384 R 5.345(ault beha)-.1 F 5.345
-(vior of the completion functions in a f)-.2 F 5.346(ashion similar to)
--.1 F F1(sho)144 396 Q(w\255all\255if\255ambiguous)-.1 E F0 6.923(.I)C
-4.423(fs)-6.923 G 1.923(et to)-4.423 F F1(on)4.423 E F0 4.423(,w)C 1.923
-(ords which ha)-4.523 F 2.222 -.15(ve m)-.2 H 1.922
-(ore than one possible completion).15 F 1.039(without an)144 408 R 3.539
+isted immediately instead of ringing the)144 516 R(bell.)144 528 Q F1
+(sho)108 540 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
+(This alters the def)144 552 R 5.346(ault beha)-.1 F 5.345
+(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
+-.1 F F1(sho)144 564 Q(w\255all\255if\255ambiguous)-.1 E F0 6.922(.I)C
+4.422(fs)-6.922 G 1.922(et to)-4.422 F F1(on)4.422 E F0 4.422(,w)C 1.922
+(ords which ha)-4.522 F 2.223 -.15(ve m)-.2 H 1.923
+(ore than one possible completion).15 F 1.04(without an)144 576 R 3.54
 (yp)-.15 G 1.039
-(ossible partial completion \(the possible completions don')-3.539 F
-3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\
-s to be listed immediately instead of ringing the bell.)144 420 Q F1
-(visible\255stats \(Off\))108 432 Q F0 .847(If set to)144 444 R F1(On)
+(ossible partial completion \(the possible completions don')-3.54 F
+3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
+es to be listed immediately instead of ringing the bell.)144 588 Q F1
+(visible\255stats \(Off\))108 600 Q F0 .846(If set to)144 612 R F1(On)
 3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
 (st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
 (\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 456 Q F1
-(Readline Conditional Constructs)87 472.8 Q F0 .05
-(Readline implements a f)108 484.8 R .05(acility similar in spirit to t\
-he conditional compilation features of the C preprocessor)-.1 F .097
-(which allo)108 496.8 R .097(ws k)-.25 F .396 -.15(ey b)-.1 H .096
+(when listing possible completions.)144 624 Q F1
+(Readline Conditional Constructs)87 640.8 Q F0 .05
+(Readline implements a f)108 652.8 R .05(acility similar in spirit to t\
+he conditional compilation features of the C preprocessor)-.1 F .096
+(which allo)108 664.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096
 (indings and v).15 F .096
-(ariable settings to be performed as the result of tests.)-.25 F .096
-(There are four parser)5.096 F(directi)108 508.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 525.6 Q F0(The)24.89 E F1($if)2.962 E
-F0 .462(construct allo)2.962 F .463(ws bindings to be made based on the\
- editing mode, the terminal being used,)-.25 F .478
-(or the application using readline.)144 537.6 R .477(The te)5.477 F .477
+(ariable settings to be performed as the result of tests.)-.25 F .097
+(There are four parser)5.096 F(directi)108 676.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 693.6 Q F0(The)24.89 E F1($if)2.963 E
+F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\
+ editing mode, the terminal being used,)-.25 F .477
+(or the application using readline.)144 705.6 R .477(The te)5.477 F .477
 (xt of the test e)-.15 F .477
 (xtends to the end of the line; no characters)-.15 F
-(are required to isolate it.)144 549.6 Q F1(mode)144 566.4 Q F0(The)
-12.67 E F1(mode=)3.711 E F0 1.211(form of the)3.711 F F1($if)3.711 E F0
-(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
+(are required to isolate it.)144 717.6 Q(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(34)199.835 E 0 Cg EP
+%%Page: 35 36
+%%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(mode)144 84 Q F0(The)12.67 E F1(mode=)3.712
+E F0 1.212(form of the)3.712 F F1($if)3.711 E F0(directi)3.711 E 1.511
+-.15(ve i)-.25 H 3.711(su).15 G 1.211
 (sed to test whether readline is in emacs or vi)-3.711 F 3.065
-(mode. This)180 578.4 R .565(may be used in conjunction with the)3.065 F
-F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
-3.065 F .735(set bindings in the)180 590.4 R F2(emacs\255standar)3.235 E
-(d)-.37 E F0(and)3.235 E F2(emacs\255ctlx)3.235 E F0 -.1(ke)3.235 G .735
-(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 602.4
-Q F1(term)144 619.2 Q F0(The)15.46 E F1(term=)3.197 E F0 .696
-(form may be used to include terminal-speci\214c k)3.197 F .996 -.15
-(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 631.2 R
+(mode. This)180 96 R .565(may be used in conjunction with the)3.065 F F1
+.565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)3.065 F
+.735(set bindings in the)180 108 R/F2 10/Times-Italic@0 SF
+(emacs\255standar)3.235 E(d)-.37 E F0(and)3.235 E F2(emacs\255ctlx)3.235
+E F0 -.1(ke)3.235 G .735(ymaps only if readline is starting)-.05 F
+(out in emacs mode.)180 120 Q F1(term)144 136.8 Q F0(The)15.46 E F1
+(term=)3.196 E F0 .696
+(form may be used to include terminal-speci\214c k)3.196 F .996 -.15
+(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 148.8 R
 .954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
 (sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(the)180 643.2 Q F1(=)3.232
-E F0 .732(is tested ag)3.232 F .732(ainst the both full name of the ter\
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 160.8 Q F1(=)3.231
+E F0 .731(is tested ag)3.231 F .732(ainst the both full name of the ter\
 minal and the portion of the terminal)-.05 F(name before the \214rst)180
-655.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
+172.8 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
 (to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.5 E F0
-2.5(,f).77 G(or instance.)-2.5 E F1(application)144 672 Q F0(The)180 684
-Q F1(application)3.003 E F0 .503
+2.5(,f).77 G(or instance.)-2.5 E F1(application)144 189.6 Q F0(The)180
+201.6 Q F1(application)3.003 E F0 .503
 (construct is used to include application-speci\214c settings.)3.003 F
 .503(Each program)5.503 F .114(using the readline library sets the)180
-696 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
-(nd an initialization \214le can test for a)-2.614 F .5(particular v)180
-708 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
-(ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397
-(ci\214c program.)180 720 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+213.6 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
+(nd an initialization \214le can test for a)-2.614 F .501(particular v)
+180 225.6 R 3.001(alue. This)-.25 F .501(could be used to bind k)3.001 F
+.801 -.15(ey s)-.1 H .5(equences to functions useful for a spe-).15 F
+.396(ci\214c program.)180 237.6 R -.15(Fo)5.396 G 2.896(ri).15 G .396
 (nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
-(ey s)-.1 H .396(equence that quotes the).15 F(GNU Bash-3.1-beta1)72 768
-Q(2005 Aug 27)122.91 E(34)197.89 E 0 Cg EP
-%%Page: 35 36
-%%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(current or pre)180 84 Q(vious w)-.25 E(ord in Bash:)-.1 E/F1 10
-/Times-Bold@0 SF($if)180 108 Q F0(Bash)2.5 E 2.5(#Q)180 120 S
-(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
-("\\C\255xq": "\\eb\\"\\ef\\"")180 132 Q F1($endif)180 144 Q($endif)108
-160.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
+(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 249.6
+Q(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 273.6 Q F0(Bash)2.5 E 2.5
+(#Q)180 285.6 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
+("\\C\255xq": "\\eb\\"\\ef\\"")180 297.6 Q F1($endif)180 309.6 Q($endif)
+108 326.4 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
 (xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else)
-108 177.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
+108 343.2 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
 (directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
-(cuted if the test f).15 E(ails.)-.1 E F1($include)108 194.4 Q F0 .356
-(This directi)144 206.4 R .656 -.15(ve t)-.25 H(ak).15 E .356
-(es a single \214lename as an ar)-.1 F .357
+(cuted if the test f).15 E(ails.)-.1 E F1($include)108 360 Q F0 .357
+(This directi)144 372 R .657 -.15(ve t)-.25 H(ak).15 E .357
+(es a single \214lename as an ar)-.1 F .356
 (gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 218.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
--.15(ve w)-.25 H(ould read).05 E/F2 10/Times-Italic@0 SF(/etc/inputr)2.5
-E(c)-.37 E F0(:)A F1($include)144 242.4 Q F2(/etc/inputr)5.833 E(c)-.37
-E F1(Sear)87 259.2 Q(ching)-.18 E F0 .835(Readline pro)108 271.2 R .835
+144 384 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+-.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
+($include)144 408 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 424.8 Q
+(ching)-.18 E F0 .834(Readline pro)108 436.8 R .834
 (vides commands for searching through the command history \(see)-.15 F
-/F3 9/Times-Bold@0 SF(HIST)3.334 E(OR)-.162 E(Y)-.315 E F0(belo)3.084 E
-.834(w\) for lines)-.25 F(containing a speci\214ed string.)108 283.2 Q
+/F3 9/Times-Bold@0 SF(HIST)3.335 E(OR)-.162 E(Y)-.315 E F0(belo)3.085 E
+.835(w\) for lines)-.25 F(containing a speci\214ed string.)108 448.8 Q
 (There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E
 (emental)-.37 E F0(and)3.01 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51
-E .697(Incremental searches be)108 300 R .697
+E .698(Incremental searches be)108 465.6 R .698
 (gin before the user has \214nished typing the search string.)-.15 F
-.698(As each character of the)5.698 F .113
-(search string is typed, readline displays the ne)108 312 R .112
+.697(As each character of the)5.697 F .112
+(search string is typed, readline displays the ne)108 477.6 R .112
 (xt entry from the history matching the string typed so f)-.15 F(ar)-.1
-E 5.112(.A)-.55 G(n)-5.112 E .542
-(incremental search requires only as man)108 324 R 3.042(yc)-.15 G .542
-(haracters as needed to \214nd the desired history entry)-3.042 F 5.542
-(.T)-.65 G .542(he char)-5.542 F(-)-.2 E .224(acters present in the v)
-108 336 R .224(alue of the)-.25 F F1(isear)2.724 E(ch-terminators)-.18 E
-F0 -.25(va)2.724 G .224
+E 5.113(.A)-.55 G(n)-5.113 E .542
+(incremental search requires only as man)108 489.6 R 3.042(yc)-.15 G
+.542(haracters as needed to \214nd the desired history entry)-3.042 F
+5.541(.T)-.65 G .541(he char)-5.541 F(-)-.2 E .224
+(acters present in the v)108 501.6 R .224(alue of the)-.25 F F1(isear)
+2.724 E(ch-terminators)-.18 E F0 -.25(va)2.724 G .224
 (riable are used to terminate an incremental search.).25 F .66
-(If that v)108 348 R .66(ariable has not been assigned a v)-.25 F .66
+(If that v)108 513.6 R .66(ariable has not been assigned a v)-.25 F .66
 (alue the Escape and Control-J characters will terminate an incre-)-.25
-F .097(mental search.)108 360 R .096(Control-G will abort an incrementa\
-l search and restore the original line.)5.097 F .096(When the search is)
-5.096 F(terminated, the history entry containing the search string beco\
-mes the current line.)108 372 Q 2.938 -.8(To \214)108 388.8 T 1.339(nd \
-other matching entries in the history list, type Control-S or Control-R\
- as appropriate.).8 F 1.339(This will)6.339 F .675(search backw)108
-400.8 R .675(ard or forw)-.1 F .675(ard in the history for the ne)-.1 F
-.674(xt entry matching the search string typed so f)-.15 F(ar)-.1 E
-5.674(.A)-.55 G -.15(ny)-5.674 G .174(other k)108 412.8 R .474 -.15
-(ey s)-.1 H .174
+F .096(mental search.)108 525.6 R .096(Control-G will abort an incremen\
+tal search and restore the original line.)5.096 F .097
+(When the search is)5.097 F(terminated, the history entry containing th\
+e search string becomes the current line.)108 537.6 Q 2.939 -.8(To \214)
+108 554.4 T 1.339(nd other matching entries in the history list, type C\
+ontrol-S or Control-R as appropriate.).8 F 1.338(This will)6.338 F .674
+(search backw)108 566.4 R .674(ard or forw)-.1 F .674
+(ard in the history for the ne)-.1 F .675
+(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.675
+(.A)-.55 G -.15(ny)-5.675 G .175(other k)108 578.4 R .475 -.15(ey s)-.1
+H .174
 (equence bound to a readline command will terminate the search and e).15
-F -.15(xe)-.15 G .175(cute that command.).15 F -.15(Fo)5.175 G(r).15 E
-.541(instance, a)108 424.8 R F2(ne)3.041 E(wline)-.15 E F0 .541
-(will terminate the search and accept the line, thereby e)3.041 F -.15
-(xe)-.15 G .54(cuting the command from the).15 F(history list.)108 436.8
-Q .653(Readline remembers the last incremental search string.)108 453.6
-R .653(If tw)5.653 F 3.153(oC)-.1 G .653(ontrol-Rs are typed without an)
--3.153 F 3.153(yi)-.15 G(nterv)-3.153 E(en-)-.15 E
-(ing characters de\214ning a ne)108 465.6 Q 2.5(ws)-.25 G
+F -.15(xe)-.15 G .174(cute that command.).15 F -.15(Fo)5.174 G(r).15 E
+.54(instance, a)108 590.4 R F2(ne)3.04 E(wline)-.15 E F0 .541
+(will terminate the search and accept the line, thereby e)3.04 F -.15
+(xe)-.15 G .541(cuting the command from the).15 F(history list.)108
+602.4 Q .653(Readline remembers the last incremental search string.)108
+619.2 R .653(If tw)5.653 F 3.153(oC)-.1 G .653
+(ontrol-Rs are typed without an)-3.153 F 3.152(yi)-.15 G(nterv)-3.152 E
+(en-)-.15 E(ing characters de\214ning a ne)108 631.2 Q 2.5(ws)-.25 G
 (earch string, an)-2.5 E 2.5(yr)-.15 G(emembered search string is used.)
 -2.5 E .567(Non-incremental searches read the entire search string befo\
-re starting to search for matching history lines.)108 482.4 R(The searc\
-h string may be typed by the user or be part of the contents of the cur\
-rent line.)108 494.4 Q F1(Readline Command Names)87 511.2 Q F0 1.391
-(The follo)108 523.2 R 1.391
+re starting to search for matching history lines.)108 648 R(The search \
+string may be typed by the user or be part of the contents of the curre\
+nt line.)108 660 Q F1(Readline Command Names)87 676.8 Q F0 1.392
+(The follo)108 688.8 R 1.391
 (wing is a list of the names of the commands and the def)-.25 F 1.391
 (ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 535.2 R .122
-(names without an accompan)2.622 F .122(ying k)-.15 F .421 -.15(ey s)-.1
-H .121(equence are unbound by def).15 F 2.621(ault. In)-.1 F .121
-(the follo)2.621 F(wing)-.25 E(descriptions,)108 547.2 Q F2(point)3.41 E
-F0 .91(refers to the current cursor position, and)3.41 F F2(mark)3.411 E
-F0 .911(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.411(db)
-.15 G 3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 559.2 Q F0 2.5
+3.891(ya)-.15 G(re)-3.891 E 2.621(bound. Command)108 700.8 R .121
+(names without an accompan)2.621 F .121(ying k)-.15 F .421 -.15(ey s)-.1
+H .122(equence are unbound by def).15 F 2.622(ault. In)-.1 F .122
+(the follo)2.622 F(wing)-.25 E(descriptions,)108 712.8 Q F2(point)3.411
+E F0 .911(refers to the current cursor position, and)3.411 F F2(mark)
+3.411 E F0 .91(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.41
+(db).15 G 3.41(yt)-3.41 G(he)-3.41 E F1(set\255mark)108 724.8 Q F0 2.5
 (command. The)2.5 F(te)2.5 E
 (xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 576 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 588 Q F0(Mo)144 600 Q .3 -.15
-(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
-(end\255of\255line \(C\255e\))108 612 Q F0(Mo)144 624 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 636 S
-(rward\255char \(C\255f\)).25 E F0(Mo)144 648 Q .3 -.15(ve f)-.15 H(orw)
-.15 E(ard a character)-.1 E(.)-.55 E F1(backward\255char \(C\255b\))108
-660 Q F0(Mo)144 672 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E
-F1 -.25(fo)108 684 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 696
-Q .823 -.15(ve f)-.15 H(orw).15 E .523(ard to the end of the ne)-.1 F
-.523(xt w)-.15 F 3.023(ord. W)-.1 F .522
-(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 708 Q(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)
-122.91 E(35)197.89 E 0 Cg EP
+2.5 G(gion)-.03 E F0(.)A(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(35)
+199.835 E 0 Cg EP
 %%Page: 36 37
 %%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(backward\255w)108 84 Q(ord \(M\255b\))-.1 E
-F0(Mo)144 96 Q 1.71 -.15(ve b)-.15 H 1.41
+-.35 E/F1 10/Times-Bold@0 SF(Commands f)87 84 Q(or Mo)-.25 E(ving)-.1 E
+(beginning\255of\255line \(C\255a\))108 96 Q F0(Mo)144 108 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
+(end\255of\255line \(C\255e\))108 120 Q F0(Mo)144 132 Q .3 -.15(ve t)
+-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 144 S
+(rward\255char \(C\255f\)).25 E F0(Mo)144 156 Q .3 -.15(ve f)-.15 H(orw)
+.15 E(ard a character)-.1 E(.)-.55 E F1(backward\255char \(C\255b\))108
+168 Q F0(Mo)144 180 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E
+F1 -.25(fo)108 192 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 204
+Q .822 -.15(ve f)-.15 H(orw).15 E .522(ard to the end of the ne)-.1 F
+.523(xt w)-.15 F 3.023(ord. W)-.1 F .523
+(ords are composed of alphanumeric characters \(let-)-.8 F
+(ters and digits\).)144 216 Q F1(backward\255w)108 228 Q(ord \(M\255b\))
+-.1 E F0(Mo)144 240 Q 1.71 -.15(ve b)-.15 H 1.41
 (ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
 (ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 108 Q F1(clear\255scr)108 120 Q
-(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 132 R .993
+(characters \(letters and digits\).)144 252 Q F1(clear\255scr)108 264 Q
+(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 276 R .993
 (ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
 .993(th an ar).4 F .993(gument, refresh the)-.18 F
-(current line without clearing the screen.)144 144 Q F1 -.18(re)108 156
+(current line without clearing the screen.)144 288 Q F1 -.18(re)108 300
 S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-168 Q F1(Commands f)87 184.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 196.8 Q(n\))-.15 E F0 .158
-(Accept the line re)144 208.8 R -.05(ga)-.15 G .158
+312 Q F1(Commands f)87 328.8 Q(or Manipulating the History)-.25 E
+(accept\255line \(Newline, Retur)108 340.8 Q(n\))-.15 E F0 .159
+(Accept the line re)144 352.8 R -.05(ga)-.15 G .159
 (rdless of where the cursor is.).05 F .158(If this line is non-empty)
-5.158 F 2.659(,a)-.65 G .159(dd it to the history list)-2.659 F .699
-(according to the state of the)144 220.8 R/F2 9/Times-Bold@0 SF
+5.158 F 2.658(,a)-.65 G .158(dd it to the history list)-2.658 F .699
+(according to the state of the)144 364.8 R/F2 9/Times-Bold@0 SF
 (HISTCONTR)3.199 E(OL)-.27 E F0 -.25(va)2.949 G 3.199(riable. If).25 F
 .699(the line is a modi\214ed history line, then)3.199 F
-(restore the history line to its original state.)144 232.8 Q F1(pr)108
-244.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
-(Fetch the pre)144 256.8 Q(vious command from the history list, mo)-.25
-E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 268.8
-Q F0(Fetch the ne)144 280.8 Q(xt command from the history list, mo)-.15
+(restore the history line to its original state.)144 376.8 Q F1(pr)108
+388.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
+(Fetch the pre)144 400.8 Q(vious command from the history list, mo)-.25
+E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 412.8
+Q F0(Fetch the ne)144 424.8 Q(xt command from the history list, mo)-.15
 E(ving forw)-.15 E(ard in the list.)-.1 E F1
-(beginning\255of\255history \(M\255<\))108 292.8 Q F0(Mo)144 304.8 Q .3
+(beginning\255of\255history \(M\255<\))108 436.8 Q F0(Mo)144 448.8 Q .3
 -.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
--.65 E F1(end\255of\255history \(M\255>\))108 316.8 Q F0(Mo)144 328.8 Q
+-.65 E F1(end\255of\255history \(M\255>\))108 460.8 Q F0(Mo)144 472.8 Q
 .3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
 (,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18
-(re v)108 340.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.47(Search backw)144 352.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.471
+(re v)108 484.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
+1.471(Search backw)144 496.8 R 1.471
+(ard starting at the current line and mo)-.1 F 1.47
 (ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 364.8 Q F1 -.25(fo)108 376.8 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
-(Search forw)144 388.8 R 1.132(ard starting at the current line and mo)
--.1 F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)
--.25 F(.)-.65 E(This is an incremental search.)144 400.8 Q F1
-(non\255incr)108 412.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
-(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)
-144 424.8 R .164(ard through the history starting at the current line u\
-sing a non-incremental search for)-.1 F 2.5(as)144 436.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 448.8 Q
+(This is an incremental search.)144 508.8 Q F1 -.25(fo)108 520.8 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
+(Search forw)144 532.8 R 1.131(ard starting at the current line and mo)
+-.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)
+-.25 F(.)-.65 E(This is an incremental search.)144 544.8 Q F1
+(non\255incr)108 556.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
+(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)
+144 568.8 R .164(ard through the history starting at the current line u\
+sing a non-incremental search for)-.1 F 2.5(as)144 580.8 S
+(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 592.8 Q
 (emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.354(Search forw)144 460.8 R 1.354(ard through the history using \
+E F0 1.353(Search forw)144 604.8 R 1.354(ard through the history using \
 a non-incremental search for a string supplied by the)-.1 F(user)144
-472.8 Q(.)-.55 E F1(history\255sear)108 484.8 Q(ch\255f)-.18 E(orward)
--.25 E F0 .248(Search forw)144 496.8 R .249(ard through the history for\
+616.8 Q(.)-.55 E F1(history\255sear)108 628.8 Q(ch\255f)-.18 E(orward)
+-.25 E F0 .249(Search forw)144 640.8 R .249(ard through the history for\
  the string of characters between the start of the current line)-.1 F
-(and the point.)144 508.8 Q(This is a non-incremental search.)5 E F1
-(history\255sear)108 520.8 Q(ch\255backward)-.18 E F0 .951(Search backw)
-144 532.8 R .951(ard through the history for the string of characters b\
-etween the start of the current)-.1 F(line and the point.)144 544.8 Q
-(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 556.8 Q
+(and the point.)144 652.8 Q(This is a non-incremental search.)5 E F1
+(history\255sear)108 664.8 Q(ch\255backward)-.18 E F0 .95(Search backw)
+144 676.8 R .951(ard through the history for the string of characters b\
+etween the start of the current)-.1 F(line and the point.)144 688.8 Q
+(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 700.8 Q
 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144
-568.8 R .622(gument to the pre)-.18 F .622
+712.8 R .622(gument to the pre)-.18 F .622
 (vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
-.622(vious line\))-.25 F .795(at point.)144 580.8 R -.4(Wi)5.795 G .794
+.622(vious line\))-.25 F .794(at point.)144 724.8 R -.4(Wi)5.794 G .794
 (th an ar).4 F(gument)-.18 E/F3 10/Times-Italic@0 SF(n)3.294 E F0 3.294
 (,i).24 G .794(nsert the)-3.294 F F3(n)3.294 E F0 .794(th w)B .794
-(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .794
-(ords in the)-.1 F(pre)144 592.8 Q .291(vious command be)-.25 F .291
-(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)
--2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291
-(ument inserts the).18 F F3(n)2.791 E F0 .291(th w)B .292
-(ord from the end of)-.1 F .282(the pre)144 604.8 R .282(vious command.)
--.25 F .282(Once the ar)5.282 F(gument)-.18 E F3(n)2.781 E F0 .281
-(is computed, the ar)2.781 F .281(gument is e)-.18 F .281
-(xtracted as if the "!)-.15 F F3(n)A F0(")A(history e)144 616.8 Q
-(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 628.8 Q
-2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307
-(Insert the last ar)144 640.8 R 1.307(gument to the pre)-.18 F 1.307
-(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
-(vious history entry\).)-.25 F -.4(Wi)144 652.8 S .736(th an ar).4 F
-.736(gument, beha)-.18 F 1.036 -.15(ve ex)-.2 H .736(actly lik).15 F(e)
--.1 E F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.735(.S)C(uccessi)-5.735
-E 1.035 -.15(ve c)-.25 H .735(alls to).15 F F1(yank\255last\255ar)3.235
-E(g)-.1 E F0(mo)3.235 E -.15(ve)-.15 G .728
-(back through the history list, inserting the last ar)144 664.8 R .728
-(gument of each line in turn.)-.18 F .729(The history e)5.728 F(xpan-)
--.15 E .14(sion f)144 676.8 R .14(acilities are used to e)-.1 F .14
-(xtract the last ar)-.15 F .14(gument, as if the "!$" history e)-.18 F
-.14(xpansion had been speci-)-.15 F(\214ed.)144 688.8 Q F1
-(shell\255expand\255line \(M\255C\255e\))108 700.8 Q F0 .622
-(Expand the line as the shell does.)144 712.8 R .622
-(This performs alias and history e)5.622 F .623
-(xpansion as well as all of the)-.15 F(shell w)144 724.8 Q(ord e)-.1 E
-2.5(xpansions. See)-.15 F F2(HIST)2.5 E(OR)-.162 E 2.25(YE)-.315 G(XP)
--2.25 E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G
-(or a description of history e)-2.5 E(xpansion.)-.15 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(36)197.89 E 0 Cg EP
+(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .795
+(ords in the)-.1 F(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(36)
+199.835 E 0 Cg EP
 %%Page: 37 38
 %%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(history\255expand\255line \(M\255^\))108 84
-Q F0 .939(Perform history e)144 96 R .939(xpansion on the current line.)
--.15 F(See)5.939 E/F2 9/Times-Bold@0 SF(HIST)3.439 E(OR)-.162 E 3.189
-(YE)-.315 G(XP)-3.189 E(ANSION)-.666 E F0(belo)3.189 E 3.438(wf)-.25 G
-.938(or a descrip-)-3.438 F(tion of history e)144 108 Q(xpansion.)-.15 E
-F1(magic\255space)108 120 Q F0 1.626(Perform history e)144 132 R 1.626
-(xpansion on the current line and insert a space.)-.15 F(See)6.627 E F2
-(HIST)4.127 E(OR)-.162 E 3.877(YE)-.315 G(XP)-3.877 E(ANSION)-.666 E F0
-(belo)144 144 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
-(xpansion.)-.15 E F1(alias\255expand\255line)108 156 Q F0 .395
-(Perform alias e)144 168 R .395(xpansion on the current line.)-.15 F
-(See)5.395 E F2(ALIASES)2.895 E F0(abo)2.645 E .694 -.15(ve f)-.15 H
-.394(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 180 Q F1
-(history\255and\255alias\255expand\255line)108 192 Q F0
-(Perform history and alias e)144 204 Q(xpansion on the current line.)
--.15 E F1(insert\255last\255ar)108 216 Q(gument \(M\255.)-.1 E 2.5(,M)
-.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 228 S(ynon)-2.5 E(ym for)
--.15 E F1(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A F1
-(operate\255and\255get\255next \(C\255o\))108 240 Q F0 .947
-(Accept the current line for e)144 252 R -.15(xe)-.15 G .948
-(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.248 -.15
-(ve t)-.25 H 3.448(ot).15 G .948(he current line from the)-3.448 F
-(history for editing.)144 264 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
-(ument is ignored.).18 E F1
-(edit\255and\255execute\255command \(C\255xC\255e\))108 276 Q F0(In)144
-288 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
+-.35 E(pre)144 84 Q .292(vious command be)-.25 F .292(gin with w)-.15 F
+.291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)-2.791 H(ti).15 E
+.591 -.15(ve a)-.25 H -.18(rg).15 G .291(ument inserts the).18 F/F1 10
+/Times-Italic@0 SF(n)2.791 E F0 .291(th w)B .291(ord from the end of)-.1
+F .281(the pre)144 96 R .281(vious command.)-.25 F .281(Once the ar)
+5.281 F(gument)-.18 E F1(n)2.781 E F0 .281(is computed, the ar)2.781 F
+.281(gument is e)-.18 F .282(xtracted as if the "!)-.15 F F1(n)A F0(")A
+(history e)144 108 Q(xpansion had been speci\214ed.)-.15 E/F2 10
+/Times-Bold@0 SF(yank\255last\255ar)108 120 Q 2.5(g\()-.1 G -1.667
+(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308(Insert the last ar)144
+132 R 1.308(gument to the pre)-.18 F 1.307(vious command \(the last w)
+-.25 F 1.307(ord of the pre)-.1 F 1.307(vious history entry\).)-.25 F
+-.4(Wi)144 144 S .735(th an ar).4 F .735(gument, beha)-.18 F 1.035 -.15
+(ve ex)-.2 H .735(actly lik).15 F(e)-.1 E F2(yank\255nth\255ar)3.235 E
+(g)-.1 E F0 5.736(.S)C(uccessi)-5.736 E 1.036 -.15(ve c)-.25 H .736
+(alls to).15 F F2(yank\255last\255ar)3.236 E(g)-.1 E F0(mo)3.236 E -.15
+(ve)-.15 G .728(back through the history list, inserting the last ar)144
+156 R .728(gument of each line in turn.)-.18 F .728(The history e)5.728
+F(xpan-)-.15 E .14(sion f)144 168 R .14(acilities are used to e)-.1 F
+.14(xtract the last ar)-.15 F .14(gument, as if the "!$" history e)-.18
+F .14(xpansion had been speci-)-.15 F(\214ed.)144 180 Q F2
+(shell\255expand\255line \(M\255C\255e\))108 192 Q F0 .623
+(Expand the line as the shell does.)144 204 R .622
+(This performs alias and history e)5.622 F .622
+(xpansion as well as all of the)-.15 F(shell w)144 216 Q(ord e)-.1 E 2.5
+(xpansions. See)-.15 F/F3 9/Times-Bold@0 SF(HIST)2.5 E(OR)-.162 E 2.25
+(YE)-.315 G(XP)-2.25 E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G
+(or a description of history e)-2.5 E(xpansion.)-.15 E F2
+(history\255expand\255line \(M\255^\))108 228 Q F0 .938
+(Perform history e)144 240 R .939(xpansion on the current line.)-.15 F
+(See)5.939 E F3(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E
+(ANSION)-.666 E F0(belo)3.189 E 3.439(wf)-.25 G .939(or a descrip-)
+-3.439 F(tion of history e)144 252 Q(xpansion.)-.15 E F2(magic\255space)
+108 264 Q F0 1.627(Perform history e)144 276 R 1.627
+(xpansion on the current line and insert a space.)-.15 F(See)6.626 E F3
+(HIST)4.126 E(OR)-.162 E 3.876(YE)-.315 G(XP)-3.876 E(ANSION)-.666 E F0
+(belo)144 288 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
+(xpansion.)-.15 E F2(alias\255expand\255line)108 300 Q F0 .394
+(Perform alias e)144 312 R .394(xpansion on the current line.)-.15 F
+(See)5.395 E F3(ALIASES)2.895 E F0(abo)2.645 E .695 -.15(ve f)-.15 H
+.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 324 Q F2
+(history\255and\255alias\255expand\255line)108 336 Q F0
+(Perform history and alias e)144 348 Q(xpansion on the current line.)
+-.15 E F2(insert\255last\255ar)108 360 Q(gument \(M\255.)-.1 E 2.5(,M)
+.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 372 S(ynon)-2.5 E(ym for)
+-.15 E F2(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A F2
+(operate\255and\255get\255next \(C\255o\))108 384 Q F0 .948
+(Accept the current line for e)144 396 R -.15(xe)-.15 G .948
+(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.247 -.15
+(ve t)-.25 H 3.447(ot).15 G .947(he current line from the)-3.447 F
+(history for editing.)144 408 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
+(ument is ignored.).18 E F2
+(edit\255and\255execute\255command \(C\255xC\255e\))108 420 Q F0(In)144
+432 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
 (ditor on the current command line, and e)-3.526 F -.15(xe)-.15 G 1.026
-(cute the result as shell commands.).15 F F1(Bash)6.026 E F0
-(attempts to in)144 300 Q -.2(vo)-.4 G -.1(ke).2 G F2($FCEDIT)2.6 E/F3 9
-/Times-Roman@0 SF(,)A F2($EDIT)2.25 E(OR)-.162 E F3(,)A F0(and)2.25 E/F4
-10/Times-Italic@0 SF(emacs)2.5 E F0(as the editor)2.5 E 2.5(,i)-.4 G 2.5
-(nt)-2.5 G(hat order)-2.5 E(.)-.55 E F1(Commands f)87 316.8 Q
-(or Changing T)-.25 E(ext)-.92 E(delete\255char \(C\255d\))108 328.8 Q
-F0 .357(Delete the character at point.)144 340.8 R .358
-(If point is at the be)5.358 F .358
-(ginning of the line, there are no characters in the)-.15 F
-(line, and the last character typed w)144 352.8 Q(as not bound to)-.1 E
-F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F2(EOF)2.5 E F3(.)
-A F1(backward\255delete\255char \(Rubout\))108 364.8 Q F0 .553
-(Delete the character behind the cursor)144 376.8 R 5.553(.W)-.55 G .553
+(cute the result as shell commands.).15 F F2(Bash)6.026 E F0
+(attempts to in)144 444 Q -.2(vo)-.4 G -.1(ke).2 G F3($FCEDIT)2.6 E/F4 9
+/Times-Roman@0 SF(,)A F3($EDIT)2.25 E(OR)-.162 E F4(,)A F0(and)2.25 E F1
+(emacs)2.5 E F0(as the editor)2.5 E 2.5(,i)-.4 G 2.5(nt)-2.5 G
+(hat order)-2.5 E(.)-.55 E F2(Commands f)87 460.8 Q(or Changing T)-.25 E
+(ext)-.92 E(delete\255char \(C\255d\))108 472.8 Q F0 .358
+(Delete the character at point.)144 484.8 R .358(If point is at the be)
+5.358 F .358(ginning of the line, there are no characters in the)-.15 F
+(line, and the last character typed w)144 496.8 Q(as not bound to)-.1 E
+F2(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F3(EOF)2.5 E F4(.)
+A F2(backward\255delete\255char \(Rubout\))108 508.8 Q F0 .552
+(Delete the character behind the cursor)144 520.8 R 5.553(.W)-.55 G .553
 (hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F
-.552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552(he deleted te).15 F
-.552(xt on)-.15 F(the kill ring.)144 388.8 Q F1 -.25(fo)108 400.8 S
-(rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 412.8 R 2.973(,u)-.4 G .474
-(nless the cursor is at the end of the line, in which case the)-2.973 F
-(character behind the cursor is deleted.)144 424.8 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 436.8 Q F0 .779(Add the ne)144
-448.8 R .779(xt character typed to the line v)-.15 F 3.279
+.553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553(he deleted te).15 F
+.553(xt on)-.15 F(the kill ring.)144 532.8 Q F2 -.25(fo)108 544.8 S
+(rward\255backward\255delete\255char).25 E F0 .474
+(Delete the character under the cursor)144 556.8 R 2.974(,u)-.4 G .474
+(nless the cursor is at the end of the line, in which case the)-2.974 F
+(character behind the cursor is deleted.)144 568.8 Q F2
+(quoted\255insert \(C\255q, C\255v\))108 580.8 Q F0 .778(Add the ne)144
+592.8 R .779(xt character typed to the line v)-.15 F 3.279
 (erbatim. This)-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279
-G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.278 E F0 3.278
-(,f)C(or)-3.278 E -.15(ex)144 460.8 S(ample.).15 E F1
-(tab\255insert \(C\255v T)108 472.8 Q(AB\))-.9 E F0
-(Insert a tab character)144 484.8 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 496.8 Q F0
-(Insert the character typed.)144 508.8 Q F1
-(transpose\255chars \(C\255t\))108 520.8 Q F0 .321
-(Drag the character before point forw)144 532.8 R .321(ard o)-.1 F -.15
-(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .322
-(ving point forw)-.15 F .322(ard as well.)-.1 F 1.182
+G .779(nsert characters lik)-3.279 F(e)-.1 E F2(C\255q)3.279 E F0 3.279
+(,f)C(or)-3.279 E -.15(ex)144 604.8 S(ample.).15 E F2
+(tab\255insert \(C\255v T)108 616.8 Q(AB\))-.9 E F0
+(Insert a tab character)144 628.8 Q(.)-.55 E F2
+(self\255insert \(a, b, A, 1, !, ...\))108 640.8 Q F0
+(Insert the character typed.)144 652.8 Q F2
+(transpose\255chars \(C\255t\))108 664.8 Q F0 .322
+(Drag the character before point forw)144 676.8 R .321(ard o)-.1 F -.15
+(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321
+(ving point forw)-.15 F .321(ard as well.)-.1 F 1.182
 (If point is at the end of the line, then this transposes the tw)144
-544.8 R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E
--.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 556.8 Q(guments ha)-.18 E
-.3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
-(transpose\255w)108 568.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-580.8 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
--.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w)
--2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F
-(is at the end of the line, this transposes the last tw)144 592.8 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 604.8 Q
-(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144
-616.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
--.05(ga)-.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
-(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 628.8 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 640.8 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 652.8 Q 1.647
-(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147
-(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15
-(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre)
--.25 F(vious)-.25 E -.1(wo)144 664.8 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 676.8 Q
-(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144
-688.8 R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F
--.05(ga)-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974
-(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 700.8 S(rd, b)
-.1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(37)197.89 E 0 Cg EP
+688.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E
+-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 700.8 Q(guments ha)-.18 E
+.3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E(GNU Bash-3.2)
+72 768 Q(2006 Jan 26)149.845 E(37)199.835 E 0 Cg EP
 %%Page: 38 39
 %%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 -.1(ove)108 84 S(rwrite\255mode).1 E F0 -.8
-(To)144 96 S .437(ggle o).8 F -.15(ve)-.15 G .437(rwrite mode.).15 F -.4
-(Wi)5.437 G .437(th an e).4 F .437(xplicit positi)-.15 F .738 -.15(ve n)
--.25 H .438(umeric ar).15 F .438(gument, switches to o)-.18 F -.15(ve)
--.15 G .438(rwrite mode.).15 F -.4(Wi)144 108 S .781(th an e).4 F .781
-(xplicit non-positi)-.15 F 1.081 -.15(ve n)-.25 H .781(umeric ar).15 F
-.781(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F
-(fects)-.25 E(only)144 120 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
-4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
-F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F2 10
-/Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895
-(starts in insert)4.395 F 3.969(mode. In)144 132 R -.15(ove)3.969 G
-1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
-F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F
-.957(pushing the te)144 144 R .957(xt to the right.)-.15 F .958
-(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0
-.958(replace the character)3.458 F(before point with a space.)144 156 Q
-(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-172.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 184.8 Q F0
-(Kill the te)144 196.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 208.8 Q F0(Kill backw)
-144 220.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 232.8 Q F0(Kill backw)144 244.8
+-.35 E/F1 10/Times-Bold@0 SF(transpose\255w)108 84 Q(ords \(M\255t\))-.1
+E F0 .024(Drag the w)144 96 R .024(ord before point past the w)-.1 F
+.023(ord after point, mo)-.1 F .023(ving point o)-.15 F -.15(ve)-.15 G
+2.523(rt).15 G .023(hat w)-2.523 F .023(ord as well.)-.1 F .023
+(If point)5.023 F
+(is at the end of the line, this transposes the last tw)144 108 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 120 Q
+(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144 132
+R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)
+-.15 G(ti).05 E 1.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 144 S(rd, b).1 E
+(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 156 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 168 Q 1.648
+(wercase the current \(or follo)-.25 F 1.648(wing\) w)-.25 F 4.148
+(ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.947 -.15
+(ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F 1.647(wercase the pre)
+-.25 F(vious)-.25 E -.1(wo)144 180 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 192 Q
+(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 204
+R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)
+-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 216 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 228
+S(rwrite\255mode).1 E F0 -.8(To)144 240 S .438(ggle o).8 F -.15(ve)-.15
+G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e).4 F .438
+(xplicit positi)-.15 F .737 -.15(ve n)-.25 H .437(umeric ar).15 F .437
+(gument, switches to o)-.18 F -.15(ve)-.15 G .437(rwrite mode.).15 F -.4
+(Wi)144 252 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 -.15
+(ve n)-.25 H .781(umeric ar).15 F .781(gument, switches to insert mode.)
+-.18 F .781(This command af)5.781 F(fects)-.25 E(only)144 264 Q F1
+(emacs)4.395 E F0(mode;)4.395 E F1(vi)4.395 E F0 1.894(mode does o)4.395
+F -.15(ve)-.15 G 1.894(rwrite dif).15 F(ferently)-.25 E 6.894(.E)-.65 G
+1.894(ach call to)-6.894 F/F2 10/Times-Italic@0 SF -.37(re)4.394 G
+(adline\(\)).37 E F0 1.894(starts in insert)4.394 F 3.968(mode. In)144
+276 R -.15(ove)3.968 G 1.468(rwrite mode, characters bound to).15 F F1
+(self\255insert)3.969 E F0 1.469(replace the te)3.969 F 1.469
+(xt at point rather than)-.15 F .958(pushing the te)144 288 R .958
+(xt to the right.)-.15 F .957(Characters bound to)5.958 F F1
+(backward\255delete\255char)3.457 E F0 .957(replace the character)3.457
+F(before point with a space.)144 300 Q(By def)5 E
+(ault, this command is unbound.)-.1 E F1(Killing and Y)87 316.8 Q
+(anking)-.85 E(kill\255line \(C\255k\))108 328.8 Q F0(Kill the te)144
+340.8 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 352.8 Q F0(Kill backw)
+144 364.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 376.8 Q F0(Kill backw)144 388.8
 Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
 (The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
--2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 256.8 Q F0
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 400.8 Q F0
 (Kill all characters on the current line, no matter where point is.)144
-268.8 Q F1(kill\255w)108 280.8 Q(ord \(M\255d\))-.1 E F0 .729
-(Kill from point to the end of the current w)144 292.8 R .728
-(ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F .728
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 304.8 S
+412.8 Q F1(kill\255w)108 424.8 Q(ord \(M\255d\))-.1 E F0 .728
+(Kill from point to the end of the current w)144 436.8 R .729
+(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 448.8 S
 (rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
-(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 316.8 Q
-(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 328.8 Q(ord behind point.)
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 460.8 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 472.8 Q(ord behind point.)
 -.1 E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1
-(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(unix\255w)108 340.8 Q
-(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 352.8 R .364
-(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
-F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
-(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
-364.8 Q F1(unix\255\214lename\255rubout)108 376.8 Q F0 .167(Kill the w)
-144 388.8 R .166
+(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(unix\255w)108 484.8 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 496.8 R .365
+(ord behind point, using white space as a w)-.1 F .364(ord boundary)-.1
+F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15
+(ve)-.2 G 2.864(do).15 G 2.864(nt)-2.864 G(he)-2.864 E(kill-ring.)144
+508.8 Q F1(unix\255\214lename\255rubout)108 520.8 Q F0 .166(Kill the w)
+144 532.8 R .166
 (ord behind point, using white space and the slash character as the w)
--.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 400.8 Q
+-.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 544.8 Q
 (xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.)
--2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 412.8 Q F0
-(Delete all spaces and tabs around point.)144 424.8 Q F1(kill\255r)108
-436.8 Q(egion)-.18 E F0(Kill the te)144 448.8 Q(xt in the current re)
--.15 E(gion.)-.15 E F1(copy\255r)108 460.8 Q(egion\255as\255kill)-.18 E
-F0(Cop)144 472.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
+-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 556.8 Q F0
+(Delete all spaces and tabs around point.)144 568.8 Q F1(kill\255r)108
+580.8 Q(egion)-.18 E F0(Kill the te)144 592.8 Q(xt in the current re)
+-.15 E(gion.)-.15 E F1(copy\255r)108 604.8 Q(egion\255as\255kill)-.18 E
+F0(Cop)144 616.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
 (gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
-(copy\255backward\255w)108 484.8 Q(ord)-.1 E F0(Cop)144 496.8 Q 4.8(yt)
--.1 G 2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E
-(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301
-(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144
-508.8 Q(ord)-.1 E F0(.)A F1(copy\255f)108 520.8 Q(orward\255w)-.25 E
-(ord)-.1 E F0(Cop)144 532.8 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008
-(ord follo)-.1 F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25
-E 7.007(.T)-.55 G 2.007(he w)-7.007 F 2.007
-(ord boundaries are the same as)-.1 F F1 -.25(fo)4.507 G -.37(r-).25 G
-(ward\255w)144 544.8 Q(ord)-.1 E F0(.)A F1(yank \(C\255y\))108 556.8 Q
-F0 -1(Ya)144 568.8 S(nk the top of the kill ring into the b)1 E(uf)-.2 E
-(fer at point.)-.25 E F1(yank\255pop \(M\255y\))108 580.8 Q F0
-(Rotate the kill ring, and yank the ne)144 592.8 Q 2.5(wt)-.25 G 2.5
+(copy\255backward\255w)108 628.8 Q(ord)-.1 E F0(Cop)144 640.8 Q 4.801
+(yt)-.1 G 2.301(he w)-4.801 F 2.301(ord before point to the kill b)-.1 F
+(uf)-.2 E(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.3
+(ord boundaries are the same as)-.1 F F1(back-)4.8 E(ward\255w)144 652.8
+Q(ord)-.1 E F0(.)A F1(copy\255f)108 664.8 Q(orward\255w)-.25 E(ord)-.1 E
+F0(Cop)144 676.8 Q 4.507(yt)-.1 G 2.007(he w)-4.507 F 2.007(ord follo)
+-.1 F 2.007(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.008
+(.T)-.55 G 2.008(he w)-7.008 F 2.008(ord boundaries are the same as)-.1
+F F1 -.25(fo)4.508 G -.37(r-).25 G(ward\255w)144 688.8 Q(ord)-.1 E F0(.)
+A F1(yank \(C\255y\))108 700.8 Q F0 -1(Ya)144 712.8 S
+(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
+E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(38)199.835 E 0 Cg EP
+%%Page: 39 40
+%%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(yank\255pop \(M\255y\))108 84 Q F0
+(Rotate the kill ring, and yank the ne)144 96 Q 2.5(wt)-.25 G 2.5
 (op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
-F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 609.6 Q
-(guments)-.1 E(digit\255ar)108 621.6 Q
-(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641
-(Add this digit to the ar)144 633.6 R .641
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 112.8 Q
+(guments)-.1 E(digit\255ar)108 124.8 Q
+(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .642
+(Add this digit to the ar)144 136.8 R .641
 (gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
-(rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-)
--.15 E(ati)144 645.6 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 657.6 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
-(This is another w)144 669.6 R .779(ay to specify an ar)-.1 F 3.279
-(gument. If)-.18 F .779(this command is follo)3.279 F .778
+(rg)-3.141 G 3.141(ument. M\255\255).18 F .641(starts a ne)3.141 F(g-)
+-.15 E(ati)144 148.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
+(uni)108 160.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778
+(This is another w)144 172.8 R .779(ay to specify an ar)-.1 F 3.279
+(gument. If)-.18 F .779(this command is follo)3.279 F .779
 (wed by one or more digits,)-.25 F 1.376
 (optionally with a leading minus sign, those digits de\214ne the ar)144
-681.6 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-693.6 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+184.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+196.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
 3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
 (ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
--.2 F(-)-.2 E .898(wise ignored.)144 705.6 R .898
-(As a special case, if this command is immediately follo)5.898 F .898
+-.2 F(-)-.2 E .899(wise ignored.)144 208.8 R .898
+(As a special case, if this command is immediately follo)5.899 F .898
 (wed by a character that is)-.25 F .243
-(neither a digit or minus sign, the ar)144 717.6 R .243
+(neither a digit or minus sign, the ar)144 220.8 R .243
 (gument count for the ne)-.18 F .243(xt command is multiplied by four)
--.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 729.6 Q .378
+-.15 F 5.243(.T)-.55 G(he)-5.243 E(ar)144 232.8 Q .378
 (gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
 (cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
-.378(gument count)-.18 F(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91
-E(38)197.89 E 0 Cg EP
-%%Page: 39 40
-%%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(four)144 84 Q 2.5(,as)-.4 G(econd time mak)-2.5 E(es the ar)-.1 E
-(gument count sixteen, and so on.)-.18 E/F1 10/Times-Bold@0 SF
-(Completing)87 100.8 Q(complete \(T)108 112.8 Q(AB\))-.9 E F0 1.137
-(Attempt to perform completion on the te)144 124.8 R 1.137
+.378(gument count)-.18 F(four)144 244.8 Q 2.5(,as)-.4 G(econd time mak)
+-2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
+(Completing)87 261.6 Q(complete \(T)108 273.6 Q(AB\))-.9 E F0 1.137
+(Attempt to perform completion on the te)144 285.6 R 1.137
 (xt before point.)-.15 F F1(Bash)6.137 E F0 1.137
-(attempts completion treating the)3.637 F(te)144 136.8 Q .532(xt as a v)
--.15 F .532(ariable \(if the te)-.25 F .532(xt be)-.15 F .533(gins with)
--.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .533(xt be)-.15 F
-.533(gins with)-.15 F F1(~)3.033 E F0 .533(\), hostname \(if the)B(te)
-144 148.8 Q .702(xt be)-.15 F .702(gins with)-.15 F F1(@)3.202 E F0 .701
-(\), or command \(including aliases and functions\) in turn.)B .701
+(attempts completion treating the)3.637 F(te)144 297.6 Q .533(xt as a v)
+-.15 F .533(ariable \(if the te)-.25 F .533(xt be)-.15 F .533(gins with)
+-.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .532(xt be)-.15 F
+.532(gins with)-.15 F F1(~)3.032 E F0 .532(\), hostname \(if the)B(te)
+144 309.6 Q .701(xt be)-.15 F .701(gins with)-.15 F F1(@)3.201 E F0 .701
+(\), or command \(including aliases and functions\) in turn.)B .702
 (If none of these pro-)5.701 F
-(duces a match, \214lename completion is attempted.)144 160.8 Q F1
-(possible\255completions \(M\255?\))108 172.8 Q F0
-(List the possible completions of the te)144 184.8 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 196.8 Q F0 .783
-(Insert all completions of the te)144 208.8 R .783
+(duces a match, \214lename completion is attempted.)144 321.6 Q F1
+(possible\255completions \(M\255?\))108 333.6 Q F0
+(List the possible completions of the te)144 345.6 Q(xt before point.)
+-.15 E F1(insert\255completions \(M\255*\))108 357.6 Q F0 .783
+(Insert all completions of the te)144 369.6 R .783
 (xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
-.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
-220.8 Q F0(.)A F1(menu\255complete)108 232.8 Q F0 .929(Similar to)144
-244.8 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
+.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144
+381.6 Q F0(.)A F1(menu\255complete)108 393.6 Q F0 .928(Similar to)144
+405.6 R F1(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628
 F .929(ord to be completed with a single match from the list of)-.1 F
-1.193(possible completions.)144 256.8 R 1.193(Repeated e)6.193 F -.15
-(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
-(steps through the list of possible)3.694 F .829
-(completions, inserting each match in turn.)144 268.8 R .828
+1.194(possible completions.)144 417.6 R 1.194(Repeated e)6.194 F -.15
+(xe)-.15 G 1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193
+(steps through the list of possible)3.694 F .828
+(completions, inserting each match in turn.)144 429.6 R .828
 (At the end of the list of completions, the bell is rung)5.828 F .727
-(\(subject to the setting of)144 280.8 R F1(bell\255style)3.227 E F0
+(\(subject to the setting of)144 441.6 R F1(bell\255style)3.227 E F0
 3.227(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F
 .727(An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227
-E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.228 E F0 1.73
-(positions forw)144 292.8 R 1.73(ard in the list of matches; a ne)-.1 F
+E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.227 E F0 1.73
+(positions forw)144 453.6 R 1.73(ard in the list of matches; a ne)-.1 F
 -.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73
 (ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1
-E(through the list.)144 304.8 Q(This command is intended to be bound to)
+E(through the list.)144 465.6 Q(This command is intended to be bound to)
 5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E
-(ault.)-.1 E F1(delete\255char\255or\255list)108 316.8 Q F0 .234
-(Deletes the character under the cursor if not at the be)144 328.8 R
+(ault.)-.1 E F1(delete\255char\255or\255list)108 477.6 Q F0 .234
+(Deletes the character under the cursor if not at the be)144 489.6 R
 .234(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)
-2.735 E F0(\).)A .425(If at the end of the line, beha)144 340.8 R -.15
+2.734 E F0(\).)A .425(If at the end of the line, beha)144 501.6 R -.15
 (ve)-.2 G 2.925(si).15 G .425(dentically to)-2.925 F F1
 (possible\255completions)2.925 E F0 5.425(.T)C .425
-(his command is unbound)-5.425 F(by def)144 352.8 Q(ault.)-.1 E F1
-(complete\255\214lename \(M\255/\))108 364.8 Q F0
-(Attempt \214lename completion on the te)144 376.8 Q(xt before point.)
--.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 388.8 Q
-F0(List the possible completions of the te)144 400.8 Q
+(his command is unbound)-5.425 F(by def)144 513.6 Q(ault.)-.1 E F1
+(complete\255\214lename \(M\255/\))108 525.6 Q F0
+(Attempt \214lename completion on the te)144 537.6 Q(xt before point.)
+-.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 549.6 Q
+F0(List the possible completions of the te)144 561.6 Q
 (xt before point, treating it as a \214lename.)-.15 E F1
-(complete\255user)108 412.8 Q(name \(M\255~\))-.15 E F0
-(Attempt completion on the te)144 424.8 Q
+(complete\255user)108 573.6 Q(name \(M\255~\))-.15 E F0
+(Attempt completion on the te)144 585.6 Q
 (xt before point, treating it as a username.)-.15 E F1(possible\255user)
-108 436.8 Q(name\255completions \(C\255x ~\))-.15 E F0
-(List the possible completions of the te)144 448.8 Q
+108 597.6 Q(name\255completions \(C\255x ~\))-.15 E F0
+(List the possible completions of the te)144 609.6 Q
 (xt before point, treating it as a username.)-.15 E F1(complete\255v)108
-460.8 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144
-472.8 Q(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E
-F1(possible\255v)108 484.8 Q(ariable\255completions \(C\255x $\))-.1 E
-F0(List the possible completions of the te)144 496.8 Q
+621.6 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144
+633.6 Q(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E
+F1(possible\255v)108 645.6 Q(ariable\255completions \(C\255x $\))-.1 E
+F0(List the possible completions of the te)144 657.6 Q
 (xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
-(complete\255hostname \(M\255@\))108 508.8 Q F0
-(Attempt completion on the te)144 520.8 Q
+(complete\255hostname \(M\255@\))108 669.6 Q F0
+(Attempt completion on the te)144 681.6 Q
 (xt before point, treating it as a hostname.)-.15 E F1
-(possible\255hostname\255completions \(C\255x @\))108 532.8 Q F0
-(List the possible completions of the te)144 544.8 Q
-(xt before point, treating it as a hostname.)-.15 E F1
-(complete\255command \(M\255!\))108 556.8 Q F0 .58
-(Attempt completion on the te)144 568.8 R .581
-(xt before point, treating it as a command name.)-.15 F .581
-(Command comple-)5.581 F .715(tion attempts to match the te)144 580.8 R
+(possible\255hostname\255completions \(C\255x @\))108 693.6 Q F0
+(List the possible completions of the te)144 705.6 Q
+(xt before point, treating it as a hostname.)-.15 E(GNU Bash-3.2)72 768
+Q(2006 Jan 26)149.845 E(39)199.835 E 0 Cg EP
+%%Page: 40 41
+%%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(complete\255command \(M\255!\))108 84 Q F0
+.581(Attempt completion on the te)144 96 R .581
+(xt before point, treating it as a command name.)-.15 F .58
+(Command comple-)5.58 F .715(tion attempts to match the te)144 108 R
 .715(xt ag)-.15 F .715(ainst aliases, reserv)-.05 F .715(ed w)-.15 F
 .715(ords, shell functions, shell b)-.1 F .715(uiltins, and)-.2 F
-(\214nally e)144 592.8 Q -.15(xe)-.15 G
+(\214nally e)144 120 Q -.15(xe)-.15 G
 (cutable \214lenames, in that order).15 E(.)-.55 E F1
-(possible\255command\255completions \(C\255x !\))108 604.8 Q F0
-(List the possible completions of the te)144 616.8 Q
+(possible\255command\255completions \(C\255x !\))108 132 Q F0
+(List the possible completions of the te)144 144 Q
 (xt before point, treating it as a command name.)-.15 E F1
-(dynamic\255complete\255history \(M\255T)108 628.8 Q(AB\))-.9 E F0 .424
-(Attempt completion on the te)144 640.8 R .425
-(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .425
+(dynamic\255complete\255history \(M\255T)108 156 Q(AB\))-.9 E F0 .425
+(Attempt completion on the te)144 168 R .425
+(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .424
 (ainst lines from the history list)-.05 F
-(for possible completion matches.)144 652.8 Q F1
-(complete\255into\255braces \(M\255{\))108 664.8 Q F0 .4(Perform \214le\
-name completion and insert the list of possible completions enclosed wi\
-thin braces so)144 676.8 R(the list is a)144 688.8 Q -.25(va)-.2 G
+(for possible completion matches.)144 180 Q F1
+(complete\255into\255braces \(M\255{\))108 192 Q F0 .4(Perform \214lena\
+me completion and insert the list of possible completions enclosed with\
+in braces so)144 204 R(the list is a)144 216 Q -.25(va)-.2 G
 (ilable to the shell \(see).25 E F1(Brace Expansion)2.5 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 705.6 S(yboard Macr).25 E(os)-.18
-E F0(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(39)197.89 E 0 Cg
-EP
-%%Page: 40 41
-%%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(start\255kbd\255macr)108 84 Q 2.5(o\()-.18
-G(C\255x \()-2.5 E(\)).833 E F0(Be)144 96 Q(gin sa)-.15 E
+-.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 232.8 S(yboard Macr).25 E(os)-.18
+E(start\255kbd\255macr)108 244.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
+.833 E F0(Be)144 256.8 Q(gin sa)-.15 E
 (ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
-(board macro.).15 E F1(end\255kbd\255macr)108 108 Q 2.5(o\()-.18 G
-(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 120 Q
+(board macro.).15 E F1(end\255kbd\255macr)108 268.8 Q 2.5(o\()-.18 G
+(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 280.8 Q
 (ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
 (board macro and store the de\214nition.).15 E F1
-(call\255last\255kbd\255macr)108 132 Q 2.5(o\()-.18 G(C\255x e\))-2.5 E
-F0(Re-e)144 144 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)-.1
+(call\255last\255kbd\255macr)108 292.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 304.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
 G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F(typed at the k)144 156 Q -.15(ey)-.1 G(board.).15 E F1
-(Miscellaneous)87 172.8 Q -.18(re)108 184.8 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
-(Read in the contents of the)144 196.8 R/F2 10/Times-Italic@0 SF(inputr)
-4.277 E(c)-.37 E F0 1.776(\214le, and incorporate an)4.276 F 4.276(yb)
--.15 G 1.776(indings or v)-4.276 F 1.776(ariable assignments)-.25 F
-(found there.)144 208.8 Q F1(abort \(C\255g\))108 220.8 Q F0 3.248
-(Abort the current editing command and ring the terminal')144 232.8 R
-5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
-(bell\255style)144 244.8 Q F0(\).)A F1(do\255upper)108 256.8 Q
+ear as if).15 F(typed at the k)144 316.8 Q -.15(ey)-.1 G(board.).15 E F1
+(Miscellaneous)87 333.6 Q -.18(re)108 345.6 S<ad72>.18 E
+(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776
+(Read in the contents of the)144 357.6 R/F2 10/Times-Italic@0 SF(inputr)
+4.276 E(c)-.37 E F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)
+-.15 G 1.777(indings or v)-4.277 F 1.777(ariable assignments)-.25 F
+(found there.)144 369.6 Q F1(abort \(C\255g\))108 381.6 Q F0 3.249
+(Abort the current editing command and ring the terminal')144 393.6 R
+5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
+(bell\255style)144 405.6 Q F0(\).)A F1(do\255upper)108 417.6 Q
 (case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)
-C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 268.8 R F2(x)
-4.256 E F0 1.755(is lo)4.256 F 1.755
+C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 429.6 R F2(x)
+4.255 E F0 1.755(is lo)4.255 F 1.756
 (wercase, run the command that is bound to the corresponding)-.25 F
-(uppercase character)144 280.8 Q(.)-.55 E F1(pr)108 292.8 Q
-(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 304.8 Q
+(uppercase character)144 441.6 Q(.)-.55 E F1(pr)108 453.6 Q
+(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 465.6 Q
 (xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0
 (is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1
-(undo \(C\255_, C\255x C\255u\))108 316.8 Q F0
-(Incremental undo, separately remembered for each line.)144 328.8 Q F1
--2.29 -.18(re v)108 340.8 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 352.8 R 1.095(This is lik)6.095
+(undo \(C\255_, C\255x C\255u\))108 477.6 Q F0
+(Incremental undo, separately remembered for each line.)144 489.6 Q F1
+-2.29 -.18(re v)108 501.6 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 513.6 R 1.095(This is lik)6.095
 F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
 F0 1.095(command enough times to)3.595 F
-(return the line to its initial state.)144 364.8 Q F1
-(tilde\255expand \(M\255&\))108 376.8 Q F0(Perform tilde e)144 388.8 Q
+(return the line to its initial state.)144 525.6 Q F1
+(tilde\255expand \(M\255&\))108 537.6 Q F0(Perform tilde e)144 549.6 Q
 (xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 400.8 Q F0
-(Set the mark to the point.)144 412.8 Q(If a numeric ar)5 E
+(set\255mark \(C\255@, M\255<space>\))108 561.6 Q F0
+(Set the mark to the point.)144 573.6 Q(If a numeric ar)5 E
 (gument is supplied, the mark is set to that position.)-.18 E F1
-(exchange\255point\255and\255mark \(C\255x C\255x\))108 424.8 Q F0(Sw)
-144 436.8 Q .283(ap the point with the mark.)-.1 F .283
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 585.6 Q F0(Sw)
+144 597.6 Q .282(ap the point with the mark.)-.1 F .283
 (The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
-144 448.8 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 460.8 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144
-472.8 S .535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G
+2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
+144 609.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
+(character\255sear)108 621.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
+633.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G
 3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
-(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05
-(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre)
-144 484.8 Q(vious occurrences.)-.25 E F1(character\255sear)108 496.8 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 508.8 S 1.044
-(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G
+(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
+(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
+144 645.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 657.6 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 669.6 S 1.043
+(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
 3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E
+(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
 -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 520.8 Q F1
-(insert\255comment \(M\255#\))108 532.8 Q F0 -.4(Wi)144 544.8 S .48
-(thout a numeric ar).4 F .48(gument, the v)-.18 F .481
+(count searches for subsequent occurrences.)144 681.6 Q F1
+(insert\255comment \(M\255#\))108 693.6 Q F0 -.4(Wi)144 705.6 S .481
+(thout a numeric ar).4 F .481(gument, the v)-.18 F .481
 (alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va)
-2.981 G .481(riable is inserted at the).25 F(be)144 556.8 Q .098
-(ginning of the current line.)-.15 F .098(If a numeric ar)5.098 F .097
-(gument is supplied, this command acts as a toggle:)-.18 F(if)5.097 E
-.321(the characters at the be)144 568.8 R .321
+2.981 G .48(riable is inserted at the).25 F(be)144 717.6 Q .097
+(ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098
+(gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E
+.322(the characters at the be)144 729.6 R .321
 (ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
--.25 F 1.014(inserted, otherwise the characters in)144 580.8 R F1
-(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.013
-(ginning of the line.)-.15 F 1.468
-(In either case, the line is accepted as if a ne)144 592.8 R 1.468
-(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F
-1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 604.8 Q F0 .84
-(causes this command to mak)3.34 F 3.339(et)-.1 G .839
-(he current line a shell comment.)-3.339 F .839(If a numeric ar)5.839 F
-(gu-)-.18 E(ment causes the comment character to be remo)144 616.8 Q
--.15(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G
-(cuted by the shell.).15 E F1(glob\255complete\255w)108 628.8 Q
-(ord \(M\255g\))-.1 E F0 .791(The w)144 640.8 R .791
-(ord before point is treated as a pattern for pathname e)-.1 F .792
-(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144
-652.8 R(pattern is used to generate a list of matching \214le names for\
- possible completions.)2.5 E F1(glob\255expand\255w)108 664.8 Q
-(ord \(C\255x *\))-.1 E F0 .372(The w)144 676.8 R .372
-(ord before point is treated as a pattern for pathname e)-.1 F .371
-(xpansion, and the list of matching \214le)-.15 F .516
-(names is inserted, replacing the w)144 688.8 R 3.016(ord. If)-.1 F
-3.016(an)3.016 G .516(umeric ar)-3.016 F .516
-(gument is supplied, an asterisk is appended)-.18 F(before pathname e)
-144 700.8 Q(xpansion.)-.15 E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)
-122.91 E(40)197.89 E 0 Cg EP
+(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
+-.25 F(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(40)199.835 E 0 Cg EP
 %%Page: 41 42
 %%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(glob\255list\255expansions \(C\255x g\))108
-84 Q F0 .923(The list of e)144 96 R .923(xpansions that w)-.15 F .923
-(ould ha)-.1 F 1.223 -.15(ve b)-.2 H .923(een generated by).15 F F1
+-.35 E 1.013(inserted, otherwise the characters in)144 84 R/F1 10
+/Times-Bold@0 SF(comment-begin)3.514 E F0 1.014(are deleted from the be)
+3.514 F 1.014(ginning of the line.)-.15 F 1.469
+(In either case, the line is accepted as if a ne)144 96 R 1.468
+(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F
+1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 108 Q F0 .839
+(causes this command to mak)3.339 F 3.339(et)-.1 G .839
+(he current line a shell comment.)-3.339 F .84(If a numeric ar)5.84 F
+(gu-)-.18 E(ment causes the comment character to be remo)144 120 Q -.15
+(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G
+(cuted by the shell.).15 E F1(glob\255complete\255w)108 132 Q
+(ord \(M\255g\))-.1 E F0 .792(The w)144 144 R .791
+(ord before point is treated as a pattern for pathname e)-.1 F .791
+(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 156
+R(pattern is used to generate a list of matching \214le names for possi\
+ble completions.)2.5 E F1(glob\255expand\255w)108 168 Q
+(ord \(C\255x *\))-.1 E F0 .371(The w)144 180 R .372
+(ord before point is treated as a pattern for pathname e)-.1 F .372
+(xpansion, and the list of matching \214le)-.15 F .516
+(names is inserted, replacing the w)144 192 R 3.016(ord. If)-.1 F 3.016
+(an)3.016 G .516(umeric ar)-3.016 F .516
+(gument is supplied, an asterisk is appended)-.18 F(before pathname e)
+144 204 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
+108 216 Q F0 .923(The list of e)144 228 R .923(xpansions that w)-.15 F
+.923(ould ha)-.1 F 1.223 -.15(ve b)-.2 H .923(een generated by).15 F F1
 (glob\255expand\255w)3.423 E(ord)-.1 E F0 .923(is displayed, and)3.423 F
-.872(the line is redra)144 108 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
+.872(the line is redra)144 240 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
 .872(umeric ar)-3.372 F .872
 (gument is supplied, an asterisk is appended before pathname)-.18 F -.15
-(ex)144 120 S(pansion.).15 E F1(dump\255functions)108 132 Q F0 .627
-(Print all of the functions and their k)144 144 R .927 -.15(ey b)-.1 H
-.626(indings to the readline output stream.).15 F .626(If a numeric ar)
-5.626 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 156 Q
+(ex)144 252 S(pansion.).15 E F1(dump\255functions)108 264 Q F0 .626
+(Print all of the functions and their k)144 276 R .926 -.15(ey b)-.1 H
+.627(indings to the readline output stream.).15 F .627(If a numeric ar)
+5.627 F(gu-)-.18 E
+(ment is supplied, the output is formatted in such a w)144 288 Q
 (ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 168 Q(ariables)-.1 E F0
-1.799(Print all of the settable readline v)144 180 R 1.799
-(ariables and their v)-.25 F 1.8(alues to the readline output stream.)
--.25 F 1.8(If a)6.8 F .305(numeric ar)144 192 R .304
+2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 300 Q(ariables)-.1 E F0
+1.8(Print all of the settable readline v)144 312 R 1.799
+(ariables and their v)-.25 F 1.799(alues to the readline output stream.)
+-.25 F 1.799(If a)6.799 F .304(numeric ar)144 324 R .304
 (gument is supplied, the output is formatted in such a w)-.18 F .304
-(ay that it can be made part of an)-.1 F F2(inputr)144 204 Q(c)-.37 E F0
-(\214le.)2.5 E F1(dump\255macr)108 216 Q(os)-.18 E F0 .592
-(Print all of the readline k)144 228 R .892 -.15(ey s)-.1 H .592
-(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G
-3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 240 Q
+(ay that it can be made part of an)-.1 F F2(inputr)144 336 Q(c)-.37 E F0
+(\214le.)2.5 E F1(dump\255macr)108 348 Q(os)-.18 E F0 .593
+(Print all of the readline k)144 360 R .893 -.15(ey s)-.1 H .592
+(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G
+3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 372 Q
 .528(gument is supplied, the output is formatted in such a w)-.18 F .528
-(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
-(\214le.)144 252 Q F1(display\255shell\255v)108 264 Q
-(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 276 Q
+(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
+(\214le.)144 384 Q F1(display\255shell\255v)108 396 Q
+(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 408 Q
 (ersion information about the current instance of)-.15 E F1(bash)2.5 E
-F0(.)A F1(Pr)87 292.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108
-304.8 R .147(ord completion is attempted for an ar)-.1 F .147
+F0(.)A F1(Pr)87 424.8 Q(ogrammable Completion)-.18 E F0 .147(When w)108
+436.8 R .147(ord completion is attempted for an ar)-.1 F .147
 (gument to a command for which a completion speci\214cation \(a)-.18 F
-F2(compspec)108 316.8 Q F0 3.829(\)h)C 1.329
-(as been de\214ned using the)-3.829 F F1(complete)3.829 E F0 -.2(bu)
+F2(compspec)108 448.8 Q F0 3.828(\)h)C 1.329
+(as been de\214ned using the)-3.828 F F1(complete)3.829 E F0 -.2(bu)
 3.829 G 1.329(iltin \(see).2 F/F3 9/Times-Bold@0 SF 1.329(SHELL B)3.829
-F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.328(w\), the)
--.25 F(programmable completion f)108 328.8 Q(acilities are in)-.1 E -.2
-(vo)-.4 G -.1(ke).2 G(d.).1 E .333
-(First, the command name is identi\214ed.)108 345.6 R .334
+F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.329(w\), the)
+-.25 F(programmable completion f)108 460.8 Q(acilities are in)-.1 E -.2
+(vo)-.4 G -.1(ke).2 G(d.).1 E .334
+(First, the command name is identi\214ed.)108 477.6 R .333
 (If a compspec has been de\214ned for that command, the compspec is)
-5.333 F .587
-(used to generate the list of possible completions for the w)108 357.6 R
-3.087(ord. If)-.1 F .587(the command w)3.087 F .586
-(ord is a full pathname, a)-.1 F 1.18
-(compspec for the full pathname is searched for \214rst.)108 369.6 R
-1.181(If no compspec is found for the full pathname, an)6.181 F
-(attempt is made to \214nd a compspec for the portion follo)108 381.6 Q
+5.334 F .587
+(used to generate the list of possible completions for the w)108 489.6 R
+3.087(ord. If)-.1 F .587(the command w)3.087 F .587
+(ord is a full pathname, a)-.1 F 1.181
+(compspec for the full pathname is searched for \214rst.)108 501.6 R
+1.18(If no compspec is found for the full pathname, an)6.181 F
+(attempt is made to \214nd a compspec for the portion follo)108 513.6 Q
 (wing the \214nal slash.)-.25 E .817(Once a compspec has been found, it\
- is used to generate the list of matching w)108 398.4 R 3.317(ords. If)
+ is used to generate the list of matching w)108 530.4 R 3.317(ords. If)
 -.1 F 3.317(ac)3.317 G .817(ompspec is not)-3.317 F(found, the def)108
-410.4 Q(ault)-.1 E F1(bash)2.5 E F0(completion as described abo)2.5 E .3
+542.4 Q(ault)-.1 E F1(bash)2.5 E F0(completion as described abo)2.5 E .3
 -.15(ve u)-.15 H(nder).15 E F1(Completing)2.5 E F0(is performed.)2.5 E
-.463(First, the actions speci\214ed by the compspec are used.)108 427.2
-R .464(Only matches which are pre\214x)5.464 F .464(ed by the w)-.15 F
-.464(ord being)-.1 F .596(completed are returned.)108 439.2 R .596
-(When the)5.596 F F1<ad66>3.096 E F0(or)3.095 E F1<ad64>3.095 E F0 .595
+.464(First, the actions speci\214ed by the compspec are used.)108 559.2
+R .463(Only matches which are pre\214x)5.464 F .463(ed by the w)-.15 F
+.463(ord being)-.1 F .595(completed are returned.)108 571.2 R .595
+(When the)5.595 F F1<ad66>3.095 E F0(or)3.095 E F1<ad64>3.095 E F0 .596
 (option is used for \214lename or directory name completion, the)3.095 F
-(shell v)108 451.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
-(is used to \214lter the matches.)2.25 E(An)108 468 Q 2.585(yc)-.15 G
+(shell v)108 583.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
+(is used to \214lter the matches.)2.25 E(An)108 600 Q 2.585(yc)-.15 G
 .085(ompletions speci\214ed by a \214lename e)-2.585 F .085
 (xpansion pattern to the)-.15 F F1<ad47>2.585 E F0 .085
 (option are generated ne)2.585 F 2.585(xt. The)-.15 F -.1(wo)2.585 G
-(rds).1 E .844(generated by the pattern need not match the w)108 480 R
-.844(ord being completed.)-.1 F(The)5.844 E F3(GLOBIGNORE)3.343 E F0
-.843(shell v)3.093 F .843(ariable is)-.25 F
-(not used to \214lter the matches, b)108 492 Q(ut the)-.2 E F3(FIGNORE)
-2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 508.8 Q .32
-(xt, the string speci\214ed as the ar)-.15 F .32(gument to the)-.18 F F1
-<ad57>2.82 E F0 .321(option is considered.)2.821 F .321
-(The string is \214rst split using the)5.321 F .413(characters in the)
-108 520.8 R F3(IFS)2.913 E F0 .412(special v)2.663 F .412
+(rds).1 E .843(generated by the pattern need not match the w)108 612 R
+.844(ord being completed.)-.1 F(The)5.844 E F3(GLOBIGNORE)3.344 E F0
+.844(shell v)3.094 F .844(ariable is)-.25 F
+(not used to \214lter the matches, b)108 624 Q(ut the)-.2 E F3(FIGNORE)
+2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 640.8 Q .321
+(xt, the string speci\214ed as the ar)-.15 F .321(gument to the)-.18 F
+F1<ad57>2.821 E F0 .32(option is considered.)2.821 F .32
+(The string is \214rst split using the)5.32 F .412(characters in the)108
+652.8 R F3(IFS)2.912 E F0 .412(special v)2.662 F .412
 (ariable as delimiters.)-.25 F .412(Shell quoting is honored.)5.412 F
-.412(Each w)5.412 F .412(ord is then e)-.1 F(xpanded)-.15 E .091
-(using brace e)108 532.8 R .091(xpansion, tilde e)-.15 F .092
-(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .092
-(xpansion, command substitution, and arith-)-.15 F 1.397(metic e)108
-544.8 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H
+.413(Each w)5.412 F .413(ord is then e)-.1 F(xpanded)-.15 E .092
+(using brace e)108 664.8 R .092(xpansion, tilde e)-.15 F .092
+(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .091
+(xpansion, command substitution, and arith-)-.15 F 1.396(metic e)108
+676.8 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H
 (nder).15 E F3(EXP)3.896 E(ANSION)-.666 E/F4 9/Times-Roman@0 SF(.)A F0
 1.396(The results are split using the rules described)5.896 F(abo)108
-556.8 Q .509 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.709 G .209
-(rd Splitting).75 F F0 5.209(.T)C .209(he results of the e)-5.209 F .209
-(xpansion are pre\214x-matched ag)-.15 F .21(ainst the w)-.05 F .21
-(ord being com-)-.1 F(pleted, and the matching w)108 568.8 Q
-(ords become the possible completions.)-.1 E 1.238
-(After these matches ha)108 585.6 R 1.538 -.15(ve b)-.2 H 1.238
-(een generated, an).15 F 3.738(ys)-.15 G 1.237
-(hell function or command speci\214ed with the)-3.738 F F1<ad46>3.737 E
-F0(and)3.737 E F1<ad43>3.737 E F0 .513(options is in)108 597.6 R -.2(vo)
--.4 G -.1(ke).2 G 3.013(d. When).1 F .513(the command or function is in)
-3.013 F -.2(vo)-.4 G -.1(ke).2 G .513(d, the).1 F F3(COMP_LINE)3.013 E
-F0(and)2.763 E F3(COMP_POINT)3.013 E F0 -.25(va)2.763 G(ri-).25 E .873
-(ables are assigned v)108 609.6 R .873(alues as described abo)-.25 F
-1.173 -.15(ve u)-.15 H(nder).15 E F1 .872(Shell V)3.373 F(ariables)-.92
-E F0 5.872(.I)C 3.372(fas)-5.872 G .872(hell function is being in)-3.372
-F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E(the)108 621.6 Q F3(COMP_W)5.26 E
-(ORDS)-.09 E F0(and)5.01 E F3(COMP_CW)5.26 E(ORD)-.09 E F0 -.25(va)5.01
-G 2.76(riables are also set.).25 F 2.76(When the function or command is)
-7.76 F(in)108 633.6 Q -.2(vo)-.4 G -.1(ke).2 G .404(d, the \214rst ar).1
-F .404(gument is the name of the command whose ar)-.18 F .403
-(guments are being completed, the second)-.18 F(ar)108 645.6 Q .52
-(gument is the w)-.18 F .52(ord being completed, and the third ar)-.1 F
-.52(gument is the w)-.18 F .52(ord preceding the w)-.1 F .52
-(ord being com-)-.1 F .104(pleted on the current command line.)108 657.6
-R .104(No \214ltering of the generated completions ag)5.104 F .103
-(ainst the w)-.05 F .103(ord being com-)-.1 F(pleted is performed; the \
-function or command has complete freedom in generating the matches.)108
-669.6 Q(An)108 686.4 Q 2.937(yf)-.15 G .437(unction speci\214ed with)
--2.937 F F1<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G
-2.937<648c>.1 G 2.937(rst. The)-2.937 F .437(function may use an)2.937 F
-2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .438
-(acilities, including)-.1 F(the)108 698.4 Q F1(compgen)2.957 E F0 -.2
-(bu)2.957 G .457(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956
-(og).65 G .456(enerate the matches.)-2.956 F .456
-(It must put the possible completions in the)5.456 F F3(COMPREPL)108
-710.4 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 727.2 Q 1.4
-(xt, an)-.15 F 3.9(yc)-.15 G 1.4(ommand speci\214ed with the)-3.9 F F1
-<ad43>3.901 E F0 1.401(option is in)3.901 F -.2(vo)-.4 G -.1(ke).2 G
-3.901(di).1 G 3.901(na)-3.901 G 3.901(ne)-3.901 G -.4(nv)-3.901 G 1.401
-(ironment equi).4 F -.25(va)-.25 G 1.401(lent to command).25 F
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(41)197.89 E 0 Cg EP
+688.8 Q .51 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.71 G .21
+(rd Splitting).75 F F0 5.21(.T)C .209(he results of the e)-5.21 F .209
+(xpansion are pre\214x-matched ag)-.15 F .209(ainst the w)-.05 F .209
+(ord being com-)-.1 F(pleted, and the matching w)108 700.8 Q
+(ords become the possible completions.)-.1 E 1.237
+(After these matches ha)108 717.6 R 1.537 -.15(ve b)-.2 H 1.237
+(een generated, an).15 F 3.737(ys)-.15 G 1.238
+(hell function or command speci\214ed with the)-3.737 F F1<ad46>3.738 E
+F0(and)3.738 E F1<ad43>3.738 E F0 2.159(options is in)108 729.6 R -.2
+(vo)-.4 G -.1(ke).2 G 4.659(d. When).1 F 2.159
+(the command or function is in)4.659 F -.2(vo)-.4 G -.1(ke).2 G 2.158
+(d, the).1 F F3(COMP_LINE)4.658 E F0(and)4.408 E F3(COMP_POINT)4.658 E
+F0(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(41)199.835 E 0 Cg EP
 %%Page: 42 43
 %%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 3.289(substitution. It)108 84 R .788(should print a list of comp\
-letions, one per line, to the standard output.)3.289 F .788
-(Backslash may be)5.788 F(used to escape a ne)108 96 Q
-(wline, if necessary)-.25 E(.)-.65 E .376
-(After all of the possible completions are generated, an)108 112.8 R
-2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F/F1 10
-/Times-Bold@0 SF<ad58>2.877 E F0 .377(option is applied to the)2.877 F
-3.182(list. The)108 124.8 R .682
-(\214lter is a pattern as used for pathname e)3.182 F .681(xpansion; a)
--.15 F F1(&)3.181 E F0 .681(in the pattern is replaced with the te)3.181
-F .681(xt of)-.15 F .522(the w)108 136.8 R .522(ord being completed.)-.1
-F 3.022(Al)5.522 G(iteral)-3.022 E F1(&)3.022 E F0 .523
+-.35 E -.25(va)108 84 S 2.345(riables are assigned v).25 F 2.345
+(alues as described abo)-.25 F 2.645 -.15(ve u)-.15 H(nder).15 E/F1 10
+/Times-Bold@0 SF 2.345(Shell V)4.845 F(ariables)-.92 E F0 7.345(.I)C
+4.846(fas)-7.345 G 2.346(hell function is being)-4.846 F(in)108 96 Q -.2
+(vo)-.4 G -.1(ke).2 G .657(d, the).1 F/F2 9/Times-Bold@0 SF(COMP_W)3.157
+E(ORDS)-.09 E F0(and)2.907 E F2(COMP_CW)3.157 E(ORD)-.09 E F0 -.25(va)
+2.906 G .656(riables are also set.).25 F .656
+(When the function or command)5.656 F .527(is in)108 108 R -.2(vo)-.4 G
+-.1(ke).2 G .527(d, the \214rst ar).1 F .527
+(gument is the name of the command whose ar)-.18 F .527
+(guments are being completed, the sec-)-.18 F .847(ond ar)108 120 R .847
+(gument is the w)-.18 F .847(ord being completed, and the third ar)-.1 F
+.846(gument is the w)-.18 F .846(ord preceding the w)-.1 F .846
+(ord being)-.1 F .499(completed on the current command line.)108 132 R
+.499(No \214ltering of the generated completions ag)5.499 F .5
+(ainst the w)-.05 F .5(ord being)-.1 F(completed is performed; the func\
+tion or command has complete freedom in generating the matches.)108 144
+Q(An)108 160.8 Q 2.938(yf)-.15 G .437(unction speci\214ed with)-2.938 F
+F1<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G 2.937
+<648c>.1 G 2.937(rst. The)-2.937 F .437(function may use an)2.937 F
+2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .437
+(acilities, including)-.1 F(the)108 172.8 Q F1(compgen)2.956 E F0 -.2
+(bu)2.956 G .456(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956
+(og).65 G .456(enerate the matches.)-2.956 F .457
+(It must put the possible completions in the)5.456 F F2(COMPREPL)108
+184.8 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 201.6 Q .081
+(xt, an)-.15 F 2.581(yc)-.15 G .081(ommand speci\214ed with the)-2.581 F
+F1<ad43>2.581 E F0 .081(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G
+2.581(di).1 G 2.58(na)-2.581 G 2.58(ne)-2.58 G -.4(nv)-2.58 G .08
+(ironment equi).4 F -.25(va)-.25 G .08(lent to command sub-).25 F 2.858
+(stitution. It)108 213.6 R .359(should print a list of completions, one\
+ per line, to the standard output.)2.858 F .359(Backslash may be used)
+5.359 F(to escape a ne)108 225.6 Q(wline, if necessary)-.25 E(.)-.65 E
+.377(After all of the possible completions are generated, an)108 242.4 R
+2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F1<ad58>2.876
+E F0 .376(option is applied to the)2.876 F 3.181(list. The)108 254.4 R
+.681(\214lter is a pattern as used for pathname e)3.181 F .681
+(xpansion; a)-.15 F F1(&)3.181 E F0 .682
+(in the pattern is replaced with the te)3.182 F .682(xt of)-.15 F .523
+(the w)108 266.4 R .523(ord being completed.)-.1 F 3.023(Al)5.523 G
+(iteral)-3.023 E F1(&)3.023 E F0 .522
 (may be escaped with a backslash; the backslash is remo)3.022 F -.15(ve)
--.15 G 3.023(db).15 G(efore)-3.023 E .85(attempting a match.)108 148.8 R
-(An)5.85 E 3.35(yc)-.15 G .849
-(ompletion that matches the pattern will be remo)-3.35 F -.15(ve)-.15 G
-3.349(df).15 G .849(rom the list.)-3.349 F 3.349(Al)5.849 G(eading)
--3.349 E F1(!)3.349 E F0(ne)108 160.8 Q -.05(ga)-.15 G
+-.15 G 3.022(db).15 G(efore)-3.022 E .849(attempting a match.)108 278.4
+R(An)5.849 E 3.349(yc)-.15 G .849
+(ompletion that matches the pattern will be remo)-3.349 F -.15(ve)-.15 G
+3.35(df).15 G .85(rom the list.)-3.35 F 3.35(Al)5.85 G(eading)-3.35 E F1
+(!)3.35 E F0(ne)108 290.4 Q -.05(ga)-.15 G
 (tes the pattern; in this case an).05 E 2.5(yc)-.15 G
 (ompletion not matching the pattern will be remo)-2.5 E -.15(ve)-.15 G
-(d.).15 E(Finally)108 177.6 Q 3.086(,a)-.65 G .886 -.15(ny p)-3.086 H
-.586(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F1
+(d.).15 E(Finally)108 307.2 Q 3.087(,a)-.65 G .887 -.15(ny p)-3.087 H
+.587(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F1
 <ad50>3.087 E F0(and)3.087 E F1<ad53>3.087 E F0 .587
 (options are added to each member of the com-)3.087 F(pletion list, and\
  the result is returned to the readline completion code as the list of \
-possible completions.)108 189.6 Q .247(If the pre)108 206.4 R .247
+possible completions.)108 319.2 Q .246(If the pre)108 336 R .247
 (viously-applied actions do not generate an)-.25 F 2.747(ym)-.15 G .247
 (atches, and the)-2.747 F F1 .247(\255o dir)2.747 F(names)-.15 E F0 .247
-(option w)2.747 F .246(as supplied to)-.1 F F1(complete)108 218.4 Q F0
+(option w)2.747 F .247(as supplied to)-.1 F F1(complete)108 348 Q F0
 (when the compspec w)2.5 E
-(as de\214ned, directory name completion is attempted.)-.1 E .461
-(If the)108 235.2 R F1 .462(\255o plusdirs)2.961 F F0 .462(option w)
+(as de\214ned, directory name completion is attempted.)-.1 E .462
+(If the)108 364.8 R F1 .462(\255o plusdirs)2.962 F F0 .462(option w)
 2.962 F .462(as supplied to)-.1 F F1(complete)2.962 E F0 .462
 (when the compspec w)2.962 F .462(as de\214ned, directory name com-)-.1
-F(pletion is attempted and an)108 247.2 Q 2.5(ym)-.15 G
-(atches are added to the results of the other actions.)-2.5 E .56
-(By def)108 264 R .56(ault, if a compspec is found, whate)-.1 F -.15(ve)
--.25 G 3.06(ri).15 G 3.06(tg)-3.06 G .559
-(enerates is returned to the completion code as the full set)-3.06 F
-.631(of possible completions.)108 276 R .631(The def)5.631 F(ault)-.1 E
-F1(bash)3.131 E F0 .631
-(completions are not attempted, and the readline def)3.131 F .632
-(ault of \214le-)-.1 F .559(name completion is disabled.)108 288 R .559
-(If the)5.559 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w)3.059
-F .559(as supplied to)-.1 F F1(complete)3.058 E F0 .558
-(when the compspec)3.058 F -.1(wa)108 300 S 3.171(sd).1 G .671
-(e\214ned, the)-3.171 F F1(bash)3.171 E F0(def)3.171 E .671
+F(pletion is attempted and an)108 376.8 Q 2.5(ym)-.15 G
+(atches are added to the results of the other actions.)-2.5 E .559
+(By def)108 393.6 R .559(ault, if a compspec is found, whate)-.1 F -.15
+(ve)-.25 G 3.059(ri).15 G 3.059(tg)-3.059 G .56
+(enerates is returned to the completion code as the full set)-3.059 F
+.632(of possible completions.)108 405.6 R .632(The def)5.632 F(ault)-.1
+E F1(bash)3.132 E F0 .631
+(completions are not attempted, and the readline def)3.131 F .631
+(ault of \214le-)-.1 F .558(name completion is disabled.)108 417.6 R
+.558(If the)5.558 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w)
+3.059 F .559(as supplied to)-.1 F F1(complete)3.059 E F0 .559
+(when the compspec)3.059 F -.1(wa)108 429.6 S 3.172(sd).1 G .672
+(e\214ned, the)-3.172 F F1(bash)3.172 E F0(def)3.172 E .671
 (ault completions are attempted if the compspec generates no matches.)
--.1 F .672(If the)5.672 F F1<ad6f>3.172 E(default)108 312 Q F0 1.207
-(option w)3.707 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0
+-.1 F .671(If the)5.671 F F1<ad6f>3.171 E(default)108 441.6 Q F0 1.207
+(option w)3.706 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0
 1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F
-3.707(sd)-.55 G(ef)-3.707 E 1.206(ault completion)-.1 F
-(will be performed if the compspec \(and, if attempted, the def)108 324
-Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)2.5 E
-.245(When a compspec indicates that directory name completion is desire\
-d, the programmable completion func-)108 340.8 R .633(tions force readl\
-ine to append a slash to completed names which are symbolic links to di\
-rectories, subject)108 352.8 R 2.761(to the v)108 364.8 R 2.761
-(alue of the)-.25 F F1(mark\255dir)5.261 E(ectories)-.18 E F0 2.761
-(readline v)5.261 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.762
-(rdless of the setting of the).05 F F1(mark-sym-)5.262 E(link)108 376.8
-Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E/F2
-10.95/Times-Bold@0 SF(HIST)72 393.6 Q(OR)-.197 E(Y)-.383 E F0 .372
-(When the)108 405.6 R F1 .372(\255o history)2.872 F F0 .372
-(option to the)2.872 F F1(set)2.872 E F0 -.2(bu)2.872 G .372
-(iltin is enabled, the shell pro).2 F .371(vides access to the)-.15 F/F3
-10/Times-Italic@0 SF .371(command history)2.871 F F0(,)A .031
-(the list of commands pre)108 417.6 R .031(viously typed.)-.25 F .031
+3.707(sd)-.55 G(ef)-3.707 E 1.207(ault completion)-.1 F
+(will be performed if the compspec \(and, if attempted, the def)108
+453.6 Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)
+2.5 E .245(When a compspec indicates that directory name completion is \
+desired, the programmable completion func-)108 470.4 R .632(tions force\
+ readline to append a slash to completed names which are symbolic links\
+ to directories, subject)108 482.4 R 2.762(to the v)108 494.4 R 2.762
+(alue of the)-.25 F F1(mark\255dir)5.262 E(ectories)-.18 E F0 2.761
+(readline v)5.262 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.761
+(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 506.4
+Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E/F3
+10.95/Times-Bold@0 SF(HIST)72 523.2 Q(OR)-.197 E(Y)-.383 E F0 .371
+(When the)108 535.2 R F1 .371(\255o history)2.871 F F0 .371
+(option to the)2.871 F F1(set)2.872 E F0 -.2(bu)2.872 G .372
+(iltin is enabled, the shell pro).2 F .372(vides access to the)-.15 F/F4
+10/Times-Italic@0 SF .372(command history)2.872 F F0(,)A .032
+(the list of commands pre)108 547.2 R .031(viously typed.)-.25 F .031
 (The v)5.031 F .031(alue of the)-.25 F F1(HISTSIZE)2.531 E F0 -.25(va)
-2.531 G .031(riable is used as the number of com-).25 F .43(mands to sa)
-108 429.6 R .73 -.15(ve i)-.2 H 2.93(nah).15 G .43(istory list.)-2.93 F
-.43(The te)5.43 F .429(xt of the last)-.15 F/F4 9/Times-Bold@0 SF
-(HISTSIZE)2.929 E F0 .429(commands \(def)2.679 F .429(ault 500\) is sa)
--.1 F -.15(ve)-.2 G 2.929(d. The).15 F(shell)2.929 E .287
+2.531 G .031(riable is used as the number of com-).25 F .429
+(mands to sa)108 559.2 R .729 -.15(ve i)-.2 H 2.929(nah).15 G .429
+(istory list.)-2.929 F .429(The te)5.429 F .429(xt of the last)-.15 F F2
+(HISTSIZE)2.93 E F0 .43(commands \(def)2.68 F .43(ault 500\) is sa)-.1 F
+-.15(ve)-.2 G 2.93(d. The).15 F(shell)2.93 E .287
 (stores each command in the history list prior to parameter and v)108
-441.6 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F4(EXP)2.787 E
-(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 453.6
-S 4.066(ta).2 G 1.565(fter history e)-4.066 F 1.565
+571.2 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F2(EXP)2.787 E
+(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 583.2
+S 4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565
 (xpansion is performed, subject to the v)-.15 F 1.565
-(alues of the shell v)-.25 F(ariables)-.25 E F4(HISTIGNORE)4.065 E F0
-(and)3.815 E F4(HISTCONTR)108 465.6 Q(OL)-.27 E/F5 9/Times-Roman@0 SF(.)
+(alues of the shell v)-.25 F(ariables)-.25 E F2(HISTIGNORE)4.065 E F0
+(and)3.816 E F2(HISTCONTR)108 595.2 Q(OL)-.27 E/F5 9/Times-Roman@0 SF(.)
 A F0 .082
 (On startup, the history is initialized from the \214le named by the v)
-108 482.4 R(ariable)-.25 E F4(HISTFILE)2.583 E F0(\(def)2.333 E(ault)-.1
-E F3(~/.bash_history)2.583 E F0(\).)A .315(The \214le named by the v)108
-494.4 R .315(alue of)-.25 F F4(HISTFILE)2.815 E F0 .315
+108 612 R(ariable)-.25 E F2(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1 E
+F4(~/.bash_history)2.582 E F0(\).)A .315(The \214le named by the v)108
+624 R .315(alue of)-.25 F F2(HISTFILE)2.815 E F0 .315
 (is truncated, if necessary)2.565 F 2.815(,t)-.65 G 2.815(oc)-2.815 G
-.315(ontain no more than the number of)-2.815 F .952
-(lines speci\214ed by the v)108 506.4 R .953(alue of)-.25 F F4
+.315(ontain no more than the number of)-2.815 F .953
+(lines speci\214ed by the v)108 636 R .953(alue of)-.25 F F2
 (HISTFILESIZE)3.453 E F5(.)A F0 .953(When an interacti)5.453 F 1.253
--.15(ve s)-.25 H .953(hell e).15 F .953(xits, the last)-.15 F F4
-($HISTSIZE)3.453 E F0(lines)3.203 E .65
-(are copied from the history list to)108 518.4 R F4($HISTFILE)3.15 E F5
-(.)A F0 .65(If the)5.15 F F1(histappend)3.15 E F0 .649
-(shell option is enabled \(see the descrip-)3.15 F .141(tion of)108
-530.4 R F1(shopt)2.641 E F0(under)2.641 E F4 .141(SHELL B)2.641 F(UIL)
--.09 E .141(TIN COMMANDS)-.828 F F0(belo)2.391 E .141
+-.15(ve s)-.25 H .953(hell e).15 F .953(xits, the last)-.15 F F2
+($HISTSIZE)3.452 E F0(lines)3.202 E .649
+(are copied from the history list to)108 648 R F2($HISTFILE)3.15 E F5(.)
+A F0 .65(If the)5.15 F F1(histappend)3.15 E F0 .65
+(shell option is enabled \(see the descrip-)3.15 F .141(tion of)108 660
+R F1(shopt)2.641 E F0(under)2.641 E F2 .141(SHELL B)2.641 F(UIL)-.09 E
+.141(TIN COMMANDS)-.828 F F0(belo)2.391 E .141
 (w\), the lines are appended to the history \214le, other)-.25 F(-)-.2 E
-.573(wise the history \214le is o)108 542.4 R -.15(ve)-.15 G 3.073
-(rwritten. If).15 F F4(HISTFILE)3.073 E F0 .573
+.572(wise the history \214le is o)108 672 R -.15(ve)-.15 G 3.073
+(rwritten. If).15 F F2(HISTFILE)3.073 E F0 .573
 (is unset, or if the history \214le is unwritable, the history is)2.823
-F 1.141(not sa)108 554.4 R -.15(ve)-.2 G 3.641(d. After).15 F(sa)3.641 E
-1.141(ving the history)-.2 F 3.641(,t)-.65 G 1.142
-(he history \214le is truncated to contain no more than)-3.641 F F4
-(HISTFILESIZE)3.642 E F0 2.5(lines. If)108 566.4 R F4(HISTFILESIZE)2.5 E
-F0(is not set, no truncation is performed.)2.25 E 1.294(The b)108 583.2
-R 1.294(uiltin command)-.2 F F1(fc)3.794 E F0(\(see)3.794 E F4 1.293
-(SHELL B)3.794 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo)3.543 E
-1.293(w\) may be used to list or edit and re-)-.25 F -.15(exe)108 595.2
-S .673(cute a portion of the history list.).15 F(The)5.673 E F1(history)
+F 1.142(not sa)108 684 R -.15(ve)-.2 G 3.642(d. After).15 F(sa)3.642 E
+1.142(ving the history)-.2 F 3.642(,t)-.65 G 1.141
+(he history \214le is truncated to contain no more than)-3.642 F F2
+(HISTFILESIZE)3.641 E F0 2.5(lines. If)108 696 R F2(HISTFILESIZE)2.5 E
+F0(is not set, no truncation is performed.)2.25 E 1.293(The b)108 712.8
+R 1.293(uiltin command)-.2 F F1(fc)3.793 E F0(\(see)3.793 E F2 1.293
+(SHELL B)3.793 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo)3.543 E
+1.294(w\) may be used to list or edit and re-)-.25 F -.15(exe)108 724.8
+S .674(cute a portion of the history list.).15 F(The)5.673 E F1(history)
 3.173 E F0 -.2(bu)3.173 G .673
-(iltin may be used to display or modify the history list).2 F .28
-(and manipulate the history \214le.)108 607.2 R .279
-(When using command-line editing, search commands are a)5.279 F -.25(va)
--.2 G .279(ilable in each).25 F(editing mode that pro)108 619.2 Q
-(vide access to the history list.)-.15 E 1.485(The shell allo)108 636 R
-1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
-(hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt)
--3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F4(HISTCONTR)3.986
-E(OL)-.27 E F0(and)3.736 E F4(HISTIGNORE)108 648 Q F0 -.25(va)2.708 G
-.458(riables may be set to cause the shell to sa).25 F .757 -.15(ve o)
--.2 H .457(nly a subset of the commands entered.).15 F(The)5.457 E F1
-(cmdhist)108 660 Q F0 .75
-(shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05
--.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077
-(the same history entry)108 672 R 3.577(,a)-.65 G 1.077
-(dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G
-1.077(yntactic correctness.)-3.577 F(The)6.077 E F1(lithist)3.576 E F0
-.373(shell option causes the shell to sa)108 684 R .674 -.15(ve t)-.2 H
-.374(he command with embedded ne).15 F .374
-(wlines instead of semicolons.)-.25 F .374(See the)5.374 F .319
-(description of the)108 696 R F1(shopt)2.819 E F0 -.2(bu)2.819 G .318
-(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F4 .318(SHELL B)2.818 F
-(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .318
-(for information on setting and)2.568 F(unsetting shell options.)108 708
-Q(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(42)197.89 E 0 Cg EP
+(iltin may be used to display or modify the history list).2 F
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(42)199.835 E 0 Cg EP
 %%Page: 43 44
 %%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.95/Times-Bold@0 SF(HIST)72 84 Q(OR)-.197 E 2.738(YE)-.383 G
-(XP)-2.738 E(ANSION)-.81 E F0 .61(The shell supports a history e)108 96
-R .611(xpansion feature that is similar to the history e)-.15 F .611
-(xpansion in)-.15 F/F2 10/Times-Bold@0 SF(csh.)3.111 E F0 .611
-(This section)5.611 F .871(describes what syntax features are a)108 108
-R -.25(va)-.2 G 3.371(ilable. This).25 F .871(feature is enabled by def)
-3.371 F .87(ault for interacti)-.1 F 1.17 -.15(ve s)-.25 H .87
-(hells, and).15 F 2.013(can be disabled using the)108 120 R F2(+H)4.514
-E F0 2.014(option to the)4.514 F F2(set)4.514 E F0 -.2(bu)4.514 G 2.014
-(iltin command \(see).2 F/F3 9/Times-Bold@0 SF 2.014(SHELL B)4.514 F
-(UIL)-.09 E 2.014(TIN COMMANDS)-.828 F F0(belo)108 132 Q 2.5
-(w\). Non-interacti)-.25 F .3 -.15(ve s)-.25 H
-(hells do not perform history e).15 E(xpansion by def)-.15 E(ault.)-.1 E
-1.306(History e)108 148.8 R 1.306(xpansions introduce w)-.15 F 1.306(or\
-ds from the history list into the input stream, making it easy to repea\
-t)-.1 F .209(commands, insert the ar)108 160.8 R .209(guments to a pre)
--.18 F .21
+-.35 E .279(and manipulate the history \214le.)108 84 R .279
+(When using command-line editing, search commands are a)5.279 F -.25(va)
+-.2 G .28(ilable in each).25 F(editing mode that pro)108 96 Q
+(vide access to the history list.)-.15 E 1.486(The shell allo)108 112.8
+R 1.486(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
+(hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt)
+-3.986 G 1.486(he history list.)-3.986 F(The)6.485 E/F1 9/Times-Bold@0
+SF(HISTCONTR)3.985 E(OL)-.27 E F0(and)3.735 E F1(HISTIGNORE)108 124.8 Q
+F0 -.25(va)2.707 G .457(riables may be set to cause the shell to sa).25
+F .758 -.15(ve o)-.2 H .458(nly a subset of the commands entered.).15 F
+(The)5.458 E/F2 10/Times-Bold@0 SF(cmdhist)108 136.8 Q F0 .75
+(shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05
+-.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077
+(the same history entry)108 148.8 R 3.577(,a)-.65 G 1.077
+(dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G
+1.077(yntactic correctness.)-3.577 F(The)6.077 E F2(lithist)3.577 E F0
+.374(shell option causes the shell to sa)108 160.8 R .674 -.15(ve t)-.2
+H .374(he command with embedded ne).15 F .373
+(wlines instead of semicolons.)-.25 F .373(See the)5.373 F .318
+(description of the)108 172.8 R F2(shopt)2.818 E F0 -.2(bu)2.818 G .318
+(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F1 .318(SHELL B)2.818 F
+(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .319
+(for information on setting and)2.568 F(unsetting shell options.)108
+184.8 Q/F3 10.95/Times-Bold@0 SF(HIST)72 201.6 Q(OR)-.197 E 2.738(YE)
+-.383 G(XP)-2.738 E(ANSION)-.81 E F0 .611
+(The shell supports a history e)108 213.6 R .611
+(xpansion feature that is similar to the history e)-.15 F .61
+(xpansion in)-.15 F F2(csh.)3.11 E F0 .61(This section)5.61 F .87
+(describes what syntax features are a)108 225.6 R -.25(va)-.2 G 3.371
+(ilable. This).25 F .871(feature is enabled by def)3.371 F .871
+(ault for interacti)-.1 F 1.171 -.15(ve s)-.25 H .871(hells, and).15 F
+2.014(can be disabled using the)108 237.6 R F2(+H)4.514 E F0 2.014
+(option to the)4.514 F F2(set)4.514 E F0 -.2(bu)4.514 G 2.014
+(iltin command \(see).2 F F1 2.013(SHELL B)4.513 F(UIL)-.09 E 2.013
+(TIN COMMANDS)-.828 F F0(belo)108 249.6 Q 2.5(w\). Non-interacti)-.25 F
+.3 -.15(ve s)-.25 H(hells do not perform history e).15 E
+(xpansion by def)-.15 E(ault.)-.1 E 1.305(History e)108 266.4 R 1.305
+(xpansions introduce w)-.15 F 1.306(ords from the history list into the\
+ input stream, making it easy to repeat)-.1 F .21
+(commands, insert the ar)108 278.4 R .21(guments to a pre)-.18 F .209
 (vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 172.8 Q(.)-.65 E 1.164(History e)108
-189.6 R 1.163(xpansion is performed immediately after a complete line i\
-s read, before the shell breaks it into)-.15 F -.1(wo)108 201.6 S 3.2
+F(vious)-.25 E(commands quickly)108 290.4 Q(.)-.65 E 1.163(History e)108
+307.2 R 1.163(xpansion is performed immediately after a complete line i\
+s read, before the shell breaks it into)-.15 F -.1(wo)108 319.2 S 3.2
 (rds. It).1 F(tak)3.2 E .7(es place in tw)-.1 F 3.2(op)-.1 G 3.2
 (arts. The)-3.2 F .7
 (\214rst is to determine which line from the history list to use during)
-3.2 F 4.368(substitution. The)108 213.6 R 1.868(second is to select por\
-tions of that line for inclusion into the current one.)4.368 F 1.867
-(The line)6.867 F .662(selected from the history is the)108 225.6 R/F4
-10/Times-Italic@0 SF -.15(ev)3.162 G(ent).15 E F0 3.162(,a)C .663
-(nd the portions of that line that are acted upon are)-3.162 F F4(wor)
-3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F4(modi\214er)108 237.6
-Q(s)-.1 E F0 .227(are a)2.727 F -.25(va)-.2 G .227
-(ilable to manipulate the selected w).25 F 2.727(ords. The)-.1 F .226
-(line is brok)2.726 F .226(en into w)-.1 F .226(ords in the same f)-.1 F
-(ashion)-.1 E .351(as when reading input, so that se)108 249.6 R -.15
-(ve)-.25 G(ral).15 E F4(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .352
-(-separated w)B .352(ords surrounded by quotes are considered)-.1 F .625
-(one w)108 261.6 R 3.125(ord. History)-.1 F -.15(ex)3.125 G .624
-(pansions are introduced by the appearance of the history e).15 F .624
-(xpansion character)-.15 F 3.124(,w)-.4 G(hich)-3.124 E(is)108 273.6 Q
+3.2 F 4.367(substitution. The)108 331.2 R 1.868(second is to select por\
+tions of that line for inclusion into the current one.)4.367 F 1.868
+(The line)6.868 F .663(selected from the history is the)108 343.2 R/F4
+10/Times-Italic@0 SF -.15(ev)3.163 G(ent).15 E F0 3.163(,a)C .663
+(nd the portions of that line that are acted upon are)-3.163 F F4(wor)
+3.162 E(ds)-.37 E F0 5.662(.V)C(arious)-6.772 E F4(modi\214er)108 355.2
+Q(s)-.1 E F0 .226(are a)2.726 F -.25(va)-.2 G .226
+(ilable to manipulate the selected w).25 F 2.726(ords. The)-.1 F .227
+(line is brok)2.726 F .227(en into w)-.1 F .227(ords in the same f)-.1 F
+(ashion)-.1 E .352(as when reading input, so that se)108 367.2 R -.15
+(ve)-.25 G(ral).15 E F4(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .351
+(-separated w)B .351(ords surrounded by quotes are considered)-.1 F .624
+(one w)108 379.2 R 3.124(ord. History)-.1 F -.15(ex)3.124 G .624
+(pansions are introduced by the appearance of the history e).15 F .625
+(xpansion character)-.15 F 3.125(,w)-.4 G(hich)-3.125 E(is)108 391.2 Q
 F2(!)3.333 E F0(by def)3.333 E 2.5(ault. Only)-.1 F(backslash \()2.5 E
 F2(\\).833 E F0 2.5(\)a).833 G(nd single quotes can quote the history e)
--2.5 E(xpansion character)-.15 E(.)-.55 E(Se)108 290.4 Q -.15(ve)-.25 G
+-2.5 E(xpansion character)-.15 E(.)-.55 E(Se)108 408 Q -.15(ve)-.25 G
 .03(ral characters inhibit history e).15 F .03
 (xpansion if found immediately follo)-.15 F .03(wing the history e)-.25
-F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 302.4 T
-3.163(ni).25 G 3.163(fi)-3.163 G 3.162(ti)-3.163 G 3.162(su)-3.162 G
-.662(nquoted: space, tab, ne)-3.162 F .662(wline, carriage return, and)
--.25 F F2(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F2
-(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.162 E
-F0(will also inhibit e)108 314.4 Q(xpansion.)-.15 E(Se)108 331.2 Q -.15
-(ve)-.25 G .109(ral shell options settable with the).15 F F2(shopt)2.609
-E F0 -.2(bu)2.609 G .11(iltin may be used to tailor the beha).2 F .11
-(vior of history e)-.2 F(xpansion.)-.15 E 1.259(If the)108 343.2 R F2
-(histv)3.759 E(erify)-.1 E F0 1.259
-(shell option is enabled \(see the description of the)3.759 F F2(shopt)
-3.759 E F0 -.2(bu)3.759 G 1.259(iltin\), and).2 F F2 -.18(re)3.758 G
-(adline).18 E F0 1.258(is being)3.758 F 1.497(used, history substitutio\
-ns are not immediately passed to the shell parser)108 355.2 R 6.498(.I)
--.55 G 1.498(nstead, the e)-6.498 F 1.498(xpanded line is)-.15 F 2.228
-(reloaded into the)108 367.2 R F2 -.18(re)4.728 G(adline).18 E F0 2.228
+F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 420 T 3.162
+(ni).25 G 3.162(fi)-3.162 G 3.162(ti)-3.162 G 3.162(su)-3.162 G .662
+(nquoted: space, tab, ne)-3.162 F .662(wline, carriage return, and)-.25
+F F2(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F2(extglob)
+3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.163 E F0
+(will also inhibit e)108 432 Q(xpansion.)-.15 E(Se)108 448.8 Q -.15(ve)
+-.25 G .11(ral shell options settable with the).15 F F2(shopt)2.61 E F0
+-.2(bu)2.61 G .109(iltin may be used to tailor the beha).2 F .109
+(vior of history e)-.2 F(xpansion.)-.15 E 1.258(If the)108 460.8 R F2
+(histv)3.758 E(erify)-.1 E F0 1.259
+(shell option is enabled \(see the description of the)3.758 F F2(shopt)
+3.759 E F0 -.2(bu)3.759 G 1.259(iltin\), and).2 F F2 -.18(re)3.759 G
+(adline).18 E F0 1.259(is being)3.759 F 1.498(used, history substitutio\
+ns are not immediately passed to the shell parser)108 472.8 R 6.497(.I)
+-.55 G 1.497(nstead, the e)-6.497 F 1.497(xpanded line is)-.15 F 2.228
+(reloaded into the)108 484.8 R F2 -.18(re)4.728 G(adline).18 E F0 2.228
 (editing b)4.728 F(uf)-.2 E 2.228(fer for further modi\214cation.)-.25 F
 (If)7.228 E F2 -.18(re)4.728 G(adline).18 E F0 2.228
-(is being used, and the)4.728 F F2(histr)108 379.2 Q(eedit)-.18 E F0
+(is being used, and the)4.728 F F2(histr)108 496.8 Q(eedit)-.18 E F0
 1.202(shell option is enabled, a f)3.702 F 1.202
 (ailed history substitution will be reloaded into the)-.1 F F2 -.18(re)
-3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 391.2 S -.25(ff).2 G
-1.161(er for correction.).25 F(The)6.161 E F2<ad70>3.661 E F0 1.161
-(option to the)3.661 F F2(history)3.661 E F0 -.2(bu)3.661 G 1.16
-(iltin command may be used to see what a history).2 F -.15(ex)108 403.2
-S .055(pansion will do before using it.).15 F(The)5.055 E F2<ad73>2.555
-E F0 .055(option to the)2.555 F F2(history)2.556 E F0 -.2(bu)2.556 G
-.056(iltin may be used to add commands to the).2 F
-(end of the history list without actually e)108 415.2 Q -.15(xe)-.15 G
+3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 508.8 S -.25(ff).2 G
+1.16(er for correction.).25 F(The)6.16 E F2<ad70>3.66 E F0 1.16
+(option to the)3.66 F F2(history)3.66 E F0 -.2(bu)3.661 G 1.161
+(iltin command may be used to see what a history).2 F -.15(ex)108 520.8
+S .056(pansion will do before using it.).15 F(The)5.056 E F2<ad73>2.556
+E F0 .056(option to the)2.556 F F2(history)2.555 E F0 -.2(bu)2.555 G
+.055(iltin may be used to add commands to the).2 F
+(end of the history list without actually e)108 532.8 Q -.15(xe)-.15 G
 (cuting them, so that the).15 E 2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G
-(ilable for subsequent recall.).25 E 2.2(The shell allo)108 432 R 2.2
+(ilable for subsequent recall.).25 E 2.2(The shell allo)108 549.6 R 2.2
 (ws control of the v)-.25 F 2.2(arious characters used by the history e)
--.25 F 2.2(xpansion mechanism \(see the)-.15 F(description of)108 444 Q
-F2(histchars)2.5 E F0(abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F2
-(Shell V)2.5 E(ariables)-.92 E F0(\).)A F2(Ev)87 460.8 Q
-(ent Designators)-.1 E F0(An e)108 472.8 Q -.15(ve)-.25 G(nt designator\
+-.25 F 2.2(xpansion mechanism \(see the)-.15 F(description of)108 561.6
+F2(histchars)2.5 E F0(abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F2
+(Shell V)2.5 E(ariables)-.92 E F0(\).)A F2(Ev)87 578.4 Q
+(ent Designators)-.1 E F0(An e)108 590.4 Q -.15(ve)-.25 G(nt designator\
  is a reference to a command line entry in the history list.).15 E F2(!)
-108 489.6 Q F0 1.607(Start a history substitution, e)32.67 F 1.607
+108 607.2 Q F0 1.608(Start a history substitution, e)32.67 F 1.608
 (xcept when follo)-.15 F 1.607(wed by a)-.25 F F2(blank)4.107 E F0 4.107
-(,n)C -.25(ew)-4.107 G 1.608(line, carriage return, = or \().25 F
-(\(when the)144 501.6 Q F2(extglob)2.5 E F0
+(,n)C -.25(ew)-4.107 G 1.607(line, carriage return, = or \().25 F
+(\(when the)144 619.2 Q F2(extglob)2.5 E F0
 (shell option is enabled using the)2.5 E F2(shopt)2.5 E F0 -.2(bu)2.5 G
-(iltin\).).2 E F2(!)108 513.6 Q F4(n)A F0(Refer to command line)27.67 E
-F4(n)2.5 E F0(.).24 E F2<21ad>108 525.6 Q F4(n)A F0
+(iltin\).).2 E F2(!)108 631.2 Q F4(n)A F0(Refer to command line)27.67 E
+F4(n)2.5 E F0(.).24 E F2<21ad>108 643.2 Q F4(n)A F0
 (Refer to the current command line minus)21.97 E F4(n)2.5 E F0(.).24 E
-F2(!!)108 537.6 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
-(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 549.6 Q F4(string)
+F2(!!)108 655.2 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
+(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 667.2 Q F4(string)
 A F0(Refer to the most recent command starting with)9.33 E F4(string)2.5
-E F0(.).22 E F2(!?)108 561.6 Q F4(string)A F2([?])A F0 1.022
-(Refer to the most recent command containing)144 573.6 R F4(string)3.522
+E F0(.).22 E F2(!?)108 679.2 Q F4(string)A F2([?])A F0 1.022
+(Refer to the most recent command containing)144 691.2 R F4(string)3.522
 E F0 6.022(.T).22 G 1.022(he trailing)-6.022 F F2(?)3.522 E F0 1.022
-(may be omitted if)3.522 F F4(string)3.861 E F0(is)3.741 E(follo)144
-585.6 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F5 12/Times-Bold@0
-SF(^)108 602.6 Q F4(string1)-5 I F5(^)5 I F4(string2)-5 I F5(^)5 I F0
-2.629(Quick substitution.)144 609.6 R 2.629
-(Repeat the last command, replacing)7.629 F F4(string1)5.469 E F0(with)
-5.129 E F4(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25(va)-.25 G
-2.63(lent to).25 F -.74(``)144 621.6 S(!!:s/).74 E F4(string1)A F0(/)A
-F4(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
-(belo)2.5 E(w\).)-.25 E F2(!#)108 633.6 Q F0
-(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
-(Wo)87 650.4 S(rd Designators).75 E F0 -.8(Wo)108 662.4 S 1.314
-(rd designators are used to select desired w).8 F 1.314(ords from the e)
--.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.313
-(separates the e)3.813 F -.15(ve)-.25 G 1.313(nt speci\214cation).15 F
-.529(from the w)108 674.4 R .529(ord designator)-.1 F 5.529(.I)-.55 G
-3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
-(ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2
-($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)
--3.029 E F2(%)3.029 E F0 5.53(.W)C(ords)-6.33 E 1.301
-(are numbered from the be)108 686.4 R 1.301
-(ginning of the line, with the \214rst w)-.15 F 1.3
-(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.3 G 1.3(rds are).8 F
-(inserted into the current line separated by single spaces.)108 698.4 Q
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(43)197.89 E 0 Cg EP
+(may be omitted if)3.522 F F4(string)3.862 E F0(is)3.742 E(follo)144
+703.2 Q(wed immediately by a ne)-.25 E(wline.)-.25 E(GNU Bash-3.2)72 768
+Q(2006 Jan 26)149.845 E(43)199.835 E 0 Cg EP
 %%Page: 44 45
 %%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 2.5(0\()108 84 S(zer)-2.5 E(o\))-.18 E F0
-(The zeroth w)144 96 Q 2.5(ord. F)-.1 F
-(or the shell, this is the command w)-.15 E(ord.)-.1 E/F2 10
-/Times-Italic@0 SF(n)108.36 108 Q F0(The)30.64 E F2(n)2.5 E F0(th w)A
-(ord.)-.1 E F1(^)108 120 Q F0(The \214rst ar)32.67 E 2.5(gument. That)
--.18 F(is, w)2.5 E(ord 1.)-.1 E F1($)108 132 Q F0(The last ar)31 E
-(gument.)-.18 E F1(%)108 144 Q F0(The w)26 E
-(ord matched by the most recent `?)-.1 E F2(string)A F0(?' search.)A F2
-(x)108.77 156 Q F1<ad>A F2(y)A F0 2.5(Ar)20.65 G(ange of w)-2.5 E
-(ords; `\255)-.1 E F2(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)-.25 E
-F2(y)A F0('.)A F1(*)108 168 Q F0 .315(All of the w)31 F .315(ords b)-.1
-F .315(ut the zeroth.)-.2 F .315(This is a synon)5.315 F .315(ym for `)
--.15 F F2(1\255$)A F0 2.815('. It)B .315(is not an error to use)2.815 F
-F1(*)2.816 E F0 .316(if there is)2.816 F(just one w)144 180 Q
-(ord in the e)-.1 E -.15(ve)-.25 G
-(nt; the empty string is returned in that case.).15 E F1(x*)108 192 Q F0
-(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>108 204 Q F0
-(Abbre)25.3 E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5 E(e)-.1 E F1(x*)
-2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E(If a w)108 220.8
-Q(ord designator is supplied without an e)-.1 E -.15(ve)-.25 G
+-.35 E/F1 12/Times-Bold@0 SF(^)108 89 Q/F2 10/Times-Italic@0 SF(string1)
+-5 I F1(^)5 I F2(string2)-5 I F1(^)5 I F0 2.63(Quick substitution.)144
+96 R 2.629(Repeat the last command, replacing)7.629 F F2(string1)5.469 E
+F0(with)5.129 E F2(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25
+(va)-.25 G 2.629(lent to).25 F -.74(``)144 108 S(!!:s/).74 E F2(string1)
+A F0(/)A F2(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E/F3 10
+/Times-Bold@0 SF(Modi\214ers)2.5 E F0(belo)2.5 E(w\).)-.25 E F3(!#)108
+120 Q F0(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F3
+-.75(Wo)87 136.8 S(rd Designators).75 E F0 -.8(Wo)108 148.8 S 1.313
+(rd designators are used to select desired w).8 F 1.314(ords from the e)
+-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F3(:)3.814 E F0 1.314
+(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F
+.53(from the w)108 160.8 R .529(ord designator)-.1 F 5.529(.I)-.55 G
+3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
+(ord designator be)-.1 F .529(gins with a)-.15 F F3(^)3.029 E F0(,)A F3
+($)3.029 E F0(,)A F3(*)3.029 E F0(,)A F3<ad>3.029 E F0 3.029(,o)C(r)
+-3.029 E F3(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3
+(are numbered from the be)108 172.8 R 1.3
+(ginning of the line, with the \214rst w)-.15 F 1.301
+(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8
+F(inserted into the current line separated by single spaces.)108 184.8 Q
+F3 2.5(0\()108 201.6 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 213.6 Q
+2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
+F2(n)108.36 225.6 Q F0(The)30.64 E F2(n)2.5 E F0(th w)A(ord.)-.1 E F3(^)
+108 237.6 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5
+E(ord 1.)-.1 E F3($)108 249.6 Q F0(The last ar)31 E(gument.)-.18 E F3(%)
+108 261.6 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F2
+(string)A F0(?' search.)A F2(x)108.77 273.6 Q F3<ad>A F2(y)A F0 2.5(Ar)
+20.65 G(ange of w)-2.5 E(ords; `\255)-.1 E F2(y)A F0 2.5('a)C(bbre)-2.5
+E(viates `0\255)-.25 E F2(y)A F0('.)A F3(*)108 285.6 Q F0 .316
+(All of the w)31 F .316(ords b)-.1 F .316(ut the zeroth.)-.2 F .315
+(This is a synon)5.315 F .315(ym for `)-.15 F F2(1\255$)A F0 2.815
+('. It)B .315(is not an error to use)2.815 F F3(*)2.815 E F0 .315
+(if there is)2.815 F(just one w)144 297.6 Q(ord in the e)-.1 E -.15(ve)
+-.25 G(nt; the empty string is returned in that case.).15 E F3(x*)108
+309.6 Q F0(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F3<78ad>108
+321.6 Q F0(Abbre)25.3 E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5 E(e)-.1
+E F3(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E(If a w)
+108 338.4 Q(ord designator is supplied without an e)-.1 E -.15(ve)-.25 G
 (nt speci\214cation, the pre).15 E(vious command is used as the e)-.25 E
--.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 237.6 Q F0 .184
-(After the optional w)108 249.6 R .184(ord designator)-.1 F 2.684(,t)-.4
-G .183(here may appear a sequence of one or more of the follo)-2.684 F
-.183(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 261.6 Q F1(h)
-108 278.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
-(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
-(t)108 290.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
-(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F1(r)
-108 302.4 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
+-.15(ve)-.25 G(nt.).15 E F3(Modi\214ers)87 355.2 Q F0 .183
+(After the optional w)108 367.2 R .183(ord designator)-.1 F 2.683(,t)-.4
+G .184(here may appear a sequence of one or more of the follo)-2.683 F
+.184(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 379.2 Q F3(h)
+108 396 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
+(railing \214le name component, lea).15 E(ving only the head.)-.2 E F3
+(t)108 408 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
+(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F3(r)
+108 420 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
 (\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F1(e)108 314.4 Q F0(Remo)31.56 E .3 -.15(ve a)
--.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 326.4
-Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
-E -.15(xe)-.15 G(cute it.).15 E F1(q)108 338.4 Q F0
-(Quote the substituted w)30.44 E(ords, escaping further substitutions.)
--.1 E F1(x)108 350.4 Q F0(Quote the substituted w)31 E(ords as with)-.1
-E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks)
-2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 362.4 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 374.4 Q F2(ne)3.081 E(w)-.15 E
-F0 .221(for the \214rst occurrence of)3.031 F F2(old)2.951 E F0 .221
-(in the e)3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721
-(yd)-.15 G .221(elimiter can be used in place)-2.721 F .617(of /.)144
-386.4 R .617
+(ving the basename.)-.2 E F3(e)108 432 Q F0(Remo)31.56 E .3 -.15(ve a)
+-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F3(p)108 444 Q
+F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2 E
+-.15(xe)-.15 G(cute it.).15 E F3(q)108 456 Q F0(Quote the substituted w)
+30.44 E(ords, escaping further substitutions.)-.1 E F3(x)108 468 Q F0
+(Quote the substituted w)31 E(ords as with)-.1 E F3(q)2.5 E F0 2.5(,b)C
+(ut break into w)-2.7 E(ords at)-.1 E F3(blanks)2.5 E F0(and ne)2.5 E
+(wlines.)-.25 E F3(s/)108 480 Q F2(old)A F3(/)A F2(ne)A(w)-.15 E F3(/)A
+F0(Substitute)144 492 Q F2(ne)3.082 E(w)-.15 E F0 .221
+(for the \214rst occurrence of)3.032 F F2(old)2.951 E F0 .221(in the e)
+3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721(yd)-.15 G
+.221(elimiter can be used in place)-2.721 F .616(of /.)144 504 R .617
 (The \214nal delimiter is optional if it is the last character of the e)
-5.617 F -.15(ve)-.25 G .617(nt line.).15 F .616(The delimiter may)5.616
-F .666(be quoted in)144 398.4 R F2(old)3.396 E F0(and)3.936 E F2(ne)
-3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666
+5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
+F .666(be quoted in)144 516 R F2(old)3.396 E F0(and)3.936 E F2(ne)3.526
+E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666
 (If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166
 (ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E
-F0 5.666(.A).77 G .275(single backslash will quote the &.)144 410.4 R
-(If)5.275 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
-F F2(old)3.004 E F0 .274(substituted, or)3.544 F 2.774(,i)-.4 G 2.774
-(fn)-2.774 G 2.774(op)-2.774 G(re)-2.774 E(vi-)-.25 E
-(ous history substitutions took place, the last)144 422.4 Q F2(string)
-2.84 E F0(in a)2.72 E F1(!?)2.5 E F2(string)A F1([?])A F0(search.)5 E F1
-(&)108 434.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
-(g)108 446.4 Q F0 .397(Cause changes to be applied o)31 F -.15(ve)-.15 G
-2.897(rt).15 G .398(he entire e)-2.897 F -.15(ve)-.25 G .398(nt line.)
-.15 F .398(This is used in conjunction with `)5.398 F F1(:s)A F0 2.898
-('\()C(e.g.,)-2.898 E(`)144 458.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
--.15 E F1(/)A F0 1.219('\) or `)B F1(:&)A F0 3.719('. If)B 1.219
-(used with `)3.719 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.218
-(elimiter can be used in place of /, and the \214nal)-3.718 F .089
-(delimiter is optional if it is the last character of the e)144 470.4 R
--.15(ve)-.25 G .09(nt line.).15 F(An)5.09 E F1(a)2.59 E F0 .09
-(may be used as a synon)2.59 F .09(ym for)-.15 F F1(g)144 482.4 Q F0(.)A
-F1(G)108 494.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0 2.5
+F0 5.666(.A).77 G .274(single backslash will quote the &.)144 528 R(If)
+5.274 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544 F F2
+(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775(fn)
+-2.775 G 2.775(op)-2.775 G(re)-2.775 E(vi-)-.25 E
+(ous history substitutions took place, the last)144 540 Q F2(string)2.84
+E F0(in a)2.72 E F3(!?)2.5 E F2(string)A F3([?])A F0(search.)5 E F3(&)
+108 552 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F3(g)108
+564 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G 2.898
+(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.).15 F
+.397(This is used in conjunction with `)5.398 F F3(:s)A F0 2.897('\()C
+(e.g.,)-2.897 E(`)144 576 Q F3(:gs/)A F2(old)A F3(/)A F2(ne)A(w)-.15 E
+F3(/)A F0 1.218('\) or `)B F3(:&)A F0 3.718('. If)B 1.218(used with `)
+3.718 F F3(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
+(elimiter can be used in place of /, and the \214nal)-3.718 F .09
+(delimiter is optional if it is the last character of the e)144 588 R
+-.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F3(a)2.589 E F0 .089
+(may be used as a synon)2.589 F .089(ym for)-.15 F F3(g)144 600 Q F0(.)A
+F3(G)108 612 Q F0(Apply the follo)28.22 E(wing `)-.25 E F3(s)A F0 2.5
 ('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25 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 .063(Unless otherwise noted, each b)108 523.2
+(nt line.).15 E/F4 10.95/Times-Bold@0 SF(SHELL B)72 628.8 Q(UIL)-.11 E
+(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 640.8
 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
+receded by)-.2 F F3<ad>108 652.8 Q F0(accepts)3.8 E F3<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 .452(No ef)144 577.2 R .452
+(xample, the)-3.95 F F3(:)3.8 E F0(,)A F3(true)3.8 E F0(,)A F3(false)3.8
+E F0 3.8(,a)C(nd)-3.8 E F3(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not)
+.2 F(accept options.)108 664.8 Q F3(:)108 682.8 Q F0([)2.5 E F2(ar)A
+(guments)-.37 E F0(])A .451(No ef)144 694.8 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 .451(and performing an)3.221 F
-2.951(ys)-.15 G(peci\214ed)-2.951 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
+-.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 706.8 R
+(zero e)2.5 E(xit code is returned.)-.15 E(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(44)199.835 E 0 Cg EP
+%%Page: 45 46
+%%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(.)110.5 84 Q/F2 10/Times-Italic@0 SF
 (\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)
+96 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 108 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 120 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
-R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
+E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 132
+R/F3 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 .833(need not be e)144 666 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 678 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F3 -.666(PA)
+3.108 G(TH)-.189 E F0 .832(need not be e)144 144 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 156 R F3 -.666(PA)3.481 G(TH)-.189 E/F4 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 .982(f, the)-.25 F F4 -.666(PA)144 690
-S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F(y)-.15
+(iltin command is turned of).2 F .981(f, the)-.25 F F3 -.666(PA)144 168
+S(TH)-.189 E F0 .112(is not searched.)2.362 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 .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 714 R .716
+(\214lename)144 180 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 192 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 F2(\214lename)145.91 726 Q
-F0(is not found or cannot be read.)2.68 E(GNU Bash-3.1-beta1)72 768 Q
-(2005 Aug 27)122.91 E(44)197.89 E 0 Cg EP
-%%Page: 45 46
-%%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.724(with no ar)5.224 F 2.724
+.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 204 Q
+F0(is not found or cannot be read.)2.68 E F1(alias)108 220.8 Q F0([)2.5
+E F1<ad70>A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
+(..])-2.5 E F1(Alias)144 232.8 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.225 E
-F2(name)144 108 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
+(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E
+F2(name)144 244.8 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
+3.08 E F0(whose)144 256.8 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)
 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
+(stitution when the alias is e)144 268.8 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 .053(is sup-)2.553
-F 1.313(plied, the name and v)144 144 R 1.314
+(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 280.8 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.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 156 Q F1(bg)108 172.8 Q F0([)2.5
-E F2(jobspec)A F0(...])2.5 E .847(Resume each suspended job)144 184.8 R
-F2(jobspec)3.347 E F0 .847
+(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 292.8 Q F1(bg)108 309.6 Q F0([)
+2.5 E F2(jobspec)A F0(...])2.5 E .847(Resume each suspended job)144
+321.6 R F2(jobspec)3.347 E F0 .847
 (in the background, as if it had been started with)3.347 F F1(&)3.347 E
-F0 5.847(.I)C(f)-5.847 E F2(job-)3.347 E(spec)144 196.8 Q F0 .689
-(is not present, the shell')3.188 F 3.189(sn)-.55 G .689(otion of the)
+F0 5.847(.I)C(f)-5.847 E F2(job-)3.348 E(spec)144 333.6 Q F0 .689
+(is not present, the shell')3.189 F 3.189(sn)-.55 G .689(otion of the)
 -3.189 F F2(curr)3.189 E .689(ent job)-.37 F F0 .689(is used.)3.189 F F1
-(bg)5.689 E F2(jobspec)4.929 E F0 .689(returns 0 unless run)3.499 F .419
-(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.918(ys)-.15 G
-(peci\214ed)-2.918 E F2(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G
-(ot)-2.918 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
+(bg)5.689 E F2(jobspec)4.929 E F0 .688(returns 0 unless run)3.499 F .418
+(when job control is disabled or)144 345.6 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 357.6 Q(as started without job control.)-.1
+E F1(bind)108 374.4 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 386.4 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
+F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 398.4 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
+(\214lename)2.5 E F1(bind)108 410.4 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)
+(shell\255command)A F1(bind)108 422.4 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 .238(Display current)144 309.6 R F1 -.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 F1 -.18(re)2.739 G(adline).18 E F0 .239(function or)
-2.739 F .476(macro, or set a)144 321.6 R F1 -.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 F2
-(.inputr)144 333.6 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 345.6 R(if supplied, ha)2.5
+(function\255name)A F1(bind)108 434.4 Q F2 -.37(re)2.5 G
+(adline\255command).37 E F0 .239(Display current)144 446.4 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 458.4 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 470.4 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 482.4 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.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
-F2 -.1(ke)180 381.6 S(ymap)-.2 E F0 3.192(names are)5.882 F F2 3.192
-(emacs, emacs\255standar)5.692 F 3.193
+494.4 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 506.4 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 518.4 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 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 393.6 Q F0 4.43(,a)C(nd)-4.43 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.929(lent to).25 F F2(emacs\255standar)
-180 405.6 Q(d)-.37 E F0(.)A F1<ad6c>144 417.6 Q F0
+(vi\255command)180 530.4 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 542.4 Q(d)-.37 E F0(.)A F1<ad6c>144 554.4 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
+(functions.)2.5 E F1<ad70>144 566.4 Q F0(Display)24.74 E F1 -.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
+(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 578.4
 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<ad76>144 453.6 Q F0(Display)25.3
+(function names and bindings.)2.5 E F1<ad76>144 590.4 Q F0(Display)25.3
 E F1 -.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 465.6 Q F0(List current)23.08 E F1
+(an be re-read.)-2.5 E F1<ad56>144 602.4 Q F0(List current)23.08 E F1
 -.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
-(alues.)-.25 E F1<ad73>144 477.6 Q F0(Display)26.41 E F1 -.18(re)3.655 G
+(alues.)-.25 E F1<ad73>144 614.4 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 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 489.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 501.6 Q F0
+1.155(utput in such a)-3.655 F -.1(wa)180 626.4 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 638.4 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(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
-(utput.)-2.5 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
+(utput.)-2.5 E F1<ad66>144 650.4 Q F2(\214lename)2.5 E F0(Read k)180
+662.4 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
+F1<ad71>144 674.4 Q F2(function)2.5 E F0(Query about which k)180 686.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)2.5 E F0
-(to be e)2.5 E -.15(xe)-.15 G(cuted whene).15 E -.15(ve)-.25 G(r).15 E
-F2 -.1(ke)2.5 G(yseq)-.2 E F0(is entered.)2.5 E(The return v)144 638.4 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
-655.2 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055(Exit from within a)144
-667.2 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 679.2 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 the shell is not e)144 691.2 Q -.15(xe)
--.15 G(cuting a loop when).15 E F1(br)2.5 E(eak)-.18 E F0(is e)2.5 E
--.15(xe)-.15 G(cuted.).15 E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)
-122.91 E(45)197.89 E 0 Cg EP
+(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 698.4 Q F2(function)
+2.5 E F0(Unbind all k)180 710.4 Q -.15(ey)-.1 G 2.5(sb).15 G
+(ound to the named)-2.5 E F2(function)2.5 E F0(.)A(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(45)199.835 E 0 Cg EP
 %%Page: 46 47
 %%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 -.2(bu)108 84 S(iltin).2 E/F2 10
-/Times-Italic@0 SF(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E F2(ar)A
-(guments)-.37 E F0(])A(Ex)144 96 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 .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 108
-R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144 120 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 132 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(cd)108 148.8 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 160.8
-R F2(dir)2.71 E F0 5.21(.T)C .21(he v)-5.21 F(ariable)-.25 E/F3 9
+-.35 E/F1 10/Times-Bold@0 SF<ad72>144 84 Q/F2 10/Times-Italic@0 SF -.1
+(ke)2.5 G(yseq)-.2 E F0(Remo)180 96 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 108 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command)A
+F0(Cause)180 120 Q F2(shell\255command)2.5 E F0(to be e)2.5 E -.15(xe)
+-.15 G(cuted whene).15 E -.15(ve)-.25 G(r).15 E F2 -.1(ke)2.5 G(yseq)-.2
+E F0(is entered.)2.5 E(The return v)144 136.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
+153.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054(Exit from within a)144
+165.6 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 177.6 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(is 0 unless the shell is not e)144 189.6 Q -.15(xe)
+-.15 G(cuting a loop when).15 E F1(br)2.5 E(eak)-.18 E F0(is e)2.5 E
+-.15(xe)-.15 G(cuted.).15 E F1 -.2(bu)108 206.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 218.4 Q .792(ecute the speci\214ed shell b)-.15 F .792
+(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
+(when de\214ning a function whose name is the same as a shell b)144
+230.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
+242.4 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 254.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(cd)108 271.2 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 283.2
+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 F3(CDP)2.71 E
--.855(AT)-.666 G(H).855 E F0 .777
-(de\214nes the search path for the directory containing)144 172.8 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 F3(CDP)3.276 E -.855(AT)-.666 G(H).855 E F0
-.764(are separated by a colon \(:\).)144 184.8 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 196.8 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 F3(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 208.8 R .579
+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 295.2 R F2
+(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 307.2 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 319.2 Q 2.973
+(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F1(.)A F0 -.74('')C 5.473(.I)
+.74 G(f)-5.473 E F2(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 .474(is not used. The)2.724 F F1<ad50>2.974 E F0 .474
+(option says to use)2.974 F .58(the ph)144 331.2 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 220.8 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 F1<ad50>3.079 E F0 .579
+(option to the)3.079 F F1(set)144 343.2 Q F0 -.2(bu)3.383 G .883
+(iltin command\); the).2 F F1<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
-232.8 Q -.25(va)-.25 G .062(lent to).25 F F3($OLDPWD)2.562 E/F4 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 244.8 Q .116(gument, \
+(ar)3.384 E .884(gument of)-.18 F F1<ad>3.384 E F0(is)3.384 E(equi)144
+355.2 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
+F1(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .062(is used, or if)2.562 F F1
+<ad>2.562 E F0 .062(is the \214rst)2.562 F(ar)144 367.2 Q .116(gument, \
 and 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 256.8 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 268.8 Q(alse otherwise.)-.1 E F1
-(caller)108 285.6 Q F0([)2.5 E F2 -.2(ex)C(pr).2 E F0(])A .254
-(Returns the conte)144 297.6 R .254(xt of an)-.15 F 2.754(ya)-.15 G(cti)
+-.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165
+(tory is written to the standard output.)144 379.2 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 391.2 Q(alse otherwise.)-.1 E F1
+(caller)108 408 Q F0([)2.5 E F2 -.2(ex)C(pr).2 E F0(])A .253
+(Returns the conte)144 420 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.753 E F0(or)2.753 E F1(sour)144 309.6 Q
-(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F2 -.2
+.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 432 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 321.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 F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(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 444 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 333.6 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
-(This e)144 345.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 357.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 F2 -.2(ex)3.02 G(pr).2 E F0 .52
-(does not corre-)3.02 F(spond to a v)144 369.6 Q
-(alid position in the call stack.)-.25 E F1(command)108 386.4 Q F0([)2.5
+ent e)144 456 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)144
+468 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 480 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 492 Q
+(alid position in the call stack.)-.25 E F1(command)108 508.8 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 398.4 Q F2(command)2.957 E F0(with)3.527 E F2(ar)
+(...])2.5 E(Run)144 520.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 .501(commands found in the)144 410.4 R F3
--.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)-.15 G 3.002
+(uiltin commands or)-.2 F .502(commands found in the)144 532.8 R F4
+-.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 422.4 R .231(ault v)-.1 F .231
+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 544.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.231 E .174(either the)144 434.4 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 446.4 S .61(ingle w)-3.11 F
+5.232 E .175(either the)144 556.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 568.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 458.4 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 470.4 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
+F1<ad56>144 580.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 592.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 482.4 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 494.4 S
+(command)144.2 604.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 616.8 S
 (iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1
-(compgen)108 511.2 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 523.2 R
+(compgen)108 633.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 645.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 535.2 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 657.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 547.2 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 669.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 559.2 Q(acilities, while a)-.1 E -.25(va)
+F(grammable completion f)144 681.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 583.2 R .352
+-.25 E .352(The matches will be generated in the same w)144 705.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
-595.2 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 607.2 Q F2(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 631.2 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 648 Q F0([)2.786 E F1(\255abcdefgjksuv)A F0 2.786(][)C F1
-<ad6f>-2.786 E F2(comp-option)2.786 E F0 2.786(][)C F1<ad41>-2.786 E F2
-(action)2.786 E F0 2.786(][)C F1<ad47>-2.786 E F2(globpat)2.786 E F0
-2.786(][)C F1<ad57>-2.786 E F2(wor)2.786 E(dlist)-.37 E F0 2.786(][)C F1
-<ad50>-2.786 E F2(pr)2.786 E(e\214x)-.37 E F0 2.787(][)C F1<ad53>-2.787
-E F2(suf-)2.787 E<8c78>108 660 Q F0(])A([)144 672 Q F1<ad58>A F2
-(\214lterpat)2.5 E F0 2.5(][)C F1<ad46>-2.5 E F2(function)2.5 E F0 2.5
-(][)C F1<ad43>-2.5 E F2(command)2.5 E F0(])A F2(name)2.5 E F0([)2.5 E F2
-(name ...)A F0(])A F1(complete \255pr)108 684 Q F0([)2.5 E F2(name)A F0
-(...])2.5 E .633(Specify ho)144 696 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
-708 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 720 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(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E
-(46)197.89 E 0 Cg EP
+717.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 729.6 Q F2(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E
+(46)199.835 E 0 Cg EP
 %%Page: 47 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(are supplied, all completion speci\214cations.)144 84 Q 1.438
+-.35 E(The return v)144 84 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 10
+/Times-Bold@0 SF(complete)108 100.8 Q F0([)2.787 E F1(\255abcdefgjksuv)A
+F0 2.787(][)C F1<ad6f>-2.787 E/F2 10/Times-Italic@0 SF(comp-option)2.786
+E F0 2.786(][)C F1<ad41>-2.786 E F2(action)2.786 E F0 2.786(][)C F1
+<ad47>-2.786 E F2(globpat)2.786 E F0 2.786(][)C F1<ad57>-2.786 E F2(wor)
+2.786 E(dlist)-.37 E F0 2.786(][)C F1<ad50>-2.786 E F2(pr)2.786 E
+(e\214x)-.37 E F0 2.786(][)C F1<ad53>-2.786 E F2(suf-)2.786 E<8c78>108
+112.8 Q F0(])A([)144 124.8 Q F1<ad58>A F2(\214lterpat)2.5 E F0 2.5(][)C
+F1<ad46>-2.5 E F2(function)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(command)
+2.5 E F0(])A F2(name)2.5 E F0([)2.5 E F2(name ...)A F0(])A F1
+(complete \255pr)108 136.8 Q F0([)2.5 E F2(name)A F0(...])2.5 E .634
+(Specify ho)144 148.8 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
+160.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 .31(reused as input.)
+144 172.8 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(are supplied, all completion speci\214cations.)144
+184.8 Q 1.437
 (The process of applying these completion speci\214cations when w)144
-108 R 1.437(ord completion is attempted is)-.1 F(described abo)144 120 Q
-.3 -.15(ve u)-.15 H(nder).15 E/F1 10/Times-Bold@0 SF(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(.)A .555
-(Other options, if speci\214ed, ha)144 144 R .855 -.15(ve t)-.2 H .555
+208.8 R 1.438(ord completion is attempted is)-.1 F(described abo)144
+220.8 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 244.8 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 156 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 168 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
-180 Q/F2 10/Times-Italic@0 SF(comp-option)2.5 E F0(The)184 192 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 204 Q F2(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184
-216 Q F0 .281(Perform the rest of the def)224 228 R(ault)-.1 E F1(bash)
-2.781 E F0 .281(completions if the compspec generates no)2.781 F
-(matches.)224 240 Q F1(default)184 252 Q F0 2.875(Use readline')10 F
-5.375(sd)-.55 G(ef)-5.375 E 2.876
+(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 256.8 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 268.8 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 280.8 Q
+F2(comp-option)2.5 E F0(The)184 292.8 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 304.8 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 316.8 Q F0
+.281(Perform the rest of the def)224 328.8 R(ault)-.1 E F1(bash)2.781 E
+F0 .281(completions if the compspec generates no)2.781 F(matches.)224
+340.8 Q F1(default)184 352.8 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 264 Q F1(dir)184 276 Q(names)-.15 E F0(Perform directory name compl\
-etion if the compspec generates no matches.)224 288 Q F1(\214lenames)184
-300 Q F0 -.7(Te)224 312 S .137(ll readline that the compspec generates \
-\214lenames, so it can perform an).7 F 2.636<798c>-.15 G(le-)-2.636 E
-.496(name\255speci\214c processing \(lik)224 324 R 2.996(ea)-.1 G .496
-(dding a slash to directory names or suppress-)-2.996 F
-(ing trailing spaces\).)224 336 Q
-(Intended to be used with shell functions.)5 E F1(nospace)184 348 Q F0
+224 364.8 Q F1(dir)184 376.8 Q(names)-.15 E F0(Perform directory name c\
+ompletion if the compspec generates no matches.)224 388.8 Q F1
+(\214lenames)184 400.8 Q F0 -.7(Te)224 412.8 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 .496(name\255speci\214c processing \(lik)224 424.8 R
+2.996(ea)-.1 G .496(dding a slash to directory names or suppress-)-2.996
+F(ing trailing spaces\).)224 436.8 Q
+(Intended to be used with shell functions.)5 E F1(nospace)184 448.8 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
-360 Q F1(plusdirs)184 372 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G
+460.8 Q F1(plusdirs)184 472.8 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 384 R 3.084(ym)-.15 G
+-4.485 F .583(completion is attempted and an)224 484.8 R 3.084(ym)-.15 G
 .584(atches are added to the results of the other)-3.084 F(actions.)224
-396 Q F1<ad41>144 408 Q F2(action)2.5 E F0(The)184 420 Q F2(action)2.5 E
-F0(may be one of the follo)2.5 E
+496.8 Q F1<ad41>144 508.8 Q F2(action)2.5 E F0(The)184 520.8 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
-432 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 444 Q(ar)-.1 E F0(Array v)224 456 Q
-(ariable names.)-.25 E F1 4.7(binding Readline)184 468 R F0 -.1(ke)2.5 G
-2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 480 S(iltin).2 E F0
+532.8 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 544.8 Q(ar)-.1 E F0(Array v)224 556.8 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 568.8 R F0 -.1(ke)2.5
+G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 580.8 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 492
-Q F0(Command names.)224 504 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 516 Q(ectory)-.18 E F0(Directory names.)224 528 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 540
-Q F0(Names of disabled shell b)224 552 Q(uiltins.)-.2 E F1(enabled)184
-564 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
-576 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
-588 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 600 Q F0(Names of shell functions.)224 612 Q F1
-(gr)184 624 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
-636 Q F0(Help topics as accepted by the)224 648 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 660 Q F0(Hostnames, as tak)224 672
-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 684 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 696 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 708 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
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(47)197.89 E 0 Cg EP
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184
+592.8 Q F0(Command names.)224 604.8 Q(May also be speci\214ed as)5 E F1
+<ad63>2.5 E F0(.)A F1(dir)184 616.8 Q(ectory)-.18 E F0(Directory names.)
+224 628.8 Q(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1
+(disabled)184 640.8 Q F0(Names of disabled shell b)224 652.8 Q(uiltins.)
+-.2 E F1(enabled)184 664.8 Q F0(Names of enabled shell b)6.66 E
+(uiltins.)-.2 E F1(export)184 676.8 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 688.8 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
+700.8 Q F0(Names of shell functions.)224 712.8 Q(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(47)199.835 E 0 Cg EP
 %%Page: 48 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/F1 10/Times-Bold@0 SF(running)184 84 Q F0
-(Names of running jobs, if job control is acti)5.54 E -.15(ve)-.25 G(.)
-.15 E F1(ser)184 96 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 108 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 120 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 132 Q F0
-(Signal names.)14.99 E F1(stopped)184 144 Q F0
+-.35 E/F1 10/Times-Bold@0 SF(gr)184 84 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 96 Q F0(Help topics as accepted by the)224 108 Q F1(help)
+2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(hostname)184 120 Q F0
+(Hostnames, as tak)224 132 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 144 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 156 S(yw).1 E(ord)-.1 E F0(Shell reserv)224 168 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 180 Q F0(Names of running jobs, if job control is acti)5.54
+E -.15(ve)-.25 G(.).15 E F1(ser)184 192 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 204 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 216 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 228 Q F0
+(Signal names.)14.99 E F1(stopped)184 240 Q F0
 (Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
-.15 E F1(user)184 156 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 168 S
+.15 E F1(user)184 252 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 264 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 180 Q/F2
-10/Times-Italic@0 SF(globpat)2.5 E F0 1.41(The \214lename e)184 192 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 204 Q
-F1<ad57>144 216 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 228 Q F2(wor)3.64
-E(dlist)-.37 E F0 1.14(is split using the characters in the)3.64 F/F3 9
-/Times-Bold@0 SF(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 240 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 252 Q(ord being completed.)-.1 E
-F1<ad43>144 264 Q F2(command)2.5 E(command)184 276 Q F0 1.056(is e)3.556
-F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad47>144 276 Q/F3
+10/Times-Italic@0 SF(globpat)2.5 E F0 1.411(The \214lename e)184 288 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 300 Q
+F1<ad57>144 312 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 324 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 336 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 348 Q(ord being completed.)-.1 E
+F1<ad43>144 360 Q F3(command)2.5 E(command)184 372 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 288 Q F1<ad46>144 300 Q F2(function)2.5 E F0 1.18
-(The shell function)184 312 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 324 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.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 336 S(riable.)
-.25 E F1<ad58>144 348 Q F2(\214lterpat)2.5 E(\214lterpat)184 360 Q F0
-.733(is a pattern as used for \214lename e)3.233 F 3.233(xpansion. It)
+184 384 Q F1<ad46>144 396 Q F3(function)2.5 E F0 1.181
+(The shell function)184 408 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 420 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.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 432 S(riable.)
+.25 E F1<ad58>144 444 Q F3(\214lterpat)2.5 E(\214lterpat)184 456 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 372 R 1.596
-(guments, and each completion)-.18 F(matching)184 384 Q F2(\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 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 396 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 408 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 420 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
+(completions generated by the preceding options and ar)184 468 R 1.596
+(guments, and each completion)-.18 F(matching)184 480 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 492 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 504 Q F3(pr)2.5 E(e\214x)-.37 E(pr)
+184 516 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 432 Q F1<ad53>144 444 Q F2(suf)2.5 E
+-.15(ve)-.2 G(been applied.)184 528 Q F1<ad53>144 540 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 460.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 472.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 484.8 Q F0
+E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 556.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 568.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 580.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(continue)108 501.6 Q F0([)2.5 E F2(n)A F0(])A 1.753(Resume the ne)144
-513.6 R 1.753(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r)
+F1(continue)108 597.6 Q F0([)2.5 E F3(n)A F0(])A 1.754(Resume the ne)144
+609.6 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 F2(n)4.614 E F0
-1.754(is speci\214ed,)4.494 F 1.209(resume at the)144 525.6 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/F4
-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 .667
-(loops, the last enclosing loop \(the `)144 537.6 R(`top-le)-.74 E -.15
-(ve)-.25 G(l').15 E 3.167('l)-.74 G .667(oop\) is resumed.)-3.167 F .668
-(The return v)5.668 F .668(alue is 0 unless the)-.25 F(shell is not e)
-144 549.6 Q -.15(xe)-.15 G(cuting a loop when).15 E F1(continue)2.5 E F0
-(is e)2.5 E -.15(xe)-.15 G(cuted.).15 E F1(declar)108 566.4 Q(e)-.18 E
-F0([)2.5 E F1(\255afFirtx)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
-578.4 Q F0([)2.5 E F1(\255afFirtx)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 590.4 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 602.4
-S 3.326(riables. The).25 F F1<ad70>3.326 E F0 .826
-(option will display the attrib)3.326 F .826(utes and v)-.2 F .826
-(alues of each)-.25 F F2(name)3.326 E F0 5.827(.W).18 G(hen)-5.827 E F1
-<ad70>3.327 E F0 .827(is used,)3.327 F .22
-(additional options are ignored.)144 614.4 R(The)5.22 E F1<ad46>2.72 E
+-4.254 E F1(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 621.6 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 .668
+(loops, the last enclosing loop \(the `)144 633.6 R(`top-le)-.74 E -.15
+(ve)-.25 G(l').15 E 3.168('l)-.74 G .668(oop\) is resumed.)-3.168 F .667
+(The return v)5.667 F .667(alue is 0 unless the)-.25 F(shell is not e)
+144 645.6 Q -.15(xe)-.15 G(cuting a loop when).15 E F1(continue)2.5 E F0
+(is e)2.5 E -.15(xe)-.15 G(cuted.).15 E F1(declar)108 662.4 Q(e)-.18 E
+F0([)2.5 E F1(\255afFirtx)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F3
+(name)-2.5 E F0([=)A F3(value)A F0 2.5(].)C(..])-2.5 E F1(typeset)108
+674.4 Q F0([)2.5 E F1(\255afFirtx)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5
+(][)C F3(name)-2.5 E F0([=)A F3(value)A F0 2.5(].)C(..])-2.5 E 1.264
+(Declare v)144 686.4 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 F3(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 698.4
+S 3.327(riables. The).25 F F1<ad70>3.327 E F0 .826
+(option will display the attrib)3.327 F .826(utes and v)-.2 F .826
+(alues of each)-.25 F F3(name)3.326 E F0 5.826(.W).18 G(hen)-5.826 E F1
+<ad70>3.326 E F0 .826(is used,)3.326 F .22
+(additional options are ignored.)144 710.4 R(The)5.22 E F1<ad46>2.72 E
 F0 .22(option inhibits the display of function de\214nitions; only the)
-2.72 F .466(function name and attrib)144 626.4 R .466(utes are printed.)
+2.72 F .466(function name and attrib)144 722.4 R .466(utes are printed.)
 -.2 F .466(If the)5.466 F F1(extdeb)2.966 E(ug)-.2 E F0 .466
 (shell option is enabled using)2.966 F F1(shopt)2.966 E F0 2.966(,t)C
-(he)-2.966 E 1.308(source \214le name and line number where the functio\
-n is de\214ned are displayed as well.)144 638.4 R(The)6.308 E F1<ad46>
-3.808 E F0 .19(option implies)144 650.4 R F1<ad66>2.69 E F0 5.19(.T)C
-.19(he follo)-5.19 F .191
-(wing options can be used to restrict output to v)-.25 F .191
-(ariables with the speci-)-.25 F(\214ed attrib)144 662.4 Q(ute or to gi)
--.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144
-674.4 Q F0(Each)25.3 E F2(name)2.5 E F0(is an array 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<ad66>144 686.4 Q F0(Use function names only)26.97 E(.)-.65 E F1
-<ad69>144 698.4 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 F3 .557(ARITHMETIC EV)3.058 F(ALU)
--1.215 E(A-)-.54 E(TION \))180 710.4 Q F0(is performed when the v)2.25 E
-(ariable is assigned a v)-.25 E(alue.)-.25 E(GNU Bash-3.1-beta1)72 768 Q
-(2005 Aug 27)122.91 E(48)197.89 E 0 Cg EP
+(he)-2.966 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(48)199.835 E 0
+Cg EP
 %%Page: 49 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/F1 10/Times-Bold@0 SF<ad72>144 84 Q F0(Mak)25.86 E(e)-.1 E/F2 10
-/Times-Italic@0 SF(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 96 Q F1
-<ad74>144 108 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
+-.35 E 1.308(source \214le name and line number where the function is d\
+e\214ned are displayed as well.)144 84 R(The)6.309 E/F1 10/Times-Bold@0
+SF<ad46>3.809 E F0 .191(option implies)144 96 R F1<ad66>2.691 E F0 5.191
+(.T)C .191(he follo)-5.191 F .191
+(wing options can be used to restrict output to v)-.25 F .19
+(ariables with the speci-)-.25 F(\214ed attrib)144 108 Q(ute or to gi)
+-.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144
+120 Q F0(Each)25.3 E/F2 10/Times-Italic@0 SF(name)2.5 E F0
+(is an array 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<ad66>144 132 Q F0(Use function names only)
+26.97 E(.)-.65 E F1<ad69>144 144 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 .558
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 156 Q F0
+(is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.)
+-.25 E F1<ad72>144 168 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
+(alues by subsequent)-.25 F(assignment statements or unset.)180 180 Q F1
+<ad74>144 192 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.)
-180 120 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
-(ariables.)-.25 E F1<ad78>144 132 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5
+-.1 E F0(and)2.93 E F1(RETURN)2.93 E F0(traps from the calling shell.)
+180 204 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
+(ariables.)-.25 E F1<ad78>144 216 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 .336(Using `+' instead of `\255' turns of)144 148.8 R
+(vironment.)-.4 E .337(Using `+' instead of `\255' turns of)144 232.8 R
 2.837(ft)-.25 G .337(he attrib)-2.837 F .337(ute instead, with the e)-.2
-F .337(xception that)-.15 F F1(+a)2.837 E F0 .337(may not be used)2.837
-F .793(to destro)144 160.8 R 3.293(ya)-.1 G 3.293(na)-3.293 G .793
+F .336(xception that)-.15 F F1(+a)2.836 E F0 .336(may not be used)2.836
+F .792(to destro)144 244.8 R 3.293(ya)-.1 G 3.293(na)-3.293 G .793
 (rray v)-3.293 F 3.293(ariable. When)-.25 F .793
 (used in a function, mak)3.293 F .793(es each)-.1 F F2(name)3.293 E F0
-.793(local, as with the)3.293 F F1(local)3.292 E F0 2.842(command. If)
-144 172.8 R 2.842(av)2.842 G .342(ariable name is follo)-3.092 F .342
+.793(local, as with the)3.293 F F1(local)3.293 E F0 2.843(command. If)
+144 256.8 R 2.843(av)2.843 G .342(ariable name is follo)-3.093 F .342
 (wed by =)-.25 F F2(value)A F0 2.842(,t)C .342(he v)-2.842 F .342
-(alue of the v)-.25 F .343(ariable is set to)-.25 F F2(value)2.843 E F0
-5.343(.T)C(he)-5.343 E .801(return v)144 184.8 R .801
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G .8
+(alue of the v)-.25 F .342(ariable is set to)-.25 F F2(value)2.842 E F0
+5.342(.T)C(he)-5.342 E .8(return v)144 268.8 R .8
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .801
 (lid option is encountered, an attempt is made to de\214ne a function)
-.25 F(using)144 196.8 Q/F3 10/Courier@0 SF 1.038(\255f foo=bar)3.538 F
-F0 3.538(,a)C 3.538(na)-3.538 G 1.038(ttempt is made to assign a v)
--3.538 F 1.038(alue to a readonly v)-.25 F 1.039(ariable, an attempt is)
--.25 F .974(made to assign a v)144 208.8 R .974(alue to an array v)-.25
+.25 F(using)144 280.8 Q/F4 10/Courier@0 SF 1.039(\255f foo=bar)3.539 F
+F0 3.539(,a)C 3.539(na)-3.539 G 1.038(ttempt is made to assign a v)
+-3.539 F 1.038(alue to a readonly v)-.25 F 1.038(ariable, an attempt is)
+-.25 F .974(made to assign a v)144 292.8 R .974(alue to an array v)-.25
 F .974(ariable without using the compound assignment syntax \(see)-.25 F
-F1(Arrays)144 220.8 Q F0(abo)2.86 E -.15(ve)-.15 G .36(\), one of the)
+F1(Arrays)144 304.8 Q F0(abo)2.86 E -.15(ve)-.15 G .36(\), one of the)
 .15 F F2(names)2.86 E F0 .36(is not a v)2.86 F .36(alid shell v)-.25 F
-.36(ariable name, an attempt is made to turn of)-.25 F(f)-.25 E .057
-(readonly status for a readonly v)144 232.8 R .057
-(ariable, an attempt is made to turn of)-.25 F 2.556(fa)-.25 G .056
-(rray status for an array v)-2.556 F(ari-)-.25 E
-(able, or an attempt is made to display a non-e)144 244.8 Q
+.36(ariable name, an attempt is made to turn of)-.25 F(f)-.25 E .056
+(readonly status for a readonly v)144 316.8 R .057
+(ariable, an attempt is made to turn of)-.25 F 2.557(fa)-.25 G .057
+(rray status for an array v)-2.557 F(ari-)-.25 E
+(able, or an attempt is made to display a non-e)144 328.8 Q
 (xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1
-(dirs [\255clpv] [+)108 261.6 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1
-(])A F0 -.4(Wi)144 273.6 S .328
+(dirs [\255clpv] [+)108 345.6 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1
+(])A F0 -.4(Wi)144 357.6 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
-(single line with directory names separated by spaces.)144 285.6 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 297.6 Q
+.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 369.6 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 381.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 309.6 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
-(without options, starting with zero.)180 321.6 Q F1<ad>144 333.6 Q F2
+2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 393.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
+(without options, starting with zero.)180 405.6 Q F1<ad>144 417.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
 F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 345.6 Q F1<ad63>144 357.6 Q F0
+(without options, starting with zero.)180 429.6 Q F1<ad63>144 441.6 Q F0
 (Clears the directory stack by deleting all of the entries.)25.86 E F1
-<ad6c>144 369.6 Q F0 .324(Produces a longer listing; the def)27.52 F
+<ad6c>144 453.6 Q F0 .324(Produces a longer listing; the def)27.52 F
 .324(ault listing format uses a tilde to denote the home direc-)-.1 F
-(tory)180 381.6 Q(.)-.65 E F1<ad70>144 393.6 Q F0
+(tory)180 465.6 Q(.)-.65 E F1<ad70>144 477.6 Q F0
 (Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-405.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 417.6 Q .257(The return v)144 434.4 R .258
+489.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 501.6 Q .258(The return v)144 518.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-)
-.15 F(tory stack.)144 446.4 Q F1(diso)108 463.2 Q(wn)-.1 E F0([)2.5 E F1
+.15 F(tory stack.)144 530.4 Q F1(diso)108 547.2 Q(wn)-.1 E F0([)2.5 E F1
 (\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C F2(jobspec)-2.5 E F0
-(...])2.5 E -.4(Wi)144 475.2 S .331(thout options, each).4 F F2(jobspec)
-4.571 E F0 .331(is remo)3.141 F -.15(ve)-.15 G 2.831(df).15 G .331
-(rom the table of acti)-2.831 F .63 -.15(ve j)-.25 H 2.83(obs. If).15 F
-(the)2.83 E F1<ad68>2.83 E F0 .33(option is gi)2.83 F -.15(ve)-.25 G(n,)
-.15 E(each)144 487.2 Q F2(jobspec)4.52 E F0 .28(is not remo)3.09 F -.15
-(ve)-.15 G 2.78(df).15 G .28(rom the table, b)-2.78 F .28(ut is mark)-.2
-F .28(ed so that)-.1 F/F4 9/Times-Bold@0 SF(SIGHUP)2.78 E F0 .281
-(is not sent to the job if)2.53 F .224(the shell recei)144 499.2 R -.15
-(ve)-.25 G 2.724(sa).15 G F4(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 .224
+(...])2.5 E -.4(Wi)144 559.2 S .33(thout options, each).4 F F2(jobspec)
+4.57 E F0 .33(is remo)3.14 F -.15(ve)-.15 G 2.83(df).15 G .331
+(rom the table of acti)-2.83 F .631 -.15(ve j)-.25 H 2.831(obs. If).15 F
+(the)2.831 E F1<ad68>2.831 E F0 .331(option is gi)2.831 F -.15(ve)-.25 G
+(n,).15 E(each)144 571.2 Q F2(jobspec)4.521 E F0 .281(is not remo)3.091
+F -.15(ve)-.15 G 2.78(df).15 G .28(rom the table, b)-2.78 F .28
+(ut is mark)-.2 F .28(ed so that)-.1 F F3(SIGHUP)2.78 E F0 .28
+(is not sent to the job if)2.53 F .223(the shell recei)144 583.2 R -.15
+(ve)-.25 G 2.724(sa).15 G F3(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 .224
 (If no)4.724 F F2(jobspec)4.464 E F0 .224(is present, and neither the)
-3.034 F F1<ad61>2.724 E F0 .224(nor the)2.724 F F1<ad72>2.724 E F0 .223
-(option is sup-)2.724 F .651(plied, the)144 511.2 R F2(curr)3.151 E .651
-(ent job)-.37 F F0 .651(is used.)3.151 F .652(If no)5.651 F F2(jobspec)
-4.892 E F0 .652(is supplied, the)3.462 F F1<ad61>3.152 E F0 .652
-(option means to remo)3.152 F .952 -.15(ve o)-.15 H 3.152(rm).15 G(ark)
--3.152 E .435(all jobs; the)144 523.2 R F1<ad72>2.935 E F0 .435
-(option without a)2.935 F F2(jobspec)4.675 E F0(ar)3.245 E .434
-(gument restricts operation to running jobs.)-.18 F .434(The return)
-5.434 F -.25(va)144 535.2 S(lue 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 552 Q
+3.034 F F1<ad61>2.724 E F0 .224(nor the)2.724 F F1<ad72>2.724 E F0 .224
+(option is sup-)2.724 F .652(plied, the)144 595.2 R F2(curr)3.152 E .652
+(ent job)-.37 F F0 .652(is used.)3.152 F .652(If no)5.652 F F2(jobspec)
+4.892 E F0 .652(is supplied, the)3.462 F F1<ad61>3.152 E F0 .651
+(option means to remo)3.151 F .951 -.15(ve o)-.15 H 3.151(rm).15 G(ark)
+-3.151 E .434(all jobs; the)144 607.2 R F1<ad72>2.934 E F0 .434
+(option without a)2.934 F F2(jobspec)4.675 E F0(ar)3.245 E .435
+(gument restricts operation to running jobs.)-.18 F .435(The return)
+5.435 F -.25(va)144 619.2 S(lue 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 636 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 564 R F2(ar)2.894 E(g)-.37 E F0 .394
+.395(Output the)144 648 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
-(is speci\214ed, the trailing ne)144 576 R .548(wline is suppressed.)
+(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 660 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 588 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 600 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 612 R F1
-(echo)2.509 E F0 -.15(ex)2.51 G .01(pands these escape characters).15 F
-.66(by def)144 624 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 636 Q F1
-(\\a)144 648 Q F0(alert \(bell\))28.22 E F1(\\b)144 660 Q F0(backspace)
-27.66 E F1(\\c)144 672 Q F0(suppress trailing ne)28.78 E(wline)-.25 E F1
-(\\e)144 684 Q F0(an escape character)28.78 E F1(\\f)144 696 Q F0
-(form feed)29.89 E F1(\\n)144 708 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5
-E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(49)197.89 E 0 Cg EP
+-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 672 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 684 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 696 R F1
+(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters).15
+F .659(by def)144 708 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 720 Q
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(49)199.835 E 0 Cg EP
 %%Page: 50 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(\\r)144 84 Q F0(carriage return)28.78 E F1
-(\\t)144 96 Q F0(horizontal tab)29.89 E F1(\\v)144 108 Q F0 -.15(ve)
-28.22 G(rtical tab).15 E F1(\\\\)144 120 Q F0(backslash)30.44 E F1(\\0)
-144 132 Q/F2 10/Times-Italic@0 SF(nnn)A F0
+-.35 E/F1 10/Times-Bold@0 SF(\\a)144 84 Q F0(alert \(bell\))28.22 E F1
+(\\b)144 96 Q F0(backspace)27.66 E F1(\\c)144 108 Q F0
+(suppress trailing ne)28.78 E(wline)-.25 E F1(\\e)144 120 Q F0
+(an escape character)28.78 E F1(\\f)144 132 Q F0(form feed)29.89 E F1
+(\\n)144 144 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 156 Q
+F0(carriage return)28.78 E F1(\\t)144 168 Q F0(horizontal tab)29.89 E F1
+(\\v)144 180 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)144 192 Q F0
+(backslash)30.44 E F1(\\0)144 204 Q/F2 10/Times-Italic@0 SF(nnn)A F0
 (the eight-bit character whose v)13.22 E(alue is the octal v)-.25 E
 (alue)-.25 E F2(nnn)2.5 E F0(\(zero to three octal digits\))2.5 E F1(\\)
-144 144 Q F2(nnn)A F0(the eight-bit character whose v)18.22 E
+144 216 Q F2(nnn)A F0(the eight-bit character whose v)18.22 E
 (alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
-(\(one to three octal digits\))2.5 E F1(\\x)144 156 Q F2(HH)A F0
+(\(one to three octal digits\))2.5 E F1(\\x)144 228 Q F2(HH)A F0
 (the eight-bit character whose v)13.78 E(alue is the he)-.25 E
 (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 172.8 Q F0([)2.5 E
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 244.8 Q F0([)2.5 E
 F1(\255adnps)A 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(Enable and disable b)144 184.8 R
+C F2(name)-2.5 E F0(...])2.5 E .278(Enable and disable b)144 256.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 .834
-(the same name as a shell b)144 196.8 R .834(uiltin to be e)-.2 F -.15
+(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .833
+(the same name as a shell b)144 268.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.333(nt).15 G(hough)-3.333 E .989
-(the shell normally searches for b)144 208.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 220.8 R F2(names)4.082 E F0 1.582(are enabled.)
+(ve)-.25 G 3.334(nt).15 G(hough)-3.334 E .99
+(the shell normally searches for b)144 280.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 292.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 232.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 244.8 S 1.525
-(iltin command).2 F F2(name)4.385 E F0 1.524(from shared object)4.204 F
+SF -.666(PA)4.082 G(TH)-.189 E F0 .081(instead of the shell b)144 304.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 316.8 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 256.8 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 268.8 R F1<ad70>
-2.899 E F0 .399(option is supplied, a list of shell b)2.899 F .399
+(ystems that support dynamic loading.)-4.024 F(The)144 328.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 340.8 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 .398(guments, the)-.18 F .098(list consists of all enabled shell b)144
-280.8 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 292.8 R 1.916
-(uiltins, with an indication of whether or not each is)-.2 F 2.878
-(enabled. If)144 304.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 316.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
-328.8 Q F1 -2.3 -.15(ev a)108 345.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(The)144 357.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 369.6 R -.15(xe)-.15 G
-.495(cuted by the shell, and its e).15 F .495
+F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
+352.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, the list printed includes all b)144 364.8 R 1.916
+(uiltins, with an indication of whether or not each is)-.2 F 2.879
+(enabled. If)144 376.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 388.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
+400.8 Q F1 -2.3 -.15(ev a)108 417.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
+E F0(...])2.5 E(The)144 429.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 441.6 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 381.6 Q
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 453.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 398.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(exec)108 470.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 410.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 422.4 R .177
+-.37 E F0(]])A(If)144 482.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 494.4 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 .159(the zeroth ar)144 434.4 R 2.659(gp)-.18 G .159
-(assed to)-2.659 F F2(command)2.659 E F0 5.159(.T).77 G .159
-(his is what)-5.159 F F2(lo)2.659 E(gin)-.1 E F0 .159(\(1\) does.).24 F
-(The)5.16 E F1<ad63>2.66 E F0 .16(option causes)2.66 F F2(command)2.86 E
-F0(to)3.43 E 1.196(be e)144 446.4 R -.15(xe)-.15 G 1.196
-(cuted with an empty en).15 F 3.696(vironment. If)-.4 F F1<ad61>3.696 E
-F0 1.196(is supplied, the shell passes)3.696 F F2(name)4.055 E F0 1.195
-(as the zeroth)3.875 F(ar)144 458.4 Q .02(gument to the e)-.18 F -.15
+(option is supplied, the shell places a dash at the be)2.676 F .177
+(ginning of)-.15 F .16(the zeroth ar)144 506.4 R 2.66(gp)-.18 G .16
+(assed to)-2.66 F F2(command)2.66 E F0 5.16(.T).77 G .159(his is what)
+-5.16 F F2(lo)2.659 E(gin)-.1 E F0 .159(\(1\) does.).24 F(The)5.159 E F1
+<ad63>2.659 E F0 .159(option causes)2.659 F F2(command)2.859 E F0(to)
+3.429 E 1.195(be e)144 518.4 R -.15(xe)-.15 G 1.195
+(cuted with an empty en).15 F 3.695(vironment. If)-.4 F F1<ad61>3.696 E
+F0 1.196(is supplied, the shell passes)3.696 F F2(name)4.056 E F0 1.196
+(as the zeroth)3.876 F(ar)144 530.4 Q .02(gument to the e)-.18 F -.15
 (xe)-.15 G .02(cuted command.).15 F(If)5.02 E F2(command)2.72 E F0 .02
 (cannot be e)3.29 F -.15(xe)-.15 G .02
-(cuted for some reason, a non-inter).15 F(-)-.2 E(acti)144 470.4 Q 1.067
--.15(ve s)-.25 H .767(hell e).15 F .767(xits, unless the shell option)
+(cuted for some reason, a non-inter).15 F(-)-.2 E(acti)144 542.4 Q 1.066
+-.15(ve s)-.25 H .766(hell e).15 F .766(xits, unless the shell option)
 -.15 F F1(execfail)3.266 E F0 .766
-(is enabled, in which case it returns f)3.266 F 3.266(ailure. An)-.1 F
-(interacti)144 482.4 Q 1.518 -.15(ve s)-.25 H 1.218(hell returns f).15 F
+(is enabled, in which case it returns f)3.266 F 3.267(ailure. An)-.1 F
+(interacti)144 554.4 Q 1.519 -.15(ve s)-.25 H 1.219(hell returns f).15 F
 1.219(ailure if the \214le cannot be e)-.1 F -.15(xe)-.15 G 3.719
-(cuted. If).15 F F2(command)3.919 E F0 1.219(is not speci\214ed, an)
-4.489 F(y)-.15 E .134(redirections tak)144 494.4 R 2.634(ee)-.1 G -.25
-(ff)-2.634 G .134(ect in the current shell, and the return status is 0.)
+(cuted. If).15 F F2(command)3.918 E F0 1.218(is not speci\214ed, an)
+4.488 F(y)-.15 E .133(redirections tak)144 566.4 R 2.633(ee)-.1 G -.25
+(ff)-2.633 G .134(ect in the current shell, and the return status is 0.)
 .25 F .134(If there is a redirection error)5.134 F(,)-.4 E
-(the return status is 1.)144 506.4 Q F1(exit)108 523.2 Q F0([)2.5 E F2
-(n)A F0 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 535.2 S 2.5
+(the return status is 1.)144 578.4 Q F1(exit)108 595.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)-.15 F -.15(exe)144 607.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 552 Q F0([)2.5
+G(cuted before the shell terminates.).15 E F1(export)108 624 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 564 Q F0 .257(The supplied)144 576 R F2
+F0(]] ...)A F1(export \255p)108 636 Q F0 .256(The supplied)144 648 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.626(commands. If)144 588 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
+(xe)-.15 G(cuted).15 E 2.627(commands. If)144 660 R(the)2.627 E F1<ad66>
+2.627 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 .127(n, or if the)
-.15 F F1<ad70>144 600 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 612 R 1.586
+(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 672 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 684 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 F2(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 624 Q F2
-(wor)A(d)-.37 E F0 2.804(,t)C .304(he v)-2.804 F .304(alue of the v)-.25
+1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 696 Q F2
+(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 F2(wor)2.804 E(d)-.37 E F0(.)A F1
-(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 636 R F2(names)2.793 E F0 .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 708 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 .294(is supplied with a)2.793 F F2(name)144.36 648
-Q F0(that is not a function.)2.68 E F1(fc)108 664.8 Q F0([)2.5 E F1
-<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255nlr)-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
-676.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 .478(Fix Command.)144 688.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 700.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
-.882(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
-712.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 .796(umber is used as an)
-.15 F(of)144 724.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
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(50)197.89 E 0 Cg EP
+F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36 720
+Q F0(that is not a function.)2.68 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)
+149.845 E(50)199.835 E 0 Cg EP
 %%Page: 51 52
 %%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 .093(for listing \(so that)144 84 R/F1 10/Courier@0 SF .092
+-.35 E/F1 10/Times-Bold@0 SF(fc)108 84 Q F0([)2.5 E F1<ad65>A/F2 10
+/Times-Italic@0 SF(ename)2.5 E F0 2.5(][)C F1(\255nlr)-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 96 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 108 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 120 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
+(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
+132 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 144 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
+(for listing \(so that)144 156 R/F3 10/Courier@0 SF .092
 (fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to)
-2.592 F/F2 10/Times-Italic@0 SF<8c72>4.502 E(st)-.1 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 96 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 120 Q
-/F3 10/Times-Bold@0 SF<ad6e>2.522 E F0 .022
+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 168 Q
+(vious command for editing and \25516 for listing.)-.25 E(The)144 192 Q
+F1<ad6e>2.522 E F0 .022
 (option suppresses the command numbers when listing.)2.522 F(The)5.022 E
-F3<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 132 R .438(If the)5.438
-F F3<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
+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 204 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
-.334(the editor gi)144 144 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)
+.335(the editor gi)144 216 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(do)
 .1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 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 .631(the v)144 156 R .631(alue of the)-.25 F/F4 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 F4(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F4
-(FCEDIT)3.13 E F0 .63(is not set.)2.88 F .63(If nei-)5.63 F .95(ther v)
-144 168 R .95(ariable is set,)-.25 F F2(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 180 S(cuted.).15 E .04(In the second form,)144 204 R F2
-(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 216 R F1 .406(r='fc \255s')
-2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F1
-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 F1(cc)144 228 Q F0(and typing)2.5 E F1(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 252 R .142
+(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+(n,).15 E .63(the v)144 228 R .63(alue of the)-.25 F/F4 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 F4(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F4(FCEDIT)
+3.131 E F0 .631(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144
+240 R .951(ariable is set,)-.25 F F2(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 252 S(cuted.).15 E .039(In the second form,)144 276 R F2
+(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)-2.5 E .406
+(alias to use with this is)144 288 R F3 .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 300 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 324 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 .454(specify history lines out of range.)144 264 R
-.454(If the)5.454 F F3<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 276 R -.15(xe)-.15 G .788
-(cuted or f).15 F .787
+E F2(last)2.732 E F0 .455(specify history lines out of range.)144 336 R
+.454(If the)5.454 F F1<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 348 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
-288 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 300 Q
-(alid history line, in which case)-.25 E F3(fc)2.5 E F0(returns f)2.5 E
-(ailure.)-.1 E F3(fg)108 316.8 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
-144 328.8 Q F2(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
+360 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 372 Q
+(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E F1(fg)108 388.8 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
+144 400.8 Q F2(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 F2(jobspec)5.653 E F0
-1.413(is not present, the)4.223 F(shell')144 340.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 352.8 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
-(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 364.8 Q
-F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F2(jobspec)
+1.414(is not present, the)4.223 F(shell')144 412.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
+(alue is that of the command placed into the)-.25 F(fore)144 424.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
+(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 436.8 Q
+F0 .004(does not specify a v)2.815 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 F3(getopts)108 381.6 Q F2
-(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F3(getopts)144
-393.6 Q F0 .793
-(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 405.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 417.6 Q .579
-(gument, which should be separated from it by white space.)-.18 F .578
+(as started without job control.)-.1 F F1(getopts)108 453.6 Q F2
+(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1(getopts)144
+465.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 477.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 489.6 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 429.6 R 1.665
-(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F3(getopts)
-4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797
-(option in the shell v)144 441.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 453.6 Q .085
+(acters may not be used as option characters.)144 501.6 R 1.665
+(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts)
+4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
+(option in the shell v)144 513.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 525.6 Q .085
 (gument to be processed into the v)-.18 F(ariable)-.25 E F4(OPTIND)2.585
 E/F5 9/Times-Roman@0 SF(.)A F4(OPTIND)4.585 E F0 .085
-(is initialized to 1 each time the shell)2.335 F .846
-(or a shell script is in)144 465.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 F3
-(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E .803
-(into the v)144 477.6 R(ariable)-.25 E F4(OPT)3.303 E(ARG)-.81 E F5(.)A
-F0 .803(The shell does not reset)5.303 F F4(OPTIND)3.303 E F0 .804
-(automatically; it must be manually)3.054 F .294
-(reset between multiple calls to)144 489.6 R F3(getopts)2.793 E F0 .293
+(is initialized to 1 each time the shell)2.335 F .845
+(or a shell script is in)144 537.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 F1
+(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804
+(into the v)144 549.6 R(ariable)-.25 E F4(OPT)3.304 E(ARG)-.81 E F5(.)A
+F0 .803(The shell does not reset)5.304 F F4(OPTIND)3.303 E F0 .803
+(automatically; it must be manually)3.053 F .293
+(reset between multiple calls to)144 561.6 R F1(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 501.6
-Q 2.043(When the end of options is encountered,)144 525.6 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(OPTIND)144 537.6 Q F0
+2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 573.6
+Q 2.044(When the end of options is encountered,)144 597.6 R F1(getopts)
+4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043
+(alue greater than zero.)-.25 F F1(OPTIND)144 609.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 F3(name)2.5 E F0
-(is set to ?.)2.5 E F3(getopts)144 561.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 F3(getopts)144
-573.6 Q F0(parses those instead.)2.5 E F3(getopts)144 597.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 609.6 R 1.263
+(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0
+(is set to ?.)2.5 E F1(getopts)144 633.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 F1(getopts)144
+645.6 Q F0(parses those instead.)2.5 E F1(getopts)144 669.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
+(reporting is used.)144 681.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 .393(missing option ar)144
-621.6 R .393(guments are encountered.)-.18 F .394(If the v)5.394 F
+-.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144
+693.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F
 (ariable)-.25 E F4(OPTERR)2.894 E F0 .394
-(is set to 0, no error messages)2.644 F(will be displayed, e)144 633.6 Q
+(is set to 0, no error messages)2.644 F(will be displayed, e)144 705.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 .667(If an in)144 657.6 R
--.25(va)-.4 G .667(lid option is seen,).25 F F3(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
-669.6 R F4(OPT)2.899 E(ARG)-.81 E F5(.)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 F4
-(OPT)2.899 E(ARG)-.81 E F0 .4(and no)2.65 F
-(diagnostic message is printed.)144 681.6 Q 1.242(If a required ar)144
-705.6 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 F2(name)144 717.6
-Q F0(,).18 E F4(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 729.6 Q F2(name)2.86 E F0(and)2.68 E F4
-(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(51)197.89 E 0 Cg EP
+F2(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 729.6 R
+-.25(va)-.4 G .666(lid option is seen,).25 F F1(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(GNU Bash-3.2)72 768
+Q(2006 Jan 26)149.845 E(51)199.835 E 0 Cg EP
 %%Page: 52 53
 %%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(getopts)144 84 Q F0 .902
+-.35 E .4(and unsets)144 84 R/F1 9/Times-Bold@0 SF(OPT)2.9 E(ARG)-.81 E
+/F2 9/Times-Roman@0 SF(.)A F0(If)4.899 E/F3 10/Times-Bold@0 SF(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 96 Q 1.241(If a required ar)144 120
+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 10/Times-Italic@0 SF
+(name)144 132 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 144 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 168 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
-(options is encountered or an error occurs.)144 96 Q F1(hash)108 112.8 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 124.8 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 d\
-etermined by searching the directories in)-3.554 F F1($P)144 136.8 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.759 E F0 .452
-(is used as the full \214le name of the command.)144 148.8 R(The)5.452 E
-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 160.8 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 172.8 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 184.8 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 196.8 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 208.8 R -.15(ve)-.25 G 1.184(n, or if only).15 F
-F1<ad6c>3.684 E F0 1.183
+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 180 Q F3(hash)108 196.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 208.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.555 F F3($P)144 220.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.76 E F0 .452
+(is used as the full \214le name of the command.)144 232.8 R(The)5.452 E
+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 244.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 256.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 268.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.204
+(is printed before the hashed full pathname.)3.703 F(The)144 280.8 Q F3
+<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 292.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 220.8 Q F2(name)2.86 E F0
+(The return status is true unless a)144 304.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 F1(help)108 237.6 Q F0([)2.5 E F1<ad73>A F0 2.5(][)C F2(pattern)-2.5 E
-F0(])A .866(Display helpful information about b)144 249.6 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
-261.6 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 .596(tures is printed.)144 273.6
-R(The)5.596 E F1<ad73>3.096 E F0 .596
+E F3(help)108 321.6 Q F0([)2.5 E F3<ad73>A F0 2.5(][)C F4(pattern)-2.5 E
+F0(])A .867(Display helpful information about b)144 333.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
+345.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 .596(tures is printed.)144 357.6
+R(The)5.596 E F3<ad73>3.096 E F0 .596
 (option restricts the information displayed to a short usage synopsis.)
 3.096 F(The)5.596 E(return status is 0 unless no command matches)144
-285.6 Q F2(pattern)2.5 E F0(.).24 E F1(history [)108 302.4 Q F2(n)A F1
-(])A(history \255c)108 314.4 Q(history \255d)108 326.4 Q F2(of)2.5 E
-(fset)-.18 E F1(history \255anrw)108 338.4 Q F0([)2.5 E F2(\214lename)A
-F0(])A F1(history \255p)108 350.4 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2
-(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 362.4 Q F2(ar)
-2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)
-144 374.4 S .752
+369.6 Q F4(pattern)2.5 E F0(.).24 E F3(history [)108 386.4 Q F4(n)A F3
+(])A(history \255c)108 398.4 Q(history \255d)108 410.4 Q F4(of)2.5 E
+(fset)-.18 E F3(history \255anrw)108 422.4 Q F0([)2.5 E F4(\214lename)A
+F0(])A F3(history \255p)108 434.4 Q F4(ar)2.5 E(g)-.37 E F0([)2.5 E F4
+(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A F3(history \255s)108 446.4 Q F4(ar)
+2.5 E(g)-.37 E F0([)2.5 E F4(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)
+144 458.4 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 386.4 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 398.4 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 410.4 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
-(ted time stamp and the history line.)144 422.4 R(If)5.814 E F2
+.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 470.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 482.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 .379
+(associated with each displayed history entry)144 494.4 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 506.4 R(If)5.814 E F4
 (\214lename)3.314 E F0 .814
 (is supplied, it is used as the name of the history)3.314 F
-(\214le; if not, the v)144 434.4 Q(alue of)-.25 E/F3 9/Times-Bold@0 SF
-(HISTFILE)2.5 E F0(is used.)2.25 E(Options, if supplied, ha)5 E .3 -.15
-(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad63>144 446.4 Q F0
-(Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
-458.4 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
-180 470.4 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 482.4 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
-(ginning of the current)-.15 F F1(bash)180 494.4 Q F0
-(session\) to the history \214le.)2.5 E F1<ad6e>144 506.4 Q F0 .854(Rea\
+(\214le; if not, the v)144 518.4 Q(alue of)-.25 E F1(HISTFILE)2.5 E F0
+(is used.)2.25 E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F3<ad63>144 530.4 Q F0
+(Clear the history list by deleting all the entries.)25.86 E F3<ad64>144
+542.4 Q F4(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
+180 554.4 Q F4(of)2.5 E(fset)-.18 E F0(.)A F3<ad61>144 566.4 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 578.4 Q F0
+(session\) to the history \214le.)2.5 E F3<ad6e>144 590.4 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
-(These are lines appended to the history \214le since the be)180 518.4 R
-.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
-(sion.)180 530.4 Q F1<ad72>144 542.4 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 554.4 Q F0(Write the current history to the history \214le, o)23.08
+urrent history list.)24.74 F .773
+(These are lines appended to the history \214le since the be)180 602.4 R
+.772(ginning of the current)-.15 F F3(bash)3.272 E F0(ses-)3.272 E
+(sion.)180 614.4 Q F3<ad72>144 626.4 Q F0(Read the contents of the hist\
+ory \214le and use them as the current history)25.86 E(.)-.65 E F3<ad77>
+144 638.4 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 566.4 Q F0 .626
-(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
-2.975(output. Does)180 578.4 R .475
-(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
+(ontents.)-2.5 E F3<ad70>144 650.4 Q F0 .625
+(Perform history substitution on the follo)24.74 F(wing)-.25 E F4(ar)
+3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F
+2.975(output. Does)180 662.4 R .475
+(not store the results in the history list.)2.975 F(Each)5.475 E F4(ar)
 2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 590.4 Q(xpansion.)-.15 E F1<ad73>144 602.4 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
-(he last command in the history list is)-5.363 F(remo)180 614.4 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 631.2 R F1(HISTTIMEFORMA)2.78 E(T)-.95
+(normal history e)180 674.4 Q(xpansion.)-.15 E F3<ad73>144 686.4 Q F0
+.362(Store the)26.41 F F4(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 698.4 Q -.15
+(ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F4(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .28(If the)144 715.2 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 .216(is written to the history \214le.)144 643.2 R .216
+2.78 F .216(is written to the history \214le.)144 727.2 R .216
 (The return v)5.216 F .216(alue is 0 unless an in)-.25 F -.25(va)-.4 G
-.216(lid option is encountered, an error).25 F .422
-(occurs while reading or writing the history \214le, an in)144 655.2 R
--.25(va)-.4 G(lid).25 E F2(of)2.922 E(fset)-.18 E F0 .422
-(is supplied as an ar)2.922 F .422(gument to)-.18 F F1<ad64>2.922 E F0
-(,)A(or the history e)144 667.2 Q(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 F1(jobs)108
-684 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])2.5 E
-F1(jobs \255x)108 696 Q F2(command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs)-.37
-E F0(... ])2.5 E(The \214rst form lists the acti)144 708 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(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)
-122.91 E(52)197.89 E 0 Cg EP
+.216(lid option is encountered, an error).25 F(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(52)199.835 E 0 Cg EP
 %%Page: 53 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/F1 10/Times-Bold@0 SF<ad6c>144 84 Q F0
-(List process IDs in addition to the normal information.)27.52 E F1
-<ad70>144 96 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 108 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
-(\214ed of their status.)180 120 Q F1<ad72>144 132 Q F0
-(Restrict output to running jobs.)25.86 E F1<ad73>144 144 Q F0
-(Restrict output to stopped jobs.)26.41 E(If)144 160.8 Q/F2 10
-/Times-Italic@0 SF(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 172.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
-189.6 R F1<ad78>2.895 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(with the corre-)3.164 F(sponding process group ID, and e)144
-201.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 F1(kill)108 218.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 230.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
-242.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 254.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 266.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)
+-.35 E .422(occurs while reading or writing the history \214le, an in)
+144 84 R -.25(va)-.4 G(lid).25 E/F1 10/Times-Italic@0 SF(of)2.922 E
+(fset)-.18 E F0 .422(is supplied as an ar)2.922 F .421(gument to)-.18 F
+/F2 10/Times-Bold@0 SF<ad64>2.921 E F0(,)A(or the history e)144 96 Q
+(xpansion supplied as an ar)-.15 E(gument to)-.18 E F2<ad70>2.5 E F0 -.1
+(fa)2.5 G(ils.).1 E F2(jobs)108 112.8 Q F0([)2.5 E F2(\255lnprs)A F0 2.5
+(][)C F1(jobspec)A F0(... ])2.5 E F2(jobs \255x)108 124.8 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 136.8 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 F2<ad6c>144 148.8 Q F0
+(List process IDs in addition to the normal information.)27.52 E F2
+<ad70>144 160.8 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 F2<ad6e>144 172.8 Q F0
+.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 184.8 Q F2<ad72>144 196.8 Q F0
+(Restrict output to running jobs.)25.86 E F2<ad73>144 208.8 Q F0
+(Restrict output to stopped jobs.)26.41 E(If)144 225.6 Q F1(jobspec)
+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 237.6 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 .394(If the)144 254.4 R F2
+<ad78>2.894 E F0 .394(option is supplied,)2.894 F F2(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 .395
+(with the corre-)3.164 F(sponding process group ID, and e)144 266.4 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
+F2(kill)108 283.2 Q F0([)2.5 E F2<ad73>A F1(sigspec)2.5 E F0(|)2.5 E F2
+<ad6e>2.5 E F1(signum)2.5 E F0(|)2.5 E F2<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 F2
+(kill \255l)108 295.2 Q F0([)2.5 E F1(sigspec)A F0(|)2.5 E F1 -.2(ex)2.5
+G(it_status).2 E F0(])A .12(Send the signal named by)144 307.2 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 319.2 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 331.2 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 F3(SIGTERM)3.849 E F0
-1.349(is assumed.)3.599 F(An)6.349 E(ar)144 278.4 Q .523(gument of)-.18
-F F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)
+1.348(is assumed.)3.599 F(An)6.348 E(ar)144 343.2 Q .522(gument of)-.18
+F F2<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 290.4
+.18 F F2<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 355.2
 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 302.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 314.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
-(occurs or an in)144 326.4 Q -.25(va)-.4 G(lid option is encountered.)
-.25 E F1(let)108 343.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 355.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 367.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 384 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 396 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 408 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
+F1 -.2(ex)2.78 G(it_status).2 E F0(ar)144 367.2 Q .377(gument to)-.18 F
+F2<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 379.2
+R F2(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 .593(alse if an error)-.1 F
+(occurs or an in)144 391.2 Q -.25(va)-.4 G(lid option is encountered.)
+.25 E F2(let)108 408 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 420 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 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 432 Q F1(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
+(luates to 0,).25 E F2(let)2.5 E F0(returns 1; 0 is returned otherwise.)
+2.5 E F2(local)108 448.8 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 460.8 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 472.8 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652
+(he options accepted by)-3.152 F F2(declar)3.152 E(e)-.18 E F0 5.652(.W)
+C(hen)-5.652 E F2(local)3.152 E F0 .653
 (is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-420 Q F2(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.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 432 Q F0 1.165
-(writes a list of local v)3.665 F 1.165
+484.8 Q F1(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.86 G .86(th no operands,).4 F F2(local)144 496.8 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 444 R .233(The return status is 0 unless)5.232 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 456 Q
-F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108
-472.8 Q F0(Exit a login shell.)9.33 E F1(popd)108 489.6 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 501.6 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
-513.6 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 525.6 Q F1(+)144 537.6 Q F2(n)A F0(Remo)25.3
-E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0 .14
-(th entry counting from the left of the list sho)B .14(wn by)-.25 F F1
+6.165 F F2(local)3.665 E F0 1.165(when not)3.665 F .233
+(within a function.)144 508.8 R .233(The return status is 0 unless)5.233
+F F2(local)2.733 E F0 .233(is used outside a function, an in)2.733 F
+-.25(va)-.4 G(lid).25 E F1(name)3.092 E F0(is)2.912 E(supplied, or)144
+520.8 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2
+(logout)108 537.6 Q F0(Exit a login shell.)9.33 E F2(popd)108 554.4 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 566.4 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
+578.4 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 590.4 Q F2(+)144 602.4 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 F2
 (dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
-549.6 S 2.5(re).15 G(xample:)-2.65 E/F5 10/Courier@0 SF(popd +0)2.5 E F0
+614.4 S 2.5(re).15 G(xample:)-2.65 E/F5 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 F5(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 561.6 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
-573.6 R(or e)-.15 E(xample:)-.15 E F5(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 F5(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E F1<ad6e>144 585.6 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 597.6 Q .643(If the)144 614.4 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 626.4 R .416(alse if an in)-.1 F
+-.65 E F5(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 626.4 Q F1(n)A F0
+(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 638.4 R(or e)-.15 E(xample:)-.15 E F5(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 F5(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E F2<ad6e>144 650.4
+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 662.4 Q .644(If the)144 679.2 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 691.2 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.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 638.4 Q
-(ails.)-.1 E F1(printf)108 655.2 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
-(Write the formatted)144 667.2 R F2(ar)2.872 E(guments)-.37 E F0 .372
-(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 679.2 R .158
-(copied to standard output, character escape sequences, which are con)
-144 691.2 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 703.2 R .499(xt successi)-.15 F -.15(ve)-.25 G F2(ar)
-3.149 E(gu-)-.37 E(ment)144 715.2 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 .934
-(sequences in the corresponding)144 727.2 R F2(ar)3.434 E(gument)-.37 E
-F0(\(e)3.434 E .934(xcept that)-.15 F F1(\\c)3.434 E F0 .934
-(terminates output, backslashes in)3.434 F F1(\\')3.433 E F0(,)A F1(\\")
-3.433 E F0(,)A(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(53)
-197.89 E 0 Cg EP
+(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
+(tory stack entry is speci\214ed, or the directory change f)144 703.2 Q
+(ails.)-.1 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(53)199.835 E 0
+Cg EP
 %%Page: 54 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(and)144 84 Q/F1 10/Times-Bold@0 SF(\\?)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 96 Q F0(causes)
-3.631 E F1(printf)3.631 E F0 1.131(to output the corresponding)3.631 F
-/F2 10/Times-Italic@0 SF(ar)3.631 E(gument)-.37 E F0 1.13
-(in a format that can be reused as shell)3.631 F(input.)144 108 Q(The)
-144 132 Q F1<ad76>2.903 E F0 .404
-(option causes the output to be assigned to the v)2.903 F(ariable)-.25 E
+-.35 E/F1 10/Times-Bold@0 SF(printf)108 84 Q F0([)2.5 E F1<ad76>A/F2 10
+/Times-Italic@0 SF(var)2.5 E F0(])A F2(format)2.5 E F0([)2.5 E F2(ar)A
+(guments)-.37 E F0(])A .372(Write the formatted)144 96 R F2(ar)2.872 E
+(guments)-.37 E F0 .372(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 string which contains three types of objects: plai\
+n characters, which are simply)144 108 R .159
+(copied to standard output, character escape sequences, which are con)
+144 120 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(da\
+rd output, and format speci\214cations, each of which causes printing o\
+f the ne)144 132 R .5(xt successi)-.15 F -.15(ve)-.25 G F2(ar)3.15 E
+(gu-)-.37 E(ment)144 144 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
+(sequences in the corresponding)144 156 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 168 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
+(may contain up to four digits\), and)3.422 F F1(%q)144 180 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
+(in a format that can be reused as shell)3.631 F(input.)144 192 Q(The)
+144 216 Q F1<ad76>2.904 E F0 .404
+(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E
 F2(var)2.904 E F0 .404(rather than being printed to the)2.904 F
-(standard output.)144 144 Q(The)144 168 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
+(standard output.)144 228 Q(The)144 252 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
 (guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
-3.423 E F0 .923(requires more)3.423 F F2(ar)144 180 Q(guments)-.37 E F0
-.033(than are supplied, the e)2.533 F .033
+3.423 E F0 .924(requires more)3.424 F F2(ar)144 264 Q(guments)-.37 E F0
+.033(than are supplied, the e)2.534 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 .034(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 192 Q(The return v)5 E
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 276 Q(The return v)5 E
 (alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
-108 208.8 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C F2(dir)-2.5 E F0(])A F1
-(pushd)108 220.8 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 .64(Adds a directory to the top of the\
- directory stack, or rotates the stack, making the ne)144 232.8 R 3.139
-(wt)-.25 G .639(op of the)-3.139 F 1.315(stack the current w)144 244.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 256.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 268.8 Q
-F1(+)144 280.8 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)
--.25 F F1(dirs)180 292.8 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E F1<ad>144 304.8 Q F2(n)A F0
+108 292.8 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C F2(dir)-2.5 E F0(])A F1
+(pushd)108 304.8 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 .639(Adds a directory to the top of th\
+e directory stack, or rotates the stack, making the ne)144 316.8 R 3.14
+(wt)-.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 328.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 340.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 352.8 Q
+F1(+)144 364.8 Q F2(n)A F0 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 376.8 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F1<ad>144 388.8 Q F2(n)A F0
 .92(Rotates the stack so that the)25.3 F F2(n)3.42 E F0 .92
 (th directory \(counting from the right of the list sho)B .92(wn by)-.25
-F F1(dirs)180 316.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F1<ad6e>144 328.8 Q F0 .902(Suppresses the normal change of dire\
+F F1(dirs)180 400.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F1<ad6e>144 412.8 Q F0 .902(Suppresses the normal change of dire\
 ctory when adding directories to the stack, so that)24.74 F
-(only the stack is manipulated.)180 340.8 Q F2(dir)144.35 352.8 Q F0
+(only the stack is manipulated.)180 424.8 Q F2(dir)144.35 436.8 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 .489(If the)144 369.6
-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 381.6 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 393.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
-405.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F1(pwd)108
-422.4 Q F0([)2.5 E F1(\255LP)A F0(])A .844
-(Print the absolute pathname of the current w)144 434.4 R .845
-(orking directory)-.1 F 5.845(.T)-.65 G .845
-(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
-446.4 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 453.6
+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 465.6 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
+477.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 489.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
+(ails.)-.1 E F1(pwd)108 506.4 Q F0([)2.5 E F1(\255LP)A F0(])A .845
+(Print the absolute pathname of the current w)144 518.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
+530.4 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 .181(iltin command is).2 F 3.263
-(enabled. If)144 458.4 R(the)3.263 E F1<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 470.4 R -.25(va)
--.4 G(lid).25 E(option is supplied.)144 482.4 Q F1 -.18(re)108 499.2 S
+(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
+(enabled. If)144 542.4 R(the)3.264 E F1<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\
+ reading the name of the current directory or an in)144 554.4 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 566.4 Q F1 -.18(re)108 583.2 S
 (ad).18 E F0([)2.5 E F1(\255ers)A F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E
 F0 2.5(][)C F1<ad74>-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1<ad61>-2.5 E
 F2(aname)2.5 E F0 2.5(][)C F1<ad70>-2.5 E F2(pr)2.5 E(ompt)-.45 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<ad64>
 -2.5 E F2(delim)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
-511.2 R F2(fd)3.016 E F0 .516(supplied as an ar)3.016 F .517(gument to)
--.18 F(the)144 523.2 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 535.2 R -.15(ve)-.15 G 2.92(rw).15 G .42
+595.2 R F2(fd)3.016 E F0 .516(supplied as an ar)3.016 F .516(gument to)
+-.18 F(the)144 607.2 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
+(and so on, with lefto)144 619.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 F2(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .541(are fe)144 547.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 559.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
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 631.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 643.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
 (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.511(\)m)C(ay)-2.511 E 1.891
-(be used to remo)144 571.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
+(backslash character \()2.511 F F1(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
+(be used to remo)144 655.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
 (xt character read and for line continuation.)-.15 F
-(Options, if supplied, ha)144 583.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 595.2 Q F2(aname)2.5 E F0 1.049
-(The w)180 607.2 R 1.049
+(Options, if supplied, ha)144 667.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad61>144 679.2 Q F2(aname)2.5 E F0 1.05(The w)
+180 691.2 R 1.049
 (ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.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 619.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 F2(name)2.5 E F0(ar)2.5
-E(guments are ignored.)-.18 E F1<ad64>144 631.2 Q F2(delim)2.5 E F0
-(The \214rst character of)180 643.2 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 655.2 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.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
-(to obtain the line.)180 667.2 Q F1<ad6e>144 679.2 Q F2(nc)2.5 E(har)
--.15 E(s)-.1 E F1 -.18(re)180 691.2 S(ad).18 E 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 703.2 Q(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91
-E(54)197.89 E 0 Cg EP
+-.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 703.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 F2(name)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)
+149.845 E(54)199.835 E 0 Cg EP
 %%Page: 55 56
 %%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<ad70>144 84 Q/F2 10/Times-Italic@0 SF(pr)
-2.5 E(ompt)-.45 E F0(Display)180 96 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 108 Q 2.5
-(yi)-.15 G 2.5(nput. The)-2.5 F
+-.35 E/F1 10/Times-Bold@0 SF<ad64>144 84 Q/F2 10/Times-Italic@0 SF
+(delim)2.5 E F0(The \214rst character of)180 96 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 108 Q F0 .372
+(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 9/Times-Bold@0 SF(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(to obtain the line.)180 120 Q F1<ad6e>144 132 Q F2(nc)2.5
+E(har)-.15 E(s)-.1 E F1 -.18(re)180 144 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(aiting for a complete line of)
+-.1 F(input.)180 156 Q F1<ad70>144 168 Q F2(pr)2.5 E(ompt)-.45 E F0
+(Display)180 180 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(ithout a trailing ne)-3.661 F 1.161
+(wline, before attempting to read)-.25 F(an)180 192 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 120 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 132 Q(In particular)5 E 2.5(,ab)-.4 G
+<ad72>144 204 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)
+-5.543 F(the line.)180 216 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 144 Q F0(Silent mode.)26.41 E
+-.25 E F1<ad73>144 228 Q F0(Silent mode.)26.41 E
 (If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 156 Q F2(timeout)2.5 E F0(Cause)180 168 Q F1 -.18(re)3.549 G
-(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048
+<ad74>144 240 Q F2(timeout)2.5 E F0(Cause)180 252 Q F1 -.18(re)3.548 G
+(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
 (ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 180 Q F0 2.92(seconds. This)2.92 F .42(option has no ef)2.92 F .42
+180 264 Q F0 2.92(seconds. This)2.92 F .42(option has no ef)2.92 F .42
 (fect if)-.25 F F1 -.18(re)2.92 G(ad).18 E F0 .42
-(is not reading input from the terminal)2.92 F(or a pipe.)180 192 Q F1
-<ad75>144 204 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 220.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.217
-(unless end-of-\214le is encountered,)144 232.8 R F1 -.18(re)3.717 G(ad)
-.18 E F0 1.217(times out, or an in)3.717 F -.25(va)-.4 G 1.218
-(lid \214le descriptor is supplied as the).25 F(ar)144 244.8 Q
-(gument to)-.18 E F1<ad75>2.5 E F0(.)A F1 -.18(re)108 261.6 S(adonly).18
+(is not reading input from the terminal)2.92 F(or a pipe.)180 276 Q F1
+<ad75>144 288 Q F2(fd)2.5 E F0(Read input from \214le descriptor)14.46 E
+F2(fd)2.5 E F0(.)A .191(If no)144 304.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(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.218
+(unless end-of-\214le is encountered,)144 316.8 R F1 -.18(re)3.718 G(ad)
+.18 E F0 1.217(times out, or an in)3.718 F -.25(va)-.4 G 1.217
+(lid \214le descriptor is supplied as the).25 F(ar)144 328.8 Q
+(gument to)-.18 E F1<ad75>2.5 E F0(.)A F1 -.18(re)108 345.6 S(adonly).18
 E F0([)2.5 E F1(\255apf)A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)
--.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 273.6 R -.15(ve)-.25 G(n)
+-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 357.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 285.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 297.6 Q 2.873(ed. The)
--.1 F F1<ad61>2.873 E F0 .373(option restricts the v)2.873 F .372
+(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 369.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 381.6 Q 2.872(ed. The)
+-.1 F F1<ad61>2.872 E F0 .372(option restricts the v)2.872 F .372
 (ariables to arrays.)-.25 F .372(If no)5.372 F F2(name)3.232 E F0(ar)
-3.052 E .372(guments are gi)-.18 F -.15(ve)-.25 G .372(n, or if the).15
-F F1<ad70>144 309.6 Q F0 .796
-(option is supplied, a list of all readonly names is printed.)3.296 F
+3.053 E .373(guments are gi)-.18 F -.15(ve)-.25 G .373(n, or if the).15
+F F1<ad70>144 393.6 Q F0 .796
+(option is supplied, a list of all readonly names is printed.)3.297 F
 (The)5.796 E F1<ad70>3.296 E F0 .796(option causes output to be)3.296 F
-.828(displayed in a format that may be reused as input.)144 321.6 R .828
-(If a v)5.828 F .828(ariable name is follo)-.25 F .827(wed by =)-.25 F
-F2(wor)A(d)-.37 E F0 3.327(,t)C(he)-3.327 E -.25(va)144 333.6 S .404
-(lue of the v).25 F .404(ariable is set to)-.25 F F2(wor)2.904 E(d)-.37
-E F0 5.404(.T)C .405(he return status is 0 unless an in)-5.404 F -.25
-(va)-.4 G .405(lid option is encountered,).25 F 1.07(one of the)144
-345.6 R F2(names)3.929 E F0 1.069(is not a v)3.839 F 1.069(alid shell v)
+.828(displayed in a format that may be reused as input.)144 405.6 R .828
+(If a v)5.828 F .828(ariable name is follo)-.25 F .828(wed by =)-.25 F
+F2(wor)A(d)-.37 E F0 3.328(,t)C(he)-3.328 E -.25(va)144 417.6 S .405
+(lue of the v).25 F .405(ariable is set to)-.25 F F2(wor)2.905 E(d)-.37
+E F0 5.405(.T)C .404(he return status is 0 unless an in)-5.405 F -.25
+(va)-.4 G .404(lid option is encountered,).25 F 1.069(one of the)144
+429.6 R F2(names)3.929 E F0 1.069(is not a v)3.839 F 1.069(alid shell v)
 -.25 F 1.069(ariable name, or)-.25 F F1<ad66>3.569 E F0 1.069
 (is supplied with a)3.569 F F2(name)3.929 E F0 1.069(that is not a)3.749
-F(function.)144 357.6 Q F1 -.18(re)108 374.4 S(tur).18 E(n)-.15 E F0([)
-2.5 E F2(n)A F0(])A .586(Causes a function to e)144 386.4 R .587
+F(function.)144 441.6 Q F1 -.18(re)108 458.4 S(tur).18 E(n)-.15 E F0([)
+2.5 E F2(n)A F0(])A .587(Causes a function to e)144 470.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
+E F0 5.587(.I).24 G(f)-5.587 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 398.4 R -.15(xe)-.15 G 1.335
+(that of the last command e)144 482.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 410.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
+144 494.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 422.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 434.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 506.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 518.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 446.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 530.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 458.4 Q F1(set)108 475.2 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCHP)A
+144 542.4 Q F1(set)108 559.2 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCHP)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 -.4(Wi)144 487.2 S .835
+-.37 E F0(...])2.5 E -.4(Wi)144 571.2 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
-(reused as input for setting or resetting the currently-set v)144 499.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 511.2 R F2 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+.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 583.2
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
+(riables cannot be).25 F 2.947(reset. In)144 595.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 523.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 .202
-(after the options are processed are treated as v)144 535.2 R .202
+(The output is sorted according to the current)5.447 F 3.53
+(locale. When)144 607.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 .202
+(after the options are processed are treated as v)144 619.2 R .202
 (alues for the positional parameters and are assigned,)-.25 F(in order)
-144 547.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
+144 631.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 559.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 571.2 Q
-(vironment of subsequent commands.)-.4 E F1<ad62>144 583.2 Q F0 .131
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 643.2 Q
+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 655.2 Q(vironment of subsequent commands.)
+-.4 E F1<ad62>144 667.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
-(primary prompt.)184 595.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 607.2 Q F0
-1.694(Exit immediately if a)29.86 F F2 1.693(simple command)4.193 F F0
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 679.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 691.2 Q F0
+1.693(Exit immediately if a)29.86 F F2 1.693(simple command)4.193 F F0
 (\(see)4.193 E F3 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 619.2 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
-.624(list immediately follo)184 631.2 R .624(wing a)-.25 F F1(while)
+-.15 G 4.194(\)e).15 G 1.694(xits with a)-4.344 F .012(non-zero status.)
+184 703.2 R .012(The shell does not e)5.012 F .011
+(xit if the command that f)-.15 F .011(ails is part of the command)-.1 F
+.624(list immediately follo)184 715.2 R .624(wing a)-.25 F F1(while)
 3.124 E F0(or)3.124 E F1(until)3.124 E F0 -.1(ke)3.124 G(yw)-.05 E .624
 (ord, part of the test in an)-.1 F F2(if)3.134 E F0(statement,)5.084 E
-.425(part of a)184 643.2 R F1(&&)2.925 E F0(or)2.925 E/F5 10/Symbol SF
+.426(part of a)184 727.2 R F1(&&)2.926 E F0(or)2.926 E/F5 10/Symbol SF
 <efef>2.926 E F0 .426(list, or if the command')2.926 F 2.926(sr)-.55 G
-.426(eturn v)-2.926 F .426(alue is being in)-.25 F -.15(ve)-.4 G .426
-(rted via).15 F F1(!)2.926 E F0 5.426(.A)C(trap)-2.5 E(on)184 655.2 Q F1
-(ERR)2.5 E F0 2.5(,i)C 2.5(fs)-2.5 G(et, is e)-2.5 E -.15(xe)-.15 G
-(cuted before the shell e).15 E(xits.)-.15 E F1<ad66>144 667.2 Q F0
-(Disable pathname e)30.97 E(xpansion.)-.15 E F1<ad68>144 679.2 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 691.2 Q(ault.)-.1 E F1
-<ad6b>144 703.2 Q F0 .513(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
-(command, not just those that precede the command name.)184 715.2 Q
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(55)197.89 E 0 Cg EP
+.426(eturn v)-2.926 F .426(alue is being in)-.25 F -.15(ve)-.4 G .425
+(rted via).15 F F1(!)2.925 E F0 5.425(.A)C(trap)-2.5 E(GNU Bash-3.2)72
+768 Q(2006 Jan 26)149.845 E(55)199.835 E 0 Cg EP
 %%Page: 56 57
 %%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<ad6d>144 84 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
-(on systems that support it \(see)184 96 R/F2 9/Times-Bold@0 SF .636
+-.35 E(on)184 84 Q/F1 10/Times-Bold@0 SF(ERR)2.5 E F0 2.5(,i)C 2.5(fs)
+-2.5 G(et, is e)-2.5 E -.15(xe)-.15 G(cuted before the shell e).15 E
+(xits.)-.15 E F1<ad66>144 96 Q F0(Disable pathname e)30.97 E(xpansion.)
+-.15 E F1<ad68>144 108 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 120 Q(ault.)-.1 E F1
+<ad6b>144 132 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 144 Q F1
+<ad6d>144 156 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 168 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 108 R .641
-(xit status is printed upon their com-)-.15 F(pletion.)184 120 Q F1
-<ad6e>144 132 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
-144 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1<ad6f>144 156 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The)
-184 168 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E
-(wing:)-.25 E F1(allexport)184 180 Q F0(Same as)224 192 Q F1<ad61>2.5 E
-F0(.)A F1(braceexpand)184 204 Q F0(Same as)224 216 Q F1<ad42>2.5 E F0(.)
-A F1(emacs)184 228 Q F0 .089
+(\). Background).15 F .636(processes run in a)3.136 F .641
+(separate process group and a line containing their e)184 180 R .642
+(xit status is printed upon their com-)-.15 F(pletion.)184 192 Q F1
+<ad6e>144 204 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
+216 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
+F1<ad6f>144 228 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The)
+184 240 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E
+(wing:)-.25 E F1(allexport)184 252 Q F0(Same as)224 264 Q F1<ad61>2.5 E
+F0(.)A F1(braceexpand)184 276 Q F0(Same as)224 288 Q F1<ad42>2.5 E F0(.)
+A F1(emacs)184 300 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 240 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(when the shell is interacti)224 312 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(option.)224 252 Q F1(errtrace)184 264 Q F0(Same as)5.03 E F1<ad45>2.5
-E F0(.)A F1(functrace)184 276 Q F0(Same as)224 288 Q F1<ad54>2.5 E F0(.)
-A F1(err)184 300 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A
-F1(hashall)184 312 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1
-(histexpand)184 324 Q F0(Same as)224 336 Q F1<ad48>2.5 E F0(.)A F1
-(history)184 348 Q F0 .587(Enable command history)10 F 3.087(,a)-.65 G
+F0(option.)224 324 Q F1(errtrace)184 336 Q F0(Same as)5.03 E F1<ad45>2.5
+E F0(.)A F1(functrace)184 348 Q F0(Same as)224 360 Q F1<ad54>2.5 E F0(.)
+A F1(err)184 372 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A
+F1(hashall)184 384 Q F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1
+(histexpand)184 396 Q F0(Same as)224 408 Q F1<ad48>2.5 E F0(.)A F1
+(history)184 420 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 360 Q(ault in interacti)-.1 E
-.3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184 372 Q(eeof)-.18 E F0 1.656
-(The ef)224 384 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).15 E(\(see)224 396 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 408 S(yw).1 E(ord)-.1
-E F0(Same as)224 420 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 432 Q F0
-(Same as)5.56 E F1<ad6d>2.5 E F0(.)A F1(noclob)184 444 Q(ber)-.1 E F0
-(Same as)224 456 Q F1<ad43>2.5 E F0(.)A F1(noexec)184 468 Q F0(Same as)
-11.12 E F1<ad6e>2.5 E F0(.)A F1(noglob)184 480 Q F0(Same as)11.1 E F1
+.587(This option is)5.087 F(on by def)224 432 Q(ault in interacti)-.1 E
+.3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184 444 Q(eeof)-.18 E F0 1.657
+(The ef)224 456 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 468 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 480 S(yw).1 E(ord)-.1
+E F0(Same as)224 492 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 504 Q F0
+(Same as)5.56 E F1<ad6d>2.5 E F0(.)A F1(noclob)184 516 Q(ber)-.1 E F0
+(Same as)224 528 Q F1<ad43>2.5 E F0(.)A F1(noexec)184 540 Q F0(Same as)
+11.12 E F1<ad6e>2.5 E F0(.)A F1(noglob)184 552 Q F0(Same as)11.1 E F1
 <ad66>2.5 E F0(.)A F1(nolog)5 E F0(Currently ignored.)2.5 E F1(notify)
-184 492 Q F0(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 504 Q F0
-(Same as)6.66 E F1<ad75>2.5 E F0(.)A F1(onecmd)184 516 Q F0(Same as)6.67
-E F1<ad74>2.5 E F0(.)A F1(ph)184 528 Q(ysical)-.15 E F0(Same as)5.14 E
-F1<ad50>2.5 E F0(.)A F1(pipefail)184 540 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 552 R
-1.136
+184 564 Q F0(Same as)15 E F1<ad62>2.5 E F0(.)A F1(nounset)184 576 Q F0
+(Same as)6.66 E F1<ad75>2.5 E F0(.)A F1(onecmd)184 588 Q F0(Same as)6.67
+E F1<ad74>2.5 E F0(.)A F1(ph)184 600 Q(ysical)-.15 E F0(Same as)5.14 E
+F1<ad50>2.5 E F0(.)A F1(pipefail)184 612 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 624
+1.136
 (xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 564 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 576 Q F0
-2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
+-.15 F -.15(ex)224 636 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 648 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 1003.2 standard to match the standard \()224
-588 Q F3(posix mode)A F0(\).)A F1(pri)184 600 Q(vileged)-.1 E F0
-(Same as)224 612 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 624 S(rbose).1 E
-F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 636 Q F0
-(Use a vi-style command line editing interf)32.22 E(ace.)-.1 E F1
-(xtrace)184 648 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 666 Q
-F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F3(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
-678 Q F0 1.072(is supplied with no)3.572 F F3(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 690 Q F1<ad70>
-144 702 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F3(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
-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.705
-(cessed, shell functions are not inherited from the en)184 714 R 1.705
-(vironment, and the)-.4 F F2(SHELLOPTS)4.205 E F0 -.25(va)184 726 S
-1.724(riable, if it appears in the en).25 F 1.724
-(vironment, is ignored.)-.4 F 1.724(If the shell is started with the)
-6.724 F(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(56)197.89 E 0
-Cg EP
+(fers from the)-.25 F(POSIX standard to match the standard \()224 660 Q
+F3(posix mode)A F0(\).)A F1(pri)184 672 Q(vileged)-.1 E F0(Same as)224
+684 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 696 S(rbose).1 E F0(Same as)
+7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 708 Q F0
+(Use a vi-style command line editing interf)32.22 E(ace.)-.1 E
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(56)199.835 E 0 Cg EP
 %%Page: 57 58
 %%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(ef)184 84 Q(fecti)-.25 E 1.209 -.15(ve u)-.25 H .909
+-.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
+(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
+/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.705
+(cessed, shell functions are not inherited from the en)184 150 R 1.705
+(vironment, and the)-.4 F F3(SHELLOPTS)4.206 E F0 -.25(va)184 162 S .019
+(riable, if it appears in the en).25 F .019(vironment, is ignored.)-.4 F
+.018(If the shell is started with the ef)5.019 F(fec-)-.25 E(ti)184 174
+Q 1.158 -.15(ve u)-.25 H .859
 (ser \(group\) id not equal to the real user \(group\) id, and the).15 F
-/F1 10/Times-Bold@0 SF<ad70>3.409 E F0 .908(option is not)3.408 F .302
-(supplied, these actions are tak)184 96 R .302(en and the ef)-.1 F
-(fecti)-.25 E .602 -.15(ve u)-.25 H .302
-(ser id is set to the real user id.).15 F .303(If the)5.303 F F1<ad70>
-184 108 Q F0 .261(option is supplied at startup, the ef)2.761 F(fecti)
--.25 E .561 -.15(ve u)-.25 H .261(ser id is not reset.).15 F -.45(Tu)
-5.26 G .26(rning this option of).45 F(f)-.25 E(causes the ef)184 120 Q
-(fecti)-.25 E .3 -.15(ve u)-.25 H
+F1<ad70>3.359 E F0 .859(option is not sup-)3.359 F .294
+(plied, these actions are tak)184 186 R .293(en and the ef)-.1 F(fecti)
+-.25 E .593 -.15(ve u)-.25 H .293(ser id is set to the real user id.).15
+F .293(If the)5.293 F F1<ad70>2.793 E F0 1.195
+(option is supplied at startup, the ef)184 198 R(fecti)-.25 E 1.495 -.15
+(ve u)-.25 H 1.195(ser id is not reset.).15 F -.45(Tu)6.196 G 1.196
+(rning this option of).45 F(f)-.25 E(causes the ef)184 210 Q(fecti)-.25
+E .3 -.15(ve u)-.25 H
 (ser and group ids to be set to the real user and group ids.).15 E F1
-<ad74>144 132 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G
-(cuting one command.).15 E F1<ad75>144 144 Q F0 -.35(Tr)28.74 G .444
+<ad74>144 222 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G
+(cuting one command.).15 E F1<ad75>144 234 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
-(attempted on an unset v)184 156 R .519
+(xpansion. If)-.15 F -.15(ex)2.944 G .444(pansion is).15 F .519
+(attempted on an unset v)184 246 R .519
 (ariable, the shell prints an error message, and, if not interacti)-.25
-F -.15(ve)-.25 G(,).15 E -.15(ex)184 168 S(its with a non-zero status.)
-.15 E F1<ad76>144 180 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E F1<ad78>144 192 Q F0 .315(After e)29.3 F .315
-(xpanding each)-.15 F/F2 10/Times-Italic@0 SF .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 204 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 9/Times-Bold@0 SF(PS4)3.736 E/F4 9/Times-Roman@0 SF(,)A F0
-(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 216 Q
-(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 228 Q F0 2.578(The shell performs brace e)27.63 F 2.578
+F -.15(ve)-.25 G(,).15 E -.15(ex)184 258 S(its with a non-zero status.)
+.15 E F1<ad76>144 270 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 282 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.235(or arithmetic)184 294 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 9/Times-Roman@0
+SF(,)A F0(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184
+306 Q(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E
+F1<ad42>144 318 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 240 Q
-(ault.)-.1 E F1<ad43>144 252 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 330 Q
+(ault.)-.1 E F1<ad43>144 342 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 264 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 354 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 276 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 288 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 300 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 312 Q F1
-<ad48>144 324 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 336 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 348 Q F0 1.164
+.15 F(tor)184 366 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 378 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 390 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 402 Q F1
+<ad48>144 414 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 426 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 438 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
-(that change the current w)184 360 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 372 R(def)2.685
+(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 450 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 462 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 384 Q(.)-.65 E F1<ad54>144
-396 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 474 Q(.)-.65 E F1<ad54>144
+486 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 408 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 498 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 420 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 432 Q
-F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 510 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 522 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.4 E(the positional parameters are set to the)184 444 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 534 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
-456 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 468 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
-(parameters remain unchanged.)184 480 Q .425(The options are of)144
-496.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+546 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 558 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 570 Q .425(The options are of)144
+586.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 508.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 598.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
-(current set of options may be found in)144 520.8 R F1<24ad>2.566 E F0
+-.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 610.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
-(is encountered.)144 532.8 Q F1(shift)108 549.6 Q F0([)2.5 E F2(n)A F0
-(])A .429(The positional parameters from)144 561.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 573.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
-(is 0, no parameters are changed.)144 585.6 R(If)5.06 E F2(n)2.92 E F0
+(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
+(is encountered.)144 622.8 Q F1(shift)108 639.6 Q F0([)2.5 E F2(n)A F0
+(])A .428(The positional parameters from)144 651.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 663.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 675.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 597.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
-(or less than zero; otherwise 0.)144 609.6 Q F1(shopt)108 626.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 638.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 650.4 R(The)
-144 662.4 Q F1<ad70>2.828 E F0 .327(option causes output to be displaye\
-d in a form that may be reused as input.)2.828 F .327(Other options)
-5.327 F(ha)144 674.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 686.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 698.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 710.4 Q F0 .003(Suppresses normal out\
-put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 722.4 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
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(57)197.89 E 0 Cg EP
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 687.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 699.6 Q(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(57)199.835 E 0 Cg EP
 %%Page: 58 59
 %%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(all)180 84 Q/F1 10/Times-Italic@0 SF(optnames)2.5 E F0
-(are enabled; non-zero otherwise.)2.5 E/F2 10/Times-Bold@0 SF<ad6f>144
-96 Q F0(Restricts the v)25.3 E(alues of)-.25 E F1(optname)2.5 E F0
-(to be those de\214ned for the)2.5 E F2<ad6f>2.5 E F0(option to the)2.5
-E F2(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127(If either)144 112.8 R F2
-<ad73>2.627 E F0(or)2.627 E F2<ad75>2.627 E F0 .127(is used with no)
-2.627 F F1(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 124.8 R -.15(ve)-.25 G(ly).15 E 6.024
-(.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F2(shopt)3.523 E F0
-1.023(options are disabled \(unset\) by)3.523 F(def)144 136.8 Q(ault.)
+-.35 E/F1 10/Times-Bold@0 SF(shopt)108 84 Q F0([)2.5 E F1(\255pqsu)A F0
+2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(optname)-2.5
+E F0(...])2.5 E -.8(To)144 96 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 displayed, with an \
+indication of whether or not each is set.)144 108 R(The)144 120 Q F1
+<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.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 .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.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
-153.6 R F1(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 165.6 R F1(optname)3.196 E F0 .696(is not a v)3.196 F .695
-(alid shell)-.25 F(option.)144 177.6 Q(The list of)144 194.4 Q F2(shopt)
-2.5 E F0(options is:)2.5 E F2(cdable_v)144 212.4 Q(ars)-.1 E F0 .155
-(If set, an ar)184 224.4 R .155(gument to the)-.18 F F2(cd)2.655 E F0
--.2(bu)2.655 G .156
+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(cdable_v)144 320.4 Q(ars)-.1 E F0 .156
+(If set, an ar)184 332.4 R .156(gument to the)-.18 F F1(cd)2.656 E F0
+-.2(bu)2.656 G .155
 (iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 236.4 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F2(cdspell)144 248.4 Q F0
+(name of a v)184 344.4 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 356.4 Q F0
 1.055
 (If set, minor errors in the spelling of a directory component in a)
-10.55 F F2(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
-(corrected. The)184 260.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 272.4 R 4.352 -.65
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
+(corrected. The)184 368.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 380.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 284.4 Q
+(the command proceeds.)184 392.4 Q
 (This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F2(checkhash)144 296.4 Q F0 2.079(If set,)184 308.4 R F2(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 320.4 S(cute it.).15 E
+.15 E F1(checkhash)144 404.4 Q F0 2.08(If set,)184 416.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 428.4 S(cute it.).15 E
 (If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F2(checkwinsize)144
-332.4 Q F0 .797(If set,)184 344.4 R F2(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 356.4 S(lues of).25 E/F3 9/Times-Bold@0
+(xists, a normal path search is performed.)-.15 E F1(checkwinsize)144
+440.4 Q F0 .796(If set,)184 452.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 464.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
-F2(cmdhist)144 368.4 Q F0 1.202(If set,)6.11 F F2(bash)3.702 E F0 1.202
+F1(cmdhist)144 476.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
-380.4 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F2(dotglob)144 392.4
-Q F0 .165(If set,)7.77 F F2(bash)2.665 E F0 .165
+488.4 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(dotglob)144 500.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 F2(execfail)144 404.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 512.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 416.4 Q
-(gument to the)-.18 E F2(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
+1.386(cute the \214le speci\214ed as an).15 F(ar)184 524.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 F2(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F2(expand_aliases)144 428.4 Q
-F0 .717(If set, aliases are e)184 440.4 R .717(xpanded as described abo)
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 536.4 Q
+F0 .716(If set, aliases are e)184 548.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 452.4 Q
-(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F2(extdeb)144
-464.4 Q(ug)-.2 E F0(If set, beha)184 476.4 Q
-(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F2(1.)184
-488.4 Q F0(The)28.5 E F2<ad46>4.25 E F0 1.75(option to the)4.25 F F2
+.717(This option is enabled)5.217 F(by def)184 560.4 Q
+(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144
+572.4 Q(ug)-.2 E F0(If set, beha)184 584.4 Q
+(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
+596.4 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 500.4
-Q(gument.)-.18 E F2(2.)184 512.4 Q F0 1.667(If the command run by the)
-28.5 F F2(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167
+(number corresponding to each function name supplied as an ar)220 608.4
+Q(gument.)-.18 E F1(2.)184 620.4 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
-524.4 Q -.15(xe)-.15 G(cuted.).15 E F2(3.)184 536.4 Q F0 .84
-(If the command run by the)28.5 F F2(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
-(exe)220 548.4 S .488
+632.4 Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 644.4 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 656.4 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 F2(.)2.988 E F0(or)2.988 E F2
-(sour)220 560.4 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F2
--.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F2 26(4. B)184
-572.4 R(ASH_ARGC)-.3 E F0(and)3.775 E F2 -.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
-584.4 Q -.15(ve)-.15 G(.).15 E F2(5.)184 596.4 Q F0 1.359
+-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
+(sour)220 668.4 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
+680.4 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
+692.4 Q -.15(ve)-.15 G(.).15 E F1(5.)184 704.4 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
-608.4 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F2(\()2.5 E F1
-(command)2.5 E F2(\))2.5 E F0(inherit the)2.5 E F2(DEB)2.5 E(UG)-.1 E F0
-(and)2.5 E F2(RETURN)2.5 E F0(traps.)2.5 E F2(6.)184 620.4 Q F0 .804
-(Error tracing is enabled:)28.5 F .805
-(command substitution, shell functions, and subshells)5.804 F(in)220
-632.4 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F2(\()2.5 E F1
-(command)2.5 E F2(\))2.5 E F0(inherit the)2.5 E F2(ERR)2.5 E(OR)-.3 E F0
-(trap.)2.5 E F2(extglob)144 644.4 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 F2 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 656.4 Q
-F0(are enabled.)2.5 E F2(extquote)144 668.4 Q F0 2.167(If set,)184 680.4
-R F2($)4.667 E F0(')A F1(string)A F0 4.667('a)C(nd)-4.667 E F2($)4.667 E
-F0(")A F1(string)A F0 4.667("q)C 2.167(uoting is performed within)-4.667
-F F2(${)4.667 E F1(par)A(ameter)-.15 E F2(})A F0 -.15(ex)4.667 G
-(pansions).15 E(enclosed in double quotes.)184 692.4 Q
-(This option is enabled by def)5 E(ault.)-.1 E F2(failglob)144 704.4 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
-(xpansion result in an)-.15 F -.15(ex)184 716.4 S(pansion error).15 E(.)
--.55 E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(58)197.89 E 0 Cg
-EP
+716.4 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(DEB)2.5 E(UG)-.1 E F0
+(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(58)199.835 E 0 Cg EP
 %%Page: 59 60
 %%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 -.25(fo)144 84 S -.18(rc).25 G(e_\214gnor)
-.18 E(e)-.18 E F0 .585(If set, the suf)184 96 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 108 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 120 R/F2
-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 132 Q(ault.)
--.1 E F1(gnu_errfmt)144 144 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 156 Q F1(histappend)144
-168 Q F0 .384
+-.35 E/F1 10/Times-Bold@0 SF(6.)184 84 Q F0 .805
+(Error tracing is enabled:)28.5 F .804
+(command substitution, shell functions, and subshells)5.805 F(in)220 96
+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
+(ERR)2.5 E(OR)-.3 E F0(trap.)2.5 E F1(extglob)144 108 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 120 Q
+F0(are enabled.)2.5 E F1(extquote)144 132 Q F0 2.473(If set,)184 144 R
+F1($)4.973 E F0<08>A F2(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+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 156 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 168 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 180 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 192 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.585(If set, the suf)184 204 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 216 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 228 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 240 Q(ault.)-.1 E F1
+(gnu_errfmt)144 252 Q F0(If set, shell error messages are written in th\
+e standard GNU error message format.)184 264 Q F1(histappend)144 276 Q
+F0 .383
 (If set, the history list is appended to the \214le named by the v)184
-180 R .383(alue of the)-.25 F F1(HISTFILE)2.883 E F0 -.25(va)2.883 G
-(ri-).25 E(able when the shell e)184 192 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 204 Q(eedit)-.18
-E F0 .575(If set, and)184 216 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 228 Q F1(histv)144 240 Q(erify)-.1 E F0 .403
-(If set, and)184 252 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+288 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 300 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 312 Q(eedit)-.18
+E F0 .576(If set, and)184 324 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 336 Q F1(histv)144 348 Q(erify)-.1 E F0 .402
+(If set, and)184 360 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 264 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 276 S -.25(ff).2 G(er).25 E
+2.903 F .662(passed to the shell parser)184 372 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 384 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 288 Q F0 1.182(If set, and)184 300 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
-312 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
-F2(READLINE)3.881 E F0(abo)184 324 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 336 Q F0(If set,)
-184 348 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
+(hostcomplete)144 396 Q F0 1.181(If set, and)184 408 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
+420 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 432 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 444 Q F0(If set,)
+184 456 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)
-.15 E(xits.)-.15 E F1(interacti)144 360 Q -.1(ve)-.1 G(_comments).1 E F0
-.33(If set, allo)184 372 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
+.15 E(xits.)-.15 E F1(interacti)144 468 Q -.1(ve)-.1 G(_comments).1 E F0
+.33(If set, allo)184 480 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 384 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 .968(option is)3.468 F(enabled by def)184 396 Q
-(ault.)-.1 E F1(lithist)144 408 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 420 Q
+(that line to be ignored in an interacti)184 492 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 .967(option is)3.467 F(enabled by def)184 504 Q
+(ault.)-.1 E F1(lithist)144 516 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 528 Q
 (wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 432 Q F0 .486
+(login_shell)144 540 Q F0 .486
 (The shell sets this option if it is started as a login shell \(see)184
-444 R F2(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 456 S(lue may not be changed.).25
-E F1(mailwar)144 468 Q(n)-.15 E F0 .815(If set, and a \214le that)184
-480 R F1(bash)3.315 E F0 .814
-(is checking for mail has been accessed since the last time it)3.315 F
--.1(wa)184 492 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 504 Q F0 .145(If set, and)184 516 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
-(completions when completion is attempted on an empty line.)184 528 Q F1
-(nocaseglob)144 540 Q F0 .437(If set,)184 552 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 564 S
+552 R F3(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 564 S(lue may not be changed.).25
+E F1(mailwar)144 576 Q(n)-.15 E F0 .814(If set, and a \214le that)184
+588 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 600 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+(`The mail in)-.74 E F2(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 612
+Q F0 .146(If set, and)184 624 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 636 Q F1
+(nocaseglob)144 648 Q F0 .436(If set,)184 660 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 672 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 576 Q F0 1.193(If set,)184
-588 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
-F(while e)184 600 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 612 Q F0
-.855(If set,)184 624 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 636 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 648 Q(ogcomp)-.18 E F0 .676
-(If set, the programmable completion f)184 660 R .677(acilities \(see)
--.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
--.15(ve)-.15 G(\)).15 E(are enabled.)184 672 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 684 Q(omptv)
--.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 696 R 1.448
-(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 708 S .17(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 720 Q(ault.)-.1 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(59)197.89 E 0 Cg EP
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 684 Q F0 1.194(If set,)184
+696 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 708 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(GNU Bash-3.2)72 768 Q
+(2006 Jan 26)149.845 E(59)199.835 E 0 Cg EP
 %%Page: 60 61
 %%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 -.18(re)144 84 S(stricted_shell).18 E F0
-1.069
+-.35 E/F1 10/Times-Bold@0 SF(nullglob)144 84 Q F0 .854(If set,)184 96 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 108 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 120 Q(ogcomp)-.18 E F0 .677
+(If set, the programmable completion f)184 132 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 144 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 156 Q(omptv)
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 168 R 1.448
+(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 180 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 9/Times-Bold@0 SF(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 192 Q(ault.)-.1 E
+F1 -.18(re)144 204 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 .502(If set, the)184 144 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
-(xceeds the number)-.15 F(of positional parameters.)184 156 Q F1(sour)
-144 168 Q(cepath)-.18 E F0 .77(If set, the)184 180 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 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 .493(Suspend the e)144 240 R -.15
-(xe)-.15 G .493(cution of this shell until it recei).15 F -.15(ve)-.25 G
-2.992(sa).15 G F2(SIGCONT)A F0 2.992(signal. The)2.742 F F1<ad66>2.992 E
-F0 .492(option says not to)2.992 F .758
-(complain if this is a login shell; just suspend an)144 252 R(yw)-.15 E
-(ay)-.1 E 5.758(.T)-.65 G .759
+184 216 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 228 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 240 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 252 Q(erbose)-.1 E F0 .501(If set, the)184 264 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 276 Q F1(sour)
+144 288 Q(cepath)-.18 E F0 .771(If set, the)184 300 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 312 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 324 Q F0(If set, the)184 336 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 348 Q F0([)2.5 E F1<ad66>A F0(])A .492
+(Suspend the e)144 360 R -.15(xe)-.15 G .492
+(cution of this shell until it recei).15 F -.15(ve)-.25 G 2.992(sa).15 G
+F2(SIGCONT).001 E F0 2.993(signal. The)2.743 F F1<ad66>2.993 E F0 .493
+(option says not to)2.993 F .759
+(complain if this is a login shell; just suspend an)144 372 R(yw)-.15 E
+(ay)-.1 E 5.758(.T)-.65 G .758
 (he return status is 0 unless the shell is a)-5.758 F(login shell and)
-144 264 Q F1<ad66>2.5 E F0
+144 384 Q F1<ad66>2.5 E F0
 (is not supplied, or if job control is not enabled.)2.5 E 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
+396 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108 408 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
-(operator and operand must be a separate ar)144 300 R 3.688
-(gument. Expressions)-.18 F 1.188(are composed of the primaries)3.688 F
-1.89(described abo)144 312 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 324 Q
+(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
+(operator and operand must be a separate ar)144 420 R 3.688
+(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
+1.889(described abo)144 432 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 444 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 342 R .786
+E .786(Expressions may be combined using the follo)144 462 R .785
 (wing operators, listed in decreasing order of prece-)-.25 F(dence.)144
-354 Q 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 378 Q F3
+474 Q F1(!)144 486 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 498 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 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
+(rride the normal precedence of opera-).15 F(tors.)180 510 Q F3 -.2(ex)
+144 522 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 534 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 546 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 558 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 454.8 Q F0(and)2.5 E F1([)2.5 E
+(pr2).2 E F0(is true.)2.52 E F1(test)144 574.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 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
+(guments.)-.18 E 2.5(0a)144 592.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 604.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 616.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 628.8 Q
 (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-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
+E 2.5(2a)144 640.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 652.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 .38(If the \214rst ar)180 544.8 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .679
--.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.879 E(TION)180 556.8 Q .552
+(gument is null.)-.18 F .379(If the \214rst ar)180 664.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 676.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 568.8 Q
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 688.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 580.8 S -.18(rg)-2.5 G
-(uments).18 E .024(If the second ar)180 592.8 R .023
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 700.8 S -.18(rg)-2.5 G
+(uments).18 E .023(If the second ar)180 712.8 R .023
 (gument is one of the binary conditional operators listed abo)-.18 F
-.323 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.523 E(DITION)180 604.8 Q
-1.477(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 .398
-(using the \214rst and third ar)180 616.8 R .398(guments as operands.)
--.18 F .398(If the \214rst ar)5.398 F .397(gument is)-.18 F F1(!)2.897 E
-F0 2.897(,t)C .397(he v)-2.897 F .397(alue is the)-.25 F(ne)180 628.8 Q
--.05(ga)-.15 G .262(tion of the tw).05 F(o-ar)-.1 E .262
-(gument test using the second and third ar)-.18 F 2.762(guments. If)-.18
-F .263(the \214rst ar)2.762 F(gu-)-.18 E .206(ment is e)180 640.8 R
-(xactly)-.15 E F1(\()2.706 E F0 .205(and the third ar)2.706 F .205
-(gument is e)-.18 F(xactly)-.15 E F1(\))2.705 E F0 2.705(,t)C .205
-(he result is the one-ar)-2.705 F .205(gument test of)-.18 F 1.17
-(the second ar)180 652.8 R 3.67(gument. Otherwise,)-.18 F 1.171(the e)
-3.671 F 1.171(xpression is f)-.15 F 3.671(alse. The)-.1 F F1<ad61>3.671
-E F0(and)3.671 E F1<ad6f>3.671 E F0 1.171(operators are)3.671 F
-(considered binary operators in this case.)180 664.8 Q 2.5(4a)144 676.8
-S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 688.8 R .385
-(gument is)-.18 F F1(!)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
-700.8 R 4.147(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648
-(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
-(according to precedence using the rules listed abo)180 712.8 Q -.15(ve)
--.15 G(.).15 E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(60)
-197.89 E 0 Cg EP
+.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 724.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(GNU Bash-3.2)72
+768 Q(2006 Jan 26)149.845 E(60)199.835 E 0 Cg EP
 %%Page: 61 62
 %%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 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 .703(The command)144 165.6 R F2(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 F2(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F2
-(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
-144 177.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
+-.35 E .397(using the \214rst and third ar)180 84 R .397
+(guments as operands.)-.18 F .398(If the \214rst ar)5.398 F .398
+(gument is)-.18 F/F1 10/Times-Bold@0 SF(!)2.898 E F0 2.898(,t)C .398
+(he v)-2.898 F .398(alue is the)-.25 F(ne)180 96 Q -.05(ga)-.15 G .263
+(tion of the tw).05 F(o-ar)-.1 E .262
+(gument test using the second and third ar)-.18 F 2.762(guments. If)-.18
+F .262(the \214rst ar)2.762 F(gu-)-.18 E .205(ment is e)180 108 R
+(xactly)-.15 E F1(\()2.705 E F0 .205(and the third ar)2.705 F .205
+(gument is e)-.18 F(xactly)-.15 E F1(\))2.705 E F0 2.705(,t)C .206
+(he result is the one-ar)-2.705 F .206(gument test of)-.18 F 1.171
+(the second ar)180 120 R 3.671(gument. Otherwise,)-.18 F 1.171(the e)
+3.671 F 1.171(xpression is f)-.15 F 3.671(alse. The)-.1 F F1<ad61>3.671
+E F0(and)3.671 E F1<ad6f>3.67 E F0 1.17(operators are)3.67 F
+(considered binary operators in this case.)180 132 Q 2.5(4a)144 144 S
+-.18(rg)-2.5 G(uments).18 E .384(If the \214rst ar)180 156 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
+168 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 180 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 192 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
+E 1.635(The e)180 204 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 216 Q -.15(ve)-.15 G(.).15 E F1(times)108 232.8 Q F0 1.229(Pri\
+nt the accumulated user and system times for the shell and for processe\
+s run from the shell.)13.23 F(The return status is 0.)144 244.8 Q F1
+(trap)108 261.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 273.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 285.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
-.659(\(the v)144 189.6 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .658
+.658(\(the v)144 297.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 201.6 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 F2(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F1<ad70>3.081 E F0(has)3.081 E 1.215
-(been supplied, then the trap commands associated with each)144 213.6 R
-F2(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
-F(gu-)-.18 E .86(ments are supplied or if only)144 225.6 R F1<ad70>3.36
+144.34 309.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 321.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 333.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 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.31
-(bers. Each)144 249.6 R F2(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F2(signal.h)A F0 1.811
-(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E .745
-(names are case insensiti)144 261.6 R 1.045 -.15(ve a)-.25 H .745
+(signal. The)144 345.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 357.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 369.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 273.6 Q(g)-.37 E F0 1.629(is e)
-4.349 F -.15(xe)-.15 G 1.629(cuted on e).15 F 1.63(xit from the shell.)
+(\(0\) the command)2.995 F F2(ar)144.33 381.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.63(the command)3.88 F F2(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 285.6 R -.15(ve)-.25 G(ry).15 E F2 1.207(simple command)3.707 F F0
-(,)A F2(for)3.707 E F0(command,)3.706 E F2(case)3.706 E F0(command,)
-3.706 E F2(select)3.706 E F0 1.206(command, e)3.706 F -.15(ve)-.25 G
-1.206(ry arithmetic).15 F F2(for)144 297.6 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 309.6 Q -.15(ve)-.15 G 2.666(\). Refer).15 F .166
-(to the description of the)2.666 F F1(extdeb)2.666 E(ug)-.2 E F0 .166
+-.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 393.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 405.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 417.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 .508(on the)144 321.6 R F1
-(DEB)3.008 E(UG)-.1 E F0 3.008(trap. If)3.008 F(a)3.008 E F2(sigspec)
+(iltin for details of its ef).2 F(fect)-.25 E .509(on the)144 429.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 .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 333.6 R 2.506
+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 441.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
-345.6 S .105(cuted if the f).15 F .105
+453.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 357.6 S(yw)-.05 E .936(ord, part of the test in an)-.1 F F2(if)
+(ke)144 465.6 S(yw)-.05 E .936(ord, part of the test in an)-.1 F F2(if)
 3.446 E F0 .936(statement, part of a)5.396 F F1(&&)3.436 E F0(or)3.436 E
 /F5 10/Symbol SF<efef>3.436 E F0 .936(list, or if the command')3.436 F
-3.436(sr)-.55 G(eturn)-3.436 E -.25(va)144 369.6 S 1.094
+3.436(sr)-.55 G(eturn)-3.436 E -.25(va)144 477.6 S 1.095
 (lue is being in).25 F -.15(ve)-.4 G 1.094(rted via).15 F F1(!)3.594 E
 F0 6.094(.T)C 1.094(hese are the same conditions obe)-6.094 F 1.094
-(yed by the)-.15 F F1(err)3.594 E(exit)-.18 E F0 3.595(option. If)3.594
-F(a)3.595 E F2(sigspec)144.34 381.6 Q F0(is)3.349 E F3(RETURN)3.039 E F4
-(,)A F0 .539(the command)2.789 F F2(ar)3.368 E(g)-.37 E F0 .538(is e)
+(yed by the)-.15 F F1(err)3.594 E(exit)-.18 E F0 3.594(option. If)3.594
+F(a)3.594 E F2(sigspec)144.34 489.6 Q F0(is)3.348 E F3(RETURN)3.038 E F4
+(,)A F0 .538(the command)2.788 F F2(ar)3.368 E(g)-.37 E F0 .538(is e)
 3.258 F -.15(xe)-.15 G .538
 (cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-(cuted).15 E .505(with the)144 393.6 R F1(.)3.005 E F0(or)3.005 E F1
-(sour)3.005 E(ce)-.18 E F0 -.2(bu)3.005 G .505(iltins \214nishes e).2 F
--.15(xe)-.15 G 3.006(cuting. Signals).15 F .506
-(ignored upon entry to the shell cannot be)3.006 F .156
-(trapped or reset.)144 405.6 R -.35(Tr)5.156 G .156
-(apped signals are reset to their original v).35 F .155
-(alues in a child process when it is cre-)-.25 F 2.5(ated. The)144 417.6
+(cuted).15 E .506(with the)144 501.6 R F1(.)3.006 E F0(or)3.006 E F1
+(sour)3.006 E(ce)-.18 E F0 -.2(bu)3.006 G .506(iltins \214nishes e).2 F
+-.15(xe)-.15 G 3.006(cuting. Signals).15 F .505
+(ignored upon entry to the shell cannot be)3.006 F .155
+(trapped or reset.)144 513.6 R -.35(Tr)5.155 G .155
+(apped signals are reset to their original v).35 F .156
+(alues in a child process when it is cre-)-.25 F 2.5(ated. The)144 525.6
 R(return status is f)2.5 E(alse if an)-.1 E(y)-.15 E F2(sigspec)2.84 E
 F0(is in)2.81 E -.25(va)-.4 G(lid; otherwise).25 E F1(trap)2.5 E F0
-(returns true.)2.5 E F1(type)108 434.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 446.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 458.4 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
+(returns true.)2.5 E F1(type)108 542.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 554.4 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 566.4 Q F0 .842(option is used,)3.342 F F1(type)3.342 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 470.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 482.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 494.4 R .855
+(,).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 578.4 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
+(found, then nothing is printed, and an e)144 590.4 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
+(either returns the name of the disk \214le that w)144 602.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 506.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 518.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 530.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 542.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 554.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 566.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 578.4 S(iltin.).2 E F1(type)5 E F0
+.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
+614.4 R/F6 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 F3 -.666(PA)3.141 G(TH)
+-.189 E F0 .113(search for each)144 626.4 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 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(fa)-5.113 G .112(command is hashed,)-.001 F F1<ad70>
+2.612 E F0(and)144 638.4 Q F1<ad50>2.944 E F0 .444(print the hashed v)
+2.944 F .444(alue, not necessarily the \214le that appears \214rst in)
+-.25 F F3 -.666(PA)2.945 G(TH)-.189 E F4(.)A F0 .445(If the)4.945 F F1
+<ad61>2.945 E F0(option)2.945 E .265(is used,)144 650.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 .426(and functions, if and only if the)
+144 662.4 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 674.4 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 686.4 S(iltin.).2 E F1(type)5 E F0
 (returns true if an)2.5 E 2.5(yo)-.15 G 2.5(ft)-2.5 G(he ar)-2.5 E
 (guments are found, f)-.18 E(alse if none are found.)-.1 E F1(ulimit)108
-595.2 Q F0([)2.5 E F1(\255SHacd\215mnpstuv)A F0([)2.5 E F2(limit)A F0
-(]])A(Pro)144 607.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
+703.2 Q F0([)2.5 E F1(\255SHacde\214lmnpqrstuvx)A F0([)2.5 E F2(limit)A
+F0(]])A(Pro)144 715.2 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
 (ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 619.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 631.2 Q -.15(ve)-.25 G 2.738(nr).15 G 2.738(esource. A)-2.738 F .238
-(hard limit cannot be increased once it is set; a soft limit may be inc\
-reased up to)2.738 F .355(the v)144 643.2 R .355
-(alue of the hard limit.)-.25 F .355(If neither)5.355 F F1<ad48>2.855 E
-F0(nor)2.855 E F1<ad53>2.855 E F0 .356
-(is speci\214ed, both the soft and hard limits are set.)2.856 F .402
-(The v)144 655.2 R .402(alue of)-.25 F F2(limit)2.992 E F0 .402(can be \
-a number in the unit speci\214ed for the resource or one of the special\
- v)3.582 F(al-)-.25 E(ues)144 667.2 Q F1(hard)3.018 E F0(,)A F1(soft)
-3.018 E F0 3.018(,o)C(r)-3.018 E F1(unlimited)3.018 E F0 3.018(,w)C .518
-(hich stand for the current hard limit, the current soft limit, and no)
--3.018 F .354(limit, respecti)144 679.2 R -.15(ve)-.25 G(ly).15 E 5.354
-(.I)-.65 G(f)-5.354 E F2(limit)2.944 E F0 .354
-(is omitted, the current v)3.534 F .353
-(alue of the soft limit of the resource is printed,)-.25 F .37
-(unless the)144 691.2 R F1<ad48>2.87 E F0 .37(option is gi)2.87 F -.15
-(ve)-.25 G 2.87(n. When).15 F .37
-(more than one resource is speci\214ed, the limit name and unit)2.87 F
-(are printed before the v)144 703.2 Q 2.5(alue. Other)-.25 F
-(options are interpreted as follo)2.5 E(ws:)-.25 E F1<ad61>144 715.2 Q
-F0(All current limits are reported)25.3 E(GNU Bash-3.1-beta1)72 768 Q
-(2005 Aug 27)122.91 E(61)197.89 E 0 Cg EP
+.944(that allo)144 727.2 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
+(options specify that the hard or soft limit is set for the)3.444 F
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(61)199.835 E 0 Cg EP
 %%Page: 62 63
 %%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<ad63>144 84 Q F0
-(The maximum size of core \214les created)25.86 E F1<ad64>144 96 Q F0
+-.35 E(gi)144 84 Q -.15(ve)-.25 G 2.737(nr).15 G 2.737(esource. A)-2.737
+F .238(hard limit cannot be increased once it is set; a soft limit may \
+be increased up to)2.738 F .356(the v)144 96 R .356
+(alue of the hard limit.)-.25 F .356(If neither)5.356 F/F1 10
+/Times-Bold@0 SF<ad48>2.856 E F0(nor)2.856 E F1<ad53>2.856 E F0 .355
+(is speci\214ed, both the soft and hard limits are set.)2.855 F .402
+(The v)144 108 R .402(alue of)-.25 F/F2 10/Times-Italic@0 SF(limit)2.992
+E F0 .402(can be a number in the unit speci\214ed for the resource or o\
+ne of the special v)3.582 F(al-)-.25 E(ues)144 120 Q F1(hard)3.019 E F0
+(,)A F1(soft)3.019 E F0 3.019(,o)C(r)-3.019 E F1(unlimited)3.019 E F0
+3.018(,w)C .518
+(hich stand for the current hard limit, the current soft limit, and no)
+-3.018 F .353(limit, respecti)144 132 R -.15(ve)-.25 G(ly).15 E 5.353
+(.I)-.65 G(f)-5.353 E F2(limit)2.943 E F0 .353
+(is omitted, the current v)3.533 F .354
+(alue of the soft limit of the resource is printed,)-.25 F .37
+(unless the)144 144 R F1<ad48>2.87 E F0 .37(option is gi)2.87 F -.15(ve)
+-.25 G 2.87(n. When).15 F .37
+(more than one resource is speci\214ed, the limit name and unit)2.87 F
+(are printed before the v)144 156 Q 2.5(alue. Other)-.25 F
+(options are interpreted as follo)2.5 E(ws:)-.25 E F1<ad61>144 168 Q F0
+(All current limits are reported)25.3 E F1<ad63>144 180 Q F0
+(The maximum size of core \214les created)25.86 E F1<ad64>144 192 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<ad66>144 108 Q F0
-(The maximum size of \214les created by the shell)26.97 E F1<ad6c>144
-120 Q F0(The maximum size that may be lock)27.52 E(ed into memory)-.1 E
-F1<ad6d>144 132 Q F0(The maximum resident set size)21.97 E F1<ad6e>144
-144 Q F0 .791(The maximum number of open \214le descriptors \(most syst\
-ems 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 156 Q F1<ad70>144 168 Q F0
+(gment)-.15 E F1<ad65>144 204 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 216 Q F0
+(The maximum size of \214les created by the shell)26.97 E F1<ad69>144
+228 Q F0(The maximum number of pending signals)27.52 E F1<ad6c>144 240 Q
+F0(The maximum size that may be lock)27.52 E(ed into memory)-.1 E F1
+<ad6d>144 252 Q F0(The maximum resident set size)21.97 E F1<ad6e>144 264
+Q F0 .791(The 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 276 Q F1<ad70>144 288 Q F0
 (The pipe size in 512-byte blocks \(this may not be set\))24.74 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 300 Q F0(The maximum number of bytes in POSIX message queues)
+24.74 E F1<ad72>144 312 Q F0(The maximum real-time scheduling priority)
+25.86 E F1<ad73>144 324 Q F0(The maximum stack size)26.41 E F1<ad74>144
+336 Q F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144
+348 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 360 Q F0
 (The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
-(ilable to the shell).25 E(If)144 232.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 244.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 256.8
-Q F1<ad70>2.697 E F0 2.697(,w)C .197
-(hich is in units of 512-byte blocks, and)-2.697 F F1<ad6e>2.698 E F0
-(and)2.698 E F1<ad75>2.698 E F0 2.698(,w)C .198(hich are unscaled v)
--2.698 F 2.698(alues. The)-.25 F .404(return status is 0 unless an in)
-144 268.8 R -.25(va)-.4 G .404(lid option or ar).25 F .404
+(ilable to the shell).25 E F1<ad78>144 372 Q F0
+(The maximum number of \214le locks)25.3 E(If)144 388.8 Q F2(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
+.175(option is gi)144 400.8 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 412.8
+Q F1<ad70>2.698 E F0 2.698(,w)C .198
+(hich is in units of 512-byte blocks, and)-2.698 F F1<ad6e>2.698 E F0
+(and)2.698 E F1<ad75>2.697 E F0 2.697(,w)C .197(hich are unscaled v)
+-2.697 F 2.697(alues. The)-.25 F .404(return status is 0 unless an in)
+144 424.8 R -.25(va)-.4 G .404(lid option or ar).25 F .404
 (gument is supplied, or an error occurs while setting)-.18 F 2.5(an)144
-280.8 S .5 -.25(ew l)-2.5 H(imit.).25 E F1(umask)108 297.6 Q F0([)2.5 E
+436.8 S .5 -.25(ew l)-2.5 H(imit.).25 E F1(umask)108 453.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 309.6 R F2(mode)2.7 E F0
+.2(The user \214le-creation mask is set to)144 465.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 321.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-333.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+pted by)144 477.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+489.6 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 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 345.6 R .547
+(printed in symbolic form; the def)144 501.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 357.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 369.6 Q
+(mode)144.38 513.6 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 525.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 386.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 398.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
+(unalias)108 542.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 554.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 410.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+F(remo)144 566.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 427.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 439.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 451.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 463.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 475.2 R .903
+(is not a de\214ned alias.)2.68 E F1(unset)108 583.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 595.2 S 3.107
+(re).15 G(ach)-3.107 E F2(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 F1<ad76>144 607.2 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
+.304(n, each).15 F F2(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 F1<ad66>144 619.2 Q F0 .46
+(is speci\214ed, each)2.96 F F2(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 631.2 R .902
 (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 487.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
+(rom the en)-3.402 F .903(vironment passed to subsequent commands.)-.4 F
+(If)5.903 E(an)144 643.2 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
 (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
-499.2 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F
+4.284 E -.495(AC)-.81 G(K).495 E F0(are)4.034 E .328(unset, the)144
+655.2 R 2.828(yl)-.15 G .328(ose their special properties, e)-2.828 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 511.2 Q F2(name)2.86 E F0
-(is readonly)2.68 E(.)-.65 E F1(wait)108 528 Q F0([)2.5 E F2 2.5(n.)C
-(..)-2.5 E F0(])A -.8(Wa)144 540 S .288
+-.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .329
+(xit status is true)-.15 F(unless a)144 667.2 Q F2(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F1(wait)108 684 Q F0([)2.5 E F2 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 696 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 552 R -.15(ve)-.25 G .722
+(Each)5.288 E F2(n)3.148 E F0 .287(may be a process ID or a)3.028 F .722
+(job speci\214cation; if a job spec is gi)144 708 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 564 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 576 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 588 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 604.8 Q F0(If)108 616.8 Q
-F1(bash)4.396 E F0 1.896(is started with the name)4.396 F F1(rbash)4.397
-E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F1<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 628.8 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 640.8 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1
-(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
-657.6 S(hanging directories with)-32.5 E F1(cd)2.5 E F0 32.5<8373>108
-674.4 S(etting or unsetting the v)-32.5 E(alues of)-.25 E F1(SHELL)2.5 E
-F0(,)A F1 -.74(PA)2.5 G(TH)-.21 E F0(,)A F1(ENV)2.5 E F0 2.5(,o)C(r)-2.5
-E F1 -.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 691.2 S
-(pecifying command names containing)-32.5 E F1(/)2.5 E F0 32.5<8373>108
-708 S(pecifying a \214le name containing a)-32.5 E F1(/)2.5 E F0
-(as an ar)2.5 E(gument to the)-.18 E F1(.)2.5 E F0 -.2(bu)5 G
-(iltin command).2 E(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(62)
-197.89 E 0 Cg EP
+-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.583 E F0
+(is)3.463 E 1.266(not gi)144 720 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 F2(n)4.125 E F0
+(GNU Bash-3.2)72 768 Q(2006 Jan 26)149.845 E(62)199.835 E 0 Cg EP
 %%Page: 63 64
 %%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 32.5<8353>108 84 S .351
+-.35 E .456(speci\214es a non-e)144 84 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 96 S
+(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
+/F1 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 112.8 Q F0(If)108 124.8 Q
+/F2 10/Times-Bold@0 SF(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 136.8 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
+(beha)108 148.8 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
+165.6 S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108
+182.4 S(etting or unsetting the v)-32.5 E(alues of)-.25 E F2(SHELL)2.5 E
+F0(,)A 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 -.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 199.2 S
+(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108
+216 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0
+(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G
+(iltin command).2 E 32.5<8353>108 232.8 S .351
 (pecifying a \214lename containing a slash as an ar)-32.5 F .351
-(gument to the)-.18 F/F1 10/Times-Bold@0 SF<ad70>2.851 E F0 .351
-(option to the)2.851 F F1(hash)2.852 E F0 -.2(bu)2.852 G .352
-(iltin com-).2 F(mand)144 96 Q 32.5<8369>108 112.8 S
-(mporting function de\214nitions from the shell en)-32.5 E
-(vironment at startup)-.4 E 32.5<8370>108 129.6 S(arsing the v)-32.5 E
-(alue of)-.25 E F1(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
-(vironment at startup)-.4 E 32.5<8372>108 146.4 S(edirecting output usi\
+(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 244.8 Q
+32.5<8369>108 261.6 S(mporting function de\214nitions from the shell en)
+-32.5 E(vironment at startup)-.4 E 32.5<8370>108 278.4 S(arsing the v)
+-32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E
+(vironment at startup)-.4 E 32.5<8372>108 295.2 S(edirecting output usi\
 ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5
-<8375>108 163.2 S(sing the)-32.5 E F1(exec)2.5 E F0 -.2(bu)2.5 G
+<8375>108 312 S(sing the)-32.5 E F2(exec)2.5 E F0 -.2(bu)2.5 G
 (iltin command to replace the shell with another command).2 E 32.5<8361>
-108 180 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E F1
-<ad66>2.5 E F0(and)2.5 E F1<ad64>2.5 E F0(options to the)2.5 E F1
-(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 196.8 S
-(sing the)-32.5 E F1(enable)2.5 E F0 -.2(bu)2.5 G
+108 328.8 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E
+F2<ad66>2.5 E F0(and)2.5 E F2<ad64>2.5 E F0(options to the)2.5 E F2
+(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 345.6 S
+(sing the)-32.5 E F2(enable)2.5 E F0 -.2(bu)2.5 G
 (iltin command to enable disabled shell b).2 E(uiltins)-.2 E 32.5<8373>
-108 213.6 S(pecifying the)-32.5 E F1<ad70>2.5 E F0(option to the)2.5 E
-F1(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 230.4
-S(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F1(set +r)
-2.5 E F0(or)2.5 E F1(set +o r)2.5 E(estricted)-.18 E F0(.)A
-(These restrictions are enforced after an)108 247.2 Q 2.5(ys)-.15 G
+108 362.4 S(pecifying the)-32.5 E F2<ad70>2.5 E F0(option to the)2.5 E
+F2(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 379.2
+S(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F2(set +r)
+2.5 E F0(or)2.5 E F2(set +o r)2.5 E(estricted)-.18 E F0(.)A
+(These restrictions are enforced after an)108 396 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 264 R -.15
-(xe)-.15 G 1.566(cuted \(see).15 F/F2 9/Times-Bold@0 SF 1.566
-(COMMAND EXECUTION)4.066 F F0(abo)3.816 E -.15(ve)-.15 G(\),).15 E F1
-(rbash)108 276 Q F0(turns of)2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H
+(When a command that is found to be a shell script is e)108 412.8 R -.15
+(xe)-.15 G 1.567(cuted \(see).15 F/F3 9/Times-Bold@0 SF 1.567
+(COMMAND EXECUTION)4.067 F F0(abo)3.817 E -.15(ve)-.15 G(\),).15 E F2
+(rbash)108 424.8 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/F3 10.95/Times-Bold@0 SF(SEE ALSO)72 292.8 Q/F4
-10/Times-Italic@0 SF(Bash Refer)108 304.8 Q(ence Manual)-.37 E F0 2.5
-(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F4
-(The Gnu Readline Libr)108 316.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F4(The Gnu History Libr)108 328.8 Q
+(cute the script.).15 E F1(SEE ALSO)72 441.6 Q/F4 10/Times-Italic@0 SF
+(Bash Refer)108 453.6 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F4(The Gnu Readline Libr)108 465.6 Q
 (ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
-F4 -.8(Po)108 340.8 S(rtable Oper).8 E
+F4(The Gnu History Libr)108 477.6 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F4 -.8(Po)108 489.6 S(rtable Oper).8 E
 (ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities)
--.8 E F0 2.5(,I)C(EEE)-2.5 E F4(sh)108 352.8 Q F0(\(1\),)A F4(ksh)2.5 E
-F0(\(1\),)A F4(csh)2.5 E F0(\(1\))A F4(emacs)108 364.8 Q F0(\(1\),)A F4
-(vi)2.5 E F0(\(1\))A F4 -.37(re)108 376.8 S(adline).37 E F0(\(3\))A F3
-(FILES)72 393.6 Q F4(/bin/bash)109.666 405.6 Q F0(The)144 417.6 Q F1
-(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E F4(/etc/pr)109.666 429.6 Q
-(o\214le)-.45 E F0(The systemwide initialization \214le, e)144 441.6 Q
--.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bash_pr)109.666 453.6
-Q(o\214le)-.45 E F0(The personal initialization \214le, e)144 465.6 Q
--.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bashr)109.666 477.6 Q
-(c)-.37 E F0(The indi)144 489.6 Q(vidual per)-.25 E(-interacti)-.2 E
--.15(ve)-.25 G(-shell startup \214le).15 E F4(~/.bash_lo)109.666 501.6 Q
-(gout)-.1 E F0(The indi)144 513.6 Q
+-.8 E F0 2.5(,I)C(EEE)-2.5 E F4(sh)108 501.6 Q F0(\(1\),)A F4(ksh)2.5 E
+F0(\(1\),)A F4(csh)2.5 E F0(\(1\))A F4(emacs)108 513.6 Q F0(\(1\),)A F4
+(vi)2.5 E F0(\(1\))A F4 -.37(re)108 525.6 S(adline).37 E F0(\(3\))A F1
+(FILES)72 542.4 Q F4(/bin/bash)109.666 554.4 Q F0(The)144 566.4 Q F2
+(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E F4(/etc/pr)109.666 578.4 Q
+(o\214le)-.45 E F0(The systemwide initialization \214le, e)144 590.4 Q
+-.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bash_pr)109.666 602.4
+Q(o\214le)-.45 E F0(The personal initialization \214le, e)144 614.4 Q
+-.15(xe)-.15 G(cuted for login shells).15 E F4(~/.bashr)109.666 626.4 Q
+(c)-.37 E F0(The indi)144 638.4 Q(vidual per)-.25 E(-interacti)-.2 E
+-.15(ve)-.25 G(-shell startup \214le).15 E F4(~/.bash_lo)109.666 650.4 Q
+(gout)-.1 E F0(The indi)144 662.4 Q
 (vidual login shell cleanup \214le, e)-.25 E -.15(xe)-.15 G
-(cuted when a login shell e).15 E(xits)-.15 E F4(~/.inputr)109.666 525.6
-Q(c)-.37 E F0(Indi)144 537.6 Q(vidual)-.25 E F4 -.37(re)2.5 G(adline).37
-E F0(initialization \214le)2.5 E F3 -.548(AU)72 554.4 S(THORS).548 E F0
-(Brian F)108 566.4 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
-(bfox@gnu.or)108 578.4 Q(g)-.18 E(Chet Rame)108 595.2 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@po.cwru.edu)108 607.2 Q F3 -.11(BU)72 624 S
-2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567(If you \214nd a b)108
-636 R .568(ug in)-.2 F F1(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 .568(ug, and)-.2 F 5.626
-(that it appears in the latest v)108 648 R 5.625(ersion of)-.15 F F1
-(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 F4(ftp://ftp.gnu.or)108 660 Q(g/pub/bash/)-.37 E F0
-(.)A .41(Once you ha)108 676.8 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 F4(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 688.8 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 700.8 Q F4 -.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 F1(gnu.bash.b)2.5 E(ug)
--.2 E F0(.)A(ALL b)108 717.6 Q(ug reports should include:)-.2 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(63)197.89 E 0 Cg EP
+(cuted when a login shell e).15 E(xits)-.15 E F4(~/.inputr)109.666 674.4
+Q(c)-.37 E F0(Indi)144 686.4 Q(vidual)-.25 E F4 -.37(re)2.5 G(adline).37
+E F0(initialization \214le)2.5 E F1 -.548(AU)72 703.2 S(THORS).548 E F0
+(Brian F)108 715.2 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
+(bfox@gnu.or)108 727.2 Q(g)-.18 E(GNU Bash-3.2)72 768 Q(2006 Jan 26)
+149.845 E(63)199.835 E 0 Cg EP
 %%Page: 64 65
 %%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(The v)108 84 Q(ersion number of)-.15 E/F1 10/Times-Bold@0 SF
-(bash)2.5 E F0(The hardw)108 96 Q(are and operating system)-.1 E
-(The compiler used to compile)108 108 Q 2.5(Ad)108 120 S
-(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 E 2.5(As)108 132 S
-(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 G(rcises the b).15
-E(ug)-.2 E/F2 10/Times-Italic@0 SF(bashb)108.27 148.8 Q(ug)-.2 E F0
+-.35 E(Chet Rame)108 84 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@po.cwru.edu)108 96 Q/F1 10.95/Times-Bold@0 SF -.11(BU)72 112.8 S
+2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .568(If you \214nd a b)108
+124.8 R .568(ug in)-.2 F/F2 10/Times-Bold@0 SF(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 136.8 R 5.625(ersion of)-.15
+F F2(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
+(ilable from).25 F/F3 10/Times-Italic@0 SF(ftp://ftp.gnu.or)108 148.8 Q
+(g/pub/bash/)-.37 E F0(.)A .411(Once you ha)108 165.6 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 F3(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 177.6 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
+(be mailed to)108 189.6 Q F3 -.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 F2(gnu.bash.b)2.5 E(ug)
+-.2 E F0(.)A(ALL b)108 206.4 Q(ug reports should include:)-.2 E(The v)
+108 223.2 Q(ersion number of)-.15 E F2(bash)2.5 E F0(The hardw)108 235.2
+Q(are and operating system)-.1 E(The compiler used to compile)108 247.2
+Q 2.5(Ad)108 259.2 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2
+E 2.5(As)108 271.2 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15
+G(rcises the b).15 E(ug)-.2 E F3(bashb)108.27 288 Q(ug)-.2 E F0
 (inserts the \214rst three items automatically into the template it pro)
 2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
-165.6 Q(ug reports concerning this manual page should be directed to)-.2
-E F2 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E/F3 10.95/Times-Bold@0
-SF -.11(BU)72 182.4 S(GS).11 E F0(It')108 194.4 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.868
-(There are some subtle dif)108 211.2 R 1.868(ferences between)-.25 F F1
-(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F
-F1(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 223.2 Q F0(speci\214cation.)2.25 E
-(Aliases are confusing in some uses.)108 240 Q(Shell b)108 256.8 Q
+304.8 Q(ug reports concerning this manual page should be directed to)-.2
+E F3 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E F1 -.11(BU)72 321.6 S
+(GS).11 E F0(It')108 333.6 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 350.4 R 1.869
+(ferences between)-.25 F F2(bash)4.369 E F0 1.869(and traditional v)
+4.369 F 1.869(ersions of)-.15 F F2(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 362.4 Q F0
+(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 379.2 Q
+(Shell b)108 396 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 273.6 R .389
-(process suspension is attempted.)108 285.6 R .389
-(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 297.6 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 309.6 Q .955
-(Commands inside of)108 326.4 R F1($\()3.455 E F0(...)A F1(\))A F0 .956
+re not handled gracefully when)108 412.8 R .39
+(process suspension is attempted.)108 424.8 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 436.8 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 448.8 Q .956
+(Commands inside of)108 465.6 R F2($\()3.456 E F0(...)A F2(\))A F0 .956
 (command substitution are not parsed until substitution is attempted.)
-3.455 F .956(This will)5.956 F .567
+3.456 F .955(This will)5.955 F .567
 (delay error reporting until some time after the command is entered.)108
-338.4 R -.15(Fo)5.567 G 3.067(re).15 G .567
-(xample, unmatched parentheses,)-3.217 F -2.15 -.25(ev e)108 350.4 T 2.5
+477.6 R -.15(Fo)5.567 G 3.067(re).15 G .568
+(xample, unmatched parentheses,)-3.217 F -2.15 -.25(ev e)108 489.6 T 2.5
 (ni).25 G(nside shell comments, will result in error messages while the\
- construct is being read.)-2.5 E(Array v)108 367.2 Q
-(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
-(GNU Bash-3.1-beta1)72 768 Q(2005 Aug 27)122.91 E(64)197.89 E 0 Cg EP
+ construct is being read.)-2.5 E(Array v)108 506.4 Q
+(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash-3.2)72
+768 Q(2006 Jan 26)149.845 E(64)199.835 E 0 Cg EP
 %%Trailer
 end
 %%EOF
index 6f64c5fa50c497029dc035d768f6e19c02507ac1..b04fbcf3e6db7b3b92f056ccc73c895ba39d898b 100644 (file)
 @xrdef{Pattern Matching-pg}{23}
 @xrdef{Pattern Matching-snt}{Section@tie 3.5.8.1}
 @xrdef{Quote Removal-title}{Quote Removal}
-@xrdef{Quote Removal-pg}{24}
+@xrdef{Quote Removal-pg}{25}
 @xrdef{Quote Removal-snt}{Section@tie 3.5.9}
 @xrdef{Redirections-title}{Redirections}
 @xrdef{Redirections-pg}{25}
 @xrdef{Shell Scripts-pg}{32}
 @xrdef{Shell Scripts-snt}{Section@tie 3.8}
 @xrdef{Shell Builtin Commands-title}{Shell Builtin Commands}
-@xrdef{Shell Builtin Commands-pg}{33}
+@xrdef{Shell Builtin Commands-pg}{35}
 @xrdef{Shell Builtin Commands-snt}{Chapter@tie 4}
 @xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins}
-@xrdef{Bourne Shell Builtins-pg}{33}
+@xrdef{Bourne Shell Builtins-pg}{35}
 @xrdef{Bourne Shell Builtins-snt}{Section@tie 4.1}
 @xrdef{Bash Builtins-title}{Bash Builtin Commands}
-@xrdef{Bash Builtins-pg}{39}
+@xrdef{Bash Builtins-pg}{41}
 @xrdef{Bash Builtins-snt}{Section@tie 4.2}
 @xrdef{The Set Builtin-title}{The Set Builtin}
-@xrdef{The Set Builtin-pg}{51}
+@xrdef{The Set Builtin-pg}{53}
 @xrdef{The Set Builtin-snt}{Section@tie 4.3}
 @xrdef{Special Builtins-title}{Special Builtins}
-@xrdef{Special Builtins-pg}{54}
+@xrdef{Special Builtins-pg}{56}
 @xrdef{Special Builtins-snt}{Section@tie 4.4}
 @xrdef{Shell Variables-title}{Shell Variables}
-@xrdef{Shell Variables-pg}{55}
+@xrdef{Shell Variables-pg}{57}
 @xrdef{Shell Variables-snt}{Chapter@tie 5}
 @xrdef{Bourne Shell Variables-title}{Bourne Shell Variables}
-@xrdef{Bourne Shell Variables-pg}{55}
+@xrdef{Bourne Shell Variables-pg}{57}
 @xrdef{Bourne Shell Variables-snt}{Section@tie 5.1}
 @xrdef{Bash Variables-title}{Bash Variables}
-@xrdef{Bash Variables-pg}{55}
+@xrdef{Bash Variables-pg}{57}
 @xrdef{Bash Variables-snt}{Section@tie 5.2}
 @xrdef{Bash Features-title}{Bash Features}
-@xrdef{Bash Features-pg}{65}
+@xrdef{Bash Features-pg}{67}
 @xrdef{Bash Features-snt}{Chapter@tie 6}
 @xrdef{Invoking Bash-title}{Invoking Bash}
-@xrdef{Invoking Bash-pg}{65}
+@xrdef{Invoking Bash-pg}{67}
 @xrdef{Invoking Bash-snt}{Section@tie 6.1}
 @xrdef{Bash Startup Files-title}{Bash Startup Files}
-@xrdef{Bash Startup Files-pg}{67}
+@xrdef{Bash Startup Files-pg}{69}
 @xrdef{Bash Startup Files-snt}{Section@tie 6.2}
 @xrdef{Interactive Shells-title}{Interactive Shells}
-@xrdef{Interactive Shells-pg}{69}
+@xrdef{Interactive Shells-pg}{71}
 @xrdef{Interactive Shells-snt}{Section@tie 6.3}
 @xrdef{What is an Interactive Shell?-title}{What is an Interactive Shell?}
-@xrdef{What is an Interactive Shell?-pg}{69}
+@xrdef{What is an Interactive Shell?-pg}{71}
 @xrdef{What is an Interactive Shell?-snt}{Section@tie 6.3.1}
 @xrdef{Is this Shell Interactive?-title}{Is this Shell Interactive?}
-@xrdef{Is this Shell Interactive?-pg}{69}
+@xrdef{Is this Shell Interactive?-pg}{71}
 @xrdef{Is this Shell Interactive?-snt}{Section@tie 6.3.2}
 @xrdef{Interactive Shell Behavior-title}{Interactive Shell Behavior}
-@xrdef{Interactive Shell Behavior-pg}{69}
+@xrdef{Interactive Shell Behavior-pg}{71}
 @xrdef{Interactive Shell Behavior-snt}{Section@tie 6.3.3}
 @xrdef{Bash Conditional Expressions-title}{Bash Conditional Expressions}
-@xrdef{Bash Conditional Expressions-pg}{71}
+@xrdef{Bash Conditional Expressions-pg}{73}
 @xrdef{Bash Conditional Expressions-snt}{Section@tie 6.4}
 @xrdef{Shell Arithmetic-title}{Shell Arithmetic}
-@xrdef{Shell Arithmetic-pg}{72}
+@xrdef{Shell Arithmetic-pg}{74}
 @xrdef{Shell Arithmetic-snt}{Section@tie 6.5}
 @xrdef{Aliases-title}{Aliases}
-@xrdef{Aliases-pg}{73}
+@xrdef{Aliases-pg}{75}
 @xrdef{Aliases-snt}{Section@tie 6.6}
 @xrdef{Arrays-title}{Arrays}
-@xrdef{Arrays-pg}{74}
+@xrdef{Arrays-pg}{76}
 @xrdef{Arrays-snt}{Section@tie 6.7}
 @xrdef{The Directory Stack-title}{The Directory Stack}
-@xrdef{The Directory Stack-pg}{75}
+@xrdef{The Directory Stack-pg}{77}
 @xrdef{The Directory Stack-snt}{Section@tie 6.8}
 @xrdef{Directory Stack Builtins-title}{Directory Stack Builtins}
-@xrdef{Directory Stack Builtins-pg}{75}
+@xrdef{Directory Stack Builtins-pg}{77}
 @xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1}
 @xrdef{Printing a Prompt-title}{Controlling the Prompt}
-@xrdef{Printing a Prompt-pg}{77}
+@xrdef{Printing a Prompt-pg}{79}
 @xrdef{Printing a Prompt-snt}{Section@tie 6.9}
 @xrdef{The Restricted Shell-title}{The Restricted Shell}
-@xrdef{The Restricted Shell-pg}{78}
+@xrdef{The Restricted Shell-pg}{80}
 @xrdef{The Restricted Shell-snt}{Section@tie 6.10}
 @xrdef{Bash POSIX Mode-title}{Bash POSIX Mode}
-@xrdef{Bash POSIX Mode-pg}{78}
+@xrdef{Bash POSIX Mode-pg}{80}
 @xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
 @xrdef{Job Control-title}{Job Control}
-@xrdef{Job Control-pg}{83}
+@xrdef{Job Control-pg}{85}
 @xrdef{Job Control-snt}{Chapter@tie 7}
 @xrdef{Job Control Basics-title}{Job Control Basics}
-@xrdef{Job Control Basics-pg}{83}
+@xrdef{Job Control Basics-pg}{85}
 @xrdef{Job Control Basics-snt}{Section@tie 7.1}
 @xrdef{Job Control Builtins-title}{Job Control Builtins}
-@xrdef{Job Control Builtins-pg}{84}
+@xrdef{Job Control Builtins-pg}{86}
 @xrdef{Job Control Builtins-snt}{Section@tie 7.2}
 @xrdef{Job Control Variables-title}{Job Control Variables}
-@xrdef{Job Control Variables-pg}{86}
+@xrdef{Job Control Variables-pg}{88}
 @xrdef{Job Control Variables-snt}{Section@tie 7.3}
 @xrdef{Command Line Editing-title}{Command Line Editing}
-@xrdef{Command Line Editing-pg}{87}
+@xrdef{Command Line Editing-pg}{89}
 @xrdef{Command Line Editing-snt}{Chapter@tie 8}
 @xrdef{Introduction and Notation-title}{Introduction to Line Editing}
-@xrdef{Introduction and Notation-pg}{87}
+@xrdef{Introduction and Notation-pg}{89}
 @xrdef{Introduction and Notation-snt}{Section@tie 8.1}
 @xrdef{Readline Interaction-title}{Readline Interaction}
-@xrdef{Readline Interaction-pg}{87}
+@xrdef{Readline Interaction-pg}{89}
 @xrdef{Readline Interaction-snt}{Section@tie 8.2}
 @xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
-@xrdef{Readline Bare Essentials-pg}{87}
+@xrdef{Readline Bare Essentials-pg}{89}
 @xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
 @xrdef{Readline Movement Commands-title}{Readline Movement Commands}
-@xrdef{Readline Movement Commands-pg}{88}
+@xrdef{Readline Movement Commands-pg}{90}
 @xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
 @xrdef{Readline Killing Commands-title}{Readline Killing Commands}
-@xrdef{Readline Killing Commands-pg}{89}
+@xrdef{Readline Killing Commands-pg}{91}
 @xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
 @xrdef{Readline Arguments-title}{Readline Arguments}
-@xrdef{Readline Arguments-pg}{89}
+@xrdef{Readline Arguments-pg}{91}
 @xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
 @xrdef{Searching-title}{Searching for Commands in the History}
-@xrdef{Searching-pg}{90}
+@xrdef{Searching-pg}{92}
 @xrdef{Searching-snt}{Section@tie 8.2.5}
 @xrdef{Readline Init File-title}{Readline Init File}
-@xrdef{Readline Init File-pg}{90}
+@xrdef{Readline Init File-pg}{92}
 @xrdef{Readline Init File-snt}{Section@tie 8.3}
 @xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
-@xrdef{Readline Init File Syntax-pg}{90}
+@xrdef{Readline Init File Syntax-pg}{92}
 @xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
 @xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
-@xrdef{Conditional Init Constructs-pg}{95}
+@xrdef{Conditional Init Constructs-pg}{97}
 @xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
 @xrdef{Sample Init File-title}{Sample Init File}
-@xrdef{Sample Init File-pg}{96}
+@xrdef{Sample Init File-pg}{98}
 @xrdef{Sample Init File-snt}{Section@tie 8.3.3}
 @xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
-@xrdef{Bindable Readline Commands-pg}{99}
+@xrdef{Bindable Readline Commands-pg}{101}
 @xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
 @xrdef{Commands For Moving-title}{Commands For Moving}
-@xrdef{Commands For Moving-pg}{99}
+@xrdef{Commands For Moving-pg}{101}
 @xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
 @xrdef{Commands For History-title}{Commands For Manipulating The History}
-@xrdef{Commands For History-pg}{99}
+@xrdef{Commands For History-pg}{101}
 @xrdef{Commands For History-snt}{Section@tie 8.4.2}
 @xrdef{Commands For Text-title}{Commands For Changing Text}
-@xrdef{Commands For Text-pg}{101}
+@xrdef{Commands For Text-pg}{103}
 @xrdef{Commands For Text-snt}{Section@tie 8.4.3}
 @xrdef{Commands For Killing-title}{Killing And Yanking}
-@xrdef{Commands For Killing-pg}{102}
+@xrdef{Commands For Killing-pg}{104}
 @xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
 @xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
-@xrdef{Numeric Arguments-pg}{103}
+@xrdef{Numeric Arguments-pg}{105}
 @xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
 @xrdef{Commands For Completion-title}{Letting Readline Type For You}
-@xrdef{Commands For Completion-pg}{103}
+@xrdef{Commands For Completion-pg}{105}
 @xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
 @xrdef{Keyboard Macros-title}{Keyboard Macros}
-@xrdef{Keyboard Macros-pg}{104}
+@xrdef{Keyboard Macros-pg}{106}
 @xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
 @xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
-@xrdef{Miscellaneous Commands-pg}{105}
+@xrdef{Miscellaneous Commands-pg}{107}
 @xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
 @xrdef{Readline vi Mode-title}{Readline vi Mode}
-@xrdef{Readline vi Mode-pg}{107}
+@xrdef{Readline vi Mode-pg}{109}
 @xrdef{Readline vi Mode-snt}{Section@tie 8.5}
 @xrdef{Programmable Completion-title}{Programmable Completion}
-@xrdef{Programmable Completion-pg}{107}
+@xrdef{Programmable Completion-pg}{109}
 @xrdef{Programmable Completion-snt}{Section@tie 8.6}
 @xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
-@xrdef{Programmable Completion Builtins-pg}{109}
+@xrdef{Programmable Completion Builtins-pg}{111}
 @xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
 @xrdef{Using History Interactively-title}{Using History Interactively}
-@xrdef{Using History Interactively-pg}{113}
+@xrdef{Using History Interactively-pg}{115}
 @xrdef{Using History Interactively-snt}{Chapter@tie 9}
 @xrdef{Bash History Facilities-title}{Bash History Facilities}
-@xrdef{Bash History Facilities-pg}{113}
+@xrdef{Bash History Facilities-pg}{115}
 @xrdef{Bash History Facilities-snt}{Section@tie 9.1}
 @xrdef{Bash History Builtins-title}{Bash History Builtins}
-@xrdef{Bash History Builtins-pg}{113}
+@xrdef{Bash History Builtins-pg}{115}
 @xrdef{Bash History Builtins-snt}{Section@tie 9.2}
 @xrdef{History Interaction-title}{History Expansion}
-@xrdef{History Interaction-pg}{115}
+@xrdef{History Interaction-pg}{117}
 @xrdef{History Interaction-snt}{Section@tie 9.3}
 @xrdef{Event Designators-title}{Event Designators}
-@xrdef{Event Designators-pg}{115}
+@xrdef{Event Designators-pg}{117}
 @xrdef{Event Designators-snt}{Section@tie 9.3.1}
 @xrdef{Word Designators-title}{Word Designators}
-@xrdef{Word Designators-pg}{116}
+@xrdef{Word Designators-pg}{118}
 @xrdef{Word Designators-snt}{Section@tie 9.3.2}
 @xrdef{Modifiers-title}{Modifiers}
-@xrdef{Modifiers-pg}{117}
+@xrdef{Modifiers-pg}{119}
 @xrdef{Modifiers-snt}{Section@tie 9.3.3}
 @xrdef{Installing Bash-title}{Installing Bash}
-@xrdef{Installing Bash-pg}{119}
+@xrdef{Installing Bash-pg}{121}
 @xrdef{Installing Bash-snt}{Chapter@tie 10}
 @xrdef{Basic Installation-title}{Basic Installation}
-@xrdef{Basic Installation-pg}{119}
+@xrdef{Basic Installation-pg}{121}
 @xrdef{Basic Installation-snt}{Section@tie 10.1}
 @xrdef{Compilers and Options-title}{Compilers and Options}
-@xrdef{Compilers and Options-pg}{120}
+@xrdef{Compilers and Options-pg}{122}
 @xrdef{Compilers and Options-snt}{Section@tie 10.2}
 @xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
-@xrdef{Compiling For Multiple Architectures-pg}{120}
+@xrdef{Compiling For Multiple Architectures-pg}{122}
 @xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
 @xrdef{Installation Names-title}{Installation Names}
-@xrdef{Installation Names-pg}{120}
+@xrdef{Installation Names-pg}{122}
 @xrdef{Installation Names-snt}{Section@tie 10.4}
 @xrdef{Specifying the System Type-title}{Specifying the System Type}
-@xrdef{Specifying the System Type-pg}{121}
+@xrdef{Specifying the System Type-pg}{123}
 @xrdef{Specifying the System Type-snt}{Section@tie 10.5}
 @xrdef{Sharing Defaults-title}{Sharing Defaults}
-@xrdef{Sharing Defaults-pg}{121}
+@xrdef{Sharing Defaults-pg}{123}
 @xrdef{Sharing Defaults-snt}{Section@tie 10.6}
 @xrdef{Operation Controls-title}{Operation Controls}
-@xrdef{Operation Controls-pg}{121}
+@xrdef{Operation Controls-pg}{123}
 @xrdef{Operation Controls-snt}{Section@tie 10.7}
 @xrdef{Optional Features-title}{Optional Features}
-@xrdef{Optional Features-pg}{121}
+@xrdef{Optional Features-pg}{123}
 @xrdef{Optional Features-snt}{Section@tie 10.8}
 @xrdef{Reporting Bugs-title}{Reporting Bugs}
-@xrdef{Reporting Bugs-pg}{127}
+@xrdef{Reporting Bugs-pg}{129}
 @xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
 @xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
-@xrdef{Major Differences From The Bourne Shell-pg}{129}
+@xrdef{Major Differences From The Bourne Shell-pg}{131}
 @xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
 @xrdef{Copying This Manual-title}{Copying This Manual}
-@xrdef{Copying This Manual-pg}{135}
+@xrdef{Copying This Manual-pg}{137}
 @xrdef{Copying This Manual-snt}{Appendix@tie @char67{}}
 @xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
-@xrdef{GNU Free Documentation License-pg}{135}
+@xrdef{GNU Free Documentation License-pg}{137}
 @xrdef{GNU Free Documentation License-snt}{Section@tie @char67.1}
 @xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
-@xrdef{Builtin Index-pg}{143}
+@xrdef{Builtin Index-pg}{145}
 @xrdef{Builtin Index-snt}{}
 @xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
-@xrdef{Reserved Word Index-pg}{145}
+@xrdef{Reserved Word Index-pg}{147}
 @xrdef{Reserved Word Index-snt}{}
 @xrdef{Variable Index-title}{Parameter and Variable Index}
-@xrdef{Variable Index-pg}{147}
+@xrdef{Variable Index-pg}{149}
 @xrdef{Variable Index-snt}{}
 @xrdef{Function Index-title}{Function Index}
-@xrdef{Function Index-pg}{149}
+@xrdef{Function Index-pg}{151}
 @xrdef{Function Index-snt}{}
 @xrdef{Concept Index-title}{Concept Index}
-@xrdef{Concept Index-pg}{151}
+@xrdef{Concept Index-pg}{153}
 @xrdef{Concept Index-snt}{}
index a2212c63258709374d9070123a47d86776b6b7fa..f551e6f4fb6d66d399e1adfdd1c48fe79d19ee60 100644 (file)
@@ -1,56 +1,56 @@
-\entry{:}{33}{\code {:}}
-\entry{.}{33}{\code {.}}
-\entry{break}{33}{\code {break}}
-\entry{cd}{34}{\code {cd}}
-\entry{continue}{34}{\code {continue}}
-\entry{eval}{34}{\code {eval}}
-\entry{exec}{34}{\code {exec}}
-\entry{exit}{34}{\code {exit}}
-\entry{export}{34}{\code {export}}
-\entry{getopts}{35}{\code {getopts}}
-\entry{hash}{35}{\code {hash}}
-\entry{pwd}{36}{\code {pwd}}
-\entry{readonly}{36}{\code {readonly}}
-\entry{return}{36}{\code {return}}
-\entry{shift}{36}{\code {shift}}
-\entry{test}{37}{\code {test}}
-\entry{[}{37}{\code {[}}
-\entry{times}{38}{\code {times}}
-\entry{trap}{38}{\code {trap}}
-\entry{umask}{38}{\code {umask}}
-\entry{unset}{39}{\code {unset}}
-\entry{alias}{39}{\code {alias}}
-\entry{bind}{39}{\code {bind}}
-\entry{builtin}{40}{\code {builtin}}
-\entry{caller}{40}{\code {caller}}
-\entry{command}{41}{\code {command}}
-\entry{declare}{41}{\code {declare}}
-\entry{echo}{42}{\code {echo}}
-\entry{enable}{43}{\code {enable}}
-\entry{help}{43}{\code {help}}
-\entry{let}{43}{\code {let}}
-\entry{local}{43}{\code {local}}
-\entry{logout}{44}{\code {logout}}
-\entry{printf}{44}{\code {printf}}
-\entry{read}{44}{\code {read}}
-\entry{shopt}{45}{\code {shopt}}
-\entry{source}{49}{\code {source}}
-\entry{type}{49}{\code {type}}
-\entry{typeset}{49}{\code {typeset}}
-\entry{ulimit}{50}{\code {ulimit}}
-\entry{unalias}{50}{\code {unalias}}
-\entry{set}{51}{\code {set}}
-\entry{dirs}{75}{\code {dirs}}
-\entry{popd}{76}{\code {popd}}
-\entry{pushd}{76}{\code {pushd}}
-\entry{bg}{84}{\code {bg}}
-\entry{fg}{84}{\code {fg}}
-\entry{jobs}{84}{\code {jobs}}
-\entry{kill}{85}{\code {kill}}
-\entry{wait}{85}{\code {wait}}
-\entry{disown}{85}{\code {disown}}
-\entry{suspend}{85}{\code {suspend}}
-\entry{compgen}{109}{\code {compgen}}
-\entry{complete}{109}{\code {complete}}
-\entry{fc}{113}{\code {fc}}
-\entry{history}{114}{\code {history}}
+\entry{:}{35}{\code {:}}
+\entry{.}{35}{\code {.}}
+\entry{break}{35}{\code {break}}
+\entry{cd}{36}{\code {cd}}
+\entry{continue}{36}{\code {continue}}
+\entry{eval}{36}{\code {eval}}
+\entry{exec}{36}{\code {exec}}
+\entry{exit}{36}{\code {exit}}
+\entry{export}{36}{\code {export}}
+\entry{getopts}{37}{\code {getopts}}
+\entry{hash}{37}{\code {hash}}
+\entry{pwd}{38}{\code {pwd}}
+\entry{readonly}{38}{\code {readonly}}
+\entry{return}{38}{\code {return}}
+\entry{shift}{38}{\code {shift}}
+\entry{test}{39}{\code {test}}
+\entry{[}{39}{\code {[}}
+\entry{times}{40}{\code {times}}
+\entry{trap}{40}{\code {trap}}
+\entry{umask}{40}{\code {umask}}
+\entry{unset}{41}{\code {unset}}
+\entry{alias}{41}{\code {alias}}
+\entry{bind}{41}{\code {bind}}
+\entry{builtin}{42}{\code {builtin}}
+\entry{caller}{42}{\code {caller}}
+\entry{command}{43}{\code {command}}
+\entry{declare}{43}{\code {declare}}
+\entry{echo}{44}{\code {echo}}
+\entry{enable}{45}{\code {enable}}
+\entry{help}{45}{\code {help}}
+\entry{let}{45}{\code {let}}
+\entry{local}{45}{\code {local}}
+\entry{logout}{46}{\code {logout}}
+\entry{printf}{46}{\code {printf}}
+\entry{read}{46}{\code {read}}
+\entry{shopt}{47}{\code {shopt}}
+\entry{source}{51}{\code {source}}
+\entry{type}{51}{\code {type}}
+\entry{typeset}{51}{\code {typeset}}
+\entry{ulimit}{52}{\code {ulimit}}
+\entry{unalias}{53}{\code {unalias}}
+\entry{set}{53}{\code {set}}
+\entry{dirs}{77}{\code {dirs}}
+\entry{popd}{78}{\code {popd}}
+\entry{pushd}{78}{\code {pushd}}
+\entry{bg}{86}{\code {bg}}
+\entry{fg}{86}{\code {fg}}
+\entry{jobs}{86}{\code {jobs}}
+\entry{kill}{87}{\code {kill}}
+\entry{wait}{87}{\code {wait}}
+\entry{disown}{87}{\code {disown}}
+\entry{suspend}{87}{\code {suspend}}
+\entry{compgen}{111}{\code {compgen}}
+\entry{complete}{111}{\code {complete}}
+\entry{fc}{115}{\code {fc}}
+\entry{history}{116}{\code {history}}
index dc072995393c471b976aba79cf561268f77ff9e0..31487e837ddd9c2aa99d3e14ce315dabfb7fc565 100644 (file)
@@ -1,76 +1,76 @@
 \initial {.}
-\entry {\code {.}}{33}
+\entry {\code {.}}{35}
 \initial {:}
-\entry {\code {:}}{33}
+\entry {\code {:}}{35}
 \initial {[}
-\entry {\code {[}}{37}
+\entry {\code {[}}{39}
 \initial {A}
-\entry {\code {alias}}{39}
+\entry {\code {alias}}{41}
 \initial {B}
-\entry {\code {bg}}{84}
-\entry {\code {bind}}{39}
-\entry {\code {break}}{33}
-\entry {\code {builtin}}{40}
+\entry {\code {bg}}{86}
+\entry {\code {bind}}{41}
+\entry {\code {break}}{35}
+\entry {\code {builtin}}{42}
 \initial {C}
-\entry {\code {caller}}{40}
-\entry {\code {cd}}{34}
-\entry {\code {command}}{41}
-\entry {\code {compgen}}{109}
-\entry {\code {complete}}{109}
-\entry {\code {continue}}{34}
+\entry {\code {caller}}{42}
+\entry {\code {cd}}{36}
+\entry {\code {command}}{43}
+\entry {\code {compgen}}{111}
+\entry {\code {complete}}{111}
+\entry {\code {continue}}{36}
 \initial {D}
-\entry {\code {declare}}{41}
-\entry {\code {dirs}}{75}
-\entry {\code {disown}}{85}
+\entry {\code {declare}}{43}
+\entry {\code {dirs}}{77}
+\entry {\code {disown}}{87}
 \initial {E}
-\entry {\code {echo}}{42}
-\entry {\code {enable}}{43}
-\entry {\code {eval}}{34}
-\entry {\code {exec}}{34}
-\entry {\code {exit}}{34}
-\entry {\code {export}}{34}
+\entry {\code {echo}}{44}
+\entry {\code {enable}}{45}
+\entry {\code {eval}}{36}
+\entry {\code {exec}}{36}
+\entry {\code {exit}}{36}
+\entry {\code {export}}{36}
 \initial {F}
-\entry {\code {fc}}{113}
-\entry {\code {fg}}{84}
+\entry {\code {fc}}{115}
+\entry {\code {fg}}{86}
 \initial {G}
-\entry {\code {getopts}}{35}
+\entry {\code {getopts}}{37}
 \initial {H}
-\entry {\code {hash}}{35}
-\entry {\code {help}}{43}
-\entry {\code {history}}{114}
+\entry {\code {hash}}{37}
+\entry {\code {help}}{45}
+\entry {\code {history}}{116}
 \initial {J}
-\entry {\code {jobs}}{84}
+\entry {\code {jobs}}{86}
 \initial {K}
-\entry {\code {kill}}{85}
+\entry {\code {kill}}{87}
 \initial {L}
-\entry {\code {let}}{43}
-\entry {\code {local}}{43}
-\entry {\code {logout}}{44}
+\entry {\code {let}}{45}
+\entry {\code {local}}{45}
+\entry {\code {logout}}{46}
 \initial {P}
-\entry {\code {popd}}{76}
-\entry {\code {printf}}{44}
-\entry {\code {pushd}}{76}
-\entry {\code {pwd}}{36}
+\entry {\code {popd}}{78}
+\entry {\code {printf}}{46}
+\entry {\code {pushd}}{78}
+\entry {\code {pwd}}{38}
 \initial {R}
-\entry {\code {read}}{44}
-\entry {\code {readonly}}{36}
-\entry {\code {return}}{36}
+\entry {\code {read}}{46}
+\entry {\code {readonly}}{38}
+\entry {\code {return}}{38}
 \initial {S}
-\entry {\code {set}}{51}
-\entry {\code {shift}}{36}
-\entry {\code {shopt}}{45}
-\entry {\code {source}}{49}
-\entry {\code {suspend}}{85}
+\entry {\code {set}}{53}
+\entry {\code {shift}}{38}
+\entry {\code {shopt}}{47}
+\entry {\code {source}}{51}
+\entry {\code {suspend}}{87}
 \initial {T}
-\entry {\code {test}}{37}
-\entry {\code {times}}{38}
-\entry {\code {trap}}{38}
-\entry {\code {type}}{49}
-\entry {\code {typeset}}{49}
+\entry {\code {test}}{39}
+\entry {\code {times}}{40}
+\entry {\code {trap}}{40}
+\entry {\code {type}}{51}
+\entry {\code {typeset}}{51}
 \initial {U}
-\entry {\code {ulimit}}{50}
-\entry {\code {umask}}{38}
-\entry {\code {unalias}}{50}
-\entry {\code {unset}}{39}
+\entry {\code {ulimit}}{52}
+\entry {\code {umask}}{40}
+\entry {\code {unalias}}{53}
+\entry {\code {unset}}{41}
 \initial {W}
-\entry {\code {wait}}{85}
+\entry {\code {wait}}{87}
index 62b6a3508f3093556fbd8af3670d7676bfee547b..83484e2f109bfb15f031863657913e214bd7eba4 100644 (file)
 \entry{exit status}{31}{exit status}
 \entry{signal handling}{31}{signal handling}
 \entry{shell script}{32}{shell script}
-\entry{special builtin}{54}{special builtin}
-\entry{login shell}{67}{login shell}
-\entry{interactive shell}{67}{interactive shell}
-\entry{startup files}{67}{startup files}
+\entry{special builtin}{56}{special builtin}
+\entry{login shell}{69}{login shell}
 \entry{interactive shell}{69}{interactive shell}
-\entry{shell, interactive}{69}{shell, interactive}
-\entry{expressions, conditional}{71}{expressions, conditional}
-\entry{arithmetic, shell}{72}{arithmetic, shell}
-\entry{shell arithmetic}{72}{shell arithmetic}
-\entry{expressions, arithmetic}{72}{expressions, arithmetic}
-\entry{evaluation, arithmetic}{72}{evaluation, arithmetic}
-\entry{arithmetic evaluation}{72}{arithmetic evaluation}
-\entry{alias expansion}{73}{alias expansion}
-\entry{arrays}{74}{arrays}
-\entry{directory stack}{75}{directory stack}
-\entry{prompting}{77}{prompting}
-\entry{restricted shell}{78}{restricted shell}
-\entry{POSIX Mode}{78}{POSIX Mode}
-\entry{job control}{83}{job control}
-\entry{foreground}{83}{foreground}
-\entry{background}{83}{background}
-\entry{suspending jobs}{83}{suspending jobs}
-\entry{Readline, how to use}{86}{Readline, how to use}
-\entry{interaction, readline}{87}{interaction, readline}
-\entry{notation, readline}{87}{notation, readline}
-\entry{command editing}{87}{command editing}
-\entry{editing command lines}{87}{editing command lines}
-\entry{killing text}{89}{killing text}
-\entry{yanking text}{89}{yanking text}
-\entry{kill ring}{89}{kill ring}
-\entry{initialization file, readline}{90}{initialization file, readline}
-\entry{variables, readline}{91}{variables, readline}
-\entry{programmable completion}{107}{programmable completion}
-\entry{completion builtins}{109}{completion builtins}
-\entry{History, how to use}{112}{History, how to use}
-\entry{command history}{113}{command history}
-\entry{history list}{113}{history list}
-\entry{history builtins}{113}{history builtins}
-\entry{history expansion}{115}{history expansion}
-\entry{event designators}{115}{event designators}
-\entry{history events}{115}{history events}
-\entry{installation}{119}{installation}
-\entry{configuration}{119}{configuration}
-\entry{Bash installation}{119}{Bash installation}
-\entry{Bash configuration}{119}{Bash configuration}
-\entry{FDL, GNU Free Documentation License}{135}{FDL, GNU Free Documentation License}
+\entry{startup files}{69}{startup files}
+\entry{interactive shell}{71}{interactive shell}
+\entry{shell, interactive}{71}{shell, interactive}
+\entry{expressions, conditional}{73}{expressions, conditional}
+\entry{arithmetic, shell}{74}{arithmetic, shell}
+\entry{shell arithmetic}{74}{shell arithmetic}
+\entry{expressions, arithmetic}{74}{expressions, arithmetic}
+\entry{evaluation, arithmetic}{74}{evaluation, arithmetic}
+\entry{arithmetic evaluation}{74}{arithmetic evaluation}
+\entry{alias expansion}{75}{alias expansion}
+\entry{arrays}{76}{arrays}
+\entry{directory stack}{77}{directory stack}
+\entry{prompting}{79}{prompting}
+\entry{restricted shell}{80}{restricted shell}
+\entry{POSIX Mode}{80}{POSIX Mode}
+\entry{job control}{85}{job control}
+\entry{foreground}{85}{foreground}
+\entry{background}{85}{background}
+\entry{suspending jobs}{85}{suspending jobs}
+\entry{Readline, how to use}{88}{Readline, how to use}
+\entry{interaction, readline}{89}{interaction, readline}
+\entry{notation, readline}{89}{notation, readline}
+\entry{command editing}{89}{command editing}
+\entry{editing command lines}{89}{editing command lines}
+\entry{killing text}{91}{killing text}
+\entry{yanking text}{91}{yanking text}
+\entry{kill ring}{91}{kill ring}
+\entry{initialization file, readline}{92}{initialization file, readline}
+\entry{variables, readline}{93}{variables, readline}
+\entry{programmable completion}{109}{programmable completion}
+\entry{completion builtins}{111}{completion builtins}
+\entry{History, how to use}{114}{History, how to use}
+\entry{command history}{115}{command history}
+\entry{history list}{115}{history list}
+\entry{history builtins}{115}{history builtins}
+\entry{history expansion}{117}{history expansion}
+\entry{event designators}{117}{event designators}
+\entry{history events}{117}{history events}
+\entry{installation}{121}{installation}
+\entry{configuration}{121}{configuration}
+\entry{Bash installation}{121}{Bash installation}
+\entry{Bash configuration}{121}{Bash configuration}
+\entry{FDL, GNU Free Documentation License}{137}{FDL, GNU Free Documentation License}
index 936ab6e6a5421128f2e90686117650f69f8d5a21..1a1e0a971f54b99a46d8848a4d49472e69f3f336 100644 (file)
@@ -1,21 +1,21 @@
 \initial {A}
-\entry {alias expansion}{73}
-\entry {arithmetic evaluation}{72}
+\entry {alias expansion}{75}
+\entry {arithmetic evaluation}{74}
 \entry {arithmetic expansion}{22}
-\entry {arithmetic, shell}{72}
-\entry {arrays}{74}
+\entry {arithmetic, shell}{74}
+\entry {arrays}{76}
 \initial {B}
-\entry {background}{83}
-\entry {Bash configuration}{119}
-\entry {Bash installation}{119}
+\entry {background}{85}
+\entry {Bash configuration}{121}
+\entry {Bash installation}{121}
 \entry {Bourne shell}{5}
 \entry {brace expansion}{17}
 \entry {builtin}{3}
 \initial {C}
-\entry {command editing}{87}
+\entry {command editing}{89}
 \entry {command execution}{29}
 \entry {command expansion}{28}
-\entry {command history}{113}
+\entry {command history}{115}
 \entry {command search}{29}
 \entry {command substitution}{21}
 \entry {command timing}{8}
 \entry {commands, shell}{8}
 \entry {commands, simple}{8}
 \entry {comments, shell}{7}
-\entry {completion builtins}{109}
-\entry {configuration}{119}
+\entry {completion builtins}{111}
+\entry {configuration}{121}
 \entry {control operator}{3}
 \initial {D}
-\entry {directory stack}{75}
+\entry {directory stack}{77}
 \initial {E}
-\entry {editing command lines}{87}
+\entry {editing command lines}{89}
 \entry {environment}{30}
-\entry {evaluation, arithmetic}{72}
-\entry {event designators}{115}
+\entry {evaluation, arithmetic}{74}
+\entry {event designators}{117}
 \entry {execution environment}{29}
 \entry {exit status}{3, 31}
 \entry {expansion}{17}
 \entry {expansion, parameter}{19}
 \entry {expansion, pathname}{23}
 \entry {expansion, tilde}{18}
-\entry {expressions, arithmetic}{72}
-\entry {expressions, conditional}{71}
+\entry {expressions, arithmetic}{74}
+\entry {expressions, conditional}{73}
 \initial {F}
-\entry {FDL, GNU Free Documentation License}{135}
+\entry {FDL, GNU Free Documentation License}{137}
 \entry {field}{3}
 \entry {filename}{3}
 \entry {filename expansion}{23}
-\entry {foreground}{83}
+\entry {foreground}{85}
 \entry {functions, shell}{14}
 \initial {H}
-\entry {history builtins}{113}
-\entry {history events}{115}
-\entry {history expansion}{115}
-\entry {history list}{113}
-\entry {History, how to use}{112}
+\entry {history builtins}{115}
+\entry {history events}{117}
+\entry {history expansion}{117}
+\entry {history list}{115}
+\entry {History, how to use}{114}
 \initial {I}
 \entry {identifier}{3}
-\entry {initialization file, readline}{90}
-\entry {installation}{119}
-\entry {interaction, readline}{87}
-\entry {interactive shell}{67, 69}
+\entry {initialization file, readline}{92}
+\entry {installation}{121}
+\entry {interaction, readline}{89}
+\entry {interactive shell}{69, 71}
 \entry {internationalization}{7}
 \initial {J}
 \entry {job}{3}
-\entry {job control}{3, 83}
+\entry {job control}{3, 85}
 \initial {K}
-\entry {kill ring}{89}
-\entry {killing text}{89}
+\entry {kill ring}{91}
+\entry {killing text}{91}
 \initial {L}
 \entry {localization}{7}
-\entry {login shell}{67}
+\entry {login shell}{69}
 \initial {M}
 \entry {matching, pattern}{23}
 \entry {metacharacter}{3}
 \initial {N}
 \entry {name}{3}
 \entry {native languages}{7}
-\entry {notation, readline}{87}
+\entry {notation, readline}{89}
 \initial {O}
 \entry {operator, shell}{3}
 \initial {P}
 \entry {pattern matching}{23}
 \entry {pipeline}{8}
 \entry {POSIX}{3}
-\entry {POSIX Mode}{78}
+\entry {POSIX Mode}{80}
 \entry {process group}{3}
 \entry {process group ID}{3}
 \entry {process substitution}{22}
-\entry {programmable completion}{107}
-\entry {prompting}{77}
+\entry {programmable completion}{109}
+\entry {prompting}{79}
 \initial {Q}
 \entry {quoting}{6}
 \entry {quoting, ANSI}{6}
 \initial {R}
-\entry {Readline, how to use}{86}
+\entry {Readline, how to use}{88}
 \entry {redirection}{25}
 \entry {reserved word}{3}
-\entry {restricted shell}{78}
+\entry {restricted shell}{80}
 \entry {return status}{3}
 \initial {S}
-\entry {shell arithmetic}{72}
+\entry {shell arithmetic}{74}
 \entry {shell function}{14}
 \entry {shell script}{32}
 \entry {shell variable}{15}
-\entry {shell, interactive}{69}
+\entry {shell, interactive}{71}
 \entry {signal}{4}
 \entry {signal handling}{31}
-\entry {special builtin}{4, 54}
-\entry {startup files}{67}
-\entry {suspending jobs}{83}
+\entry {special builtin}{4, 56}
+\entry {startup files}{69}
+\entry {suspending jobs}{85}
 \initial {T}
 \entry {tilde expansion}{18}
 \entry {token}{4}
 \entry {translation, native languages}{7}
 \initial {V}
 \entry {variable, shell}{15}
-\entry {variables, readline}{91}
+\entry {variables, readline}{93}
 \initial {W}
 \entry {word}{4}
 \entry {word splitting}{22}
 \initial {Y}
-\entry {yanking text}{89}
+\entry {yanking text}{91}
index 1aedecc3279a7cd05aeaee5120aeafe820cfd6ec..21f808438cc76260655fb16dab20fadbcca44e9d 100644 (file)
Binary files a/doc/bashref.dvi and b/doc/bashref.dvi differ
index 48a1ec44b92abb25dc5dcdf0442a0dc43f2b09cf..ba8967ac1a8cfd5dea808764c6737d3d726ef30f 100644 (file)
@@ -1,96 +1,96 @@
-\entry{beginning-of-line (C-a)}{99}{\code {beginning-of-line (C-a)}}
-\entry{end-of-line (C-e)}{99}{\code {end-of-line (C-e)}}
-\entry{forward-char (C-f)}{99}{\code {forward-char (C-f)}}
-\entry{backward-char (C-b)}{99}{\code {backward-char (C-b)}}
-\entry{forward-word (M-f)}{99}{\code {forward-word (M-f)}}
-\entry{backward-word (M-b)}{99}{\code {backward-word (M-b)}}
-\entry{clear-screen (C-l)}{99}{\code {clear-screen (C-l)}}
-\entry{redraw-current-line ()}{99}{\code {redraw-current-line ()}}
-\entry{accept-line (Newline or Return)}{99}{\code {accept-line (Newline or Return)}}
-\entry{previous-history (C-p)}{100}{\code {previous-history (C-p)}}
-\entry{next-history (C-n)}{100}{\code {next-history (C-n)}}
-\entry{beginning-of-history (M-<)}{100}{\code {beginning-of-history (M-<)}}
-\entry{end-of-history (M->)}{100}{\code {end-of-history (M->)}}
-\entry{reverse-search-history (C-r)}{100}{\code {reverse-search-history (C-r)}}
-\entry{forward-search-history (C-s)}{100}{\code {forward-search-history (C-s)}}
-\entry{non-incremental-reverse-search-history (M-p)}{100}{\code {non-incremental-reverse-search-history (M-p)}}
-\entry{non-incremental-forward-search-history (M-n)}{100}{\code {non-incremental-forward-search-history (M-n)}}
-\entry{history-search-forward ()}{100}{\code {history-search-forward ()}}
-\entry{history-search-backward ()}{100}{\code {history-search-backward ()}}
-\entry{yank-nth-arg (M-C-y)}{100}{\code {yank-nth-arg (M-C-y)}}
-\entry{yank-last-arg (M-. or M-_)}{100}{\code {yank-last-arg (M-. or M-_)}}
-\entry{delete-char (C-d)}{101}{\code {delete-char (C-d)}}
-\entry{backward-delete-char (Rubout)}{101}{\code {backward-delete-char (Rubout)}}
-\entry{forward-backward-delete-char ()}{101}{\code {forward-backward-delete-char ()}}
-\entry{quoted-insert (C-q or C-v)}{101}{\code {quoted-insert (C-q or C-v)}}
-\entry{self-insert (a, b, A, 1, !, ...{})}{101}{\code {self-insert (a, b, A, 1, !, \dots {})}}
-\entry{transpose-chars (C-t)}{101}{\code {transpose-chars (C-t)}}
-\entry{transpose-words (M-t)}{101}{\code {transpose-words (M-t)}}
-\entry{upcase-word (M-u)}{101}{\code {upcase-word (M-u)}}
-\entry{downcase-word (M-l)}{101}{\code {downcase-word (M-l)}}
-\entry{capitalize-word (M-c)}{101}{\code {capitalize-word (M-c)}}
-\entry{overwrite-mode ()}{101}{\code {overwrite-mode ()}}
-\entry{kill-line (C-k)}{102}{\code {kill-line (C-k)}}
-\entry{backward-kill-line (C-x Rubout)}{102}{\code {backward-kill-line (C-x Rubout)}}
-\entry{unix-line-discard (C-u)}{102}{\code {unix-line-discard (C-u)}}
-\entry{kill-whole-line ()}{102}{\code {kill-whole-line ()}}
-\entry{kill-word (M-d)}{102}{\code {kill-word (M-d)}}
-\entry{backward-kill-word (M-DEL)}{102}{\code {backward-kill-word (M-\key {DEL})}}
-\entry{unix-word-rubout (C-w)}{102}{\code {unix-word-rubout (C-w)}}
-\entry{unix-filename-rubout ()}{102}{\code {unix-filename-rubout ()}}
-\entry{delete-horizontal-space ()}{102}{\code {delete-horizontal-space ()}}
-\entry{kill-region ()}{102}{\code {kill-region ()}}
-\entry{copy-region-as-kill ()}{102}{\code {copy-region-as-kill ()}}
-\entry{copy-backward-word ()}{102}{\code {copy-backward-word ()}}
-\entry{copy-forward-word ()}{102}{\code {copy-forward-word ()}}
-\entry{yank (C-y)}{103}{\code {yank (C-y)}}
-\entry{yank-pop (M-y)}{103}{\code {yank-pop (M-y)}}
-\entry{digit-argument (M-0, M-1, ...{} M--)}{103}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
-\entry{universal-argument ()}{103}{\code {universal-argument ()}}
-\entry{complete (TAB)}{103}{\code {complete (\key {TAB})}}
-\entry{possible-completions (M-?)}{103}{\code {possible-completions (M-?)}}
-\entry{insert-completions (M-*)}{103}{\code {insert-completions (M-*)}}
-\entry{menu-complete ()}{103}{\code {menu-complete ()}}
-\entry{delete-char-or-list ()}{104}{\code {delete-char-or-list ()}}
-\entry{complete-filename (M-/)}{104}{\code {complete-filename (M-/)}}
-\entry{possible-filename-completions (C-x /)}{104}{\code {possible-filename-completions (C-x /)}}
-\entry{complete-username (M-~)}{104}{\code {complete-username (M-~)}}
-\entry{possible-username-completions (C-x ~)}{104}{\code {possible-username-completions (C-x ~)}}
-\entry{complete-variable (M-$)}{104}{\code {complete-variable (M-$)}}
-\entry{possible-variable-completions (C-x $)}{104}{\code {possible-variable-completions (C-x $)}}
-\entry{complete-hostname (M-@)}{104}{\code {complete-hostname (M-@)}}
-\entry{possible-hostname-completions (C-x @)}{104}{\code {possible-hostname-completions (C-x @)}}
-\entry{complete-command (M-!)}{104}{\code {complete-command (M-!)}}
-\entry{possible-command-completions (C-x !)}{104}{\code {possible-command-completions (C-x !)}}
-\entry{dynamic-complete-history (M-TAB)}{104}{\code {dynamic-complete-history (M-\key {TAB})}}
-\entry{complete-into-braces (M-{\tt \char 123})}{104}{\code {complete-into-braces (M-{\tt \char 123})}}
-\entry{start-kbd-macro (C-x ()}{104}{\code {start-kbd-macro (C-x ()}}
-\entry{end-kbd-macro (C-x ))}{105}{\code {end-kbd-macro (C-x ))}}
-\entry{call-last-kbd-macro (C-x e)}{105}{\code {call-last-kbd-macro (C-x e)}}
-\entry{re-read-init-file (C-x C-r)}{105}{\code {re-read-init-file (C-x C-r)}}
-\entry{abort (C-g)}{105}{\code {abort (C-g)}}
-\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{105}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
-\entry{prefix-meta (ESC)}{105}{\code {prefix-meta (\key {ESC})}}
-\entry{undo (C-_ or C-x C-u)}{105}{\code {undo (C-_ or C-x C-u)}}
-\entry{revert-line (M-r)}{105}{\code {revert-line (M-r)}}
-\entry{tilde-expand (M-&)}{105}{\code {tilde-expand (M-&)}}
-\entry{set-mark (C-@)}{105}{\code {set-mark (C-@)}}
-\entry{exchange-point-and-mark (C-x C-x)}{105}{\code {exchange-point-and-mark (C-x C-x)}}
-\entry{character-search (C-])}{105}{\code {character-search (C-])}}
-\entry{character-search-backward (M-C-])}{105}{\code {character-search-backward (M-C-])}}
-\entry{insert-comment (M-#)}{106}{\code {insert-comment (M-#)}}
-\entry{dump-functions ()}{106}{\code {dump-functions ()}}
-\entry{dump-variables ()}{106}{\code {dump-variables ()}}
-\entry{dump-macros ()}{106}{\code {dump-macros ()}}
-\entry{glob-complete-word (M-g)}{106}{\code {glob-complete-word (M-g)}}
-\entry{glob-expand-word (C-x *)}{106}{\code {glob-expand-word (C-x *)}}
-\entry{glob-list-expansions (C-x g)}{106}{\code {glob-list-expansions (C-x g)}}
-\entry{display-shell-version (C-x C-v)}{106}{\code {display-shell-version (C-x C-v)}}
-\entry{shell-expand-line (M-C-e)}{106}{\code {shell-expand-line (M-C-e)}}
-\entry{history-expand-line (M-^)}{106}{\code {history-expand-line (M-^)}}
-\entry{magic-space ()}{107}{\code {magic-space ()}}
-\entry{alias-expand-line ()}{107}{\code {alias-expand-line ()}}
-\entry{history-and-alias-expand-line ()}{107}{\code {history-and-alias-expand-line ()}}
-\entry{insert-last-argument (M-. or M-_)}{107}{\code {insert-last-argument (M-. or M-_)}}
-\entry{operate-and-get-next (C-o)}{107}{\code {operate-and-get-next (C-o)}}
-\entry{edit-and-execute-command (C-xC-e)}{107}{\code {edit-and-execute-command (C-xC-e)}}
+\entry{beginning-of-line (C-a)}{101}{\code {beginning-of-line (C-a)}}
+\entry{end-of-line (C-e)}{101}{\code {end-of-line (C-e)}}
+\entry{forward-char (C-f)}{101}{\code {forward-char (C-f)}}
+\entry{backward-char (C-b)}{101}{\code {backward-char (C-b)}}
+\entry{forward-word (M-f)}{101}{\code {forward-word (M-f)}}
+\entry{backward-word (M-b)}{101}{\code {backward-word (M-b)}}
+\entry{clear-screen (C-l)}{101}{\code {clear-screen (C-l)}}
+\entry{redraw-current-line ()}{101}{\code {redraw-current-line ()}}
+\entry{accept-line (Newline or Return)}{101}{\code {accept-line (Newline or Return)}}
+\entry{previous-history (C-p)}{102}{\code {previous-history (C-p)}}
+\entry{next-history (C-n)}{102}{\code {next-history (C-n)}}
+\entry{beginning-of-history (M-<)}{102}{\code {beginning-of-history (M-<)}}
+\entry{end-of-history (M->)}{102}{\code {end-of-history (M->)}}
+\entry{reverse-search-history (C-r)}{102}{\code {reverse-search-history (C-r)}}
+\entry{forward-search-history (C-s)}{102}{\code {forward-search-history (C-s)}}
+\entry{non-incremental-reverse-search-history (M-p)}{102}{\code {non-incremental-reverse-search-history (M-p)}}
+\entry{non-incremental-forward-search-history (M-n)}{102}{\code {non-incremental-forward-search-history (M-n)}}
+\entry{history-search-forward ()}{102}{\code {history-search-forward ()}}
+\entry{history-search-backward ()}{102}{\code {history-search-backward ()}}
+\entry{yank-nth-arg (M-C-y)}{102}{\code {yank-nth-arg (M-C-y)}}
+\entry{yank-last-arg (M-. or M-_)}{102}{\code {yank-last-arg (M-. or M-_)}}
+\entry{delete-char (C-d)}{103}{\code {delete-char (C-d)}}
+\entry{backward-delete-char (Rubout)}{103}{\code {backward-delete-char (Rubout)}}
+\entry{forward-backward-delete-char ()}{103}{\code {forward-backward-delete-char ()}}
+\entry{quoted-insert (C-q or C-v)}{103}{\code {quoted-insert (C-q or C-v)}}
+\entry{self-insert (a, b, A, 1, !, ...{})}{103}{\code {self-insert (a, b, A, 1, !, \dots {})}}
+\entry{transpose-chars (C-t)}{103}{\code {transpose-chars (C-t)}}
+\entry{transpose-words (M-t)}{103}{\code {transpose-words (M-t)}}
+\entry{upcase-word (M-u)}{103}{\code {upcase-word (M-u)}}
+\entry{downcase-word (M-l)}{103}{\code {downcase-word (M-l)}}
+\entry{capitalize-word (M-c)}{103}{\code {capitalize-word (M-c)}}
+\entry{overwrite-mode ()}{103}{\code {overwrite-mode ()}}
+\entry{kill-line (C-k)}{104}{\code {kill-line (C-k)}}
+\entry{backward-kill-line (C-x Rubout)}{104}{\code {backward-kill-line (C-x Rubout)}}
+\entry{unix-line-discard (C-u)}{104}{\code {unix-line-discard (C-u)}}
+\entry{kill-whole-line ()}{104}{\code {kill-whole-line ()}}
+\entry{kill-word (M-d)}{104}{\code {kill-word (M-d)}}
+\entry{backward-kill-word (M-DEL)}{104}{\code {backward-kill-word (M-\key {DEL})}}
+\entry{unix-word-rubout (C-w)}{104}{\code {unix-word-rubout (C-w)}}
+\entry{unix-filename-rubout ()}{104}{\code {unix-filename-rubout ()}}
+\entry{delete-horizontal-space ()}{104}{\code {delete-horizontal-space ()}}
+\entry{kill-region ()}{104}{\code {kill-region ()}}
+\entry{copy-region-as-kill ()}{104}{\code {copy-region-as-kill ()}}
+\entry{copy-backward-word ()}{104}{\code {copy-backward-word ()}}
+\entry{copy-forward-word ()}{104}{\code {copy-forward-word ()}}
+\entry{yank (C-y)}{105}{\code {yank (C-y)}}
+\entry{yank-pop (M-y)}{105}{\code {yank-pop (M-y)}}
+\entry{digit-argument (M-0, M-1, ...{} M--)}{105}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
+\entry{universal-argument ()}{105}{\code {universal-argument ()}}
+\entry{complete (TAB)}{105}{\code {complete (\key {TAB})}}
+\entry{possible-completions (M-?)}{105}{\code {possible-completions (M-?)}}
+\entry{insert-completions (M-*)}{105}{\code {insert-completions (M-*)}}
+\entry{menu-complete ()}{105}{\code {menu-complete ()}}
+\entry{delete-char-or-list ()}{106}{\code {delete-char-or-list ()}}
+\entry{complete-filename (M-/)}{106}{\code {complete-filename (M-/)}}
+\entry{possible-filename-completions (C-x /)}{106}{\code {possible-filename-completions (C-x /)}}
+\entry{complete-username (M-~)}{106}{\code {complete-username (M-~)}}
+\entry{possible-username-completions (C-x ~)}{106}{\code {possible-username-completions (C-x ~)}}
+\entry{complete-variable (M-$)}{106}{\code {complete-variable (M-$)}}
+\entry{possible-variable-completions (C-x $)}{106}{\code {possible-variable-completions (C-x $)}}
+\entry{complete-hostname (M-@)}{106}{\code {complete-hostname (M-@)}}
+\entry{possible-hostname-completions (C-x @)}{106}{\code {possible-hostname-completions (C-x @)}}
+\entry{complete-command (M-!)}{106}{\code {complete-command (M-!)}}
+\entry{possible-command-completions (C-x !)}{106}{\code {possible-command-completions (C-x !)}}
+\entry{dynamic-complete-history (M-TAB)}{106}{\code {dynamic-complete-history (M-\key {TAB})}}
+\entry{complete-into-braces (M-{\tt \char 123})}{106}{\code {complete-into-braces (M-{\tt \char 123})}}
+\entry{start-kbd-macro (C-x ()}{106}{\code {start-kbd-macro (C-x ()}}
+\entry{end-kbd-macro (C-x ))}{107}{\code {end-kbd-macro (C-x ))}}
+\entry{call-last-kbd-macro (C-x e)}{107}{\code {call-last-kbd-macro (C-x e)}}
+\entry{re-read-init-file (C-x C-r)}{107}{\code {re-read-init-file (C-x C-r)}}
+\entry{abort (C-g)}{107}{\code {abort (C-g)}}
+\entry{do-uppercase-version (M-a, M-b, M-x, ...{})}{107}{\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}
+\entry{prefix-meta (ESC)}{107}{\code {prefix-meta (\key {ESC})}}
+\entry{undo (C-_ or C-x C-u)}{107}{\code {undo (C-_ or C-x C-u)}}
+\entry{revert-line (M-r)}{107}{\code {revert-line (M-r)}}
+\entry{tilde-expand (M-&)}{107}{\code {tilde-expand (M-&)}}
+\entry{set-mark (C-@)}{107}{\code {set-mark (C-@)}}
+\entry{exchange-point-and-mark (C-x C-x)}{107}{\code {exchange-point-and-mark (C-x C-x)}}
+\entry{character-search (C-])}{107}{\code {character-search (C-])}}
+\entry{character-search-backward (M-C-])}{107}{\code {character-search-backward (M-C-])}}
+\entry{insert-comment (M-#)}{108}{\code {insert-comment (M-#)}}
+\entry{dump-functions ()}{108}{\code {dump-functions ()}}
+\entry{dump-variables ()}{108}{\code {dump-variables ()}}
+\entry{dump-macros ()}{108}{\code {dump-macros ()}}
+\entry{glob-complete-word (M-g)}{108}{\code {glob-complete-word (M-g)}}
+\entry{glob-expand-word (C-x *)}{108}{\code {glob-expand-word (C-x *)}}
+\entry{glob-list-expansions (C-x g)}{108}{\code {glob-list-expansions (C-x g)}}
+\entry{display-shell-version (C-x C-v)}{108}{\code {display-shell-version (C-x C-v)}}
+\entry{shell-expand-line (M-C-e)}{108}{\code {shell-expand-line (M-C-e)}}
+\entry{history-expand-line (M-^)}{108}{\code {history-expand-line (M-^)}}
+\entry{magic-space ()}{109}{\code {magic-space ()}}
+\entry{alias-expand-line ()}{109}{\code {alias-expand-line ()}}
+\entry{history-and-alias-expand-line ()}{109}{\code {history-and-alias-expand-line ()}}
+\entry{insert-last-argument (M-. or M-_)}{109}{\code {insert-last-argument (M-. or M-_)}}
+\entry{operate-and-get-next (C-o)}{109}{\code {operate-and-get-next (C-o)}}
+\entry{edit-and-execute-command (C-xC-e)}{109}{\code {edit-and-execute-command (C-xC-e)}}
index aa09fdc704c193c06dd25b10b3b10e0e50dae3a8..3a98d8d96e72c16fb6c23e814ed40af8d5183ebd 100644 (file)
 \initial {A}
-\entry {\code {abort (C-g)}}{105}
-\entry {\code {accept-line (Newline or Return)}}{99}
-\entry {\code {alias-expand-line ()}}{107}
+\entry {\code {abort (C-g)}}{107}
+\entry {\code {accept-line (Newline or Return)}}{101}
+\entry {\code {alias-expand-line ()}}{109}
 \initial {B}
-\entry {\code {backward-char (C-b)}}{99}
-\entry {\code {backward-delete-char (Rubout)}}{101}
-\entry {\code {backward-kill-line (C-x Rubout)}}{102}
-\entry {\code {backward-kill-word (M-\key {DEL})}}{102}
-\entry {\code {backward-word (M-b)}}{99}
-\entry {\code {beginning-of-history (M-<)}}{100}
-\entry {\code {beginning-of-line (C-a)}}{99}
+\entry {\code {backward-char (C-b)}}{101}
+\entry {\code {backward-delete-char (Rubout)}}{103}
+\entry {\code {backward-kill-line (C-x Rubout)}}{104}
+\entry {\code {backward-kill-word (M-\key {DEL})}}{104}
+\entry {\code {backward-word (M-b)}}{101}
+\entry {\code {beginning-of-history (M-<)}}{102}
+\entry {\code {beginning-of-line (C-a)}}{101}
 \initial {C}
-\entry {\code {call-last-kbd-macro (C-x e)}}{105}
-\entry {\code {capitalize-word (M-c)}}{101}
-\entry {\code {character-search (C-])}}{105}
-\entry {\code {character-search-backward (M-C-])}}{105}
-\entry {\code {clear-screen (C-l)}}{99}
-\entry {\code {complete (\key {TAB})}}{103}
-\entry {\code {complete-command (M-!)}}{104}
-\entry {\code {complete-filename (M-/)}}{104}
-\entry {\code {complete-hostname (M-@)}}{104}
-\entry {\code {complete-into-braces (M-{\tt \char 123})}}{104}
-\entry {\code {complete-username (M-~)}}{104}
-\entry {\code {complete-variable (M-$)}}{104}
-\entry {\code {copy-backward-word ()}}{102}
-\entry {\code {copy-forward-word ()}}{102}
-\entry {\code {copy-region-as-kill ()}}{102}
+\entry {\code {call-last-kbd-macro (C-x e)}}{107}
+\entry {\code {capitalize-word (M-c)}}{103}
+\entry {\code {character-search (C-])}}{107}
+\entry {\code {character-search-backward (M-C-])}}{107}
+\entry {\code {clear-screen (C-l)}}{101}
+\entry {\code {complete (\key {TAB})}}{105}
+\entry {\code {complete-command (M-!)}}{106}
+\entry {\code {complete-filename (M-/)}}{106}
+\entry {\code {complete-hostname (M-@)}}{106}
+\entry {\code {complete-into-braces (M-{\tt \char 123})}}{106}
+\entry {\code {complete-username (M-~)}}{106}
+\entry {\code {complete-variable (M-$)}}{106}
+\entry {\code {copy-backward-word ()}}{104}
+\entry {\code {copy-forward-word ()}}{104}
+\entry {\code {copy-region-as-kill ()}}{104}
 \initial {D}
-\entry {\code {delete-char (C-d)}}{101}
-\entry {\code {delete-char-or-list ()}}{104}
-\entry {\code {delete-horizontal-space ()}}{102}
-\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{103}
-\entry {\code {display-shell-version (C-x C-v)}}{106}
-\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{105}
-\entry {\code {downcase-word (M-l)}}{101}
-\entry {\code {dump-functions ()}}{106}
-\entry {\code {dump-macros ()}}{106}
-\entry {\code {dump-variables ()}}{106}
-\entry {\code {dynamic-complete-history (M-\key {TAB})}}{104}
+\entry {\code {delete-char (C-d)}}{103}
+\entry {\code {delete-char-or-list ()}}{106}
+\entry {\code {delete-horizontal-space ()}}{104}
+\entry {\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{105}
+\entry {\code {display-shell-version (C-x C-v)}}{108}
+\entry {\code {do-uppercase-version (M-a, M-b, M-\var {x}, \dots {})}}{107}
+\entry {\code {downcase-word (M-l)}}{103}
+\entry {\code {dump-functions ()}}{108}
+\entry {\code {dump-macros ()}}{108}
+\entry {\code {dump-variables ()}}{108}
+\entry {\code {dynamic-complete-history (M-\key {TAB})}}{106}
 \initial {E}
-\entry {\code {edit-and-execute-command (C-xC-e)}}{107}
-\entry {\code {end-kbd-macro (C-x ))}}{105}
-\entry {\code {end-of-history (M->)}}{100}
-\entry {\code {end-of-line (C-e)}}{99}
-\entry {\code {exchange-point-and-mark (C-x C-x)}}{105}
+\entry {\code {edit-and-execute-command (C-xC-e)}}{109}
+\entry {\code {end-kbd-macro (C-x ))}}{107}
+\entry {\code {end-of-history (M->)}}{102}
+\entry {\code {end-of-line (C-e)}}{101}
+\entry {\code {exchange-point-and-mark (C-x C-x)}}{107}
 \initial {F}
-\entry {\code {forward-backward-delete-char ()}}{101}
-\entry {\code {forward-char (C-f)}}{99}
-\entry {\code {forward-search-history (C-s)}}{100}
-\entry {\code {forward-word (M-f)}}{99}
+\entry {\code {forward-backward-delete-char ()}}{103}
+\entry {\code {forward-char (C-f)}}{101}
+\entry {\code {forward-search-history (C-s)}}{102}
+\entry {\code {forward-word (M-f)}}{101}
 \initial {G}
-\entry {\code {glob-complete-word (M-g)}}{106}
-\entry {\code {glob-expand-word (C-x *)}}{106}
-\entry {\code {glob-list-expansions (C-x g)}}{106}
+\entry {\code {glob-complete-word (M-g)}}{108}
+\entry {\code {glob-expand-word (C-x *)}}{108}
+\entry {\code {glob-list-expansions (C-x g)}}{108}
 \initial {H}
-\entry {\code {history-and-alias-expand-line ()}}{107}
-\entry {\code {history-expand-line (M-^)}}{106}
-\entry {\code {history-search-backward ()}}{100}
-\entry {\code {history-search-forward ()}}{100}
+\entry {\code {history-and-alias-expand-line ()}}{109}
+\entry {\code {history-expand-line (M-^)}}{108}
+\entry {\code {history-search-backward ()}}{102}
+\entry {\code {history-search-forward ()}}{102}
 \initial {I}
-\entry {\code {insert-comment (M-#)}}{106}
-\entry {\code {insert-completions (M-*)}}{103}
-\entry {\code {insert-last-argument (M-. or M-_)}}{107}
+\entry {\code {insert-comment (M-#)}}{108}
+\entry {\code {insert-completions (M-*)}}{105}
+\entry {\code {insert-last-argument (M-. or M-_)}}{109}
 \initial {K}
-\entry {\code {kill-line (C-k)}}{102}
-\entry {\code {kill-region ()}}{102}
-\entry {\code {kill-whole-line ()}}{102}
-\entry {\code {kill-word (M-d)}}{102}
+\entry {\code {kill-line (C-k)}}{104}
+\entry {\code {kill-region ()}}{104}
+\entry {\code {kill-whole-line ()}}{104}
+\entry {\code {kill-word (M-d)}}{104}
 \initial {M}
-\entry {\code {magic-space ()}}{107}
-\entry {\code {menu-complete ()}}{103}
+\entry {\code {magic-space ()}}{109}
+\entry {\code {menu-complete ()}}{105}
 \initial {N}
-\entry {\code {next-history (C-n)}}{100}
-\entry {\code {non-incremental-forward-search-history (M-n)}}{100}
-\entry {\code {non-incremental-reverse-search-history (M-p)}}{100}
+\entry {\code {next-history (C-n)}}{102}
+\entry {\code {non-incremental-forward-search-history (M-n)}}{102}
+\entry {\code {non-incremental-reverse-search-history (M-p)}}{102}
 \initial {O}
-\entry {\code {operate-and-get-next (C-o)}}{107}
-\entry {\code {overwrite-mode ()}}{101}
+\entry {\code {operate-and-get-next (C-o)}}{109}
+\entry {\code {overwrite-mode ()}}{103}
 \initial {P}
-\entry {\code {possible-command-completions (C-x !)}}{104}
-\entry {\code {possible-completions (M-?)}}{103}
-\entry {\code {possible-filename-completions (C-x /)}}{104}
-\entry {\code {possible-hostname-completions (C-x @)}}{104}
-\entry {\code {possible-username-completions (C-x ~)}}{104}
-\entry {\code {possible-variable-completions (C-x $)}}{104}
-\entry {\code {prefix-meta (\key {ESC})}}{105}
-\entry {\code {previous-history (C-p)}}{100}
+\entry {\code {possible-command-completions (C-x !)}}{106}
+\entry {\code {possible-completions (M-?)}}{105}
+\entry {\code {possible-filename-completions (C-x /)}}{106}
+\entry {\code {possible-hostname-completions (C-x @)}}{106}
+\entry {\code {possible-username-completions (C-x ~)}}{106}
+\entry {\code {possible-variable-completions (C-x $)}}{106}
+\entry {\code {prefix-meta (\key {ESC})}}{107}
+\entry {\code {previous-history (C-p)}}{102}
 \initial {Q}
-\entry {\code {quoted-insert (C-q or C-v)}}{101}
+\entry {\code {quoted-insert (C-q or C-v)}}{103}
 \initial {R}
-\entry {\code {re-read-init-file (C-x C-r)}}{105}
-\entry {\code {redraw-current-line ()}}{99}
-\entry {\code {reverse-search-history (C-r)}}{100}
-\entry {\code {revert-line (M-r)}}{105}
+\entry {\code {re-read-init-file (C-x C-r)}}{107}
+\entry {\code {redraw-current-line ()}}{101}
+\entry {\code {reverse-search-history (C-r)}}{102}
+\entry {\code {revert-line (M-r)}}{107}
 \initial {S}
-\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{101}
-\entry {\code {set-mark (C-@)}}{105}
-\entry {\code {shell-expand-line (M-C-e)}}{106}
-\entry {\code {start-kbd-macro (C-x ()}}{104}
+\entry {\code {self-insert (a, b, A, 1, !, \dots {})}}{103}
+\entry {\code {set-mark (C-@)}}{107}
+\entry {\code {shell-expand-line (M-C-e)}}{108}
+\entry {\code {start-kbd-macro (C-x ()}}{106}
 \initial {T}
-\entry {\code {tilde-expand (M-&)}}{105}
-\entry {\code {transpose-chars (C-t)}}{101}
-\entry {\code {transpose-words (M-t)}}{101}
+\entry {\code {tilde-expand (M-&)}}{107}
+\entry {\code {transpose-chars (C-t)}}{103}
+\entry {\code {transpose-words (M-t)}}{103}
 \initial {U}
-\entry {\code {undo (C-_ or C-x C-u)}}{105}
-\entry {\code {universal-argument ()}}{103}
-\entry {\code {unix-filename-rubout ()}}{102}
-\entry {\code {unix-line-discard (C-u)}}{102}
-\entry {\code {unix-word-rubout (C-w)}}{102}
-\entry {\code {upcase-word (M-u)}}{101}
+\entry {\code {undo (C-_ or C-x C-u)}}{107}
+\entry {\code {universal-argument ()}}{105}
+\entry {\code {unix-filename-rubout ()}}{104}
+\entry {\code {unix-line-discard (C-u)}}{104}
+\entry {\code {unix-word-rubout (C-w)}}{104}
+\entry {\code {upcase-word (M-u)}}{103}
 \initial {Y}
-\entry {\code {yank (C-y)}}{103}
-\entry {\code {yank-last-arg (M-. or M-_)}}{100}
-\entry {\code {yank-nth-arg (M-C-y)}}{100}
-\entry {\code {yank-pop (M-y)}}{103}
+\entry {\code {yank (C-y)}}{105}
+\entry {\code {yank-last-arg (M-. or M-_)}}{102}
+\entry {\code {yank-nth-arg (M-C-y)}}{102}
+\entry {\code {yank-pop (M-y)}}{105}
index 6bb2b1c7367046d7c3b01c008385ce45505f06bc..c108956592331bda555bf78e60db79a54fa03728 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on October, 3  2005 by texi2html 1.64 -->
+<!-- Created on January, 26  2006 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -33,12 +33,12 @@ 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 3.1-beta1, 5 September 2005)..
+the Bash shell (version 3.2, 26 January 2006)..
 </P><P>
 
-This is Edition 3.1-beta1, last updated 5 September 2005,
+This is Edition 3.2, last updated 26 January 2006,
 of <CITE>The GNU Bash Reference Manual</CITE>,
-for <CODE>Bash</CODE>, Version 3.1-beta1.
+for <CODE>Bash</CODE>, Version 3.2.
 </P><P>
 
 Bash contains features that appear in other popular shells, and some
@@ -136,7 +136,8 @@ of Unix.
 Bash is largely compatible with <CODE>sh</CODE> and incorporates useful
 features from the Korn shell <CODE>ksh</CODE> and the C shell <CODE>csh</CODE>.
 It is intended to be a conformant implementation of the IEEE
-POSIX Shell and Tools specification (IEEE Working Group 1003.2).
+POSIX Shell and Tools portion of the IEEE POSIX
+specification (IEEE Standard 1003.1).
 It offers functional improvements over <CODE>sh</CODE> for both interactive and
 programming use.
 </P><P>
@@ -250,7 +251,8 @@ These definitions are used throughout the remainder of this manual.
 <DT><CODE>POSIX</CODE>
 <DD><A NAME="IDX1"></A>
 A family of open system standards based on Unix.  Bash
-is concerned with POSIX 1003.2, the Shell and Tools Standard.
+is primarily concerned with the Shell and Utilities portion of the
+POSIX 1003.1 standard. 
 <P>
 
 <DT><CODE>blank</CODE>
@@ -357,7 +359,7 @@ of an event occurring in the system.
 <DT><CODE>special builtin</CODE>
 <DD><A NAME="IDX18"></A>
 A shell builtin command that has been classified as special by the
-POSIX 1003.2 standard.
+POSIX standard.
 <P>
 
 <DT><CODE>token</CODE>
@@ -1299,8 +1301,8 @@ If the shell option <CODE>nocasematch</CODE>
 (see the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC58">4.2 Bash Builtin Commands</A>)
 is enabled, the match is performed without regard to the case
 of alphabetic characters.
-The return value is 0 if the string matches or does not match
-the pattern, respectively, and 1 otherwise.
+The return value is 0 if the string matches (<SAMP>`=='</SAMP>) or does not
+match (<SAMP>`!='</SAMP>)the pattern, and 1 otherwise.
 Any part of the pattern may be quoted to force it to be matched as a
 string.
 </P><P>
@@ -1460,6 +1462,10 @@ Any redirections (see section <A HREF="bashref.html#SEC38">3.6 Redirections</A>)
 are performed when the function is executed.
 </P><P>
 
+A function definition may be deleted using the <SAMP>`-f'</SAMP> option to the
+<CODE>unset</CODE> builtin (see section <A HREF="bashref.html#SEC57">4.1 Bourne Shell Builtins</A>).
+</P><P>
+
 The exit status of a function definition is zero unless a syntax error
 occurs or a readonly function with the same name already exists.
 When executed, the exit status of a function is the exit status of the
@@ -2197,16 +2203,14 @@ array in turn, and the expansion is the resultant list.
 <P>
 
 <DT><CODE>${<VAR>parameter</VAR>/<VAR>pattern</VAR>/<VAR>string</VAR>}</CODE>
-<DD><DT><CODE>${<VAR>parameter</VAR>//<VAR>pattern</VAR>/<VAR>string</VAR>}</CODE>
 <DD><P>
 
 The <VAR>pattern</VAR> is expanded to produce a pattern just as in
 filename expansion.
 <VAR>Parameter</VAR> is expanded and the longest match of <VAR>pattern</VAR>
 against its value is replaced with <VAR>string</VAR>.
-In the first form, only the first match is replaced.
-The second form causes all matches of <VAR>pattern</VAR> to be
-replaced with <VAR>string</VAR>.
+If <VAR>pattern</VAR> begins with <SAMP>`/'</SAMP>, all matches of <VAR>pattern</VAR> are
+replaced with <VAR>string</VAR>.  Normally only the first match is replaced.
 If <VAR>pattern</VAR> begins with <SAMP>`#'</SAMP>, it must match at the beginning
 of the expanded value of <VAR>parameter</VAR>.
 If <VAR>pattern</VAR> begins with <SAMP>`%'</SAMP>, it must match at the end
@@ -2542,7 +2546,7 @@ force the use of the C locale by setting the <CODE>LC_COLLATE</CODE> or
 Within <SAMP>`['</SAMP> and <SAMP>`]'</SAMP>, <VAR>character classes</VAR> can be specified
 using the syntax
 <CODE>[:</CODE><VAR>class</VAR><CODE>:]</CODE>, where <VAR>class</VAR> is one of the
-following classes defined in the POSIX 1003.2 standard:
+following classes defined in the POSIX standard:
 <TABLE><tr><td>&nbsp;</td><td class=example><pre>alnum   alpha   ascii   blank   cntrl   digit   graph   lower
 print   punct   space   upper   word    xdigit
 </pre></td></tr></table>A character class matches any character belonging to that class.
@@ -3566,7 +3570,7 @@ under another shell.
 <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC59">4.3 The Set Builtin</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">This builtin is so overloaded it
                                deserves its own section.</TD></TR>
 <TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC60">4.4 Special Builtins</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Builtin commands classified specially by
-                               POSIX.2.</TD></TR>
+                               POSIX.</TD></TR>
 </TABLE></BLOCKQUOTE>
 <P>
 
@@ -3578,7 +3582,7 @@ Builtin commands are necessary to implement functionality impossible
 or inconvenient to obtain with separate utilities.
 </P><P>
 
-This section briefly the builtins which Bash inherits from
+This section briefly describes the builtins which Bash inherits from
 the Bourne Shell, as well as the builtin commands which are unique
 to or have been extended in Bash.
 </P><P>
@@ -3620,7 +3624,7 @@ builtins do not accept options.
 <P>
 
 The following shell builtin commands are inherited from the Bourne Shell.
-These commands are implemented as specified by the POSIX 1003.2 standard.
+These commands are implemented as specified by the POSIX standard.
 </P><P>
 
 <DL COMPACT>
@@ -3807,7 +3811,7 @@ If <CODE>getopts</CODE> is silent, then a colon (<SAMP>`:'</SAMP>) is placed in
 
 <DT><CODE>hash</CODE>
 <DD><A NAME="IDX78"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>hash [-'r] [-p <VAR>filename</VAR>] [-dt] [<VAR>name</VAR>]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>hash [-r] [-p <VAR>filename</VAR>] [-dt] [<VAR>name</VAR>]
 </pre></td></tr></table>Remember the full pathnames of commands specified as <VAR>name</VAR> arguments,
 so they need not be searched for on subsequent invocations.
 The commands are found by searching through the directories listed in
@@ -4095,7 +4099,7 @@ The return status is zero unless a <VAR>name</VAR> is readonly.
 
 This section describes builtin commands which are unique to
 or have been extended in Bash.
-Some of these commands are specified in the POSIX 1003.2 standard.
+Some of these commands are specified in the POSIX standard.
 </P><P>
 
 <DL COMPACT>
@@ -4937,7 +4941,7 @@ builtin command.
 
 <DT><CODE>ulimit</CODE>
 <DD><A NAME="IDX107"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>ulimit [-acdflmnpstuvSH] [<VAR>limit</VAR>]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>ulimit [-acdefilmnpqrstuvxSH] [<VAR>limit</VAR>]
 </pre></td></tr></table><CODE>ulimit</CODE> provides control over the resources available to processes
 started by the shell, on systems that allow such control.  If an
 option is given, it is interpreted as follows:
@@ -4962,10 +4966,18 @@ option is given, it is interpreted as follows:
 <DD>The maximum size of a process's data segment.
 <P>
 
+<DT><CODE>-e</CODE>
+<DD>The maximum scheduling priority ("nice").
+<P>
+
 <DT><CODE>-f</CODE>
 <DD>The maximum size of files created by the shell.
 <P>
 
+<DT><CODE>-i</CODE>
+<DD>The maximum number of pending signals.
+<P>
+
 <DT><CODE>-l</CODE>
 <DD>The maximum size that may be locked into memory.
 <P>
@@ -4982,6 +4994,14 @@ option is given, it is interpreted as follows:
 <DD>The pipe buffer size.
 <P>
 
+<DT><CODE>-q</CODE>
+<DD>The maximum number of bytes in POSIX message queues.
+<P>
+
+<DT><CODE>-r</CODE>
+<DD>The maximum real-time scheduling priority.
+<P>
+
 <DT><CODE>-s</CODE>
 <DD>The maximum stack size.
 <P>
@@ -4998,6 +5018,10 @@ option is given, it is interpreted as follows:
 <DD>The maximum amount of virtual memory available to the process.
 <P>
 
+<DT><CODE>-x</CODE>
+<DD>The maximum number of file locks.
+<P>
+
 </DL>
 <P>
 
@@ -5214,7 +5238,7 @@ This option is disabled by default.
 
 <DT><CODE>posix</CODE>
 <DD>Change the behavior of Bash where the default operation differs
-from the POSIX 1003.2 standard to match the standard
+from the POSIX standard to match the standard
 (see section <A HREF="bashref.html#SEC86">6.11 Bash POSIX Mode</A>).
 This is intended to make Bash behave as a strict superset of that
 standard.
@@ -5267,8 +5291,8 @@ shell will exit.
 <P>
 
 <DT><CODE>-x</CODE>
-<DD>Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP
-commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands
+<DD>Print a trace of simple commands, <CODE>for</CODE> commands, <CODE>case</CODE>
+commands, <CODE>select</CODE> commands, and arithmetic <CODE>for</CODE> commands
 and their arguments or associated word lists after they are
 expanded and before they are executed.  The value of the <CODE>PS4</CODE>
 variable is expanded and the resultant value is printed before
@@ -5373,7 +5397,7 @@ The return status is always zero unless an invalid option is supplied.
 <!--docid::SEC60::-->
 <P>
 
-For historical reasons, the POSIX 1003.2 standard has classified
+For historical reasons, the POSIX standard has classified
 several builtin commands as <EM>special</EM>.
 When Bash is executing in POSIX mode, the special builtins
 differ from other builtin commands in three respects:
@@ -6424,7 +6448,7 @@ invoked as <CODE>sh</CODE>.
 
 <DT><CODE>--posix</CODE>
 <DD>Change the behavior of Bash where the default operation differs
-from the POSIX 1003.2 standard to match the standard.  This
+from the POSIX standard to match the standard.  This
 is intended to make Bash behave as a strict superset of that
 standard.  See section <A HREF="bashref.html#SEC86">6.11 Bash POSIX Mode</A>, for a description of the Bash
 POSIX mode.
@@ -7780,7 +7804,7 @@ the shell spawned to execute the script.
 
 Starting Bash with the <SAMP>`--posix'</SAMP> command-line option or executing
 <SAMP>`set -o posix'</SAMP> while Bash is running will cause Bash to conform more
-closely to the POSIX 1003.2 standard by changing the behavior to
+closely to the POSIX standard by changing the behavior to
 match that specified by POSIX in areas where the Bash default differs.
 </P><P>
 
@@ -7821,14 +7845,14 @@ do not undergo alias expansion.
 <P>
 
 <LI>
-The POSIX 1003.2 <CODE>PS1</CODE> and <CODE>PS2</CODE> expansions of <SAMP>`!'</SAMP> to
+The POSIX <CODE>PS1</CODE> and <CODE>PS2</CODE> expansions of <SAMP>`!'</SAMP> to
 the history number and <SAMP>`!!'</SAMP> to <SAMP>`!'</SAMP> are enabled,
 and parameter expansion is performed on the values of <CODE>PS1</CODE> and
 <CODE>PS2</CODE> regardless of the setting of the <CODE>promptvars</CODE> option.
 <P>
 
 <LI>
-The POSIX 1003.2 startup files are executed (<CODE>$ENV</CODE>) rather than
+The POSIX startup files are executed (<CODE>$ENV</CODE>) rather than
 the normal Bash files.
 <P>
 
@@ -7880,14 +7904,14 @@ causes a fatal syntax error in non-interactive shells.
 <P>
 
 <LI>
-POSIX 1003.2 special builtins are found before shell functions
+POSIX special builtins are found before shell functions
 during command lookup.
 <P>
 
 <LI>
-If a POSIX 1003.2 special builtin returns an error status, a
+If a POSIX special builtin returns an error status, a
 non-interactive shell exits.  The fatal errors are those listed in
-the POSIX.2 standard, and include things like passing incorrect options,
+the POSIX standard, and include things like passing incorrect options,
 redirection errors, variable assignment errors for assignments preceding
 the command name, and so on.
 <P>
@@ -7920,7 +7944,7 @@ Process substitution is not available.
 <P>
 
 <LI>
-Assignment statements preceding POSIX 1003.2 special builtins
+Assignment statements preceding POSIX special builtins
 persist in the shell environment after the builtin completes.
 <P>
 
@@ -7932,7 +7956,7 @@ special builtin command had been executed.
 
 <LI>
 The <CODE>export</CODE> and <CODE>readonly</CODE> builtin commands display their
-output in the format required by POSIX 1003.2.
+output in the format required by POSIX.
 <P>
 
 <LI>
@@ -8029,7 +8053,7 @@ escape characters are converted.
 </OL>
 <P>
 
-There is other POSIX 1003.2 behavior that Bash does not implement by
+There is other POSIX behavior that Bash does not implement by
 default even when in POSIX mode.
 Specifically:
 </P><P>
@@ -12266,7 +12290,7 @@ Please send all reports concerning this manual to
 
 Bash implements essentially the same grammar, parameter and
 variable expansion, redirection, and quoting as the Bourne Shell. 
-Bash uses the POSIX 1003.2 standard as the specification of
+Bash uses the POSIX standard as the specification of
 how these features are to be implemented.  There are some
 differences between the traditional Bourne shell and Bash; this
 section quickly details the differences of significance.  A
@@ -12462,7 +12486,7 @@ This closes a longstanding shell security hole.
 <P>
 
 <LI>
-Bash implements the full set of POSIX 1003.2 filename expansion operators,
+Bash implements the full set of POSIX filename expansion operators,
 including <VAR>character classes</VAR>, <VAR>equivalence classes</VAR>, and
 <VAR>collating symbols</VAR> (see section <A HREF="bashref.html#SEC35">3.5.8 Filename Expansion</A>).
 <P>
@@ -12814,8 +12838,8 @@ with a <SAMP>`-'</SAMP>.
 
 <LI>
 The SVR4.2 shell exits a script if any builtin fails; Bash exits
-a script only if one of the POSIX 1003.2 special builtins fails, and
-only for certain failures, as enumerated in the POSIX 1003.2 standard.
+a script only if one of the POSIX special builtins fails, and
+only for certain failures, as enumerated in the POSIX standard.
 <P>
 
 <LI>
@@ -15108,7 +15132,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>October, 3  2005</I>
+This document was generated by <I>Chet Ramey</I> on <I>January, 26  2006</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -15270,7 +15294,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>Chet Ramey</I> on <I>October, 3  2005</I>
+by <I>Chet Ramey</I> on <I>January, 26  2006</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index ce029be987fa62e1723cf11915ba92f5dc0d11a3..63d72e07b315cfec91dedf2fe483a081fb12e0a4 100644 (file)
@@ -2,10 +2,10 @@ This is bashref.info, produced by makeinfo version 4.7 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 3.1-beta1, 5 September 2005).
+the Bash shell (version 3.2, 26 January 2006).
 
-   This is Edition 3.1-beta1, last updated 5 September 2005, of `The
-GNU Bash Reference Manual', for `Bash', Version 3.1-beta1.
+   This is Edition 3.2, last updated 26 January 2006, of `The GNU Bash
+Reference Manual', for `Bash', Version 3.2.
 
    Copyright (C) 1988-2005 Free Software Foundation, Inc.
 
@@ -37,10 +37,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in
-the Bash shell (version 3.1-beta1, 5 September 2005)..
+the Bash shell (version 3.2, 26 January 2006)..
 
-   This is Edition 3.1-beta1, last updated 5 September 2005, of `The
-GNU Bash Reference Manual', for `Bash', Version 3.1-beta1.
+   This is Edition 3.2, last updated 26 January 2006, of `The GNU Bash
+Reference Manual', for `Bash', Version 3.2.
 
    Bash contains features that appear in other popular shells, and some
 features that only appear in Bash.  Some of the shells that Bash has
@@ -107,8 +107,9 @@ Labs Research version of Unix.
    Bash is largely compatible with `sh' and incorporates useful
 features from the Korn shell `ksh' and the C shell `csh'.  It is
 intended to be a conformant implementation of the IEEE POSIX Shell and
-Tools specification (IEEE Working Group 1003.2).  It offers functional
-improvements over `sh' for both interactive and programming use.
+Tools portion of the IEEE POSIX specification (IEEE Standard 1003.1).
+It offers functional improvements over `sh' for both interactive and
+programming use.
 
    While the GNU operating system provides other shells, including a
 version of `csh', Bash is the default shell.  Like other GNU software,
@@ -177,7 +178,8 @@ These definitions are used throughout the remainder of this manual.
 
 `POSIX'
      A family of open system standards based on Unix.  Bash is
-     concerned with POSIX 1003.2, the Shell and Tools Standard.
+     primarily concerned with the Shell and Utilities portion of the
+     POSIX 1003.1 standard.
 
 `blank'
      A space or tab character.
@@ -247,7 +249,7 @@ These definitions are used throughout the remainder of this manual.
 
 `special builtin'
      A shell builtin command that has been classified as special by the
-     POSIX 1003.2 standard.
+     POSIX standard.
 
 `token'
      A sequence of characters considered a single unit by the shell.
@@ -841,9 +843,9 @@ File: bashref.info,  Node: Conditional Constructs,  Next: Command Grouping,  Pre
      shell option `nocasematch' (see the description of `shopt' in
      *Note Bash Builtins::) is enabled, the match is performed without
      regard to the case of alphabetic characters.  The return value is
-     0 if the string matches or does not match the pattern,
-     respectively, and 1 otherwise.  Any part of the pattern may be
-     quoted to force it to be matched as a string.
+     0 if the string matches (`==') or does not match (`!=')the
+     pattern, and 1 otherwise.  Any part of the pattern may be quoted
+     to force it to be matched as a string.
 
      An additional binary operator, `=~', is available, with the same
      precedence as `==' and `!='.  When it is used, the string to the
@@ -944,6 +946,9 @@ specified as the name of a command.  Any redirections (*note
 Redirections::) associated with the shell function are performed when
 the function is executed.
 
+   A function definition may be deleted using the `-f' option to the
+`unset' builtin (*note Bourne Shell Builtins::).
+
    The exit status of a function definition is zero unless a syntax
 error occurs or a readonly function with the same name already exists.
 When executed, the exit status of a function is the exit status of the
@@ -1433,15 +1438,14 @@ if the colon is omitted, the operator tests only for existence.
      list.
 
 `${PARAMETER/PATTERN/STRING}'
-`${PARAMETER//PATTERN/STRING}'
      The PATTERN is expanded to produce a pattern just as in filename
      expansion.  PARAMETER is expanded and the longest match of PATTERN
-     against its value is replaced with STRING.  In the first form,
-     only the first match is replaced.  The second form causes all
-     matches of PATTERN to be replaced with STRING.  If PATTERN begins
-     with `#', it must match at the beginning of the expanded value of
-     PARAMETER.  If PATTERN begins with `%', it must match at the end
-     of the expanded value of PARAMETER.  If STRING is null, matches of
+     against its value is replaced with STRING.  If PATTERN begins with
+     `/', all matches of PATTERN are replaced with STRING.  Normally
+     only the first match is replaced.  If PATTERN begins with `#', it
+     must match at the beginning of the expanded value of PARAMETER.
+     If PATTERN begins with `%', it must match at the end of the
+     expanded value of PARAMETER.  If STRING is null, matches of
      PATTERN are deleted and the `/' following PATTERN may be omitted.
      If PARAMETER is `@' or `*', the substitution operation is applied
      to each positional parameter in turn, and the expansion is the
@@ -1645,7 +1649,7 @@ characters must be quoted if they are to be matched literally.
 
      Within `[' and `]', CHARACTER CLASSES can be specified using the
      syntax `[:'CLASS`:]', where CLASS is one of the following classes
-     defined in the POSIX 1003.2 standard:
+     defined in the POSIX standard:
           alnum   alpha   ascii   blank   cntrl   digit   graph   lower
           print   punct   space   upper   word    xdigit
      A character class matches any character belonging to that class.
@@ -2244,7 +2248,7 @@ File: bashref.info,  Node: Shell Builtin Commands,  Next: Shell Variables,  Prev
 * The Set Builtin::            This builtin is so overloaded it
                                deserves its own section.
 * Special Builtins::           Builtin commands classified specially by
-                               POSIX.2.
+                               POSIX.
 
    Builtin commands are contained within the shell itself.  When the
 name of a builtin command is used as the first word of a simple command
@@ -2253,9 +2257,9 @@ without invoking another program.  Builtin commands are necessary to
 implement functionality impossible or inconvenient to obtain with
 separate utilities.
 
-   This section briefly the builtins which Bash inherits from the
-Bourne Shell, as well as the builtin commands which are unique to or
-have been extended in Bash.
+   This section briefly describes the builtins which Bash inherits from
+the Bourne Shell, as well as the builtin commands which are unique to
+or have been extended in Bash.
 
    Several builtin commands are described in other chapters:  builtin
 commands which provide the Bash interface to the job control facilities
@@ -2278,7 +2282,7 @@ File: bashref.info,  Node: Bourne Shell Builtins,  Next: Bash Builtins,  Up: She
 =========================
 
 The following shell builtin commands are inherited from the Bourne
-Shell.  These commands are implemented as specified by the POSIX 1003.2
+Shell.  These commands are implemented as specified by the POSIX
 standard.
 
 `:    (a colon)'
@@ -2416,7 +2420,7 @@ standard.
      character found.
 
 `hash'
-          hash [-'r] [-p FILENAME] [-dt] [NAME]
+          hash [-r] [-p FILENAME] [-dt] [NAME]
      Remember the full pathnames of commands specified as NAME
      arguments, so they need not be searched for on subsequent
      invocations.  The commands are found by searching through the
@@ -2628,7 +2632,7 @@ File: bashref.info,  Node: Bash Builtins,  Next: The Set Builtin,  Prev: Bourne
 
 This section describes builtin commands which are unique to or have
 been extended in Bash.  Some of these commands are specified in the
-POSIX 1003.2 standard.
+POSIX standard.
 
 `alias'
           alias [`-p'] [NAME[=VALUE] ...]
@@ -3283,7 +3287,7 @@ POSIX 1003.2 standard.
      builtin command.
 
 `ulimit'
-          ulimit [-acdflmnpstuvSH] [LIMIT]
+          ulimit [-acdefilmnpqrstuvxSH] [LIMIT]
      `ulimit' provides control over the resources available to processes
      started by the shell, on systems that allow such control.  If an
      option is given, it is interpreted as follows:
@@ -3302,9 +3306,15 @@ POSIX 1003.2 standard.
     `-d'
           The maximum size of a process's data segment.
 
+    `-e'
+          The maximum scheduling priority ("nice").
+
     `-f'
           The maximum size of files created by the shell.
 
+    `-i'
+          The maximum number of pending signals.
+
     `-l'
           The maximum size that may be locked into memory.
 
@@ -3317,6 +3327,12 @@ POSIX 1003.2 standard.
     `-p'
           The pipe buffer size.
 
+    `-q'
+          The maximum number of bytes in POSIX message queues.
+
+    `-r'
+          The maximum real-time scheduling priority.
+
     `-s'
           The maximum stack size.
 
@@ -3329,6 +3345,9 @@ POSIX 1003.2 standard.
     `-v'
           The maximum amount of virtual memory available to the process.
 
+    `-x'
+          The maximum number of file locks.
+
 
      If LIMIT is given, it is the new value of the specified resource;
      the special LIMIT values `hard', `soft', and `unlimited' stand for
@@ -3484,9 +3503,9 @@ This builtin is so complicated that it deserves its own section.
 
          `posix'
                Change the behavior of Bash where the default operation
-               differs from the POSIX 1003.2 standard to match the
-               standard (*note Bash POSIX Mode::).  This is intended to
-               make Bash behave as a strict superset of that standard.
+               differs from the POSIX standard to match the standard
+               (*note Bash POSIX Mode::).  This is intended to make
+               Bash behave as a strict superset of that standard.
 
          `privileged'
                Same as `-p'.
@@ -3525,13 +3544,12 @@ This builtin is so complicated that it deserves its own section.
           Print shell input lines as they are read.
 
     `-x'
-          Print a trace of simple commands, \fBfor\fP commands,
-          \fBcase\fP commands, \fBselect\fP commands, and arithmetic
-          \fBfor\fP commands and their arguments or associated word
-          lists after they are expanded and before they are executed.
-          The value of the `PS4' variable is expanded and the resultant
-          value is printed before the command and its expanded
-          arguments.
+          Print a trace of simple commands, `for' commands, `case'
+          commands, `select' commands, and arithmetic `for' commands
+          and their arguments or associated word lists after they are
+          expanded and before they are executed.  The value of the `PS4'
+          variable is expanded and the resultant value is printed before
+          the command and its expanded arguments.
 
     `-B'
           The shell will perform brace expansion (*note Brace
@@ -3607,9 +3625,9 @@ File: bashref.info,  Node: Special Builtins,  Prev: The Set Builtin,  Up: Shell
 4.4 Special Builtins
 ====================
 
-For historical reasons, the POSIX 1003.2 standard has classified
-several builtin commands as _special_.  When Bash is executing in POSIX
-mode, the special builtins differ from other builtin commands in three
+For historical reasons, the POSIX standard has classified several
+builtin commands as _special_.  When Bash is executing in POSIX mode,
+the special builtins differ from other builtin commands in three
 respects:
 
   1. Special builtins are found before shell functions during command
@@ -4270,10 +4288,9 @@ the single-character options to be recognized.
 
 `--posix'
      Change the behavior of Bash where the default operation differs
-     from the POSIX 1003.2 standard to match the standard.  This is
-     intended to make Bash behave as a strict superset of that
-     standard.  *Note Bash POSIX Mode::, for a description of the Bash
-     POSIX mode.
+     from the POSIX standard to match the standard.  This is intended
+     to make Bash behave as a strict superset of that standard.  *Note
+     Bash POSIX Mode::, for a description of the Bash POSIX mode.
 
 `--restricted'
      Make the shell a restricted shell (*note The Restricted Shell::).
@@ -5222,8 +5239,8 @@ File: bashref.info,  Node: Bash POSIX Mode,  Prev: The Restricted Shell,  Up: Ba
 
 Starting Bash with the `--posix' command-line option or executing `set
 -o posix' while Bash is running will cause Bash to conform more closely
-to the POSIX 1003.2 standard by changing the behavior to match that
-specified by POSIX in areas where the Bash default differs.
+to the POSIX standard by changing the behavior to match that specified
+by POSIX in areas where the Bash default differs.
 
    When invoked as `sh', Bash enters POSIX mode after reading the
 startup files.
@@ -5248,13 +5265,13 @@ startup files.
   5. Reserved words appearing in a context where reserved words are
      recognized do not undergo alias expansion.
 
-  6. The POSIX 1003.2 `PS1' and `PS2' expansions of `!' to the history
-     number and `!!' to `!' are enabled, and parameter expansion is
-     performed on the values of `PS1' and `PS2' regardless of the
-     setting of the `promptvars' option.
+  6. The POSIX `PS1' and `PS2' expansions of `!' to the history number
+     and `!!' to `!' are enabled, and parameter expansion is performed
+     on the values of `PS1' and `PS2' regardless of the setting of the
+     `promptvars' option.
 
-  7. The POSIX 1003.2 startup files are executed (`$ENV') rather than
-     the normal Bash files.
+  7. The POSIX startup files are executed (`$ENV') rather than the
+     normal Bash files.
 
   8. Tilde expansion is only performed on assignments preceding a
      command name, rather than on all assignment statements on the line.
@@ -5285,12 +5302,12 @@ startup files.
      may not start with a digit.  Declaring a function with an invalid
      name causes a fatal syntax error in non-interactive shells.
 
- 17. POSIX 1003.2 special builtins are found before shell functions
-     during command lookup.
+ 17. POSIX special builtins are found before shell functions during
+     command lookup.
 
- 18. If a POSIX 1003.2 special builtin returns an error status, a
+ 18. If a POSIX special builtin returns an error status, a
      non-interactive shell exits.  The fatal errors are those listed in
-     the POSIX.2 standard, and include things like passing incorrect
+     the POSIX standard, and include things like passing incorrect
      options, redirection errors, variable assignment errors for
      assignments preceding the command name, and so on.
 
@@ -5311,15 +5328,15 @@ startup files.
 
  22. Process substitution is not available.
 
- 23. Assignment statements preceding POSIX 1003.2 special builtins
-     persist in the shell environment after the builtin completes.
+ 23. Assignment statements preceding POSIX special builtins persist in
+     the shell environment after the builtin completes.
 
  24. Assignment statements preceding shell function calls persist in the
      shell environment after the function returns, as if a POSIX
      special builtin command had been executed.
 
  25. The `export' and `readonly' builtin commands display their output
-     in the format required by POSIX 1003.2.
+     in the format required by POSIX.
 
  26. The `trap' builtin displays signal names without the leading `SIG'.
 
@@ -5381,7 +5398,7 @@ startup files.
      displayed, after escape characters are converted.
 
 
-   There is other POSIX 1003.2 behavior that Bash does not implement by
+   There is other POSIX behavior that Bash does not implement by
 default even when in POSIX mode.  Specifically:
 
   1. The `fc' builtin checks `$EDITOR' as a program to edit history
@@ -8141,9 +8158,9 @@ Appendix B Major Differences From The Bourne Shell
 
 Bash implements essentially the same grammar, parameter and variable
 expansion, redirection, and quoting as the Bourne Shell.  Bash uses the
-POSIX 1003.2 standard as the specification of how these features are to
-be implemented.  There are some differences between the traditional
-Bourne shell and Bash; this section quickly details the differences of
+POSIX standard as the specification of how these features are to be
+implemented.  There are some differences between the traditional Bourne
+shell and Bash; this section quickly details the differences of
 significance.  A number of these differences are explained in greater
 depth in previous sections.  This section uses the version of `sh'
 included in SVR4.2 (the last version of the historical Bourne shell) as
@@ -8267,9 +8284,9 @@ the baseline reference.
      not all words (*note Word Splitting::).  This closes a
      longstanding shell security hole.
 
-   * Bash implements the full set of POSIX 1003.2 filename expansion
-     operators, including CHARACTER CLASSES, EQUIVALENCE CLASSES, and
-     COLLATING SYMBOLS (*note Filename Expansion::).
+   * Bash implements the full set of POSIX filename expansion operators,
+     including CHARACTER CLASSES, EQUIVALENCE CLASSES, and COLLATING
+     SYMBOLS (*note Filename Expansion::).
 
    * Bash implements extended pattern matching features when the
      `extglob' shell option is enabled (*note Pattern Matching::).
@@ -8491,9 +8508,8 @@ many of the limitations of the SVR4.2 shell.  For instance:
      begins with a `-'.
 
    * The SVR4.2 shell exits a script if any builtin fails; Bash exits a
-     script only if one of the POSIX 1003.2 special builtins fails, and
-     only for certain failures, as enumerated in the POSIX 1003.2
-     standard.
+     script only if one of the POSIX special builtins fails, and only
+     for certain failures, as enumerated in the POSIX standard.
 
    * The SVR4.2 shell behaves differently when invoked as `jsh' (it
      turns on job control).
@@ -9035,7 +9051,7 @@ Index of Shell Builtin Commands
 * ulimit:                                Bash Builtins.       (line 663)
 * umask:                                 Bourne Shell Builtins.
                                                               (line 324)
-* unalias:                               Bash Builtins.       (line 725)
+* unalias:                               Bash Builtins.       (line 740)
 * unset:                                 Bourne Shell Builtins.
                                                               (line 341)
 * wait:                                  Job Control Builtins.
@@ -9366,7 +9382,7 @@ Concept Index
 * Bourne shell:                          Basic Shell Features.
                                                               (line   6)
 * brace expansion:                       Brace Expansion.     (line   6)
-* builtin:                               Definitions.         (line  16)
+* builtin:                               Definitions.         (line  17)
 * command editing:                       Readline Bare Essentials.
                                                               (line   6)
 * command execution:                     Command Search and Execution.
@@ -9393,7 +9409,7 @@ Concept Index
 * completion builtins:                   Programmable Completion Builtins.
                                                               (line   6)
 * configuration:                         Basic Installation.  (line   6)
-* control operator:                      Definitions.         (line  20)
+* control operator:                      Definitions.         (line  21)
 * directory stack:                       The Directory Stack. (line   6)
 * editing command lines:                 Readline Bare Essentials.
                                                               (line   6)
@@ -9403,7 +9419,7 @@ Concept Index
 * execution environment:                 Command Execution Environment.
                                                               (line   6)
 * exit status <1>:                       Exit Status.         (line   6)
-* exit status:                           Definitions.         (line  24)
+* exit status:                           Definitions.         (line  25)
 * expansion:                             Shell Expansions.    (line   6)
 * expansion, arithmetic:                 Arithmetic Expansion.
                                                               (line   6)
@@ -9418,8 +9434,8 @@ Concept Index
                                                               (line   6)
 * FDL, GNU Free Documentation License:   GNU Free Documentation License.
                                                               (line   6)
-* field:                                 Definitions.         (line  28)
-* filename:                              Definitions.         (line  33)
+* field:                                 Definitions.         (line  29)
+* filename:                              Definitions.         (line  34)
 * filename expansion:                    Filename Expansion.  (line   9)
 * foreground:                            Job Control Basics.  (line   6)
 * functions, shell:                      Shell Functions.     (line   6)
@@ -9431,30 +9447,30 @@ Concept Index
                                                               (line   6)
 * History, how to use:                   Programmable Completion Builtins.
                                                               (line 209)
-* identifier:                            Definitions.         (line  49)
+* identifier:                            Definitions.         (line  50)
 * initialization file, readline:         Readline Init File.  (line   6)
 * installation:                          Basic Installation.  (line   6)
 * interaction, readline:                 Readline Interaction.
                                                               (line   6)
 * interactive shell <1>:                 Interactive Shells.  (line   6)
-* interactive shell:                     Invoking Bash.       (line 128)
+* interactive shell:                     Invoking Bash.       (line 127)
 * internationalization:                  Locale Translation.  (line   6)
-* job:                                   Definitions.         (line  36)
-* job control <1>:                       Definitions.         (line  40)
+* job:                                   Definitions.         (line  37)
+* job control <1>:                       Definitions.         (line  41)
 * job control:                           Job Control Basics.  (line   6)
 * kill ring:                             Readline Killing Commands.
                                                               (line  19)
 * killing text:                          Readline Killing Commands.
                                                               (line   6)
 * localization:                          Locale Translation.  (line   6)
-* login shell:                           Invoking Bash.       (line 125)
+* login shell:                           Invoking Bash.       (line 124)
 * matching, pattern:                     Pattern Matching.    (line   6)
-* metacharacter:                         Definitions.         (line  44)
-* name:                                  Definitions.         (line  49)
+* metacharacter:                         Definitions.         (line  45)
+* name:                                  Definitions.         (line  50)
 * native languages:                      Locale Translation.  (line   6)
 * notation, readline:                    Readline Bare Essentials.
                                                               (line   6)
-* operator, shell:                       Definitions.         (line  55)
+* operator, shell:                       Definitions.         (line  56)
 * parameter expansion:                   Shell Parameter Expansion.
                                                               (line   6)
 * parameters:                            Shell Parameters.    (line   6)
@@ -9466,8 +9482,8 @@ Concept Index
 * pipeline:                              Pipelines.           (line   6)
 * POSIX:                                 Definitions.         (line   9)
 * POSIX Mode:                            Bash POSIX Mode.     (line   6)
-* process group:                         Definitions.         (line  59)
-* process group ID:                      Definitions.         (line  63)
+* process group:                         Definitions.         (line  60)
+* process group ID:                      Definitions.         (line  64)
 * process substitution:                  Process Substitution.
                                                               (line   6)
 * programmable completion:               Programmable Completion.
@@ -9478,28 +9494,28 @@ Concept Index
 * Readline, how to use:                  Job Control Variables.
                                                               (line  24)
 * redirection:                           Redirections.        (line   6)
-* reserved word:                         Definitions.         (line  67)
+* reserved word:                         Definitions.         (line  68)
 * restricted shell:                      The Restricted Shell.
                                                               (line   6)
-* return status:                         Definitions.         (line  72)
+* return status:                         Definitions.         (line  73)
 * shell arithmetic:                      Shell Arithmetic.    (line   6)
 * shell function:                        Shell Functions.     (line   6)
 * shell script:                          Shell Scripts.       (line   6)
 * shell variable:                        Shell Parameters.    (line   6)
 * shell, interactive:                    Interactive Shells.  (line   6)
-* signal:                                Definitions.         (line  75)
+* signal:                                Definitions.         (line  76)
 * signal handling:                       Signals.             (line   6)
-* special builtin <1>:                   Definitions.         (line  79)
+* special builtin <1>:                   Definitions.         (line  80)
 * special builtin:                       Special Builtins.    (line   6)
 * startup files:                         Bash Startup Files.  (line   6)
 * suspending jobs:                       Job Control Basics.  (line   6)
 * tilde expansion:                       Tilde Expansion.     (line   6)
-* token:                                 Definitions.         (line  83)
+* token:                                 Definitions.         (line  84)
 * translation, native languages:         Locale Translation.  (line   6)
 * variable, shell:                       Shell Parameters.    (line   6)
 * variables, readline:                   Readline Init File Syntax.
                                                               (line  37)
-* word:                                  Definitions.         (line  87)
+* word:                                  Definitions.         (line  88)
 * word splitting:                        Word Splitting.      (line   6)
 * yanking text:                          Readline Killing Commands.
                                                               (line   6)
@@ -9507,129 +9523,129 @@ Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f1375
-Node: Introduction\7f3475
-Node: What is Bash?\7f3703
-Node: What is a shell?\7f4796
-Node: Definitions\7f7337
-Node: Basic Shell Features\7f10078
-Node: Shell Syntax\7f11297
-Node: Shell Operation\7f12327
-Node: Quoting\7f13621
-Node: Escape Character\7f14924
-Node: Single Quotes\7f15409
-Node: Double Quotes\7f15757
-Node: ANSI-C Quoting\7f16882
-Node: Locale Translation\7f17838
-Node: Comments\7f18734
-Node: Shell Commands\7f19348
-Node: Simple Commands\7f20114
-Node: Pipelines\7f20745
-Node: Lists\7f22620
-Node: Compound Commands\7f24251
-Node: Looping Constructs\7f25035
-Node: Conditional Constructs\7f27482
-Node: Command Grouping\7f34942
-Node: Shell Functions\7f36391
-Node: Shell Parameters\7f40681
-Node: Positional Parameters\7f43011
-Node: Special Parameters\7f43911
-Node: Shell Expansions\7f46875
-Node: Brace Expansion\7f48800
-Node: Tilde Expansion\7f51125
-Node: Shell Parameter Expansion\7f53476
-Node: Command Substitution\7f60985
-Node: Arithmetic Expansion\7f62318
-Node: Process Substitution\7f63168
-Node: Word Splitting\7f64218
-Node: Filename Expansion\7f65679
-Node: Pattern Matching\7f67815
-Node: Quote Removal\7f71140
-Node: Redirections\7f71435
-Node: Executing Commands\7f79165
-Node: Simple Command Expansion\7f79835
-Node: Command Search and Execution\7f81765
-Node: Command Execution Environment\7f83771
-Node: Environment\7f86542
-Node: Exit Status\7f88202
-Node: Signals\7f89406
-Node: Shell Scripts\7f91370
-Node: Shell Builtin Commands\7f93888
-Node: Bourne Shell Builtins\7f95549
-Node: Bash Builtins\7f112632
-Node: The Set Builtin\7f141675
-Node: Special Builtins\7f150082
-Node: Shell Variables\7f151059
-Node: Bourne Shell Variables\7f151499
-Node: Bash Variables\7f153480
-Node: Bash Features\7f173666
-Node: Invoking Bash\7f174549
-Node: Bash Startup Files\7f180370
-Node: Interactive Shells\7f185228
-Node: What is an Interactive Shell?\7f185638
-Node: Is this Shell Interactive?\7f186288
-Node: Interactive Shell Behavior\7f187103
-Node: Bash Conditional Expressions\7f190379
-Node: Shell Arithmetic\7f193958
-Node: Aliases\7f196704
-Node: Arrays\7f199272
-Node: The Directory Stack\7f202621
-Node: Directory Stack Builtins\7f203335
-Node: Printing a Prompt\7f206226
-Node: The Restricted Shell\7f208940
-Node: Bash POSIX Mode\7f210772
-Node: Job Control\7f218589
-Node: Job Control Basics\7f219056
-Node: Job Control Builtins\7f223432
-Node: Job Control Variables\7f227759
-Node: Command Line Editing\7f228917
-Node: Introduction and Notation\7f229916
-Node: Readline Interaction\7f231538
-Node: Readline Bare Essentials\7f232729
-Node: Readline Movement Commands\7f234518
-Node: Readline Killing Commands\7f235483
-Node: Readline Arguments\7f237403
-Node: Searching\7f238447
-Node: Readline Init File\7f240633
-Node: Readline Init File Syntax\7f241692
-Node: Conditional Init Constructs\7f253908
-Node: Sample Init File\7f256441
-Node: Bindable Readline Commands\7f259558
-Node: Commands For Moving\7f260765
-Node: Commands For History\7f261626
-Node: Commands For Text\7f264781
-Node: Commands For Killing\7f267454
-Node: Numeric Arguments\7f269596
-Node: Commands For Completion\7f270735
-Node: Keyboard Macros\7f274328
-Node: Miscellaneous Commands\7f274899
-Node: Readline vi Mode\7f280210
-Node: Programmable Completion\7f281124
-Node: Programmable Completion Builtins\7f286916
-Node: Using History Interactively\7f294512
-Node: Bash History Facilities\7f295192
-Node: Bash History Builtins\7f297887
-Node: History Interaction\7f301744
-Node: Event Designators\7f304300
-Node: Word Designators\7f305315
-Node: Modifiers\7f306954
-Node: Installing Bash\7f308360
-Node: Basic Installation\7f309490
-Node: Compilers and Options\7f312182
-Node: Compiling For Multiple Architectures\7f312923
-Node: Installation Names\7f314587
-Node: Specifying the System Type\7f315405
-Node: Sharing Defaults\7f316121
-Node: Operation Controls\7f316794
-Node: Optional Features\7f317752
-Node: Reporting Bugs\7f326683
-Node: Major Differences From The Bourne Shell\7f327877
-Node: Copying This Manual\7f344575
-Node: GNU Free Documentation License\7f344851
-Node: Builtin Index\7f367257
-Node: Reserved Word Index\7f373806
-Node: Variable Index\7f376242
-Node: Function Index\7f387175
-Node: Concept Index\7f393895
+Node: Top\7f1355
+Node: Introduction\7f3435
+Node: What is Bash?\7f3663
+Node: What is a shell?\7f4776
+Node: Definitions\7f7317
+Node: Basic Shell Features\7f10084
+Node: Shell Syntax\7f11303
+Node: Shell Operation\7f12333
+Node: Quoting\7f13627
+Node: Escape Character\7f14930
+Node: Single Quotes\7f15415
+Node: Double Quotes\7f15763
+Node: ANSI-C Quoting\7f16888
+Node: Locale Translation\7f17844
+Node: Comments\7f18740
+Node: Shell Commands\7f19354
+Node: Simple Commands\7f20120
+Node: Pipelines\7f20751
+Node: Lists\7f22626
+Node: Compound Commands\7f24257
+Node: Looping Constructs\7f25041
+Node: Conditional Constructs\7f27488
+Node: Command Grouping\7f34947
+Node: Shell Functions\7f36396
+Node: Shell Parameters\7f40805
+Node: Positional Parameters\7f43135
+Node: Special Parameters\7f44035
+Node: Shell Expansions\7f46999
+Node: Brace Expansion\7f48924
+Node: Tilde Expansion\7f51249
+Node: Shell Parameter Expansion\7f53600
+Node: Command Substitution\7f61070
+Node: Arithmetic Expansion\7f62403
+Node: Process Substitution\7f63253
+Node: Word Splitting\7f64303
+Node: Filename Expansion\7f65764
+Node: Pattern Matching\7f67900
+Node: Quote Removal\7f71218
+Node: Redirections\7f71513
+Node: Executing Commands\7f79243
+Node: Simple Command Expansion\7f79913
+Node: Command Search and Execution\7f81843
+Node: Command Execution Environment\7f83849
+Node: Environment\7f86620
+Node: Exit Status\7f88280
+Node: Signals\7f89484
+Node: Shell Scripts\7f91448
+Node: Shell Builtin Commands\7f93966
+Node: Bourne Shell Builtins\7f95635
+Node: Bash Builtins\7f112710
+Node: The Set Builtin\7f142062
+Node: Special Builtins\7f150437
+Node: Shell Variables\7f151407
+Node: Bourne Shell Variables\7f151847
+Node: Bash Variables\7f153828
+Node: Bash Features\7f174014
+Node: Invoking Bash\7f174897
+Node: Bash Startup Files\7f180706
+Node: Interactive Shells\7f185564
+Node: What is an Interactive Shell?\7f185974
+Node: Is this Shell Interactive?\7f186624
+Node: Interactive Shell Behavior\7f187439
+Node: Bash Conditional Expressions\7f190715
+Node: Shell Arithmetic\7f194294
+Node: Aliases\7f197040
+Node: Arrays\7f199608
+Node: The Directory Stack\7f202957
+Node: Directory Stack Builtins\7f203671
+Node: Printing a Prompt\7f206562
+Node: The Restricted Shell\7f209276
+Node: Bash POSIX Mode\7f211108
+Node: Job Control\7f218867
+Node: Job Control Basics\7f219334
+Node: Job Control Builtins\7f223710
+Node: Job Control Variables\7f228037
+Node: Command Line Editing\7f229195
+Node: Introduction and Notation\7f230194
+Node: Readline Interaction\7f231816
+Node: Readline Bare Essentials\7f233007
+Node: Readline Movement Commands\7f234796
+Node: Readline Killing Commands\7f235761
+Node: Readline Arguments\7f237681
+Node: Searching\7f238725
+Node: Readline Init File\7f240911
+Node: Readline Init File Syntax\7f241970
+Node: Conditional Init Constructs\7f254186
+Node: Sample Init File\7f256719
+Node: Bindable Readline Commands\7f259836
+Node: Commands For Moving\7f261043
+Node: Commands For History\7f261904
+Node: Commands For Text\7f265059
+Node: Commands For Killing\7f267732
+Node: Numeric Arguments\7f269874
+Node: Commands For Completion\7f271013
+Node: Keyboard Macros\7f274606
+Node: Miscellaneous Commands\7f275177
+Node: Readline vi Mode\7f280488
+Node: Programmable Completion\7f281402
+Node: Programmable Completion Builtins\7f287194
+Node: Using History Interactively\7f294790
+Node: Bash History Facilities\7f295470
+Node: Bash History Builtins\7f298165
+Node: History Interaction\7f302022
+Node: Event Designators\7f304578
+Node: Word Designators\7f305593
+Node: Modifiers\7f307232
+Node: Installing Bash\7f308638
+Node: Basic Installation\7f309768
+Node: Compilers and Options\7f312460
+Node: Compiling For Multiple Architectures\7f313201
+Node: Installation Names\7f314865
+Node: Specifying the System Type\7f315683
+Node: Sharing Defaults\7f316399
+Node: Operation Controls\7f317072
+Node: Optional Features\7f318030
+Node: Reporting Bugs\7f326961
+Node: Major Differences From The Bourne Shell\7f328155
+Node: Copying This Manual\7f344820
+Node: GNU Free Documentation License\7f345096
+Node: Builtin Index\7f367502
+Node: Reserved Word Index\7f374051
+Node: Variable Index\7f376487
+Node: Function Index\7f387420
+Node: Concept Index\7f394140
 \1f
 End Tag Table
index c359331c2e72a677178934d915739dd0f7b2d6dc..970b3932c446e6dae50306dc339f5ff579611589 100644 (file)
@@ -1,4 +1,4 @@
-This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22)  3 OCT 2005 15:07
+This is TeX, Version 3.14159 (Web2C 7.4.5) (format=tex 2005.3.22)  26 JAN 2006 11:19
 **/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,
@@ -158,7 +158,7 @@ and turning on texinfo input format.) (./bashref.aux)
 
  [1] Chapter 2 [2] [3]
 Chapter 3 [4] [5] [6] [7] [8] [9] [10]
-Overfull \hbox (43.33539pt too wide) in paragraph at lines 843--843
+Overfull \hbox (43.33539pt too wide) in paragraph at lines 845--845
  []@texttt case @textttsl word @texttt in [ [(] @textttsl pat-tern @texttt [| @
 textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][] 
 
@@ -171,9 +171,9 @@ textttsl pat-tern@texttt ][]) @textttsl command-list @texttt ;;][] esac[][]
 .etc.
 
 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25]
-[26] [27] [28] [29] [30] [31] Chapter 4 [32] [33] [34] [35] [36] [37] [38]
-[39]
-Underfull \hbox (badness 5231) in paragraph at lines 3117--3130
+[26] [27] [28] [29] [30] [31] [32] Chapter 4 [33] [34] [35] [36] [37] [38]
+[39] [40] [41]
+Underfull \hbox (badness 5231) in paragraph at lines 3120--3133
  @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
 m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
 
@@ -185,8 +185,8 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
 .@texttt c
 .etc.
 
-[40] [41] [42] [43]
-Overfull \hbox (43.33536pt too wide) in paragraph at lines 3460--3460
+[42] [43] [44] [45]
+Overfull \hbox (43.33536pt too wide) in paragraph at lines 3463--3463
  []@texttt read [-ers] [-a @textttsl aname@texttt ] [-d @textttsl de-lim@texttt
  ] [-n @textttsl nchars@texttt ] [-p @textttsl prompt@texttt ] [-t @textttsl ti
 me-
@@ -199,8 +199,8 @@ me-
 .@texttt a
 .etc.
 
-[44] [45] [46]
-Underfull \hbox (badness 2573) in paragraph at lines 3644--3648
+[46] [47] [48]
+Underfull \hbox (badness 2573) in paragraph at lines 3647--3651
  [] []@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
@@ -215,22 +215,9 @@ Underfull \hbox (badness 2573) in paragraph at lines 3644--3648
 .@textrm E
 .etc.
 
-[47] [48] [49] [50] [51] [52]
-Underfull \hbox (badness 4036) in paragraph at lines 4091--4098
- @texttt -x[]@textrm Print a trace of sim-ple com-mands, @texttt \@textrm fB-fo
-r@texttt \@textrm fP com-mands,
-
-@hbox(7.60416+2.12917)x433.62, glue set 3.43124
-.@glue(@leftskip) 115.63242
-.@penalty 10000
-.@kern -57.81621
-.@texttt -
-.@texttt x
-.etc.
-
-[53] Chapter 5 [54] [55] [56] [57] [58] [59] [60] [61] [62] Chapter 6 [63]
-[64]
-Overfull \hbox (51.96864pt too wide) in paragraph at lines 4822--4822
+[49] [50] [51] [52] [53] [54] [55] Chapter 5 [56] [57] [58] [59] [60] [61]
+[62] [63] [64] Chapter 6 [65] [66]
+Overfull \hbox (51.96864pt too wide) in paragraph at lines 4840--4840
  []@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
 exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 
@@ -243,7 +230,7 @@ exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 .etc.
 
 
-Overfull \hbox (76.23077pt too wide) in paragraph at lines 4823--4823
+Overfull \hbox (76.23077pt too wide) in paragraph at lines 4841--4841
  []@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt 
 ] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
 -
@@ -257,7 +244,7 @@ Overfull \hbox (76.23077pt too wide) in paragraph at lines 4823--4823
 .etc.
 
 
-Overfull \hbox (34.72258pt too wide) in paragraph at lines 4824--4824
+Overfull \hbox (34.72258pt too wide) in paragraph at lines 4842--4842
  []@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
 tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 
@@ -269,8 +256,8 @@ tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
 .@texttt s
 .etc.
 
-[65] [66]
-Underfull \hbox (badness 2245) in paragraph at lines 4998--5000
+[67] [68]
+Underfull \hbox (badness 2245) in paragraph at lines 5016--5018
 []@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from 
 the file
 
@@ -282,8 +269,8 @@ the file
 .@textrm n
 .etc.
 
-[67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80]
-Underfull \hbox (badness 2521) in paragraph at lines 6112--6115
+[69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82]
+Underfull \hbox (badness 2521) in paragraph at lines 6130--6133
 @textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
 e[] @textrm when build-ing (see Sec-tion 10.8
 
@@ -295,9 +282,9 @@ e[] @textrm when build-ing (see Sec-tion 10.8
 .@texttt n
 .etc.
 
-Chapter 7 [81] [82] [83] [84] [85]
-(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [86] [87]
-[88] [89] [90] [91]
+Chapter 7 [83] [84] [85] [86] [87]
+(/Users/chet/src/bash/src/lib/readline/doc/rluser.texi Chapter 8 [88] [89]
+[90] [91] [92] [93]
 Underfull \hbox (badness 5231) in paragraph at lines 500--516
  @texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
 m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
@@ -310,7 +297,7 @@ m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
 .@texttt c
 .etc.
 
-[92] [93] [94] [95] [96]
+[94] [95] [96] [97] [98]
 Overfull \hbox (26.43913pt too wide) in paragraph at lines 813--813
  []@texttt Meta-Control-h: backward-kill-word Text after the function name is i
 gnored[] 
@@ -323,7 +310,7 @@ gnored[]
 .@texttt t
 .etc.
 
-[97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108]
+[99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110]
 Overfull \hbox (17.80585pt too wide) in paragraph at lines 1662--1662
  []@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-A @tex
 tttsl ac-tion@texttt ] [-G @textttsl glob-
@@ -336,7 +323,7 @@ tttsl ac-tion@texttt ] [-G @textttsl glob-
 .@texttt m
 .etc.
 
-[109] [110]
+[111] [112]
 Underfull \hbox (badness 2753) in paragraph at lines 1764--1767
  @texttt hostname[]@textrm Hostnames, as taken from the file spec-i-fied by
 
@@ -348,9 +335,9 @@ Underfull \hbox (badness 2753) in paragraph at lines 1764--1767
 .@texttt o
 .etc.
 
-[111]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
-[112] [113] [114] [115] [116]) Chapter 10 [117] [118] [119] [120] [121]
-Underfull \hbox (badness 2772) in paragraph at lines 6706--6710
+[113]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
+[114] [115] [116] [117] [118]) Chapter 10 [119] [120] [121] [122] [123]
+Underfull \hbox (badness 2772) in paragraph at lines 6724--6728
  []@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
 s/large_
 
@@ -362,9 +349,9 @@ s/large_
 .@textrm a
 .etc.
 
-[122] [123] [124] Appendix A [125] [126] Appendix B [127] [128] [129] [130]
-[131] [132] [133] Appendix C [134] (./fdl.texi [135] [136] [137] [138] [139]
-[140]) (Index of Shell Builtin Commands) [141] [142] (./bashref.bts)
+[124] [125] [126] Appendix A [127] [128] Appendix B [129] [130] [131] [132]
+[133] [134] [135] Appendix C [136] (./fdl.texi [137] [138] [139] [140] [141]
+[142]) (Index of Shell Builtin Commands) [143] [144] (./bashref.bts)
 (Index of Shell Reserved Words)
 Overfull \vbox (42.26959pt too high) has occurred while \output is active
 \vbox(643.19986+0.0)x433.62, glue set - 1.0
@@ -383,16 +370,16 @@ Overfull \vbox (42.26959pt too high) has occurred while \output is active
 .etc.
 
 
-[143] [144] (./bashref.rws) (Parameter and Variable Index) [145] [146]
-(./bashref.vrs [147]) (Function Index) [148] (./bashref.fns [149])
-(Concept Index) [150] (./bashref.cps [151]) [152] ) 
+[145] [146] (./bashref.rws) (Parameter and Variable Index) [147] [148]
+(./bashref.vrs [149]) (Function Index) [150] (./bashref.fns [151])
+(Concept Index) [152] (./bashref.cps [153]) [154] ) 
 Here is how much of TeX's memory you used:
  1726 strings out of 98002
  23501 string characters out of 1221987
- 52386 words of memory out of 1000001
+ 52376 words of memory out of 1000001
  2577 multiletter control sequences out of 10000+50000
  31953 words of font info for 111 fonts, out of 500000 for 1000
  19 hyphenation exceptions out of 1000
  15i,8n,11p,269b,465s stack positions out of 1500i,500n,5000p,200000b,5000s
 
-Output written on bashref.dvi (158 pages, 590560 bytes).
+Output written on bashref.dvi (160 pages, 590960 bytes).
index e9fdc7cabdbc0d7ebf2e1b3dfbda82b9a27dcc24..517ce89e41252957f11a4b4424cf4ed9313c35a0 100644 (file)
Binary files a/doc/bashref.pdf and b/doc/bashref.pdf differ
index 07d9e2eaccce9fa72c69ed00a77449dc892853e2..0204990d83f89adb9013da5ec3e2ec7ca8f93c4a 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
 %%Title: bashref.dvi
-%%Pages: 158
+%%Pages: 160
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 612 792
 %%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMBXTI10 CMTI10
@@ -10,7 +10,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
 %DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2005.10.03:1507
+%DVIPSSource:  TeX output 2006.01.26:1119
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -4225,22 +4225,21 @@ letter
 %%Page: 1 1
 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)1928 1589 y(Edition)h(3.1-b)s(eta1,)
-h(for)e Fs(Bash)g Ft(V)-8 b(ersion)31 b(3.1-b)s(eta1.)3118
-1697 y(Septem)m(b)s(er)f(2005)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
+b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(3.2,)g(for)f
+Fs(Bash)g Ft(V)-8 b(ersion)31 b(3.2.)3218 1697 y(Jan)m(uary)f(2006)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(3.1-b)s(eta1,)d(5)d
-(Septem)m(b)s(er)g(2005\).)150 3133 y(This)39 b(is)h(Edition)f(3.1-b)s
-(eta1,)45 b(last)40 b(up)s(dated)f(5)h(Septem)m(b)s(er)f(2005,)44
-b(of)c Fq(The)f(GNU)h(Bash)g(Reference)150 3243 y(Man)m(ual)p
-Ft(,)32 b(for)e Fs(Bash)p Ft(,)f(V)-8 b(ersion)31 b(3.1-b)s(eta1.)150
-3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377 y Fp(\015)f
-Ft(1988-2005)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(3.2,)c(26)f(Jan)m(uary)f
+(2006\).)150 3133 y(This)j(is)g(Edition)g(3.2,)j(last)e(up)s(dated)e
+(26)i(Jan)m(uary)f(2006,)j(of)d Fq(The)g(GNU)h(Bash)g(Reference)g(Man)m
+(ual)p Ft(,)150 3243 y(for)c Fs(Bash)p Ft(,)g(V)-8 b(ersion)31
+b(3.2.)150 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377
+y Fp(\015)f Ft(1988-2005)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8
 b(oundation,)32 b(Inc.)150 3512 y(P)m(ermission)g(is)h(gran)m(ted)g(to)
 f(mak)m(e)i(and)d(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m
 (ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f
@@ -4377,10 +4376,10 @@ b(Remo)m(v)-5 b(al)15 b Fm(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 g(.)g(.)g(.)44 b Ft(24)449 5044 y(3.6)92 b(Redirections)24
 b Fm(.)15 b(.)g(.)g(.)g(.)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(.)53 b Ft(24)748 5153
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(25)748 5153
 y(3.6.1)93 b(Redirecting)31 b(Input)11 b Fm(.)j(.)h(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)40 b Ft(25)748 5263 y(3.6.2)93 b(Redirecting)31
+g(.)h(.)f(.)g(.)g(.)40 b Ft(26)748 5263 y(3.6.2)93 b(Redirecting)31
 b(Output)18 b Fm(.)13 b(.)i(.)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(.)47
 b Ft(26)p eop end
@@ -4396,7 +4395,7 @@ g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54
 b Ft(26)748 412 y(3.6.5)93 b(Here)30 b(Do)s(cumen)m(ts)13
 b Fm(.)k(.)e(.)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(.)43
-b Ft(26)748 521 y(3.6.6)93 b(Here)30 b(Strings)10 b Fm(.)15
+b Ft(27)748 521 y(3.6.6)93 b(Here)30 b(Strings)10 b Fm(.)15
 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39
 b Ft(27)748 631 y(3.6.7)93 b(Duplicating)31 b(File)h(Descriptors)17
@@ -4404,7 +4403,7 @@ b Fm(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
 g(.)g(.)g(.)47 b Ft(27)748 741 y(3.6.8)93 b(Mo)m(ving)31
 b(File)h(Descriptors)15 b Fm(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)44
-b Ft(27)748 850 y(3.6.9)93 b(Op)s(ening)29 b(File)i(Descriptors)g(for)f
+b Ft(28)748 850 y(3.6.9)93 b(Op)s(ening)29 b(File)i(Descriptors)g(for)f
 (Reading)h(and)f(W)-8 b(riting)954 960 y Fm(.)16 b(.)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(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
@@ -4433,235 +4432,235 @@ b(Shell)30 b(Scripts)21 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51
 b Ft(32)150 2079 y Fr(4)135 b(Shell)45 b(Builtin)g(Commands)38
 b Fn(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
-(.)f(.)82 b Fr(33)449 2216 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)
+(.)f(.)82 b Fr(35)449 2216 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)
 16 b Fm(.)f(.)g(.)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(.)45 b Ft(33)449 2325 y(4.2)92 b(Bash)30 b(Builtin)h(Commands)17
+g(.)45 b Ft(35)449 2325 y(4.2)92 b(Bash)30 b(Builtin)h(Commands)17
 b Fm(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
 f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46
-b Ft(39)449 2435 y(4.3)92 b(The)30 b(Set)g(Builtin)25
+b Ft(41)449 2435 y(4.3)92 b(The)30 b(Set)g(Builtin)25
 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(50)449 2545 y(4.4)92
+g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(53)449 2545 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(54)150 2787 y Fr(5)135 b(Shell)45 b(V)-11 b(ariables)10
+b Ft(56)150 2787 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(55)449
+(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)55 b Fr(57)449
 2924 y Ft(5.1)92 b(Bourne)30 b(Shell)g(V)-8 b(ariables)11
 b Fm(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-40 b Ft(55)449 3034 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)17
+40 b Ft(57)449 3034 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)17
 b Fm(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b Ft(55)150 3276 y Fr(6)135
+(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b Ft(57)150 3276 y Fr(6)135
 b(Bash)44 b(F)-11 b(eatures)31 b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h
 (.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
-g(.)h(.)75 b Fr(65)449 3413 y Ft(6.1)92 b(In)m(v)m(oking)31
+g(.)h(.)75 b Fr(67)449 3413 y Ft(6.1)92 b(In)m(v)m(oking)31
 b(Bash)e Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)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(.)58 b Ft(65)449 3523
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(67)449 3523
 y(6.2)92 b(Bash)30 b(Startup)g(Files)c Fm(.)15 b(.)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(.)g(.)g(.)55
-b Ft(67)449 3632 y(6.3)92 b(In)m(teractiv)m(e)33 b(Shells)14
+b Ft(69)449 3632 y(6.3)92 b(In)m(teractiv)m(e)33 b(Shells)14
 b Fm(.)h(.)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(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)43 b Ft(69)748 3742 y(6.3.1)93 b(What)31
+(.)g(.)g(.)g(.)g(.)43 b Ft(71)748 3742 y(6.3.1)93 b(What)31
 b(is)f(an)g(In)m(teractiv)m(e)j(Shell?)20 b Fm(.)15 b(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
-b Ft(69)748 3851 y(6.3.2)93 b(Is)30 b(this)g(Shell)g(In)m(teractiv)m
+b Ft(71)748 3851 y(6.3.2)93 b(Is)30 b(this)g(Shell)g(In)m(teractiv)m
 (e?)10 b Fm(.)18 b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(69)748
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(71)748
 3961 y(6.3.3)93 b(In)m(teractiv)m(e)32 b(Shell)f(Beha)m(vior)22
 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(69)449 4071 y(6.4)92 b(Bash)30
+(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(71)449 4071 y(6.4)92 b(Bash)30
 b(Conditional)h(Expressions)20 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)49 b Ft(70)449 4180 y(6.5)92 b(Shell)30 b(Arithmetic)f
+f(.)49 b Ft(72)449 4180 y(6.5)92 b(Shell)30 b(Arithmetic)f
 Fm(.)15 b(.)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(.)g(.)h(.)f(.)g(.)57 b Ft(72)449 4290 y(6.6)92 b(Aliases)25
+g(.)g(.)h(.)f(.)g(.)57 b Ft(74)449 4290 y(6.6)92 b(Aliases)25
 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)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(.)53
-b Ft(73)449 4399 y(6.7)92 b(Arra)m(ys)29 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)
+b Ft(75)449 4399 y(6.7)92 b(Arra)m(ys)29 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)
 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)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(.)58 b Ft(74)449 4509 y(6.8)92
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(76)449 4509 y(6.8)92
 b(The)30 b(Directory)i(Stac)m(k)15 b Fm(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Ft(75)748
+f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Ft(77)748
 4619 y(6.8.1)93 b(Directory)31 b(Stac)m(k)h(Builtins)10
 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(75)449 4728 y(6.9)92
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(77)449 4728 y(6.9)92
 b(Con)m(trolling)31 b(the)g(Prompt)15 b Fm(.)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(.)h(.)f(.)g(.)g(.)g(.)44 b Ft(76)449 4838 y(6.10)92
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)44 b Ft(78)449 4838 y(6.10)92
 b(The)30 b(Restricted)i(Shell)11 b Fm(.)k(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)40 b Ft(78)449 4947
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)40 b Ft(80)449 4947
 y(6.11)92 b(Bash)31 b(POSIX)e(Mo)s(de)16 b Fm(.)f(.)g(.)g(.)g(.)g(.)g
 (.)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(.)45 b
-Ft(78)p eop end
+Ft(80)p eop end
 %%Page: -3 5
 TeXDict begin -3 4 bop 3674 -116 a Ft(iii)150 83 y Fr(7)135
 b(Job)45 b(Con)l(trol)32 b Fn(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
 h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
-(.)h(.)f(.)76 b Fr(83)449 220 y Ft(7.1)92 b(Job)30 b(Con)m(trol)h
+(.)h(.)f(.)76 b Fr(85)449 220 y Ft(7.1)92 b(Job)30 b(Con)m(trol)h
 (Basics)23 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)52 b Ft(83)449 330 y(7.2)92 b(Job)30
+g(.)g(.)g(.)g(.)g(.)g(.)52 b Ft(85)449 330 y(7.2)92 b(Job)30
 b(Con)m(trol)h(Builtins)12 b Fm(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)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(.)41 b Ft(84)449 439 y(7.3)92
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(86)449 439 y(7.3)92
 b(Job)30 b(Con)m(trol)h(V)-8 b(ariables)30 b Fm(.)15
 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)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(.)58
-b Ft(85)150 682 y Fr(8)135 b(Command)45 b(Line)g(Editing)38
+b Ft(87)150 682 y Fr(8)135 b(Command)45 b(Line)g(Editing)38
 b Fn(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)81 b Fr(87)449 819 y Ft(8.1)92 b(In)m(tro)s(duction)30
+(.)f(.)h(.)81 b Fr(89)449 819 y Ft(8.1)92 b(In)m(tro)s(duction)30
 b(to)h(Line)f(Editing)24 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
-(.)53 b Ft(87)449 928 y(8.2)92 b(Readline)31 b(In)m(teraction)15
+(.)53 b Ft(89)449 928 y(8.2)92 b(Readline)31 b(In)m(teraction)15
 b Fm(.)i(.)e(.)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(.)h(.)f(.)g(.)g(.)g
-(.)g(.)44 b Ft(87)748 1038 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m
+(.)g(.)44 b Ft(89)748 1038 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m
 (tials)25 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Ft(87)748
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Ft(89)748
 1147 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)h(Commands)13
 b Fm(.)h(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-42 b Ft(88)748 1257 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)20
+42 b Ft(90)748 1257 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)20
 b Fm(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)50 b Ft(88)748 1367 y(8.2.4)93 b(Readline)31
+(.)g(.)g(.)g(.)50 b Ft(90)748 1367 y(8.2.4)93 b(Readline)31
 b(Argumen)m(ts)23 b Fm(.)15 b(.)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(.)53
-b Ft(89)748 1476 y(8.2.5)93 b(Searc)m(hing)30 b(for)h(Commands)e(in)h
+b Ft(91)748 1476 y(8.2.5)93 b(Searc)m(hing)30 b(for)h(Commands)e(in)h
 (the)g(History)c Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54
-b Ft(89)449 1586 y(8.3)92 b(Readline)31 b(Init)f(File)f
+b Ft(91)449 1586 y(8.3)92 b(Readline)31 b(Init)f(File)f
 Fm(.)15 b(.)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(.)h(.)f(.)
-g(.)g(.)g(.)g(.)56 b Ft(90)748 1695 y(8.3.1)93 b(Readline)31
+g(.)g(.)g(.)g(.)56 b Ft(92)748 1695 y(8.3.1)93 b(Readline)31
 b(Init)f(File)h(Syn)m(tax)12 b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41
-b Ft(90)748 1805 y(8.3.2)93 b(Conditional)30 b(Init)h(Constructs)e
+b Ft(92)748 1805 y(8.3.2)93 b(Conditional)30 b(Init)h(Constructs)e
 Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)59 b Ft(95)748 1914 y(8.3.3)93 b(Sample)30
+(.)g(.)g(.)g(.)59 b Ft(97)748 1914 y(8.3.3)93 b(Sample)30
 b(Init)g(File)21 b Fm(.)c(.)e(.)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(.)51 b Ft(96)449 2024 y(8.4)92 b(Bindable)31 b(Readline)g(Commands)12
-b Fm(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41 b Ft(99)748
-2134 y(8.4.1)93 b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)d
+g(.)51 b Ft(98)449 2024 y(8.4)92 b(Bindable)31 b(Readline)g(Commands)11
+b Fm(.)j(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(101)748 2134
+y(8.4.1)93 b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)c
 Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Ft(99)748 2243 y(8.4.2)93
-b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f(History)18
-b Fm(.)e(.)f(.)g(.)g(.)g(.)g(.)47 b Ft(99)748 2353 y(8.4.3)93
+(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(101)748 2243 y(8.4.2)93
+b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f(History)17
+b Fm(.)e(.)g(.)g(.)h(.)f(.)46 b Ft(101)748 2353 y(8.4.3)93
 b(Commands)29 b(F)-8 b(or)31 b(Changing)f(T)-8 b(ext)29
 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-58 b Ft(101)748 2462 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8
+58 b Ft(103)748 2462 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8
 b(anking)16 b Fm(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b
-Ft(102)748 2572 y(8.4.5)93 b(Sp)s(ecifying)29 b(Numeric)i(Argumen)m(ts)
+Ft(104)748 2572 y(8.4.5)93 b(Sp)s(ecifying)29 b(Numeric)i(Argumen)m(ts)
 23 b Fm(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)53 b Ft(103)748 2682 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s
+(.)53 b Ft(105)748 2682 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s
 (e)f(F)-8 b(or)31 b(Y)-8 b(ou)18 b Fm(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Ft(103)748 2791 y(8.4.7)93
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Ft(105)748 2791 y(8.4.7)93
 b(Keyb)s(oard)29 b(Macros)10 b Fm(.)16 b(.)f(.)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(.)40 b Ft(104)748 2901 y(8.4.8)93 b(Some)30
+(.)g(.)g(.)40 b Ft(106)748 2901 y(8.4.8)93 b(Some)30
 b(Miscellaneous)i(Commands)12 b Fm(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b Ft(105)449 3010 y(8.5)92
+(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b Ft(107)449 3010 y(8.5)92
 b(Readline)31 b(vi)f(Mo)s(de)c Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
 g(.)g(.)g(.)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(.)55 b Ft(107)449
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(109)449
 3120 y(8.6)92 b(Programmable)31 b(Completion)12 b Fm(.)j(.)g(.)g(.)g(.)
 g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(107)449 3230 y(8.7)92
+(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(109)449 3230 y(8.7)92
 b(Programmable)31 b(Completion)g(Builtins)12 b Fm(.)j(.)g(.)g(.)h(.)f
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42
-b Ft(109)150 3472 y Fr(9)135 b(Using)45 b(History)h(In)l(teractiv)l
+b Ft(111)150 3472 y Fr(9)135 b(Using)45 b(History)h(In)l(teractiv)l
 (ely)14 b Fn(.)22 b(.)d(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
-(.)58 b Fr(113)449 3609 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8
+(.)58 b Fr(115)449 3609 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8
 b(acilities)11 b Fm(.)19 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)41 b Ft(113)449 3719 y(9.2)92 b(Bash)30 b(History)h
+g(.)g(.)g(.)41 b Ft(115)449 3719 y(9.2)92 b(Bash)30 b(History)h
 (Builtins)9 b Fm(.)16 b(.)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(.)h(.)f(.)38 b Ft(113)449 3828 y(9.3)92 b(History)31
+g(.)h(.)f(.)38 b Ft(115)449 3828 y(9.3)92 b(History)31
 b(Expansion)d Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)58 b Ft(115)748 3938 y(9.3.1)93 b(Ev)m(en)m(t)31
+g(.)g(.)g(.)g(.)g(.)58 b Ft(117)748 3938 y(9.3.1)93 b(Ev)m(en)m(t)31
 b(Designators)21 b Fm(.)c(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51
-b Ft(115)748 4047 y(9.3.2)93 b(W)-8 b(ord)30 b(Designators)g
+b Ft(117)748 4047 y(9.3.2)93 b(W)-8 b(ord)30 b(Designators)g
 Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(116)748
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(118)748
 4157 y(9.3.3)93 b(Mo)s(di\014ers)27 b Fm(.)15 b(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)57 b Ft(117)150
+g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)57 b Ft(119)150
 4399 y Fr(10)135 b(Installing)46 b(Bash)30 b Fn(.)20
 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
-(.)h(.)f(.)g(.)h(.)f(.)h(.)74 b Fr(119)449 4536 y Ft(10.1)92
+(.)h(.)f(.)g(.)h(.)f(.)h(.)74 b Fr(121)449 4536 y Ft(10.1)92
 b(Basic)32 b(Installation)d Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Ft(119)449 4646
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Ft(121)449 4646
 y(10.2)92 b(Compilers)30 b(and)g(Options)22 b Fm(.)15
 b(.)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(.)h(.)51
-b Ft(119)449 4755 y(10.3)92 b(Compiling)31 b(F)-8 b(or)31
+b Ft(121)449 4755 y(10.3)92 b(Compiling)31 b(F)-8 b(or)31
 b(Multiple)g(Arc)m(hitectures)12 b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Ft(120)449
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Ft(122)449
 4865 y(10.4)92 b(Installation)32 b(Names)22 b Fm(.)16
 b(.)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(.)h(.)f(.)g(.)g(.)51
-b Ft(120)449 4975 y(10.5)92 b(Sp)s(ecifying)30 b(the)h(System)f(T)m(yp)
+b Ft(122)449 4975 y(10.5)92 b(Sp)s(ecifying)30 b(the)h(System)f(T)m(yp)
 s(e)11 b Fm(.)k(.)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(.)41 b Ft(120)449
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(122)449
 5084 y(10.6)92 b(Sharing)30 b(Defaults)21 b Fm(.)16 b(.)f(.)g(.)g(.)g
 (.)g(.)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(.)51
-b Ft(121)449 5194 y(10.7)92 b(Op)s(eration)30 b(Con)m(trols)12
+b Ft(123)449 5194 y(10.7)92 b(Op)s(eration)30 b(Con)m(trols)12
 b Fm(.)k(.)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(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)41 b Ft(121)449 5303 y(10.8)92 b(Optional)31 b(F)-8
+(.)41 b Ft(123)449 5303 y(10.8)92 b(Optional)31 b(F)-8
 b(eatures)17 b Fm(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)g(.)g(.)47 b Ft(121)p eop end
+g(.)g(.)g(.)g(.)g(.)47 b Ft(123)p eop end
 %%Page: -4 6
 TeXDict begin -4 5 bop 150 -116 a Ft(iv)2589 b(Bash)31
 b(Reference)g(Man)m(ual)150 83 y Fr(App)t(endix)44 b(A)99
 b(Rep)t(orting)46 b(Bugs)12 b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)g(.)h(.)f(.)h(.)56 b Fr(127)150 353 y(App)t(endix)44
+(.)h(.)f(.)g(.)h(.)f(.)h(.)56 b Fr(129)150 353 y(App)t(endix)44
 b(B)105 b(Ma)7 b(jor)46 b(Di\013erences)g(F)-11 b(rom)45
 b(The)f(Bourne)419 486 y(Shell)17 b Fn(.)j(.)f(.)h(.)f(.)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(.)g(.)h(.)f(.)h(.)f(.)61 b Fr(129)449 623
+h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)61 b Fr(131)449 623
 y Ft(B.1)92 b(Implemen)m(tation)31 b(Di\013erences)h(F)-8
 b(rom)31 b(The)f(SVR4.2)h(Shell)21 b Fm(.)15 b(.)g(.)g(.)g(.)50
-b Ft(133)150 865 y Fr(App)t(endix)44 b(C)104 b(Cop)l(ying)46
+b Ft(135)150 865 y Fr(App)t(endix)44 b(C)104 b(Cop)l(ying)46
 b(This)e(Man)l(ual)27 b Fn(.)20 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)71
-b Fr(135)449 1002 y Ft(C.1)91 b(GNU)31 b(F)-8 b(ree)32
+b Fr(137)449 1002 y Ft(C.1)91 b(GNU)31 b(F)-8 b(ree)32
 b(Do)s(cumen)m(tation)g(License)27 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)56
-b Ft(135)748 1112 y(C.1.1)92 b(ADDENDUM:)32 b(Ho)m(w)f(to)h(use)e(this)
+b Ft(137)748 1112 y(C.1.1)92 b(ADDENDUM:)32 b(Ho)m(w)f(to)h(use)e(this)
 g(License)h(for)f(y)m(our)930 1221 y(do)s(cumen)m(ts)c
 Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
 (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
-g(.)g(.)g(.)56 b Ft(141)150 1464 y Fr(Index)45 b(of)g(Shell)g(Builtin)h
+g(.)g(.)g(.)56 b Ft(143)150 1464 y Fr(Index)45 b(of)g(Shell)g(Builtin)h
 (Commands)27 b Fn(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)71
-b Fr(143)150 1733 y(Index)45 b(of)g(Shell)g(Reserv)l(ed)h(W)-11
+b Fr(145)150 1733 y(Index)45 b(of)g(Shell)g(Reserv)l(ed)h(W)-11
 b(ords)41 b Fn(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
-(.)85 b Fr(145)150 2003 y(P)l(arameter)47 b(and)d(V)-11
+(.)85 b Fr(147)150 2003 y(P)l(arameter)47 b(and)d(V)-11
 b(ariable)46 b(Index)27 b Fn(.)19 b(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
-(.)f(.)h(.)f(.)g(.)71 b Fr(147)150 2273 y(F)-11 b(unction)44
+(.)f(.)h(.)f(.)g(.)71 b Fr(149)150 2273 y(F)-11 b(unction)44
 b(Index)36 b Fn(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
 (.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)80
-b Fr(149)150 2543 y(Concept)45 b(Index)18 b Fn(.)i(.)f(.)h(.)f(.)g(.)h
+b Fr(151)150 2543 y(Concept)45 b(Index)18 b Fn(.)i(.)f(.)h(.)f(.)g(.)h
 (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
-h(.)f(.)g(.)h(.)f(.)h(.)62 b Fr(151)p eop end
+h(.)f(.)g(.)h(.)f(.)h(.)62 b Fr(153)p eop end
 %%Page: 1 7
 TeXDict begin 1 6 bop 150 -116 a Ft(Chapter)30 b(1:)41
 b(In)m(tro)s(duction)2592 b(1)150 299 y Fo(1)80 b(In)l(tro)t(duction)
@@ -4679,11 +4678,11 @@ Ft(and)g(incorp)s(orates)g(useful)g(features)g(from)g(the)g(Korn)g
 (shell)150 1500 y Fs(ksh)37 b Ft(and)h(the)g(C)g(shell)g
 Fs(csh)p Ft(.)64 b(It)38 b(is)g(in)m(tended)g(to)h(b)s(e)f(a)g
 (conforman)m(t)h(implemen)m(tation)h(of)e(the)g Fl(ieee)150
-1610 y(posix)44 b Ft(Shell)h(and)g(T)-8 b(o)s(ols)46
-b(sp)s(eci\014cation)f(\()p Fl(ieee)g Ft(W)-8 b(orking)47
-b(Group)d(1003.2\).)88 b(It)45 b(o\013ers)h(functional)150
-1719 y(impro)m(v)m(emen)m(ts)32 b(o)m(v)m(er)f Fs(sh)f
-Ft(for)g(b)s(oth)g(in)m(teractiv)m(e)j(and)d(programming)g(use.)275
+1610 y(posix)c Ft(Shell)g(and)g(T)-8 b(o)s(ols)35 b(p)s(ortion)f(of)g
+(the)h Fl(ieee)f(posix)f Ft(sp)s(eci\014cation)j(\()p
+Fl(ieee)e Ft(Standard)f(1003.1\).)56 b(It)150 1719 y(o\013ers)31
+b(functional)f(impro)m(v)m(emen)m(ts)i(o)m(v)m(er)g Fs(sh)d
+Ft(for)i(b)s(oth)e(in)m(teractiv)m(e)k(and)d(programming)g(use.)275
 1858 y(While)h(the)g Fl(gnu)f Ft(op)s(erating)h(system)g(pro)m(vides)f
 (other)h(shells,)g(including)f(a)h(v)m(ersion)g(of)g
 Fs(csh)p Ft(,)f(Bash)150 1968 y(is)j(the)h(default)f(shell.)49
@@ -4765,60 +4764,60 @@ TeXDict begin 3 8 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(De\014nitions)2662 b(3)150 299 y Fo(2)80 b(De\014nitions)275
 527 y Ft(These)30 b(de\014nitions)g(are)g(used)g(throughout)g(the)g
 (remainder)g(of)h(this)f(man)m(ual.)150 684 y Fs(POSIX)240
-b Ft(A)41 b(family)g(of)g(op)s(en)g(system)g(standards)f(based)g(on)h
-(Unix.)72 b(Bash)41 b(is)g(concerned)g(with)630 794 y
-Fl(posix)30 b Ft(1003.2,)j(the)d(Shell)h(and)e(T)-8 b(o)s(ols)31
-b(Standard.)150 950 y Fs(blank)240 b Ft(A)30 b(space)h(or)g(tab)f(c)m
-(haracter.)150 1107 y Fs(builtin)144 b Ft(A)35 b(command)g(that)g(is)g
-(implemen)m(ted)g(in)m(ternally)h(b)m(y)f(the)g(shell)g(itself,)i
-(rather)d(than)h(b)m(y)630 1217 y(an)30 b(executable)i(program)e
-(somewhere)h(in)f(the)g(\014le)h(system.)150 1374 y Fs(control)d
-(operator)630 1484 y Ft(A)c Fs(word)e Ft(that)i(p)s(erforms)f(a)h(con)m
-(trol)h(function.)38 b(It)24 b(is)f(a)h Fs(newline)e
-Ft(or)i(one)g(of)f(the)h(follo)m(wing:)630 1593 y(`)p
-Fs(||)p Ft(',)31 b(`)p Fs(&&)p Ft(',)f(`)p Fs(&)p Ft(',)h(`)p
-Fs(;)p Ft(',)g(`)p Fs(;;)p Ft(',)f(`)p Fs(|)p Ft(',)h(`)p
-Fs(\()p Ft(',)g(or)f(`)p Fs(\))p Ft('.)150 1750 y Fs(exit)f(status)630
-1860 y Ft(The)f(v)-5 b(alue)29 b(returned)e(b)m(y)h(a)h(command)f(to)h
-(its)g(caller.)41 b(The)28 b(v)-5 b(alue)29 b(is)f(restricted)h(to)h
-(eigh)m(t)630 1969 y(bits,)h(so)f(the)h(maxim)m(um)f(v)-5
-b(alue)31 b(is)f(255.)150 2126 y Fs(field)240 b Ft(A)27
-b(unit)g(of)g(text)h(that)g(is)f(the)g(result)g(of)g(one)h(of)f(the)g
-(shell)g(expansions.)40 b(After)27 b(expansion,)630 2236
-y(when)e(executing)h(a)g(command,)h(the)f(resulting)f(\014elds)g(are)h
-(used)f(as)h(the)g(command)f(name)630 2346 y(and)30 b(argumen)m(ts.)150
-2503 y Fs(filename)96 b Ft(A)30 b(string)h(of)f(c)m(haracters)i(used)e
-(to)h(iden)m(tify)g(a)f(\014le.)150 2659 y Fs(job)336
-b Ft(A)31 b(set)h(of)f(pro)s(cesses)g(comprising)g(a)g(pip)s(eline,)g
-(and)g(an)m(y)g(pro)s(cesses)g(descended)g(from)f(it,)630
-2769 y(that)h(are)g(all)g(in)f(the)h(same)f(pro)s(cess)g(group.)150
-2926 y Fs(job)f(control)630 3036 y Ft(A)22 b(mec)m(hanism)g(b)m(y)f
-(whic)m(h)h(users)f(can)h(selectiv)m(ely)i(stop)e(\(susp)s(end\))e(and)
-h(restart)i(\(resume\))630 3145 y(execution)32 b(of)e(pro)s(cesses.)150
-3302 y Fs(metacharacter)630 3412 y Ft(A)25 b(c)m(haracter)i(that,)g
-(when)d(unquoted,)i(separates)g(w)m(ords.)38 b(A)26 b(metac)m(haracter)
-i(is)d(a)g Fs(blank)630 3521 y Ft(or)30 b(one)h(of)g(the)f(follo)m
-(wing)i(c)m(haracters:)42 b(`)p Fs(|)p Ft(',)31 b(`)p
-Fs(&)p Ft(',)g(`)p Fs(;)p Ft(',)g(`)p Fs(\()p Ft(',)f(`)p
-Fs(\))p Ft(',)h(`)p Fs(<)p Ft(',)g(or)f(`)p Fs(>)p Ft('.)150
-3678 y Fs(name)288 b Ft(A)37 b Fs(word)f Ft(consisting)i(solely)h(of)e
-(letters,)j(n)m(um)m(b)s(ers,)e(and)f(underscores,)h(and)f(b)s
-(eginning)630 3788 y(with)23 b(a)g(letter)h(or)f(underscore.)38
-b Fs(Name)p Ft(s)22 b(are)h(used)f(as)i(shell)f(v)-5
-b(ariable)24 b(and)e(function)h(names.)630 3898 y(Also)31
-b(referred)f(to)h(as)f(an)h Fs(identifier)p Ft(.)150
-4055 y Fs(operator)96 b Ft(A)38 b Fs(control)28 b(operator)36
-b Ft(or)h(a)i Fs(redirection)27 b(operator)p Ft(.)61
-b(See)38 b(Section)g(3.6)h([Redirec-)630 4164 y(tions],)31
-b(page)g(25,)h(for)e(a)h(list)g(of)f(redirection)h(op)s(erators.)150
-4321 y Fs(process)d(group)630 4431 y Ft(A)i(collection)k(of)c(related)h
-(pro)s(cesses)g(eac)m(h)g(ha)m(ving)g(the)g(same)f(pro)s(cess)g(group)g
-Fl(id)p Ft(.)150 4588 y Fs(process)e(group)h(ID)630 4697
-y Ft(A)h(unique)g(iden)m(tifer)h(that)g(represen)m(ts)f(a)h
-Fs(process)d(group)h Ft(during)g(its)i(lifetime.)150
-4854 y Fs(reserved)d(word)630 4964 y Ft(A)h Fs(word)e
-Ft(that)i(has)f(a)h(sp)s(ecial)g(meaning)f(to)h(the)g(shell.)40
-b(Most)30 b(reserv)m(ed)e(w)m(ords)g(in)m(tro)s(duce)630
+b Ft(A)27 b(family)g(of)g(op)s(en)f(system)g(standards)g(based)g(on)h
+(Unix.)39 b(Bash)27 b(is)g(primarily)f(concerned)630
+794 y(with)k(the)h(Shell)f(and)g(Utilities)i(p)s(ortion)e(of)h(the)f
+Fl(posix)g Ft(1003.1)j(standard.)150 950 y Fs(blank)240
+b Ft(A)30 b(space)h(or)g(tab)f(c)m(haracter.)150 1107
+y Fs(builtin)144 b Ft(A)35 b(command)g(that)g(is)g(implemen)m(ted)g(in)
+m(ternally)h(b)m(y)f(the)g(shell)g(itself,)i(rather)d(than)h(b)m(y)630
+1217 y(an)30 b(executable)i(program)e(somewhere)h(in)f(the)g(\014le)h
+(system.)150 1374 y Fs(control)d(operator)630 1484 y
+Ft(A)c Fs(word)e Ft(that)i(p)s(erforms)f(a)h(con)m(trol)h(function.)38
+b(It)24 b(is)f(a)h Fs(newline)e Ft(or)i(one)g(of)f(the)h(follo)m(wing:)
+630 1593 y(`)p Fs(||)p Ft(',)31 b(`)p Fs(&&)p Ft(',)f(`)p
+Fs(&)p Ft(',)h(`)p Fs(;)p Ft(',)g(`)p Fs(;;)p Ft(',)f(`)p
+Fs(|)p Ft(',)h(`)p Fs(\()p Ft(',)g(or)f(`)p Fs(\))p Ft('.)150
+1750 y Fs(exit)f(status)630 1860 y Ft(The)f(v)-5 b(alue)29
+b(returned)e(b)m(y)h(a)h(command)f(to)h(its)g(caller.)41
+b(The)28 b(v)-5 b(alue)29 b(is)f(restricted)h(to)h(eigh)m(t)630
+1969 y(bits,)h(so)f(the)h(maxim)m(um)f(v)-5 b(alue)31
+b(is)f(255.)150 2126 y Fs(field)240 b Ft(A)27 b(unit)g(of)g(text)h
+(that)g(is)f(the)g(result)g(of)g(one)h(of)f(the)g(shell)g(expansions.)
+40 b(After)27 b(expansion,)630 2236 y(when)e(executing)h(a)g(command,)h
+(the)f(resulting)f(\014elds)g(are)h(used)f(as)h(the)g(command)f(name)
+630 2346 y(and)30 b(argumen)m(ts.)150 2503 y Fs(filename)96
+b Ft(A)30 b(string)h(of)f(c)m(haracters)i(used)e(to)h(iden)m(tify)g(a)f
+(\014le.)150 2659 y Fs(job)336 b Ft(A)31 b(set)h(of)f(pro)s(cesses)g
+(comprising)g(a)g(pip)s(eline,)g(and)g(an)m(y)g(pro)s(cesses)g
+(descended)g(from)f(it,)630 2769 y(that)h(are)g(all)g(in)f(the)h(same)f
+(pro)s(cess)g(group.)150 2926 y Fs(job)f(control)630
+3036 y Ft(A)22 b(mec)m(hanism)g(b)m(y)f(whic)m(h)h(users)f(can)h
+(selectiv)m(ely)i(stop)e(\(susp)s(end\))e(and)h(restart)i(\(resume\))
+630 3145 y(execution)32 b(of)e(pro)s(cesses.)150 3302
+y Fs(metacharacter)630 3412 y Ft(A)25 b(c)m(haracter)i(that,)g(when)d
+(unquoted,)i(separates)g(w)m(ords.)38 b(A)26 b(metac)m(haracter)i(is)d
+(a)g Fs(blank)630 3521 y Ft(or)30 b(one)h(of)g(the)f(follo)m(wing)i(c)m
+(haracters:)42 b(`)p Fs(|)p Ft(',)31 b(`)p Fs(&)p Ft(',)g(`)p
+Fs(;)p Ft(',)g(`)p Fs(\()p Ft(',)f(`)p Fs(\))p Ft(',)h(`)p
+Fs(<)p Ft(',)g(or)f(`)p Fs(>)p Ft('.)150 3678 y Fs(name)288
+b Ft(A)37 b Fs(word)f Ft(consisting)i(solely)h(of)e(letters,)j(n)m(um)m
+(b)s(ers,)e(and)f(underscores,)h(and)f(b)s(eginning)630
+3788 y(with)23 b(a)g(letter)h(or)f(underscore.)38 b Fs(Name)p
+Ft(s)22 b(are)h(used)f(as)i(shell)f(v)-5 b(ariable)24
+b(and)e(function)h(names.)630 3898 y(Also)31 b(referred)f(to)h(as)f(an)
+h Fs(identifier)p Ft(.)150 4055 y Fs(operator)96 b Ft(A)38
+b Fs(control)28 b(operator)36 b Ft(or)h(a)i Fs(redirection)27
+b(operator)p Ft(.)61 b(See)38 b(Section)g(3.6)h([Redirec-)630
+4164 y(tions],)31 b(page)g(25,)h(for)e(a)h(list)g(of)f(redirection)h
+(op)s(erators.)150 4321 y Fs(process)d(group)630 4431
+y Ft(A)i(collection)k(of)c(related)h(pro)s(cesses)g(eac)m(h)g(ha)m
+(ving)g(the)g(same)f(pro)s(cess)g(group)g Fl(id)p Ft(.)150
+4588 y Fs(process)e(group)h(ID)630 4697 y Ft(A)h(unique)g(iden)m(tifer)
+h(that)g(represen)m(ts)f(a)h Fs(process)d(group)h Ft(during)g(its)i
+(lifetime.)150 4854 y Fs(reserved)d(word)630 4964 y Ft(A)h
+Fs(word)e Ft(that)i(has)f(a)h(sp)s(ecial)g(meaning)f(to)h(the)g(shell.)
+40 b(Most)30 b(reserv)m(ed)e(w)m(ords)g(in)m(tro)s(duce)630
 5073 y(shell)j(\015o)m(w)f(con)m(trol)i(constructs,)f(suc)m(h)f(as)g
 Fs(for)g Ft(and)g Fs(while)p Ft(.)150 5230 y Fs(return)f(status)630
 5340 y Ft(A)h(synon)m(ym)g(for)g Fs(exit)g(status)p Ft(.)p
@@ -4829,9 +4828,9 @@ b(Reference)g(Man)m(ual)150 299 y Fs(signal)192 b Ft(A)40
 b(mec)m(hanism)h(b)m(y)e(whic)m(h)h(a)h(pro)s(cess)e(ma)m(y)i(b)s(e)e
 (noti\014ed)h(b)m(y)g(the)h(k)m(ernel)f(of)g(an)g(ev)m(en)m(t)630
 408 y(o)s(ccurring)30 b(in)g(the)h(system.)150 568 y
-Fs(special)d(builtin)630 677 y Ft(A)e(shell)h(builtin)f(command)g(that)
-h(has)f(b)s(een)f(classi\014ed)i(as)f(sp)s(ecial)h(b)m(y)f(the)h
-Fl(posix)e Ft(1003.2)630 787 y(standard.)150 946 y Fs(token)240
+Fs(special)d(builtin)630 677 y Ft(A)j(shell)f(builtin)g(command)h(that)
+g(has)f(b)s(een)g(classi\014ed)h(as)g(sp)s(ecial)g(b)m(y)f(the)h
+Fl(posix)f Ft(stan-)630 787 y(dard.)150 946 y Fs(token)240
 b Ft(A)38 b(sequence)h(of)f(c)m(haracters)h(considered)f(a)h(single)g
 (unit)e(b)m(y)h(the)h(shell.)64 b(It)38 b(is)g(either)h(a)630
 1056 y Fs(word)29 b Ft(or)i(an)f Fs(operator)p Ft(.)150
@@ -4882,14 +4881,14 @@ h(follo)m(wing:)199 3513 y(1.)61 b(Reads)42 b(its)h(input)e(from)h(a)g
 (\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(32\),)k
 (from)41 b(a)i(string)330 3623 y(supplied)26 b(as)i(an)f(argumen)m(t)g
 (to)h(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option)f(\(see)g
-(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)330 3732 y(page)j(65\),)h(or)
+(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)330 3732 y(page)j(67\),)h(or)
 e(from)g(the)h(user's)f(terminal.)199 3869 y(2.)61 b(Breaks)43
 b(the)g(input)f(in)m(to)h(w)m(ords)f(and)g(op)s(erators,)k(ob)s(eying)d
 (the)g(quoting)g(rules)f(describ)s(ed)f(in)330 3978 y(Section)27
 b(3.1.2)i([Quoting],)f(page)f(6.)40 b(These)26 b(tok)m(ens)i(are)f
 (separated)g(b)m(y)f Fs(metacharacters)p Ft(.)36 b(Alias)330
 4088 y(expansion)30 b(is)h(p)s(erformed)d(b)m(y)j(this)f(step)g(\(see)i
-(Section)f(6.6)g([Aliases],)i(page)e(73\).)199 4224 y(3.)61
+(Section)f(6.6)g([Aliases],)i(page)e(75\).)199 4224 y(3.)61
 b(P)m(arses)35 b(the)g(tok)m(ens)g(in)m(to)h(simple)e(and)g(comp)s
 (ound)f(commands)h(\(see)h(Section)h(3.2)f([Shell)g(Com-)330
 4334 y(mands],)30 b(page)h(8\).)199 4470 y(4.)61 b(P)m(erforms)40
@@ -4923,11 +4922,11 @@ e(sp)s(ecial)i(meaning)150 995 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g
 (b)s(e)g(quoted)g(if)h(it)g(is)f(to)h(represen)m(t)g(itself.)68
 b(When)39 b(the)h(command)f(history)150 1105 y(expansion)i(facilities)j
 (are)e(b)s(eing)f(used)g(\(see)h(Section)h(9.3)f([History)h(In)m
-(teraction],)j(page)c(115\),)47 b(the)150 1214 y Fq(history)30
+(teraction],)j(page)c(117\),)47 b(the)150 1214 y Fq(history)30
 b(expansion)h Ft(c)m(haracter,)h(usually)f(`)p Fs(!)p
 Ft(',)g(m)m(ust)f(b)s(e)g(quoted)h(to)g(prev)m(en)m(t)g(history)g
 (expansion.)41 b(See)150 1324 y(Section)22 b(9.1)g([Bash)f(History)h(F)
--8 b(acilities],)26 b(page)c(113,)j(for)20 b(more)h(details)h
+-8 b(acilities],)26 b(page)c(115,)j(for)20 b(more)h(details)h
 (concerning)g(history)f(expansion.)275 1453 y(There)37
 b(are)h(three)f(quoting)h(mec)m(hanisms:)56 b(the)38
 b Fq(escap)s(e)g(c)m(haracter)p Ft(,)j(single)d(quotes,)i(and)d(double)
@@ -5031,7 +5030,7 @@ Fs(TEXTDOMAIN)p Ft(.mo.)150 4520 y Fk(3.1.3)63 b(Commen)m(ts)275
 4792 y Ft(In)34 b(a)j(non-in)m(teractiv)m(e)h(shell,)f(or)f(an)f(in)m
 (teractiv)m(e)k(shell)d(in)f(whic)m(h)h(the)f Fs(interactive_comments)
 150 4902 y Ft(option)j(to)g(the)f Fs(shopt)f Ft(builtin)h(is)g(enabled)
-g(\(see)h(Section)h(4.2)f([Bash)f(Builtins],)j(page)e(39\),)j(a)c(w)m
+g(\(see)h(Section)h(4.2)f([Bash)f(Builtins],)j(page)e(41\),)j(a)c(w)m
 (ord)150 5011 y(b)s(eginning)26 b(with)g(`)p Fs(#)p Ft(')g(causes)h
 (that)f(w)m(ord)g(and)g(all)h(remaining)g(c)m(haracters)g(on)f(that)h
 (line)g(to)g(b)s(e)f(ignored.)150 5121 y(An)43 b(in)m(teractiv)m(e)j
@@ -5040,7 +5039,7 @@ Ft(option)44 b(enabled)f(do)s(es)g(not)g(allo)m(w)150
 5230 y(commen)m(ts.)56 b(The)34 b Fs(interactive_comments)c
 Ft(option)35 b(is)g(on)g(b)m(y)g(default)g(in)g(in)m(teractiv)m(e)j
 (shells.)55 b(See)150 5340 y(Section)30 b(6.3)f([In)m(teractiv)m(e)j
-(Shells],)d(page)h(69,)g(for)e(a)i(description)e(of)h(what)g(mak)m(es)h
+(Shells],)d(page)h(71,)g(for)e(a)i(description)e(of)h(what)g(mak)m(es)h
 (a)f(shell)g(in)m(teractiv)m(e.)p eop end
 %%Page: 8 14
 TeXDict begin 8 13 bop 150 -116 a Ft(8)2617 b(Bash)31
@@ -5089,7 +5088,7 @@ Fl(posix)p Ft(.)57 b(The)35 b Fs(TIMEFORMAT)e Ft(v)-5
 b(ariable)37 b(ma)m(y)g(b)s(e)e(set)h(to)h(a)f(format)g(string)g(that)
 150 3845 y(sp)s(eci\014es)29 b(ho)m(w)g(the)g(timing)g(information)h
 (should)d(b)s(e)i(displa)m(y)m(ed.)41 b(See)29 b(Section)h(5.2)g([Bash)
-f(V)-8 b(ariables],)150 3955 y(page)29 b(55,)h(for)e(a)g(description)h
+f(V)-8 b(ariables],)150 3955 y(page)29 b(57,)h(for)e(a)g(description)h
 (of)f(the)g(a)m(v)-5 b(ailable)31 b(formats.)40 b(The)28
 b(use)g(of)g Fs(time)f Ft(as)i(a)f(reserv)m(ed)h(w)m(ord)f(p)s(er-)150
 4064 y(mits)g(the)g(timing)g(of)g(shell)g(builtins,)g(shell)g
@@ -5105,7 +5104,7 @@ s(eline)g(is)g(executed)h(in)f(its)g(o)m(wn)h(subshell)e(\(see)i
 g(is)f(the)h(exit)h(status)f(of)g(the)150 4792 y(last)c(command)f(in)g
 (the)g(pip)s(eline,)g(unless)g(the)g Fs(pipefail)e Ft(option)j(is)f
 (enabled)g(\(see)h(Section)g(4.3)g([The)150 4902 y(Set)i(Builtin],)j
-(page)e(51\).)53 b(If)34 b Fs(pipefail)e Ft(is)i(enabled,)h(the)g(pip)s
+(page)e(53\).)53 b(If)34 b Fs(pipefail)e Ft(is)i(enabled,)h(the)g(pip)s
 (eline's)f(return)f(status)h(is)h(the)f(v)-5 b(alue)35
 b(of)150 5011 y(the)d(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g
 (with)e(a)i(non-zero)f(status,)h(or)f(zero)h(if)f(all)h(commands)f
@@ -5140,7 +5139,7 @@ Fq(bac)m(kground)p Ft(.)150 1511 y(The)f(shell)h(do)s(es)f(not)h(w)m
 (ait)g(for)f(the)h(command)f(to)i(\014nish,)d(and)h(the)h(return)e
 (status)i(is)g(0)g(\(true\).)40 b(When)150 1621 y(job)g(con)m(trol)h
 (is)g(not)f(activ)m(e)i(\(see)f(Chapter)f(7)h([Job)f(Con)m(trol],)j
-(page)e(83\),)j(the)d(standard)e(input)g(for)150 1730
+(page)e(85\),)j(the)d(standard)e(input)g(for)150 1730
 y(async)m(hronous)k(commands,)k(in)d(the)f(absence)i(of)f(an)m(y)g
 (explicit)h(redirections,)j(is)43 b(redirected)h(from)150
 1840 y Fs(/dev/null)p Ft(.)275 1979 y(Commands)19 b(separated)j(b)m(y)f
@@ -5226,7 +5225,7 @@ b(;)g(do)g Fj(commands)57 b Fs(;)47 b(done)630 2795 y
 Ft(First,)38 b(the)f(arithmetic)h(expression)e Fq(expr1)43
 b Ft(is)36 b(ev)-5 b(aluated)38 b(according)f(to)g(the)g(rules)f(de-)
 630 2905 y(scrib)s(ed)41 b(b)s(elo)m(w)h(\(see)h(Section)g(6.5)g
-([Shell)g(Arithmetic],)j(page)d(72\).)77 b(The)42 b(arithmetic)630
+([Shell)g(Arithmetic],)j(page)d(74\).)77 b(The)42 b(arithmetic)630
 3014 y(expression)33 b Fq(expr2)41 b Ft(is)34 b(then)f(ev)-5
 b(aluated)35 b(rep)s(eatedly)f(un)m(til)g(it)g(ev)-5
 b(aluates)35 b(to)g(zero.)51 b(Eac)m(h)630 3124 y(time)23
@@ -5240,7 +5239,7 @@ b(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f(in)630
 3453 y Fq(list)i Ft(that)e(is)f(executed,)i(or)e(false)h(if)g(an)m(y)f
 (of)h(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)275
 3613 y(The)26 b Fs(break)g Ft(and)h Fs(continue)e Ft(builtins)i(\(see)h
-(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(33\))g(ma)m(y)
+(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(35\))g(ma)m(y)
 150 3723 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150
 3949 y Fk(3.2.4.2)63 b(Conditional)42 b(Constructs)150
 4193 y Fs(if)384 b Ft(The)30 b(syn)m(tax)h(of)f(the)h
@@ -5277,7 +5276,7 @@ Fq(command-list)j Ft(corresp)s(onding)33 b(to)j(the)e(\014rst)g
 Fq(pat-)630 1167 y(tern)g Ft(that)h(matc)m(hes)h Fq(w)m(ord)p
 Ft(.)52 b(If)34 b(the)g(shell)h(option)g Fs(nocasematch)c
 Ft(\(see)k(the)g(description)630 1277 y(of)e Fs(shopt)e
-Ft(in)h(Section)h(4.2)h([Bash)f(Builtins],)g(page)h(39\))f(is)g
+Ft(in)h(Section)h(4.2)h([Bash)f(Builtins],)g(page)h(41\))f(is)g
 (enabled,)g(the)g(matc)m(h)g(is)g(p)s(er-)630 1386 y(formed)e(without)h
 (regard)g(to)h(the)f(case)h(of)f(alphab)s(etic)h(c)m(haracters.)47
 b(The)31 b(`)p Fs(|)p Ft(')h(is)g(used)f(to)630 1496
@@ -5352,13 +5351,13 @@ g(\\\($REPLY\\\))870 1113 y(break;)870 1223 y(done)150
 b Fs(\)\))630 1645 y Ft(The)33 b(arithmetic)i Fq(expression)f
 Ft(is)f(ev)-5 b(aluated)35 b(according)g(to)f(the)g(rules)f(describ)s
 (ed)g(b)s(elo)m(w)630 1755 y(\(see)j(Section)f(6.5)h([Shell)f
-(Arithmetic],)i(page)f(72\).)55 b(If)34 b(the)h(v)-5
+(Arithmetic],)i(page)f(74\).)55 b(If)34 b(the)h(v)-5
 b(alue)35 b(of)g(the)g(expression)g(is)630 1864 y(non-zero,)27
 b(the)f(return)e(status)i(is)g(0;)h(otherwise)f(the)g(return)e(status)i
 (is)g(1.)39 b(This)25 b(is)g(exactly)630 1974 y(equiv)-5
 b(alen)m(t)32 b(to)870 2107 y Fs(let)47 b(")p Fj(expression)11
 b Fs(")630 2240 y Ft(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i
-(page)f(39,)i(for)c(a)i(full)f(description)g(of)g(the)h
+(page)f(41,)i(for)c(a)i(full)f(description)g(of)g(the)h
 Fs(let)e Ft(builtin.)150 2397 y Fs([[...)o(]])870 2530
 y([[)47 b Fj(expression)56 b Fs(]])630 2663 y Ft(Return)25
 b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5
@@ -5366,7 +5365,7 @@ b(aluation)27 b(of)e(the)h(conditional)h(expres-)630
 2772 y(sion)j Fq(expression)p Ft(.)41 b(Expressions)29
 b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m
 (w)h(in)630 2882 y(Section)36 b(6.4)h([Bash)f(Conditional)g
-(Expressions],)h(page)f(71.)57 b(W)-8 b(ord)36 b(splitting)h(and)e
+(Expressions],)h(page)f(73.)57 b(W)-8 b(ord)36 b(splitting)h(and)e
 (\014le-)630 2992 y(name)24 b(expansion)h(are)g(not)f(p)s(erformed)f
 (on)h(the)h(w)m(ords)f(b)s(et)m(w)m(een)h(the)g(`)p Fs([[)p
 Ft(')f(and)g(`)p Fs(]])p Ft(';)i(tilde)630 3101 y(expansion,)31
@@ -5383,15 +5382,15 @@ g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
 3673 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)c(23.)
 59 b(If)36 b(the)g(shell)g(option)h Fs(nocasematch)630
 3782 y Ft(\(see)27 b(the)e(description)h(of)g Fs(shopt)e
-Ft(in)h(Section)i(4.2)f([Bash)g(Builtins],)i(page)e(39\))h(is)f
+Ft(in)h(Section)i(4.2)f([Bash)g(Builtins],)i(page)e(41\))h(is)f
 (enabled,)630 3892 y(the)40 b(matc)m(h)h(is)f(p)s(erformed)f(without)h
 (regard)g(to)h(the)f(case)h(of)g(alphab)s(etic)f(c)m(haracters.)630
-4001 y(The)i(return)g(v)-5 b(alue)43 b(is)g(0)h(if)e(the)h(string)g
-(matc)m(hes)h(or)f(do)s(es)g(not)g(matc)m(h)h(the)f(pattern,)630
-4111 y(resp)s(ectiv)m(ely)-8 b(,)34 b(and)d(1)g(otherwise.)45
-b(An)m(y)31 b(part)h(of)f(the)h(pattern)g(ma)m(y)g(b)s(e)f(quoted)g(to)
-h(force)630 4221 y(it)f(to)g(b)s(e)f(matc)m(hed)h(as)g(a)f(string.)630
-4354 y(An)j(additional)i(binary)e(op)s(erator,)i(`)p
+4001 y(The)34 b(return)g(v)-5 b(alue)35 b(is)g(0)g(if)f(the)h(string)g
+(matc)m(hes)g(\(`)p Fs(==)p Ft('\))h(or)e(do)s(es)h(not)g(matc)m(h)g
+(\(`)p Fs(!=)p Ft('\)the)630 4111 y(pattern,)30 b(and)e(1)h(otherwise.)
+41 b(An)m(y)29 b(part)g(of)g(the)g(pattern)g(ma)m(y)g(b)s(e)g(quoted)g
+(to)g(force)h(it)f(to)630 4221 y(b)s(e)h(matc)m(hed)h(as)g(a)f(string.)
+630 4354 y(An)j(additional)i(binary)e(op)s(erator,)i(`)p
 Fs(=~)p Ft(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
 (precedence)h(as)630 4463 y(`)p Fs(==)p Ft(')29 b(and)f(`)p
 Fs(!=)p Ft('.)40 b(When)29 b(it)g(is)g(used,)f(the)h(string)g(to)h(the)
@@ -5405,7 +5404,7 @@ b(is)f(0)h(if)f(the)g(string)h(matc)m(hes)g(the)f(pattern,)j(and)d(1)h
 (re-)630 4902 y(turn)32 b(v)-5 b(alue)34 b(is)f(2.)49
 b(If)33 b(the)g(shell)g(option)h Fs(nocasematch)c Ft(\(see)k(the)f
 (description)g(of)g Fs(shopt)630 5011 y Ft(in)43 b(Section)h(4.2)g
-([Bash)f(Builtins],)k(page)d(39\))g(is)f(enabled,)j(the)e(matc)m(h)f
+([Bash)f(Builtins],)k(page)d(41\))g(is)f(enabled,)j(the)e(matc)m(h)f
 (is)g(p)s(erformed)630 5121 y(without)d(regard)g(to)h(the)f(case)h(of)g
 (alphab)s(etic)f(c)m(haracters.)72 b(Substrings)38 b(matc)m(hed)j(b)m
 (y)630 5230 y(paren)m(thesized)j(sub)s(expressions)e(within)i(the)g
@@ -5508,1469 +5507,1477 @@ Fq(name)150 1979 y Ft(is)37 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)g
 (a)h(command.)61 b(An)m(y)37 b(redirections)h(\(see)g(Section)g(3.6)g
 ([Redirections],)150 2089 y(page)31 b(25\))h(asso)s(ciated)g(with)e
 (the)g(shell)h(function)f(are)h(p)s(erformed)d(when)i(the)g(function)g
-(is)h(executed.)275 2235 y(The)26 b(exit)i(status)g(of)f(a)h(function)f
-(de\014nition)g(is)g(zero)h(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)
-g(or)g(a)h(readonly)150 2345 y(function)k(with)f(the)i(same)f(name)g
-(already)h(exists.)46 b(When)32 b(executed,)h(the)f(exit)h(status)g(of)
-f(a)g(function)150 2454 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g
-(command)f(executed)i(in)e(the)g(b)s(o)s(dy)-8 b(.)275
-2600 y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)g(most)g
-(common)g(usage)g(the)g(curly)f(braces)h(that)g(surround)150
-2710 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g
-(separated)h(from)f(the)g(b)s(o)s(dy)f(b)m(y)h Fs(blank)p
-Ft(s)f(or)h(newlines.)62 b(This)150 2819 y(is)38 b(b)s(ecause)g(the)h
-(braces)f(are)h(reserv)m(ed)f(w)m(ords)g(and)f(are)i(only)f(recognized)
-i(as)e(suc)m(h)g(when)f(they)i(are)150 2929 y(separated)e(b)m(y)g
-(whitespace.)61 b(Also,)39 b(when)d(using)g(the)h(braces,)i(the)e
-Fq(list)j Ft(m)m(ust)c(b)s(e)g(terminated)i(b)m(y)f(a)150
-3039 y(semicolon,)32 b(a)f(`)p Fs(&)p Ft(',)f(or)h(a)g(newline.)275
-3185 y(When)h(a)i(function)f(is)g(executed,)i(the)e(argumen)m(ts)h(to)g
-(the)f(function)g(b)s(ecome)g(the)h(p)s(ositional)g(pa-)150
-3294 y(rameters)42 b(during)e(its)i(execution)h(\(see)f(Section)g
-(3.4.1)h([P)m(ositional)h(P)m(arameters],)i(page)c(15\).)75
-b(The)150 3404 y(sp)s(ecial)37 b(parameter)f(`)p Fs(#)p
-Ft(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)s(er)f(of)h(p)s
-(ositional)h(parameters)f(is)g(up)s(dated)f(to)150 3513
-y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35 b(parameter)h
-Fs(0)f Ft(is)g(unc)m(hanged.)54 b(The)35 b(\014rst)f(elemen)m(t)j(of)e
-(the)g Fs(FUNCNAME)150 3623 y Ft(v)-5 b(ariable)27 b(is)g(set)g(to)h
-(the)f(name)f(of)h(the)g(function)f(while)h(the)g(function)f(is)h
-(executing.)40 b(All)28 b(other)f(asp)s(ects)150 3733
-y(of)32 b(the)g(shell)g(execution)i(en)m(vironmen)m(t)e(are)h(iden)m
-(tical)g(b)s(et)m(w)m(een)g(a)f(function)g(and)f(its)i(caller)g(with)f
-(the)150 3842 y(exception)h(that)f(the)g Fs(DEBUG)f Ft(and)g
-Fs(RETURN)f Ft(traps)h(are)h(not)g(inherited)g(unless)f(the)h(function)
-f(has)h(b)s(een)150 3952 y(giv)m(en)h(the)f Fs(trace)e
-Ft(attribute)j(using)e(the)h Fs(declare)e Ft(builtin)h(or)h(the)g
-Fs(-o)e(functrace)f Ft(option)j(has)g(b)s(een)150 4061
-y(enabled)39 b(with)f(the)h Fs(set)e Ft(builtin,)k(\(in)e(whic)m(h)f
-(case)i(all)f(functions)f(inherit)h(the)f Fs(DEBUG)g
-Ft(and)g Fs(RETURN)150 4171 y Ft(traps\).)66 b(See)40
-b(Section)f(4.1)h([Bourne)f(Shell)g(Builtins],)j(page)e(33,)i(for)d
-(the)g(description)g(of)g(the)g Fs(trap)150 4281 y Ft(builtin.)275
-4427 y(If)e(the)g(builtin)g(command)h Fs(return)d Ft(is)j(executed)g
-(in)g(a)g(function,)h(the)e(function)h(completes)h(and)150
-4536 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f(after)i
-(the)f(function)f(call.)40 b(An)m(y)24 b(command)f(asso)s(ciated)150
-4646 y(with)36 b(the)h Fs(RETURN)d Ft(trap)i(is)h(executed)g(b)s(efore)
-f(execution)i(resumes.)57 b(When)37 b(a)f(function)g(completes,)150
-4755 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s(ositional)h(parameters)f
-(and)g(the)g(sp)s(ecial)h(parameter)f(`)p Fs(#)p Ft(')g(are)h(restored)
-f(to)h(the)150 4865 y(v)-5 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g
-(function's)f(execution.)40 b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h
-(is)f(giv)m(en)h(to)g Fs(return)p Ft(,)150 4975 y(that)j(is)g(the)f
-(function's)h(return)e(status;)j(otherwise)f(the)f(function's)h(return)
-e(status)i(is)f(the)h(exit)h(status)150 5084 y(of)h(the)f(last)h
-(command)f(executed)i(b)s(efore)e(the)g Fs(return)p Ft(.)275
-5230 y(V)-8 b(ariables)31 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i
-(b)s(e)e(declared)h(with)f(the)h Fs(local)f Ft(builtin.)40
-b(These)29 b(v)-5 b(ariables)150 5340 y(are)31 b(visible)g(only)f(to)h
-(the)g(function)f(and)g(the)g(commands)g(it)h(in)m(v)m(ok)m(es.)p
-eop end
+(is)h(executed.)275 2235 y(A)41 b(function)f(de\014nition)h(ma)m(y)g(b)
+s(e)g(deleted)g(using)g(the)g(`)p Fs(-f)p Ft(')g(option)g(to)h(the)f
+Fs(unset)e Ft(builtin)i(\(see)150 2345 y(Section)31 b(4.1)h([Bourne)e
+(Shell)g(Builtins],)h(page)h(35\).)275 2491 y(The)26
+b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g(zero)h
+(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)150
+2600 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
+b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g(function)150
+2710 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
+i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 2856 y(Note)22 b(that)f(for)f
+(historical)i(reasons,)h(in)e(the)g(most)g(common)g(usage)g(the)g
+(curly)f(braces)h(that)g(surround)150 2966 y(the)38 b(b)s(o)s(dy)d(of)j
+(the)f(function)g(m)m(ust)g(b)s(e)g(separated)h(from)f(the)g(b)s(o)s
+(dy)f(b)m(y)h Fs(blank)p Ft(s)f(or)h(newlines.)62 b(This)150
+3075 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m
+(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i
+(are)150 3185 y(separated)e(b)m(y)g(whitespace.)61 b(Also,)39
+b(when)d(using)g(the)h(braces,)i(the)e Fq(list)j Ft(m)m(ust)c(b)s(e)g
+(terminated)i(b)m(y)f(a)150 3294 y(semicolon,)32 b(a)f(`)p
+Fs(&)p Ft(',)f(or)h(a)g(newline.)275 3440 y(When)h(a)i(function)f(is)g
+(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)g
+(the)h(p)s(ositional)g(pa-)150 3550 y(rameters)42 b(during)e(its)i
+(execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m
+(arameters],)i(page)c(15\).)75 b(The)150 3660 y(sp)s(ecial)37
+b(parameter)f(`)p Fs(#)p Ft(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
+s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)150
+3769 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
+b(parameter)h Fs(0)f Ft(is)g(unc)m(hanged.)54 b(The)35
+b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 3879
+y Ft(v)-5 b(ariable)27 b(is)g(set)g(to)h(the)f(name)f(of)h(the)g
+(function)f(while)h(the)g(function)f(is)h(executing.)40
+b(All)28 b(other)f(asp)s(ects)150 3988 y(of)32 b(the)g(shell)g
+(execution)i(en)m(vironmen)m(t)e(are)h(iden)m(tical)g(b)s(et)m(w)m(een)
+g(a)f(function)g(and)f(its)i(caller)g(with)f(the)150
+4098 y(exception)h(that)f(the)g Fs(DEBUG)f Ft(and)g Fs(RETURN)f
+Ft(traps)h(are)h(not)g(inherited)g(unless)f(the)h(function)f(has)h(b)s
+(een)150 4208 y(giv)m(en)h(the)f Fs(trace)e Ft(attribute)j(using)e(the)
+h Fs(declare)e Ft(builtin)h(or)h(the)g Fs(-o)e(functrace)f
+Ft(option)j(has)g(b)s(een)150 4317 y(enabled)39 b(with)f(the)h
+Fs(set)e Ft(builtin,)k(\(in)e(whic)m(h)f(case)i(all)f(functions)f
+(inherit)h(the)f Fs(DEBUG)g Ft(and)g Fs(RETURN)150 4427
+y Ft(traps\).)66 b(See)40 b(Section)f(4.1)h([Bourne)f(Shell)g
+(Builtins],)j(page)e(35,)i(for)d(the)g(description)g(of)g(the)g
+Fs(trap)150 4536 y Ft(builtin.)275 4682 y(If)e(the)g(builtin)g(command)
+h Fs(return)d Ft(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h
+(completes)h(and)150 4792 y(execution)25 b(resumes)e(with)h(the)g(next)
+g(command)f(after)i(the)f(function)f(call.)40 b(An)m(y)24
+b(command)f(asso)s(ciated)150 4902 y(with)36 b(the)h
+Fs(RETURN)d Ft(trap)i(is)h(executed)g(b)s(efore)f(execution)i(resumes.)
+57 b(When)37 b(a)f(function)g(completes,)150 5011 y(the)h(v)-5
+b(alues)38 b(of)f(the)g(p)s(ositional)h(parameters)f(and)g(the)g(sp)s
+(ecial)h(parameter)f(`)p Fs(#)p Ft(')g(are)h(restored)f(to)h(the)150
+5121 y(v)-5 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g(function's)f
+(execution.)40 b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(giv)m(en)h
+(to)g Fs(return)p Ft(,)150 5230 y(that)j(is)g(the)f(function's)h
+(return)e(status;)j(otherwise)f(the)f(function's)h(return)e(status)i
+(is)f(the)h(exit)h(status)150 5340 y(of)h(the)f(last)h(command)f
+(executed)i(b)s(efore)e(the)g Fs(return)p Ft(.)p eop
+end
 %%Page: 15 21
 TeXDict begin 15 20 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)275 299
-y(F)-8 b(unction)38 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s(e)e
-(listed)h(with)f(the)h(`)p Fs(-f)p Ft(')f(option)h(to)h(the)e
-Fs(declare)f Ft(or)150 408 y Fs(typeset)d Ft(builtin)h(commands)h
-(\(see)h(Section)g(4.2)g([Bash)f(Builtins],)i(page)f(39\).)55
-b(The)35 b(`)p Fs(-F)p Ft(')g(option)g(to)150 518 y Fs(declare)f
+y(V)-8 b(ariables)31 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i(b)s(e)
+e(declared)h(with)f(the)h Fs(local)f Ft(builtin.)40 b(These)29
+b(v)-5 b(ariables)150 408 y(are)31 b(visible)g(only)f(to)h(the)g
+(function)f(and)g(the)g(commands)g(it)h(in)m(v)m(ok)m(es.)275
+548 y(F)-8 b(unction)38 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s(e)
+e(listed)h(with)f(the)h(`)p Fs(-f)p Ft(')f(option)h(to)h(the)e
+Fs(declare)f Ft(or)150 657 y Fs(typeset)d Ft(builtin)h(commands)h
+(\(see)h(Section)g(4.2)g([Bash)f(Builtins],)i(page)f(41\).)55
+b(The)35 b(`)p Fs(-F)p Ft(')g(option)g(to)150 767 y Fs(declare)f
 Ft(or)i Fs(typeset)e Ft(will)i(list)h(the)f(function)g(names)g(only)g
 (\(and)g(optionally)h(the)f(source)g(\014le)h(and)150
-628 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e
+876 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e
 Ft(shell)i(option)g(is)g(enabled\).)49 b(F)-8 b(unctions)33
-b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 737 y(subshells)f
+b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 986 y(subshells)f
 (automatically)37 b(ha)m(v)m(e)d(them)g(de\014ned)e(with)h(the)g(`)p
 Fs(-f)p Ft(')h(option)g(to)g(the)f Fs(export)f Ft(builtin)h(\(see)150
-847 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(33\).)47
+1095 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\).)47
 b(Note)33 b(that)g(shell)f(functions)g(and)f(v)-5 b(ariables)33
-b(with)150 956 y(the)d(same)g(name)g(ma)m(y)g(result)g(in)g(m)m
+b(with)150 1205 y(the)d(same)g(name)g(ma)m(y)g(result)g(in)g(m)m
 (ultiple)g(iden)m(tically-named)i(en)m(tries)f(in)e(the)h(en)m
-(vironmen)m(t)g(passed)150 1066 y(to)h(the)g(shell's)f(c)m(hildren.)41
+(vironmen)m(t)g(passed)150 1315 y(to)h(the)g(shell's)f(c)m(hildren.)41
 b(Care)30 b(should)g(b)s(e)f(tak)m(en)j(in)e(cases)h(where)f(this)g(ma)
-m(y)h(cause)g(a)g(problem.)275 1199 y(F)-8 b(unctions)30
+m(y)h(cause)g(a)g(problem.)275 1454 y(F)-8 b(unctions)30
 b(ma)m(y)h(b)s(e)f(recursiv)m(e.)41 b(No)31 b(limit)g(is)g(placed)g(on)
 f(the)g(n)m(um)m(b)s(er)g(of)g(recursiv)m(e)h(calls.)150
-1451 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)275 1694
+1722 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)275 1971
 y Ft(A)32 b Fq(parameter)40 b Ft(is)32 b(an)h(en)m(tit)m(y)h(that)f
 (stores)g(v)-5 b(alues.)48 b(It)33 b(can)g(b)s(e)e(a)i
 Fs(name)p Ft(,)g(a)g(n)m(um)m(b)s(er,)f(or)g(one)h(of)g(the)150
-1803 y(sp)s(ecial)i(c)m(haracters)h(listed)g(b)s(elo)m(w.)53
+2081 y(sp)s(ecial)i(c)m(haracters)h(listed)g(b)s(elo)m(w.)53
 b(A)35 b Fq(v)-5 b(ariable)41 b Ft(is)34 b(a)h(parameter)h(denoted)e(b)
 m(y)h(a)g Fs(name)p Ft(.)52 b(A)35 b(v)-5 b(ariable)150
-1913 y(has)29 b(a)h Fq(v)-5 b(alue)35 b Ft(and)28 b(zero)j(or)e(more)g
+2190 y(has)29 b(a)h Fq(v)-5 b(alue)35 b Ft(and)28 b(zero)j(or)e(more)g
 Fq(attributes)p Ft(.)41 b(A)m(ttributes)30 b(are)g(assigned)g(using)f
-(the)g Fs(declare)e Ft(builtin)150 2022 y(command)22
+(the)g Fs(declare)e Ft(builtin)150 2300 y(command)22
 b(\(see)h(the)f(description)g(of)g(the)g Fs(declare)f
-Ft(builtin)g(in)h(Section)h(4.2)g([Bash)f(Builtins],)j(page)d(39\).)275
-2155 y(A)28 b(parameter)h(is)g(set)g(if)f(it)h(has)f(b)s(een)g
+Ft(builtin)g(in)h(Section)h(4.2)g([Bash)f(Builtins],)j(page)d(41\).)275
+2439 y(A)28 b(parameter)h(is)g(set)g(if)f(it)h(has)f(b)s(een)g
 (assigned)h(a)g(v)-5 b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g
-(v)-5 b(alid)28 b(v)-5 b(alue.)41 b(Once)150 2265 y(a)31
+(v)-5 b(alid)28 b(v)-5 b(alue.)41 b(Once)150 2548 y(a)31
 b(v)-5 b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h
 (b)m(y)f(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275
-2398 y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e
-(a)h(statemen)m(t)h(of)e(the)h(form)390 2531 y Fj(name)11
-b Fs(=[)p Fj(value)g Fs(])150 2663 y Ft(If)34 b Fq(v)-5
+2688 y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e
+(a)h(statemen)m(t)h(of)e(the)h(form)390 2827 y Fj(name)11
+b Fs(=[)p Fj(value)g Fs(])150 2966 y Ft(If)34 b Fq(v)-5
 b(alue)40 b Ft(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
 b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35
 b Fq(v)-5 b(alue)5 b Ft(s)35 b(undergo)f(tilde)h(ex-)150
-2773 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
+3075 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
 b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150
-2883 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
+3185 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
 72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Fs(integer)e
-Ft(attribute)i(set,)j(then)150 2992 y Fq(v)-5 b(alue)38
+Ft(attribute)i(set,)j(then)150 3294 y Fq(v)-5 b(alue)38
 b Ft(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f
 (ev)m(en)h(if)e(the)h Fs($\(\(...)o(\)\))f Ft(expansion)h(is)g(not)g
-(used)150 3102 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
+(used)150 3404 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
 (page)h(22\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s
-(erformed,)f(with)150 3211 y(the)35 b(exception)h(of)f
+(erformed,)f(with)150 3514 y(the)35 b(exception)h(of)f
 Fs("$@")f Ft(as)h(explained)g(b)s(elo)m(w.)54 b(Filename)36
 b(expansion)f(is)g(not)g(p)s(erformed.)53 b(Assign-)150
-3321 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
+3623 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
 (argumen)m(ts)h(to)g(the)g Fs(alias)p Ft(,)e Fs(declare)p
-Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 3430
+Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 3733
 y Fs(readonly)p Ft(,)d(and)i Fs(local)f Ft(builtin)h(commands.)275
-3563 y(In)f(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m
+3872 y(In)f(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m
 (t)h(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5
-b(ariable)31 b(or)150 3673 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g
-([Arra)m(ys],)g(page)g(74\),)g(the)f(`)p Fs(+=)p Ft(')g(op)s(erator)g
-(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 3782 y(or)36
+b(ariable)31 b(or)150 3981 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g
+([Arra)m(ys],)g(page)g(76\),)g(the)f(`)p Fs(+=)p Ft(')g(op)s(erator)g
+(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 4091 y(or)36
 b(add)g(to)h(the)f(v)-5 b(ariable's)37 b(previous)f(v)-5
 b(alue.)59 b(When)36 b(`)p Fs(+=)p Ft(')g(is)g(applied)g(to)h(a)g(v)-5
-b(ariable)37 b(for)f(whic)m(h)g(the)150 3892 y(in)m(teger)k(attribute)e
+b(ariable)37 b(for)f(whic)m(h)g(the)150 4201 y(in)m(teger)k(attribute)e
 (has)g(b)s(een)g(set,)j Fq(v)-5 b(alue)44 b Ft(is)38
 b(ev)-5 b(aluated)39 b(as)g(an)f(arithmetic)h(expression)f(and)g(added)
-150 4002 y(to)e(the)f(v)-5 b(ariable's)36 b(curren)m(t)f(v)-5
+150 4310 y(to)e(the)f(v)-5 b(ariable's)36 b(curren)m(t)f(v)-5
 b(alue,)37 b(whic)m(h)e(is)g(also)h(ev)-5 b(aluated.)56
 b(When)35 b(`)p Fs(+=)p Ft(')g(is)h(applied)f(to)g(an)g(arra)m(y)150
-4111 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f(assignmen)m(t)j(\(see)
-f(Section)h(6.7)f([Arra)m(ys],)i(page)f(74\),)h(the)e(v)-5
-b(ariable's)25 b(v)-5 b(alue)150 4221 y(is)32 b(not)f(unset)h(\(as)g
+4420 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f(assignmen)m(t)j(\(see)
+f(Section)h(6.7)f([Arra)m(ys],)i(page)f(76\),)h(the)e(v)-5
+b(ariable's)25 b(v)-5 b(alue)150 4529 y(is)32 b(not)f(unset)h(\(as)g
 (it)g(is)f(when)g(using)g(`)p Fs(=)p Ft('\),)i(and)e(new)g(v)-5
 b(alues)32 b(are)g(app)s(ended)d(to)k(the)f(arra)m(y)g(b)s(eginning)150
-4330 y(at)e(one)g(greater)h(than)f(the)g(arra)m(y's)g(maxim)m(um)f
+4639 y(at)e(one)g(greater)h(than)f(the)g(arra)m(y's)g(maxim)m(um)f
 (index.)40 b(When)30 b(applied)f(to)i(a)f(string-v)-5
-b(alued)30 b(v)-5 b(ariable,)150 4440 y Fq(v)g(alue)36
+b(alued)30 b(v)-5 b(ariable,)150 4748 y Fq(v)g(alue)36
 b Ft(is)30 b(expanded)g(and)g(app)s(ended)e(to)j(the)g(v)-5
-b(ariable's)31 b(v)-5 b(alue.)150 4659 y Fk(3.4.1)63
-b(P)m(ositional)41 b(P)m(arameters)275 4902 y Ft(A)36
+b(ariable's)31 b(v)-5 b(alue.)150 4982 y Fk(3.4.1)63
+b(P)m(ositional)41 b(P)m(arameters)275 5230 y Ft(A)36
 b Fq(p)s(ositional)i(parameter)44 b Ft(is)37 b(a)g(parameter)g(denoted)
 g(b)m(y)g(one)g(or)g(more)g(digits,)i(other)e(than)g(the)150
-5011 y(single)k(digit)f Fs(0)p Ft(.)69 b(P)m(ositional)42
+5340 y(single)k(digit)f Fs(0)p Ft(.)69 b(P)m(ositional)42
 b(parameters)f(are)f(assigned)g(from)g(the)g(shell's)g(argumen)m(ts)g
-(when)f(it)i(is)150 5121 y(in)m(v)m(ok)m(ed,)f(and)d(ma)m(y)g(b)s(e)g
-(reassigned)g(using)f(the)i Fs(set)e Ft(builtin)g(command.)61
-b(P)m(ositional)39 b(parameter)e Fs(N)150 5230 y Ft(ma)m(y)27
-b(b)s(e)g(referenced)f(as)h Fs(${N})p Ft(,)g(or)g(as)g
-Fs($N)f Ft(when)g Fs(N)g Ft(consists)i(of)f(a)g(single)g(digit.)41
-b(P)m(ositional)29 b(parameters)150 5340 y(ma)m(y)j(not)f(b)s(e)g
-(assigned)h(to)g(with)f(assignmen)m(t)h(statemen)m(ts.)45
-b(The)30 b Fs(set)h Ft(and)g Fs(shift)e Ft(builtins)i(are)h(used)p
-eop end
+(when)f(it)i(is)p eop end
 %%Page: 16 22
 TeXDict begin 16 21 bop 150 -116 a Ft(16)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(to)i(set)f(and)f(unset)h(them)g
-(\(see)h(Chapter)e(4)h([Shell)g(Builtin)h(Commands],)e(page)i(33\).)47
-b(The)31 b(p)s(ositional)150 408 y(parameters)24 b(are)g(temp)s
+b(Reference)g(Man)m(ual)150 299 y(in)m(v)m(ok)m(ed,)40
+b(and)d(ma)m(y)g(b)s(e)g(reassigned)g(using)f(the)i Fs(set)e
+Ft(builtin)g(command.)61 b(P)m(ositional)39 b(parameter)e
+Fs(N)150 408 y Ft(ma)m(y)27 b(b)s(e)g(referenced)f(as)h
+Fs(${N})p Ft(,)g(or)g(as)g Fs($N)f Ft(when)g Fs(N)g Ft(consists)i(of)f
+(a)g(single)g(digit.)41 b(P)m(ositional)29 b(parameters)150
+518 y(ma)m(y)j(not)f(b)s(e)g(assigned)h(to)g(with)f(assignmen)m(t)h
+(statemen)m(ts.)45 b(The)30 b Fs(set)h Ft(and)g Fs(shift)e
+Ft(builtins)i(are)h(used)150 628 y(to)h(set)f(and)f(unset)h(them)g
+(\(see)h(Chapter)e(4)h([Shell)g(Builtin)h(Commands],)e(page)i(35\).)47
+b(The)31 b(p)s(ositional)150 737 y(parameters)24 b(are)g(temp)s
 (orarily)g(replaced)h(when)d(a)j(shell)f(function)f(is)h(executed)h
-(\(see)f(Section)h(3.3)g([Shell)150 518 y(F)-8 b(unctions],)31
-b(page)h(14\).)275 656 y(When)27 b(a)i(p)s(ositional)g(parameter)g
+(\(see)f(Section)h(3.3)g([Shell)150 847 y(F)-8 b(unctions],)31
+b(page)h(14\).)275 979 y(When)27 b(a)i(p)s(ositional)g(parameter)g
 (consisting)f(of)h(more)f(than)g(a)g(single)h(digit)g(is)f(expanded,)g
-(it)h(m)m(ust)150 765 y(b)s(e)h(enclosed)h(in)f(braces.)150
-996 y Fk(3.4.2)63 b(Sp)s(ecial)41 b(P)m(arameters)275
-1244 y Ft(The)27 b(shell)h(treats)h(sev)m(eral)g(parameters)g(sp)s
+(it)h(m)m(ust)150 1088 y(b)s(e)h(enclosed)h(in)f(braces.)150
+1304 y Fk(3.4.2)63 b(Sp)s(ecial)41 b(P)m(arameters)275
+1545 y Ft(The)27 b(shell)h(treats)h(sev)m(eral)g(parameters)g(sp)s
 (ecially)-8 b(.)41 b(These)28 b(parameters)g(ma)m(y)g(only)g(b)s(e)g
-(referenced;)150 1353 y(assignmen)m(t)j(to)g(them)g(is)f(not)h(allo)m
-(w)m(ed.)150 1518 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s
+(referenced;)150 1655 y(assignmen)m(t)j(to)g(them)g(is)f(not)h(allo)m
+(w)m(ed.)150 1808 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s
 (ositional)f(parameters,)h(starting)g(from)e(one.)41
-b(When)30 b(the)g(expansion)630 1627 y(o)s(ccurs)e(within)f(double)h
+b(When)30 b(the)g(expansion)630 1918 y(o)s(ccurs)e(within)f(double)h
 (quotes,)h(it)g(expands)e(to)i(a)f(single)h(w)m(ord)f(with)g(the)g(v)-5
-b(alue)29 b(of)f(eac)m(h)630 1737 y(parameter)i(separated)g(b)m(y)f
+b(alue)29 b(of)f(eac)m(h)630 2028 y(parameter)i(separated)g(b)m(y)f
 (the)g(\014rst)g(c)m(haracter)i(of)e(the)h Fs(IFS)e Ft(sp)s(ecial)i(v)
--5 b(ariable.)41 b(That)30 b(is,)630 1846 y Fs("$*")h
+-5 b(ariable.)41 b(That)30 b(is,)630 2137 y Fs("$*")h
 Ft(is)i(equiv)-5 b(alen)m(t)33 b(to)h Fs("$1)p Fj(c)11
 b Fs($2)p Fj(c)g Fs(...)l(")p Ft(,)33 b(where)f Fq(c)38
 b Ft(is)32 b(the)h(\014rst)e(c)m(haracter)j(of)f(the)f(v)-5
-b(alue)630 1956 y(of)30 b(the)g Fs(IFS)g Ft(v)-5 b(ariable.)41
+b(alue)630 2247 y(of)30 b(the)g Fs(IFS)g Ft(v)-5 b(ariable.)41
 b(If)30 b Fs(IFS)f Ft(is)h(unset,)g(the)g(parameters)g(are)h(separated)
-f(b)m(y)g(spaces.)41 b(If)630 2066 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f
+f(b)m(y)g(spaces.)41 b(If)630 2356 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f
 (the)h(parameters)g(are)f(joined)h(without)f(in)m(terv)m(ening)i
-(separators.)150 2228 y Fs(@)432 b Ft(Expands)29 b(to)h(the)h(p)s
+(separators.)150 2510 y Fs(@)432 b Ft(Expands)29 b(to)h(the)h(p)s
 (ositional)f(parameters,)h(starting)g(from)e(one.)41
-b(When)30 b(the)g(expansion)630 2338 y(o)s(ccurs)c(within)g(double)f
+b(When)30 b(the)g(expansion)630 2620 y(o)s(ccurs)c(within)g(double)f
 (quotes,)j(eac)m(h)f(parameter)g(expands)e(to)i(a)g(separate)g(w)m
-(ord.)39 b(That)630 2447 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5
+(ord.)39 b(That)630 2729 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5
 b(alen)m(t)30 b(to)f Fs("$1")g("$2")h(...)o Ft(.)40 b(If)28
-b(the)g(double-quoted)h(expansion)f(o)s(ccurs)630 2557
+b(the)g(double-quoted)h(expansion)f(o)s(ccurs)630 2839
 y(within)d(a)h(w)m(ord,)g(the)g(expansion)f(of)h(the)g(\014rst)f
 (parameter)h(is)f(joined)h(with)f(the)h(b)s(eginning)630
-2667 y(part)f(of)g(the)g(original)g(w)m(ord,)h(and)e(the)h(expansion)g
+2949 y(part)f(of)g(the)g(original)g(w)m(ord,)h(and)e(the)h(expansion)g
 (of)g(the)g(last)h(parameter)f(is)g(joined)f(with)630
-2776 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59
+3058 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59
 b(When)36 b(there)h(are)g(no)f(p)s(ositional)h(parameters,)630
-2886 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e
-(\(i.e.,)i(they)e(are)h(remo)m(v)m(ed\).)150 3049 y Fs(#)432
+3168 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e
+(\(i.e.,)i(they)e(are)h(remo)m(v)m(ed\).)150 3321 y Fs(#)432
 b Ft(Expands)29 b(to)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)h
-(parameters)g(in)f(decimal.)150 3211 y Fs(?)432 b Ft(Expands)29
+(parameters)g(in)f(decimal.)150 3475 y Fs(?)432 b Ft(Expands)29
 b(to)i(the)g(exit)g(status)g(of)f(the)h(most)f(recen)m(tly)i(executed)f
-(foreground)f(pip)s(eline.)150 3374 y Fs(-)432 b Ft(\(A)31
+(foreground)f(pip)s(eline.)150 3629 y Fs(-)432 b Ft(\(A)31
 b(h)m(yphen.\))42 b(Expands)30 b(to)h(the)g(curren)m(t)g(option)h
 (\015ags)f(as)g(sp)s(eci\014ed)f(up)s(on)g(in)m(v)m(o)s(cation,)630
-3484 y(b)m(y)35 b(the)h Fs(set)e Ft(builtin)h(command,)h(or)g(those)g
+3739 y(b)m(y)35 b(the)h Fs(set)e Ft(builtin)h(command,)h(or)g(those)g
 (set)f(b)m(y)h(the)f(shell)h(itself)g(\(suc)m(h)f(as)h(the)f(`)p
-Fs(-i)p Ft(')630 3593 y(option\).)150 3756 y Fs($)432
+Fs(-i)p Ft(')630 3848 y(option\).)150 4002 y Fs($)432
 b Ft(Expands)39 b(to)j(the)f(pro)s(cess)f Fl(id)h Ft(of)g(the)g(shell.)
 73 b(In)40 b(a)h Fs(\(\))f Ft(subshell,)j(it)e(expands)f(to)i(the)630
-3866 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g
-(not)g(the)f(subshell.)150 4028 y Fs(!)432 b Ft(Expands)39
+4112 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g
+(not)g(the)f(subshell.)150 4265 y Fs(!)432 b Ft(Expands)39
 b(to)i(the)g(pro)s(cess)e Fl(id)i Ft(of)f(the)h(most)g(recen)m(tly)g
-(executed)g(bac)m(kground)g(\(asyn-)630 4138 y(c)m(hronous\))30
-b(command.)150 4301 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g
+(executed)g(bac)m(kground)g(\(asyn-)630 4375 y(c)m(hronous\))30
+b(command.)150 4529 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g
 (the)g(shell)g(or)f(shell)h(script.)38 b(This)21 b(is)h(set)g(at)h
-(shell)f(initialization.)630 4410 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m
+(shell)f(initialization.)630 4638 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m
 (ed)i(with)e(a)g(\014le)g(of)h(commands)e(\(see)j(Section)f(3.8)g
-([Shell)f(Scripts],)630 4520 y(page)39 b(32\),)i Fs($0)d
+([Shell)f(Scripts],)630 4748 y(page)39 b(32\),)i Fs($0)d
 Ft(is)g(set)g(to)h(the)f(name)g(of)g(that)h(\014le.)64
 b(If)37 b(Bash)i(is)f(started)g(with)g(the)g(`)p Fs(-c)p
-Ft(')630 4629 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h
-(Bash],)h(page)e(65\),)j(then)d Fs($0)e Ft(is)i(set)g(to)g(the)g
-(\014rst)630 4739 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e)
+Ft(')630 4857 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h
+(Bash],)h(page)e(67\),)j(then)d Fs($0)e Ft(is)i(set)g(to)g(the)g
+(\014rst)630 4967 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e)
 f(executed,)i(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31
-b(it)g(is)f(set)630 4848 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
+b(it)g(is)f(set)630 5077 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
 (ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150
-5011 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29
+5230 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29
 b(shell)e(startup,)h(set)f(to)h(the)g(absolute)g(pathname)f(used)f(to)i
-(in)m(v)m(ok)m(e)630 5121 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s
+(in)m(v)m(ok)m(e)630 5340 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s
 (eing)h(executed)h(as)f(passed)f(in)g(the)h(en)m(vironmen)m(t)h(or)e
-(argumen)m(t)630 5230 y(list.)72 b(Subsequen)m(tly)-8
-b(,)43 b(expands)c(to)j(the)e(last)i(argumen)m(t)f(to)g(the)g(previous)
-f(command,)630 5340 y(after)35 b(expansion.)54 b(Also)36
-b(set)f(to)h(the)f(full)f(pathname)h(used)f(to)h(in)m(v)m(ok)m(e)i(eac)
-m(h)f(command)p eop end
+(argumen)m(t)p eop end
 %%Page: 17 23
 TeXDict begin 17 22 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)630 299
-y(executed)42 b(and)e(placed)i(in)e(the)h(en)m(vironmen)m(t)h(exp)s
-(orted)f(to)g(that)h(command.)72 b(When)630 408 y(c)m(hec)m(king)32
+y(list.)72 b(Subsequen)m(tly)-8 b(,)43 b(expands)c(to)j(the)e(last)i
+(argumen)m(t)f(to)g(the)g(previous)f(command,)630 408
+y(after)35 b(expansion.)54 b(Also)36 b(set)f(to)h(the)f(full)f
+(pathname)h(used)f(to)h(in)m(v)m(ok)m(e)i(eac)m(h)f(command)630
+518 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m(vironmen)m(t)h(exp)s
+(orted)f(to)g(that)h(command.)72 b(When)630 628 y(c)m(hec)m(king)32
 b(mail,)f(this)g(parameter)g(holds)e(the)i(name)f(of)h(the)g(mail)g
-(\014le.)150 662 y Fr(3.5)68 b(Shell)45 b(Expansions)275
-905 y Ft(Expansion)29 b(is)h(p)s(erformed)e(on)i(the)g(command)g(line)g
-(after)h(it)f(has)g(b)s(een)f(split)h(in)m(to)h Fs(token)p
-Ft(s.)39 b(There)150 1015 y(are)31 b(sev)m(en)g(kinds)e(of)i(expansion)
-f(p)s(erformed:)225 1148 y Fp(\017)60 b Ft(brace)31 b(expansion)225
-1281 y Fp(\017)60 b Ft(tilde)31 b(expansion)225 1414
+(\014le.)150 901 y Fr(3.5)68 b(Shell)45 b(Expansions)275
+1151 y Ft(Expansion)29 b(is)h(p)s(erformed)e(on)i(the)g(command)g(line)
+g(after)h(it)f(has)g(b)s(een)f(split)h(in)m(to)h Fs(token)p
+Ft(s.)39 b(There)150 1261 y(are)31 b(sev)m(en)g(kinds)e(of)i(expansion)
+f(p)s(erformed:)225 1401 y Fp(\017)60 b Ft(brace)31 b(expansion)225
+1539 y Fp(\017)60 b Ft(tilde)31 b(expansion)225 1677
 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5 b(ariable)31
-b(expansion)225 1548 y Fp(\017)60 b Ft(command)30 b(substitution)225
-1681 y Fp(\017)60 b Ft(arithmetic)32 b(expansion)225
-1814 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 1947
-y Fp(\017)60 b Ft(\014lename)31 b(expansion)275 2104
+b(expansion)225 1814 y Fp(\017)60 b Ft(command)30 b(substitution)225
+1952 y Fp(\017)60 b Ft(arithmetic)32 b(expansion)225
+2089 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 2227
+y Fp(\017)60 b Ft(\014lename)31 b(expansion)275 2396
 y(The)i(order)g(of)h(expansions)g(is:)47 b(brace)34 b(expansion,)h
 (tilde)g(expansion,)f(parameter,)i(v)-5 b(ariable,)36
-b(and)150 2214 y(arithmetic)46 b(expansion)f(and)g(command)f
+b(and)150 2505 y(arithmetic)46 b(expansion)f(and)g(command)f
 (substitution)h(\(done)g(in)g(a)g(left-to-righ)m(t)j(fashion\),)h(w)m
-(ord)150 2324 y(splitting,)31 b(and)f(\014lename)h(expansion.)275
-2457 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)47
+(ord)150 2615 y(splitting,)31 b(and)f(\014lename)h(expansion.)275
+2756 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)47
 b(there)d(is)f(an)h(additional)g(expansion)f(a)m(v)-5
-b(ailable:)69 b Fq(pro)s(cess)150 2566 y(substitution)p
+b(ailable:)69 b Fq(pro)s(cess)150 2865 y(substitution)p
 Ft(.)61 b(This)36 b(is)h(p)s(erformed)f(at)i(the)f(same)h(time)f(as)h
 (parameter,)h(v)-5 b(ariable,)40 b(and)d(arithmetic)150
-2676 y(expansion)30 b(and)g(command)g(substitution.)275
-2809 y(Only)35 b(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d
+2975 y(expansion)30 b(and)g(command)g(substitution.)275
+3116 y(Only)35 b(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d
 (\014lename)g(expansion)g(can)h(c)m(hange)h(the)e(n)m(um)m(b)s(er)150
-2919 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f
+3225 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f
 (expand)g(a)h(single)g(w)m(ord)f(to)h(a)g(single)g(w)m(ord.)58
-b(The)150 3028 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f
+b(The)150 3335 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f
 (expansions)g(of)h Fs("$@")e Ft(\(see)i(Section)g(3.4.2)h([Sp)s(ecial)f
-(P)m(arameters],)150 3138 y(page)e(16\))h(and)d Fs("${)p
+(P)m(arameters],)150 3444 y(page)e(16\))h(and)d Fs("${)p
 Fj(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g
-(page)g(74\).)275 3271 y(After)41 b(all)i(expansions,)h
+(page)g(76\).)275 3585 y(After)41 b(all)i(expansions,)h
 Fs(quote)29 b(removal)40 b Ft(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m
-(v)-5 b(al],)47 b(page)42 b(24\))h(is)150 3381 y(p)s(erformed.)150
-3601 y Fk(3.5.1)63 b(Brace)40 b(Expansion)275 3844 y
+(v)-5 b(al],)47 b(page)42 b(25\))h(is)150 3695 y(p)s(erformed.)150
+3931 y Fk(3.5.1)63 b(Brace)40 b(Expansion)275 4182 y
 Ft(Brace)21 b(expansion)g(is)g(a)g(mec)m(hanism)g(b)m(y)g(whic)m(h)f
 (arbitrary)h(strings)f(ma)m(y)i(b)s(e)e(generated.)38
-b(This)20 b(mec)m(h-)150 3954 y(anism)35 b(is)h(similar)f(to)h
+b(This)20 b(mec)m(h-)150 4291 y(anism)35 b(is)h(similar)f(to)h
 Fq(\014lename)g(expansion)f Ft(\(see)i(Section)f(3.5.8)h([Filename)g
-(Expansion],)f(page)g(23\),)150 4063 y(but)31 b(the)h(\014le)g(names)f
+(Expansion],)f(page)g(23\),)150 4401 y(but)31 b(the)h(\014le)g(names)f
 (generated)i(need)f(not)g(exist.)45 b(P)m(atterns)33
 b(to)f(b)s(e)f(brace)h(expanded)f(tak)m(e)i(the)f(form)150
-4173 y(of)26 b(an)f(optional)h Fq(pream)m(ble)p Ft(,)h(follo)m(w)m(ed)g
+4511 y(of)26 b(an)f(optional)h Fq(pream)m(ble)p Ft(,)h(follo)m(w)m(ed)g
 (b)m(y)f(either)g(a)f(series)h(of)g(comma-separated)h(strings)e(or)g(a)
-h(sequnce)150 4283 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i
+h(sequnce)150 4620 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i
 (braces,)g(follo)m(w)m(ed)h(b)m(y)e(an)g(optional)h Fq(p)s(ostscript)p
-Ft(.)57 b(The)36 b(pream)m(ble)g(is)150 4392 y(pre\014xed)28
+Ft(.)57 b(The)36 b(pream)m(ble)g(is)150 4730 y(pre\014xed)28
 b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g
 (the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150
-4502 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
-m(t.)275 4635 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
+4839 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
+m(t.)275 4980 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
 b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g(are)h(not)g
-(sorted;)150 4745 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
-(ed.)41 b(F)-8 b(or)31 b(example,)390 4878 y Fs(bash$)46
-b(echo)h(a{d,c,b}e)390 4988 y(ade)g(ace)g(abe)275 5121
-y Ft(A)24 b(sequence)h(expression)g(tak)m(es)h(the)f(form)f
-Fs({)p Fj(x)p Fs(..)p Fj(y)11 b Fs(})p Ft(,)23 b(where)i
-Fq(x)30 b Ft(and)24 b Fq(y)33 b Ft(are)25 b(either)g(in)m(tegers)h(or)e
-(single)150 5230 y(c)m(haracters.)43 b(When)30 b(in)m(tegers)i(are)f
-(supplied,)e(the)i(expression)f(expands)g(to)h(eac)m(h)h(n)m(um)m(b)s
-(er)d(b)s(et)m(w)m(een)i Fq(x)150 5340 y Ft(and)i Fq(y)p
-Ft(,)i(inclusiv)m(e.)53 b(When)34 b(c)m(haracters)h(are)f(supplied,)g
-(the)h(expression)e(expands)g(to)i(eac)m(h)g(c)m(haracter)p
-eop end
+(sorted;)150 5090 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
+(ed.)41 b(F)-8 b(or)31 b(example,)390 5230 y Fs(bash$)46
+b(echo)h(a{d,c,b}e)390 5340 y(ade)g(ace)g(abe)p eop end
 %%Page: 18 24
 TeXDict begin 18 23 bop 150 -116 a Ft(18)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(lexicographically)i(b)s(et)m(w)m(een)
-e Fq(x)37 b Ft(and)30 b Fq(y)p Ft(,)h(inclusiv)m(e.)42
+b(Reference)g(Man)m(ual)275 299 y(A)24 b(sequence)h(expression)g(tak)m
+(es)h(the)f(form)f Fs({)p Fj(x)p Fs(..)p Fj(y)11 b Fs(})p
+Ft(,)23 b(where)i Fq(x)30 b Ft(and)24 b Fq(y)33 b Ft(are)25
+b(either)g(in)m(tegers)h(or)e(single)150 408 y(c)m(haracters.)43
+b(When)30 b(in)m(tegers)i(are)f(supplied,)e(the)i(expression)f(expands)
+g(to)h(eac)m(h)h(n)m(um)m(b)s(er)d(b)s(et)m(w)m(een)i
+Fq(x)150 518 y Ft(and)i Fq(y)p Ft(,)i(inclusiv)m(e.)53
+b(When)34 b(c)m(haracters)h(are)f(supplied,)g(the)h(expression)e
+(expands)g(to)i(eac)m(h)g(c)m(haracter)150 628 y(lexicographically)e(b)
+s(et)m(w)m(een)e Fq(x)37 b Ft(and)30 b Fq(y)p Ft(,)h(inclusiv)m(e.)42
 b(Note)31 b(that)g(b)s(oth)f Fq(x)37 b Ft(and)30 b Fq(y)38
-b Ft(m)m(ust)30 b(b)s(e)g(of)h(the)g(same)150 408 y(t)m(yp)s(e.)275
-547 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s(efore)h(an)m(y)h
+b Ft(m)m(ust)30 b(b)s(e)g(of)h(the)g(same)150 737 y(t)m(yp)s(e.)275
+874 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s(efore)h(an)m(y)h
 (other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i(sp)s(ecial)150
-656 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f(in)h(the)f
+983 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f(in)h(the)f
 (result.)45 b(It)32 b(is)g(strictly)g(textual.)46 b(Bash)32
-b(do)s(es)f(not)h(apply)150 766 y(an)m(y)27 b(syn)m(tactic)i(in)m
+b(do)s(es)f(not)h(apply)150 1093 y(an)m(y)27 b(syn)m(tactic)i(in)m
 (terpretation)g(to)f(the)f(con)m(text)i(of)e(the)g(expansion)g(or)g
-(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)150 875
+(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)150 1202
 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f(parameter)h
 (expansion,)g(the)g(string)f(`)p Fs(${)p Ft(')g(is)g(not)g(considered)g
-(eligible)i(for)150 985 y(brace)31 b(expansion.)275 1123
-y(A)e(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)h
-(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
-1233 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
+(eligible)i(for)150 1312 y(brace)31 b(expansion.)275
+1448 y(A)e(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)
+h(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
+1558 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
 b(alid)33 b(sequence)g(expression.)48 b(An)m(y)33 b(incorrectly)h
-(formed)150 1342 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
-1480 y(A)25 b Fs({)g Ft(or)g(`)p Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted)
+(formed)150 1667 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
+1804 y(A)25 b Fs({)g Ft(or)g(`)p Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted)
 g(with)g(a)h(bac)m(kslash)f(to)h(prev)m(en)m(t)g(its)g(b)s(eing)f
-(considered)g(part)g(of)g(a)h(brace)150 1590 y(expression.)51
+(considered)g(part)g(of)g(a)h(brace)150 1913 y(expression.)51
 b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e(with)g(parameter)g
 (expansion,)h(the)f(string)g(`)p Fs(${)p Ft(')g(is)g(not)g(considered)
-150 1700 y(eligible)e(for)e(brace)h(expansion.)275 1838
+150 2023 y(eligible)e(for)e(brace)h(expansion.)275 2159
 y(This)f(construct)h(is)g(t)m(ypically)i(used)d(as)h(shorthand)f(when)g
 (the)h(common)g(pre\014x)f(of)h(the)g(strings)g(to)150
-1947 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m(v)m
-(e)i(example:)390 2085 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o
-(ew,)o(dist)o(,bug)o(s})275 2223 y Ft(or)390 2362 y Fs(chown)g(root)h
+2269 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m(v)m
+(e)i(example:)390 2405 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o
+(ew,)o(dist)o(,bug)o(s})275 2541 y Ft(or)390 2677 y Fs(chown)g(root)h
 (/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})150
-2593 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)275 2841 y
+2905 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)275 3151 y
 Ft(If)i(a)i(w)m(ord)e(b)s(egins)h(with)f(an)h(unquoted)f(tilde)i(c)m
 (haracter)h(\(`)p Fs(~)p Ft('\),)i(all)d(of)g(the)f(c)m(haracters)h(up)
-e(to)150 2950 y(the)35 b(\014rst)f(unquoted)f(slash)i(\(or)g(all)g(c)m
+e(to)150 3261 y(the)35 b(\014rst)f(unquoted)f(slash)i(\(or)g(all)g(c)m
 (haracters,)i(if)e(there)g(is)f(no)h(unquoted)e(slash\))i(are)g
-(considered)g(a)150 3060 y Fq(tilde-pre\014x)p Ft(.)55
+(considered)g(a)150 3370 y Fq(tilde-pre\014x)p Ft(.)55
 b(If)35 b(none)g(of)g(the)g(c)m(haracters)i(in)d(the)i(tilde-pre\014x)f
-(are)g(quoted,)i(the)e(c)m(haracters)i(in)e(the)150 3169
+(are)g(quoted,)i(the)e(c)m(haracters)i(in)e(the)150 3480
 y(tilde-pre\014x)27 b(follo)m(wing)h(the)f(tilde)h(are)f(treated)h(as)f
 (a)g(p)s(ossible)f Fq(login)i(name)p Ft(.)39 b(If)27
-b(this)f(login)i(name)f(is)g(the)150 3279 y(n)m(ull)k(string,)h(the)f
+b(this)f(login)i(name)f(is)g(the)150 3589 y(n)m(ull)k(string,)h(the)f
 (tilde)h(is)g(replaced)g(with)f(the)g(v)-5 b(alue)32
 b(of)f(the)h Fs(HOME)e Ft(shell)h(v)-5 b(ariable.)45
-b(If)31 b Fs(HOME)f Ft(is)h(unset,)150 3389 y(the)37
+b(If)31 b Fs(HOME)f Ft(is)h(unset,)150 3699 y(the)37
 b(home)f(directory)h(of)g(the)f(user)g(executing)i(the)f(shell)f(is)h
 (substituted)f(instead.)59 b(Otherwise,)38 b(the)150
-3498 y(tilde-pre\014x)30 b(is)h(replaced)g(with)f(the)g(home)h
+3809 y(tilde-pre\014x)30 b(is)h(replaced)g(with)f(the)g(home)h
 (directory)g(asso)s(ciated)g(with)f(the)h(sp)s(eci\014ed)f(login)h
-(name.)275 3636 y(If)h(the)h(tilde-pre\014x)f(is)h(`)p
+(name.)275 3945 y(If)h(the)h(tilde-pre\014x)f(is)h(`)p
 Fs(~+)p Ft(',)g(the)g(v)-5 b(alue)33 b(of)g(the)g(shell)g(v)-5
 b(ariable)34 b Fs(PWD)d Ft(replaces)j(the)f(tilde-pre\014x.)47
-b(If)150 3746 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p
+b(If)150 4054 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p
 Ft(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5
 b(ariable)31 b Fs(OLDPWD)p Ft(,)e(if)h(it)h(is)g(set,)g(is)f
-(substituted.)275 3884 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)
+(substituted.)275 4191 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)
 e(tilde)g(in)g(the)g(tilde-pre\014x)g(consist)g(of)g(a)h(n)m(um)m(b)s
-(er)d Fq(N)p Ft(,)j(optionally)150 3994 y(pre\014xed)22
+(er)d Fq(N)p Ft(,)j(optionally)150 4300 y(pre\014xed)22
 b(b)m(y)h(a)h(`)p Fs(+)p Ft(')f(or)h(a)f(`)p Fs(-)p Ft(',)j(the)d
 (tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e
-(elemen)m(t)j(from)e(the)150 4103 y(directory)36 b(stac)m(k,)i(as)e(it)
+(elemen)m(t)j(from)e(the)150 4410 y(directory)36 b(stac)m(k,)i(as)e(it)
 g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f
 Fs(dirs)g Ft(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters)
-150 4213 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
+150 4519 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
 (an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m
-(k],)150 4322 y(page)c(75\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
+(k],)150 4629 y(page)c(77\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
 e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f
-(leading)h(`)p Fs(+)p Ft(')g(or)150 4432 y(`)p Fs(-)p
-Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 4570 y(If)e(the)i(login)
+(leading)h(`)p Fs(+)p Ft(')g(or)150 4739 y(`)p Fs(-)p
+Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 4875 y(If)e(the)i(login)
 g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f
 (fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275
-4708 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
+5011 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
 (k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m
-(wing)150 4818 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p
+(wing)150 5121 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p
 Fs(=)p Ft('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g
 (also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37
-b(one)150 4927 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in)
+b(one)150 5230 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in)
 g(assignmen)m(ts)h(to)g Fs(PATH)p Ft(,)f Fs(MAILPATH)p
 Ft(,)e(and)i Fs(CDPATH)p Ft(,)f(and)h(the)g(shell)150
-5037 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)275
-5175 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h
-(treats)g(unquoted)e(tilde-pre\014xes:)150 5340 y Fs(~)432
-b Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs($HOME)p eop end
+5340 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)p eop
+end
 %%Page: 19 25
 TeXDict begin 19 24 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299
-y Fs(~/foo)240 b Ft(`)p Fs($HOME/foo)p Ft(')150 458 y
-Fs(~fred/foo)630 567 y Ft(The)30 b(sub)s(directory)f
-Fs(foo)h Ft(of)g(the)h(home)f(directory)h(of)g(the)f(user)g
-Fs(fred)150 726 y(~+/foo)192 b Ft(`)p Fs($PWD/foo)p Ft(')150
-885 y Fs(~-/foo)g Ft(`)p Fs(${OLDPWD-'~-'}/foo)p Ft(')150
-1044 y Fs(~)p Fj(N)384 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
-(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p Fj(N)11
-b Ft(')150 1203 y Fs(~+)p Fj(N)336 b Ft(The)30 b(string)g(that)h(w)m
-(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p
-Fj(N)11 b Ft(')150 1362 y Fs(~-)p Fj(N)336 b Ft(The)30
-b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p
-Fs(dirs)g(-)p Fj(N)11 b Ft(')150 1586 y Fk(3.5.3)63 b(Shell)41
-b(P)m(arameter)f(Expansion)275 1830 y Ft(The)26 b(`)p
-Fs($)p Ft(')i(c)m(haracter)h(in)m(tro)s(duces)e(parameter)h(expansion,)
-g(command)f(substitution,)h(or)g(arithmetic)150 1940
-y(expansion.)38 b(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)g
-(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m
-(h)150 2049 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g
-(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m(haracters)i
-(immediately)150 2159 y(follo)m(wing)g(it)f(whic)m(h)f(could)g(b)s(e)g
-(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 2293
-y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f(brace)g
-(is)g(the)g(\014rst)g(`)p Fs(})p Ft(')g(not)g(escap)s(ed)h(b)m(y)f(a)
-150 2403 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c
-(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)150
-2512 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
-2646 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)275 299
+y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h(treats)g
+(unquoted)e(tilde-pre\014xes:)150 472 y Fs(~)432 b Ft(The)30
+b(v)-5 b(alue)31 b(of)f Fs($HOME)150 641 y(~/foo)240
+b Ft(`)p Fs($HOME/foo)p Ft(')150 809 y Fs(~fred/foo)630
+919 y Ft(The)30 b(sub)s(directory)f Fs(foo)h Ft(of)g(the)h(home)f
+(directory)h(of)g(the)f(user)g Fs(fred)150 1087 y(~+/foo)192
+b Ft(`)p Fs($PWD/foo)p Ft(')150 1256 y Fs(~-/foo)g Ft(`)p
+Fs(${OLDPWD-'~-'}/foo)p Ft(')150 1424 y Fs(~)p Fj(N)384
+b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m
+(y)f(`)p Fs(dirs)g(+)p Fj(N)11 b Ft(')150 1593 y Fs(~+)p
+Fj(N)336 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m
+(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p Fj(N)11 b Ft(')150 1761
+y Fs(~-)p Fj(N)336 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
+(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(-)p Fj(N)11
+b Ft(')150 2004 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)275
+2257 y Ft(The)26 b(`)p Fs($)p Ft(')i(c)m(haracter)h(in)m(tro)s(duces)e
+(parameter)h(expansion,)g(command)f(substitution,)h(or)g(arithmetic)150
+2367 y(expansion.)38 b(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h
+(to)g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i
+(whic)m(h)150 2476 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)
+f(the)g(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m
+(haracters)i(immediately)150 2586 y(follo)m(wing)g(it)f(whic)m(h)f
+(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275
+2729 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f
+(brace)g(is)g(the)g(\014rst)g(`)p Fs(})p Ft(')g(not)g(escap)s(ed)h(b)m
+(y)f(a)150 2839 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)
+j(and)c(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)
+150 2949 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
+3092 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p
 Fs({)p Fq(parameter)7 b Fs(})p Ft(.)73 b(The)40 b(v)-5
-b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 2756 y(substituted.)43
+b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 3202 y(substituted.)43
 b(The)31 b(braces)g(are)h(required)e(when)h Fq(parameter)38
 b Ft(is)31 b(a)h(p)s(ositional)g(parameter)g(with)f(more)150
-2866 y(than)h(one)g(digit,)i(or)e(when)g Fq(parameter)39
+3311 y(than)h(one)g(digit,)i(or)e(when)g Fq(parameter)39
 b Ft(is)32 b(follo)m(w)m(ed)i(b)m(y)e(a)h(c)m(haracter)h(that)e(is)h
-(not)f(to)h(b)s(e)f(in)m(terpreted)150 2975 y(as)f(part)f(of)g(its)h
-(name.)275 3110 y(If)26 b(the)i(\014rst)f(c)m(haracter)i(of)e
+(not)f(to)h(b)s(e)f(in)m(terpreted)150 3421 y(as)f(part)f(of)g(its)h
+(name.)275 3565 y(If)26 b(the)i(\014rst)f(c)m(haracter)i(of)e
 Fq(parameter)35 b Ft(is)27 b(an)g(exclamation)j(p)s(oin)m(t,)e(a)g(lev)
-m(el)h(of)e(v)-5 b(ariable)29 b(indirection)150 3219
+m(el)h(of)e(v)-5 b(ariable)29 b(indirection)150 3674
 y(is)38 b(in)m(tro)s(duced.)62 b(Bash)38 b(uses)f(the)h(v)-5
 b(alue)38 b(of)g(the)g(v)-5 b(ariable)39 b(formed)e(from)g(the)h(rest)g
-(of)g Fq(parameter)45 b Ft(as)150 3329 y(the)32 b(name)h(of)f(the)h(v)
+(of)g Fq(parameter)45 b Ft(as)150 3784 y(the)32 b(name)h(of)f(the)h(v)
 -5 b(ariable;)34 b(this)e(v)-5 b(ariable)33 b(is)g(then)f(expanded)f
 (and)h(that)h(v)-5 b(alue)32 b(is)h(used)e(in)h(the)h(rest)150
-3438 y(of)h(the)f(substitution,)i(rather)e(than)g(the)h(v)-5
+3893 y(of)h(the)f(substitution,)i(rather)e(than)g(the)h(v)-5
 b(alue)34 b(of)g Fq(parameter)40 b Ft(itself.)51 b(This)33
-b(is)g(kno)m(wn)g(as)h Fs(indirect)150 3548 y(expansion)p
+b(is)g(kno)m(wn)g(as)h Fs(indirect)150 4003 y(expansion)p
 Ft(.)81 b(The)44 b(exceptions)h(to)h(this)e(are)h(the)g(expansions)f
 (of)h($)p Fs({)p Ft(!)p Fq(pre\014x*)8 b Fs(})43 b Ft(and)h($)p
 Fs({)p Ft(!)p Fq(name)5 b Ft([)p Fs(@)p Ft(])p Fs(})150
-3657 y Ft(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28
+4112 y Ft(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28
 b(exclamation)j(p)s(oin)m(t)f(m)m(ust)f(immediately)h(follo)m(w)g(the)g
-(left)f(brace)h(in)f(order)f(to)150 3767 y(in)m(tro)s(duce)i
-(indirection.)275 3901 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m
+(left)f(brace)h(in)f(order)f(to)150 4222 y(in)m(tro)s(duce)i
+(indirection.)275 4366 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m
 (w,)i Fq(w)m(ord)h Ft(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
-(parameter)e(expansion,)150 4011 y(command)30 b(substitution,)g(and)g
-(arithmetic)i(expansion.)275 4145 y(When)h(not)g(p)s(erforming)f
+(parameter)e(expansion,)150 4475 y(command)30 b(substitution,)g(and)g
+(arithmetic)i(expansion.)275 4619 y(When)h(not)g(p)s(erforming)f
 (substring)g(expansion,)j(Bash)e(tests)h(for)f(a)h(parameter)g(that)g
-(is)f(unset)g(or)150 4255 y(n)m(ull;)38 b(omitting)e(the)f(colon)h
+(is)f(unset)g(or)150 4729 y(n)m(ull;)38 b(omitting)e(the)f(colon)h
 (results)f(in)g(a)h(test)g(only)f(for)g(a)g(parameter)h(that)f(is)h
-(unset.)54 b(Put)35 b(another)150 4364 y(w)m(a)m(y)-8
+(unset.)54 b(Put)35 b(another)150 4838 y(w)m(a)m(y)-8
 b(,)31 b(if)e(the)g(colon)h(is)f(included,)f(the)h(op)s(erator)h(tests)
 f(for)g(b)s(oth)f(existence)i(and)f(that)g(the)g(v)-5
-b(alue)30 b(is)f(not)150 4474 y(n)m(ull;)i(if)f(the)g(colon)i(is)e
+b(alue)30 b(is)f(not)150 4948 y(n)m(ull;)i(if)f(the)g(colon)i(is)e
 (omitted,)i(the)e(op)s(erator)h(tests)g(only)g(for)f(existence.)150
-4633 y Fs(${)p Fj(parameter)11 b Fs(:)p Fp(\000)p Fj(word)g
-Fs(})630 4743 y Ft(If)30 b Fq(parameter)37 b Ft(is)30
+5121 y Fs(${)p Fj(parameter)11 b Fs(:)p Fp(\000)p Fj(word)g
+Fs(})630 5230 y Ft(If)30 b Fq(parameter)37 b Ft(is)30
 b(unset)g(or)h(n)m(ull,)f(the)h(expansion)f(of)g Fq(w)m(ord)k
-Ft(is)c(substituted.)40 b(Otherwise,)630 4852 y(the)31
-b(v)-5 b(alue)30 b(of)h Fq(parameter)37 b Ft(is)31 b(substituted.)150
-5011 y Fs(${)p Fj(parameter)11 b Fs(:=)p Fj(word)g Fs(})630
-5121 y Ft(If)33 b Fq(parameter)40 b Ft(is)33 b(unset)f(or)h(n)m(ull,)h
-(the)f(expansion)g(of)g Fq(w)m(ord)j Ft(is)d(assigned)g(to)h
-Fq(parameter)p Ft(.)630 5230 y(The)c(v)-5 b(alue)32 b(of)f
-Fq(parameter)38 b Ft(is)31 b(then)g(substituted.)42 b(P)m(ositional)33
-b(parameters)e(and)f(sp)s(ecial)630 5340 y(parameters)h(ma)m(y)g(not)f
-(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)p
+Ft(is)c(substituted.)40 b(Otherwise,)630 5340 y(the)31
+b(v)-5 b(alue)30 b(of)h Fq(parameter)37 b Ft(is)31 b(substituted.)p
 eop end
 %%Page: 20 26
 TeXDict begin 20 25 bop 150 -116 a Ft(20)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(${)p Fj(parameter)11
-b Fs(:?)p Fj(word)g Fs(})630 408 y Ft(If)26 b Fq(parameter)33
+b Fs(:=)p Fj(word)g Fs(})630 408 y Ft(If)33 b Fq(parameter)40
+b Ft(is)33 b(unset)f(or)h(n)m(ull,)h(the)f(expansion)g(of)g
+Fq(w)m(ord)j Ft(is)d(assigned)g(to)h Fq(parameter)p Ft(.)630
+518 y(The)c(v)-5 b(alue)32 b(of)f Fq(parameter)38 b Ft(is)31
+b(then)g(substituted.)42 b(P)m(ositional)33 b(parameters)e(and)f(sp)s
+(ecial)630 628 y(parameters)h(ma)m(y)g(not)f(b)s(e)g(assigned)h(to)g
+(in)f(this)g(w)m(a)m(y)-8 b(.)150 805 y Fs(${)p Fj(parameter)11
+b Fs(:?)p Fj(word)g Fs(})630 914 y Ft(If)26 b Fq(parameter)33
 b Ft(is)26 b(n)m(ull)g(or)g(unset,)h(the)f(expansion)g(of)g
 Fq(w)m(ord)k Ft(\(or)c(a)h(message)g(to)g(that)f(e\013ect)630
-518 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h(is)f(written)g(to)
-h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f(it)h(is)f(not)630
-628 y(in)m(teractiv)m(e,)33 b(exits.)42 b(Otherwise,)30
+1024 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h(is)f(written)g
+(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f(it)h(is)f(not)
+630 1133 y(in)m(teractiv)m(e,)33 b(exits.)42 b(Otherwise,)30
 b(the)h(v)-5 b(alue)31 b(of)f Fq(parameter)38 b Ft(is)30
-b(substituted.)150 788 y Fs(${)p Fj(parameter)11 b Fs(:+)p
-Fj(word)g Fs(})630 897 y Ft(If)35 b Fq(parameter)42 b
-Ft(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
-(otherwise)e(the)h(expansion)630 1007 y(of)31 b Fq(w)m(ord)i
-Ft(is)e(substituted.)150 1167 y Fs(${)p Fj(parameter)11
-b Fs(:)p Fj(offset)g Fs(})150 1277 y(${)p Fj(parameter)g
+b(substituted.)150 1310 y Fs(${)p Fj(parameter)11 b Fs(:+)p
+Fj(word)g Fs(})630 1420 y Ft(If)35 b Fq(parameter)42
+Ft(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
+(otherwise)e(the)h(expansion)630 1530 y(of)31 b Fq(w)m(ord)i
+Ft(is)e(substituted.)150 1707 y Fs(${)p Fj(parameter)11
+b Fs(:)p Fj(offset)g Fs(})150 1816 y(${)p Fj(parameter)g
 Fs(:)p Fj(offset)g Fs(:)p Fj(le)o(ngt)o(h)g Fs(})630
-1386 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g Ft(c)m(haracters)h
+1926 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g Ft(c)m(haracters)h
 (of)e Fq(parameter)53 b Ft(starting)46 b(at)g(the)f(c)m(haracter)630
-1496 y(sp)s(eci\014ed)30 b(b)m(y)h Fq(o\013set)p Ft(.)42
+2035 y(sp)s(eci\014ed)30 b(b)m(y)h Fq(o\013set)p Ft(.)42
 b(If)31 b Fq(length)g Ft(is)g(omitted,)h(expands)e(to)h(the)g
-(substring)f(of)g Fq(parameter)630 1606 y Ft(starting)38
+(substring)f(of)g Fq(parameter)630 2145 y Ft(starting)38
 b(at)g(the)f(c)m(haracter)i(sp)s(eci\014ed)e(b)m(y)g
 Fq(o\013set)p Ft(.)62 b Fq(length)38 b Ft(and)f Fq(o\013set)j
-Ft(are)e(arithmetic)630 1715 y(expressions)30 b(\(see)i(Section)g(6.5)g
-([Shell)f(Arithmetic],)h(page)g(72\).)43 b(This)30 b(is)h(referred)f
-(to)i(as)630 1825 y(Substring)d(Expansion.)630 1960 y
+Ft(are)e(arithmetic)630 2255 y(expressions)30 b(\(see)i(Section)g(6.5)g
+([Shell)f(Arithmetic],)h(page)g(74\).)43 b(This)30 b(is)h(referred)f
+(to)i(as)630 2364 y(Substring)d(Expansion.)630 2508 y
 Fq(length)j Ft(m)m(ust)f(ev)-5 b(aluate)33 b(to)f(a)g(n)m(um)m(b)s(er)e
 (greater)i(than)f(or)g(equal)h(to)g(zero.)45 b(If)30
-b Fq(o\013set)35 b Ft(ev)-5 b(al-)630 2069 y(uates)36
+b Fq(o\013set)35 b Ft(ev)-5 b(al-)630 2617 y(uates)36
 b(to)h(a)f(n)m(um)m(b)s(er)e(less)i(than)f(zero,)j(the)e(v)-5
 b(alue)36 b(is)g(used)f(as)g(an)h(o\013set)h(from)e(the)h(end)630
-2179 y(of)i(the)f(v)-5 b(alue)38 b(of)g Fq(parameter)p
+2727 y(of)i(the)f(v)-5 b(alue)38 b(of)g Fq(parameter)p
 Ft(.)62 b(If)37 b Fq(parameter)45 b Ft(is)37 b(`)p Fs(@)p
 Ft(',)j(the)d(result)h(is)f Fq(length)h Ft(p)s(ositional)630
-2288 y(parameters)d(b)s(eginning)e(at)i Fq(o\013set)p
+2836 y(parameters)d(b)s(eginning)e(at)i Fq(o\013set)p
 Ft(.)54 b(If)34 b Fq(parameter)41 b Ft(is)34 b(an)h(arra)m(y)f(name)h
-(indexed)f(b)m(y)g(`)p Fs(@)p Ft(')630 2398 y(or)f(`)p
+(indexed)f(b)m(y)g(`)p Fs(@)p Ft(')630 2946 y(or)f(`)p
 Fs(*)p Ft(',)g(the)g(result)g(is)g(the)g Fq(length)g
 Ft(mem)m(b)s(ers)f(of)h(the)g(arra)m(y)g(b)s(eginning)f(with)g
-Fs(${)p Fj(param-)630 2508 y(eter)11 b Fs([)p Fj(offset)g
+Fs(${)p Fj(param-)630 3055 y(eter)11 b Fs([)p Fj(offset)g
 Fs(]})p Ft(.)65 b(A)40 b(negativ)m(e)j Fq(o\013set)g
 Ft(is)d(tak)m(en)h(relativ)m(e)h(to)f(one)g(greater)g(than)f(the)630
-2617 y(maxim)m(um)27 b(index)g(of)g(the)h(sp)s(eci\014ed)e(arra)m(y)-8
+3165 y(maxim)m(um)27 b(index)g(of)g(the)h(sp)s(eci\014ed)e(arra)m(y)-8
 b(.)41 b(Note)28 b(that)g(a)g(negativ)m(e)h(o\013set)f(m)m(ust)f(b)s(e)
-g(sep-)630 2727 y(arated)d(from)e(the)i(colon)g(b)m(y)f(at)h(least)g
+g(sep-)630 3275 y(arated)d(from)e(the)i(colon)g(b)m(y)f(at)h(least)g
 (one)g(space)f(to)h(a)m(v)m(oid)h(b)s(eing)d(confused)h(with)g(the)g(`)
-p Fs(:-)p Ft(')630 2836 y(expansion.)61 b(Substring)35
+p Fs(:-)p Ft(')630 3384 y(expansion.)61 b(Substring)35
 b(indexing)i(is)g(zero-based)h(unless)e(the)i(p)s(ositional)g
-(parameters)630 2946 y(are)31 b(used,)f(in)g(whic)m(h)g(case)h(the)g
-(indexing)f(starts)h(at)g(1.)150 3106 y Fs(${!)p Fj(prefix)11
-b Fs(*})150 3216 y(${!)p Fj(prefix)g Fs(@})630 3325 y
+(parameters)630 3494 y(are)31 b(used,)f(in)g(whic)m(h)g(case)h(the)g
+(indexing)f(starts)h(at)g(1.)150 3671 y Fs(${!)p Fj(prefix)11
+b Fs(*})150 3780 y(${!)p Fj(prefix)g Fs(@})630 3890 y
 Ft(Expands)34 b(to)j(the)f(names)g(of)g(v)-5 b(ariables)37
 b(whose)e(names)h(b)s(egin)f(with)h Fq(pre\014x)p Ft(,)g(separated)630
-3435 y(b)m(y)30 b(the)h(\014rst)e(c)m(haracter)j(of)f(the)g
-Fs(IFS)e Ft(sp)s(ecial)i(v)-5 b(ariable.)150 3595 y Fs(${!)p
-Fj(name)11 b Fs([@]})150 3705 y(${!)p Fj(name)g Fs([*]})630
-3814 y Ft(If)26 b Fq(name)32 b Ft(is)27 b(an)f(arra)m(y)h(v)-5
+4000 y(b)m(y)30 b(the)h(\014rst)e(c)m(haracter)j(of)f(the)g
+Fs(IFS)e Ft(sp)s(ecial)i(v)-5 b(ariable.)150 4177 y Fs(${!)p
+Fj(name)11 b Fs([@]})150 4286 y(${!)p Fj(name)g Fs([*]})630
+4396 y Ft(If)26 b Fq(name)32 b Ft(is)27 b(an)f(arra)m(y)h(v)-5
 b(ariable,)29 b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g
-(\(k)m(eys\))h(assigned)630 3924 y(in)c Fq(name)p Ft(.)39
+(\(k)m(eys\))h(assigned)630 4505 y(in)c Fq(name)p Ft(.)39
 b(If)24 b Fq(name)30 b Ft(is)24 b(not)h(an)f(arra)m(y)-8
 b(,)27 b(expands)c(to)j(0)f(if)f Fq(name)30 b Ft(is)24
-b(set)h(and)f(n)m(ull)g(otherwise.)630 4033 y(When)39
+b(set)h(and)f(n)m(ull)g(otherwise.)630 4615 y(When)39
 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f(the)i(expansion)f(app)s(ears)g
-(within)f(double)h(quotes,)k(eac)m(h)d(k)m(ey)630 4143
-y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 4303
-y Fs(${#)p Fj(parameter)11 b Fs(})630 4413 y Ft(The)40
+(within)f(double)h(quotes,)k(eac)m(h)d(k)m(ey)630 4725
+y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 4902
+y Fs(${#)p Fj(parameter)11 b Fs(})630 5011 y Ft(The)40
 b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5
 b(alue)41 b(of)f Fq(parameter)47 b Ft(is)40 b(substituted.)630
-4522 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p
+5121 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p
 Fs(@)p Ft(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m
-(b)s(er)f(of)h(p)s(ositional)630 4632 y(parameters.)i(If)32
+(b)s(er)f(of)h(p)s(ositional)630 5230 y(parameters.)i(If)32
 b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m
 (y)g(`)p Fs(*)p Ft(')h(or)g(`)p Fs(@)p Ft(',)g(the)g(v)-5
-b(alue)630 4741 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h
-(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)150 4902 y
-Fs(${)p Fj(parameter)11 b Fs(#)p Fj(word)g Fs(})150 5011
-y(${)p Fj(parameter)g Fs(##)p Fj(word)g Fs(})630 5121
-y Ft(The)31 b Fq(w)m(ord)k Ft(is)d(expanded)f(to)i(pro)s(duce)e(a)h
+b(alue)630 5340 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h
+(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)p eop end
+%%Page: 21 27
+TeXDict begin 21 26 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299
+y Fs(${)p Fj(parameter)11 b Fs(#)p Fj(word)g Fs(})150
+408 y(${)p Fj(parameter)g Fs(##)p Fj(word)g Fs(})630
+518 y Ft(The)31 b Fq(w)m(ord)k Ft(is)d(expanded)f(to)i(pro)s(duce)e(a)h
 (pattern)g(just)f(as)i(in)e(\014lename)h(expansion)g(\(see)630
-5230 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(23\).)56
+628 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(23\).)56
 b(If)35 b(the)h(pattern)f(matc)m(hes)i(the)e(b)s(e-)630
-5340 y(ginning)28 b(of)g(the)h(expanded)e(v)-5 b(alue)29
+737 y(ginning)28 b(of)g(the)h(expanded)e(v)-5 b(alue)29
 b(of)f Fq(parameter)p Ft(,)h(then)f(the)g(result)g(of)h(the)f
-(expansion)g(is)p eop end
-%%Page: 21 27
-TeXDict begin 21 26 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)630 299
-y(the)36 b(expanded)f(v)-5 b(alue)36 b(of)g Fq(parameter)43
-b Ft(with)35 b(the)h(shortest)g(matc)m(hing)h(pattern)f(\(the)g(`)p
-Fs(#)p Ft(')630 408 y(case\))26 b(or)f(the)g(longest)g(matc)m(hing)h
-(pattern)f(\(the)g(`)p Fs(##)p Ft(')g(case\))h(deleted.)39
-b(If)24 b Fq(parameter)32 b Ft(is)25 b(`)p Fs(@)p Ft(')630
-518 y(or)j(`)p Fs(*)p Ft(',)i(the)e(pattern)h(remo)m(v)-5
-b(al)29 b(op)s(eration)g(is)f(applied)h(to)g(eac)m(h)g(p)s(ositional)g
-(parameter)g(in)630 628 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g
-(resultan)m(t)g(list.)45 b(If)32 b Fq(parameter)38 b
-Ft(is)32 b(an)g(arra)m(y)g(v)-5 b(ariable)630 737 y(subscripted)39
-b(with)g(`)p Fs(@)p Ft(')h(or)g(`)p Fs(*)p Ft(',)j(the)d(pattern)h
-(remo)m(v)-5 b(al)41 b(op)s(eration)f(is)g(applied)g(to)h(eac)m(h)630
-847 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h
-(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 1001
+(expansion)g(is)630 847 y(the)36 b(expanded)f(v)-5 b(alue)36
+b(of)g Fq(parameter)43 b Ft(with)35 b(the)h(shortest)g(matc)m(hing)h
+(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 956 y(case\))26
+b(or)f(the)g(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p
+Fs(##)p Ft(')g(case\))h(deleted.)39 b(If)24 b Fq(parameter)32
+b Ft(is)25 b(`)p Fs(@)p Ft(')630 1066 y(or)j(`)p Fs(*)p
+Ft(',)i(the)e(pattern)h(remo)m(v)-5 b(al)29 b(op)s(eration)g(is)f
+(applied)h(to)g(eac)m(h)g(p)s(ositional)g(parameter)g(in)630
+1176 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.)
+45 b(If)32 b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(v)-5
+b(ariable)630 1285 y(subscripted)39 b(with)g(`)p Fs(@)p
+Ft(')h(or)g(`)p Fs(*)p Ft(',)j(the)d(pattern)h(remo)m(v)-5
+b(al)41 b(op)s(eration)f(is)g(applied)g(to)h(eac)m(h)630
+1395 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h
+(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 1553
 y Fs(${)p Fj(parameter)11 b Fs(\045)p Fj(word)g Fs(})150
-1110 y(${)p Fj(parameter)g Fs(\045\045)p Fj(word)g Fs(})630
-1220 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a)
+1662 y(${)p Fj(parameter)g Fs(\045\045)p Fj(word)g Fs(})630
+1772 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a)
 i(pattern)f(just)g(as)h(in)f(\014lename)h(expansion.)55
-b(If)630 1330 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s
+b(If)630 1881 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s
 (ortion)e(of)h(the)g(expanded)g(v)-5 b(alue)43 b(of)g
-Fq(parameter)p Ft(,)630 1439 y(then)c(the)g(result)g(of)h(the)f
+Fq(parameter)p Ft(,)630 1991 y(then)c(the)g(result)g(of)h(the)f
 (expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fq(parameter)46
-b Ft(with)39 b(the)h(shortest)630 1549 y(matc)m(hing)31
+b Ft(with)39 b(the)h(shortest)630 2100 y(matc)m(hing)31
 b(pattern)e(\(the)h(`)p Fs(\045)p Ft(')g(case\))h(or)e(the)h(longest)h
 (matc)m(hing)f(pattern)g(\(the)g(`)p Fs(\045\045)p Ft(')g(case\))630
-1658 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33
+2210 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33
 b(`)p Fs(@)p Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(pattern)g(remo)m(v)-5
-b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 1768 y(eac)m(h)38
+b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 2320 y(eac)m(h)38
 b(p)s(ositional)g(parameter)g(in)f(turn,)h(and)e(the)h(expansion)g(is)h
-(the)f(resultan)m(t)h(list.)61 b(If)630 1878 y Fq(parameter)38
+(the)f(resultan)m(t)h(list.)61 b(If)630 2429 y Fq(parameter)38
 b Ft(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h
 (`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)g(the)f(pattern)h(remo)m(v)-5
-b(al)630 1987 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m
+b(al)630 2539 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m
 (b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g
-(is)630 2097 y(the)h(resultan)m(t)g(list.)150 2251 y
+(is)630 2648 y(the)h(resultan)m(t)g(list.)150 2806 y
 Fs(${)p Fj(parameter)11 b Fs(/)p Fj(pattern)g Fs(/)p
-Fj(s)o(tri)o(ng)f Fs(})150 2360 y(${)p Fj(parameter)h
-Fs(//)p Fj(pattern)g Fs(/)o Fj(str)o(ing)f Fs(})630 2470
-y Ft(The)37 b Fq(pattern)g Ft(is)g(expanded)g(to)h(pro)s(duce)e(a)h
-(pattern)g(just)g(as)h(in)e(\014lename)i(expansion.)630
-2580 y Fq(P)m(arameter)46 b Ft(is)38 b(expanded)f(and)g(the)i(longest)g
-(matc)m(h)g(of)f Fq(pattern)g Ft(against)h(its)f(v)-5
-b(alue)39 b(is)630 2689 y(replaced)e(with)f Fq(string)p
-Ft(.)58 b(In)35 b(the)i(\014rst)e(form,)j(only)e(the)h(\014rst)e(matc)m
-(h)i(is)g(replaced.)58 b(The)630 2799 y(second)26 b(form)g(causes)h
-(all)g(matc)m(hes)g(of)g Fq(pattern)f Ft(to)h(b)s(e)f(replaced)h(with)f
-Fq(string)p Ft(.)39 b(If)26 b Fq(pattern)630 2908 y Ft(b)s(egins)35
-b(with)g(`)p Fs(#)p Ft(',)i(it)f(m)m(ust)f(matc)m(h)h(at)g(the)g(b)s
-(eginning)f(of)g(the)h(expanded)e(v)-5 b(alue)36 b(of)g
-Fq(pa-)630 3018 y(rameter)p Ft(.)45 b(If)32 b Fq(pattern)g
-Ft(b)s(egins)f(with)g(`)p Fs(\045)p Ft(',)i(it)f(m)m(ust)g(matc)m(h)g
-(at)h(the)f(end)f(of)h(the)g(expanded)630 3128 y(v)-5
-b(alue)33 b(of)g Fq(parameter)p Ft(.)47 b(If)32 b Fq(string)40
-b Ft(is)33 b(n)m(ull,)g(matc)m(hes)g(of)g Fq(pattern)g
-Ft(are)g(deleted)g(and)f(the)g Fs(/)630 3237 y Ft(follo)m(wing)37
-b Fq(pattern)e Ft(ma)m(y)h(b)s(e)e(omitted.)56 b(If)35
-b Fq(parameter)42 b Ft(is)36 b(`)p Fs(@)p Ft(')f(or)g(`)p
-Fs(*)p Ft(',)i(the)e(substitution)630 3347 y(op)s(eration)30
-b(is)f(applied)g(to)h(eac)m(h)g(p)s(ositional)g(parameter)g(in)e(turn,)
-h(and)g(the)g(expansion)g(is)630 3456 y(the)i(resultan)m(t)h(list.)45
-b(If)30 b Fq(parameter)39 b Ft(is)31 b(an)g(arra)m(y)h(v)-5
-b(ariable)32 b(subscripted)e(with)h(`)p Fs(@)p Ft(')g(or)h(`)p
-Fs(*)p Ft(',)630 3566 y(the)e(substitution)g(op)s(eration)h(is)f
-(applied)g(to)h(eac)m(h)h(mem)m(b)s(er)e(of)g(the)g(arra)m(y)h(in)f
-(turn,)g(and)630 3675 y(the)h(expansion)f(is)g(the)h(resultan)m(t)g
-(list.)150 3892 y Fk(3.5.4)63 b(Command)41 b(Substitution)275
-4133 y Ft(Command)29 b(substitution)i(allo)m(ws)h(the)f(output)g(of)g
-(a)g(command)g(to)g(replace)h(the)f(command)g(itself.)150
-4243 y(Command)e(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)g
-(enclosed)h(as)g(follo)m(ws:)390 4374 y Fs($\()p Fj(command)11
-b Fs(\))150 4506 y Ft(or)390 4638 y Fs(`)p Fj(command)g
-Fs(`)150 4770 y Ft(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h
+Fj(s)o(tri)o(ng)f Fs(})630 2916 y Ft(The)37 b Fq(pattern)g
+Ft(is)g(expanded)g(to)h(pro)s(duce)e(a)h(pattern)g(just)g(as)h(in)e
+(\014lename)i(expansion.)630 3025 y Fq(P)m(arameter)46
+b Ft(is)38 b(expanded)f(and)g(the)i(longest)g(matc)m(h)g(of)f
+Fq(pattern)g Ft(against)h(its)f(v)-5 b(alue)39 b(is)630
+3135 y(replaced)34 b(with)e Fq(string)p Ft(.)49 b(If)33
+b Fq(pattern)g Ft(b)s(egins)g(with)f(`)p Fs(/)p Ft(',)j(all)f(matc)m
+(hes)g(of)f Fq(pattern)g Ft(are)h(re-)630 3244 y(placed)28
+b(with)f Fq(string)p Ft(.)40 b(Normally)28 b(only)f(the)h(\014rst)e
+(matc)m(h)j(is)e(replaced.)40 b(If)27 b Fq(pattern)g
+Ft(b)s(egins)630 3354 y(with)34 b(`)p Fs(#)p Ft(',)h(it)g(m)m(ust)f
+(matc)m(h)h(at)f(the)h(b)s(eginning)e(of)h(the)g(expanded)f(v)-5
+b(alue)35 b(of)f Fq(parameter)p Ft(.)630 3464 y(If)g
+Fq(pattern)g Ft(b)s(egins)g(with)g(`)p Fs(\045)p Ft(',)h(it)g(m)m(ust)f
+(matc)m(h)h(at)g(the)f(end)g(of)g(the)h(expanded)e(v)-5
+b(alue)35 b(of)630 3573 y Fq(parameter)p Ft(.)41 b(If)29
+b Fq(string)37 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)h(of)e
+Fq(pattern)h Ft(are)g(deleted)g(and)f(the)g Fs(/)g Ft(follo)m(wing)630
+3683 y Fq(pattern)34 b Ft(ma)m(y)g(b)s(e)f(omitted.)51
+b(If)33 b Fq(parameter)41 b Ft(is)33 b(`)p Fs(@)p Ft(')h(or)g(`)p
+Fs(*)p Ft(',)g(the)g(substitution)f(op)s(eration)630
+3792 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g(parameter)f(in)
+g(turn,)h(and)e(the)h(expansion)g(is)g(the)g(re-)630
+3902 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43
+b Ft(is)36 b(an)g(arra)m(y)h(v)-5 b(ariable)37 b(subscripted)e(with)h
+(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 4012
+y(substitution)30 b(op)s(eration)h(is)f(applied)g(to)h(eac)m(h)g(mem)m
+(b)s(er)f(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)630
+4121 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150
+4343 y Fk(3.5.4)63 b(Command)41 b(Substitution)275 4586
+y Ft(Command)29 b(substitution)i(allo)m(ws)h(the)f(output)g(of)g(a)g
+(command)g(to)g(replace)h(the)f(command)g(itself.)150
+4696 y(Command)e(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)g
+(enclosed)h(as)g(follo)m(ws:)390 4829 y Fs($\()p Fj(command)11
+b Fs(\))150 4963 y Ft(or)390 5097 y Fs(`)p Fj(command)g
+Fs(`)150 5230 y Ft(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h
 (executing)i Fq(command)h Ft(and)c(replacing)i(the)f(command)g(sub-)150
-4879 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g
-(command,)j(with)d(an)m(y)h(trailing)g(newlines)f(deleted.)150
-4989 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e
-(they)g(ma)m(y)h(b)s(e)f(remo)m(v)m(ed)i(during)d(w)m(ord)h(splitting.)
-44 b(The)150 5099 y(command)21 b(substitution)g Fs($\(cat)29
-b Fj(file)11 b Fs(\))20 b Ft(can)i(b)s(e)f(replaced)g(b)m(y)h(the)g
-(equiv)-5 b(alen)m(t)22 b(but)f(faster)h Fs($\(<)30 b
-Fj(file)11 b Fs(\))p Ft(.)275 5230 y(When)33 b(the)i(old-st)m(yle)h
-(bac)m(kquote)f(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f
-(retains)h(its)f(literal)150 5340 y(meaning)k(except)h(when)e(follo)m
-(w)m(ed)j(b)m(y)e(`)p Fs($)p Ft(',)j(`)p Fs(`)p Ft(',)f(or)e(`)p
-Fs(\\)p Ft('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g
-(b)m(y)g(a)p eop end
+5340 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g
+(command,)j(with)d(an)m(y)h(trailing)g(newlines)f(deleted.)p
+eop end
 %%Page: 22 28
 TeXDict begin 22 27 bop 150 -116 a Ft(22)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(bac)m(kslash)41 b(terminates)g(the)f
-(command)g(substitution.)69 b(When)40 b(using)g(the)g
-Fs($\()p Fj(command)11 b Fs(\))37 b Ft(form,)42 b(all)150
-408 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)
-m(e)g(up)f(the)g(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8
-b(.)275 541 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
+b(Reference)g(Man)m(ual)150 299 y(Em)m(b)s(edded)f(newlines)h(are)h
+(not)f(deleted,)i(but)e(they)g(ma)m(y)h(b)s(e)f(remo)m(v)m(ed)i(during)
+d(w)m(ord)h(splitting.)44 b(The)150 408 y(command)21
+b(substitution)g Fs($\(cat)29 b Fj(file)11 b Fs(\))20
+b Ft(can)i(b)s(e)f(replaced)g(b)m(y)h(the)g(equiv)-5
+b(alen)m(t)22 b(but)f(faster)h Fs($\(<)30 b Fj(file)11
+b Fs(\))p Ft(.)275 547 y(When)33 b(the)i(old-st)m(yle)h(bac)m(kquote)f
+(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f(retains)h(its)f
+(literal)150 656 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e
+(`)p Fs($)p Ft(',)j(`)p Fs(`)p Ft(',)f(or)e(`)p Fs(\\)p
+Ft('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g(b)m(y)g
+(a)150 766 y(bac)m(kslash)j(terminates)g(the)f(command)g(substitution.)
+69 b(When)40 b(using)g(the)g Fs($\()p Fj(command)11 b
+Fs(\))37 b Ft(form,)42 b(all)150 875 y(c)m(haracters)32
+b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)m(e)g(up)f(the)g
+(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8 b(.)275
+1014 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
 b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g
-(escap)s(e)150 651 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
-(kslashes.)275 784 y(If)e(the)i(substitution)e(app)s(ears)h(within)g
+(escap)s(e)150 1123 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
+(kslashes.)275 1262 y(If)e(the)i(substitution)e(app)s(ears)h(within)g
 (double)f(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)
-150 894 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
-1113 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)275 1356
+150 1371 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
+1603 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)275 1851
 y Ft(Arithmetic)33 b(expansion)f(allo)m(ws)i(the)e(ev)-5
 b(aluation)34 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g
-(substi-)150 1465 y(tution)f(of)f(the)h(result.)40 b(The)30
-b(format)h(for)f(arithmetic)i(expansion)e(is:)390 1598
-y Fs($\(\()47 b Fj(expression)55 b Fs(\)\))275 1731 y
+(substi-)150 1960 y(tution)f(of)f(the)h(result.)40 b(The)30
+b(format)h(for)f(arithmetic)i(expansion)e(is:)390 2098
+y Fs($\(\()47 b Fj(expression)55 b Fs(\)\))275 2237 y
 Ft(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g
 (within)f(double)h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150
-1841 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
+2346 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
 b(.)41 b(All)27 b(tok)m(ens)h(in)e(the)h(expression)g(undergo)f
-(parameter)h(ex-)150 1951 y(pansion,)h(command)f(substitution,)h(and)f
+(parameter)h(ex-)150 2456 y(pansion,)h(command)f(substitution,)h(and)f
 (quote)i(remo)m(v)-5 b(al.)41 b(Arithmetic)28 b(expansions)g(ma)m(y)g
-(b)s(e)f(nested.)275 2083 y(The)34 b(ev)-5 b(aluation)37
+(b)s(e)f(nested.)275 2594 y(The)34 b(ev)-5 b(aluation)37
 b(is)f(p)s(erformed)e(according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m
-(w)g(\(see)g(Section)g(6.5)h([Shell)150 2193 y(Arithmetic],)32
-b(page)f(72\).)42 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5
+(w)g(\(see)g(Section)g(6.5)h([Shell)150 2704 y(Arithmetic],)32
+b(page)f(74\).)42 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5
 b(alid,)32 b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150
-2303 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
-(ccurs.)150 2522 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)275
-2765 y Ft(Pro)s(cess)33 b(substitution)h(is)g(supp)s(orted)e(on)h
+2813 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
+(ccurs.)150 3045 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)275
+3293 y Ft(Pro)s(cess)33 b(substitution)h(is)g(supp)s(orted)e(on)h
 (systems)h(that)h(supp)s(ort)d(named)h(pip)s(es)g(\()p
-Fl(fif)n(o)p Ft(s\))h(or)g(the)150 2874 y(`)p Fs(/dev/fd)p
+Fl(fif)n(o)p Ft(s\))h(or)g(the)150 3402 y(`)p Fs(/dev/fd)p
 Ft(')29 b(metho)s(d)h(of)g(naming)g(op)s(en)g(\014les.)41
-b(It)30 b(tak)m(es)i(the)f(form)f(of)390 3007 y Fs(<\()p
-Fj(list)11 b Fs(\))150 3140 y Ft(or)390 3273 y Fs(>\()p
-Fj(list)g Fs(\))150 3406 y Ft(The)23 b(pro)s(cess)g Fq(list)j
+b(It)30 b(tak)m(es)i(the)f(form)f(of)390 3540 y Fs(<\()p
+Fj(list)11 b Fs(\))150 3679 y Ft(or)390 3817 y Fs(>\()p
+Fj(list)g Fs(\))150 3955 y Ft(The)23 b(pro)s(cess)g Fq(list)j
 Ft(is)d(run)f(with)h(its)h(input)f(or)g(output)g(connected)h(to)h(a)e
 Fl(fif)n(o)g Ft(or)h(some)g(\014le)f(in)g(`)p Fs(/dev/fd)p
-Ft('.)150 3516 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)
+Ft('.)150 4065 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)
 h(an)f(argumen)m(t)h(to)h(the)f(curren)m(t)f(command)h(as)f(the)h
-(result)g(of)g(the)150 3626 y(expansion.)40 b(If)28 b(the)h
+(result)g(of)g(the)150 4174 y(expansion.)40 b(If)28 b(the)h
 Fs(>\()p Fj(list)11 b Fs(\))26 b Ft(form)i(is)h(used,)f(writing)h(to)g
 (the)g(\014le)f(will)h(pro)m(vide)g(input)f(for)g Fq(list)p
-Ft(.)41 b(If)28 b(the)150 3735 y Fs(<\()p Fj(list)11
+Ft(.)41 b(If)28 b(the)150 4284 y Fs(<\()p Fj(list)11
 b Fs(\))23 b Ft(form)h(is)i(used,)f(the)h(\014le)f(passed)g(as)g(an)g
 (argumen)m(t)h(should)e(b)s(e)h(read)g(to)h(obtain)g(the)f(output)g(of)
-150 3845 y Fq(list)p Ft(.)41 b(Note)31 b(that)f(no)g(space)g(ma)m(y)g
+150 4394 y Fq(list)p Ft(.)41 b(Note)31 b(that)f(no)g(space)g(ma)m(y)g
 (app)s(ear)f(b)s(et)m(w)m(een)h(the)g Fs(<)f Ft(or)h
 Fs(>)f Ft(and)g(the)h(left)g(paren)m(thesis,)h(otherwise)150
-3954 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h
-(redirection.)275 4087 y(When)36 b(a)m(v)-5 b(ailable,)40
+4503 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h
+(redirection.)275 4641 y(When)36 b(a)m(v)-5 b(ailable,)40
 b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m(ultaneously)i
-(with)g(parameter)g(and)150 4197 y(v)-5 b(ariable)31
+(with)g(parameter)g(and)150 4751 y(v)-5 b(ariable)31
 b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)i(expansion.)
-150 4416 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)275
-4659 y Ft(The)35 b(shell)i(scans)f(the)g(results)g(of)g(parameter)h
+150 4983 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)275
+5230 y Ft(The)35 b(shell)i(scans)f(the)g(results)g(of)g(parameter)h
 (expansion,)h(command)d(substitution,)j(and)e(arith-)150
-4769 y(metic)31 b(expansion)g(that)g(did)e(not)i(o)s(ccur)f(within)g
-(double)g(quotes)h(for)f(w)m(ord)g(splitting.)275 4902
+5340 y(metic)31 b(expansion)g(that)g(did)e(not)i(o)s(ccur)f(within)g
+(double)g(quotes)h(for)f(w)m(ord)g(splitting.)p eop end
+%%Page: 23 29
+TeXDict begin 23 28 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)275 299
 y(The)43 b(shell)h(treats)h(eac)m(h)h(c)m(haracter)f(of)g
 Fs($IFS)e Ft(as)h(a)g(delimiter,)49 b(and)43 b(splits)h(the)h(results)e
-(of)i(the)150 5011 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h
+(of)i(the)150 408 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h
 (these)g(c)m(haracters.)70 b(If)39 b Fs(IFS)g Ft(is)h(unset,)i(or)d
-(its)h(v)-5 b(alue)40 b(is)g(exactly)150 5121 y Fs
+(its)h(v)-5 b(alue)40 b(is)g(exactly)150 518 y Fs
 (<space><tab><newline>)p Ft(,)20 b(the)25 b(default,)h(then)e(an)m(y)g
 (sequence)h(of)g Fs(IFS)e Ft(c)m(haracters)j(serv)m(es)f(to)g(delimit)
-150 5230 y(w)m(ords.)38 b(If)21 b Fs(IFS)h Ft(has)g(a)h(v)-5
+150 628 y(w)m(ords.)38 b(If)21 b Fs(IFS)h Ft(has)g(a)h(v)-5
 b(alue)23 b(other)f(than)h(the)f(default,)j(then)d(sequences)g(of)h
-(the)f(whitespace)h(c)m(haracters)150 5340 y Fs(space)j
+(the)f(whitespace)h(c)m(haracters)150 737 y Fs(space)j
 Ft(and)h Fs(tab)g Ft(are)h(ignored)g(at)h(the)f(b)s(eginning)f(and)g
-(end)g(of)h(the)g(w)m(ord,)g(as)g(long)g(as)g(the)g(whitespace)p
-eop end
-%%Page: 23 29
-TeXDict begin 23 28 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
-y(c)m(haracter)34 b(is)f(in)f(the)h(v)-5 b(alue)33 b(of)f
-Fs(IFS)g Ft(\(an)h Fs(IFS)e Ft(whitespace)j(c)m(haracter\).)49
+(end)g(of)h(the)g(w)m(ord,)g(as)g(long)g(as)g(the)g(whitespace)150
+847 y(c)m(haracter)34 b(is)f(in)f(the)h(v)-5 b(alue)33
+b(of)f Fs(IFS)g Ft(\(an)h Fs(IFS)e Ft(whitespace)j(c)m(haracter\).)49
 b(An)m(y)32 b(c)m(haracter)i(in)f Fs(IFS)e Ft(that)150
-408 y(is)f(not)h Fs(IFS)f Ft(whitespace,)h(along)g(with)f(an)m(y)h
+956 y(is)f(not)h Fs(IFS)f Ft(whitespace,)h(along)g(with)f(an)m(y)h
 (adjacen)m(t)h Fs(IFS)d Ft(whitespace)i(c)m(haracters,)h(delimits)f(a)g
-(\014eld.)150 518 y(A)h(sequence)h(of)f Fs(IFS)f Ft(whitespace)i(c)m
+(\014eld.)150 1066 y(A)h(sequence)h(of)f Fs(IFS)f Ft(whitespace)i(c)m
 (haracters)h(is)e(also)h(treated)g(as)g(a)f(delimiter.)47
-b(If)32 b(the)g(v)-5 b(alue)33 b(of)f Fs(IFS)150 628
+b(If)32 b(the)g(v)-5 b(alue)33 b(of)f Fs(IFS)150 1176
 y Ft(is)e(n)m(ull,)h(no)f(w)m(ord)g(splitting)h(o)s(ccurs.)275
-764 y(Explicit)44 b(n)m(ull)f(argumen)m(ts)g(\()p Fs("")g
+1304 y(Explicit)44 b(n)m(ull)f(argumen)m(ts)g(\()p Fs("")g
 Ft(or)h Fs('')p Ft(\))f(are)g(retained.)80 b(Unquoted)43
-b(implicit)h(n)m(ull)f(argumen)m(ts,)150 873 y(resulting)24
+b(implicit)h(n)m(ull)f(argumen)m(ts,)150 1414 y(resulting)24
 b(from)f(the)g(expansion)g(of)h(parameters)g(that)g(ha)m(v)m(e)h(no)e
 (v)-5 b(alues,)25 b(are)f(remo)m(v)m(ed.)40 b(If)23 b(a)g(parameter)150
-983 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double)g
-(quotes,)h(a)g(n)m(ull)f(argumen)m(t)h(results)f(and)g(is)g(retained.)
-275 1119 y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h
-(splitting)g(is)f(p)s(erformed.)150 1345 y Fk(3.5.8)63
-b(Filename)41 b(Expansion)275 1591 y Ft(After)22 b(w)m(ord)g
+1524 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double)
+g(quotes,)h(a)g(n)m(ull)f(argumen)m(t)h(results)f(and)g(is)g(retained.)
+275 1652 y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h
+(splitting)g(is)f(p)s(erformed.)150 1859 y Fk(3.5.8)63
+b(Filename)41 b(Expansion)275 2098 y Ft(After)22 b(w)m(ord)g
 (splitting,)j(unless)d(the)h(`)p Fs(-f)p Ft(')f(option)h(has)f(b)s(een)
 g(set)h(\(see)g(Section)h(4.3)f([The)f(Set)h(Builtin],)150
-1701 y(page)k(51\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c)
+2207 y(page)k(53\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c)
 m(haracters)g(`)p Fs(*)p Ft(',)h(`)p Fs(?)p Ft(',)g(and)e(`)p
 Fs([)p Ft('.)39 b(If)26 b(one)h(of)g(these)f(c)m(haracters)150
-1810 y(app)s(ears,)h(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g
+2317 y(app)s(ears,)h(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g
 Fq(pattern)p Ft(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h
-(sorted)150 1920 y(list)k(of)g(\014le)g(names)g(matc)m(hing)h(the)f
+(sorted)150 2426 y(list)k(of)g(\014le)g(names)g(matc)m(hing)h(the)f
 (pattern.)45 b(If)32 b(no)f(matc)m(hing)i(\014le)f(names)g(are)g
-(found,)f(and)h(the)g(shell)150 2029 y(option)c Fs(nullglob)e
+(found,)f(and)h(the)g(shell)150 2536 y(option)c Fs(nullglob)e
 Ft(is)i(disabled,)h(the)f(w)m(ord)g(is)g(left)g(unc)m(hanged.)40
 b(If)28 b(the)g Fs(nullglob)e Ft(option)i(is)g(set,)i(and)150
-2139 y(no)38 b(matc)m(hes)h(are)f(found,)h(the)f(w)m(ord)f(is)h(remo)m
+2645 y(no)38 b(matc)m(hes)h(are)f(found,)h(the)f(w)m(ord)f(is)h(remo)m
 (v)m(ed.)65 b(If)37 b(the)h Fs(failglob)e Ft(shell)i(option)g(is)g
-(set,)j(and)c(no)150 2248 y(matc)m(hes)f(are)g(found,)f(an)g(error)f
+(set,)j(and)c(no)150 2755 y(matc)m(hes)f(are)g(found,)f(an)g(error)f
 (message)j(is)e(prin)m(ted)f(and)h(the)g(command)g(is)g(not)g
-(executed.)56 b(If)35 b(the)150 2358 y(shell)e(option)h
+(executed.)56 b(If)35 b(the)150 2865 y(shell)e(option)h
 Fs(nocaseglob)c Ft(is)j(enabled,)h(the)g(matc)m(h)g(is)f(p)s(erformed)e
-(without)i(regard)g(to)h(the)g(case)g(of)150 2468 y(alphab)s(etic)d(c)m
-(haracters.)275 2604 y(When)21 b(a)i(pattern)f(is)g(used)g(for)f
+(without)i(regard)g(to)h(the)g(case)g(of)150 2974 y(alphab)s(etic)d(c)m
+(haracters.)275 3103 y(When)21 b(a)i(pattern)f(is)g(used)g(for)f
 (\014lename)i(generation,)i(the)d(c)m(haracter)i(`)p
 Fs(.)p Ft(')e(at)h(the)f(start)h(of)f(a)h(\014lename)150
-2713 y(or)g(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f
+3213 y(or)g(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f
 (matc)m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g
-Fs(dotglob)150 2823 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g
+Fs(dotglob)150 3322 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g
 (\014le)f(name,)h(the)g(slash)f(c)m(haracter)i(m)m(ust)e(alw)m(a)m(ys)i
-(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 2932 y(In)30
+(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 3432 y(In)30
 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 3068 y(See)30 b(the)g(description)f
+(treated)g(sp)s(ecially)-8 b(.)275 3560 y(See)30 b(the)g(description)f
 (of)h Fs(shopt)f Ft(in)g(Section)i(4.2)g([Bash)f(Builtins],)h(page)f
-(39,)h(for)f(a)g(description)g(of)150 3178 y(the)h Fs(nocaseglob)p
+(41,)h(for)f(a)g(description)g(of)150 3670 y(the)h Fs(nocaseglob)p
 Ft(,)c Fs(nullglob)p Ft(,)i Fs(failglob)p Ft(,)f(and)i
-Fs(dotglob)e Ft(options.)275 3314 y(The)k Fs(GLOBIGNORE)f
+Fs(dotglob)e Ft(options.)275 3799 y(The)k Fs(GLOBIGNORE)f
 Ft(shell)i(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(used)f(to)i(restrict)g
-(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150 3423
+(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150 3908
 y(pattern.)k(If)25 b Fs(GLOBIGNORE)e Ft(is)j(set,)h(eac)m(h)g(matc)m
 (hing)g(\014lename)f(that)g(also)h(matc)m(hes)f(one)g(of)g(the)g
-(patterns)150 3533 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h
+(patterns)150 4018 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h
 (from)e(the)i(list)f(of)g(matc)m(hes.)50 b(The)33 b(\014lenames)g(`)p
 Fs(.)p Ft(')g(and)f(`)p Fs(..)p Ft(')h(are)g(alw)m(a)m(ys)150
-3642 y(ignored)g(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m
+4128 y(ignored)g(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m
 (ull.)48 b(Ho)m(w)m(ev)m(er,)35 b(setting)f Fs(GLOBIGNORE)c
-Ft(to)j(a)g(non-n)m(ull)150 3752 y(v)-5 b(alue)34 b(has)f(the)h
+Ft(to)j(a)g(non-n)m(ull)150 4237 y(v)-5 b(alue)34 b(has)f(the)h
 (e\013ect)h(of)f(enabling)g(the)g Fs(dotglob)e Ft(shell)h(option,)j(so)
-e(all)g(other)g(\014lenames)g(b)s(eginning)150 3862 y(with)43
+e(all)g(other)g(\014lenames)g(b)s(eginning)150 4347 y(with)43
 b(a)h(`)p Fs(.)p Ft(')f(will)h(matc)m(h.)80 b(T)-8 b(o)44
 b(get)h(the)e(old)h(b)s(eha)m(vior)f(of)h(ignoring)f(\014lenames)h(b)s
-(eginning)f(with)g(a)150 3971 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p
+(eginning)f(with)g(a)150 4456 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p
 Fs(.*)p Ft(')e(one)g(of)g(the)h(patterns)f(in)g Fs(GLOBIGNORE)p
 Ft(.)58 b(The)37 b Fs(dotglob)e Ft(option)j(is)f(disabled)g(when)150
-4081 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 4308 y Fk(3.5.8.1)63
-b(P)m(attern)40 b(Matc)m(hing)275 4553 y Ft(An)m(y)33
+4566 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 4773 y Fk(3.5.8.1)63
+b(P)m(attern)40 b(Matc)m(hing)275 5011 y Ft(An)m(y)33
 b(c)m(haracter)i(that)f(app)s(ears)f(in)g(a)h(pattern,)g(other)g(than)f
 (the)g(sp)s(ecial)h(pattern)g(c)m(haracters)h(de-)150
-4663 y(scrib)s(ed)30 b(b)s(elo)m(w,)h(matc)m(hes)h(itself.)43
+5121 y(scrib)s(ed)30 b(b)s(elo)m(w,)h(matc)m(hes)h(itself.)43
 b(The)31 b Fl(nul)f Ft(c)m(haracter)i(ma)m(y)f(not)h(o)s(ccur)e(in)h(a)
-g(pattern.)42 b(A)31 b(bac)m(kslash)150 4772 y(escap)s(es)36
+g(pattern.)42 b(A)31 b(bac)m(kslash)150 5230 y(escap)s(es)36
 b(the)f(follo)m(wing)i(c)m(haracter;)j(the)c(escaping)g(bac)m(kslash)g
-(is)f(discarded)g(when)g(matc)m(hing.)56 b(The)150 4882
+(is)f(discarded)g(when)g(matc)m(hing.)56 b(The)150 5340
 y(sp)s(ecial)31 b(pattern)f(c)m(haracters)i(m)m(ust)f(b)s(e)e(quoted)i
 (if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8
-b(.)275 5018 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
-(e)f(the)g(follo)m(wing)h(meanings:)150 5179 y Fs(*)432
-b Ft(Matc)m(hes)32 b(an)m(y)f(string,)f(including)g(the)h(n)m(ull)f
-(string.)150 5340 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m
-(haracter.)p eop end
+b(.)p eop end
 %%Page: 24 30
 TeXDict begin 24 29 bop 150 -116 a Ft(24)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs([...)o(])241 b Ft(Matc)m(hes)27
-b(an)m(y)e(one)g(of)g(the)g(enclosed)g(c)m(haracters.)41
-b(A)25 b(pair)f(of)h(c)m(haracters)i(separated)e(b)m(y)g(a)630
-408 y(h)m(yphen)i(denotes)h(a)g Fq(range)g(expression)p
+b(Reference)g(Man)m(ual)275 299 y(The)e(sp)s(ecial)i(pattern)g(c)m
+(haracters)h(ha)m(v)m(e)f(the)g(follo)m(wing)h(meanings:)150
+453 y Fs(*)432 b Ft(Matc)m(hes)32 b(an)m(y)f(string,)f(including)g(the)
+h(n)m(ull)f(string.)150 606 y Fs(?)432 b Ft(Matc)m(hes)32
+b(an)m(y)f(single)g(c)m(haracter.)150 760 y Fs([...)o(])241
+b Ft(Matc)m(hes)27 b(an)m(y)e(one)g(of)g(the)g(enclosed)g(c)m
+(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)i(separated)e(b)m(y)g
+(a)630 870 y(h)m(yphen)i(denotes)h(a)g Fq(range)g(expression)p
 Ft(;)g(an)m(y)h(c)m(haracter)g(that)f(sorts)g(b)s(et)m(w)m(een)g(those)
-h(t)m(w)m(o)630 518 y(c)m(haracters,)f(inclusiv)m(e,)f(using)d(the)h
+h(t)m(w)m(o)630 979 y(c)m(haracters,)f(inclusiv)m(e,)f(using)d(the)h
 (curren)m(t)f(lo)s(cale's)j(collating)g(sequence)e(and)f(c)m(haracter)
-630 628 y(set,)31 b(is)f(matc)m(hed.)42 b(If)30 b(the)g(\014rst)g(c)m
+630 1089 y(set,)31 b(is)f(matc)m(hed.)42 b(If)30 b(the)g(\014rst)g(c)m
 (haracter)i(follo)m(wing)g(the)e(`)p Fs([)p Ft(')h(is)f(a)h(`)p
 Fs(!)p Ft(')f(or)g(a)h(`)p Fs(^)p Ft(')g(then)f(an)m(y)630
-737 y(c)m(haracter)c(not)f(enclosed)g(is)g(matc)m(hed.)40
+1199 y(c)m(haracter)c(not)f(enclosed)g(is)g(matc)m(hed.)40
 b(A)25 b(`)p Fp(\000)p Ft(')f(ma)m(y)i(b)s(e)e(matc)m(hed)h(b)m(y)f
-(including)h(it)g(as)g(the)630 847 y(\014rst)32 b(or)h(last)h(c)m
+(including)h(it)g(as)g(the)630 1308 y(\014rst)32 b(or)h(last)h(c)m
 (haracter)h(in)e(the)g(set.)50 b(A)33 b(`)p Fs(])p Ft(')g(ma)m(y)h(b)s
 (e)e(matc)m(hed)i(b)m(y)f(including)g(it)g(as)h(the)630
-956 y(\014rst)25 b(c)m(haracter)i(in)e(the)h(set.)40
+1418 y(\014rst)25 b(c)m(haracter)i(in)e(the)h(set.)40
 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f(range)g
-(expressions)f(is)630 1066 y(determined)e(b)m(y)g(the)g(curren)m(t)f
+(expressions)f(is)630 1527 y(determined)e(b)m(y)g(the)g(curren)m(t)f
 (lo)s(cale)j(and)e(the)g(v)-5 b(alue)23 b(of)g(the)h
-Fs(LC_COLLATE)c Ft(shell)j(v)-5 b(ariable,)630 1176 y(if)30
-b(set.)630 1303 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f
+Fs(LC_COLLATE)c Ft(shell)j(v)-5 b(ariable,)630 1637 y(if)30
+b(set.)630 1769 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f
 (lo)s(cale,)k(`)p Fs([a-dx-z])p Ft(')31 b(is)i(equiv)-5
-b(alen)m(t)34 b(to)g(`)p Fs([abcdxyz])p Ft('.)630 1413
+b(alen)m(t)34 b(to)g(`)p Fs([abcdxyz])p Ft('.)630 1878
 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e(dictionary)i
-(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630 1522
+(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630 1988
 y(`)p Fs([a-dx-z])p Ft(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5
 b(alen)m(t)39 b(to)g(`)p Fs([abcdxyz])p Ft(';)g(it)g(migh)m(t)f(b)s(e)f
-(equiv)-5 b(alen)m(t)630 1632 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p
+(equiv)-5 b(alen)m(t)630 2097 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p
 Ft(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h
-(in)m(terpretation)h(of)630 1742 y(ranges)e(in)f(brac)m(k)m(et)i
+(in)m(terpretation)h(of)630 2207 y(ranges)e(in)f(brac)m(k)m(et)i
 (expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s
-(cale)i(b)m(y)f(setting)630 1851 y(the)e Fs(LC_COLLATE)c
+(cale)i(b)m(y)f(setting)630 2317 y(the)e Fs(LC_COLLATE)c
 Ft(or)k Fs(LC_ALL)d Ft(en)m(vironmen)m(t)j(v)-5 b(ariable)31
-b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 1979
+b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 2448
 y(Within)23 b(`)p Fs([)p Ft(')h(and)e(`)p Fs(])p Ft(',)j
 Fq(c)m(haracter)g(classes)j Ft(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f
 (the)i(syn)m(tax)f Fs([:)p Fq(class)t Fs(:])p Ft(,)630
-2089 y(where)j Fq(class)31 b Ft(is)c(one)g(of)g(the)g(follo)m(wing)h
-(classes)g(de\014ned)d(in)i(the)f Fl(posix)g Ft(1003.2)k(standard:)870
-2216 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g
-(lower)870 2326 y(print)g(punct)g(space)f(upper)h(word)190
-b(xdigit)630 2454 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m
+2558 y(where)30 b Fq(class)35 b Ft(is)30 b(one)h(of)f(the)h(follo)m
+(wing)h(classes)f(de\014ned)e(in)h(the)h Fl(posix)f Ft(standard:)870
+2690 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g
+(lower)870 2799 y(print)g(punct)g(space)f(upper)h(word)190
+b(xdigit)630 2931 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m
 (y)f(c)m(haracter)h(b)s(elonging)f(to)g(that)g(class.)75
-b(The)41 b Fs(word)630 2563 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h
+b(The)41 b Fs(word)630 3040 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h
 (letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p
-Fs(_)p Ft('.)630 2691 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p
+Fs(_)p Ft('.)630 3172 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p
 Fs(])p Ft(',)i(an)e Fq(equiv)-5 b(alence)26 b(class)j
 Ft(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h
-Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 2800 y(whic)m(h)29
+Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 3282 y(whic)m(h)29
 b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w)
-m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 2910
+m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 3391
 y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h
-Fq(c)p Ft(.)630 3038 y(Within)22 b(`)p Fs([)p Ft(')f(and)g(`)p
+Fq(c)p Ft(.)630 3523 y(Within)22 b(`)p Fs([)p Ft(')f(and)g(`)p
 Fs(])p Ft(',)j(the)d(syn)m(tax)h Fs([.)p Fq(sym)m(b)s(ol)t
 Fs(.])e Ft(matc)m(hes)i(the)g(collating)i(sym)m(b)s(ol)d
-Fq(sym)m(b)s(ol)p Ft(.)275 3184 y(If)29 b(the)g Fs(extglob)f
+Fq(sym)m(b)s(ol)p Ft(.)275 3677 y(If)29 b(the)g Fs(extglob)f
 Ft(shell)h(option)h(is)g(enabled)f(using)g(the)h Fs(shopt)e
-Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 3293
+Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 3786
 y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58
 b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fq(pattern-list)j
-Ft(is)d(a)g(list)g(of)150 3403 y(one)d(or)f(more)h(patterns)f
+Ft(is)d(a)g(list)g(of)150 3896 y(one)d(or)f(more)h(patterns)f
 (separated)h(b)m(y)f(a)h(`)p Fs(|)p Ft('.)47 b(Comp)s(osite)33
 b(patterns)f(ma)m(y)i(b)s(e)d(formed)h(using)g(one)h(or)150
-3512 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
-3658 y Fs(?\()p Fj(pattern-list)11 b Fs(\))630 3768 y
+4005 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
+4159 y Fs(?\()p Fj(pattern-list)11 b Fs(\))630 4269 y
 Ft(Matc)m(hes)32 b(zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m
-(en)g(patterns.)150 3914 y Fs(*\()p Fj(pattern-list)11
-b Fs(\))630 4023 y Ft(Matc)m(hes)32 b(zero)f(or)g(more)f(o)s
-(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)150 4169
-y Fs(+\()p Fj(pattern-list)11 b Fs(\))630 4279 y Ft(Matc)m(hes)32
+(en)g(patterns.)150 4423 y Fs(*\()p Fj(pattern-list)11
+b Fs(\))630 4532 y Ft(Matc)m(hes)32 b(zero)f(or)g(more)f(o)s
+(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)150 4686
+y Fs(+\()p Fj(pattern-list)11 b Fs(\))630 4796 y Ft(Matc)m(hes)32
 b(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m(en)i(patterns.)
-150 4424 y Fs(@\()p Fj(pattern-list)11 b Fs(\))630 4534
+150 4949 y Fs(@\()p Fj(pattern-list)11 b Fs(\))630 5059
 y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g(patterns.)150
-4680 y Fs(!\()p Fj(pattern-list)11 b Fs(\))630 4789 y
+5213 y Fs(!\()p Fj(pattern-list)11 b Fs(\))630 5322 y
 Ft(Matc)m(hes)32 b(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g
-(patterns.)150 4993 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7
-b(al)275 5230 y Ft(After)32 b(the)h(preceding)f(expansions,)h(all)g
-(unquoted)f(o)s(ccurrences)g(of)h(the)f(c)m(haracters)i(`)p
-Fs(\\)p Ft(',)f(`)p Fs(')p Ft(',)h(and)150 5340 y(`)p
-Fs(")p Ft(')d(that)g(did)e(not)i(result)f(from)g(one)h(of)f(the)h(ab)s
-(o)m(v)m(e)g(expansions)f(are)h(remo)m(v)m(ed.)p eop
-end
+(patterns.)p eop end
 %%Page: 25 31
 TeXDict begin 25 30 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299
-y Fr(3.6)68 b(Redirections)275 536 y Ft(Before)33 b(a)h(command)e(is)h
-(executed,)i(its)e(input)f(and)h(output)f(ma)m(y)i(b)s(e)e
-Fq(redirected)37 b Ft(using)32 b(a)h(sp)s(ecial)150 646
-y(notation)g(in)m(terpreted)g(b)m(y)f(the)g(shell.)46
-b(Redirection)33 b(ma)m(y)g(also)g(b)s(e)f(used)f(to)i(op)s(en)e(and)h
-(close)h(\014les)f(for)150 756 y(the)h(curren)m(t)g(shell)g(execution)h
-(en)m(vironmen)m(t.)49 b(The)33 b(follo)m(wing)h(redirection)g(op)s
-(erators)f(ma)m(y)h(precede)150 865 y(or)29 b(app)s(ear)g(an)m(ywhere)g
-(within)g(a)h(simple)f(command)g(or)h(ma)m(y)g(follo)m(w)g(a)g
-(command.)40 b(Redirections)31 b(are)150 975 y(pro)s(cessed)f(in)g(the)
-g(order)g(they)h(app)s(ear,)f(from)g(left)h(to)g(righ)m(t.)275
-1103 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
-(descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g
-(c)m(har-)150 1212 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
-(is)g(`)p Fs(<)p Ft(',)i(the)e(redirection)g(refers)g(to)g(the)g
-(standard)f(input)f(\(\014le)150 1322 y(descriptor)33
-b(0\).)49 b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f
-(redirection)g(op)s(erator)h(is)f(`)p Fs(>)p Ft(',)h(the)f(redirection)
-g(refers)150 1431 y(to)e(the)g(standard)e(output)h(\(\014le)h
-(descriptor)f(1\).)275 1559 y(The)h(w)m(ord)h(follo)m(wing)i(the)f
-(redirection)g(op)s(erator)f(in)g(the)h(follo)m(wing)h(descriptions,)f
-(unless)e(other-)150 1669 y(wise)21 b(noted,)i(is)e(sub)5
-b(jected)21 b(to)h(brace)f(expansion,)i(tilde)f(expansion,)h(parameter)
-e(expansion,)i(command)150 1778 y(substitution,)31 b(arithmetic)h
-(expansion,)f(quote)h(remo)m(v)-5 b(al,)33 b(\014lename)e(expansion,)g
-(and)f(w)m(ord)h(splitting.)150 1888 y(If)f(it)h(expands)e(to)i(more)g
-(than)f(one)h(w)m(ord,)f(Bash)h(rep)s(orts)e(an)h(error.)275
-2016 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g
-(signi\014can)m(t.)41 b(F)-8 b(or)31 b(example,)h(the)e(command)390
-2144 y Fs(ls)47 b(>)h Fj(dirlist)56 b Fs(2>&1)150 2271
-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 2381 y(\014le)h Fq(dirlist)p Ft(,)h(while)f(the)h(command)390
-2509 y Fs(ls)47 b(2>&1)g(>)g Fj(dirlist)150 2637 y Ft(directs)34
+y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 b(al)275 550 y
+Ft(After)32 b(the)h(preceding)f(expansions,)h(all)g(unquoted)f(o)s
+(ccurrences)g(of)h(the)f(c)m(haracters)i(`)p Fs(\\)p
+Ft(',)f(`)p Fs(')p Ft(',)h(and)150 659 y(`)p Fs(")p Ft(')d(that)g(did)e
+(not)i(result)f(from)g(one)h(of)f(the)h(ab)s(o)m(v)m(e)g(expansions)f
+(are)h(remo)m(v)m(ed.)150 933 y Fr(3.6)68 b(Redirections)275
+1184 y Ft(Before)33 b(a)h(command)e(is)h(executed,)i(its)e(input)f(and)
+h(output)f(ma)m(y)i(b)s(e)e Fq(redirected)37 b Ft(using)32
+b(a)h(sp)s(ecial)150 1294 y(notation)g(in)m(terpreted)g(b)m(y)f(the)g
+(shell.)46 b(Redirection)33 b(ma)m(y)g(also)g(b)s(e)f(used)f(to)i(op)s
+(en)e(and)h(close)h(\014les)f(for)150 1403 y(the)h(curren)m(t)g(shell)g
+(execution)h(en)m(vironmen)m(t.)49 b(The)33 b(follo)m(wing)h
+(redirection)g(op)s(erators)f(ma)m(y)h(precede)150 1513
+y(or)29 b(app)s(ear)g(an)m(ywhere)g(within)g(a)h(simple)f(command)g(or)
+h(ma)m(y)g(follo)m(w)g(a)g(command.)40 b(Redirections)31
+b(are)150 1623 y(pro)s(cessed)f(in)g(the)g(order)g(they)h(app)s(ear,)f
+(from)g(left)h(to)g(righ)m(t.)275 1764 y(In)c(the)i(follo)m(wing)h
+(descriptions,)g(if)e(the)h(\014le)g(descriptor)f(n)m(um)m(b)s(er)g(is)
+g(omitted,)i(and)f(the)f(\014rst)g(c)m(har-)150 1873
+y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g(is)g(`)p
+Fs(<)p Ft(',)i(the)e(redirection)g(refers)g(to)g(the)g(standard)f
+(input)f(\(\014le)150 1983 y(descriptor)33 b(0\).)49
+b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f(redirection)g(op)s
+(erator)h(is)f(`)p Fs(>)p Ft(',)h(the)f(redirection)g(refers)150
+2093 y(to)e(the)g(standard)e(output)h(\(\014le)h(descriptor)f(1\).)275
+2234 y(The)h(w)m(ord)h(follo)m(wing)i(the)f(redirection)g(op)s(erator)f
+(in)g(the)h(follo)m(wing)h(descriptions,)f(unless)e(other-)150
+2343 y(wise)21 b(noted,)i(is)e(sub)5 b(jected)21 b(to)h(brace)f
+(expansion,)i(tilde)f(expansion,)h(parameter)e(expansion,)i(command)150
+2453 y(substitution,)31 b(arithmetic)h(expansion,)f(quote)h(remo)m(v)-5
+b(al,)33 b(\014lename)e(expansion,)g(and)f(w)m(ord)h(splitting.)150
+2563 y(If)f(it)h(expands)e(to)i(more)g(than)f(one)h(w)m(ord,)f(Bash)h
+(rep)s(orts)e(an)h(error.)275 2704 y(Note)h(that)g(the)g(order)f(of)g
+(redirections)h(is)g(signi\014can)m(t.)41 b(F)-8 b(or)31
+b(example,)h(the)e(command)390 2845 y Fs(ls)47 b(>)h
+Fj(dirlist)56 b Fs(2>&1)150 2986 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 3096 y(\014le)h
+Fq(dirlist)p Ft(,)h(while)f(the)h(command)390 3237 y
+Fs(ls)47 b(2>&1)g(>)g Fj(dirlist)150 3378 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
-2746 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(.)275 2874
+3488 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(.)275 3629
 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s(ecially)h(when)f
 (they)g(are)g(used)g(in)g(redirections,)i(as)e(describ)s(ed)150
-2984 y(in)k(the)h(follo)m(wing)g(table:)150 3130 y Fs(/dev/fd/)p
-Fj(fd)630 3240 y Ft(If)f Fq(fd)j Ft(is)d(a)h(v)-5 b(alid)31
+3739 y(in)k(the)h(follo)m(wing)g(table:)150 3908 y Fs(/dev/fd/)p
+Fj(fd)630 4018 y Ft(If)f Fq(fd)j Ft(is)d(a)h(v)-5 b(alid)31
 b(in)m(teger,)h(\014le)e(descriptor)h Fq(fd)i Ft(is)d(duplicated.)150
-3386 y Fs(/dev/stdin)630 3495 y Ft(File)i(descriptor)e(0)h(is)f
-(duplicated.)150 3641 y Fs(/dev/stdout)630 3751 y Ft(File)i(descriptor)
-e(1)h(is)f(duplicated.)150 3897 y Fs(/dev/stderr)630
-4007 y Ft(File)i(descriptor)e(2)h(is)f(duplicated.)150
-4153 y Fs(/dev/tcp/)p Fj(host)11 b Fs(/)p Fj(port)630
-4262 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 b(alid)41
+4184 y Fs(/dev/stdin)630 4294 y Ft(File)i(descriptor)e(0)h(is)f
+(duplicated.)150 4460 y Fs(/dev/stdout)630 4569 y Ft(File)i(descriptor)
+e(1)h(is)f(duplicated.)150 4735 y Fs(/dev/stderr)630
+4845 y Ft(File)i(descriptor)e(2)h(is)f(duplicated.)150
+5011 y Fs(/dev/tcp/)p Fj(host)11 b Fs(/)p Fj(port)630
+5121 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 b(alid)41
 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c Fq(p)s(ort)j
-Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 4372 y(n)m(um)m(b)s(er)h(or)h
+Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 5230 y(n)m(um)m(b)s(er)h(or)h
 (service)h(name,)j(Bash)c(attempts)h(to)g(op)s(en)f(a)g(TCP)g
-(connection)h(to)g(the)630 4482 y(corresp)s(onding)29
-b(so)s(c)m(k)m(et.)150 4628 y Fs(/dev/udp/)p Fj(host)11
-b Fs(/)p Fj(port)630 4737 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5
-b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c
-Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 4847
-y(n)m(um)m(b)s(er)g(or)i(service)g(name,)k(Bash)c(attempts)g(to)h(op)s
-(en)e(a)h(UDP)g(connection)g(to)h(the)630 4956 y(corresp)s(onding)29
-b(so)s(c)m(k)m(et.)275 5103 y(A)h(failure)h(to)g(op)s(en)e(or)i(create)
-h(a)e(\014le)h(causes)g(the)f(redirection)h(to)g(fail.)275
-5230 y(Redirections)f(using)e(\014le)i(descriptors)f(greater)h(than)f
-(9)h(should)e(b)s(e)h(used)f(with)h(care,)h(as)g(they)f(ma)m(y)150
-5340 y(con\015ict)i(with)f(\014le)h(descriptors)f(the)g(shell)h(uses)f
-(in)m(ternally)-8 b(.)p eop end
+(connection)h(to)g(the)630 5340 y(corresp)s(onding)29
+b(so)s(c)m(k)m(et.)p eop end
 %%Page: 26 32
 TeXDict begin 26 31 bop 150 -116 a Ft(26)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fk(3.6.1)63 b(Redirecting)40
-b(Input)275 552 y Ft(Redirection)35 b(of)f(input)g(causes)g(the)h
+b(Reference)g(Man)m(ual)150 299 y Fs(/dev/udp/)p Fj(host)11
+b Fs(/)p Fj(port)630 408 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5
+b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c
+Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 518
+y(n)m(um)m(b)s(er)g(or)i(service)g(name,)k(Bash)c(attempts)g(to)h(op)s
+(en)e(a)h(UDP)g(connection)g(to)h(the)630 628 y(corresp)s(onding)29
+b(so)s(c)m(k)m(et.)275 782 y(A)h(failure)h(to)g(op)s(en)e(or)i(create)h
+(a)e(\014le)h(causes)g(the)f(redirection)h(to)g(fail.)275
+914 y(Redirections)f(using)e(\014le)i(descriptors)f(greater)h(than)f(9)
+h(should)e(b)s(e)h(used)f(with)h(care,)h(as)g(they)f(ma)m(y)150
+1024 y(con\015ict)i(with)f(\014le)h(descriptors)f(the)g(shell)h(uses)f
+(in)m(ternally)-8 b(.)150 1241 y Fk(3.6.1)63 b(Redirecting)40
+b(Input)275 1483 y Ft(Redirection)35 b(of)f(input)g(causes)g(the)h
 (\014le)f(whose)g(name)h(results)f(from)g(the)g(expansion)g(of)h
-Fq(w)m(ord)i Ft(to)150 662 y(b)s(e)d(op)s(ened)g(for)g(reading)g(on)h
+Fq(w)m(ord)i Ft(to)150 1592 y(b)s(e)d(op)s(ened)g(for)g(reading)g(on)h
 (\014le)f(descriptor)h Fs(n)p Ft(,)g(or)g(the)f(standard)g(input)g
 (\(\014le)h(descriptor)f(0\))h(if)g Fs(n)f Ft(is)150
-772 y(not)d(sp)s(eci\014ed.)275 916 y(The)e(general)j(format)e(for)h
-(redirecting)g(input)e(is:)390 1060 y Fs([)p Fj(n)11
-b Fs(]<)p Fj(word)150 1303 y Fk(3.6.2)63 b(Redirecting)40
-b(Output)275 1557 y Ft(Redirection)31 b(of)f(output)g(causes)h(the)g
+1702 y(not)d(sp)s(eci\014ed.)275 1834 y(The)e(general)j(format)e(for)h
+(redirecting)g(input)e(is:)390 1966 y Fs([)p Fj(n)11
+b Fs(]<)p Fj(word)150 2183 y Fk(3.6.2)63 b(Redirecting)40
+b(Output)275 2425 y Ft(Redirection)31 b(of)f(output)g(causes)h(the)g
 (\014le)f(whose)g(name)h(results)f(from)f(the)i(expansion)f(of)h
-Fq(w)m(ord)i Ft(to)150 1666 y(b)s(e)e(op)s(ened)g(for)g(writing)h(on)f
+Fq(w)m(ord)i Ft(to)150 2534 y(b)s(e)e(op)s(ened)g(for)g(writing)h(on)f
 (\014le)h(descriptor)f Fq(n)p Ft(,)h(or)f(the)h(standard)f(output)g
 (\(\014le)h(descriptor)f(1\))h(if)g Fq(n)f Ft(is)150
-1776 y(not)j(sp)s(eci\014ed.)50 b(If)33 b(the)h(\014le)g(do)s(es)f(not)
+2644 y(not)j(sp)s(eci\014ed.)50 b(If)33 b(the)h(\014le)g(do)s(es)f(not)
 h(exist)g(it)g(is)g(created;)j(if)c(it)h(do)s(es)g(exist)g(it)g(is)g
-(truncated)g(to)g(zero)150 1885 y(size.)275 2029 y(The)29
+(truncated)g(to)g(zero)150 2753 y(size.)275 2885 y(The)29
 b(general)j(format)e(for)h(redirecting)g(output)f(is:)390
-2173 y Fs([)p Fj(n)11 b Fs(]>[|])p Fj(word)275 2317 y
+3018 y Fs([)p Fj(n)11 b Fs(]>[|])p Fj(word)275 3150 y
 Ft(If)30 b(the)h(redirection)g(op)s(erator)g(is)g(`)p
 Fs(>)p Ft(',)g(and)f(the)h Fs(noclobber)d Ft(option)j(to)g(the)g
-Fs(set)f Ft(builtin)g(has)h(b)s(een)150 2427 y(enabled,)i(the)f
+Fs(set)f Ft(builtin)g(has)h(b)s(een)150 3259 y(enabled,)i(the)f
 (redirection)h(will)f(fail)h(if)f(the)g(\014le)g(whose)g(name)g
 (results)g(from)g(the)g(expansion)g(of)g Fq(w)m(ord)150
-2537 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
+3369 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
 b(If)30 b(the)h(redirection)g(op)s(erator)g(is)f(`)p
 Fs(>|)p Ft(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150
-2646 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e
+3478 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e
 Ft(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g
-(ev)m(en)h(if)e(the)h(\014le)150 2756 y(named)30 b(b)m(y)g
-Fq(w)m(ord)k Ft(exists.)150 2999 y Fk(3.6.3)63 b(App)s(ending)42
-b(Redirected)e(Output)275 3253 y Ft(Redirection)29 b(of)g(output)f(in)g
+(ev)m(en)h(if)e(the)h(\014le)150 3588 y(named)30 b(b)m(y)g
+Fq(w)m(ord)k Ft(exists.)150 3805 y Fk(3.6.3)63 b(App)s(ending)42
+b(Redirected)e(Output)275 4047 y Ft(Redirection)29 b(of)g(output)f(in)g
 (this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f
-(from)g(the)h(expan-)150 3362 y(sion)34 b(of)f Fq(w)m(ord)k
+(from)g(the)h(expan-)150 4156 y(sion)34 b(of)f Fq(w)m(ord)k
 Ft(to)e(b)s(e)e(op)s(ened)g(for)g(app)s(ending)f(on)i(\014le)f
 (descriptor)h Fq(n)p Ft(,)g(or)g(the)f(standard)g(output)g(\(\014le)150
-3472 y(descriptor)d(1\))h(if)g Fq(n)f Ft(is)g(not)h(sp)s(eci\014ed.)40
+4266 y(descriptor)d(1\))h(if)g Fq(n)f Ft(is)g(not)h(sp)s(eci\014ed.)40
 b(If)29 b(the)i(\014le)f(do)s(es)h(not)f(exist)h(it)g(is)g(created.)275
-3616 y(The)e(general)j(format)e(for)h(app)s(ending)e(output)h(is:)390
-3760 y Fs([)p Fj(n)11 b Fs(]>>)p Fj(word)150 4003 y Fk(3.6.4)63
+4398 y(The)e(general)j(format)e(for)h(app)s(ending)e(output)h(is:)390
+4530 y Fs([)p Fj(n)11 b Fs(]>>)p Fj(word)150 4747 y Fk(3.6.4)63
 b(Redirecting)40 b(Standard)h(Output)g(and)g(Standard)g(Error)275
-4257 y Ft(Bash)31 b(allo)m(ws)h(b)s(oth)e(the)h(standard)g(output)f
+4989 y Ft(Bash)31 b(allo)m(ws)h(b)s(oth)e(the)h(standard)g(output)f
 (\(\014le)i(descriptor)e(1\))i(and)e(the)i(standard)e(error)g(output)
-150 4366 y(\(\014le)d(descriptor)g(2\))h(to)f(b)s(e)g(redirected)g(to)h
+150 5098 y(\(\014le)d(descriptor)g(2\))h(to)f(b)s(e)g(redirected)g(to)h
 (the)f(\014le)g(whose)f(name)h(is)g(the)g(expansion)g(of)g
-Fq(w)m(ord)j Ft(with)d(this)150 4476 y(construct.)275
-4620 y(There)i(are)i(t)m(w)m(o)h(formats)e(for)h(redirecting)g
-(standard)e(output)h(and)g(standard)f(error:)390 4764
-y Fs(&>)p Fj(word)150 4908 y Ft(and)390 5052 y Fs(>&)p
-Fj(word)150 5196 y Ft(Of)h(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e
-(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5
-b(alen)m(t)32 b(to)390 5340 y Fs(>)p Fj(word)57 b Fs(2>&1)p
-eop end
+Fq(w)m(ord)j Ft(with)d(this)150 5208 y(construct.)275
+5340 y(There)i(are)i(t)m(w)m(o)h(formats)e(for)h(redirecting)g
+(standard)e(output)h(and)g(standard)f(error:)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)150 299
-y Fk(3.6.5)63 b(Here)41 b(Do)s(cumen)m(ts)275 560 y Ft(This)28
-b(t)m(yp)s(e)h(of)h(redirection)g(instructs)f(the)g(shell)h(to)g(read)f
-(input)f(from)h(the)g(curren)m(t)h(source)f(un)m(til)h(a)150
-669 y(line)h(con)m(taining)g(only)g Fq(w)m(ord)i Ft(\(with)d(no)h
-(trailing)g(blanks\))f(is)g(seen.)41 b(All)31 b(of)f(the)h(lines)f
-(read)g(up)f(to)i(that)150 779 y(p)s(oin)m(t)f(are)h(then)f(used)g(as)g
-(the)h(standard)f(input)f(for)h(a)h(command.)275 930
-y(The)e(format)i(of)g(here-do)s(cumen)m(ts)f(is:)390
-1081 y Fs(<<[)p Fp(\000)p Fs(])p Fj(word)772 1191 y(here-document)390
-1300 y(delimiter)275 1451 y Ft(No)j(parameter)h(expansion,)g(command)f
-(substitution,)h(arithmetic)h(expansion,)f(or)f(\014lename)g(ex-)150
-1561 y(pansion)i(is)g(p)s(erformed)e(on)i Fq(w)m(ord)p
-Ft(.)55 b(If)34 b(an)m(y)i(c)m(haracters)g(in)f Fq(w)m(ord)j
-Ft(are)d(quoted,)i(the)e Fq(delimiter)43 b Ft(is)35 b(the)150
-1670 y(result)40 b(of)h(quote)g(remo)m(v)-5 b(al)42 b(on)e
-Fq(w)m(ord)p Ft(,)j(and)d(the)g(lines)h(in)f(the)h(here-do)s(cumen)m(t)
-f(are)h(not)f(expanded.)150 1780 y(If)32 b Fq(w)m(ord)k
-Ft(is)d(unquoted,)f(all)i(lines)f(of)f(the)h(here-do)s(cumen)m(t)g(are)
-g(sub)5 b(jected)32 b(to)i(parameter)f(expansion,)150
-1890 y(command)25 b(substitution,)g(and)g(arithmetic)h(expansion.)39
-b(In)24 b(the)h(latter)h(case,)h(the)e(c)m(haracter)i(sequence)150
-1999 y Fs(\\newline)h Ft(is)j(ignored,)f(and)g(`)p Fs(\\)p
-Ft(')h(m)m(ust)f(b)s(e)g(used)f(to)i(quote)g(the)g(c)m(haracters)h(`)p
-Fs(\\)p Ft(',)e(`)p Fs($)p Ft(',)h(and)f(`)p Fs(`)p Ft('.)275
-2150 y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f(`)p
-Fs(<<-)p Ft(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are)e
-(stripp)s(ed)f(from)h(input)150 2260 y(lines)33 b(and)f(the)h(line)h
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)390 299
+y Fs(&>)p Fj(word)150 444 y Ft(and)390 590 y Fs(>&)p
+Fj(word)150 736 y Ft(Of)30 b(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e
+(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5
+b(alen)m(t)32 b(to)390 881 y Fs(>)p Fj(word)57 b Fs(2>&1)150
+1128 y Fk(3.6.5)63 b(Here)41 b(Do)s(cumen)m(ts)275 1383
+y Ft(This)28 b(t)m(yp)s(e)h(of)h(redirection)g(instructs)f(the)g(shell)
+h(to)g(read)f(input)f(from)h(the)g(curren)m(t)h(source)f(un)m(til)h(a)
+150 1492 y(line)h(con)m(taining)g(only)g Fq(w)m(ord)i
+Ft(\(with)d(no)h(trailing)g(blanks\))f(is)g(seen.)41
+b(All)31 b(of)f(the)h(lines)f(read)g(up)f(to)i(that)150
+1602 y(p)s(oin)m(t)f(are)h(then)f(used)g(as)g(the)h(standard)f(input)f
+(for)h(a)h(command.)275 1748 y(The)e(format)i(of)g(here-do)s(cumen)m
+(ts)f(is:)390 1893 y Fs(<<[)p Fp(\000)p Fs(])p Fj(word)772
+2003 y(here-document)390 2112 y(delimiter)275 2258 y
+Ft(No)j(parameter)h(expansion,)g(command)f(substitution,)h(arithmetic)h
+(expansion,)f(or)f(\014lename)g(ex-)150 2367 y(pansion)i(is)g(p)s
+(erformed)e(on)i Fq(w)m(ord)p Ft(.)55 b(If)34 b(an)m(y)i(c)m(haracters)
+g(in)f Fq(w)m(ord)j Ft(are)d(quoted,)i(the)e Fq(delimiter)43
+b Ft(is)35 b(the)150 2477 y(result)40 b(of)h(quote)g(remo)m(v)-5
+b(al)42 b(on)e Fq(w)m(ord)p Ft(,)j(and)d(the)g(lines)h(in)f(the)h
+(here-do)s(cumen)m(t)f(are)h(not)f(expanded.)150 2587
+y(If)32 b Fq(w)m(ord)k Ft(is)d(unquoted,)f(all)i(lines)f(of)f(the)h
+(here-do)s(cumen)m(t)g(are)g(sub)5 b(jected)32 b(to)i(parameter)f
+(expansion,)150 2696 y(command)25 b(substitution,)g(and)g(arithmetic)h
+(expansion.)39 b(In)24 b(the)h(latter)h(case,)h(the)e(c)m(haracter)i
+(sequence)150 2806 y Fs(\\newline)h Ft(is)j(ignored,)f(and)g(`)p
+Fs(\\)p Ft(')h(m)m(ust)f(b)s(e)g(used)f(to)i(quote)g(the)g(c)m
+(haracters)h(`)p Fs(\\)p Ft(',)e(`)p Fs($)p Ft(',)h(and)f(`)p
+Fs(`)p Ft('.)275 2951 y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f
+(`)p Fs(<<-)p Ft(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are)
+e(stripp)s(ed)f(from)h(input)150 3061 y(lines)33 b(and)f(the)h(line)h
 (con)m(taining)g Fq(delimiter)p Ft(.)49 b(This)32 b(allo)m(ws)i
 (here-do)s(cumen)m(ts)f(within)f(shell)i(scripts)e(to)150
-2369 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150
-2627 y Fk(3.6.6)63 b(Here)41 b(Strings)275 2888 y Ft(A)30
+3171 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150
+3417 y Fk(3.6.6)63 b(Here)41 b(Strings)275 3672 y Ft(A)30
 b(v)-5 b(arian)m(t)31 b(of)g(here)f(do)s(cumen)m(ts,)g(the)h(format)g
-(is:)390 3039 y Fs(<<<)47 b Fj(word)275 3190 y Ft(The)29
+(is:)390 3818 y Fs(<<<)47 b Fj(word)275 3963 y Ft(The)29
 b Fq(w)m(ord)34 b Ft(is)c(expanded)g(and)g(supplied)f(to)i(the)f
-(command)h(on)f(its)h(standard)e(input.)150 3447 y Fk(3.6.7)63
-b(Duplicating)41 b(File)g(Descriptors)275 3708 y Ft(The)29
-b(redirection)i(op)s(erator)390 3859 y Fs([)p Fj(n)11
-b Fs(]<&)p Fj(word)150 4010 y Ft(is)35 b(used)e(to)j(duplicate)f(input)
+(command)h(on)f(its)h(standard)e(input.)150 4210 y Fk(3.6.7)63
+b(Duplicating)41 b(File)g(Descriptors)275 4465 y Ft(The)29
+b(redirection)i(op)s(erator)390 4610 y Fs([)p Fj(n)11
+b Fs(]<&)p Fj(word)150 4756 y Ft(is)35 b(used)e(to)j(duplicate)f(input)
 f(\014le)g(descriptors.)53 b(If)34 b Fq(w)m(ord)k Ft(expands)c(to)h
-(one)g(or)g(more)g(digits,)h(the)f(\014le)150 4120 y(descriptor)e
+(one)g(or)g(more)g(digits,)h(the)f(\014le)150 4866 y(descriptor)e
 (denoted)h(b)m(y)g Fq(n)f Ft(is)g(made)h(to)g(b)s(e)f(a)h(cop)m(y)g(of)
 g(that)g(\014le)g(descriptor.)50 b(If)33 b(the)h(digits)g(in)f
-Fq(w)m(ord)150 4229 y Ft(do)c(not)h(sp)s(ecify)f(a)h(\014le)f
+Fq(w)m(ord)150 4975 y Ft(do)c(not)h(sp)s(ecify)f(a)h(\014le)f
 (descriptor)g(op)s(en)g(for)g(input,)g(a)h(redirection)g(error)f(o)s
 (ccurs.)40 b(If)29 b Fq(w)m(ord)j Ft(ev)-5 b(aluates)150
-4339 y(to)31 b(`)p Fs(-)p Ft(',)g(\014le)g(descriptor)g
+5085 y(to)31 b(`)p Fs(-)p Ft(',)g(\014le)g(descriptor)g
 Fq(n)f Ft(is)g(closed.)43 b(If)30 b Fq(n)g Ft(is)g(not)h(sp)s
 (eci\014ed,)f(the)h(standard)f(input)g(\(\014le)h(descriptor)f(0\))150
-4448 y(is)g(used.)275 4599 y(The)f(op)s(erator)390 4751
-y Fs([)p Fj(n)11 b Fs(]>&)p Fj(word)150 4902 y Ft(is)40
-b(used)g(similarly)h(to)g(duplicate)f(output)g(\014le)h(descriptors.)70
-b(If)40 b Fq(n)f Ft(is)i(not)f(sp)s(eci\014ed,)i(the)f(standard)150
-5011 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39
-b(If)30 b(the)g(digits)h(in)e Fq(w)m(ord)34 b Ft(do)29
-b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)150
-5121 y(for)38 b(output,)i(a)e(redirection)h(error)f(o)s(ccurs.)63
-b(As)38 b(a)h(sp)s(ecial)f(case,)k(if)c Fq(n)f Ft(is)h(omitted,)k(and)
-37 b Fq(w)m(ord)k Ft(do)s(es)150 5230 y(not)28 b(expand)f(to)i(one)f
-(or)f(more)h(digits,)i(the)e(standard)e(output)i(and)f(standard)g
-(error)g(are)i(redirected)f(as)150 5340 y(describ)s(ed)h(previously)-8
-b(.)p eop end
+5194 y(is)g(used.)275 5340 y(The)f(op)s(erator)p eop
+end
 %%Page: 28 34
 TeXDict begin 28 33 bop 150 -116 a Ft(28)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fk(3.6.8)63 b(Mo)m(ving)41
-b(File)h(Descriptors)275 542 y Ft(The)29 b(redirection)i(op)s(erator)
-390 675 y Fs([)p Fj(n)11 b Fs(]<&)p Fj(digit)p Fs(-)150
-808 y Ft(mo)m(v)m(es)33 b(the)f(\014le)g(descriptor)f
-Fq(digit)k Ft(to)d(\014le)g(descriptor)g Fq(n)p Ft(,)f(or)h(the)g
-(standard)f(input)f(\(\014le)j(descriptor)e(0\))150 918
-y(if)f Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)40 b Fq(digit)33
-b Ft(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
-Fq(n)p Ft(.)275 1051 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
-(erator)390 1184 y Fs([)p Fj(n)11 b Fs(]>&)p Fj(digit)p
-Fs(-)150 1317 y Ft(mo)m(v)m(es)29 b(the)g(\014le)f(descriptor)f
+b(Reference)g(Man)m(ual)390 299 y Fs([)p Fj(n)11 b Fs(]>&)p
+Fj(word)150 434 y Ft(is)40 b(used)g(similarly)h(to)g(duplicate)f
+(output)g(\014le)h(descriptors.)70 b(If)40 b Fq(n)f Ft(is)i(not)f(sp)s
+(eci\014ed,)i(the)f(standard)150 543 y(output)30 b(\(\014le)g
+(descriptor)g(1\))h(is)f(used.)39 b(If)30 b(the)g(digits)h(in)e
+Fq(w)m(ord)34 b Ft(do)29 b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g
+(op)s(en)150 653 y(for)38 b(output,)i(a)e(redirection)h(error)f(o)s
+(ccurs.)63 b(As)38 b(a)h(sp)s(ecial)f(case,)k(if)c Fq(n)f
+Ft(is)h(omitted,)k(and)37 b Fq(w)m(ord)k Ft(do)s(es)150
+763 y(not)28 b(expand)f(to)i(one)f(or)f(more)h(digits,)i(the)e
+(standard)e(output)i(and)f(standard)g(error)g(are)i(redirected)f(as)150
+872 y(describ)s(ed)h(previously)-8 b(.)150 1097 y Fk(3.6.8)63
+b(Mo)m(ving)41 b(File)h(Descriptors)275 1342 y Ft(The)29
+b(redirection)i(op)s(erator)390 1477 y Fs([)p Fj(n)11
+b Fs(]<&)p Fj(digit)p Fs(-)150 1612 y Ft(mo)m(v)m(es)33
+b(the)f(\014le)g(descriptor)f Fq(digit)k Ft(to)d(\014le)g(descriptor)g
+Fq(n)p Ft(,)f(or)h(the)g(standard)f(input)f(\(\014le)j(descriptor)e
+(0\))150 1722 y(if)f Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)40
+b Fq(digit)33 b Ft(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
+Fq(n)p Ft(.)275 1857 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
+(erator)390 1992 y Fs([)p Fj(n)11 b Fs(]>&)p Fj(digit)p
+Fs(-)150 2127 y Ft(mo)m(v)m(es)29 b(the)g(\014le)f(descriptor)f
 Fq(digit)k Ft(to)e(\014le)f(descriptor)g Fq(n)p Ft(,)g(or)g(the)g
 (standard)f(output)h(\(\014le)g(descriptor)g(1\))150
-1427 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150
-1647 y Fk(3.6.9)63 b(Op)s(ening)42 b(File)f(Descriptors)h(for)g
-(Reading)f(and)g(W)-10 b(riting)275 1890 y Ft(The)29
-b(redirection)i(op)s(erator)390 2023 y Fs([)p Fj(n)11
-b Fs(]<>)p Fj(word)150 2157 y Ft(causes)39 b(the)g(\014le)g(whose)g
+2236 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150
+2462 y Fk(3.6.9)63 b(Op)s(ening)42 b(File)f(Descriptors)h(for)g
+(Reading)f(and)g(W)-10 b(riting)275 2706 y Ft(The)29
+b(redirection)i(op)s(erator)390 2841 y Fs([)p Fj(n)11
+b Fs(]<>)p Fj(word)150 2976 y Ft(causes)39 b(the)g(\014le)g(whose)g
 (name)g(is)g(the)g(expansion)g(of)g Fq(w)m(ord)j Ft(to)d(b)s(e)g(op)s
-(ened)f(for)g(b)s(oth)h(reading)g(and)150 2266 y(writing)33
+(ened)f(for)g(b)s(oth)h(reading)g(and)150 3086 y(writing)33
 b(on)f(\014le)h(descriptor)f Fq(n)p Ft(,)h(or)g(on)f(\014le)h
 (descriptor)g(0)g(if)f Fq(n)g Ft(is)h(not)g(sp)s(eci\014ed.)47
-b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 2376 y(exist,)e(it)g(is)g
-(created.)150 2629 y Fr(3.7)68 b(Executing)46 b(Commands)150
-2959 y Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)275
-3202 y Ft(When)35 b(a)h(simple)f(command)h(is)f(executed,)j(the)e
+b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 3195 y(exist,)e(it)g(is)g
+(created.)150 3454 y Fr(3.7)68 b(Executing)46 b(Commands)150
+3789 y Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)275
+4034 y Ft(When)35 b(a)h(simple)f(command)h(is)f(executed,)j(the)e
 (shell)g(p)s(erforms)e(the)i(follo)m(wing)h(expansions,)f(as-)150
-3312 y(signmen)m(ts,)31 b(and)f(redirections,)h(from)f(left)h(to)g
-(righ)m(t.)199 3445 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e
+4143 y(signmen)m(ts,)31 b(and)f(redirections,)h(from)f(left)h(to)g
+(righ)m(t.)199 4278 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e
 (has)h(mark)m(ed)g(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g
-(preceding)f(the)330 3554 y(command)30 b(name\))h(and)f(redirections)h
+(preceding)f(the)330 4388 y(command)30 b(name\))h(and)f(redirections)h
 (are)f(sa)m(v)m(ed)i(for)e(later)h(pro)s(cessing.)199
-3688 y(2.)61 b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5
+4523 y(2.)61 b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5
 b(ariable)40 b(assignmen)m(ts)h(or)e(redirections)i(are)f(expanded)f
-(\(see)h(Sec-)330 3797 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g
+(\(see)h(Sec-)330 4632 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g
 (17\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h
-(the)e(\014rst)330 3907 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f
+(the)e(\014rst)330 4742 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f
 (the)g(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g
-(are)g(the)h(argu-)330 4016 y(men)m(ts.)199 4150 y(3.)61
+(are)g(the)h(argu-)330 4851 y(men)m(ts.)199 4986 y(3.)61
 b(Redirections)25 b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m
 (v)m(e)i(\(see)g(Section)g(3.6)g([Redirections],)i(page)d(25\).)199
-4283 y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Fs(=)p
+5121 y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Fs(=)p
 Ft(')h(in)e(eac)m(h)j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)
-e(tilde)i(expansion,)g(parameter)330 4392 y(expansion,)49
+e(tilde)i(expansion,)g(parameter)330 5230 y(expansion,)49
 b(command)d(substitution,)j(arithmetic)d(expansion,)k(and)45
-b(quote)h(remo)m(v)-5 b(al)46 b(b)s(efore)330 4502 y(b)s(eing)30
-b(assigned)h(to)g(the)f(v)-5 b(ariable.)275 4659 y(If)32
-b(no)i(command)f(name)g(results,)h(the)g(v)-5 b(ariable)34
-b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)h(en)m(viron-)
-150 4768 y(men)m(t.)39 b(Otherwise,)27 b(the)e(v)-5 b(ariables)26
-b(are)g(added)f(to)h(the)f(en)m(vironmen)m(t)h(of)g(the)f(executed)h
-(command)g(and)150 4878 y(do)35 b(not)f(a\013ect)j(the)d(curren)m(t)h
-(shell)g(en)m(vironmen)m(t.)54 b(If)34 b(an)m(y)h(of)g(the)f(assignmen)
-m(ts)i(attempts)f(to)h(assign)150 4988 y(a)j(v)-5 b(alue)39
-b(to)g(a)g(readonly)f(v)-5 b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j
-(and)c(the)i(command)f(exits)h(with)g(a)f(non-zero)150
-5097 y(status.)275 5230 y(If)33 b(no)g(command)g(name)h(results,)g
-(redirections)g(are)g(p)s(erformed,)f(but)g(do)h(not)f(a\013ect)i(the)f
-(curren)m(t)150 5340 y(shell)d(en)m(vironmen)m(t.)41
-b(A)30 b(redirection)h(error)f(causes)h(the)g(command)f(to)h(exit)g
-(with)f(a)h(non-zero)g(status.)p eop end
+b(quote)h(remo)m(v)-5 b(al)46 b(b)s(efore)330 5340 y(b)s(eing)30
+b(assigned)h(to)g(the)f(v)-5 b(ariable.)p eop end
 %%Page: 29 35
 TeXDict begin 29 34 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)275 299
-y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g(expansion,)g
-(execution)h(pro)s(ceeds)e(as)g(describ)s(ed)f(b)s(elo)m(w.)150
-408 y(Otherwise,)39 b(the)e(command)g(exits.)62 b(If)37
-b(one)g(of)g(the)h(expansions)f(con)m(tained)h(a)g(command)f(substitu-)
-150 518 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command)f(is)h(the)f
-(exit)h(status)g(of)f(the)h(last)g(command)f(substitution)150
-628 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f
-(substitutions,)i(the)e(command)h(exits)g(with)f(a)h(status)g(of)150
-737 y(zero.)150 978 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h
-(Execution)275 1231 y Ft(After)35 b(a)h(command)f(has)h(b)s(een)e
-(split)i(in)m(to)g(w)m(ords,)h(if)e(it)h(results)g(in)f(a)h(simple)f
-(command)g(and)g(an)150 1340 y(optional)d(list)f(of)f(argumen)m(ts,)h
-(the)g(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 1483
-y(1.)61 b(If)24 b(the)g(command)g(name)g(con)m(tains)i(no)e(slashes,)i
-(the)e(shell)h(attempts)g(to)g(lo)s(cate)h(it.)39 b(If)24
-b(there)g(exists)330 1593 y(a)h(shell)g(function)f(b)m(y)g(that)h
-(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m(ed)h(as)e(describ)s(ed)g
-(in)g(Section)h(3.3)h([Shell)330 1702 y(F)-8 b(unctions],)31
-b(page)h(14.)199 1841 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g
-(matc)m(h)i(a)e(function,)j(the)e(shell)f(searc)m(hes)i(for)e(it)h(in)f
-(the)g(list)h(of)g(shell)330 1950 y(builtins.)e(If)30
-b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)
-199 2089 y(3.)61 b(If)40 b(the)g(name)h(is)f(neither)h(a)f(shell)h
-(function)f(nor)g(a)g(builtin,)j(and)d(con)m(tains)h(no)g(slashes,)i
-(Bash)330 2199 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g
-Fs($PATH)d Ft(for)i(a)g(directory)h(con)m(taining)g(an)f(executable)h
-(\014le)f(b)m(y)g(that)330 2308 y(name.)56 b(Bash)36
-b(uses)f(a)h(hash)e(table)j(to)f(remem)m(b)s(er)f(the)h(full)f
-(pathnames)g(of)h(executable)h(\014les)e(to)330 2418
+y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v)-5
+b(ariable)34 b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)h
+(en)m(viron-)150 408 y(men)m(t.)39 b(Otherwise,)27 b(the)e(v)-5
+b(ariables)26 b(are)g(added)f(to)h(the)f(en)m(vironmen)m(t)h(of)g(the)f
+(executed)h(command)g(and)150 518 y(do)35 b(not)f(a\013ect)j(the)d
+(curren)m(t)h(shell)g(en)m(vironmen)m(t.)54 b(If)34 b(an)m(y)h(of)g
+(the)f(assignmen)m(ts)i(attempts)f(to)h(assign)150 628
+y(a)j(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5 b(ariable,)42
+b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h(with)g(a)f
+(non-zero)150 737 y(status.)275 875 y(If)33 b(no)g(command)g(name)h
+(results,)g(redirections)g(are)g(p)s(erformed,)f(but)g(do)h(not)f
+(a\013ect)i(the)f(curren)m(t)150 985 y(shell)d(en)m(vironmen)m(t.)41
+b(A)30 b(redirection)h(error)f(causes)h(the)g(command)f(to)h(exit)g
+(with)f(a)h(non-zero)g(status.)275 1123 y(If)26 b(there)i(is)f(a)h
+(command)f(name)h(left)g(after)g(expansion,)g(execution)h(pro)s(ceeds)e
+(as)g(describ)s(ed)f(b)s(elo)m(w.)150 1233 y(Otherwise,)39
+b(the)e(command)g(exits.)62 b(If)37 b(one)g(of)g(the)h(expansions)f
+(con)m(tained)h(a)g(command)f(substitu-)150 1342 y(tion,)i(the)d(exit)h
+(status)g(of)f(the)h(command)f(is)h(the)f(exit)h(status)g(of)f(the)h
+(last)g(command)f(substitution)150 1452 y(p)s(erformed.)55
+b(If)35 b(there)g(w)m(ere)h(no)g(command)f(substitutions,)i(the)e
+(command)h(exits)g(with)f(a)h(status)g(of)150 1561 y(zero.)150
+1793 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)275
+2040 y Ft(After)35 b(a)h(command)f(has)h(b)s(een)e(split)i(in)m(to)g(w)
+m(ords,)h(if)e(it)h(results)g(in)f(a)h(simple)f(command)g(and)g(an)150
+2150 y(optional)d(list)f(of)f(argumen)m(ts,)h(the)g(follo)m(wing)g
+(actions)h(are)f(tak)m(en.)199 2288 y(1.)61 b(If)24 b(the)g(command)g
+(name)g(con)m(tains)i(no)e(slashes,)i(the)e(shell)h(attempts)g(to)g(lo)
+s(cate)h(it.)39 b(If)24 b(there)g(exists)330 2398 y(a)h(shell)g
+(function)f(b)m(y)g(that)h(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m
+(ed)h(as)e(describ)s(ed)g(in)g(Section)h(3.3)h([Shell)330
+2507 y(F)-8 b(unctions],)31 b(page)h(14.)199 2643 y(2.)61
+b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e(function,)j(the)e
+(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h(of)g(shell)330
+2753 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin)
+f(is)g(in)m(v)m(ok)m(ed.)199 2889 y(3.)61 b(If)40 b(the)g(name)h(is)f
+(neither)h(a)f(shell)h(function)f(nor)g(a)g(builtin,)j(and)d(con)m
+(tains)h(no)g(slashes,)i(Bash)330 2999 y(searc)m(hes)c(eac)m(h)g
+(elemen)m(t)g(of)g Fs($PATH)d Ft(for)i(a)g(directory)h(con)m(taining)g
+(an)f(executable)h(\014le)f(b)m(y)g(that)330 3109 y(name.)56
+b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)f(remem)m(b)s(er)f(the)h(full)
+f(pathnames)g(of)h(executable)h(\014les)e(to)330 3218
 y(a)m(v)m(oid)e(m)m(ultiple)f Fs(PATH)f Ft(searc)m(hes)i(\(see)f(the)g
 (description)g(of)f Fs(hash)g Ft(in)g(Section)i(4.1)f([Bourne)g(Shell)
-330 2528 y(Builtins],)37 b(page)f(33\).)55 b(A)35 b(full)g(searc)m(h)g
+330 3328 y(Builtins],)37 b(page)f(35\).)55 b(A)35 b(full)g(searc)m(h)g
 (of)g(the)g(directories)h(in)f Fs($PATH)e Ft(is)i(p)s(erformed)f(only)h
-(if)g(the)330 2637 y(command)c(is)g(not)g(found)f(in)g(the)i(hash)e
+(if)g(the)330 3437 y(command)c(is)g(not)g(found)f(in)g(the)i(hash)e
 (table.)43 b(If)31 b(the)g(searc)m(h)h(is)f(unsuccessful,)f(the)h
-(shell)g(prin)m(ts)330 2747 y(an)f(error)g(message)i(and)e(returns)f
-(an)h(exit)h(status)g(of)f(127.)199 2885 y(4.)61 b(If)33
+(shell)g(prin)m(ts)330 3547 y(an)f(error)g(message)i(and)e(returns)f
+(an)h(exit)h(status)g(of)f(127.)199 3683 y(4.)61 b(If)33
 b(the)g(searc)m(h)h(is)g(successful,)g(or)f(if)g(the)h(command)f(name)g
-(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the)330 2995
+(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the)330 3793
 y(shell)g(executes)h(the)f(named)f(program)g(in)h(a)g(separate)h
 (execution)f(en)m(vironmen)m(t.)55 b(Argumen)m(t)35 b(0)330
-3105 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h
+3902 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h
 (remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)h(set)g(to)g(the)
-330 3214 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
-b(.)199 3353 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
+330 4012 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
+b(.)199 4148 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
 (the)f(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h
-(\014le)g(is)g(not)330 3462 y(a)d(directory)-8 b(,)34
+(\014le)g(is)g(not)330 4258 y(a)d(directory)-8 b(,)34
 b(it)f(is)g(assumed)e(to)j(b)s(e)d(a)i Fq(shell)g(script)h
 Ft(and)e(the)h(shell)f(executes)i(it)f(as)g(describ)s(ed)e(in)330
-3572 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(32.)199
-3711 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
+4367 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(32.)199
+4504 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
 m(hronously)-8 b(,)42 b(the)c(shell)h(w)m(aits)h(for)e(the)h(command)f
-(to)330 3820 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
-4061 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)275
-4314 y Ft(The)29 b(shell)i(has)f(an)g Fq(execution)i(en)m(vironmen)m(t)
+(to)330 4613 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
+4845 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)275
+5092 y Ft(The)29 b(shell)i(has)f(an)g Fq(execution)i(en)m(vironmen)m(t)
 p Ft(,)f(whic)m(h)f(consists)h(of)g(the)f(follo)m(wing:)225
-4456 y Fp(\017)60 b Ft(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
+5230 y Fp(\017)60 b Ft(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
 (shell)h(at)g(in)m(v)m(o)s(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g
-(redirections)h(supplied)e(to)330 4566 y(the)g Fs(exec)e
-Ft(builtin)225 4705 y Fp(\017)60 b Ft(the)28 b(curren)m(t)g(w)m(orking)
-h(directory)g(as)f(set)h(b)m(y)f Fs(cd)p Ft(,)g Fs(pushd)p
-Ft(,)g(or)g Fs(popd)p Ft(,)g(or)g(inherited)g(b)m(y)g(the)h(shell)f(at)
-330 4814 y(in)m(v)m(o)s(cation)225 4953 y Fp(\017)60
-b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h(set)g(b)m(y)f
-Fs(umask)f Ft(or)h(inherited)g(from)g(the)h(shell's)f(paren)m(t)225
-5092 y Fp(\017)60 b Ft(curren)m(t)30 b(traps)g(set)h(b)m(y)f
-Fs(trap)225 5230 y Fp(\017)60 b Ft(shell)30 b(parameters)f(that)h(are)g
-(set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f
-Fs(set)f Ft(or)i(inherited)f(from)g(the)330 5340 y(shell's)i(paren)m(t)
-f(in)g(the)h(en)m(vironmen)m(t)p eop end
+(redirections)h(supplied)e(to)330 5340 y(the)g Fs(exec)e
+Ft(builtin)p eop end
 %%Page: 30 36
 TeXDict begin 30 35 bop 150 -116 a Ft(30)2572 b(Bash)31
-b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(shell)44
-b(functions)f(de\014ned)f(during)h(execution)i(or)e(inherited)h(from)f
-(the)h(shell's)g(paren)m(t)f(in)h(the)330 408 y(en)m(vironmen)m(t)225
-547 y Fp(\017)60 b Ft(options)33 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 657 y(b)m(y)c Fs(set)225 796 y Fp(\017)60
-b Ft(options)31 b(enabled)f(b)m(y)g Fs(shopt)225 934
-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(73\))225
-1073 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f
+b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(the)28
+b(curren)m(t)g(w)m(orking)h(directory)g(as)f(set)h(b)m(y)f
+Fs(cd)p Ft(,)g Fs(pushd)p Ft(,)g(or)g Fs(popd)p Ft(,)g(or)g(inherited)g
+(b)m(y)g(the)h(shell)f(at)330 408 y(in)m(v)m(o)s(cation)225
+539 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)
+h(set)g(b)m(y)f Fs(umask)f Ft(or)h(inherited)g(from)g(the)h(shell's)f
+(paren)m(t)225 670 y Fp(\017)60 b Ft(curren)m(t)30 b(traps)g(set)h(b)m
+(y)f Fs(trap)225 801 y Fp(\017)60 b Ft(shell)30 b(parameters)f(that)h
+(are)g(set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f
+Fs(set)f Ft(or)i(inherited)f(from)g(the)330 910 y(shell's)i(paren)m(t)f
+(in)g(the)h(en)m(vironmen)m(t)225 1041 y Fp(\017)60 b
+Ft(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e
+(inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h(the)330
+1151 y(en)m(vironmen)m(t)225 1281 y Fp(\017)60 b Ft(options)33
+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 1391
+y(b)m(y)c Fs(set)225 1522 y Fp(\017)60 b Ft(options)31
+b(enabled)f(b)m(y)g Fs(shopt)225 1653 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(75\))225
+1783 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f
 Fl(id)p Ft(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f
-(\(see)i(Section)g(3.2.3)g([Lists],)330 1183 y(page)31
+(\(see)i(Section)g(3.2.3)g([Lists],)330 1893 y(page)31
 b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Fs($$)p Ft(,)g(and)g(the)h(v)-5
-b(alue)31 b(of)f Fs($PPID)275 1355 y Ft(When)k(a)g(simple)h(command)f
+b(alue)31 b(of)f Fs($PPID)275 2045 y Ft(When)k(a)g(simple)h(command)f
 (other)g(than)g(a)h(builtin)f(or)g(shell)h(function)f(is)g(to)h(b)s(e)f
-(executed,)i(it)f(is)150 1465 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
+(executed,)i(it)f(is)150 2154 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
 (separate)h(execution)g(en)m(vironmen)m(t)g(that)f(consists)g(of)h(the)
-f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 1574 y(noted,)31
+f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 2264 y(noted,)31
 b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)225
-1717 y Fp(\017)60 b Ft(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
+2395 y Fp(\017)60 b Ft(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
 (an)m(y)h(mo)s(di\014cations)h(and)e(additions)h(sp)s(eci\014ed)g(b)m
-(y)g(redirections)g(to)330 1827 y(the)g(command)225 1965
+(y)g(redirections)g(to)330 2504 y(the)g(command)225 2635
 y Fp(\017)60 b Ft(the)31 b(curren)m(t)f(w)m(orking)g(directory)225
-2104 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
-2243 y Fp(\017)60 b Ft(shell)32 b(v)-5 b(ariables)33
+2766 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
+2897 y Fp(\017)60 b Ft(shell)32 b(v)-5 b(ariables)33
 b(and)e(functions)h(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5
-b(ariables)32 b(exp)s(orted)g(for)g(the)330 2353 y(command,)e(passed)g
+b(ariables)32 b(exp)s(orted)g(for)g(the)330 3006 y(command,)e(passed)g
 (in)g(the)h(en)m(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m
-(vironmen)m(t],)e(page)g(30\))225 2491 y Fp(\017)60 b
+(vironmen)m(t],)e(page)g(30\))225 3137 y Fp(\017)60 b
 Ft(traps)31 b(caugh)m(t)h(b)m(y)f(the)g(shell)h(are)f(reset)h(to)g(the)
 f(v)-5 b(alues)32 b(inherited)e(from)h(the)g(shell's)h(paren)m(t,)g
-(and)330 2601 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored)
-275 2773 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g
+(and)330 3247 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored)
+275 3399 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g
 (en)m(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g(execution)150
-2883 y(en)m(vironmen)m(t.)275 3026 y(Command)35 b(substitution,)j
+3508 y(en)m(vironmen)m(t.)275 3639 y(Command)35 b(substitution,)j
 (commands)e(group)s(ed)f(with)i(paren)m(theses,)h(and)e(async)m
-(hronous)g(com-)150 3135 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i
+(hronous)g(com-)150 3748 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i
 (subshell)e(en)m(vironmen)m(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g
-(shell)g(en)m(vironmen)m(t,)150 3245 y(except)i(that)g(traps)f(caugh)m
+(shell)g(en)m(vironmen)m(t,)150 3858 y(except)i(that)g(traps)f(caugh)m
 (t)h(b)m(y)f(the)h(shell)f(are)g(reset)h(to)g(the)f(v)-5
 b(alues)35 b(that)g(the)f(shell)h(inherited)e(from)150
-3355 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
+3968 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
 b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h(as)e(part)g
-(of)h(a)f(pip)s(eline)g(are)h(also)150 3464 y(executed)41
+(of)h(a)f(pip)s(eline)g(are)h(also)150 4077 y(executed)41
 b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72 b(Changes)40
 b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot)150
-3574 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
-3717 y(If)38 b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p
+4187 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
+4318 y(If)38 b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p
 Fs(&)p Ft(')g(and)f(job)g(con)m(trol)i(is)e(not)h(activ)m(e,)k(the)c
-(default)g(standard)150 3826 y(input)e(for)g(the)h(command)f(is)h(the)g
+(default)g(standard)150 4427 y(input)e(for)g(the)h(command)f(is)h(the)g
 (empt)m(y)g(\014le)f(`)p Fs(/dev/null)p Ft('.)61 b(Otherwise,)39
-b(the)f(in)m(v)m(ok)m(ed)h(command)150 3936 y(inherits)30
+b(the)f(in)m(v)m(ok)m(ed)h(command)150 4537 y(inherits)30
 b(the)h(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s
-(di\014ed)g(b)m(y)g(redirections.)150 4177 y Fk(3.7.4)63
-b(En)m(vironmen)m(t)275 4430 y Ft(When)31 b(a)g(program)h(is)f(in)m(v)m
+(di\014ed)g(b)m(y)g(redirections.)150 4750 y Fk(3.7.4)63
+b(En)m(vironmen)m(t)275 4990 y Ft(When)31 b(a)g(program)h(is)f(in)m(v)m
 (ok)m(ed)i(it)f(is)f(giv)m(en)h(an)g(arra)m(y)g(of)f(strings)g(called)i
-(the)e Fq(en)m(vironmen)m(t)p Ft(.)45 b(This)150 4539
+(the)e Fq(en)m(vironmen)m(t)p Ft(.)45 b(This)150 5100
 y(is)30 b(a)h(list)g(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f
-(form)g Fs(name=value)p Ft(.)275 4682 y(Bash)39 b(pro)m(vides)g(sev)m
+(form)g Fs(name=value)p Ft(.)275 5230 y(Bash)39 b(pro)m(vides)g(sev)m
 (eral)i(w)m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69
-b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 4792
+b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 5340
 y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)f(creates)i(a)f
-(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)150
-4902 y(marking)26 b(it)g(for)g Fq(exp)s(ort)h Ft(to)g(c)m(hild)f(pro)s
-(cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m
-(t.)39 b(The)150 5011 y Fs(export)c Ft(and)i(`)p Fs(declare)29
-b(-x)p Ft(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g
-(to)h(b)s(e)e(added)h(to)h(and)150 5121 y(deleted)21
-b(from)f(the)h(en)m(vironmen)m(t.)38 b(If)20 b(the)h(v)-5
-b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g(en)m(vironmen)m(t)i(is)e
-(mo)s(di\014ed,)i(the)150 5230 y(new)31 b(v)-5 b(alue)32
-b(b)s(ecomes)f(part)h(of)f(the)h(en)m(vironmen)m(t,)g(replacing)h(the)e
-(old.)44 b(The)31 b(en)m(vironmen)m(t)h(inherited)150
-5340 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g
-(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f(v)-5
-b(alues)31 b(ma)m(y)h(b)s(e)p eop end
+(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)p
+eop end
 %%Page: 31 37
 TeXDict begin 31 36 bop 150 -116 a Ft(Chapter)30 b(3:)41
 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)150 299
-y(mo)s(di\014ed)26 b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m
-(v)m(ed)i(b)m(y)f(the)g Fs(unset)e Ft(and)h(`)p Fs(export)j(-n)p
-Ft(')e(commands,)g(plus)150 408 y(an)m(y)k(additions)f(via)h(the)g
-Fs(export)d Ft(and)i(`)p Fs(declare)f(-x)p Ft(')h(commands.)275
-546 y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g
+y(marking)26 b(it)g(for)g Fq(exp)s(ort)h Ft(to)g(c)m(hild)f(pro)s
+(cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m
+(t.)39 b(The)150 408 y Fs(export)c Ft(and)i(`)p Fs(declare)29
+b(-x)p Ft(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g
+(to)h(b)s(e)e(added)h(to)h(and)150 518 y(deleted)21 b(from)f(the)h(en)m
+(vironmen)m(t.)38 b(If)20 b(the)h(v)-5 b(alue)21 b(of)g(a)g(parameter)g
+(in)f(the)g(en)m(vironmen)m(t)i(is)e(mo)s(di\014ed,)i(the)150
+628 y(new)31 b(v)-5 b(alue)32 b(b)s(ecomes)f(part)h(of)f(the)h(en)m
+(vironmen)m(t,)g(replacing)h(the)e(old.)44 b(The)31 b(en)m(vironmen)m
+(t)h(inherited)150 737 y(b)m(y)f(an)m(y)g(executed)h(command)f
+(consists)g(of)g(the)g(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f
+(v)-5 b(alues)31 b(ma)m(y)h(b)s(e)150 847 y(mo)s(di\014ed)26
+b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f
+(the)g Fs(unset)e Ft(and)h(`)p Fs(export)j(-n)p Ft(')e(commands,)g
+(plus)150 956 y(an)m(y)k(additions)f(via)h(the)g Fs(export)d
+Ft(and)i(`)p Fs(declare)f(-x)p Ft(')h(commands.)275 1096
+y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g
 (function)g(ma)m(y)g(b)s(e)g(augmen)m(ted)h(temp)s(orarily)150
-656 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
+1205 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
 (as)e(describ)s(ed)g(in)g(Section)i(3.4)g([Shell)e(P)m(arameters],)150
-765 y(page)g(15.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
+1315 y(page)g(15.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
 (a\013ect)f(only)g(the)f(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h
-(command.)275 903 y(If)h(the)i(`)p Fs(-k)p Ft(')f(option)h(is)f(set)h
-(\(see)g(Section)g(4.3)g([The)f(Set)h(Builtin],)g(page)g(51\),)h(then)e
-(all)h(parameter)150 1012 y(assignmen)m(ts)d(are)g(placed)h(in)e(the)h
+(command.)275 1455 y(If)h(the)i(`)p Fs(-k)p Ft(')f(option)h(is)f(set)h
+(\(see)g(Section)g(4.3)g([The)f(Set)h(Builtin],)g(page)g(53\),)h(then)e
+(all)h(parameter)150 1564 y(assignmen)m(ts)d(are)g(placed)h(in)e(the)h
 (en)m(vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i(that)f
-(precede)g(the)150 1122 y(command)g(name.)275 1259 y(When)f(Bash)h(in)m
+(precede)g(the)150 1674 y(command)g(name.)275 1813 y(When)f(Bash)h(in)m
 (v)m(ok)m(es)i(an)e(external)g(command,)g(the)g(v)-5
 b(ariable)31 b(`)p Fs($_)p Ft(')f(is)g(set)g(to)h(the)f(full)f(path)h
-(name)150 1369 y(of)h(the)f(command)g(and)g(passed)g(to)h(that)g
-(command)f(in)g(its)h(en)m(vironmen)m(t.)150 1599 y Fk(3.7.5)63
-b(Exit)40 b(Status)275 1846 y Ft(F)-8 b(or)32 b(the)g(shell's)g(purp)s
+(name)150 1923 y(of)h(the)f(command)g(and)g(passed)g(to)h(that)g
+(command)f(in)g(its)h(en)m(vironmen)m(t.)150 2157 y Fk(3.7.5)63
+b(Exit)40 b(Status)275 2406 y Ft(F)-8 b(or)32 b(the)g(shell's)g(purp)s
 (oses,)e(a)j(command)e(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h
-(status)f(has)f(succeeded.)150 1956 y(A)e(non-zero)h(exit)g(status)g
+(status)f(has)f(succeeded.)150 2516 y(A)e(non-zero)h(exit)g(status)g
 (indicates)g(failure.)40 b(This)28 b(seemingly)i(coun)m(ter-in)m
-(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 2065 y(there)34
+(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 2625 y(there)34
 b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m(y)g(to)h(indicate)g(success)f
 (and)f(a)h(v)-5 b(ariet)m(y)35 b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5
-b(arious)150 2175 y(failure)38 b(mo)s(des.)62 b(When)38
+b(arious)150 2735 y(failure)38 b(mo)s(des.)62 b(When)38
 b(a)g(command)f(terminates)i(on)e(a)i(fatal)g(signal)f(whose)g(n)m(um)m
-(b)s(er)e(is)i Fq(N)p Ft(,)g(Bash)150 2284 y(uses)30
+(b)s(er)e(is)i Fq(N)p Ft(,)g(Bash)150 2844 y(uses)30
 b(the)g(v)-5 b(alue)31 b(128)p Fs(+)p Fq(N)42 b Ft(as)30
-b(the)h(exit)g(status.)275 2422 y(If)k(a)h(command)g(is)g(not)g(found,)
+b(the)h(exit)g(status.)275 2984 y(If)k(a)h(command)g(is)g(not)g(found,)
 g(the)g(c)m(hild)h(pro)s(cess)e(created)i(to)g(execute)g(it)g(returns)d
-(a)j(status)f(of)150 2532 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)
+(a)j(status)f(of)150 3093 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)
 f(but)h(is)g(not)h(executable,)h(the)f(return)e(status)i(is)f(126.)275
-2669 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f
+3233 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f
 (during)g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
-2779 y(is)c(greater)i(than)e(zero.)275 2916 y(The)38
+3342 y(is)c(greater)i(than)e(zero.)275 3482 y(The)38
 b(exit)h(status)g(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h
-(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 3026
+(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 3592
 y(ditional)i(Constructs],)h(page)f(10\))g(and)e(some)i(of)f(the)g(list)
 g(constructs)g(\(see)h(Section)f(3.2.3)i([Lists],)150
-3135 y(page)31 b(9\).)275 3273 y(All)40 b(of)g(the)h(Bash)f(builtins)f
+3701 y(page)31 b(9\).)275 3841 y(All)40 b(of)g(the)h(Bash)f(builtins)f
 (return)g(an)h(exit)h(status)g(of)f(zero)h(if)f(they)g(succeed)g(and)g
-(a)g(non-zero)150 3382 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m
+(a)g(non-zero)150 3950 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m
 (y)g(b)s(e)f(used)g(b)m(y)g(the)h(conditional)h(and)e(list)h
-(constructs.)50 b(All)35 b(builtins)150 3492 y(return)29
+(constructs.)50 b(All)35 b(builtins)150 4060 y(return)29
 b(an)i(exit)g(status)g(of)f(2)h(to)g(indicate)g(incorrect)h(usage.)150
-3722 y Fk(3.7.6)63 b(Signals)275 3969 y Ft(When)27 b(Bash)h(is)h(in)m
+4294 y Fk(3.7.6)63 b(Signals)275 4543 y Ft(When)27 b(Bash)h(is)h(in)m
 (teractiv)m(e,)i(in)d(the)g(absence)h(of)f(an)m(y)g(traps,)h(it)f
 (ignores)h Fs(SIGTERM)d Ft(\(so)i(that)h(`)p Fs(kill)150
-4079 y(0)p Ft(')k(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
+4653 y(0)p Ft(')k(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
 (shell\),)f(and)d Fs(SIGINT)f Ft(is)i(caugh)m(t)h(and)f(handled)f(\(so)
-h(that)h(the)f Fs(wait)150 4188 y Ft(builtin)24 b(is)h(in)m
+h(that)h(the)f Fs(wait)150 4762 y Ft(builtin)24 b(is)h(in)m
 (terruptible\).)39 b(When)24 b(Bash)g(receiv)m(es)j(a)d
 Fs(SIGINT)p Ft(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s
-(ops.)150 4298 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
+(ops.)150 4872 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
 Fs(SIGQUIT)p Ft(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h
-(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 4407 y(page)f(83\),)h
+(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 4981 y(page)f(85\),)h
 (Bash)e(ignores)h Fs(SIGTTIN)p Ft(,)e Fs(SIGTTOU)p Ft(,)g(and)g
-Fs(SIGTSTP)p Ft(.)275 4545 y(Non-builtin)i(commands)g(started)g(b)m(y)g
+Fs(SIGTSTP)p Ft(.)275 5121 y(Non-builtin)i(commands)g(started)g(b)m(y)g
 (Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5
-b(alues)31 b(inherited)150 4655 y(b)m(y)37 b(the)h(shell)g(from)f(its)h
+b(alues)31 b(inherited)150 5230 y(b)m(y)37 b(the)h(shell)g(from)f(its)h
 (paren)m(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f
-(e\013ect,)k(async)m(hronous)c(commands)150 4764 y(ignore)f
+(e\013ect,)k(async)m(hronous)c(commands)150 5340 y(ignore)f
 Fs(SIGINT)e Ft(and)h Fs(SIGQUIT)e Ft(in)j(addition)f(to)i(these)f
-(inherited)f(handlers.)55 b(Commands)35 b(run)f(as)i(a)150
-4874 y(result)27 b(of)h(command)f(substitution)h(ignore)g(the)g(k)m
-(eyb)s(oard-generated)g(job)g(con)m(trol)h(signals)f
-Fs(SIGTTIN)p Ft(,)150 4983 y Fs(SIGTTOU)p Ft(,)h(and)g
-Fs(SIGTSTP)p Ft(.)275 5121 y(The)h(shell)i(exits)g(b)m(y)f(default)g
-(up)s(on)f(receipt)i(of)f(a)h Fs(SIGHUP)p Ft(.)42 b(Before)32
-b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150 5230
-y(resends)41 b(the)i Fs(SIGHUP)e Ft(to)i(all)g(jobs,)i(running)c(or)h
-(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g
-Fs(SIGCONT)d Ft(to)150 5340 y(ensure)32 b(that)h(they)g(receiv)m(e)i
-(the)e Fs(SIGHUP)p Ft(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)
-g(from)g(sending)f(the)h Fs(SIGHUP)e Ft(signal)p eop
-end
+(inherited)f(handlers.)55 b(Commands)35 b(run)f(as)i(a)p
+eop end
 %%Page: 32 38
 TeXDict begin 32 37 bop 150 -116 a Ft(32)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(to)i(a)g(particular)g(job,)g(it)g
-(should)f(b)s(e)g(remo)m(v)m(ed)h(from)g(the)f(jobs)g(table)i(with)e
-(the)h Fs(disown)e Ft(builtin)h(\(see)150 408 y(Section)f(7.2)g([Job)f
-(Con)m(trol)h(Builtins],)g(page)g(84\))h(or)e(mark)m(ed)g(to)h(not)f
-(receiv)m(e)i Fs(SIGHUP)d Ft(using)h Fs(disown)150 518
-y(-h)p Ft(.)275 645 y(If)h(the)h Fs(huponexit)d Ft(shell)k(option)f
-(has)g(b)s(een)f(set)h(with)g Fs(shopt)e Ft(\(see)j(Section)g(4.2)g
-([Bash)f(Builtins],)150 754 y(page)f(39\),)h(Bash)e(sends)g(a)h
-Fs(SIGHUP)d Ft(to)j(all)h(jobs)e(when)f(an)h(in)m(teractiv)m(e)j(login)
-f(shell)e(exits.)275 881 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)
-m(h)h(a)g(trap)150 991 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
-(not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55
-b(When)35 b(Bash)g(is)150 1100 y(w)m(aiting)j(for)f(an)g(async)m
+b(Reference)g(Man)m(ual)150 299 y(result)c(of)h(command)f(substitution)
+h(ignore)g(the)g(k)m(eyb)s(oard-generated)g(job)g(con)m(trol)h(signals)
+f Fs(SIGTTIN)p Ft(,)150 408 y Fs(SIGTTOU)p Ft(,)h(and)g
+Fs(SIGTSTP)p Ft(.)275 542 y(The)h(shell)i(exits)g(b)m(y)f(default)g(up)
+s(on)f(receipt)i(of)f(a)h Fs(SIGHUP)p Ft(.)42 b(Before)32
+b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150 652 y(resends)41
+b(the)i Fs(SIGHUP)e Ft(to)i(all)g(jobs,)i(running)c(or)h(stopp)s(ed.)76
+b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g Fs(SIGCONT)d
+Ft(to)150 762 y(ensure)32 b(that)h(they)g(receiv)m(e)i(the)e
+Fs(SIGHUP)p Ft(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)g(from)
+g(sending)f(the)h Fs(SIGHUP)e Ft(signal)150 871 y(to)i(a)g(particular)g
+(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h(from)g(the)f(jobs)g
+(table)i(with)e(the)h Fs(disown)e Ft(builtin)h(\(see)150
+981 y(Section)f(7.2)g([Job)f(Con)m(trol)h(Builtins],)g(page)g(86\))h
+(or)e(mark)m(ed)g(to)h(not)f(receiv)m(e)i Fs(SIGHUP)d
+Ft(using)h Fs(disown)150 1090 y(-h)p Ft(.)275 1224 y(If)h(the)h
+Fs(huponexit)d Ft(shell)k(option)f(has)g(b)s(een)f(set)h(with)g
+Fs(shopt)e Ft(\(see)j(Section)g(4.2)g([Bash)f(Builtins],)150
+1334 y(page)f(41\),)h(Bash)e(sends)g(a)h Fs(SIGHUP)d
+Ft(to)j(all)h(jobs)e(when)f(an)h(in)m(teractiv)m(e)j(login)f(shell)e
+(exits.)275 1468 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)m(h)h(a)g
+(trap)150 1577 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g(not)g(b)s
+(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55
+b(When)35 b(Bash)g(is)150 1687 y(w)m(aiting)j(for)f(an)g(async)m
 (hronous)g(command)g(via)h(the)f Fs(wait)f Ft(builtin,)i(the)g
-(reception)g(of)f(a)g(signal)h(for)150 1210 y(whic)m(h)d(a)g(trap)g
+(reception)g(of)f(a)g(signal)h(for)150 1797 y(whic)m(h)d(a)g(trap)g
 (has)g(b)s(een)f(set)h(will)h(cause)f(the)g Fs(wait)f
 Ft(builtin)h(to)g(return)f(immediately)i(with)f(an)g(exit)150
-1319 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
-f(the)h(trap)f(is)g(executed.)150 1553 y Fr(3.8)68 b(Shell)45
-b(Scripts)275 1789 y Ft(A)c(shell)h(script)g(is)g(a)g(text)h(\014le)f
+1906 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
+f(the)h(trap)f(is)g(executed.)150 2162 y Fr(3.8)68 b(Shell)45
+b(Scripts)275 2405 y Ft(A)c(shell)h(script)g(is)g(a)g(text)h(\014le)f
 (con)m(taining)h(shell)f(commands.)75 b(When)41 b(suc)m(h)h(a)g(\014le)
-g(is)g(used)f(as)150 1899 y(the)33 b(\014rst)f(non-option)h(argumen)m
+g(is)g(used)f(as)150 2515 y(the)33 b(\014rst)f(non-option)h(argumen)m
 (t)h(when)e(in)m(v)m(oking)i(Bash,)g(and)e(neither)h(the)g(`)p
 Fs(-c)p Ft(')g(nor)g(`)p Fs(-s)p Ft(')f(option)i(is)150
-2008 y(supplied)j(\(see)j(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)h
-(page)f(65\),)i(Bash)d(reads)f(and)g(executes)i(commands)150
-2118 y(from)31 b(the)h(\014le,)h(then)e(exits.)46 b(This)31
+2625 y(supplied)j(\(see)j(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)h
+(page)f(67\),)i(Bash)d(reads)f(and)g(executes)i(commands)150
+2734 y(from)31 b(the)h(\014le,)h(then)e(exits.)46 b(This)31
 b(mo)s(de)g(of)h(op)s(eration)h(creates)g(a)f(non-in)m(teractiv)m(e)i
-(shell.)45 b(The)32 b(shell)150 2228 y(\014rst)26 b(searc)m(hes)h(for)f
+(shell.)45 b(The)32 b(shell)150 2844 y(\014rst)26 b(searc)m(hes)h(for)f
 (the)g(\014le)h(in)f(the)g(curren)m(t)h(directory)-8
 b(,)28 b(and)e(lo)s(oks)g(in)h(the)f(directories)h(in)f
-Fs($PATH)f Ft(if)i(not)150 2337 y(found)i(there.)275
-2464 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f
+Fs($PATH)f Ft(if)i(not)150 2953 y(found)i(there.)275
+3087 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f
 (sp)s(ecial)i(parameter)f Fs(0)f Ft(to)h(the)g(name)g(of)g(the)g
-(\014le,)150 2573 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j
+(\014le,)150 3197 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j
 (and)d(the)h(p)s(ositional)g(parameters)f(are)h(set)g(to)g(the)g
-(remain-)150 2683 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m
+(remain-)150 3306 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m
 (en.)67 b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h
-(the)f(p)s(ositional)150 2793 y(parameters)31 b(are)f(unset.)275
-2919 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
+(the)f(p)s(ositional)150 3416 y(parameters)31 b(are)f(unset.)275
+3550 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
 (y)e(using)g(the)h Fs(chmod)e Ft(command)h(to)h(turn)e(on)i(the)150
-3029 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
+3660 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
 (\014le)f(while)g(searc)m(hing)h(the)f Fs($PATH)f Ft(for)h(a)h
-(command,)h(it)150 3138 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
-(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 3265
-y Fs(filename)46 b Fj(arguments)150 3392 y Ft(is)30 b(equiv)-5
-b(alen)m(t)32 b(to)f(executing)390 3518 y Fs(bash)47
-b(filename)e Fj(arguments)150 3645 y Ft(if)30 b Fs(filename)d
+(command,)h(it)150 3769 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
+(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 3903
+y Fs(filename)46 b Fj(arguments)150 4037 y Ft(is)30 b(equiv)-5
+b(alen)m(t)32 b(to)f(executing)390 4171 y Fs(bash)47
+b(filename)e Fj(arguments)150 4305 y Ft(if)30 b Fs(filename)d
 Ft(is)j(an)f(executable)j(shell)e(script.)40 b(This)29
 b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e(e\013ect)150
-3755 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
+4415 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
 m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h(exception)h
-(that)f(the)150 3864 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
+(that)f(the)150 4524 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
 (ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f(description)g(of)g
-Fs(hash)f Ft(in)h(Section)h(4.1)150 3974 y([Bourne)30
-b(Shell)h(Builtins],)g(page)g(33\))h(are)e(retained)h(b)m(y)f(the)h(c)m
-(hild.)275 4100 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
+Fs(hash)f Ft(in)h(Section)h(4.1)150 4634 y([Bourne)30
+b(Shell)h(Builtins],)g(page)g(35\))h(are)e(retained)h(b)m(y)f(the)h(c)m
+(hild.)275 4768 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
 (a)g(part)f(of)h(the)g(op)s(erating)g(system's)f(command)h(execution)
-150 4210 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
+150 4877 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
 (script)f(b)s(egins)g(with)g(the)g(t)m(w)m(o)i(c)m(haracters)g(`)p
-Fs(#!)p Ft(',)f(the)g(remainder)150 4320 y(of)d(the)g(line)h(sp)s
+Fs(#!)p Ft(',)f(the)g(remainder)150 4987 y(of)d(the)g(line)h(sp)s
 (eci\014es)e(an)h(in)m(terpreter)g(for)g(the)g(program.)43
 b(Th)m(us,)30 b(y)m(ou)h(can)h(sp)s(ecify)e(Bash,)i Fs(awk)p
-Ft(,)e(P)m(erl,)150 4429 y(or)g(some)h(other)g(in)m(terpreter)g(and)e
+Ft(,)e(P)m(erl,)150 5096 y(or)g(some)h(other)g(in)m(terpreter)g(and)e
 (write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h(in)f(that)h
-(language.)275 4556 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m
+(language.)275 5230 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m
 (terpreter)g(consist)g(of)g(a)g(single)h(optional)f(argumen)m(t)h
-(follo)m(wing)g(the)150 4665 y(in)m(terpreter)33 b(name)h(on)f(the)g
+(follo)m(wing)g(the)150 5340 y(in)m(terpreter)33 b(name)h(on)f(the)g
 (\014rst)f(line)i(of)f(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)
-e(the)g(name)g(of)g(the)h(script)f(\014le,)150 4775 y(follo)m(w)m(ed)g
-(b)m(y)f(the)f(rest)h(of)g(the)f(argumen)m(ts.)45 b(Bash)31
-b(will)h(p)s(erform)e(this)i(action)h(on)e(op)s(erating)h(systems)150
-4885 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40
+e(the)g(name)g(of)g(the)h(script)f(\014le,)p eop end
+%%Page: 33 39
+TeXDict begin 33 38 bop 150 -116 a Ft(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)150 299
+y(follo)m(w)m(ed)33 b(b)m(y)f(the)f(rest)h(of)g(the)f(argumen)m(ts.)45
+b(Bash)31 b(will)h(p)s(erform)e(this)i(action)h(on)e(op)s(erating)h
+(systems)150 408 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40
 b(Note)25 b(that)f(some)g(older)g(v)m(ersions)f(of)h(Unix)f(limit)i
-(the)f(in)m(terpreter)150 4994 y(name)30 b(and)g(argumen)m(t)h(to)g(a)g
-(maxim)m(um)f(of)h(32)g(c)m(haracters.)275 5121 y(Bash)h(scripts)g
+(the)f(in)m(terpreter)150 518 y(name)30 b(and)g(argumen)m(t)h(to)g(a)g
+(maxim)m(um)f(of)h(32)g(c)m(haracters.)275 653 y(Bash)h(scripts)g
 (often)g(b)s(egin)g(with)g Fs(#!)e(/bin/bash)g Ft(\(assuming)i(that)h
-(Bash)f(has)g(b)s(een)f(installed)i(in)150 5230 y(`)p
+(Bash)f(has)g(b)s(een)f(installed)i(in)150 762 y(`)p
 Fs(/bin)p Ft('\),)25 b(since)e(this)g(ensures)f(that)i(Bash)f(will)h(b)
 s(e)e(used)h(to)h(in)m(terpret)f(the)g(script,)i(ev)m(en)f(if)f(it)h
-(is)f(executed)150 5340 y(under)29 b(another)h(shell.)p
+(is)f(executed)150 872 y(under)29 b(another)h(shell.)p
 eop end
-%%Page: 33 39
-TeXDict begin 33 38 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(33)150 299 y Fo(4)80
+%%Page: 34 40
+TeXDict begin 34 39 bop 150 -116 a Ft(34)2572 b(Bash)31
+b(Reference)g(Man)m(ual)p 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(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
@@ -6981,20 +6988,20 @@ b(When)24 b(the)h(name)g(of)g(a)g(builtin)f(com-)150
 b(Builtin)150 864 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)j(section)i(brie\015y)f(the)g(builtins)g(whic)m(h)g(Bash)g
-(inherits)g(from)g(the)g(Bourne)g(Shell,)i(as)e(w)m(ell)i(as)150
-1218 y(the)31 b(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)e(extended)g(in)g(Bash.)275 1354
-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
+1109 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
+(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
+(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
 (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(84\),)j(the)c(directory)h(stac)m(k)g
+(Builtins],)150 1573 y(page)40 b(86\),)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
-(75\),)j(the)150 1682 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
-([Bash)f(History)g(Builtins],)h(page)g(113\),)h(and)d(the)h
+(77\),)j(the)150 1682 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
+([Bash)f(History)g(Builtins],)h(page)g(115\),)h(and)d(the)h
 (programmable)150 1792 y(completion)32 b(facilities)g(\(see)g(Section)f
-(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(109\).)275
+(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(111\).)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
@@ -7007,8 +7014,8 @@ Fs(:)p Ft(,)h Fs(true)p Ft(,)e Fs(false)p Ft(,)h(and)150
 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(1003.2)j(standard.)150 3056
-y Fs(:)d Ft(\(a)h(colon\))870 3165 y Fs(:)47 b([)p Fj(arguments)11
+(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
@@ -7041,8 +7048,8 @@ Ft(is)g(supplied,)j(the)e Fq(n)p Ft(th)630 5230 y(enclosing)c(lo)s(op)f
 (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
-%%Page: 34 40
-TeXDict begin 34 39 bop 150 -116 a Ft(34)2572 b(Bash)31
+%%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
@@ -7115,9 +7122,9 @@ b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s(cesses)f(in)g(the)h(en)m
 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
-%%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)630 299 y(refer)36
+%%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
@@ -7195,7 +7202,7 @@ Ft(,)h Fs(OPTARG)e Ft(is)h(unset,)h(and)f(a)g(diagnostic)i(message)g
 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
+(found.)150 4855 y Fs(hash)870 4988 y(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
 (sp)s(eci\014ed)g(as)g Fq(name)41 b Ft(argumen)m(ts,)e(so)630
@@ -7204,8 +7211,8 @@ Fj(filename)11 b Fs(])45 b([-dt])h([)p Fj(name)11 b Fs(])630
 5340 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: 36 42
-TeXDict begin 36 41 bop 150 -116 a Ft(36)2572 b(Bash)31
+%%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
@@ -7293,9 +7300,9 @@ d(less)i(than)f(or)630 5340 y(equal)e(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)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(c)m(hanged.)48
+%%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(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
 408 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g Fs($#)e
@@ -7306,7 +7313,7 @@ b(op)s(erator)g(and)f(op)s(erand)g(m)m(ust)h(b)s(e)f(a)630
 797 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
 907 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h
-(page)g(71.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630
+(page)g(73.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630
 1016 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 1126 y(end)j(of)g(options.)630 1265 y(When)g(the)h
@@ -7337,13 +7344,13 @@ b(aluate)39 b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)
 b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)
 1110 3856 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
 ([Bash)g(Conditional)g(Expres-)1110 3965 y(sions],)34
-b(page)f(71\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e
+b(page)f(73\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e
 (test)j(is)f(true.)47 b(If)1110 4075 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 4184 y(false.)630 4354 y(3)e(argumen)m(ts)1110
 4463 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 4573 y(\(see)23 b(Section)g(6.4)f
-([Bash)h(Conditional)f(Expressions],)h(page)g(71\),)i(the)d(result)1110
+([Bash)h(Conditional)f(Expressions],)h(page)g(73\),)i(the)d(result)1110
 4682 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 4792 y(and)33
 b(third)g(argumen)m(ts)h(as)g(op)s(erands.)50 b(If)33
@@ -7358,8 +7365,8 @@ y(second)d(argumen)m(t.)45 b(Otherwise,)31 b(the)h(expression)f(is)g
 (false.)44 b(The)31 b(`)p Fs(-a)p Ft(')h(and)1110 5340
 y(`)p Fs(-o)p Ft(')e(op)s(erators)h(are)g(considered)f(binary)f(op)s
 (erators)i(in)f(this)g(case.)p eop end
-%%Page: 38 44
-TeXDict begin 38 43 bop 150 -116 a Ft(38)2572 b(Bash)31
+%%Page: 40 46
+TeXDict begin 40 45 bop 150 -116 a Ft(40)2572 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y(4)g(argumen)m(ts)1110
 408 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
@@ -7413,7 +7420,7 @@ b(If)27 b(a)i Fq(sigsp)s(ec)k Ft(is)28 b Fs(DEBUG)p Ft(,)630
 3680 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
 3790 y Fs(extglob)d Ft(option)j(to)g(the)g Fs(shopt)e
-Ft(builtin)h(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)h(page)f(39\))
+Ft(builtin)h(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)h(page)f(41\))
 630 3900 y(for)c(details)i(of)e(its)h(e\013ect)h(on)f(the)g
 Fs(DEBUG)e Ft(trap.)40 b(If)28 b(a)g Fq(sigsp)s(ec)35
 b Ft(is)28 b Fs(ERR)p Ft(,)h(the)f(command)g Fq(arg)630
@@ -7440,9 +7447,9 @@ b(T)-8 b(rapp)s(ed)630 5027 y(signals)31 b(are)g(reset)g(to)g(their)f
 (it)i(is)g(created.)630 5168 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 5340 y Fs(umask)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)870 299 y Fs(umask)46
+%%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)870 299 y Fs(umask)46
 b([-p])h([-S])g([)p Fj(mode)11 b Fs(])630 435 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
@@ -7482,8 +7489,8 @@ b(.)150 2692 y Fr(4.2)68 b(Bash)45 b(Builtin)g(Commands)275
 2938 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
 3048 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(1003.2)k(standard.)150
-3211 y Fs(alias)870 3346 y(alias)46 b([-p])h([)p Fj(name)11
+(eci\014ed)g(in)g(the)h Fl(posix)e Ft(standard.)150 3211
+y Fs(alias)870 3346 y(alias)46 b([-p])h([)p Fj(name)11
 b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 3482 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
@@ -7495,7 +7502,7 @@ b Ft(is)29 b(giv)m(en.)630 3811 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 3920 y(describ)s(ed)29 b(in)h(Section)i(6.6)f([Aliases],)h
-(page)f(73.)150 4082 y Fs(bind)870 4218 y(bind)47 b([-m)g
+(page)f(75.)150 4082 y Fs(bind)870 4218 y(bind)47 b([-m)g
 Fj(keymap)11 b Fs(])45 b([-lpsvPSV])870 4328 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
@@ -7505,17 +7512,17 @@ b Fs(])45 b(-x)i Fj(keyseq:shell-command)870 4656 y Fs(bind)g([-m)g
 Fj(keymap)11 b Fs(])45 b Fj(keyseq:function-name)870
 4766 y Fs(bind)i Fj(readline-command)630 4902 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(87\))g(k)m(ey)630 5011 y(and)36 b(function)g
+(Editing],)i(page)f(89\))g(k)m(ey)630 5011 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 5121 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 5230 y(w)m(ould)35 b(app)s(ear)f(in)g(a)i(a)f
 (Readline)g(initialization)j(\014le)d(\(see)h(Section)f(8.3)h
-([Readline)g(Init)630 5340 y(File],)43 b(page)c(90\),)k(but)38
+([Readline)g(Init)630 5340 y(File],)43 b(page)c(92\),)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)p eop end
-%%Page: 40 46
-TeXDict begin 40 45 bop 150 -116 a Ft(40)2572 b(Bash)31
+%%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(argumen)m(t;)36 b(e.g.,)f(`)p
 Fs("\\C-x\\C-r":re-read-init-fi)o(le)p Ft('.)43 b(Options,)34
 b(if)g(supplied,)f(ha)m(v)m(e)630 408 y(the)e(follo)m(wing)g(meanings:)
@@ -7570,9 +7577,9 @@ b(de\014ning)h(a)g(shell)h(function)f(with)g(the)g(same)h(name)f(as)h
 b(return)g(status)h(is)f(non-)630 5172 y(zero)e(if)g
 Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin)g(command.)150
 5340 y Fs(caller)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)870 299 y Fs(caller)46
+%%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(caller)46
 b([)p Fj(expr)11 b Fs(])630 437 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 547 y(executed)c(with)f(the)h Fs(.)f
@@ -7633,7 +7640,7 @@ b(The)31 b(`)p Fs(-F)p Ft(')h(option)h(inhibits)e(the)h(displa)m(y)h
 (name)h(and)f(attributes)h(are)f(prin)m(ted.)47 b(If)32
 b(the)630 4181 y Fs(extdebug)e Ft(shell)j(option)g(is)g(enabled)f
 (using)g Fs(shopt)g Ft(\(see)h(Section)g(4.2)h([Bash)f(Builtins],)630
-4290 y(page)k(39\),)h(the)e(source)g(\014le)g(name)g(and)g(line)g(n)m
+4290 y(page)k(41\),)h(the)e(source)g(\014le)g(name)g(and)g(line)g(n)m
 (um)m(b)s(er)e(where)i(the)g(function)f(is)h(de\014ned)630
 4400 y(are)f(displa)m(y)m(ed)h(as)f(w)m(ell.)55 b(`)p
 Fs(-F)p Ft(')34 b(implies)h(`)p Fs(-f)p Ft('.)54 b(The)35
@@ -7642,16 +7649,16 @@ b(follo)m(wing)h(options)f(can)g(b)s(e)f(used)g(to)630
 b(with)e(the)h(sp)s(eci\014ed)f(attributes)h(or)g(to)g(giv)m(e)h(v)-5
 b(ariables)630 4619 y(attributes:)630 4786 y Fs(-a)384
 b Ft(Eac)m(h)30 b Fq(name)k Ft(is)29 b(an)g(arra)m(y)h(v)-5
-b(ariable)30 b(\(see)g(Section)g(6.7)g([Arra)m(ys],)h(page)e(74\).)630
+b(ariable)30 b(\(see)g(Section)g(6.7)g([Arra)m(ys],)h(page)e(76\).)630
 4954 y Fs(-f)384 b Ft(Use)31 b(function)f(names)g(only)-8
 b(.)630 5121 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 5230 y(\(see)29
-b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(72\))h(is)f(p)s
+b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(74\))h(is)f(p)s
 (erformed)e(when)h(the)1110 5340 y(v)-5 b(ariable)31
 b(is)g(assigned)f(a)h(v)-5 b(alue.)p eop end
-%%Page: 42 48
-TeXDict begin 42 47 bop 150 -116 a Ft(42)2572 b(Bash)31
+%%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 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
@@ -7680,7 +7687,7 @@ Fs(-f)f(foo=bar)p Ft(',)h(an)h(attempt)g(is)g(made)g(to)h(assign)630
 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 1915 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 2025 y([Arra)m(ys],)47 b(page)c(74\),)48
+(\(see)h(Section)f(6.7)630 2025 y([Arra)m(ys],)47 b(page)c(76\),)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
 2134 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
@@ -7714,9 +7721,9 @@ b Ft(escap)s(e)630 4518 y Fs(\\f)g Ft(form)30 b(feed)630
 b Ft(carriage)32 b(return)630 5011 y Fs(\\t)384 b Ft(horizon)m(tal)32
 b(tab)630 5176 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630
 5340 y Fs(\\\\)384 b Ft(bac)m(kslash)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)630 299 y Fs(\\0)p
+%%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 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 408 y(three)e(o)s(ctal)g(digits\))630
@@ -7760,7 +7767,7 @@ 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 3134 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
-(54\).)630 3272 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
+(56\).)630 3272 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 3382 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
 (ob)5 b(ject.)150 3548 y Fs(help)870 3687 y(help)47 b([-s])f([)p
@@ -7780,14 +7787,14 @@ b Fs(])630 4706 y Ft(The)41 b Fs(let)g Ft(builtin)g(allo)m(ws)i
 b(ariables.)74 b(Eac)m(h)630 4816 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 4925
-y(Arithmetic],)51 b(page)46 b(72.)87 b(If)45 b(the)g(last)h
+y(Arithmetic],)51 b(page)46 b(74.)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 5035 y(otherwise)31 b(0)g(is)f(returned.)150
 5202 y Fs(local)870 5340 y(local)46 b([)p Fj(option)11
 b Fs(])45 b Fj(name)11 b Fs([=)p Fj(value)g Fs(])44 b(...)p
 eop end
-%%Page: 44 50
-TeXDict begin 44 49 bop 150 -116 a Ft(44)2572 b(Bash)31
+%%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(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
@@ -7870,9 +7877,9 @@ b(alid)30 b(\014le)630 5230 y(descriptor)35 b(is)h(supplied)e(as)i(the)
 f(argumen)m(t)h(to)g(`)p Fs(-u)p Ft('.)56 b(Options,)37
 b(if)e(supplied,)h(ha)m(v)m(e)h(the)630 5340 y(follo)m(wing)32
 b(meanings:)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 Fs(-a)30
+%%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(-a)30
 b 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
 408 y Fq(aname)p Ft(,)29 b(starting)h(at)f(0.)40 b(All)29
@@ -7883,7 +7890,7 @@ b Fq(name)36 b Ft(argumen)m(ts)30 b(are)h(ignored.)630
 Fq(delim)g Ft(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110
 800 y(rather)30 b(than)g(newline.)630 972 y Fs(-e)384
 b Ft(Readline)28 b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i
-(page)f(87\))h(is)f(used)1110 1082 y(to)j(obtain)g(the)g(line.)630
+(page)f(89\))h(is)f(used)1110 1082 y(to)j(obtain)g(the)g(line.)630
 1254 y Fs(-n)f Fj(nchars)1110 1363 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 1473 y(for)30 b(a)h(complete)h(line)e(of)h(input.)630
@@ -7931,9 +7938,9 @@ Ft(are)d(enabled;)1110 5058 y(non-zero)31 b(otherwise.)630
 b(of)f Fq(optname)47 b Ft(to)42 b(b)s(e)f(those)h(de\014ned)e(for)h
 (the)h(`)p Fs(-o)p Ft(')1110 5340 y(option)21 b(to)h(the)f
 Fs(set)f Ft(builtin)g(\(see)i(Section)f(4.3)h([The)e(Set)h(Builtin],)j
-(page)d(51\).)p eop end
-%%Page: 46 52
-TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31
+(page)d(53\).)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(If)e(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
@@ -7986,22 +7993,22 @@ h(the)f Fs(exec)f Ft(builtin)h(command.)39 b(An)1110
 Fs(exec)f Ft(fails.)630 4149 y Fs(expand_aliases)1110
 4258 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 4368 y(tion)38
-b(6.6)h([Aliases],)j(page)d(73.)64 b(This)37 b(option)h(is)g(enabled)g
+b(6.6)h([Aliases],)j(page)d(75.)64 b(This)37 b(option)h(is)g(enabled)g
 (b)m(y)g(default)g(for)1110 4478 y(in)m(teractiv)m(e)33
 b(shells.)630 4635 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
 4768 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
-4878 y(Builtins],)29 b(page)g(39\))g(displa)m(ys)f(the)g(source)h
+4878 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 4987 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 5097 y(men)m(t.)1159 5230 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 5340 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
 (not)i(executed.)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)1159 299 y(3.)61
+%%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)1159 299 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
 408 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h(subroutine)e(\(a)i
@@ -8011,7 +8018,7 @@ Ft(trap)h(returns)f(a)i(v)-5 b(alue)38 b(of)f(2,)1290
 758 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
 868 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g(V)-8
-b(ariables],)32 b(page)f(55\).)1159 998 y(5.)61 b(F)-8
+b(ariables],)32 b(page)f(57\).)1159 998 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 1108 y(functions,)30
 b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h
@@ -8040,7 +8047,7 @@ b Ft(If)30 b(set,)g(patterns)g(whic)m(h)g(fail)h(to)g(matc)m(h)g
 (ord)h(completion)i(ev)m(en)f(if)g(the)1110 2939 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)1110 3049 y([Bash)24 b(V)-8
-b(ariables],)27 b(page)e(55,)h(for)d(a)h(description)g(of)g
+b(ariables],)27 b(page)e(57,)h(for)d(a)h(description)g(of)g
 Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 3159 y(is)30
 b(enabled)h(b)m(y)f(default.)630 3310 y Fs(gnu_errfmt)1110
 3420 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
@@ -8063,10 +8070,10 @@ y Fs(hostcomplete)1110 5230 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
 5340 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-)p eop end
-%%Page: 48 54
-TeXDict begin 48 53 bop 150 -116 a Ft(48)2572 b(Bash)31
+%%Page: 50 56
+TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
 b(Reference)g(Man)m(ual)1110 299 y(pleted)k(\(see)h(Section)f(8.4.6)i
-([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g(103\).)1110
+([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g(105\).)1110
 408 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
 564 y Fs(huponexit)1110 673 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)
@@ -8084,7 +8091,7 @@ Fs(cmdhist)e Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
 b(separators)f(where)e(p)s(ossible.)630 1797 y Fs(login_shell)1110
 1906 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
-2016 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(65\).)41
+2016 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(67\).)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
 2171 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)
@@ -8109,23 +8116,23 @@ Fs([[)g Ft(conditional)h(com-)1110 3733 y(mands.)630
 (themselv)m(es.)630 4153 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 4262 y(grammable)45 b(Completion],)k(page)c
-(107\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
+(109\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
 4372 y(enabled)30 b(b)m(y)h(default.)630 4527 y Fs(promptvars)1110
 4637 y Ft(If)24 b(set,)i(prompt)d(strings)h(undergo)f(parameter)i
 (expansion,)g(command)f(sub-)1110 4746 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 4856 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 4966 y(page)31 b(77\).)42 b(This)30
+(ting)g(a)g(Prompt],)1110 4966 y(page)31 b(79\).)42 b(This)30
 b(option)g(is)h(enabled)f(b)m(y)g(default.)630 5121 y
 Fs(restricted_shell)1110 5230 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 5340 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e
-(78\).)56 b(The)34 b(v)-5 b(alue)35 b(ma)m(y)h(not)p
+(80\).)56 b(The)34 b(v)-5 b(alue)35 b(ma)m(y)h(not)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)1110 299 y(b)s(e)32
+%%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)1110 299 y(b)s(e)32
 b(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 408 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
@@ -8148,7 +8155,7 @@ b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
 b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)150
 2250 y Fs(source)870 2390 y(source)46 b Fj(filename)630
 2530 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(33\).)150 2701
+([Bourne)g(Shell)f(Builtins],)h(page)g(35\).)150 2701
 y Fs(type)870 2841 y(type)47 b([-afptP])e([)p Fj(name)57
 b Fs(...)o(])630 2982 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)
@@ -8184,300 +8191,306 @@ Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i
 Ft(builtin.)630 5059 y(The)35 b(return)g(status)h(is)g(zero)g(if)g(an)m
 (y)g(of)g(the)g Fq(names)k Ft(are)c(found,)g(non-zero)g(if)g(none)g
 (are)630 5169 y(found.)150 5340 y Fs(typeset)p eop end
-%%Page: 50 56
-TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
+%%Page: 52 58
+TeXDict begin 52 57 bop 150 -116 a Ft(52)2572 b(Bash)31
 b(Reference)g(Man)m(ual)870 299 y Fs(typeset)46 b([-afFrxi])f([-p])i([)
 p Fj(name)11 b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630
-438 y Ft(The)29 b Fs(typeset)f Ft(command)h(is)g(supplied)g(for)g
+432 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
-548 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 716
-y Fs(ulimit)870 856 y(ulimit)46 b([-acdflmnpstuvSH])d([)p
-Fj(limit)11 b Fs(])630 995 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i
+542 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 699
+y Fs(ulimit)870 833 y(ulimit)46 b([-acdefilmnpqrstuvxSH])c([)p
+Fj(limit)11 b Fs(])630 966 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 1104
+b(to)e(pro)s(cesses)f(started)h(b)m(y)g(the)630 1076
 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
-1214 y(as)i(follo)m(ws:)630 1383 y Fs(-S)384 b Ft(Change)30
+1185 y(as)i(follo)m(ws:)630 1342 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 1551 y Fs(-H)384 b Ft(Change)30 b(and)g(rep)s(ort)g(the)
+(resource.)630 1500 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
-1720 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h(are)g(rep)s
-(orted.)630 1889 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g
-(core)g(\014les)f(created.)630 2057 y Fs(-d)384 b Ft(The)30
+1657 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h(are)g(rep)s
+(orted.)630 1814 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g
+(core)g(\014les)f(created.)630 1971 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
-2226 y Fs(-f)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(\014les)f
-(created)i(b)m(y)e(the)g(shell.)630 2395 y Fs(-l)384
+2129 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 2286 y Fs(-f)384
+b Ft(The)30 b(maxim)m(um)g(size)h(of)g(\014les)f(created)i(b)m(y)e(the)
+g(shell.)630 2443 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 2600 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 2564 y Fs(-m)384 b
+(ed)i(in)m(to)f(memory)-8 b(.)630 2757 y Fs(-m)384 b
 Ft(The)30 b(maxim)m(um)g(residen)m(t)h(set)g(size.)630
-2732 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 2901 y Fs(-p)384 b Ft(The)30
-b(pip)s(e)f(bu\013er)h(size.)630 3070 y Fs(-s)384 b Ft(The)30
-b(maxim)m(um)g(stac)m(k)i(size.)630 3239 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 3407 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
-3576 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
-3745 y(If)j 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 3854 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 3964 y(soft)35
-b(limit,)i(and)e(no)f(limit,)j(resp)s(ectiv)m(ely)-8
-b(.)56 b(Otherwise,)36 b(the)f(curren)m(t)g(v)-5 b(alue)35
-b(of)g(the)h(soft)630 4074 y(limit)41 b(for)f(the)h(sp)s(eci\014ed)f
-(resource)h(is)f(prin)m(ted,)j(unless)d(the)g(`)p Fs(-H)p
-Ft(')h(option)f(is)h(supplied.)630 4183 y(When)29 b(setting)h(new)e
-(limits,)i(if)f(neither)g(`)p Fs(-H)p Ft(')f(nor)h(`)p
-Fs(-S)p Ft(')f(is)h(supplied,)g(b)s(oth)f(the)h(hard)f(and)630
-4293 y(soft)37 b(limits)g(are)g(set.)60 b(If)36 b(no)g(option)h(is)g
-(giv)m(en,)i(then)d(`)p Fs(-f)p Ft(')h(is)f(assumed.)59
-b(V)-8 b(alues)37 b(are)g(in)630 4402 y(1024-b)m(yte)27
+2915 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 3072 y Fs(-p)384 b Ft(The)30
+b(pip)s(e)f(bu\013er)h(size.)630 3229 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 3386 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 3544 y Fs(-s)384
+b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)630 3701
+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 3858 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 4015 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
+4173 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 4330 y(If)j 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 4439 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 4549 y(soft)35 b(limit,)i(and)e(no)f(limit,)j(resp)s
+(ectiv)m(ely)-8 b(.)56 b(Otherwise,)36 b(the)f(curren)m(t)g(v)-5
+b(alue)35 b(of)g(the)h(soft)630 4659 y(limit)41 b(for)f(the)h(sp)s
+(eci\014ed)f(resource)h(is)f(prin)m(ted,)j(unless)d(the)g(`)p
+Fs(-H)p Ft(')h(option)f(is)h(supplied.)630 4768 y(When)29
+b(setting)h(new)e(limits,)i(if)f(neither)g(`)p Fs(-H)p
+Ft(')f(nor)h(`)p Fs(-S)p Ft(')f(is)h(supplied,)g(b)s(oth)f(the)h(hard)f
+(and)630 4878 y(soft)37 b(limits)g(are)g(set.)60 b(If)36
+b(no)g(option)h(is)g(giv)m(en,)i(then)d(`)p Fs(-f)p Ft(')h(is)f
+(assumed.)59 b(V)-8 b(alues)37 b(are)g(in)630 4987 y(1024-b)m(yte)27
 b(incremen)m(ts,)g(except)e(for)f(`)p Fs(-t)p Ft(',)i(whic)m(h)e(is)h
 (in)f(seconds,)i(`)p Fs(-p)p Ft(',)g(whic)m(h)e(is)g(in)h(units)630
-4512 y(of)31 b(512-b)m(yte)h(blo)s(c)m(ks,)f(and)f(`)p
+5097 y(of)31 b(512-b)m(yte)h(blo)s(c)m(ks,)f(and)f(`)p
 Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p Ft(',)h(whic)m(h)f(are)g(unscaled)h(v)
--5 b(alues.)630 4651 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e
+-5 b(alues.)630 5230 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 4761 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f
-(limit.)150 4929 y Fs(unalias)870 5069 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
-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(73.)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 Fr(4.3)68
-b(The)45 b(Set)g(Builtin)275 540 y Ft(This)29 b(builtin)h(is)g(so)h
+h(or)630 5340 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f
+(limit.)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)150 299 y Fs(unalias)870
+436 y(unalias)46 b([-a])g([)p Fj(name)57 b Fs(...)47
+b(])630 573 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
+682 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(75.)150 952 y Fr(4.3)68 b(The)45
+b(Set)g(Builtin)275 1201 y Ft(This)29 b(builtin)h(is)g(so)h
 (complicated)h(that)f(it)g(deserv)m(es)g(its)g(o)m(wn)f(section.)150
-693 y Fs(set)870 825 y(set)47 b([--abefhkmnptuvxBCHP])42
+1368 y Fs(set)870 1505 y(set)47 b([--abefhkmnptuvxBCHP])42
 b([-o)47 b Fj(option)11 b Fs(])45 b([)p Fj(argument)56
-b Fs(...)o(])630 956 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
+b Fs(...)o(])630 1642 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 1066 y(shell)j(v)-5 b(ariables)27
+b(alues)23 b(of)g(all)630 1751 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 1176 y(that)i(ma)m(y)h(b)s(e)e(reused)g
+(cale,)k(in)c(a)i(format)630 1861 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 1285 y(Read-only)37 b(v)-5 b(ariables)37
+(v)-5 b(ariables.)630 1971 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 1395 y(listed.)630
-1526 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 2080 y(listed.)630
+2217 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
-1636 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
-1789 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h
+2327 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
+2491 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
-1899 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
-(commands.)630 2052 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f
+2601 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
+(commands.)630 2765 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
-2162 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 2315 y Fs(-e)384
+2875 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 3039 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 2425 y(Commands],)31
+(Section)f(3.2.1)h([Simple)1110 3148 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 2534 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 2644 y(a)41
+(com-)1110 3258 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 3368 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 2754
+(test)g(in)f(an)g Fs(if)g Ft(statemen)m(t,)1110 3477
 y(part)33 b(of)h(a)g Fs(&&)f Ft(or)g Fs(||)g Ft(list,)i(or)e(if)h(the)f
-(command's)h(return)e(status)i(is)f(b)s(eing)1110 2863
+(command's)h(return)e(status)i(is)f(b)s(eing)1110 3587
 y(in)m(v)m(erted)e(using)e Fs(!)p Ft(.)40 b(A)30 b(trap)f(on)h
 Fs(ERR)p Ft(,)f(if)h(set,)g(is)g(executed)h(b)s(efore)e(the)h(shell)
-1110 2973 y(exits.)630 3126 y Fs(-f)384 b Ft(Disable)31
-b(\014le)g(name)f(generation)i(\(globbing\).)630 3280
+1110 3696 y(exits.)630 3861 y Fs(-f)384 b Ft(Disable)31
+b(\014le)g(name)f(generation)i(\(globbing\).)630 4025
 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
-3389 y(execution.)42 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g
-(default.)630 3543 y Fs(-k)384 b Ft(All)34 b(argumen)m(ts)g(in)f(the)h
+4135 y(execution.)42 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g
+(default.)630 4299 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
-3652 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 3762 y(command)30
-b(name.)630 3915 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(83\).)630
-4069 y Fs(-n)384 b Ft(Read)21 b(commands)f(but)g(do)h(not)g(execute)h
+4409 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 4518 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(85\).)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
-4178 y(a)42 b(script)g(for)g(syn)m(tax)g(errors.)75 b(This)41
+4956 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
-4288 y(shells.)630 4441 y Fs(-o)30 b Fj(option-name)1110
-4551 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i
-Fq(option-name)5 b Ft(:)1110 4704 y Fs(allexport)1590
-4814 y Ft(Same)30 b(as)h Fs(-a)p Ft(.)1110 4967 y Fs(braceexpand)1590
-5077 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 5230 y Fs(emacs)240
+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
+%%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 Fs(allexport)1590
+408 y Ft(Same)f(as)h Fs(-a)p Ft(.)1110 565 y Fs(braceexpand)1590
+675 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 831 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 5340 y([Command)30
-b(Line)g(Editing],)h(page)g(87\).)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(errexit)144 b Ft(Same)30
-b(as)h Fs(-e)p Ft(.)1110 458 y Fs(errtrace)96 b Ft(Same)30
-b(as)h Fs(-E)p Ft(.)1110 618 y Fs(functrace)1590 727
-y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 887 y Fs(hashall)144
-b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 1046 y Fs(histexpand)1590
-1156 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 1315 y Fs(history)144
+(terface)h(\(see)g(Chapter)e(8)1590 941 y([Command)30
+b(Line)g(Editing],)h(page)g(89\).)1110 1097 y Fs(errexit)144
+b Ft(Same)30 b(as)h Fs(-e)p Ft(.)1110 1254 y Fs(errtrace)96
+b Ft(Same)30 b(as)h Fs(-E)p Ft(.)1110 1410 y Fs(functrace)1590
+1520 y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 1677 y Fs(hashall)144
+b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 1833 y Fs(histexpand)1590
+1943 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 2099 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 1425 y([Bash)d(History)g(F)-8 b(acilities],)41
-b(page)c(113.)60 b(This)36 b(option)h(is)f(on)1590 1534
+(Section)h(9.1)1590 2209 y([Bash)d(History)g(F)-8 b(acilities],)41
+b(page)c(115.)60 b(This)36 b(option)h(is)f(on)1590 2318
 y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
-1694 y Fs(ignoreeof)1590 1803 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 1963
+2475 y Fs(ignoreeof)1590 2585 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 2741
 y Fs(keyword)144 b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110
-2122 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110
-2281 y Fs(noclobber)1590 2391 y Ft(Same)f(as)h Fs(-C)p
-Ft(.)1110 2550 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p
-Ft(.)1110 2710 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p
-Ft(.)1110 2869 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110
-3029 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110
-3188 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110
-3347 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110
-3507 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110
-3666 y Fs(pipefail)96 b Ft(If)44 b(set,)k(the)d(return)e(v)-5
+2898 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110
+3054 y Fs(noclobber)1590 3164 y Ft(Same)f(as)h Fs(-C)p
+Ft(.)1110 3320 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p
+Ft(.)1110 3477 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p
+Ft(.)1110 3634 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110
+3790 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110
+3947 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110
+4103 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110
+4260 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110
+4416 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 3776 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
-(exit)g(with)f(a)g(non-zero)1590 3885 y(status,)28 b(or)f(zero)g(if)f
+b(of)1590 4526 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
+(exit)g(with)f(a)g(non-zero)1590 4635 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
-3995 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
-(default.)1110 4154 y Fs(posix)240 b Ft(Change)36 b(the)g(b)s(eha)m
-(vior)g(of)g(Bash)g(where)f(the)h(default)g(op)s(er-)1590
-4264 y(ation)c(di\013ers)e(from)g(the)h Fl(posix)f Ft(1003.2)k
-(standard)c(to)h(matc)m(h)1590 4374 y(the)44 b(standard)f(\(see)h
-(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)1590 4483
-y(page)35 b(78\).)55 b(This)34 b(is)g(in)m(tended)h(to)g(mak)m(e)h
-(Bash)e(b)s(eha)m(v)m(e)i(as)f(a)1590 4593 y(strict)c(sup)s(erset)e(of)
-i(that)g(standard.)1110 4752 y Fs(privileged)1590 4862
-y Ft(Same)f(as)h Fs(-p)p Ft(.)1110 5021 y Fs(verbose)144
-b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110 5181 y Fs(vi)384
-b Ft(Use)31 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g(editing)g(in)m
-(terface.)1110 5340 y Fs(xtrace)192 b Ft(Same)30 b(as)h
-Fs(-x)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)630 299 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
-408 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 518 y(en)m(vironmen)m(t,)f(and)d
-(the)h Fs(SHELLOPTS)e Ft(v)-5 b(ariable,)35 b(if)f(it)h(app)s(ears)e
-(in)h(the)g(en-)1110 628 y(vironmen)m(t,)d(is)f(ignored.)41
-b(If)29 b(the)i(shell)f(is)g(started)h(with)f(the)g(e\013ectiv)m(e)j
-(user)1110 737 y(\(group\))d(id)g(not)g(equal)h(to)f(the)g(real)h(user)
-e(\(group\))i(id,)f(and)f(the)h Fs(-p)f Ft(option)1110
-847 y(is)40 b(not)g(supplied,)i(these)e(actions)i(are)e(tak)m(en)h(and)
-f(the)g(e\013ectiv)m(e)j(user)c(id)1110 956 y(is)d(set)h(to)h(the)e
-(real)h(user)f(id.)58 b(If)36 b(the)h Fs(-p)f Ft(option)g(is)h
-(supplied)e(at)i(startup,)1110 1066 y(the)29 b(e\013ectiv)m(e)j(user)d
-(id)g(is)g(not)h(reset.)40 b(T)-8 b(urning)29 b(this)g(option)g(o\013)h
-(causes)g(the)1110 1176 y(e\013ectiv)m(e)e(user)d(and)g(group)g(ids)h
-(to)g(b)s(e)f(set)h(to)h(the)f(real)g(user)f(and)g(group)g(ids.)630
-1337 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h
-(one)g(command.)630 1499 y Fs(-u)384 b Ft(T)-8 b(reat)38
+4745 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(80\).)
+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
+%%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)1110 299 y
+Fs(privileged)1590 408 y Ft(Same)30 b(as)h Fs(-p)p Ft(.)1110
+559 y Fs(verbose)144 b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110
+709 y Fs(vi)384 b Ft(Use)31 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g
+(editing)g(in)m(terface.)1110 859 y Fs(xtrace)192 b Ft(Same)30
+b(as)h Fs(-x)p Ft(.)630 1009 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 1119 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 1228 y(en)m(vironmen)m(t,)f(and)d(the)h Fs(SHELLOPTS)e
+Ft(v)-5 b(ariable,)35 b(if)f(it)h(app)s(ears)e(in)h(the)g(en-)1110
+1338 y(vironmen)m(t,)d(is)f(ignored.)41 b(If)29 b(the)i(shell)f(is)g
+(started)h(with)f(the)g(e\013ectiv)m(e)j(user)1110 1448
+y(\(group\))d(id)g(not)g(equal)h(to)f(the)g(real)h(user)e(\(group\))i
+(id,)f(and)f(the)h Fs(-p)f Ft(option)1110 1557 y(is)40
+b(not)g(supplied,)i(these)e(actions)i(are)e(tak)m(en)h(and)f(the)g
+(e\013ectiv)m(e)j(user)c(id)1110 1667 y(is)d(set)h(to)h(the)e(real)h
+(user)f(id.)58 b(If)36 b(the)h Fs(-p)f Ft(option)g(is)h(supplied)e(at)i
+(startup,)1110 1776 y(the)29 b(e\013ectiv)m(e)j(user)d(id)g(is)g(not)h
+(reset.)40 b(T)-8 b(urning)29 b(this)g(option)g(o\013)h(causes)g(the)
+1110 1886 y(e\013ectiv)m(e)e(user)d(and)g(group)g(ids)h(to)g(b)s(e)f
+(set)h(to)h(the)f(real)g(user)f(and)g(group)g(ids.)630
+2036 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h
+(one)g(command.)630 2186 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 1609 y(pansion.)58 b(An)36 b(error)f(message)j
+(parameter)h(ex-)1110 2296 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
-1718 y(and)30 b(a)h(non-in)m(teractiv)m(e)i(shell)d(will)h(exit.)630
-1880 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 2042 y Fs(-x)384 b Ft(Prin)m(t)82 b(a)h(trace)h(of)e
-(simple)g(commands,)96 b Fs(\\)p Ft(fBfor)p Fs(\\)p Ft(fP)81
-b(commands,)1110 2151 y Fs(\\)p Ft(fBcase)p Fs(\\)p Ft(fP)50
-b(commands,)55 b Fs(\\)p Ft(fBselect)p Fs(\\)p Ft(fP)c(commands,)k(and)
-50 b(arithmetic)1110 2261 y Fs(\\)p Ft(fBfor)p Fs(\\)p
-Ft(fP)31 b(commands)g(and)g(their)h(argumen)m(ts)g(or)f(asso)s(ciated)i
-(w)m(ord)e(lists)1110 2371 y(after)k(they)g(are)g(expanded)f(and)h(b)s
-(efore)f(they)h(are)g(executed.)55 b(The)34 b(v)-5 b(alue)1110
-2480 y(of)34 b(the)g Fs(PS4)f Ft(v)-5 b(ariable)35 b(is)f(expanded)g
-(and)f(the)h(resultan)m(t)h(v)-5 b(alue)34 b(is)g(prin)m(ted)1110
-2590 y(b)s(efore)c(the)h(command)f(and)f(its)i(expanded)f(argumen)m
-(ts.)630 2752 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
-2861 y(Expansion],)30 b(page)h(17\).)42 b(This)30 b(option)h(is)f(on)g
-(b)m(y)h(default.)630 3023 y Fs(-C)384 b Ft(Prev)m(en)m(t)25
+2405 y(and)30 b(a)h(non-in)m(teractiv)m(e)i(shell)d(will)h(exit.)630
+2556 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 2706 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 2815 y Fs(select)29 b Ft(commands,)j(and)e
+(arithmetic)j Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110
+2925 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 3035 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 3144 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 3254 y(argumen)m(ts.)630
+3404 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 3513
+y(Expansion],)30 b(page)h(17\).)42 b(This)30 b(option)h(is)f(on)g(b)m
+(y)h(default.)630 3664 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
-3133 y(existing)31 b(\014les.)630 3294 y Fs(-E)384 b
+3773 y(existing)31 b(\014les.)630 3923 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 3404 y(substitutions,)35
+(y)g(shell)h(functions,)h(command)1110 4033 y(substitutions,)35
 b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.)
-1110 3513 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 3675 y Fs(-H)384 b Ft(Enable)38
+1110 4143 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 4293 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 3785 y(teraction],)g(page)d
-(115\).)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 3894 y(shells.)630 4056 y Fs(-P)384
+(Section)h(9.3)f([History)g(In-)1110 4402 y(teraction],)g(page)d
+(117\).)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 4512 y(shells.)630 4662 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 4166 y(suc)m(h)29
+(when)g(p)s(erforming)g(commands)1110 4772 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 4275 y(tory)j(is)g(used)
+-8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 4881 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 4385 y(directories)j(when)d(p)s(erforming)h
+(c)m(hain)f(of)1110 4991 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
-4495 y(directory)-8 b(.)1110 4630 y(F)g(or)31 b(example,)g(if)f(`)p
+5101 y(directory)-8 b(.)1110 5230 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 4740 y(then:)1350 4876
-y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 4985 y(/usr/sys)1350
-5095 y($)g(cd)h(..;)f(pwd)1350 5204 y(/usr)1110 5340
-y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)p eop
-end
-%%Page: 54 60
-TeXDict begin 54 59 bop 150 -116 a Ft(54)2572 b(Bash)31
+Fs(/usr/local/sys)p Ft(')1110 5340 y(then:)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)1350 299 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i
-($PWD)1350 408 y(/usr/local/sys)1350 518 y($)g(cd)h(..;)f(pwd)1350
-628 y(/usr/local)630 787 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g
+($PWD)1350 408 y(/usr/sys)1350 518 y($)g(cd)h(..;)f(pwd)1350
+628 y(/usr)1110 762 y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350
+896 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1005
+y(/usr/local/sys)1350 1115 y($)g(cd)h(..;)f(pwd)1350
+1225 y(/usr/local)630 1383 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 897 y(tions,)k(command)d(substitutions,)h(and)f
-(commands)g(executed)h(in)f(a)h(sub-)1110 1006 y(shell)33
+(shell)i(func-)1110 1493 y(tions,)k(command)d(substitutions,)h(and)f
+(commands)g(executed)h(in)f(a)h(sub-)1110 1602 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 1116
-y(inherited)d(in)g(suc)m(h)g(cases.)630 1275 y Fs(--)384
+Fs(RETURN)f Ft(traps)h(are)i(normally)f(not)1110 1712
+y(inherited)d(in)g(suc)m(h)g(cases.)630 1871 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 1385 y(are)h(unset.)49
+(the)h(p)s(ositional)h(parameters)1110 1980 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 1494 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 1654
+(the)g Fq(ar-)1110 2090 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 2249
 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
-1763 y(assigned)38 b(to)h(the)f(p)s(ositional)h(parameters.)65
+2358 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
-1873 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f
+2468 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
-1983 y(remain)k(unc)m(hanged.)630 2142 y(Using)d(`)p
+2577 y(remain)k(unc)m(hanged.)630 2736 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
-2252 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e
+2846 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 2361 y(found)29 b(in)h Fs($-)p Ft(.)630 2496
+(b)s(e)630 2955 y(found)29 b(in)h Fs($-)p Ft(.)630 3089
 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 2605 y(order,)30
+g(parameters)g(and)f(are)h(assigned,)j(in)630 3199 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 2740 y(The)f(return)f(status)i(is)f(alw)m(a)m
+Ft(is)g(set)h(to)g(N.)630 3333 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 2997 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)275
-3241 y Ft(F)-8 b(or)25 b(historical)h(reasons,)g(the)e
-Fl(posix)g Ft(1003.2)j(standard)d(has)g(classi\014ed)h(sev)m(eral)h
-(builtin)e(commands)150 3351 y(as)37 b Fm(sp)-5 b(e)g(cial)p
-Ft(.)60 b(When)36 b(Bash)h(is)g(executing)g(in)f Fl(posix)g
-Ft(mo)s(de,)i(the)f(sp)s(ecial)g(builtins)e(di\013er)i(from)f(other)150
-3460 y(builtin)30 b(commands)g(in)g(three)h(resp)s(ects:)199
-3595 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s(efore)h
+(supplied.)150 3589 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)275
+3833 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 3943 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
+4052 y(builtin)30 b(commands)g(in)g(three)h(resp)s(ects:)199
+4186 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
-3729 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)
+4320 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
-3864 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f
+4455 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 3973 y(after)i(the)f(command)h(completes.)275
-4133 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f
+(t)330 4564 y(after)i(the)f(command)h(completes.)275
+4723 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 4242 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e
+(tly)h(than)150 4832 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 4352 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
-(78.)275 4487 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h
-(builtins:)390 4621 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
-(exit)g(export)f(readonly)f(return)h(set)390 4731 y(shift)g(trap)h
+(ed)f(in)h(Section)h(6.11)150 4942 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
+(80.)275 5076 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h
+(builtins:)390 5210 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
+(exit)g(export)f(readonly)f(return)h(set)390 5320 y(shift)g(trap)h
 (unset)p eop end
-%%Page: 55 61
-TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(55)150 299 y Fo(5)80
+%%Page: 57 63
+TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(57)150 299 y Fo(5)80
 b(Shell)53 b(V)-13 b(ariables)275 525 y Ft(This)36 b(c)m(hapter)i
 (describ)s(es)e(the)h(shell)g(v)-5 b(ariables)38 b(that)g(Bash)f(uses.)
 61 b(Bash)37 b(automatically)j(assigns)150 635 y(default)31
@@ -8525,7 +8538,7 @@ Ft(builtin.)150 3476 y Fs(PATH)288 b Ft(A)32 b(colon-separated)i(list)f
 3961 y Fs(PS1)336 b Ft(The)35 b(primary)f(prompt)h(string.)55
 b(The)35 b(default)h(v)-5 b(alue)35 b(is)h(`)p Fs(\\s-\\v\\$)28
 b Ft('.)56 b(See)36 b(Section)g(6.9)630 4071 y([Prin)m(ting)28
-b(a)g(Prompt],)g(page)h(77,)g(for)e(the)h(complete)h(list)g(of)e(escap)
+b(a)g(Prompt],)g(page)h(79,)g(for)e(the)h(complete)h(list)g(of)e(escap)
 s(e)h(sequences)g(that)h(are)630 4180 y(expanded)h(b)s(efore)g
 Fs(PS1)f Ft(is)h(displa)m(y)m(ed.)150 4336 y Fs(PS2)336
 b Ft(The)30 b(secondary)g(prompt)g(string.)41 b(The)29
@@ -8538,11 +8551,11 @@ b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f(in)h
 (di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25
 b(for)f(con)m(trolling)150 5184 y(the)31 b(job)f(con)m(trol)h
 (facilities)i(\(see)e(Section)g(7.3)h([Job)e(Con)m(trol)h(V)-8
-b(ariables],)32 b(page)g(86\).)150 5340 y Fs(BASH)288
+b(ariables],)32 b(page)g(88\).)150 5340 y Fs(BASH)288
 b Ft(The)30 b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t)
 g(instance)h(of)g(Bash.)p eop end
-%%Page: 56 62
-TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31
+%%Page: 58 64
+TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(BASH_ARGC)630 408
 y Ft(An)f(arra)m(y)h(v)-5 b(ariable)31 b(whose)f(v)-5
 b(alues)31 b(are)g(the)f(n)m(um)m(b)s(er)f(of)i(parameters)g(in)f(eac)m
@@ -8555,7 +8568,7 @@ b(When)37 b(a)h(subroutine)e(is)h(executed,)j(the)e(n)m(um)m(b)s(er)d
 (of)j(parameters)f(passed)630 847 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 956 y(debugging)e(mo)s(de)g(\(see)i
-(Section)f(4.2)h([Bash)e(Builtins],)j(page)e(39)g(for)f(a)h
+(Section)f(4.2)h([Bash)e(Builtins],)j(page)e(41)g(for)f(a)h
 (description)g(of)630 1066 y(the)31 b Fs(extdebug)d Ft(option)j(to)g
 (the)f Fs(shopt)f Ft(builtin\).)150 1240 y Fs(BASH_ARGV)630
 1350 y Ft(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f
@@ -8568,7 +8581,7 @@ Ft(only)k(when)e(in)h(extended)630 956 y(debugging)e(mo)s(de)g(\(see)i
 (on)m(to)i Fs(BASH_ARGV)p Ft(.)66 b(The)40 b(shell)630
 1788 y(sets)31 b Fs(BASH_ARGV)e Ft(only)i(when)e(in)i(extended)g
 (debugging)g(mo)s(de)f(\(see)i(Section)g(4.2)g([Bash)630
-1898 y(Builtins],)25 b(page)e(39)g(for)f(a)h(description)g(of)f(the)h
+1898 y(Builtins],)25 b(page)e(41)g(for)f(a)h(description)g(of)f(the)h
 Fs(extdebug)d Ft(option)j(to)g(the)g Fs(shopt)e Ft(builtin\).)150
 2072 y Fs(BASH_COMMAND)630 2181 y Ft(The)39 b(command)h(curren)m(tly)g
 (b)s(eing)f(executed)i(or)e(ab)s(out)h(to)g(b)s(e)f(executed,)44
@@ -8580,7 +8593,7 @@ b(is)e(set)h(when)f(Bash)g(is)h(in)m(v)m(ok)m(ed)h(to)f(execute)h(a)e
 (shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 2684
 y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)g(a)h(startup)f(\014le)g
 (to)h(read)f(b)s(efore)g(executing)i(the)630 2794 y(script.)41
-b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(67.)150
+b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(69.)150
 2968 y Fs(BASH_EXECUTION_STRING)630 3077 y Ft(The)f(command)g(argumen)m
 (t)h(to)g(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option.)150
 3251 y Fs(BASH_LINENO)630 3361 y Ft(An)38 b(arra)m(y)h(v)-5
@@ -8612,11 +8625,11 @@ b(ariable.)150 5089 y Fs(BASH_SUBSHELL)630 5198 y Ft(Incremen)m(ted)34
 b(b)m(y)h(one)f(eac)m(h)i(time)f(a)f(subshell)g(or)g(subshell)f(en)m
 (vironmen)m(t)i(is)f(spa)m(wned.)630 5308 y(The)c(initial)h(v)-5
 b(alue)31 b(is)g(0.)p eop end
-%%Page: 57 63
-TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(57)150 299 y Fs(BASH_VERSINFO)630
+%%Page: 59 65
+TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(59)150 299 y Fs(BASH_VERSINFO)630
 408 y Ft(A)36 b(readonly)g(arra)m(y)g(v)-5 b(ariable)37
-b(\(see)f(Section)h(6.7)g([Arra)m(ys],)h(page)e(74\))h(whose)f(mem)m(b)
+b(\(see)f(Section)h(6.7)g([Arra)m(ys],)h(page)e(76\))h(whose)f(mem)m(b)
 s(ers)630 518 y(hold)c(v)m(ersion)h(information)f(for)g(this)g
 (instance)h(of)g(Bash.)46 b(The)32 b(v)-5 b(alues)32
 b(assigned)h(to)g(the)630 628 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g
@@ -8642,13 +8655,13 @@ Fs(${COMP_WORDS})c Ft(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e
 b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h
 (functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630
 3199 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g
-([Programmable)g(Completion],)630 3308 y(page)31 b(107\).)150
+([Programmable)g(Completion],)630 3308 y(page)31 b(109\).)150
 3460 y Fs(COMP_LINE)630 3570 y Ft(The)38 b(curren)m(t)h(command)f
 (line.)66 b(This)37 b(v)-5 b(ariable)40 b(is)f(a)m(v)-5
 b(ailable)41 b(only)d(in)h(shell)f(functions)630 3679
 y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)h
 (programmable)f(completion)i(facilities)g(\(see)630 3789
-y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(107\).)150
+y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(109\).)150
 3941 y Fs(COMP_POINT)630 4050 y Ft(The)25 b(index)g(of)h(the)g(curren)m
 (t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of)
 g(the)h(curren)m(t)630 4160 y(command.)40 b(If)27 b(the)h(curren)m(t)g
@@ -8659,7 +8672,7 @@ b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630
 4379 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
 (in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 4489
 y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g
-(Completion],)h(page)f(107\).)150 4640 y Fs(COMP_WORDBREAKS)630
+(Completion],)h(page)f(109\).)150 4640 y Fs(COMP_WORDBREAKS)630
 4750 y Ft(The)e(set)i(of)e(c)m(haracters)j(that)e(the)g(Readline)g
 (library)g(treats)g(as)g(w)m(ord)g(separators)g(when)630
 4859 y(p)s(erforming)i(w)m(ord)h(completion.)51 b(If)33
@@ -8671,16 +8684,16 @@ b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the)g(individual)f
 y(line.)88 b(This)45 b(v)-5 b(ariable)47 b(is)f(a)m(v)-5
 b(ailable)48 b(only)e(in)g(shell)g(functions)g(in)m(v)m(ok)m(ed)h(b)m
 (y)f(the)g(pro-)p eop end
-%%Page: 58 64
-TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31
+%%Page: 60 66
+TeXDict begin 60 65 bop 150 -116 a Ft(60)2572 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y(grammable)36 b(completion)g
 (facilities)i(\(see)e(Section)g(8.6)g([Programmable)g(Completion],)630
-408 y(page)31 b(107\).)150 573 y Fs(COMPREPLY)630 682
+408 y(page)31 b(109\).)150 573 y Fs(COMPREPLY)630 682
 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
 792 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
-902 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(107\).)150
+902 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(109\).)150
 1066 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 1176 y(tories)33
@@ -8741,7 +8754,7 @@ b(If)630 4518 y Fs(GROUPS)29 b Ft(is)h(unset,)g(it)h(loses)g(its)g(sp)s
 (reset.)150 4682 y Fs(histchars)630 4792 y Ft(Up)c(to)g(three)g(c)m
 (haracters)i(whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g
 (substitution,)g(and)630 4902 y(tok)m(enization)k(\(see)f(Section)f
-(9.3)h([History)f(In)m(teraction],)i(page)f(115\).)41
+(9.3)h([History)f(In)m(teraction],)i(page)f(117\).)41
 b(The)29 b(\014rst)e(c)m(harac-)630 5011 y(ter)j(is)f(the)g
 Fq(history)g(expansion)g Ft(c)m(haracter,)j(that)e(is,)f(the)h(c)m
 (haracter)h(whic)m(h)d(signi\014es)i(the)630 5121 y(start)25
@@ -8752,9 +8765,9 @@ Ft('.)39 b(The)24 b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630
 5340 y(normally)27 b(`)p Fs(^)p Ft('.)39 b(The)26 b(optional)i(third)d
 (c)m(haracter)j(is)e(the)h(c)m(haracter)h(whic)m(h)e(indicates)h(that)p
 eop end
-%%Page: 59 65
-TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(59)630 299 y(the)34
+%%Page: 61 67
+TeXDict begin 61 66 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(61)630 299 y(the)34
 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h(when)e(found)f
 (as)i(the)g(\014rst)f(c)m(haracter)i(of)f(a)630 408 y(w)m(ord,)i
 (usually)f(`)p Fs(#)p Ft('.)55 b(The)34 b(history)h(commen)m(t)h(c)m
@@ -8835,8 +8848,8 @@ Ft(.)36 b(Com)m(bining)630 4894 y(these)30 b(t)m(w)m(o)h(patterns,)f
 (commands)e(to)j(remem)m(b)s(er)d(on)h(the)h(history)f(list.)77
 b(The)630 5301 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)p
 eop end
-%%Page: 60 66
-TeXDict begin 60 65 bop 150 -116 a Ft(60)2572 b(Bash)31
+%%Page: 62 68
+TeXDict begin 62 67 bop 150 -116 a Ft(62)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(HISTTIMEFORMAT)630
 408 y Ft(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m
 (ull,)k(its)d(v)-5 b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g
@@ -8909,9 +8922,9 @@ b(ranslation],)32 b(page)f(7\).)150 5066 y Fs(LC_NUMERIC)630
 5340 y Fs(LINENO)192 b Ft(The)30 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g
 (script)h(or)f(shell)g(function)h(curren)m(tly)f(executing.)p
 eop end
-%%Page: 61 67
-TeXDict begin 61 66 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(61)150 299 y Fs(LINES)240
+%%Page: 63 69
+TeXDict begin 63 68 bop 150 -116 a Ft(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(63)150 299 y Fs(LINES)240
 b Ft(Used)25 b(b)m(y)g(the)g Fs(select)e Ft(builtin)i(command)g(to)h
 (determine)f(the)g(column)g(length)g(for)g(prin)m(t-)630
 408 y(ing)31 b(selection)h(lists.)41 b(Automatically)33
@@ -8938,7 +8951,7 @@ g Fs(getopts)630 1819 y Ft(builtin)30 b(command.)150
 1979 y Fs(OSTYPE)192 b Ft(A)30 b(string)h(describing)f(the)g(op)s
 (erating)h(system)g(Bash)f(is)h(running)d(on.)150 2140
 y Fs(PIPESTATUS)630 2250 y Ft(An)23 b(arra)m(y)h(v)-5
-b(ariable)24 b(\(see)h(Section)f(6.7)h([Arra)m(ys],)g(page)f(74\))h
+b(ariable)24 b(\(see)h(Section)f(6.7)h([Arra)m(ys],)g(page)f(76\))h
 (con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 2359
 y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g(in)f(the)h
 (most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630
@@ -8947,7 +8960,7 @@ y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g(in)f(the)h
 Ft(If)h(this)h(v)-5 b(ariable)34 b(is)f(in)f(the)h(en)m(vironmen)m(t)h
 (when)d Fs(bash)h Ft(starts,)i(the)f(shell)g(en)m(ters)h
 Fl(posix)630 2849 y Ft(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e
-(POSIX)f(Mo)s(de],)k(page)e(78\))g(b)s(efore)f(reading)g(the)g(startup)
+(POSIX)f(Mo)s(de],)k(page)e(80\))g(b)s(efore)f(reading)g(the)g(startup)
 630 2958 y(\014les,)32 b(as)f(if)h(the)f(`)p Fs(--posix)p
 Ft(')f(in)m(v)m(o)s(cation)j(option)f(had)f(b)s(een)g(supplied.)42
 b(If)31 b(it)h(is)f(set)h(while)630 3068 y(the)f(shell)f(is)h(running,)
@@ -8968,7 +8981,7 @@ b(ariable)31 b(is)g(not)f(set,)i(the)e Fs(select)f Ft(command)h
 b Ft(The)33 b(v)-5 b(alue)34 b(is)g(the)g(prompt)f(prin)m(ted)g(b)s
 (efore)g(the)h(command)f(line)h(is)g(ec)m(ho)s(ed)g(when)f(the)630
 4419 y(`)p Fs(-x)p Ft(')23 b(option)h(is)g(set)g(\(see)g(Section)h(4.3)
-f([The)f(Set)h(Builtin],)i(page)e(51\).)40 b(The)23 b(\014rst)f(c)m
+f([The)f(Set)h(Builtin],)i(page)e(53\).)40 b(The)23 b(\014rst)f(c)m
 (haracter)630 4529 y(of)34 b Fs(PS4)g Ft(is)g(replicated)i(m)m(ultiple)
 f(times,)h(as)e(necessary)-8 b(,)37 b(to)e(indicate)g(m)m(ultiple)g
 (lev)m(els)h(of)630 4639 y(indirection.)41 b(The)30 b(default)h(is)f(`)
@@ -8982,8 +8995,8 @@ b(ariable)31 b(seeds)g(the)g(random)f(n)m(um)m(b)s(er)f(gen-)630
 5179 y(erator.)150 5340 y Fs(REPLY)240 b Ft(The)30 b(default)g(v)-5
 b(ariable)32 b(for)e(the)g Fs(read)g Ft(builtin.)p eop
 end
-%%Page: 62 68
-TeXDict begin 62 67 bop 150 -116 a Ft(62)2572 b(Bash)31
+%%Page: 64 70
+TeXDict begin 64 69 bop 150 -116 a Ft(64)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(SECONDS)144 b Ft(This)40
 b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s(er)e(of)i
 (seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
@@ -9001,7 +9014,7 @@ e(assigns)h(to)f(it)h(the)f(full)f(pathname)h(of)g(the)g(curren)m(t)630
 41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5
 b(alid)630 1369 y(argumen)m(t)29 b(for)g(the)g(`)p Fs(-o)p
 Ft(')g(option)g(to)h(the)f Fs(set)f Ft(builtin)h(command)g(\(see)g
-(Section)h(4.3)g([The)630 1479 y(Set)f(Builtin],)h(page)f(51\).)42
+(Section)h(4.3)g([The)630 1479 y(Set)f(Builtin],)h(page)f(53\).)42
 b(The)28 b(options)h(app)s(earing)f(in)g Fs(SHELLOPTS)e
 Ft(are)j(those)h(rep)s(orted)630 1589 y(as)g(`)p Fs(on)p
 Ft(')f(b)m(y)h(`)p Fs(set)g(-o)p Ft('.)40 b(If)29 b(this)h(v)-5
@@ -9057,14 +9070,14 @@ b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f
 b(alue)23 b(greater)h(than)e(zero,)j Fs(TMOUT)d Ft(is)g(treated)i(as)e
 (the)h(default)g(timeout)g(for)g(the)630 5121 y Fs(read)31
 b Ft(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g
-(39\).)47 b(The)32 b Fs(select)e Ft(command)630 5230
+(41\).)47 b(The)32 b Fs(select)e Ft(command)630 5230
 y(\(see)f(Section)h(3.2.4.2)g([Conditional)g(Constructs],)e(page)i
 (10\))f(terminates)g(if)g(input)e(do)s(es)630 5340 y(not)k(arriv)m(e)g
 (after)g Fs(TMOUT)e Ft(seconds)h(when)f(input)h(is)g(coming)h(from)f(a)
 h(terminal.)p eop end
-%%Page: 63 69
-TeXDict begin 63 68 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(63)630 299 y(In)28
+%%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)630 299 y(In)28
 b(an)h(in)m(terativ)m(e)i(shell,)e(the)g(v)-5 b(alue)30
 b(is)e(in)m(terpreted)h(as)g(the)g(n)m(um)m(b)s(er)f(of)h(seconds)f(to)
 i(w)m(ait)630 408 y(for)i(input)f(after)i(issuing)f(the)g(primary)g
@@ -9077,12 +9090,12 @@ b(alue)40 b(as)f(the)h(name)f(of)h(a)g(directory)g(in)f(whic)m(h)g
 (shell's)g(use.)150 946 y Fs(UID)336 b Ft(The)30 b(n)m(umeric)g(real)h
 (user)f(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30
 b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)p eop end
-%%Page: 64 70
-TeXDict begin 64 69 bop 150 -116 a Ft(64)2572 b(Bash)31
+%%Page: 66 72
+TeXDict begin 66 71 bop 150 -116 a Ft(66)2572 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 65 71
-TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(65)150 299 y Fo(6)80
+%%Page: 67 73
+TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(67)150 299 y Fo(6)80
 b(Bash)54 b(F)-13 b(eatures)275 537 y Ft(This)29 b(section)j(describ)s
 (es)d(features)i(unique)e(to)j(Bash.)150 798 y Fr(6.1)68
 b(In)l(v)l(oking)46 b(Bash)390 1017 y Fs(bash)h([long-opt])e([-ir])h
@@ -9097,7 +9110,7 @@ b([-o)k Fj(option)11 b Fs(])46 b([-O)h Fj(shopt_option)11
 b Fs(])43 b([)p Fj(ar-)390 1565 y(gument)57 b Fs(...)o(])275
 1701 y Ft(In)28 b(addition)i(to)g(the)f(single-c)m(haracter)j(shell)e
 (command-line)g(options)g(\(see)g(Section)g(4.3)h([The)e(Set)150
-1810 y(Builtin],)e(page)e(51\),)i(there)e(are)g(sev)m(eral)h(m)m
+1810 y(Builtin],)e(page)e(53\),)i(there)e(are)g(sev)m(eral)h(m)m
 (ulti-c)m(haracter)h(options)e(that)g(y)m(ou)g(can)g(use.)38
 b(These)25 b(options)150 1920 y(m)m(ust)30 b(app)s(ear)g(on)g(the)h
 (command)f(line)h(b)s(efore)f(the)g(single-c)m(haracter)j(options)e(to)
@@ -9105,11 +9118,11 @@ 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)40 b(extended)g(debugging)g(mo)s(de)g(\(see)h
-(Section)f(4.2)h([Bash)g(Builtins],)i(page)e(39)g(for)f(a)630
+(Section)f(4.2)h([Bash)g(Builtins],)i(page)e(41)g(for)f(a)630
 2410 y(description)i(of)g(the)f Fs(extdebug)f Ft(option)i(to)g(the)g
 Fs(shopt)f Ft(builtin\))g(and)g(shell)h(function)630
 2520 y(tracing)36 b(\(see)g(Section)g(4.3)h([The)e(Set)g(Builtin],)j
-(page)e(51)g(for)f(a)g(description)h(of)f(the)h Fs(-o)630
+(page)e(53)g(for)f(a)g(description)h(of)f(the)h Fs(-o)630
 2629 y(functrace)28 b Ft(option\).)150 2790 y Fs(--dump-po-strings)630
 2900 y Ft(A)37 b(list)g(of)f(all)i(double-quoted)e(strings)g(preceded)g
 (b)m(y)h(`)p Fs($)p Ft(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630
@@ -9127,7 +9140,7 @@ Ft('\))e(in)i(an)g(in)m(teractiv)m(e)630 4039 y(shell.)150
 4200 y Fs(--login)144 b Ft(Equiv)-5 b(alen)m(t)31 b(to)g(`)p
 Fs(-l)p Ft('.)150 4361 y Fs(--noediting)630 4471 y Ft(Do)h(not)e(use)h
 (the)g Fl(gnu)f Ft(Readline)i(library)e(\(see)h(Chapter)g(8)g([Command)
-f(Line)g(Editing],)630 4580 y(page)h(87\))h(to)f(read)f(command)g
+f(Line)g(Editing],)630 4580 y(page)h(89\))h(to)f(read)f(command)g
 (lines)h(when)e(the)i(shell)f(is)h(in)m(teractiv)m(e.)150
 4741 y Fs(--noprofile)630 4850 y Ft(Don't)h(load)f(the)g(system-wide)g
 (startup)f(\014le)g(`)p Fs(/etc/profile)p Ft(')e(or)j(an)m(y)g(of)g
@@ -9139,56 +9152,56 @@ Ft(Don't)31 b(read)g(the)f(`)p Fs(~/.bashrc)p Ft(')f(initialization)k
 (\014le)d(in)g(an)h(in)m(teractiv)m(e)i(shell.)41 b(This)30
 b(is)g(on)630 5340 y(b)m(y)g(default)h(if)f(the)h(shell)f(is)h(in)m(v)m
 (ok)m(ed)h(as)e Fs(sh)p Ft(.)p eop end
-%%Page: 66 72
-TeXDict begin 66 71 bop 150 -116 a Ft(66)2572 b(Bash)31
+%%Page: 68 74
+TeXDict begin 68 73 bop 150 -116 a Ft(68)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(--posix)144 b Ft(Change)24
 b(the)h(b)s(eha)m(vior)f(of)g(Bash)h(where)e(the)i(default)f(op)s
 (eration)h(di\013ers)f(from)f(the)i Fl(posix)630 408
-y Ft(1003.2)31 b(standard)d(to)i(matc)m(h)f(the)g(standard.)40
-b(This)28 b(is)g(in)m(tended)h(to)h(mak)m(e)f(Bash)g(b)s(eha)m(v)m(e)
-630 518 y(as)39 b(a)f(strict)h(sup)s(erset)f(of)g(that)h(standard.)64
-b(See)38 b(Section)h(6.11)h([Bash)f(POSIX)e(Mo)s(de],)630
-628 y(page)31 b(78,)h(for)e(a)g(description)h(of)f(the)h(Bash)g
-Fl(posix)e Ft(mo)s(de.)150 787 y Fs(--restricted)630
-897 y Ft(Mak)m(e)54 b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h
-(Section)g(6.10)h([The)d(Restricted)j(Shell],)630 1006
-y(page)31 b(78\).)150 1166 y Fs(--verbose)630 1275 y
-Ft(Equiv)-5 b(alen)m(t)31 b(to)g(`)p Fs(-v)p Ft('.)41
-b(Prin)m(t)30 b(shell)h(input)e(lines)i(as)g(they're)f(read.)150
-1435 y Fs(--version)630 1544 y Ft(Sho)m(w)e(v)m(ersion)g(information)g
-(for)g(this)g(instance)h(of)f(Bash)g(on)g(the)g(standard)f(output)h
-(and)630 1654 y(exit)j(successfully)-8 b(.)275 1813 y(There)28
-b(are)i(sev)m(eral)g(single-c)m(haracter)i(options)d(that)h(ma)m(y)g(b)
-s(e)e(supplied)g(at)i(in)m(v)m(o)s(cation)h(whic)m(h)e(are)150
-1923 y(not)i(a)m(v)-5 b(ailable)32 b(with)e(the)h Fs(set)e
-Ft(builtin.)150 2082 y Fs(-c)h Fj(string)630 2192 y Ft(Read)23
-b(and)f(execute)i(commands)f(from)f Fq(string)31 b Ft(after)23
-b(pro)s(cessing)f(the)h(options,)i(then)e(exit.)630 2301
-y(An)m(y)37 b(remaining)f(argumen)m(ts)h(are)g(assigned)g(to)g(the)g(p)
-s(ositional)g(parameters,)i(starting)630 2411 y(with)30
-b Fs($0)p Ft(.)150 2570 y Fs(-i)384 b Ft(F)-8 b(orce)22
-b(the)g(shell)f(to)g(run)f(in)m(teractiv)m(ely)-8 b(.)41
-b(In)m(teractiv)m(e)23 b(shells)e(are)h(describ)s(ed)d(in)i(Section)h
-(6.3)630 2680 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(69.)150
-2839 y Fs(-l)384 b Ft(Mak)m(e)33 b(this)e(shell)h(act)g(as)g(if)f(it)h
-(had)f(b)s(een)f(directly)i(in)m(v)m(ok)m(ed)h(b)m(y)f(login.)44
-b(When)31 b(the)h(shell)630 2949 y(is)37 b(in)m(teractiv)m(e,)43
-b(this)37 b(is)g(equiv)-5 b(alen)m(t)39 b(to)f(starting)h(a)e(login)i
-(shell)e(with)g(`)p Fs(exec)30 b(-l)g(bash)p Ft('.)630
-3059 y(When)h(the)g(shell)h(is)f(not)g(in)m(teractiv)m(e,)k(the)c
-(login)h(shell)g(startup)f(\014les)g(will)g(b)s(e)g(executed.)630
-3168 y(`)p Fs(exec)e(bash)h(-l)p Ft(')43 b(or)h(`)p Fs(exec)29
-b(bash)g(--login)p Ft(')42 b(will)i(replace)h(the)f(curren)m(t)f(shell)
-h(with)g(a)630 3278 y(Bash)26 b(login)g(shell.)39 b(See)26
-b(Section)g(6.2)h([Bash)e(Startup)g(Files],)j(page)e(67,)i(for)d(a)h
-(description)630 3387 y(of)31 b(the)f(sp)s(ecial)h(b)s(eha)m(vior)g(of)
-f(a)h(login)g(shell.)150 3547 y Fs(-r)384 b Ft(Mak)m(e)54
+y Ft(standard)35 b(to)h(matc)m(h)g(the)g(standard.)55
+b(This)35 b(is)h(in)m(tended)f(to)h(mak)m(e)h(Bash)f(b)s(eha)m(v)m(e)g
+(as)g(a)630 518 y(strict)26 b(sup)s(erset)e(of)h(that)g(standard.)38
+b(See)26 b(Section)f(6.11)i([Bash)e(POSIX)f(Mo)s(de],)j(page)f(80,)630
+628 y(for)k(a)h(description)f(of)h(the)f(Bash)h Fl(posix)f
+Ft(mo)s(de.)150 787 y Fs(--restricted)630 897 y Ft(Mak)m(e)54
 b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h(Section)g(6.10)h([The)
-d(Restricted)j(Shell],)630 3656 y(page)31 b(78\).)150
-3816 y Fs(-s)384 b Ft(If)24 b(this)h(option)h(is)f(presen)m(t,)h(or)f
-(if)g(no)f(argumen)m(ts)i(remain)e(after)i(option)f(pro)s(cessing,)h
-(then)630 3925 y(commands)i(are)h(read)g(from)f(the)h(standard)f
-(input.)39 b(This)28 b(option)h(allo)m(ws)h(the)f(p)s(ositional)630
+d(Restricted)j(Shell],)630 1006 y(page)31 b(80\).)150
+1166 y Fs(--verbose)630 1275 y Ft(Equiv)-5 b(alen)m(t)31
+b(to)g(`)p Fs(-v)p Ft('.)41 b(Prin)m(t)30 b(shell)h(input)e(lines)i(as)
+g(they're)f(read.)150 1435 y Fs(--version)630 1544 y
+Ft(Sho)m(w)e(v)m(ersion)g(information)g(for)g(this)g(instance)h(of)f
+(Bash)g(on)g(the)g(standard)f(output)h(and)630 1654 y(exit)j
+(successfully)-8 b(.)275 1813 y(There)28 b(are)i(sev)m(eral)g(single-c)
+m(haracter)i(options)d(that)h(ma)m(y)g(b)s(e)e(supplied)g(at)i(in)m(v)m
+(o)s(cation)h(whic)m(h)e(are)150 1923 y(not)i(a)m(v)-5
+b(ailable)32 b(with)e(the)h Fs(set)e Ft(builtin.)150
+2082 y Fs(-c)h Fj(string)630 2192 y Ft(Read)23 b(and)f(execute)i
+(commands)f(from)f Fq(string)31 b Ft(after)23 b(pro)s(cessing)f(the)h
+(options,)i(then)e(exit.)630 2301 y(An)m(y)37 b(remaining)f(argumen)m
+(ts)h(are)g(assigned)g(to)g(the)g(p)s(ositional)g(parameters,)i
+(starting)630 2411 y(with)30 b Fs($0)p Ft(.)150 2570
+y Fs(-i)384 b Ft(F)-8 b(orce)22 b(the)g(shell)f(to)g(run)f(in)m
+(teractiv)m(ely)-8 b(.)41 b(In)m(teractiv)m(e)23 b(shells)e(are)h
+(describ)s(ed)d(in)i(Section)h(6.3)630 2680 y([In)m(teractiv)m(e)33
+b(Shells],)e(page)g(71.)150 2839 y Fs(-l)384 b Ft(Mak)m(e)33
+b(this)e(shell)h(act)g(as)g(if)f(it)h(had)f(b)s(een)f(directly)i(in)m
+(v)m(ok)m(ed)h(b)m(y)f(login.)44 b(When)31 b(the)h(shell)630
+2949 y(is)37 b(in)m(teractiv)m(e,)43 b(this)37 b(is)g(equiv)-5
+b(alen)m(t)39 b(to)f(starting)h(a)e(login)i(shell)e(with)g(`)p
+Fs(exec)30 b(-l)g(bash)p Ft('.)630 3059 y(When)h(the)g(shell)h(is)f
+(not)g(in)m(teractiv)m(e,)k(the)c(login)h(shell)g(startup)f(\014les)g
+(will)g(b)s(e)g(executed.)630 3168 y(`)p Fs(exec)e(bash)h(-l)p
+Ft(')43 b(or)h(`)p Fs(exec)29 b(bash)g(--login)p Ft(')42
+b(will)i(replace)h(the)f(curren)m(t)f(shell)h(with)g(a)630
+3278 y(Bash)26 b(login)g(shell.)39 b(See)26 b(Section)g(6.2)h([Bash)e
+(Startup)g(Files],)j(page)e(69,)i(for)d(a)h(description)630
+3387 y(of)31 b(the)f(sp)s(ecial)h(b)s(eha)m(vior)g(of)f(a)h(login)g
+(shell.)150 3547 y Fs(-r)384 b Ft(Mak)m(e)54 b(the)e(shell)g(a)h
+(restricted)g(shell)f(\(see)h(Section)g(6.10)h([The)d(Restricted)j
+(Shell],)630 3656 y(page)31 b(80\).)150 3816 y Fs(-s)384
+b Ft(If)24 b(this)h(option)h(is)f(presen)m(t,)h(or)f(if)g(no)f(argumen)
+m(ts)i(remain)e(after)i(option)f(pro)s(cessing,)h(then)630
+3925 y(commands)i(are)h(read)g(from)f(the)h(standard)f(input.)39
+b(This)28 b(option)h(allo)m(ws)h(the)f(p)s(ositional)630
 4035 y(parameters)i(to)g(b)s(e)f(set)g(when)g(in)m(v)m(oking)h(an)g(in)
 m(teractiv)m(e)i(shell.)150 4194 y Fs(-D)384 b Ft(A)37
 b(list)g(of)f(all)i(double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p
@@ -9203,7 +9216,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(Chapter)29 b(4)i([Shell)f
-(Builtin)g(Commands],)g(page)g(33\).)42 b(If)30 b Fq(shopt)p
+(Builtin)g(Commands],)g(page)g(35\).)42 b(If)30 b Fq(shopt)p
 2856 4902 V 39 w(option)h Ft(is)f(presen)m(t,)g(`)p Fs(-O)p
 Ft(')630 5011 y(sets)39 b(the)f(v)-5 b(alue)39 b(of)f(that)h(option;)k
 (`)p Fs(+O)p Ft(')38 b(unsets)g(it.)65 b(If)38 b Fq(shopt)p
@@ -9214,9 +9227,9 @@ Ft(')630 5011 y(sets)39 b(the)f(v)-5 b(alue)39 b(of)f(that)h(option;)k
 (cation)i(option)e(is)g(`)p Fs(+O)p Ft(',)g(the)g(output)f(is)h(displa)
 m(y)m(ed)g(in)g(a)630 5340 y(format)d(that)g(ma)m(y)g(b)s(e)e(reused)h
 (as)h(input.)p eop end
-%%Page: 67 73
-TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(67)150 299 y Fs(--)384
+%%Page: 69 75
+TeXDict begin 69 74 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(69)150 299 y Fs(--)384
 b Ft(A)38 b Fs(--)g Ft(signals)g(the)h(end)e(of)i(options)f(and)g
 (disables)g(further)f(option)h(pro)s(cessing.)64 b(An)m(y)630
 408 y(argumen)m(ts)31 b(after)g(the)f Fs(--)g Ft(are)h(treated)g(as)g
@@ -9232,7 +9245,7 @@ b(and)42 b(whose)h(input)f(and)g(output)g(are)h(b)s(oth)g(connected)g
 (to)150 1044 y(terminals)22 b(\(as)h(determined)f(b)m(y)g
 Fs(isatty\(3\))p Ft(\),)f(or)i(one)f(started)g(with)g(the)g(`)p
 Fs(-i)p Ft(')g(option.)39 b(See)22 b(Section)h(6.3)150
-1153 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(69,)g(for)f(more)h
+1153 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(71,)g(for)f(more)h
 (information.)275 1293 y(If)38 b(argumen)m(ts)h(remain)g(after)g
 (option)h(pro)s(cessing,)h(and)d(neither)h(the)g(`)p
 Fs(-c)p Ft(')f(nor)h(the)g(`)p Fs(-s)p Ft(')f(option)150
@@ -9255,7 +9268,7 @@ b(If)26 b(no)g(commands)g(are)h(executed,)150 1951 y(the)k(exit)g
 (as)g(describ)s(ed)f(ab)s(o)m(v)m(e)150 2689 y(under)29
 b(Tilde)h(Expansion)g(\(see)h(Section)g(3.5.2)i([Tilde)d(Expansion],)g
 (page)i(18\).)275 2828 y(In)m(teractiv)m(e)g(shells)f(are)g(describ)s
-(ed)e(in)h(Section)h(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(69.)
+(ed)e(in)h(Section)h(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(71.)
 150 3063 y Fk(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f
 (login)j(shell,)g(or)g(with)e(`)p Fi(--login)p Fk(')275
 3312 y Ft(When)e(Bash)g(is)h(in)m(v)m(ok)m(ed)h(as)e(an)g(in)m
@@ -9288,8 +9301,8 @@ b(,)33 b(y)m(our)d(`)p Fs(~/.bash_profile)p Ft(')d(con)m(tains)32
 b(the)e(line)390 5200 y Fs(if)47 b([)h(-f)f(~/.bashrc)e(];)i(then)g(.)g
 (~/.bashrc;)e(fi)150 5340 y Ft(after)31 b(\(or)g(b)s(efore\))f(an)m(y)h
 (login-sp)s(eci\014c)g(initializations.)p eop end
-%%Page: 68 74
-TeXDict begin 68 73 bop 150 -116 a Ft(68)2572 b(Bash)31
+%%Page: 70 76
+TeXDict begin 70 75 bop 150 -116 a Ft(70)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fk(In)m(v)m(ok)m(ed)40
 b(non-in)m(teractiv)m(ely)275 571 y Ft(When)24 b(Bash)h(is)g(started)g
 (non-in)m(teractiv)m(ely)-8 b(,)29 b(to)d(run)d(a)i(shell)g(script,)h
@@ -9359,9 +9372,9 @@ y(used)25 b(to)h(force)g(another)g(\014le)f(to)i(b)s(e)e(read,)h(but)f
 Fs(rshd)g Ft(do)s(es)g(not)g(generally)i(in)m(v)m(ok)m(e)h(the)d(shell)
 h(with)f(those)150 5340 y(options)31 b(or)f(allo)m(w)i(them)e(to)h(b)s
 (e)f(sp)s(eci\014ed.)p eop end
-%%Page: 69 75
-TeXDict begin 69 74 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(69)150 299 y Fk(In)m(v)m(ok)m(ed)40
+%%Page: 71 77
+TeXDict begin 71 76 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(71)150 299 y Fk(In)m(v)m(ok)m(ed)40
 b(with)g(unequal)h(e\013ectiv)m(e)e(and)i(real)g Fh(uid/gid)p
 Fk(s)275 538 y Ft(If)26 b(Bash)i(is)f(started)h(with)f(the)g
 (e\013ectiv)m(e)j(user)d(\(group\))g(id)g(not)h(equal)g(to)g(the)f
@@ -9411,15 +9424,15 @@ b(Shell)k(Beha)m(vior)275 4752 y Ft(When)30 b(the)g(shell)h(is)f
 (eha)m(vior)g(in)f(sev)m(eral)h(w)m(a)m(ys.)199 4881
 y(1.)61 b(Startup)37 b(\014les)g(are)h(read)f(and)g(executed)h(as)f
 (describ)s(ed)g(in)g(Section)h(6.2)g([Bash)g(Startup)e(Files],)330
-4991 y(page)31 b(67.)199 5121 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h
-(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(83\))g(is)f(enabled)g(b)m
+4991 y(page)31 b(69.)199 5121 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h
+(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(85\))g(is)f(enabled)g(b)m
 (y)g(default.)55 b(When)34 b(job)330 5230 y(con)m(trol)h(is)f(in)f
 (e\013ect,)k(Bash)d(ignores)g(the)g(k)m(eyb)s(oard-generated)h(job)e
 (con)m(trol)i(signals)g Fs(SIGTTIN)p Ft(,)330 5340 y
 Fs(SIGTTOU)p Ft(,)29 b(and)g Fs(SIGTSTP)p Ft(.)p eop
 end
-%%Page: 70 76
-TeXDict begin 70 75 bop 150 -116 a Ft(70)2572 b(Bash)31
+%%Page: 72 78
+TeXDict begin 72 77 bop 150 -116 a Ft(72)2572 b(Bash)31
 b(Reference)g(Man)m(ual)199 299 y(3.)61 b(Bash)39 b(expands)f(and)g
 (displa)m(ys)h Fs(PS1)f Ft(b)s(efore)h(reading)g(the)g(\014rst)f(line)h
 (of)g(a)g(command,)i(and)d(ex-)330 408 y(pands)30 b(and)g(displa)m(ys)h
@@ -9429,24 +9442,24 @@ Fs(PS2)e Ft(b)s(efore)i(reading)g(the)g(second)f(and)h(subsequen)m(t)f
 b(of)f(the)h Fs(PROMPT_COMMAND)22 b Ft(v)-5 b(ariable)27
 b(as)g(a)f(command)g(b)s(efore)g(prin)m(ting)330 779
 y(the)31 b(primary)e(prompt,)h Fs($PS1)f Ft(\(see)i(Section)g(5.2)h
-([Bash)f(V)-8 b(ariables],)32 b(page)f(55\).)199 930
+([Bash)f(V)-8 b(ariables],)32 b(page)f(57\).)199 930
 y(5.)61 b(Readline)30 b(\(see)h(Chapter)e(8)h([Command)e(Line)i
-(Editing],)g(page)g(87\))h(is)f(used)f(to)h(read)f(commands)330
+(Editing],)g(page)g(89\))h(is)f(used)f(to)h(read)f(commands)330
 1039 y(from)h(the)g(user's)g(terminal.)199 1190 y(6.)61
 b(Bash)36 b(insp)s(ects)g(the)h(v)-5 b(alue)37 b(of)f(the)g
 Fs(ignoreeof)e Ft(option)j(to)g Fs(set)29 b(-o)36 b Ft(instead)h(of)f
 (exiting)i(imme-)330 1300 y(diately)f(when)e(it)i(receiv)m(es)h(an)e
 Fs(EOF)f Ft(on)h(its)g(standard)f(input)g(when)h(reading)g(a)g(command)
 g(\(see)330 1409 y(Section)31 b(4.3)h([The)e(Set)g(Builtin],)i(page)f
-(51\).)199 1560 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1)
-g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(113\))h(and)d
+(53\).)199 1560 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1)
+g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(115\))h(and)d
 (history)330 1670 y(expansion)23 b(\(see)i(Section)f(9.3)h([History)f
-(In)m(teraction],)j(page)d(115\))h(are)f(enabled)g(b)m(y)f(default.)39
+(In)m(teraction],)j(page)d(117\))h(are)f(enabled)g(b)m(y)f(default.)39
 b(Bash)330 1779 y(will)23 b(sa)m(v)m(e)i(the)e(command)f(history)h(to)h
 (the)f(\014le)g(named)f(b)m(y)h Fs($HISTFILE)d Ft(when)i(an)h(in)m
 (teractiv)m(e)j(shell)330 1889 y(exits.)199 2040 y(8.)61
 b(Alias)31 b(expansion)g(\(see)g(Section)g(6.6)g([Aliases],)i(page)e
-(73\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 2191
+(75\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 2191
 y(9.)61 b(In)24 b(the)g(absence)h(of)f(an)m(y)h(traps,)g(Bash)g
 (ignores)f Fs(SIGTERM)f Ft(\(see)i(Section)g(3.7.6)h([Signals],)g(page)
 f(31\).)154 2342 y(10.)61 b(In)26 b(the)h(absence)h(of)f(an)m(y)g
@@ -9460,16 +9473,16 @@ g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(31\).)154
 2863 y(12.)61 b(The)31 b(`)p Fs(-n)p Ft(')g(in)m(v)m(o)s(cation)i
 (option)e(is)h(ignored,)f(and)g(`)p Fs(set)f(-n)p Ft(')g(has)h(no)g
 (e\013ect)i(\(see)f(Section)g(4.3)g([The)330 2972 y(Set)f(Builtin],)g
-(page)g(51\).)154 3123 y(13.)61 b(Bash)32 b(will)g(c)m(hec)m(k)i(for)e
+(page)g(53\).)154 3123 y(13.)61 b(Bash)32 b(will)g(c)m(hec)m(k)i(for)e
 (mail)g(p)s(erio)s(dically)-8 b(,)34 b(dep)s(ending)c(on)i(the)g(v)-5
 b(alues)32 b(of)g(the)h Fs(MAIL)p Ft(,)e Fs(MAILPATH)p
 Ft(,)330 3233 y(and)f Fs(MAILCHECK)e Ft(shell)i(v)-5
 b(ariables)31 b(\(see)h(Section)f(5.2)g([Bash)g(V)-8
-b(ariables],)32 b(page)f(55\).)154 3384 y(14.)61 b(Expansion)32
+b(ariables],)32 b(page)f(57\).)154 3384 y(14.)61 b(Expansion)32
 b(errors)h(due)f(to)i(references)f(to)h(un)m(b)s(ound)c(shell)j(v)-5
 b(ariables)34 b(after)g(`)p Fs(set)29 b(-u)p Ft(')k(has)g(b)s(een)330
 3494 y(enabled)d(will)h(not)g(cause)g(the)f(shell)h(to)g(exit)g(\(see)g
-(Section)h(4.3)f([The)f(Set)h(Builtin],)g(page)g(51\).)154
+(Section)h(4.3)f([The)f(Set)h(Builtin],)g(page)g(53\).)154
 3644 y(15.)61 b(The)48 b(shell)h(will)f(not)h(exit)g(on)g(expansion)f
 (errors)g(caused)g(b)m(y)h Fq(v)-5 b(ar)54 b Ft(b)s(eing)48
 b(unset)g(or)h(n)m(ull)f(in)330 3754 y Fs(${)p Fj(var)11
@@ -9480,26 +9493,26 @@ b Fs(:?)p Fj(word)g Fs(})26 b Ft(expansions)k(\(see)h(Section)h(3.5.3)g
 4056 y(17.)61 b(When)26 b(running)f(in)i Fl(posix)e Ft(mo)s(de,)j(a)f
 (sp)s(ecial)g(builtin)f(returning)g(an)g(error)h(status)g(will)g(not)f
 (cause)330 4166 y(the)31 b(shell)f(to)h(exit)h(\(see)f(Section)g(6.11)h
-([Bash)f(POSIX)e(Mo)s(de],)i(page)g(78\).)154 4316 y(18.)61
+([Bash)f(POSIX)e(Mo)s(de],)i(page)g(80\).)154 4316 y(18.)61
 b(A)34 b(failed)g Fs(exec)f Ft(will)h(not)g(cause)g(the)g(shell)g(to)g
 (exit)h(\(see)f(Section)h(4.1)g([Bourne)f(Shell)f(Builtins],)330
-4426 y(page)e(33\).)154 4577 y(19.)61 b(P)m(arser)31
+4426 y(page)e(35\).)154 4577 y(19.)61 b(P)m(arser)31
 b(syn)m(tax)f(errors)g(will)h(not)g(cause)g(the)f(shell)h(to)g(exit.)
 154 4728 y(20.)61 b(Simple)21 b(sp)s(elling)h(correction)g(for)g
 (directory)g(argumen)m(ts)f(to)i(the)e Fs(cd)g Ft(builtin)g(is)h
 (enabled)f(b)m(y)h(default)330 4838 y(\(see)38 b(the)e(description)h
 (of)g(the)f Fs(cdspell)f Ft(option)i(to)g(the)g Fs(shopt)e
 Ft(builtin)h(in)h(Section)g(4.2)h([Bash)330 4947 y(Builtins],)31
-b(page)g(39\).)154 5098 y(21.)61 b(The)42 b(shell)h(will)g(c)m(hec)m(k)
+b(page)g(41\).)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(er)g(of)i
 (seconds)f(after)g(prin)m(ting)g Fs($PS1)f Ft(\(see)i(Section)g(5.2)h
-([Bash)330 5317 y(V)-8 b(ariables],)32 b(page)f(55\).)p
+([Bash)330 5317 y(V)-8 b(ariables],)32 b(page)f(57\).)p
 eop end
-%%Page: 71 77
-TeXDict begin 71 76 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(71)150 299 y Fr(6.4)68
+%%Page: 73 79
+TeXDict begin 73 78 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(73)150 299 y Fr(6.4)68
 b(Bash)45 b(Conditional)h(Expressions)275 540 y Ft(Conditional)38
 b(expressions)g(are)h(used)f(b)m(y)g(the)g Fs([[)g Ft(comp)s(ound)f
 (command)h(and)g(the)g Fs(test)g Ft(and)f Fs([)150 650
@@ -9575,8 +9588,8 @@ b(not.)150 5230 y Fj(file1)39 b Fs(-ot)30 b Fj(file2)630
 b(older)f(than)g Fq(\014le2)p Ft(,)i(or)e(if)g Fq(\014le2)38
 b Ft(exists)31 b(and)f Fq(\014le1)38 b Ft(do)s(es)30
 b(not.)p eop end
-%%Page: 72 78
-TeXDict begin 72 77 bop 150 -116 a Ft(72)2572 b(Bash)31
+%%Page: 74 80
+TeXDict begin 74 79 bop 150 -116 a Ft(74)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fj(file1)39 b Fs(-ef)30
 b Fj(file2)630 408 y Ft(T)-8 b(rue)30 b(if)g Fq(\014le1)38
 b Ft(and)30 b Fq(\014le2)38 b Ft(refer)30 b(to)i(the)e(same)h(device)g
@@ -9586,7 +9599,7 @@ Fq(optname)47 b Ft(is)41 b(enabled.)73 b(The)41 b(list)h(of)f(options)g
 (app)s(ears)g(in)g(the)630 789 y(description)20 b(of)h(the)f(`)p
 Fs(-o)p Ft(')g(option)h(to)g(the)g Fs(set)e Ft(builtin)h(\(see)h
 (Section)g(4.3)g([The)g(Set)f(Builtin],)630 898 y(page)31
-b(51\).)150 1060 y Fs(-z)f Fj(string)630 1169 y Ft(T)-8
+b(53\).)150 1060 y Fs(-z)f Fj(string)630 1169 y Ft(T)-8
 b(rue)30 b(if)g(the)h(length)g(of)f Fq(string)38 b Ft(is)31
 b(zero.)150 1330 y Fs(-n)f Fj(string)150 1440 y(string)192
 b Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f Fq(string)38
@@ -9635,9 +9648,9 @@ y Ft(v)-5 b(ariable)31 b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150
 5018 y Fs(-)g(+)354 b Ft(unary)29 b(min)m(us)h(and)g(plus)150
 5179 y Fs(!)g(~)354 b Ft(logical)33 b(and)d(bit)m(wise)h(negation)150
 5340 y Fs(**)384 b Ft(exp)s(onen)m(tiation)p eop end
-%%Page: 73 79
-TeXDict begin 73 78 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(73)150 299 y Fs(*)30
+%%Page: 75 81
+TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(75)150 299 y Fs(*)30
 b(/)g(\045)276 b Ft(m)m(ultiplication,)33 b(division,)d(remainder)150
 464 y Fs(+)g(-)354 b Ft(addition,)31 b(subtraction)150
 630 y Fs(<<)f(>>)258 b Ft(left)31 b(and)f(righ)m(t)h(bit)m(wise)g
@@ -9697,8 +9710,8 @@ y Fq(Aliases)34 b Ft(allo)m(w)d(a)g(string)e(to)i(b)s(e)e(substituted)g
 b(shell)i(main)m(tains)f(a)h(list)f(of)g(aliases)i(that)e(ma)m(y)h(b)s
 (e)e(set)h(and)g(unset)f(with)h(the)150 5340 y Fs(alias)d
 Ft(and)h Fs(unalias)e Ft(builtin)i(commands.)p eop end
-%%Page: 74 80
-TeXDict begin 74 79 bop 150 -116 a Ft(74)2572 b(Bash)31
+%%Page: 76 82
+TeXDict begin 76 81 bop 150 -116 a Ft(76)2572 b(Bash)31
 b(Reference)g(Man)m(ual)275 299 y(The)e(\014rst)f(w)m(ord)i(of)f(eac)m
 (h)i(simple)f(command,)g(if)f(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g
 (see)f(if)g(it)g(has)f(an)g(alias.)150 408 y(If)24 b(so,)i(that)g(w)m
@@ -9731,7 +9744,7 @@ b(unctions],)150 1802 y(page)31 b(14\).)275 1951 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 2061 y Ft(shell)e(option)f(is)h
 (set)g(using)f Fs(shopt)f Ft(\(see)i(Section)g(4.2)h([Bash)e
-(Builtins],)h(page)h(39\).)275 2210 y(The)38 b(rules)h(concerning)h
+(Builtins],)h(page)h(41\).)275 2210 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 2320 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
@@ -9776,9 +9789,9 @@ f(arra)m(y)-8 b(,)32 b(use)390 5042 y Fs(declare)46 b(-a)h
 Fj(name)150 5191 y Ft(The)30 b(syn)m(tax)390 5340 y Fs(declare)46
 b(-a)h Fj(name)11 b Fs([)p Fj(subscript)g Fs(])p eop
 end
-%%Page: 75 81
-TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(75)150 299 y(is)29
+%%Page: 77 83
+TeXDict begin 77 82 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(77)150 299 y(is)29
 b(also)i(accepted;)g(the)f Fq(subscript)g Ft(is)f(ignored.)41
 b(A)m(ttributes)30 b(ma)m(y)g(b)s(e)e(sp)s(eci\014ed)h(for)g(an)g(arra)
 m(y)h(v)-5 b(ariable)150 408 y(using)40 b(the)h Fs(declare)d
@@ -9868,8 +9881,8 @@ b(,)27 b(and)c(the)h Fs(popd)f Ft(builtin)g(remo)m(v)m(es)j(sp)s
 Fs(DIRSTACK)e Ft(shell)150 4885 y(v)-5 b(ariable.)150
 5099 y Fk(6.8.1)63 b(Directory)40 b(Stac)m(k)g(Builtins)150
 5340 y Fs(dirs)p eop end
-%%Page: 76 82
-TeXDict begin 76 81 bop 150 -116 a Ft(76)2572 b(Bash)31
+%%Page: 78 84
+TeXDict begin 78 83 bop 150 -116 a Ft(78)2572 b(Bash)31
 b(Reference)g(Man)m(ual)870 299 y Fs(dirs)47 b([+)p Fj(N)57
 b Fs(|)48 b(-)p Fj(N)11 b Fs(])46 b([-clpv])630 426 y
 Ft(Displa)m(y)35 b(the)f(list)g(of)g(curren)m(tly)g(remem)m(b)s(ered)f
@@ -9941,9 +9954,9 @@ b Ft(Mak)m(es)36 b(the)f(curren)m(t)g(w)m(orking)g(directory)g(b)s(e)f
 b(executes)i(the)e(equiv)-5 b(alen)m(t)32 b(of)f(`)p
 Fs(cd)f Fq(dir)7 b Ft('.)39 b Fs(cd)p Ft(s)30 b(to)h
 Fq(dir)p Ft(.)p eop end
-%%Page: 77 83
-TeXDict begin 77 82 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(77)150 299 y Fr(6.9)68
+%%Page: 79 85
+TeXDict begin 79 84 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(79)150 299 y Fr(6.9)68
 b(Con)l(trolling)47 b(the)e(Prompt)275 544 y Ft(The)c(v)-5
 b(alue)43 b(of)f(the)h(v)-5 b(ariable)43 b Fs(PROMPT_COMMAND)38
 b Ft(is)k(examined)g(just)g(b)s(efore)g(Bash)g(prin)m(ts)g(eac)m(h)150
@@ -9996,290 +10009,290 @@ Fs($)p Ft(.)150 5180 y Fs(\\)p Fj(nnn)288 b Ft(The)30
 b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)s(ctal)i(v)
 -5 b(alue)31 b Fq(nnn)p Ft(.)150 5340 y Fs(\\\\)384 b
 Ft(A)30 b(bac)m(kslash.)p eop end
-%%Page: 78 84
-TeXDict begin 78 83 bop 150 -116 a Ft(78)2572 b(Bash)31
+%%Page: 80 86
+TeXDict begin 80 85 bop 150 -116 a Ft(80)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(\\[)384 b Ft(Begin)38
 b(a)f(sequence)g(of)g(non-prin)m(ting)g(c)m(haracters.)61
 b(This)36 b(could)h(b)s(e)g(used)f(to)h(em)m(b)s(ed)g(a)630
 408 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)150
-568 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m(ting)g(c)
-m(haracters.)275 728 y(The)25 b(command)h(n)m(um)m(b)s(er)f(and)h(the)g
+561 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m(ting)g(c)
+m(haracters.)275 713 y(The)25 b(command)h(n)m(um)m(b)s(er)f(and)h(the)g
 (history)g(n)m(um)m(b)s(er)f(are)i(usually)f(di\013eren)m(t:)39
-b(the)26 b(history)g(n)m(um)m(b)s(er)150 838 y(of)h(a)f(command)h(is)f
+b(the)26 b(history)g(n)m(um)m(b)s(er)150 823 y(of)h(a)f(command)h(is)f
 (its)h(p)s(osition)f(in)g(the)h(history)f(list,)i(whic)m(h)f(ma)m(y)g
-(include)f(commands)g(restored)g(from)150 947 y(the)39
+(include)f(commands)g(restored)g(from)150 932 y(the)39
 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e(History)h(F)-8
-b(acilities],)45 b(page)40 b(113\),)j(while)d(the)f(command)150
-1057 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g(the)g(sequence)h
+b(acilities],)45 b(page)40 b(115\),)j(while)d(the)f(command)150
+1042 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g(the)g(sequence)h
 (of)f(commands)g(executed)h(during)e(the)i(curren)m(t)f(shell)150
-1167 y(session.)275 1302 y(After)35 b(the)g(string)g(is)g(deco)s(ded,)h
+1152 y(session.)275 1283 y(After)35 b(the)g(string)g(is)g(deco)s(ded,)h
 (it)f(is)g(expanded)f(via)i(parameter)f(expansion,)i(command)d(substi-)
-150 1411 y(tution,)k(arithmetic)f(expansion,)g(and)e(quote)h(remo)m(v)
+150 1392 y(tution,)k(arithmetic)f(expansion,)g(and)e(quote)h(remo)m(v)
 -5 b(al,)39 b(sub)5 b(ject)35 b(to)i(the)f(v)-5 b(alue)36
-b(of)g(the)g Fs(promptvars)150 1521 y Ft(shell)31 b(option)f(\(see)i
-(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(39\).)150
-1779 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)275 2024
+b(of)g(the)g Fs(promptvars)150 1502 y Ft(shell)31 b(option)f(\(see)i
+(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(41\).)150
+1749 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)275 1989
 y Ft(If)26 b(Bash)h(is)f(started)h(with)g(the)g(name)f
 Fs(rbash)p Ft(,)h(or)f(the)h(`)p Fs(--restricted)p Ft(')d(or)j(`)p
-Fs(-r)p Ft(')f(option)h(is)g(supplied)150 2133 y(at)32
+Fs(-r)p Ft(')f(option)h(is)g(supplied)150 2099 y(at)32
 b(in)m(v)m(o)s(cation,)i(the)d(shell)g(b)s(ecomes)h(restricted.)44
 b(A)31 b(restricted)h(shell)f(is)g(used)g(to)h(set)f(up)f(an)i(en)m
-(viron-)150 2243 y(men)m(t)26 b(more)f(con)m(trolled)i(than)e(the)h
+(viron-)150 2208 y(men)m(t)26 b(more)f(con)m(trolled)i(than)e(the)h
 (standard)e(shell.)40 b(A)25 b(restricted)h(shell)g(b)s(eha)m(v)m(es)g
-(iden)m(tically)h(to)f Fs(bash)150 2352 y Ft(with)k(the)h(exception)g
+(iden)m(tically)h(to)f Fs(bash)150 2318 y Ft(with)k(the)h(exception)g
 (that)g(the)g(follo)m(wing)h(are)e(disallo)m(w)m(ed)i(or)f(not)f(p)s
-(erformed:)225 2487 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with)
-g(the)f Fs(cd)g Ft(builtin.)225 2622 y Fp(\017)60 b Ft(Setting)31
+(erformed:)225 2449 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with)
+g(the)f Fs(cd)g Ft(builtin.)225 2580 y Fp(\017)60 b Ft(Setting)31
 b(or)f(unsetting)h(the)g(v)-5 b(alues)30 b(of)h(the)f
 Fs(SHELL)p Ft(,)g Fs(PATH)p Ft(,)f Fs(ENV)p Ft(,)h(or)g
-Fs(BASH_ENV)e Ft(v)-5 b(ariables.)225 2757 y Fp(\017)60
+Fs(BASH_ENV)e Ft(v)-5 b(ariables.)225 2711 y Fp(\017)60
 b Ft(Sp)s(ecifying)30 b(command)g(names)g(con)m(taining)i(slashes.)225
-2891 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m
+2842 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m
 (taining)i(a)f(slash)f(as)h(an)f(argumen)m(t)h(to)g(the)f
-Fs(.)h Ft(builtin)e(command.)225 3026 y Fp(\017)60 b
+Fs(.)h Ft(builtin)e(command.)225 2973 y Fp(\017)60 b
 Ft(Sp)s(ecifying)28 b(a)i(\014lename)f(con)m(taining)h(a)g(slash)e(as)h
 (an)g(argumen)m(t)h(to)f(the)g(`)p Fs(-p)p Ft(')g(option)g(to)h(the)f
-Fs(hash)330 3136 y Ft(builtin)h(command.)225 3270 y Fp(\017)60
+Fs(hash)330 3083 y Ft(builtin)h(command.)225 3214 y Fp(\017)60
 b Ft(Imp)s(orting)30 b(function)g(de\014nitions)g(from)f(the)i(shell)g
-(en)m(vironmen)m(t)g(at)g(startup.)225 3405 y Fp(\017)60
+(en)m(vironmen)m(t)g(at)g(startup.)225 3345 y Fp(\017)60
 b Ft(P)m(arsing)31 b(the)f(v)-5 b(alue)31 b(of)g Fs(SHELLOPTS)d
 Ft(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225
-3540 y Fp(\017)60 b Ft(Redirecting)31 b(output)f(using)g(the)h(`)p
+3476 y Fp(\017)60 b Ft(Redirecting)31 b(output)f(using)g(the)h(`)p
 Fs(>)p Ft(',)g(`)p Fs(>|)p Ft(',)f(`)p Fs(<>)p Ft(',)h(`)p
 Fs(>&)p Ft(',)f(`)p Fs(&>)p Ft(',)h(and)e(`)p Fs(>>)p
-Ft(')i(redirection)g(op)s(erators.)225 3675 y Fp(\017)60
+Ft(')i(redirection)g(op)s(erators.)225 3607 y Fp(\017)60
 b Ft(Using)31 b(the)f Fs(exec)f Ft(builtin)h(to)h(replace)h(the)e
-(shell)h(with)f(another)h(command.)225 3809 y Fp(\017)60
+(shell)h(with)f(another)h(command.)225 3738 y Fp(\017)60
 b Ft(Adding)40 b(or)h(deleting)h(builtin)e(commands)h(with)f(the)h(`)p
 Fs(-f)p Ft(')g(and)f(`)p Fs(-d)p Ft(')h(options)g(to)h(the)f
-Fs(enable)330 3919 y Ft(builtin.)225 4054 y Fp(\017)60
+Fs(enable)330 3847 y Ft(builtin.)225 3978 y Fp(\017)60
 b Ft(Using)31 b(the)f Fs(enable)f Ft(builtin)h(command)g(to)h(enable)g
-(disabled)f(shell)g(builtins.)225 4188 y Fp(\017)60 b
+(disabled)f(shell)g(builtins.)225 4109 y Fp(\017)60 b
 Ft(Sp)s(ecifying)30 b(the)g(`)p Fs(-p)p Ft(')h(option)g(to)g(the)f
-Fs(command)f Ft(builtin.)225 4323 y Fp(\017)60 b Ft(T)-8
+Fs(command)f Ft(builtin.)225 4240 y Fp(\017)60 b Ft(T)-8
 b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p
 Fs(set)g(+r)p Ft(')g(or)g(`)p Fs(set)g(+o)g(restricted)p
-Ft('.)275 4483 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m
-(y)g(startup)f(\014les)g(are)h(read.)275 4618 y(When)j(a)i(command)e
+Ft('.)275 4393 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m
+(y)g(startup)f(\014les)g(are)h(read.)275 4524 y(When)j(a)i(command)e
 (that)i(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h
-(\(see)g(Section)g(3.8)g([Shell)150 4727 y(Scripts],)25
+(\(see)g(Section)g(3.8)g([Shell)150 4633 y(Scripts],)25
 b(page)e(32\),)j Fs(rbash)c Ft(turns)g(o\013)i(an)m(y)f(restrictions)h
 (in)f(the)g(shell)h(spa)m(wned)e(to)i(execute)g(the)g(script.)150
-4986 y Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)275 5230
+4880 y Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)275 5121
 y Ft(Starting)21 b(Bash)g(with)f(the)h(`)p Fs(--posix)p
 Ft(')e(command-line)j(option)f(or)g(executing)h(`)p Fs(set)30
-b(-o)f(posix)p Ft(')20 b(while)150 5340 y(Bash)33 b(is)f(running)f
-(will)i(cause)g(Bash)f(to)i(conform)e(more)h(closely)h(to)f(the)g
-Fl(posix)e Ft(1003.2)k(standard)d(b)m(y)p eop end
-%%Page: 79 85
-TeXDict begin 79 84 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(79)150 299 y(c)m(hanging)38
-b(the)f(b)s(eha)m(vior)g(to)g(matc)m(h)h(that)f(sp)s(eci\014ed)g(b)m(y)
-f Fl(posix)g Ft(in)h(areas)g(where)g(the)g(Bash)g(default)150
-408 y(di\013ers.)275 545 y(When)30 b(in)m(v)m(ok)m(ed)h(as)g
-Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g Fl(posix)e Ft(mo)s(de)h(after)h
-(reading)g(the)f(startup)g(\014les.)275 682 y(The)f(follo)m(wing)j
-(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)p Fl(posix)h
-Ft(mo)s(de')h(is)f(in)g(e\013ect:)199 818 y(1.)61 b(When)28
-b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e(longer)h(exists,)h(Bash)
-f(will)g(re-searc)m(h)h Fs($PATH)d Ft(to)i(\014nd)330
-928 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5
-b(ailable)33 b(with)d(`)p Fs(shopt)f(-s)h(checkhash)p
-Ft('.)199 1063 y(2.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g
-(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h
-(with)f(a)330 1173 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
-1308 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
+b(-o)f(posix)p Ft(')20 b(while)150 5230 y(Bash)26 b(is)g(running)e
+(will)j(cause)f(Bash)g(to)h(conform)f(more)g(closely)h(to)g(the)f
+Fl(posix)f Ft(standard)g(b)m(y)h(c)m(hanging)150 5340
+y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)g(sp)s(eci\014ed)f(b)m
+(y)g Fl(posix)g Ft(in)g(areas)h(where)f(the)h(Bash)f(default)h
+(di\013ers.)p eop end
+%%Page: 81 87
+TeXDict begin 81 86 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(81)275 299 y(When)30
+b(in)m(v)m(ok)m(ed)h(as)g Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g
+Fl(posix)e Ft(mo)s(de)h(after)h(reading)g(the)f(startup)g(\014les.)275
+429 y(The)f(follo)m(wing)j(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)p
+Fl(posix)h Ft(mo)s(de')h(is)f(in)g(e\013ect:)199 560
+y(1.)61 b(When)28 b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e
+(longer)h(exists,)h(Bash)f(will)g(re-searc)m(h)h Fs($PATH)d
+Ft(to)i(\014nd)330 669 y(the)i(new)e(lo)s(cation.)43
+b(This)29 b(is)i(also)g(a)m(v)-5 b(ailable)33 b(with)d(`)p
+Fs(shopt)f(-s)h(checkhash)p Ft('.)199 800 y(2.)61 b(The)42
+b(message)h(prin)m(ted)e(b)m(y)h(the)g(job)g(con)m(trol)i(co)s(de)e
+(and)f(builtins)h(when)f(a)h(job)g(exits)h(with)f(a)330
+909 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
+1040 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
 m(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e
-(is)330 1418 y(`Stopp)s(ed\()p Fq(signame)5 b Ft(\)',)31
+(is)330 1149 y(`Stopp)s(ed\()p Fq(signame)5 b Ft(\)',)31
 b(where)f Fq(signame)36 b Ft(is,)31 b(for)f(example,)h
-Fs(SIGTSTP)p Ft(.)199 1554 y(4.)61 b(The)27 b Fs(bg)g
+Fs(SIGTSTP)p Ft(.)199 1280 y(4.)61 b(The)27 b Fs(bg)g
 Ft(builtin)g(uses)g(the)h(required)f(format)h(to)g(describ)s(e)f(eac)m
-(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330 1663
+(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330 1390
 y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g(indication)h(of)f(whether)f
 (the)h(job)g(is)g(the)h(curren)m(t)e(or)h(previous)g(job.)199
-1799 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
+1520 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
 m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)
-330 1908 y(undergo)30 b(alias)h(expansion.)199 2044 y(6.)61
-b(The)39 b Fl(posix)f Ft(1003.2)k Fs(PS1)d Ft(and)f Fs(PS2)h
-Ft(expansions)g(of)g(`)p Fs(!)p Ft(')h(to)g(the)f(history)g(n)m(um)m(b)
-s(er)f(and)h(`)p Fs(!!)p Ft(')g(to)330 2153 y(`)p Fs(!)p
-Ft(')c(are)h(enabled,)h(and)e(parameter)g(expansion)h(is)f(p)s
-(erformed)f(on)h(the)h(v)-5 b(alues)35 b(of)h Fs(PS1)e
-Ft(and)h Fs(PS2)330 2263 y Ft(regardless)c(of)f(the)h(setting)g(of)g
-(the)f Fs(promptvars)e Ft(option.)199 2399 y(7.)61 b(The)30
-b Fl(posix)g Ft(1003.2)i(startup)e(\014les)h(are)f(executed)i(\()p
-Fs($ENV)p Ft(\))e(rather)g(than)g(the)g(normal)h(Bash)f(\014les.)199
-2534 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h(p)s(erformed)f(on)h
-(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g(rather)330
-2644 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h(on)e(the)h
-(line.)199 2779 y(9.)61 b(The)30 b(default)g(history)h(\014le)f(is)h(`)
-p Fs(~/.sh_history)p Ft(')c(\(this)k(is)f(the)g(default)h(v)-5
-b(alue)31 b(of)f Fs($HISTFILE)p Ft(\).)154 2915 y(10.)61
-b(The)23 b(output)f(of)i(`)p Fs(kill)29 b(-l)p Ft(')23
-b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h(single)g(line,)h
-(separated)e(b)m(y)g(spaces,)330 3024 y(without)30 b(the)h(`)p
-Fs(SIG)p Ft(')f(pre\014x.)154 3160 y(11.)61 b(The)30
-b Fs(kill)f Ft(builtin)h(do)s(es)g(not)h(accept)h(signal)f(names)f
-(with)g(a)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154 3295 y(12.)61
-b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g Fq(\014lename)k
-Ft(in)30 b Fs(.)g Fq(\014lename)36 b Ft(is)31 b(not)f(found.)154
-3431 y(13.)61 b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g
-(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h(expansion)f(results)f(in)h
-(an)330 3540 y(in)m(v)-5 b(alid)31 b(expression.)154
-3676 y(14.)61 b(Redirection)25 b(op)s(erators)f(do)g(not)g(p)s(erform)f
-(\014lename)h(expansion)g(on)g(the)g(w)m(ord)f(in)h(the)g(redirection)
-330 3786 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
-3921 y(15.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
-(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g(the)g(redirection.)154
-4057 y(16.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
-b(alid)35 b(shell)f Fs(name)p Ft(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)
-g(not)g(con)m(tain)g(c)m(haracters)330 4166 y(other)e(than)g(letters,)h
-(digits,)h(and)d(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h
-(digit.)49 b(Declaring)330 4276 y(a)31 b(function)f(with)g(an)g(in)m(v)
--5 b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
-(non-in)m(teractiv)m(e)j(shells.)154 4411 y(17.)61 b
-Fl(posix)27 b Ft(1003.2)k(sp)s(ecial)d(builtins)g(are)g(found)f(b)s
-(efore)h(shell)g(functions)f(during)g(command)h(lo)s(okup.)154
-4547 y(18.)61 b(If)33 b(a)h Fl(posix)f Ft(1003.2)j(sp)s(ecial)e
-(builtin)g(returns)e(an)i(error)f(status,)i(a)f(non-in)m(teractiv)m(e)i
-(shell)e(exits.)330 4656 y(The)43 b(fatal)j(errors)d(are)h(those)h
-(listed)f(in)g(the)g(POSIX.2)g(standard,)j(and)c(include)h(things)g
-(lik)m(e)330 4766 y(passing)25 b(incorrect)i(options,)g(redirection)f
-(errors,)g(v)-5 b(ariable)26 b(assignmen)m(t)g(errors)f(for)g
-(assignmen)m(ts)330 4876 y(preceding)30 b(the)h(command)f(name,)h(and)e
-(so)i(on.)154 5011 y(19.)61 b(If)34 b Fs(CDPATH)f Ft(is)h(set,)i(the)f
+330 1630 y(undergo)30 b(alias)h(expansion.)199 1760 y(6.)61
+b(The)38 b Fl(posix)h Fs(PS1)f Ft(and)g Fs(PS2)g Ft(expansions)g(of)i
+(`)p Fs(!)p Ft(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p
+Fs(!!)p Ft(')h(to)g(`)p Fs(!)p Ft(')h(are)330 1870 y(enabled,)26
+b(and)f(parameter)g(expansion)g(is)g(p)s(erformed)e(on)i(the)g(v)-5
+b(alues)25 b(of)g Fs(PS1)f Ft(and)h Fs(PS2)f Ft(regardless)330
+1979 y(of)31 b(the)f(setting)i(of)e(the)h Fs(promptvars)c
+Ft(option.)199 2110 y(7.)61 b(The)30 b Fl(posix)g Ft(startup)f(\014les)
+i(are)g(executed)g(\()p Fs($ENV)p Ft(\))f(rather)g(than)g(the)h(normal)
+f(Bash)g(\014les.)199 2240 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h
+(p)s(erformed)f(on)h(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g
+(rather)330 2350 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
+(on)e(the)h(line.)199 2480 y(9.)61 b(The)30 b(default)g(history)h
+(\014le)f(is)h(`)p Fs(~/.sh_history)p Ft(')c(\(this)k(is)f(the)g
+(default)h(v)-5 b(alue)31 b(of)f Fs($HISTFILE)p Ft(\).)154
+2611 y(10.)61 b(The)23 b(output)f(of)i(`)p Fs(kill)29
+b(-l)p Ft(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h
+(single)g(line,)h(separated)e(b)m(y)g(spaces,)330 2720
+y(without)30 b(the)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154
+2851 y(11.)61 b(The)30 b Fs(kill)f Ft(builtin)h(do)s(es)g(not)h(accept)
+h(signal)f(names)f(with)g(a)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154
+2981 y(12.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g
+Fq(\014lename)k Ft(in)30 b Fs(.)g Fq(\014lename)36 b
+Ft(is)31 b(not)f(found.)154 3112 y(13.)61 b(Non-in)m(teractiv)m(e)41
+b(shells)d(exit)h(if)f(a)g(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h
+(expansion)f(results)f(in)h(an)330 3221 y(in)m(v)-5 b(alid)31
+b(expression.)154 3352 y(14.)61 b(Redirection)25 b(op)s(erators)f(do)g
+(not)g(p)s(erform)f(\014lename)h(expansion)g(on)g(the)g(w)m(ord)f(in)h
+(the)g(redirection)330 3461 y(unless)30 b(the)g(shell)h(is)f(in)m
+(teractiv)m(e.)154 3592 y(15.)61 b(Redirection)31 b(op)s(erators)g(do)f
+(not)h(p)s(erform)e(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g
+(the)g(redirection.)154 3722 y(16.)61 b(F)-8 b(unction)35
+b(names)g(m)m(ust)f(b)s(e)g(v)-5 b(alid)35 b(shell)f
+Fs(name)p Ft(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)g(not)g(con)m(tain)g
+(c)m(haracters)330 3832 y(other)e(than)g(letters,)h(digits,)h(and)d
+(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h(digit.)49
+b(Declaring)330 3941 y(a)31 b(function)f(with)g(an)g(in)m(v)-5
+b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
+(non-in)m(teractiv)m(e)j(shells.)154 4072 y(17.)61 b
+Fl(posix)30 b Ft(sp)s(ecial)h(builtins)e(are)i(found)e(b)s(efore)h
+(shell)h(functions)f(during)f(command)h(lo)s(okup.)154
+4202 y(18.)61 b(If)24 b(a)g Fl(posix)g Ft(sp)s(ecial)h(builtin)f
+(returns)f(an)h(error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e
+(exits.)39 b(The)24 b(fatal)330 4312 y(errors)i(are)h(those)f(listed)h
+(in)f(the)h(POSIX)e(standard,)i(and)f(include)g(things)g(lik)m(e)i
+(passing)e(incorrect)330 4422 y(options,)43 b(redirection)d(errors,)i
+(v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i
+(preceding)f(the)330 4531 y(command)30 b(name,)h(and)f(so)g(on.)154
+4662 y(19.)61 b(If)34 b Fs(CDPATH)f Ft(is)h(set,)i(the)f
 Fs(cd)f Ft(builtin)g(will)g(not)h(implicitly)h(app)s(end)c(the)j
-(curren)m(t)f(directory)h(to)g(it.)330 5121 y(This)29
+(curren)m(t)f(directory)h(to)g(it.)330 4771 y(This)29
 b(means)g(that)h Fs(cd)f Ft(will)h(fail)g(if)g(no)f(v)-5
 b(alid)30 b(directory)g(name)f(can)h(b)s(e)f(constructed)h(from)f(an)m
-(y)h(of)330 5230 y(the)i(en)m(tries)g(in)f Fs($CDPATH)p
+(y)h(of)330 4881 y(the)i(en)m(tries)g(in)f Fs($CDPATH)p
 Ft(,)e(ev)m(en)j(if)g(the)f(a)h(directory)g(with)f(the)g(same)h(name)f
-(as)h(the)g(name)f(giv)m(en)330 5340 y(as)g(an)f(argumen)m(t)h(to)g
+(as)h(the)g(name)f(giv)m(en)330 4990 y(as)g(an)f(argumen)m(t)h(to)g
 Fs(cd)f Ft(exists)h(in)f(the)g(curren)m(t)g(directory)-8
-b(.)p eop end
-%%Page: 80 86
-TeXDict begin 80 85 bop 150 -116 a Ft(80)2572 b(Bash)31
-b(Reference)g(Man)m(ual)154 299 y(20.)61 b(A)31 b(non-in)m(teractiv)m
-(e)j(shell)d(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5
-b(ariable)32 b(assignmen)m(t)g(error)e(o)s(ccurs)330
-408 y(when)38 b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m(t)
-h(statemen)m(ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330
-518 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g
+b(.)154 5121 y(20.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h
+(with)e(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32
+b(assignmen)m(t)g(error)e(o)s(ccurs)330 5230 y(when)38
+b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m(t)h(statemen)m
+(ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330
+5340 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g
 (assign)f(a)h(v)-5 b(alue)31 b(to)g(a)g(readonly)f(v)-5
-b(ariable.)154 651 y(21.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e
-(exits)h(with)f(an)f(error)h(status)g(if)g(the)g(iteration)h(v)-5
-b(ariable)44 b(in)f(a)g Fs(for)330 760 y Ft(statemen)m(t)32
+b(ariable.)p eop end
+%%Page: 82 88
+TeXDict begin 82 87 bop 150 -116 a Ft(82)2572 b(Bash)31
+b(Reference)g(Man)m(ual)154 299 y(21.)61 b(A)43 b(non-in)m(teractiv)m
+(e)i(shell)e(exits)h(with)f(an)f(error)h(status)g(if)g(the)g(iteration)
+h(v)-5 b(ariable)44 b(in)f(a)g Fs(for)330 408 y Ft(statemen)m(t)32
 b(or)f(the)f(selection)i(v)-5 b(ariable)32 b(in)e(a)g
 Fs(select)f Ft(statemen)m(t)j(is)f(a)f(readonly)h(v)-5
-b(ariable.)154 893 y(22.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not)f
-(a)m(v)-5 b(ailable.)154 1026 y(23.)61 b(Assignmen)m(t)32
-b(statemen)m(ts)g(preceding)f Fl(posix)g Ft(1003.2)i(sp)s(ecial)f
-(builtins)e(p)s(ersist)h(in)f(the)i(shell)f(en-)330 1135
-y(vironmen)m(t)g(after)f(the)h(builtin)f(completes.)154
-1268 y(24.)61 b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f
-(function)g(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)
-330 1377 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
+b(ariable.)154 547 y(22.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not)f
+(a)m(v)-5 b(ailable.)154 685 y(23.)61 b(Assignmen)m(t)23
+b(statemen)m(ts)h(preceding)e Fl(posix)f Ft(sp)s(ecial)i(builtins)f(p)s
+(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 795
+y(after)31 b(the)f(builtin)g(completes.)154 933 y(24.)61
+b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f(function)g
+(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)330
+1043 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
 Fl(posix)e Ft(sp)s(ecial)i(builtin)f(command)g(had)g(b)s(een)g
-(executed.)154 1510 y(25.)61 b(The)38 b Fs(export)f Ft(and)g
+(executed.)154 1181 y(25.)61 b(The)38 b Fs(export)f Ft(and)g
 Fs(readonly)f Ft(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in)
-g(the)h(format)g(re-)330 1620 y(quired)30 b(b)m(y)g Fl(posix)f
-Ft(1003.2.)154 1752 y(26.)61 b(The)30 b Fs(trap)f Ft(builtin)h(displa)m
-(ys)g(signal)i(names)e(without)g(the)h(leading)g Fs(SIG)p
-Ft(.)154 1885 y(27.)61 b(The)39 b Fs(trap)e Ft(builtin)i(do)s(esn't)g
+g(the)h(format)g(re-)330 1291 y(quired)30 b(b)m(y)g Fl(posix)p
+Ft(.)154 1429 y(26.)61 b(The)30 b Fs(trap)f Ft(builtin)h(displa)m(ys)g
+(signal)i(names)e(without)g(the)h(leading)g Fs(SIG)p
+Ft(.)154 1568 y(27.)61 b(The)39 b Fs(trap)e Ft(builtin)i(do)s(esn't)g
 (c)m(hec)m(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e
-(signal)i(sp)s(eci\014cation)330 1995 y(and)30 b(rev)m(ert)i(the)e
+(signal)i(sp)s(eci\014cation)330 1677 y(and)30 b(rev)m(ert)i(the)e
 (signal)i(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g
-(is,)g(unless)f(that)h(argumen)m(t)330 2104 y(consists)e(solely)g(of)g
+(is,)g(unless)f(that)h(argumen)m(t)330 1787 y(consists)e(solely)g(of)g
 (digits)g(and)f(is)g(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38
 b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
-2214 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
+1897 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
 (osition,)f(they)g(should)f(use)h(`)p Fs(-)p Ft(')g(as)g(the)g(\014rst)
-f(argumen)m(t.)154 2346 y(28.)61 b(The)21 b Fs(.)h Ft(and)f
+f(argumen)m(t.)154 2035 y(28.)61 b(The)21 b Fs(.)h Ft(and)f
 Fs(source)f Ft(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f
 (directory)h(for)g(the)g(\014lename)f(argumen)m(t)330
-2456 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
-Fs(PATH)p Ft(.)154 2589 y(29.)61 b(Subshells)20 b(spa)m(wned)h(to)h
+2145 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
+Fs(PATH)p Ft(.)154 2283 y(29.)61 b(Subshells)20 b(spa)m(wned)h(to)h
 (execute)g(command)g(substitutions)f(inherit)g(the)g(v)-5
 b(alue)22 b(of)g(the)f(`)p Fs(-e)p Ft(')g(option)330
-2698 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34
+2393 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34
 b(not)i(in)e Fl(posix)g Ft(mo)s(de,)i(Bash)f(clears)h(the)f(`)p
-Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 2808 y(subshells.)154
-2941 y(30.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e
-(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 3073
+Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 2502 y(subshells.)154
+2641 y(30.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e
+(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 2779
 y(31.)61 b(When)43 b(the)g Fs(alias)f Ft(builtin)g(displa)m(ys)i(alias)
 g(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)
-330 3183 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p
-Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 3315 y(32.)61
+330 2889 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p
+Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 3027 y(32.)61
 b(When)40 b(the)g Fs(set)f Ft(builtin)h(is)g(in)m(v)m(ok)m(ed)h
 (without)f(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g
-(function)330 3425 y(names)30 b(and)g(de\014nitions.)154
-3558 y(33.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok)
+(function)330 3137 y(names)30 b(and)g(de\014nitions.)154
+3275 y(33.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok)
 m(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
-b(v)-5 b(alues)37 b(without)330 3667 y(quotes,)26 b(unless)d(they)i
+b(v)-5 b(alues)37 b(without)330 3385 y(quotes,)26 b(unless)d(they)i
 (con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)
-g(con)m(tains)i(nonprin)m(ting)330 3777 y(c)m(haracters.)154
-3910 y(34.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m
+g(con)m(tains)i(nonprin)m(ting)330 3494 y(c)m(haracters.)154
+3633 y(34.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m
 (ed)i(in)d Fq(logical)41 b Ft(mo)s(de,)36 b(and)f(the)g(pathname)g
-(constructed)g(from)330 4019 y Fs($PWD)i Ft(and)h(the)h(directory)f
+(constructed)g(from)330 3742 y Fs($PWD)i Ft(and)h(the)h(directory)f
 (name)h(supplied)e(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g
-(an)f(existing)330 4129 y(directory)-8 b(,)32 b Fs(cd)d
+(an)f(existing)330 3852 y(directory)-8 b(,)32 b Fs(cd)d
 Ft(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f
-Fq(ph)m(ysical)j Ft(mo)s(de.)154 4261 y(35.)61 b(When)20
+Fq(ph)m(ysical)j Ft(mo)s(de.)154 3990 y(35.)61 b(When)20
 b(the)h Fs(pwd)e Ft(builtin)h(is)g(supplied)g(the)g(`)p
 Fs(-P)p Ft(')g(option,)j(it)e(resets)g Fs($PWD)e Ft(to)i(a)g(pathname)f
-(con)m(taining)330 4371 y(no)30 b(symlinks.)154 4504
+(con)m(taining)330 4100 y(no)30 b(symlinks.)154 4238
 y(36.)61 b(The)36 b Fs(pwd)f Ft(builtin)h(v)m(eri\014es)h(that)g(the)f
 (v)-5 b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)
-m(t)f(directory)-8 b(,)330 4613 y(ev)m(en)31 b(if)f(it)h(is)g(not)f
+m(t)f(directory)-8 b(,)330 4348 y(ev)m(en)31 b(if)f(it)h(is)g(not)f
 (ask)m(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h(`)p
-Fs(-P)p Ft(')f(option.)154 4746 y(37.)61 b(When)35 b(listing)g(the)g
+Fs(-P)p Ft(')f(option.)154 4486 y(37.)61 b(When)35 b(listing)g(the)g
 (history)-8 b(,)36 b(the)f Fs(fc)g Ft(builtin)f(do)s(es)g(not)h
-(include)g(an)f(indication)i(of)f(whether)f(or)330 4855
+(include)g(an)f(indication)i(of)f(whether)f(or)330 4596
 y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154
-4988 y(38.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
-Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 5121 y(39.)61 b(The)37
+4734 y(38.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
+Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 4873 y(39.)61 b(The)37
 b Fs(type)g Ft(and)g Fs(command)f Ft(builtins)i(will)g(not)g(rep)s(ort)
 f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
-5230 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
+4982 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
 (execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)
-g(\014le)330 5340 y(found)i(in)h Fs($PATH)p Ft(.)p eop
+g(\014le)330 5092 y(found)i(in)h Fs($PATH)p Ft(.)154
+5230 y(40.)61 b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m
+(ok)m(e)i(the)e Fs(vi)g Ft(editor)h(directly)f(when)f(the)i(`)p
+Fs(v)p Ft(')f(command)g(is)g(run,)330 5340 y(instead)e(of)f(c)m(hec)m
+(king)i Fs($FCEDIT)d Ft(and)g Fs($EDITOR)p Ft(.)p eop
 end
-%%Page: 81 87
-TeXDict begin 81 86 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(81)154 299 y(40.)61
-b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m(ok)m(e)i(the)
-e Fs(vi)g Ft(editor)h(directly)f(when)f(the)i(`)p Fs(v)p
-Ft(')f(command)g(is)g(run,)330 408 y(instead)e(of)f(c)m(hec)m(king)i
-Fs($FCEDIT)d Ft(and)g Fs($EDITOR)p Ft(.)154 543 y(41.)61
+%%Page: 83 89
+TeXDict begin 83 88 bop 150 -116 a Ft(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(83)154 299 y(41.)61
 b(When)41 b(the)g Fs(xpg_echo)e Ft(option)i(is)g(enabled,)j(Bash)d(do)s
 (es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
-653 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54
+408 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54
 b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e)
-g(c)m(haracters)h(are)330 762 y(con)m(v)m(erted.)275
-922 y(There)j(is)g(other)h Fl(posix)f Ft(1003.2)j(b)s(eha)m(vior)e
-(that)g(Bash)g(do)s(es)f(not)h(implemen)m(t)g(b)m(y)f(default)h(ev)m
-(en)150 1031 y(when)29 b(in)h Fl(posix)g Ft(mo)s(de.)40
-b(Sp)s(eci\014cally:)199 1166 y(1.)61 b(The)30 b Fs(fc)f
-Ft(builtin)h(c)m(hec)m(ks)i Fs($EDITOR)c Ft(as)j(a)f(program)g(to)h
-(edit)g(history)f(en)m(tries)h(if)f Fs(FCEDIT)f Ft(is)h(unset,)330
-1275 y(rather)g(than)g(defaulting)h(directly)g(to)g Fs(ed)p
-Ft(.)40 b Fs(fc)30 b Ft(uses)g Fs(ed)g Ft(if)g Fs(EDITOR)f
-Ft(is)h(unset.)199 1410 y(2.)61 b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i
-(Bash)e(requires)g(the)g Fs(xpg_echo)e Ft(option)j(to)g(b)s(e)e
-(enabled)h(for)g(the)g Fs(echo)f Ft(builtin)330 1519
-y(to)j(b)s(e)f(fully)g(conforman)m(t.)275 1679 y(Bash)66
-b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e Fl(posix)p
-Ft(-conforman)m(t)h(b)m(y)f(default,)77 b(b)m(y)66 b(sp)s(ecifying)h
-(the)150 1788 y(`)p Fs(--enable-strict-posix-def)o(ault)o
-Ft(')i(to)76 b Fs(configure)c Ft(when)i(building)g(\(see)i(Section)f
-(10.8)150 1898 y([Optional)31 b(F)-8 b(eatures],)32 b(page)f(121\).)p
-eop end
-%%Page: 82 88
-TeXDict begin 82 87 bop 150 -116 a Ft(82)2572 b(Bash)31
+g(c)m(haracters)h(are)330 518 y(con)m(v)m(erted.)275
+677 y(There)e(is)g(other)h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash)g
+(do)s(es)f(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)
+150 787 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199
+922 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i
+Fs($EDITOR)c Ft(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
+(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 1031 y(rather)g(than)g(defaulting)
+h(directly)g(to)g Fs(ed)p Ft(.)40 b Fs(fc)30 b Ft(uses)g
+Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 1166 y(2.)61
+b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g
+Fs(xpg_echo)e Ft(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
+Fs(echo)f Ft(builtin)330 1275 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
+1435 y(Bash)66 b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e
+Fl(posix)p Ft(-conforman)m(t)h(b)m(y)f(default,)77 b(b)m(y)66
+b(sp)s(ecifying)h(the)150 1544 y(`)p Fs(--enable-strict-posix-def)o
+(ault)o Ft(')i(to)76 b Fs(configure)c Ft(when)i(building)g(\(see)i
+(Section)f(10.8)150 1654 y([Optional)31 b(F)-8 b(eatures],)32
+b(page)f(123\).)p eop end
+%%Page: 84 90
+TeXDict begin 84 89 bop 150 -116 a Ft(84)2572 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 83 89
-TeXDict begin 83 88 bop 150 -116 a Ft(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2571 b(83)150 299 y Fo(7)80 b(Job)54
+%%Page: 85 91
+TeXDict begin 85 90 bop 150 -116 a Ft(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(85)150 299 y Fo(7)80 b(Job)54
 b(Con)l(trol)275 516 y Ft(This)34 b(c)m(hapter)i(discusses)f(what)g
 (job)g(con)m(trol)i(is,)g(ho)m(w)e(it)h(w)m(orks,)h(and)e(ho)m(w)g
 (Bash)h(allo)m(ws)g(y)m(ou)g(to)150 625 y(access)c(its)e(facilities.)
@@ -10369,8 +10382,8 @@ i(or)e(using)f(a)150 5340 y(substring)29 b(that)i(app)s(ears)f(in)g
 (its)h(command)f(line.)41 b(F)-8 b(or)31 b(example,)g(`)p
 Fs(\045ce)p Ft(')f(refers)g(to)h(a)g(stopp)s(ed)e Fs(ce)h
 Ft(job.)p eop end
-%%Page: 84 90
-TeXDict begin 84 89 bop 150 -116 a Ft(84)2572 b(Bash)31
+%%Page: 86 92
+TeXDict begin 86 91 bop 150 -116 a Ft(86)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y(Using)c(`)p Fs(\045?ce)p
 Ft(',)g(on)f(the)h(other)g(hand,)g(refers)f(to)h(an)m(y)g(job)g(con)m
 (taining)h(the)f(string)f(`)p Fs(ce)p Ft(')h(in)f(its)h(command)150
@@ -10391,7 +10404,7 @@ g(to)g(not)g(in)m(terrupt)150 1119 y(an)m(y)g(other)g(output.)39
 b(If)24 b(the)i(`)p Fs(-b)p Ft(')e(option)i(to)f(the)g
 Fs(set)f Ft(builtin)h(is)g(enabled,)h(Bash)f(rep)s(orts)f(suc)m(h)h(c)m
 (hanges)150 1228 y(immediately)31 b(\(see)f(Section)g(4.3)g([The)f(Set)
-h(Builtin],)g(page)g(51\).)42 b(An)m(y)29 b(trap)g(on)g
+h(Builtin],)g(page)g(53\).)42 b(An)m(y)29 b(trap)g(on)g
 Fs(SIGCHLD)f Ft(is)h(executed)150 1338 y(for)h(eac)m(h)i(c)m(hild)e
 (pro)s(cess)g(that)h(exits.)275 1474 y(If)k(an)h(attempt)h(to)g(exit)g
 (Bash)g(is)f(made)g(while)g(jobs)g(are)g(stopp)s(ed,)h(the)f(shell)h
@@ -10439,9 +10452,9 @@ Fl(id)g Ft(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)630
 5179 y Fs(-r)384 b Ft(Restrict)31 b(output)f(to)i(running)c(jobs.)630
 5340 y Fs(-s)384 b Ft(Restrict)31 b(output)f(to)i(stopp)s(ed)d(jobs.)p
 eop end
-%%Page: 85 91
-TeXDict begin 85 90 bop 150 -116 a Ft(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2571 b(85)630 299 y(If)23 b Fq(jobsp)s(ec)28
+%%Page: 87 93
+TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(87)630 299 y(If)23 b Fq(jobsp)s(ec)28
 b Ft(is)c(giv)m(en,)i(output)d(is)h(restricted)g(to)g(information)g(ab)
 s(out)f(that)h(job.)39 b(If)23 b Fq(jobsp)s(ec)630 408
 y Ft(is)30 b(not)h(supplied,)e(the)i(status)g(of)f(all)h(jobs)f(is)h
@@ -10518,8 +10531,8 @@ Ft(signal.)41 b(The)30 b(`)p Fs(-f)p Ft(')630 5043 y(option)h(means)f
 Fq(jobsp)s(ec)j Ft(argu-)150 5340 y(men)m(ts.)41 b(They)30
 b(m)m(ust)g(b)s(e)g(supplied)f(pro)s(cess)h Fl(id)p Ft(s.)p
 eop end
-%%Page: 86 92
-TeXDict begin 86 91 bop 150 -116 a Ft(86)2572 b(Bash)31
+%%Page: 88 94
+TeXDict begin 88 93 bop 150 -116 a Ft(88)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fr(7.3)68 b(Job)45
 b(Con)l(trol)h(V)-11 b(ariables)150 543 y Fs(auto_resume)630
 653 y Ft(This)31 b(v)-5 b(ariable)32 b(con)m(trols)g(ho)m(w)g(the)f
@@ -10542,15 +10555,15 @@ Ft(',)d(the)i(string)g(supplied)e(needs)i(to)g(matc)m(h)h(a)f
 62 b(The)37 b(`)p Fs(substring)p Ft(')e(v)-5 b(alue)38
 b(pro)m(vides)f(functionalit)m(y)i(analogous)g(to)630
 1639 y(the)f(`)p Fs(\045?)p Ft(')f(job)h Fl(id)f Ft(\(see)i(Section)f
-(7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(83\).)64
+(7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(85\).)64
 b(If)37 b(set)h(to)h(an)m(y)630 1748 y(other)32 b(v)-5
 b(alue,)32 b(the)g(supplied)e(string)i(m)m(ust)f(b)s(e)g(a)h(pre\014x)f
 (of)h(a)g(stopp)s(ed)e(job's)i(name;)g(this)630 1858
 y(pro)m(vides)e(functionalit)m(y)i(analogous)g(to)f(the)g(`)p
 Fs(\045)p Ft(')f(job)g Fl(id)p Ft(.)p eop end
-%%Page: 87 93
-TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(87)150 299 y Fo(8)80
+%%Page: 89 95
+TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(89)150 299 y Fo(8)80
 b(Command)54 b(Line)f(Editing)275 539 y Ft(This)39 b(c)m(hapter)h
 (describ)s(es)g(the)g(basic)g(features)g(of)h(the)f Fl(gnu)f
 Ft(command)h(line)g(editing)h(in)m(terface.)150 648 y(Command)25
@@ -10618,7 +10631,7 @@ a Fg(i)351 3043 y Ft(,)47 b(and)612 3040 y Fg(h)p 637
 2987 148 4 v 637 3043 a Ff(T)-6 b(AB)p 637 3059 V 780
 3040 a Fg(i)853 3043 y Ft(all)45 b(stand)e(for)g(themselv)m(es)i(when)d
 (seen)i(in)f(this)g(text,)48 b(or)43 b(in)g(an)h(init)f(\014le)h(\(see)
-150 3153 y(Section)37 b(8.3)g([Readline)g(Init)f(File],)j(page)e(90\).)
+150 3153 y(Section)37 b(8.3)g([Readline)g(Init)f(File],)j(page)e(92\).)
 59 b(If)36 b(y)m(our)g(k)m(eyb)s(oard)g(lac)m(ks)h(a)2897
 3150 y Fg(h)p 2921 3097 144 4 v 2921 3153 a Ff(LFD)p
 2921 3168 V 3061 3150 a Fg(i)3127 3153 y Ft(k)m(ey)-8
@@ -10663,8 +10676,8 @@ b(If)32 b(y)m(ou)h(mist)m(yp)s(e)g(a)150 5340 y(c)m(haracter,)f(y)m(ou)
 f(can)g(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)
 f(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)p eop
 end
-%%Page: 88 94
-TeXDict begin 88 93 bop 150 -116 a Ft(88)2572 b(Bash)31
+%%Page: 90 96
+TeXDict begin 90 95 bop 150 -116 a Ft(90)2572 b(Bash)31
 b(Reference)g(Man)m(ual)275 299 y(Sometimes)g(y)m(ou)g(ma)m(y)h(mist)m
 (yp)s(e)e(a)i(c)m(haracter,)g(and)e(not)i(notice)g(the)f(error)f(un)m
 (til)h(y)m(ou)g(ha)m(v)m(e)h(t)m(yp)s(ed)150 408 y(sev)m(eral)e(other)f
@@ -10729,9 +10742,9 @@ g(w)m(ord.)150 4922 y Fj(C-l)336 b Ft(Clear)31 b(the)f(screen,)h
 b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m
 (haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150
 5340 y(w)m(ords.)p eop end
-%%Page: 89 95
-TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(89)150 299 y Fk(8.2.3)63
+%%Page: 91 97
+TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(91)150 299 y Fk(8.2.3)63
 b(Readline)40 b(Killing)i(Commands)275 566 y Fq(Killing)j
 Ft(text)39 b(means)e(to)h(delete)g(the)g(text)g(from)f(the)g(line,)j
 (but)d(to)h(sa)m(v)m(e)h(it)e(a)m(w)m(a)m(y)j(for)d(later)h(use,)150
@@ -10805,13 +10818,13 @@ b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fj(C-d)150
 (t)m(yp)s(e)h(`)p Fs(M-1)29 b(0)h(C-d)p Ft(',)39 b(whic)m(h)e(will)h
 (delete)h(the)e(next)h(ten)150 5340 y(c)m(haracters)32
 b(on)e(the)h(input)e(line.)p eop end
-%%Page: 90 96
-TeXDict begin 90 95 bop 150 -116 a Ft(90)2572 b(Bash)31
+%%Page: 92 98
+TeXDict begin 92 97 bop 150 -116 a Ft(92)2572 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fk(8.2.5)63 b(Searc)m(hing)40
 b(for)i(Commands)g(in)f(the)g(History)275 548 y Ft(Readline)23
 b(pro)m(vides)g(commands)f(for)h(searc)m(hing)h(through)e(the)h
 (command)g(history)f(\(see)i(Section)g(9.1)150 657 y([Bash)37
-b(History)h(F)-8 b(acilities],)42 b(page)37 b(113\))i(for)d(lines)h
+b(History)h(F)-8 b(acilities],)42 b(page)37 b(115\))i(for)d(lines)h
 (con)m(taining)i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36
 b(are)i(t)m(w)m(o)150 767 y(searc)m(h)31 b(mo)s(des:)40
 b Fq(incremen)m(tal)35 b Ft(and)30 b Fq(non-incremen)m(tal)p
@@ -10891,11 +10904,11 @@ b(lines)g(are)150 5340 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
 (a)g(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)41
 b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)p
 eop end
-%%Page: 91 97
-TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(91)150 299 y(conditional)43
+%%Page: 93 99
+TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(93)150 299 y(conditional)43
 b(constructs)e(\(see)i(Section)f(8.3.2)h([Conditional)f(Init)f
-(Constructs],)j(page)f(95\).)74 b(Other)150 408 y(lines)31
+(Constructs],)j(page)f(97\).)74 b(Other)150 408 y(lines)31
 b(denote)g(v)-5 b(ariable)31 b(settings)g(and)f(k)m(ey)h(bindings.)150
 579 y(V)-8 b(ariable)32 b(Settings)630 689 y(Y)-8 b(ou)41
 b(can)g(mo)s(dify)e(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g
@@ -10920,7 +10933,7 @@ b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
 2176 y(The)37 b Fs(bind)30 b(-V)37 b Ft(command)g(lists)i(the)f(curren)
 m(t)f(Readline)i(v)-5 b(ariable)38 b(names)g(and)f(v)-5
 b(alues.)630 2285 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page)
-g(39.)630 2423 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g
+g(41.)630 2423 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g
 (is)g(c)m(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5
 b(ariables.)630 2590 y Fs(bell-style)1110 2700 y Ft(Con)m(trols)44
 b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h
@@ -10958,8 +10971,8 @@ b(alue)1110 5230 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
 b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
 5340 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
 Fs(100)p Ft(.)p eop end
-%%Page: 92 98
-TeXDict begin 92 97 bop 150 -116 a Ft(92)2572 b(Bash)31
+%%Page: 94 100
+TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y Fs(convert-meta)1110
 408 y Ft(If)22 b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m
 (v)m(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
@@ -11019,7 +11032,7 @@ Ft('.)69 b(The)1110 4390 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
 (terminate)j(an)f(incremen)m(tal)1110 4755 y(searc)m(h)25
 b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g
 (command)1110 4865 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i
-(page)c(90\).)73 b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110
+(page)c(92\).)73 b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110
 4975 y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m
 (haracters)2494 4972 y Fg(h)p 2518 4919 V 2518 4975 a
 Ff(ESC)p 2518 4990 V 2652 4972 a Fg(i)2713 4975 y Ft(and)f
@@ -11028,9 +11041,9 @@ Fj(C-J)g Ft(will)h(terminate)g(an)1110 5084 y(incremen)m(tal)g(searc)m
 (the)g(curren)m(t)f(k)m(eymap)h(for)g(k)m(ey)g(binding)f(com-)1110
 5340 y(mands.)81 b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h
 Fs(emacs)p Ft(,)i Fs(emacs-standard)p Ft(,)p eop end
-%%Page: 93 99
-TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(93)1110 299 y Fs(emacs-meta)p
+%%Page: 95 101
+TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(95)1110 299 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 408 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
@@ -11098,8 +11111,8 @@ b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g(immediately)i
 (instead)e(of)h(ring-)1110 5340 y(ing)g(the)f(b)s(ell.)41
 b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fs(off)p
 Ft('.)p eop end
-%%Page: 94 100
-TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31
+%%Page: 96 102
+TeXDict begin 96 101 bop 150 -116 a Ft(96)2572 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y Fs(visible-stats)1110
 408 y Ft(If)g(set)i(to)f(`)p Fs(on)p Ft(',)h(a)f(c)m(haracter)i
 (denoting)e(a)g(\014le's)g(t)m(yp)s(e)g(is)g(app)s(ended)e(to)j(the)
@@ -11127,7 +11140,7 @@ b Fs(bind)30 b(-p)42 b Ft(command)h(displa)m(ys)g(Readline)g(function)g
 (names)g(and)f(bindings)g(in)h(a)630 2045 y(format)37
 b(that)h(can)f(put)f(directly)i(in)m(to)g(an)f(initialization)j
 (\014le.)60 b(See)38 b(Section)f(4.2)i([Bash)630 2155
-y(Builtins],)31 b(page)g(39.)630 2306 y Fq(k)m(eyname)5
+y(Builtins],)31 b(page)g(41.)630 2306 y Fq(k)m(eyname)5
 b Ft(:)42 b Fq(function-name)35 b Ft(or)c Fq(macro)1110
 2415 y(k)m(eyname)k Ft(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
 (elled)e(out)h(in)g(English.)39 b(F)-8 b(or)30 b(example:)1350
@@ -11176,9 +11189,9 @@ f(the)h(text)g(`)p Fs(Function)d(Key)i(1)p Ft('.)630
 5230 y(The)f(follo)m(wing)i Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f
 (sequences)g(are)g(a)m(v)-5 b(ailable)32 b(when)d(sp)s(ecifying)630
 5340 y(k)m(ey)i(sequences:)p eop end
-%%Page: 95 101
-TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(95)630 299 y Fj(\\C-)336
+%%Page: 97 103
+TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(97)630 299 y Fj(\\C-)336
 b Ft(con)m(trol)32 b(pre\014x)630 447 y Fj(\\M-)336 b
 Ft(meta)31 b(pre\014x)630 596 y Fj(\\e)384 b Ft(an)30
 b(escap)s(e)h(c)m(haracter)630 744 y Fj(\\\\)384 b Ft(bac)m(kslash)630
@@ -11236,8 +11249,8 @@ b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
 b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)g(if)g(Readline)h(is)f
 (starting)h(out)1110 5340 y(in)k Fs(emacs)f Ft(mo)s(de.)p
 eop end
-%%Page: 96 102
-TeXDict begin 96 101 bop 150 -116 a Ft(96)2572 b(Bash)31
+%%Page: 98 104
+TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y Fs(term)288 b Ft(The)26
 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e(used)g(to)i(include)f
 (terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 408 y(ings,)38
@@ -11276,9 +11289,9 @@ b(Sample)41 b(Init)g(File)275 3427 y Ft(Here)31 b(is)f(an)g(example)i
 (of)e(an)g Fq(inputrc)35 b Ft(\014le.)42 b(This)29 b(illustrates)j(k)m
 (ey)f(binding,)f(v)-5 b(ariable)31 b(assignmen)m(t,)150
 3537 y(and)f(conditional)h(syn)m(tax.)p eop end
-%%Page: 97 103
-TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(97)390 408 y Fs(#)47
+%%Page: 99 105
+TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2107 b(99)390 408 y Fs(#)47
 b(This)g(file)g(controls)e(the)i(behaviour)e(of)j(line)e(input)h
 (editing)e(for)390 518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h
 (Readline)f(library.)93 b(Existing)390 628 y(#)47 b(programs)f(include)
@@ -11307,8 +11320,8 @@ y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)390
 4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode)
 390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390
 5340 y(#"\\M-\\C-[C":)g(forward-char)p eop end
-%%Page: 98 104
-TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
+%%Page: 100 106
+TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
 b(Reference)g(Man)m(ual)390 299 y Fs(#"\\M-\\C-[A":)331
 b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390
 628 y(C-q:)47 b(quoted-insert)390 847 y($endif)390 1066
@@ -11342,9 +11355,9 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
 (completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
 (he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
 (completion-query-items)42 b(150)p eop end
-%%Page: 99 105
-TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(99)390 299 y Fs(#)47
+%%Page: 101 107
+TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(101)390 299 y Fs(#)47
 b(For)g(FTP)390 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
 628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390
 847 y($endif)150 1086 y Fr(8.4)68 b(Bindable)45 b(Readline)i(Commands)
@@ -11354,7 +11367,7 @@ b(Y)-8 b(ou)150 1433 y(can)29 b(list)g(y)m(our)g(k)m(ey)g(bindings)f(b)
 m(y)h(executing)g Fs(bind)h(-P)e Ft(or,)h(for)g(a)g(more)f(terse)i
 (format,)f(suitable)h(for)e(an)150 1543 y Fq(inputrc)34
 b Ft(\014le,)29 b Fs(bind)g(-p)p Ft(.)40 b(\(See)30 b(Section)f(4.2)h
-([Bash)g(Builtins],)g(page)g(39.\))41 b(Command)28 b(names)h(without)
+([Bash)g(Builtins],)g(page)g(41.\))41 b(Command)28 b(names)h(without)
 150 1652 y(an)h(accompan)m(ying)i(k)m(ey)f(sequence)g(are)g(un)m(b)s
 (ound)d(b)m(y)i(default.)275 1780 y(In)25 b(the)h(follo)m(wing)i
 (descriptions,)f Fq(p)s(oin)m(t)h Ft(refers)e(to)h(the)f(curren)m(t)g
@@ -11390,8 +11403,8 @@ b(this)g(line)h(is)f(non-empt)m(y)-8 b(,)26 b(add)c(it)630
 5340 y(to)27 b(the)f(history)g(list)h(according)g(to)g(the)f(setting)i
 (of)e(the)g Fs(HISTCONTROL)d Ft(and)j Fs(HISTIGNORE)p
 eop end
-%%Page: 100 106
-TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
+%%Page: 102 108
+TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y(v)-5 b(ariables.)42
 b(If)30 b(this)h(line)g(is)g(a)g(mo)s(di\014ed)e(history)i(line,)g
 (then)f(restore)i(the)f(history)f(line)h(to)630 408 y(its)g(original)g
@@ -11456,9 +11469,9 @@ f(command)h(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630
 Ft(.)38 b(Succes-)630 5340 y(siv)m(e)d(calls)h(to)f Fs(yank-last-arg)c
 Ft(mo)m(v)m(e)36 b(bac)m(k)g(through)d(the)i(history)g(list,)h
 (inserting)f(the)p eop end
-%%Page: 101 107
-TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(101)630 299 y(last)32
+%%Page: 103 109
+TeXDict begin 103 108 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(103)630 299 y(last)32
 b(argumen)m(t)f(of)g(eac)m(h)h(line)f(in)f(turn.)41 b(The)30
 b(history)h(expansion)f(facilities)j(are)e(used)f(to)630
 408 y(extract)i(the)e(last)i(argumen)m(t,)f(as)f(if)h(the)f(`)p
@@ -11517,8 +11530,8 @@ b(With)33 b(an)g(explicit)h(p)s(ositiv)m(e)g(n)m(umeric)f(argumen)m(t,)
 h(switc)m(hes)630 5340 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
 b(With)22 b(an)g(explicit)h(non-p)s(ositiv)m(e)f(n)m(umeric)g(argumen)m
 (t,)i(switc)m(hes)e(to)p eop end
-%%Page: 102 108
-TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31
+%%Page: 104 110
+TeXDict begin 104 109 bop 150 -116 a Ft(104)2527 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y(insert)f(mo)s(de.)41
 b(This)30 b(command)h(a\013ects)h(only)e Fs(emacs)f Ft(mo)s(de;)i
 Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 408
@@ -11580,9 +11593,9 @@ b(the)g(w)m(ord)g(follo)m(wing)h(p)s(oin)m(t)f(to)h(the)f(kill)h
 5340 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30
 b(default,)h(this)g(command)f(is)g(un)m(b)s(ound.)p eop
 end
-%%Page: 103 109
-TeXDict begin 103 108 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(103)150 299 y Fs(yank)29
+%%Page: 105 111
+TeXDict begin 105 110 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(105)150 299 y Fs(yank)29
 b(\(C-y\))630 408 y Ft(Y)-8 b(ank)31 b(the)f(top)h(of)g(the)f(kill)h
 (ring)f(in)m(to)i(the)e(bu\013er)g(at)h(p)s(oin)m(t.)150
 558 y Fs(yank-pop)d(\(M-y\))630 667 y Ft(Rotate)36 b(the)f(kill-ring,)i
@@ -11651,8 +11664,8 @@ Fq(n)630 5121 y Ft(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
 (ound)e(to)630 5337 y Fg(h)p 654 5284 V 654 5340 a Ff(T)-6
 b(AB)p 654 5355 V 798 5337 a Fg(i)828 5340 y Ft(,)30
 b(but)g(is)g(un)m(b)s(ound)e(b)m(y)i(default.)p eop end
-%%Page: 104 110
-TeXDict begin 104 109 bop 150 -116 a Ft(104)2527 b(Bash)31
+%%Page: 106 112
+TeXDict begin 106 111 bop 150 -116 a Ft(106)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(delete-char-or-list)25
 b(\(\))630 408 y Ft(Deletes)k(the)e(c)m(haracter)h(under)e(the)h
 (cursor)f(if)h(not)g(at)g(the)g(b)s(eginning)g(or)f(end)h(of)g(the)g
@@ -11709,9 +11722,9 @@ y Fk(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 5230 y Fs(start-kbd-macro)
 26 b(\(C-x)j(\(\))630 5340 y Ft(Begin)i(sa)m(ving)h(the)e(c)m
 (haracters)i(t)m(yp)s(ed)e(in)m(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)
 g(macro.)p eop end
-%%Page: 105 111
-TeXDict begin 105 110 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(105)150 299 y Fs(end-kbd-macro)27
+%%Page: 107 113
+TeXDict begin 107 112 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(107)150 299 y Fs(end-kbd-macro)27
 b(\(C-x)i(\)\))630 408 y Ft(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)
 m(yp)s(ed)f(in)m(to)i(the)e(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f
 (sa)m(v)m(e)i(the)630 518 y(de\014nition.)150 691 y Fs
@@ -11765,8 +11778,8 @@ b(\(M-C-]\))630 5230 y Ft(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
 g(that)630 5340 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
 (searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)p
 eop end
-%%Page: 106 112
-TeXDict begin 106 111 bop 150 -116 a Ft(106)2527 b(Bash)31
+%%Page: 108 114
+TeXDict begin 108 113 bop 150 -116 a Ft(108)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(insert-comment)26
 b(\(M-#\))630 408 y Ft(Without)36 b(a)g(n)m(umeric)g(argumen)m(t,)h
 (the)f(v)-5 b(alue)36 b(of)g(the)g Fs(comment-begin)c
@@ -11835,15 +11848,15 @@ Fs(*)p Ft(')630 4317 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g
 5072 y(page)e(17\).)150 5230 y Fs(history-expand-line)25
 b(\(M-^\))630 5340 y Ft(P)m(erform)30 b(history)h(expansion)f(on)g(the)
 h(curren)m(t)f(line.)p eop end
-%%Page: 107 113
-TeXDict begin 107 112 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(107)150 299 y Fs(magic-space)27
+%%Page: 109 115
+TeXDict begin 109 114 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(109)150 299 y Fs(magic-space)27
 b(\(\))630 408 y Ft(P)m(erform)c(history)g(expansion)g(on)g(the)g
 (curren)m(t)g(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)
-630 518 y([History)31 b(In)m(teraction],)i(page)e(115\).)150
+630 518 y([History)31 b(In)m(teraction],)i(page)e(117\).)150
 664 y Fs(alias-expand-line)26 b(\(\))630 774 y Ft(P)m(erform)i(alias)i
 (expansion)e(on)g(the)h(curren)m(t)f(line)h(\(see)g(Section)g(6.6)h
-([Aliases],)g(page)f(73\).)150 920 y Fs(history-and-alias-expand)o
+([Aliases],)g(page)f(75\).)150 920 y Fs(history-and-alias-expand)o
 (-lin)o(e)24 b(\(\))630 1029 y Ft(P)m(erform)30 b(history)h(and)e
 (alias)j(expansion)e(on)g(the)h(curren)m(t)f(line.)150
 1176 y Fs(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630
@@ -11870,7 +11883,7 @@ Fl(posix)e Ft(1003.2)k(standard.)275 2947 y(In)i(order)g(to)i(switc)m
 Ft(and)g Fs(vi)g Ft(editing)h(mo)s(des,)h(use)f(the)g(`)p
 Fs(set)30 b(-o)150 3057 y(emacs)p Ft(')21 b(and)g(`)p
 Fs(set)29 b(-o)h(vi)p Ft(')21 b(commands)h(\(see)g(Section)h(4.3)g
-([The)e(Set)h(Builtin],)j(page)d(51\).)39 b(The)21 b(Readline)150
+([The)e(Set)h(Builtin],)j(page)d(53\).)39 b(The)21 b(Readline)150
 3166 y(default)31 b(is)f Fs(emacs)f Ft(mo)s(de.)275 3294
 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fs(vi)f
 Ft(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g(`insertion')g(mo)s
@@ -11889,7 +11902,7 @@ b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f(argumen)m(t)h(to)h
 y(tion)f(sp)s(eci\014cation)g(\(a)h Fq(compsp)s(ec)6
 b Ft(\))24 b(has)g(b)s(een)g(de\014ned)g(using)g(the)g
 Fs(complete)f Ft(builtin)h(\(see)h(Section)h(8.7)150
-4317 y([Programmable)e(Completion)g(Builtins],)h(page)f(109\),)j(the)c
+4317 y([Programmable)e(Completion)g(Builtins],)h(page)f(111\),)j(the)c
 (programmable)h(completion)g(facilities)i(are)150 4427
 y(in)m(v)m(ok)m(ed.)275 4555 y(First,)d(the)e(command)g(name)g(is)h
 (iden)m(ti\014ed.)37 b(If)21 b(a)g(compsp)s(ec)g(has)g(b)s(een)f
@@ -11906,10 +11919,10 @@ b(the)150 4774 y(command)33 b(w)m(ord)f(is)h(a)g(full)g(pathname,)h(a)f
 (hing)h(w)m(ords.)51 b(If)150 5230 y(a)37 b(compsp)s(ec)f(is)g(not)h
 (found,)f(the)h(default)f(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m
 (v)m(e)j(\(see)f(Section)g(8.4.6)150 5340 y([Commands)30
-b(F)-8 b(or)31 b(Completion],)g(page)g(103\))h(is)f(p)s(erformed.)p
+b(F)-8 b(or)31 b(Completion],)g(page)g(105\))h(is)f(p)s(erformed.)p
 eop end
-%%Page: 108 114
-TeXDict begin 108 113 bop 150 -116 a Ft(108)2527 b(Bash)31
+%%Page: 110 116
+TeXDict begin 110 115 bop 150 -116 a Ft(110)2527 b(Bash)31
 b(Reference)g(Man)m(ual)275 299 y(First,)g(the)g(actions)g(sp)s
 (eci\014ed)f(b)m(y)h(the)f(compsp)s(ec)h(are)g(used.)40
 b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h(pre\014xed)150
@@ -11919,7 +11932,7 @@ Fs(-d)p Ft(')g(option)h(is)f(used)g(for)g(\014lename)150
 518 y(or)30 b(directory)h(name)f(completion,)i(the)e(shell)h(v)-5
 b(ariable)31 b Fs(FIGNORE)d Ft(is)i(used)f(to)i(\014lter)g(the)f(matc)m
 (hes.)42 b(See)150 628 y(Section)31 b(5.2)h([Bash)e(V)-8
-b(ariables],)33 b(page)e(55,)g(for)f(a)h(description)g(of)f
+b(ariables],)33 b(page)e(57,)g(for)f(a)h(description)g(of)f
 Fs(FIGNORE)p Ft(.)275 765 y(An)m(y)f(completions)h(sp)s(eci\014ed)f(b)m
 (y)g(a)h(\014lename)f(expansion)h(pattern)f(to)h(the)g(`)p
 Fs(-G)p Ft(')f(option)h(are)f(gener-)150 874 y(ated)h(next.)40
@@ -11952,7 +11965,7 @@ Fs(-F)p Ft(')g(and)f(`)p Fs(-C)p Ft(')h(options)g(is)g(in)m(v)m(ok)m
 (ed,)h(the)f Fs(COMP_)150 2354 y(LINE)21 b Ft(and)h Fs(COMP_POINT)d
 Ft(v)-5 b(ariables)23 b(are)g(assigned)g(v)-5 b(alues)22
 b(as)h(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(5.2)h([Bash)
-150 2463 y(V)-8 b(ariables],)33 b(page)f(55\).)44 b(If)30
+150 2463 y(V)-8 b(ariables],)33 b(page)f(57\).)44 b(If)30
 b(a)i(shell)f(function)f(is)h(b)s(eing)g(in)m(v)m(ok)m(ed,)i(the)e
 Fs(COMP_WORDS)d Ft(and)j Fs(COMP_CWORD)150 2573 y Ft(v)-5
 b(ariables)40 b(are)g(also)h(set.)68 b(When)40 b(the)f(function)h(or)f
@@ -11971,7 +11984,7 @@ b(No)31 b(\014ltering)g(of)g(the)g(generated)h(completions)g(against)
 (shell)150 3367 y(facilities,)44 b(including)c(the)g
 Fs(compgen)d Ft(builtin)j(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section)
 f(8.7)h([Programmable)150 3477 y(Completion)28 b(Builtins],)g(page)g
-(109\),)i(to)e(generate)h(the)e(matc)m(hes.)41 b(It)27
+(111\),)i(to)e(generate)h(the)e(matc)m(hes.)41 b(It)27
 b(m)m(ust)g(put)g(the)g(p)s(ossible)g(comple-)150 3587
 y(tions)k(in)f(the)g Fs(COMPREPLY)e Ft(arra)m(y)j(v)-5
 b(ariable.)275 3724 y(Next,)23 b(an)m(y)e(command)f(sp)s(eci\014ed)g
@@ -12007,9 +12020,9 @@ b(dirnames)p Ft(')22 b(op-)150 5230 y(tion)29 b(w)m(as)f(supplied)f(to)
 i Fs(complete)d Ft(when)h(the)h(compsp)s(ec)g(w)m(as)g(de\014ned,)g
 (directory)g(name)h(completion)150 5340 y(is)h(attempted.)p
 eop end
-%%Page: 109 115
-TeXDict begin 109 114 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(109)275 299 y(If)30
+%%Page: 111 117
+TeXDict begin 111 116 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(111)275 299 y(If)30
 b(the)i(`)p Fs(-o)e(plusdirs)p Ft(')f(option)j(w)m(as)f(supplied)f(to)i
 Fs(complete)e Ft(when)g(the)h(compsp)s(ec)g(w)m(as)h(de\014ned,)150
 408 y(directory)k(name)f(completion)i(is)e(attempted)h(and)f(an)m(y)h
@@ -12082,13 +12095,13 @@ Fs(-r)p Ft(')g(option)630 5230 y(remo)m(v)m(es)29 b(a)f(completion)h
 (sp)s(eci\014cation)f(for)g(eac)m(h)g Fq(name)p Ft(,)h(or,)f(if)g(no)f
 Fq(name)5 b Ft(s)28 b(are)g(supplied,)630 5340 y(all)j(completion)h(sp)
 s(eci\014cations.)p eop end
-%%Page: 110 116
-TeXDict begin 110 115 bop 150 -116 a Ft(110)2527 b(Bash)31
+%%Page: 112 118
+TeXDict begin 112 117 bop 150 -116 a Ft(112)2527 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y(The)e(pro)s(cess)g(of)h(applying)g
 (these)g(completion)g(sp)s(eci\014cations)h(when)d(w)m(ord)i
 (completion)630 408 y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m
 (v)m(e)j(\(see)f(Section)g(8.6)g([Programmable)g(Completion],)630
-518 y(page)31 b(107\).)630 650 y(Other)41 b(options,)46
+518 y(page)31 b(109\).)630 650 y(Other)41 b(options,)46
 b(if)41 b(sp)s(eci\014ed,)j(ha)m(v)m(e)f(the)f(follo)m(wing)i
 (meanings.)75 b(The)41 b(argumen)m(ts)h(to)630 760 y(the)e(`)p
 Fs(-G)p Ft(',)j(`)p Fs(-W)p Ft(',)g(and)d(`)p Fs(-X)p
@@ -12132,7 +12145,7 @@ b(names.)41 b(Ma)m(y)31 b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i(`)p
 Fs(-a)p Ft('.)1110 4391 y Fs(arrayvar)96 b Ft(Arra)m(y)31
 b(v)-5 b(ariable)31 b(names.)1110 4546 y Fs(binding)144
 b Ft(Readline)30 b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h
-([Bindable)1590 4656 y(Readline)h(Commands],)f(page)h(99\).)1110
+([Bindable)1590 4656 y(Readline)h(Commands],)f(page)h(101\).)1110
 4811 y Fs(builtin)144 b Ft(Names)21 b(of)g(shell)f(builtin)h(commands.)
 37 b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 4921
 y(as)31 b(`)p Fs(-b)p Ft('.)1110 5075 y Fs(command)144
@@ -12140,9 +12153,9 @@ b Ft(Command)29 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
 (eci\014ed)f(as)i(`)p Fs(-c)p Ft('.)1110 5230 y Fs(directory)1590
 5340 y Ft(Directory)h(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
 (eci\014ed)g(as)g(`)p Fs(-d)p Ft('.)p eop end
-%%Page: 111 117
-TeXDict begin 111 116 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(111)1110 299 y Fs(disabled)96
+%%Page: 113 119
+TeXDict begin 113 118 bop 150 -116 a Ft(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(113)1110 299 y Fs(disabled)96
 b Ft(Names)31 b(of)g(disabled)f(shell)g(builtins.)1110
 458 y Fs(enabled)144 b Ft(Names)31 b(of)g(enabled)f(shell)g(builtins.)
 1110 617 y Fs(export)192 b Ft(Names)34 b(of)f(exp)s(orted)f(shell)h(v)
@@ -12155,11 +12168,11 @@ b Ft(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g
 (as)g(`)p Fs(-g)p Ft('.)1110 1362 y Fs(helptopic)1590
 1471 y Ft(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
 Fs(help)f Ft(builtin)g(\(see)h(Sec-)1590 1581 y(tion)31
-b(4.2)g([Bash)g(Builtins],)g(page)g(39\).)1110 1740 y
+b(4.2)g([Bash)g(Builtins],)g(page)g(41\).)1110 1740 y
 Fs(hostname)96 b Ft(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g
 (\014le)h(sp)s(eci\014ed)e(b)m(y)1590 1850 y(the)55 b
 Fs(HOSTFILE)e Ft(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h
-([Bash)1590 1959 y(V)-8 b(ariables],)32 b(page)f(55\).)1110
+([Bash)1590 1959 y(V)-8 b(ariables],)32 b(page)f(57\).)1110
 2118 y Fs(job)336 b Ft(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
 (activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s(eci-)1590
 2228 y(\014ed)f(as)g(`)p Fs(-j)p Ft('.)1110 2387 y Fs(keyword)144
@@ -12171,10 +12184,10 @@ b Ft(Service)31 b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s
 (eci\014ed)g(as)g(`)p Fs(-s)p Ft('.)1110 2863 y Fs(setopt)192
 b Ft(V)-8 b(alid)34 b(argumen)m(ts)f(for)f(the)h(`)p
 Fs(-o)p Ft(')g(option)g(to)h(the)f Fs(set)e Ft(builtin)1590
-2973 y(\(see)g(Section)h(4.3)f([The)f(Set)h(Builtin],)g(page)g(51\).)
+2973 y(\(see)g(Section)h(4.3)f([The)f(Set)h(Builtin],)g(page)g(53\).)
 1110 3132 y Fs(shopt)240 b Ft(Shell)40 b(option)g(names)g(as)g
 (accepted)i(b)m(y)e(the)g Fs(shopt)e Ft(builtin)1590
-3241 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(39\).)
+3241 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(41\).)
 1110 3400 y Fs(signal)192 b Ft(Signal)31 b(names.)1110
 3559 y Fs(stopped)144 b Ft(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
 (job)g(con)m(trol)i(is)f(activ)m(e.)1110 3718 y Fs(user)288
@@ -12197,8 +12210,8 @@ b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h
 Ft(is)e(executed)g(in)e(a)i(subshell)e(en)m(vironmen)m(t,)i(and)f(its)g
 (output)g(is)1110 5340 y(used)e(as)g(the)h(p)s(ossible)f(completions.)p
 eop end
-%%Page: 112 118
-TeXDict begin 112 117 bop 150 -116 a Ft(112)2527 b(Bash)31
+%%Page: 114 120
+TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31
 b(Reference)g(Man)m(ual)630 299 y Fs(-F)f Fj(function)1110
 408 y Ft(The)25 b(shell)i(function)e Fq(function)h Ft(is)g(executed)h
 (in)e(the)i(curren)m(t)e(shell)i(en)m(viron-)1110 518
@@ -12230,9 +12243,9 @@ b(an)f(attempt)h(is)f(made)g(to)630 2471 y(remo)m(v)m(e)h(a)e
 Ft(for)30 b(whic)m(h)g(no)g(sp)s(eci\014cation)h(exists,)630
 2580 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s
 (eci\014cation.)p eop end
-%%Page: 113 119
-TeXDict begin 113 118 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(113)150
+%%Page: 115 121
+TeXDict begin 115 120 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(115)150
 299 y Fo(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)275
 562 y Ft(This)32 b(c)m(hapter)i(describ)s(es)e(ho)m(w)h(to)h(use)f(the)
 g Fl(gnu)g Ft(History)h(Library)e(in)m(teractiv)m(ely)-8
@@ -12244,7 +12257,7 @@ Fl(gnu)f Ft(Readline)h(Library)f(Man)m(ual.)150 1062
 y Fr(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)275
 1316 y Ft(When)36 b(the)h(`)p Fs(-o)30 b(history)p Ft(')k(option)j(to)h
 (the)e Fs(set)g Ft(builtin)g(is)h(enabled)f(\(see)i(Section)f(4.3)g
-([The)g(Set)150 1425 y(Builtin],)32 b(page)g(51\),)h(the)e(shell)h(pro)
+([The)g(Set)150 1425 y(Builtin],)32 b(page)g(53\),)h(the)e(shell)h(pro)
 m(vides)f(access)h(to)g(the)f Fq(command)g(history)p
 Ft(,)h(the)f(list)h(of)f(commands)150 1535 y(previously)h(t)m(yp)s(ed.)
 47 b(The)33 b(v)-5 b(alue)33 b(of)f(the)h Fs(HISTSIZE)e
@@ -12271,7 +12284,7 @@ Fs($HISTSIZE)d Ft(lines)j(are)f(copied)150 2556 y(from)29
 b(the)i(history)e(list)i(to)g(the)f(\014le)g(named)f(b)m(y)h
 Fs($HISTFILE)p Ft(.)38 b(If)30 b(the)g Fs(histappend)d
 Ft(shell)j(option)g(is)g(set)150 2665 y(\(see)22 b(Section)g(4.2)g
-([Bash)g(Builtins],)h(page)f(39\),)j(the)c(lines)g(are)h(app)s(ended)d
+([Bash)g(Builtins],)h(page)f(41\),)j(the)c(lines)g(are)h(app)s(ended)d
 (to)j(the)f(history)g(\014le,)j(otherwise)150 2775 y(the)32
 b(history)f(\014le)g(is)h(o)m(v)m(erwritten.)45 b(If)31
 b Fs(HISTFILE)e Ft(is)j(unset,)f(or)h(if)f(the)h(history)f(\014le)g(is)
@@ -12293,7 +12306,7 @@ b(using)f(command-line)h(editing,)h(searc)m(h)f(commands)g(are)g(a)m(v)
 -5 b(ailable)33 b(in)e(eac)m(h)150 3720 y(editing)45
 b(mo)s(de)g(that)g(pro)m(vide)g(access)h(to)f(the)g(history)f(list)i
 (\(see)f(Section)h(8.4.2)g([Commands)e(F)-8 b(or)150
-3830 y(History],)31 b(page)h(99\).)275 3974 y(The)47
+3830 y(History],)31 b(page)h(101\).)275 3974 y(The)47
 b(shell)i(allo)m(ws)h(con)m(trol)f(o)m(v)m(er)h(whic)m(h)e(commands)g
 (are)h(sa)m(v)m(ed)g(on)f(the)h(history)f(list.)95 b(The)150
 4084 y Fs(HISTCONTROL)25 b Ft(and)j Fs(HISTIGNORE)e Ft(v)-5
@@ -12309,13 +12322,13 @@ b(sa)m(v)m(e)h(eac)m(h)f(line)g(of)f(a)h(m)m(ulti-line)g(command)f(in)g
 m(b)s(edded)f(newlines)h(instead)h(of)f(semicolons.)40
 b(The)23 b Fs(shopt)e Ft(builtin)i(is)h(used)150 4631
 y(to)31 b(set)g(these)g(options.)41 b(See)31 b(Section)g(4.2)g([Bash)g
-(Builtins],)g(page)g(39,)h(for)e(a)h(description)f(of)h
+(Builtins],)g(page)g(41,)h(for)e(a)h(description)f(of)h
 Fs(shopt)p Ft(.)150 4913 y Fr(9.2)68 b(Bash)45 b(History)h(Builtins)275
 5166 y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)i(builtin)e(commands)g
 (whic)m(h)g(manipulate)h(the)f(history)h(list)g(and)f(history)g
 (\014le.)150 5340 y Fs(fc)p eop end
-%%Page: 114 120
-TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31
+%%Page: 116 122
+TeXDict begin 116 121 bop 150 -116 a Ft(116)2527 b(Bash)31
 b(Reference)g(Man)m(ual)870 299 y Fs(fc)47 b([-e)g Fj(ename)11
 b Fs(])46 b([-nlr])g([)p Fj(first)11 b Fs(])45 b([)p
 Fj(last)11 b Fs(])870 408 y(fc)47 b(-s)g([)p Fj(pat)11
@@ -12359,7 +12372,7 @@ Fs(fc)f Ft(command)h(is)g Fs(r='fc)e(-s')p Ft(,)h(so)h(that)h(t)m
 (yping)f(`)p Fs(r)f(cc)p Ft(')630 2443 y(runs)35 b(the)h(last)h
 (command)f(b)s(eginning)g(with)g Fs(cc)f Ft(and)h(t)m(yping)g(`)p
 Fs(r)p Ft(')h(re-executes)h(the)e(last)630 2552 y(command)30
-b(\(see)h(Section)h(6.6)f([Aliases],)h(page)g(73\).)150
+b(\(see)h(Section)h(6.6)f([Aliases],)h(page)g(75\).)150
 2703 y Fs(history)870 2833 y(history)46 b([)p Fj(n)11
 b Fs(])870 2943 y(history)46 b(-c)870 3052 y(history)g(-d)h
 Fj(offset)870 3162 y Fs(history)f([-anrw])g([)p Fj(filename)11
@@ -12394,9 +12407,9 @@ b(of)h(the)f(curren)m(t)g(Bash)h(session\))g(to)g(the)g(history)f
 b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)1110
 5340 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f(Bash)h
 (session.)p eop end
-%%Page: 115 121
-TeXDict begin 115 120 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(115)630
+%%Page: 117 123
+TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(117)630
 299 y Fs(-r)384 b Ft(Read)26 b(the)h(curren)m(t)f(history)g(\014le)g
 (and)g(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)f(history)1110
 408 y(list.)630 571 y Fs(-w)384 b Ft(W)-8 b(rite)32 b(out)e(the)h
@@ -12446,7 +12459,7 @@ b(Only)29 b(`)p Fs(\\)p Ft(')i(and)f(`)p Fs(')p Ft(')g(ma)m(y)h(b)s(e)f
 (used)g(to)h(escap)s(e)g(the)f(history)g(expansion)h(c)m(haracter.)275
 3519 y(Sev)m(eral)40 b(shell)g(options)g(settable)h(with)e(the)h
 Fs(shopt)e Ft(builtin)h(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)150
-3629 y(page)32 b(39\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s
+3629 y(page)32 b(41\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s
 (eha)m(vior)h(of)g(history)g(expansion.)44 b(If)31 b(the)h
 Fs(histverify)d Ft(shell)150 3738 y(option)39 b(is)f(enabled,)i(and)e
 (Readline)g(is)h(b)s(eing)e(used,)j(history)e(substitutions)g(are)g
@@ -12473,8 +12486,8 @@ Fs(histchars)e Ft(v)-5 b(ariable.)150 5093 y Fk(9.3.1)63
 b(Ev)m(en)m(t)39 b(Designators)275 5340 y Ft(An)30 b(ev)m(en)m(t)h
 (designator)h(is)e(a)h(reference)g(to)g(a)f(command)h(line)f(en)m(try)h
 (in)f(the)h(history)f(list.)p eop end
-%%Page: 116 122
-TeXDict begin 116 121 bop 150 -116 a Ft(116)2527 b(Bash)31
+%%Page: 118 124
+TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(!)432 b Ft(Start)34
 b(a)f(history)h(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y)
 e(a)h(space,)h(tab,)f(the)g(end)f(of)630 408 y(the)i(line,)g(`)p
@@ -12539,9 +12552,9 @@ Fs(1-$)p Ft('.)39 b(It)28 b(is)g(not)g(an)f(error)630
 5230 y(to)j(use)g(`)p Fs(*)p Ft(')f(if)h(there)g(is)g(just)f(one)h(w)m
 (ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h
 (returned)e(in)630 5340 y(that)j(case.)p eop end
-%%Page: 117 123
-TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(117)150
+%%Page: 119 125
+TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(119)150
 299 y Fj(x)11 b Fs(*)373 b Ft(Abbreviates)31 b(`)p Fj(x)p
 Fs(-$)p Ft(')150 458 y Fj(x)p Fs(-)384 b Ft(Abbreviates)31
 b(`)p Fj(x)p Fs(-$)p Ft(')f(lik)m(e)h(`)p Fj(x)11 b Fs(*)p
@@ -12587,12 +12600,12 @@ Fs(gs/)p Fj(old)11 b Fs(/)p Fj(new)g Fs(/)p Ft(,)26 b(or)k(with)h(`)p
 Fs(&)p Ft('.)150 3935 y Fs(G)432 b Ft(Apply)30 b(the)g(follo)m(wing)i
 (`)p Fs(s)p Ft(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g
 (the)g(ev)m(en)m(t.)p eop end
-%%Page: 118 124
-TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31
+%%Page: 120 126
+TeXDict begin 120 125 bop 150 -116 a Ft(120)2527 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 119 125
-TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(119)150 299 y Fo(10)80
+%%Page: 121 127
+TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(121)150 299 y Fo(10)80
 b(Installing)52 b(Bash)275 535 y Ft(This)39 b(c)m(hapter)i(pro)m(vides)
 f(basic)g(instructions)g(for)g(installing)h(Bash)f(on)g(the)h(v)-5
 b(arious)40 b(supp)s(orted)150 645 y(platforms.)58 b(The)36
@@ -12672,8 +12685,8 @@ b(T)-8 b(o)32 b(also)g(remo)m(v)m(e)g(the)g(\014les)f(that)g
 Fs(configure)e Ft(created)j(\(so)g(y)m(ou)g(can)f(compile)150
 5340 y(Bash)g(for)f(a)g(di\013eren)m(t)h(kind)f(of)g(computer\),)h(t)m
 (yp)s(e)g(`)p Fs(make)e(distclean)p Ft('.)p eop end
-%%Page: 120 126
-TeXDict begin 120 125 bop 150 -116 a Ft(120)2527 b(Bash)31
+%%Page: 122 128
+TeXDict begin 122 127 bop 150 -116 a Ft(122)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fr(10.2)68 b(Compilers)46
 b(and)f(Options)275 560 y Ft(Some)40 b(systems)g(require)f(un)m(usual)g
 (options)h(for)g(compilation)i(or)e(linking)g(that)g(the)g
@@ -12750,9 +12763,9 @@ b(will)h(use)f Fq(P)-8 b(A)g(TH)75 b Ft(as)64 b(the)g(pre\014x)e(for)i
 (installing)h(programs)e(and)h(libraries.)150 5340 y(Do)s(cumen)m
 (tation)32 b(and)e(other)h(data)g(\014les)f(will)h(still)g(use)f(the)h
 (regular)f(pre\014x.)p eop end
-%%Page: 121 127
-TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(121)150 299 y Fr(10.5)68
+%%Page: 123 129
+TeXDict begin 123 128 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(123)150 299 y Fr(10.5)68
 b(Sp)t(ecifying)45 b(the)g(System)h(T)l(yp)t(e)275 539
 y Ft(There)35 b(ma)m(y)h(b)s(e)f(some)h(features)g Fs(configure)d
 Ft(can)j(not)g(\014gure)f(out)g(automatically)-8 b(,)41
@@ -12820,8 +12833,8 @@ b(T)-8 b(o)29 b(turn)e(o\013)h(the)h(default)f(use)g(of)g(a)h(pac)m(k-)
 b Ft('.)63 b(T)-8 b(o)40 b(con\014gure)g(Bash)f(without)h(a)g(feature)g
 (that)g(is)g(enabled)f(b)m(y)150 5340 y(default,)31 b(use)f(`)p
 Fs(--disable-)p Fj(feature)11 b Ft('.)p eop end
-%%Page: 122 128
-TeXDict begin 122 127 bop 150 -116 a Ft(122)2527 b(Bash)31
+%%Page: 124 130
+TeXDict begin 124 129 bop 150 -116 a Ft(124)2527 b(Bash)31
 b(Reference)g(Man)m(ual)275 299 y(Here)21 b(is)g(a)g(complete)h(list)g
 (of)f(the)g(`)p Fs(--enable-)p Ft(')e(and)h(`)p Fs(--with-)p
 Ft(')g(options)h(that)g(the)g(Bash)g Fs(configure)150
@@ -12889,9 +12902,9 @@ y Ft(This)h(builds)f(a)i(Bash)g(binary)f(that)h(pro)s(duces)e
 (pro\014ling)h(information)h(to)h(b)s(e)d(pro)s(cessed)630
 5340 y(b)m(y)g Fs(gprof)f Ft(eac)m(h)j(time)f(it)g(is)f(executed.)p
 eop end
-%%Page: 123 129
-TeXDict begin 123 128 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(123)150 299 y Fs(--enable-static-link)630
+%%Page: 125 131
+TeXDict begin 125 130 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(125)150 299 y Fs(--enable-static-link)630
 408 y Ft(This)37 b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically)
 -8 b(,)43 b(if)37 b Fs(gcc)g Ft(is)g(b)s(eing)g(used.)61
 b(This)37 b(could)h(b)s(e)630 518 y(used)30 b(to)h(build)e(a)i(v)m
@@ -12907,7 +12920,7 @@ p Ft(')150 1022 y(are)26 b(enabled)g(b)m(y)g(default,)h(unless)f(the)g
 (supp)s(ort.)150 1176 y Fs(--enable-alias)630 1285 y
 Ft(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h
 Fs(alias)f Ft(and)g Fs(unalias)e Ft(builtins)j(\(see)g(Sec-)630
-1395 y(tion)31 b(6.6)g([Aliases],)i(page)e(73\).)150
+1395 y(tion)31 b(6.6)g([Aliases],)i(page)e(75\).)150
 1548 y Fs(--enable-arith-for-comma)o(nd)630 1658 y Ft(Include)21
 b(supp)s(ort)g(for)g(the)i(alternate)g(form)f(of)g(the)g
 Fs(for)f Ft(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630
@@ -12915,11 +12928,11 @@ Fs(for)f Ft(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630
 (3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(9\).)150
 1921 y Fs(--enable-array-variables)630 2030 y Ft(Include)h(supp)s(ort)g
 (for)h(one-dimensional)h(arra)m(y)f(shell)h(v)-5 b(ariables)33
-b(\(see)h(Section)g(6.7)h([Ar-)630 2140 y(ra)m(ys],)c(page)g(74\).)150
+b(\(see)h(Section)g(6.7)h([Ar-)630 2140 y(ra)m(ys],)c(page)g(76\).)150
 2293 y Fs(--enable-bang-history)630 2403 y Ft(Include)36
 b(supp)s(ort)f(for)h Fs(csh)p Ft(-lik)m(e)h(history)g(substitution)f
 (\(see)h(Section)g(9.3)h([History)f(In-)630 2513 y(teraction],)c(page)e
-(115\).)150 2666 y Fs(--enable-brace-expansion)630 2776
+(117\).)150 2666 y Fs(--enable-brace-expansion)630 2776
 y Ft(Include)40 b Fs(csh)p Ft(-lik)m(e)h(brace)f(expansion)g(\()h
 Fs(b{a,b}c)2445 2772 y Fp(7!)2576 2776 y Fs(bac)30 b(bbc)39
 b Ft(\).)71 b(See)40 b(Section)h(3.5.1)630 2885 y([Brace)32
@@ -12945,17 +12958,17 @@ b(\(see)25 b(Section)h(3.2.4.2)h([Conditional)e(Con-)630
 630 4748 y Ft(Include)j(supp)s(ort)g(for)h(a)g Fs(csh)p
 Ft(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i Fs(pushd)p
 Ft(,)f Fs(popd)p Ft(,)g(and)f Fs(dirs)630 4858 y Ft(builtins)d(\(see)h
-(Section)g(6.8)h([The)e(Directory)i(Stac)m(k],)g(page)f(75\).)150
+(Section)g(6.8)h([The)e(Directory)i(Stac)m(k],)g(page)f(77\).)150
 5011 y Fs(--enable-disabled-builti)o(ns)630 5121 y Ft(Allo)m(w)40
 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m(ed)i(via)f(`)p
 Fs(builtin)29 b(xxx)p Ft(')37 b(ev)m(en)j(after)f Fs(xxx)e
 Ft(has)630 5230 y(b)s(een)31 b(disabled)g(using)g(`)p
 Fs(enable)d(-n)i(xxx)p Ft('.)43 b(See)32 b(Section)g(4.2)h([Bash)e
-(Builtins],)i(page)f(39,)630 5340 y(for)e(details)i(of)e(the)h
+(Builtins],)i(page)f(41,)630 5340 y(for)e(details)i(of)e(the)h
 Fs(builtin)d Ft(and)i Fs(enable)e Ft(builtin)i(commands.)p
 eop end
-%%Page: 124 130
-TeXDict begin 124 129 bop 150 -116 a Ft(124)2527 b(Bash)31
+%%Page: 126 132
+TeXDict begin 126 131 bop 150 -116 a Ft(126)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fs(--enable-dparen-arithmet)o(ic)630
 408 y Ft(Include)42 b(supp)s(ort)f(for)h(the)h Fs(\(\(...)o(\)\))f
 Ft(command)g(\(see)i(Section)f(3.2.4.2)i([Conditional)630
@@ -12967,13 +12980,13 @@ s(o)m(v)m(e)630 892 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e
 1157 y Ft(Include)24 b(the)h Fs(help)f Ft(builtin,)h(whic)m(h)g(displa)
 m(ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25
 b(\(see)630 1267 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
-(39\).)150 1422 y Fs(--enable-history)630 1532 y Ft(Include)e(command)g
+(41\).)150 1422 y Fs(--enable-history)630 1532 y Ft(Include)e(command)g
 (history)h(and)f(the)h Fs(fc)f Ft(and)g Fs(history)e
 Ft(builtin)j(commands)f(\(see)h(Sec-)630 1641 y(tion)h(9.1)g([Bash)g
-(History)g(F)-8 b(acilities],)34 b(page)d(113\).)150
+(History)g(F)-8 b(acilities],)34 b(page)d(115\).)150
 1797 y Fs(--enable-job-control)630 1906 y Ft(This)e(enables)i(the)f
 (job)g(con)m(trol)h(features)g(\(see)g(Chapter)f(7)g([Job)g(Con)m
-(trol],)h(page)g(83\),)h(if)630 2016 y(the)f(op)s(erating)f(system)h
+(trol],)h(page)g(85\),)h(if)630 2016 y(the)f(op)s(erating)f(system)h
 (supp)s(orts)d(them.)150 2171 y Fs(--enable-multibyte)630
 2281 y Ft(This)h(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m
 (haracters)g(if)f(the)g(op)s(erating)h(system)f(pro)m(vides)630
@@ -12990,7 +13003,7 @@ s(cess)e(Substitution],)630 3249 y(page)31 b(22\))h(if)e(the)h(op)s
 (erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150
 3404 y Fs(--enable-progcomp)630 3513 y Ft(Enable)d(the)g(programmable)g
 (completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630
-3623 y(Completion],)i(page)h(107\).)42 b(If)30 b(Readline)h(is)f(not)h
+3623 y(Completion],)i(page)h(109\).)42 b(If)30 b(Readline)h(is)f(not)h
 (enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150
 3778 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 3888
 y Ft(T)-8 b(urn)46 b(on)h(the)h(in)m(terpretation)g(of)g(a)g(n)m(um)m
@@ -12998,24 +13011,24 @@ y Ft(T)-8 b(urn)46 b(on)h(the)h(in)m(terpretation)g(of)g(a)g(n)m(um)m
 3998 y(the)39 b Fs($PS1)p Ft(,)g Fs($PS2)p Ft(,)h Fs($PS3)p
 Ft(,)f(and)f Fs($PS4)f Ft(prompt)h(strings.)64 b(See)39
 b(Section)g(6.9)h([Prin)m(ting)f(a)630 4107 y(Prompt],)30
-b(page)h(77,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g
+b(page)h(79,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g
 (escap)s(e)h(sequences.)150 4262 y Fs(--enable-readline)630
 4372 y Ft(Include)d(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
 (history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 4482
 y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g
-(Editing],)h(page)g(87\).)150 4637 y Fs(--enable-restricted)630
+(Editing],)h(page)g(89\).)150 4637 y Fs(--enable-restricted)630
 4746 y Ft(Include)41 b(supp)s(ort)f(for)i(a)g Fq(restricted)g(shell)p
 Ft(.)75 b(If)42 b(this)f(is)h(enabled,)j(Bash,)g(when)c(called)630
 4856 y(as)f Fs(rbash)p Ft(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68
 b(See)40 b(Section)h(6.10)g([The)f(Restricted)h(Shell],)630
-4966 y(page)31 b(78,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s
+4966 y(page)31 b(80,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s
 (de.)150 5121 y Fs(--enable-select)630 5230 y Ft(Include)k(the)g
 Fs(select)f Ft(builtin,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g(of)
 g(simple)f(men)m(us)g(\(see)630 5340 y(Section)c(3.2.4.2)i
 ([Conditional)e(Constructs],)g(page)g(10\).)p eop end
-%%Page: 125 131
-TeXDict begin 125 130 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(125)150 299 y Fs
+%%Page: 127 133
+TeXDict begin 127 132 bop 150 -116 a Ft(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(127)150 299 y Fs
 (--enable-separate-helpfi)o(les)630 408 y Ft(Use)32 b(external)h
 (\014les)f(for)g(the)g(do)s(cumen)m(tation)h(displa)m(y)m(ed)f(b)m(y)g
 (the)g Fs(help)f Ft(builtin)h(instead)630 518 y(of)f(storing)f(the)h
@@ -13029,7 +13042,7 @@ b(ma)m(y)g(need)630 1006 y(to)c(disable)g(this)f(if)g(y)m(our)h
 1166 y Fs(--enable-strict-posix-de)o(faul)o(t)630 1275
 y Ft(Mak)m(e)c(Bash)f Fl(posix)p Ft(-conforman)m(t)g(b)m(y)f(default)h
 (\(see)g(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630
-1385 y(page)31 b(78\).)150 1544 y Fs(--enable-usg-echo-defaul)o(t)630
+1385 y(page)31 b(80\).)150 1544 y Fs(--enable-usg-echo-defaul)o(t)630
 1654 y Ft(A)f(synon)m(ym)g(for)g Fs(--enable-xpg-echo-default)p
 Ft(.)150 1813 y Fs(--enable-xpg-echo-defaul)o(t)630 1923
 y Ft(Mak)m(e)c(the)f Fs(echo)e Ft(builtin)i(expand)f(bac)m
@@ -13041,7 +13054,7 @@ Ft(,)g(whic)m(h)g(mak)m(es)g(the)g(Bash)g Fs(echo)e Ft(b)s(eha)m(v)m(e)
 i(more)g(lik)m(e)h(the)f(v)m(ersion)g(sp)s(eci\014ed)630
 2252 y(in)41 b(the)h(Single)g(Unix)f(Sp)s(eci\014cation,)k(v)m(ersion)e
 (3.)74 b(See)42 b(Section)g(4.2)h([Bash)f(Builtins],)630
-2361 y(page)31 b(39,)h(for)e(a)g(description)h(of)f(the)h(escap)s(e)g
+2361 y(page)31 b(41,)h(for)e(a)g(description)h(of)f(the)h(escap)s(e)g
 (sequences)f(that)h Fs(echo)f Ft(recognizes.)275 2521
 y(The)23 b(\014le)i(`)p Fs(config-top.h)p Ft(')c(con)m(tains)26
 b(C)e(Prepro)s(cessor)g(`)p Fs(#define)p Ft(')e(statemen)m(ts)k(for)f
@@ -13052,12 +13065,12 @@ y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36
 b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e
 (for)g(more)150 2849 y(information)c(ab)s(out)f(its)h(e\013ect.)p
 eop end
-%%Page: 126 132
-TeXDict begin 126 131 bop 150 -116 a Ft(126)2527 b(Bash)31
+%%Page: 128 134
+TeXDict begin 128 133 bop 150 -116 a Ft(128)2527 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 127 133
-TeXDict begin 127 132 bop 150 -116 a Ft(App)s(endix)29
-b(A:)h(Rep)s(orting)h(Bugs)2299 b(127)150 299 y Fo(App)t(endix)52
+%%Page: 129 135
+TeXDict begin 129 134 bop 150 -116 a Ft(App)s(endix)29
+b(A:)h(Rep)s(orting)h(Bugs)2299 b(129)150 299 y Fo(App)t(endix)52
 b(A)121 b(Rep)t(orting)52 b(Bugs)275 533 y Ft(Please)35
 b(rep)s(ort)e(all)i(bugs)f(y)m(ou)g(\014nd)f(in)h(Bash.)52
 b(But)34 b(\014rst,)h(y)m(ou)f(should)f(mak)m(e)i(sure)f(that)g(it)h
@@ -13086,47 +13099,47 @@ s(duce)e(it.)150 2182 y Fs(bashbug)d Ft(inserts)i(the)h(\014rst)f
 (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
-%%Page: 128 134
-TeXDict begin 128 133 bop 150 -116 a Ft(128)2527 b(Bash)31
+%%Page: 130 136
+TeXDict begin 130 135 bop 150 -116 a Ft(130)2527 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 129 135
-TeXDict begin 129 134 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 131 137
+TeXDict begin 131 136 bop 150 -116 a Ft(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(129)150 141 y Fo(App)t(endix)52
+b(The)f(Bourne)g(Shell)1258 b(131)150 141 y Fo(App)t(endix)52
 b(B)128 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13 b(rom)54
 b(The)f(Bourne)1135 299 y(Shell)275 530 y Ft(Bash)25
 b(implemen)m(ts)g(essen)m(tially)i(the)f(same)f(grammar,)i(parameter)e
 (and)g(v)-5 b(ariable)26 b(expansion,)g(redi-)150 640
-y(rection,)j(and)d(quoting)h(as)g(the)h(Bourne)e(Shell.)40
-b(Bash)27 b(uses)f(the)h Fl(posix)f Ft(1003.2)k(standard)c(as)h(the)g
-(sp)s(ec-)150 749 y(i\014cation)33 b(of)e(ho)m(w)h(these)g(features)g
-(are)g(to)g(b)s(e)f(implemen)m(ted.)45 b(There)31 b(are)h(some)g
-(di\013erences)g(b)s(et)m(w)m(een)150 859 y(the)g(traditional)h(Bourne)
-e(shell)g(and)g(Bash;)i(this)e(section)i(quic)m(kly)f(details)h(the)e
-(di\013erences)h(of)g(signif-)150 969 y(icance.)52 b(A)34
-b(n)m(um)m(b)s(er)e(of)i(these)h(di\013erences)f(are)g(explained)g(in)f
-(greater)i(depth)e(in)g(previous)h(sections.)150 1078
-y(This)i(section)j(uses)d(the)i(v)m(ersion)f(of)h Fs(sh)e
-Ft(included)h(in)g(SVR4.2)h(\(the)f(last)h(v)m(ersion)g(of)f(the)h
-(historical)150 1188 y(Bourne)30 b(shell\))h(as)g(the)f(baseline)h
+y(rection,)i(and)e(quoting)h(as)f(the)g(Bourne)g(Shell.)40
+b(Bash)26 b(uses)g(the)g Fl(posix)g Ft(standard)f(as)i(the)f(sp)s
+(eci\014cation)150 749 y(of)h(ho)m(w)h(these)f(features)h(are)f(to)h(b)
+s(e)f(implemen)m(ted.)40 b(There)27 b(are)g(some)h(di\013erences)f(b)s
+(et)m(w)m(een)h(the)g(tradi-)150 859 y(tional)33 b(Bourne)e(shell)h
+(and)f(Bash;)i(this)f(section)g(quic)m(kly)h(details)g(the)e
+(di\013erences)h(of)g(signi\014cance.)46 b(A)150 969
+y(n)m(um)m(b)s(er)24 b(of)h(these)h(di\013erences)f(are)h(explained)f
+(in)g(greater)h(depth)f(in)g(previous)f(sections.)40
+b(This)25 b(section)150 1078 y(uses)33 b(the)i(v)m(ersion)f(of)g
+Fs(sh)f Ft(included)g(in)h(SVR4.2)h(\(the)f(last)h(v)m(ersion)f(of)g
+(the)g(historical)i(Bourne)d(shell\))150 1188 y(as)e(the)f(baseline)h
 (reference.)225 1322 y Fp(\017)60 b Ft(Bash)32 b(is)h
 Fl(posix)p Ft(-conforman)m(t,)g(ev)m(en)g(where)f(the)g
 Fl(posix)g Ft(sp)s(eci\014cation)h(di\013ers)f(from)g(traditional)330
 1431 y Fs(sh)e Ft(b)s(eha)m(vior)g(\(see)i(Section)f(6.11)h([Bash)e
-(POSIX)g(Mo)s(de],)h(page)g(78\).)225 1565 y Fp(\017)60
+(POSIX)g(Mo)s(de],)h(page)g(80\).)225 1565 y Fp(\017)60
 b Ft(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g
 (options)f(\(see)f(Section)h(6.1)g([In)m(v)m(oking)g(Bash],)h(page)e
-(65\).)225 1699 y Fp(\017)60 b Ft(Bash)28 b(has)g(command-line)h
+(67\).)225 1699 y Fp(\017)60 b Ft(Bash)28 b(has)g(command-line)h
 (editing)f(\(see)h(Chapter)f(8)g([Command)f(Line)h(Editing],)i(page)e
-(87\))i(and)330 1809 y(the)h Fs(bind)e Ft(builtin.)225
+(89\))i(and)330 1809 y(the)h Fs(bind)e Ft(builtin.)225
 1943 y Fp(\017)60 b Ft(Bash)46 b(pro)m(vides)g(a)g(programmable)g(w)m
 (ord)f(completion)i(mec)m(hanism)f(\(see)h(Section)g(8.6)g([Pro-)330
-2052 y(grammable)21 b(Completion],)i(page)e(107\),)k(and)19
+2052 y(grammable)21 b(Completion],)i(page)e(109\),)k(and)19
 b(t)m(w)m(o)j(builtin)e(commands,)i Fs(complete)c Ft(and)i
 Fs(compgen)p Ft(,)330 2162 y(to)31 b(manipulate)g(it.)225
 2296 y Fp(\017)60 b Ft(Bash)26 b(has)f(command)h(history)f(\(see)i
 (Section)f(9.1)h([Bash)f(History)h(F)-8 b(acilities],)30
-b(page)c(113\))i(and)d(the)330 2405 y Fs(history)k Ft(and)h
+b(page)c(115\))i(and)d(the)330 2405 y Fs(history)k Ft(and)h
 Fs(fc)g Ft(builtins)g(to)h(manipulate)g(it.)42 b(The)30
 b(Bash)h(history)g(list)g(main)m(tains)g(timestamp)330
 2515 y(information)g(and)e(uses)h(the)h(v)-5 b(alue)31
@@ -13134,9 +13147,9 @@ b(of)f(the)h Fs(HISTTIMEFORMAT)26 b Ft(v)-5 b(ariable)32
 b(to)f(displa)m(y)f(it.)225 2649 y Fp(\017)60 b Ft(Bash)48
 b(implemen)m(ts)h Fs(csh)p Ft(-lik)m(e)g(history)f(expansion)g(\(see)h
 (Section)g(9.3)h([History)f(In)m(teraction],)330 2759
-y(page)31 b(115\).)225 2892 y Fp(\017)60 b Ft(Bash)33
+y(page)31 b(117\).)225 2892 y Fp(\017)60 b Ft(Bash)33
 b(has)g(one-dimensional)h(arra)m(y)f(v)-5 b(ariables)34
-b(\(see)g(Section)g(6.7)g([Arra)m(ys],)g(page)g(74\),)h(and)e(the)330
+b(\(see)g(Section)g(6.7)g([Arra)m(ys],)g(page)g(76\),)h(and)e(the)330
 3002 y(appropriate)39 b(v)-5 b(ariable)40 b(expansions)f(and)g
 (assignmen)m(t)h(syn)m(tax)g(to)g(use)f(them.)67 b(Sev)m(eral)40
 b(of)g(the)330 3112 y(Bash)32 b(builtins)f(tak)m(e)j(options)e(to)h
@@ -13178,8 +13191,8 @@ b Fs(;)30 b Fj(expr3)39 b Fs(\)\))23 b Ft(arithmetic)h(for)e(command,)j
 Ft(comp)s(ound)g(command,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g
 (of)g(simple)330 5340 y(men)m(us)f(\(see)h(Section)g(3.2.4.2)i
 ([Conditional)e(Constructs],)g(page)g(10\).)p eop end
-%%Page: 130 136
-TeXDict begin 130 135 bop 150 -116 a Ft(130)2527 b(Bash)31
+%%Page: 132 138
+TeXDict begin 132 137 bop 150 -116 a Ft(132)2527 b(Bash)31
 b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(Bash)40
 b(includes)g(the)g Fs([[)g Ft(comp)s(ound)e(command,)43
 b(whic)m(h)c(mak)m(es)i(conditional)h(testing)f(part)f(of)330
@@ -13194,12 +13207,12 @@ b Ft(Bash)31 b(pro)m(vides)f(optional)h(case-insensitiv)m(e)i(matc)m
 (page)h(18\).)225 1034 y Fp(\017)60 b Ft(Bash)24 b(implemen)m(ts)h
 (command)e(aliases)j(and)d(the)i Fs(alias)d Ft(and)i
 Fs(unalias)e Ft(builtins)h(\(see)i(Section)g(6.6)330
-1143 y([Aliases],)32 b(page)f(73\).)225 1279 y Fp(\017)60
+1143 y([Aliases],)32 b(page)f(75\).)225 1279 y Fp(\017)60
 b Ft(Bash)32 b(pro)m(vides)g(shell)g(arithmetic,)i(the)e
 Fs(\(\()g Ft(comp)s(ound)e(command)i(\(see)h(Section)f(3.2.4.2)j([Con-)
 330 1388 y(ditional)d(Constructs],)e(page)i(10\),)g(and)e(arithmetic)i
 (expansion)e(\(see)i(Section)f(6.5)h([Shell)f(Arith-)330
-1498 y(metic],)h(page)f(72\).)225 1633 y Fp(\017)60 b
+1498 y(metic],)h(page)f(74\).)225 1633 y Fp(\017)60 b
 Ft(V)-8 b(ariables)31 b(presen)m(t)e(in)g(the)g(shell's)h(initial)g(en)
 m(vironmen)m(t)g(are)g(automatically)i(exp)s(orted)d(to)h(c)m(hild)330
 1743 y(pro)s(cesses.)38 b(The)23 b(Bourne)g(shell)g(do)s(es)g(not)g
@@ -13261,76 +13274,76 @@ Ft(,)h Fs(OSTYPE)p Ft(,)h Fs(MACHTYPE)p Ft(,)f(and)330
 4985 y Fs(HOSTNAME)p Ft(\),)55 b(and)c(the)g(instance)h(of)g(Bash)f
 (that)h(is)f(running)f(\()p Fs(BASH)p Ft(,)56 b Fs(BASH_VERSION)p
 Ft(,)e(and)330 5095 y Fs(BASH_VERSINFO)p Ft(\).)37 b(See)31
-b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(55,)g(for)f
+b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(57,)g(for)f
 (details.)225 5230 y Fp(\017)60 b Ft(The)44 b Fs(IFS)f
 Ft(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g
 (of)h(expansion,)i(not)d(all)h(w)m(ords)f(\(see)330 5340
 y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(22\).)41
 b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p
 eop end
-%%Page: 131 137
-TeXDict begin 131 136 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 133 139
+TeXDict begin 133 138 bop 150 -116 a Ft(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(131)225 299 y Fp(\017)60
-b Ft(Bash)33 b(implemen)m(ts)h(the)f(full)g(set)h(of)f
-Fl(posix)f Ft(1003.2)k(\014lename)d(expansion)g(op)s(erators,)h
-(including)330 408 y Fq(c)m(haracter)23 b(classes)p Ft(,)h
-Fq(equiv)-5 b(alence)23 b(classes)p Ft(,)h(and)d Fq(collating)i(sym)m
-(b)s(ols)i Ft(\(see)d(Section)g(3.5.8)h([Filename)330
-518 y(Expansion],)30 b(page)h(23\).)225 660 y Fp(\017)60
-b Ft(Bash)35 b(implemen)m(ts)g(extended)g(pattern)g(matc)m(hing)h
-(features)f(when)f(the)h Fs(extglob)d Ft(shell)j(option)330
-769 y(is)30 b(enabled)h(\(see)g(Section)g(3.5.8.1)i([P)m(attern)f(Matc)
-m(hing],)g(page)f(23\).)225 911 y Fp(\017)60 b Ft(It)22
-b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f(v)-5 b(ariable)23
-b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j Fs(sh)d
-Ft(do)s(es)g(not)g(separate)330 1021 y(the)31 b(t)m(w)m(o)g(name)g
-(spaces.)225 1163 y Fp(\017)60 b Ft(Bash)30 b(functions)e(are)i(p)s
-(ermitted)f(to)h(ha)m(v)m(e)h(lo)s(cal)g(v)-5 b(ariables)30
-b(using)f(the)g Fs(local)f Ft(builtin,)i(and)e(th)m(us)330
-1272 y(useful)i(recursiv)m(e)g(functions)g(ma)m(y)h(b)s(e)f(written)g
-(\(see)i(Section)f(4.2)g([Bash)g(Builtins],)g(page)h(39\).)225
-1414 y Fp(\017)60 b Ft(V)-8 b(ariable)25 b(assignmen)m(ts)g(preceding)e
-(commands)h(a\013ect)h(only)f(that)g(command,)h(ev)m(en)f(builtins)g
-(and)330 1524 y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m
-(vironmen)m(t],)h(page)e(30\).)60 b(In)35 b Fs(sh)p Ft(,)j(all)f(v)-5
-b(ariable)37 b(assignmen)m(ts)330 1633 y(preceding)30
-b(commands)g(are)h(global)h(unless)d(the)i(command)f(is)h(executed)g
-(from)f(the)g(\014le)h(system.)225 1775 y Fp(\017)60
-b Ft(Bash)44 b(p)s(erforms)e(\014lename)i(expansion)f(on)h(\014lenames)
-g(sp)s(eci\014ed)f(as)h(op)s(erands)e(to)j(input)e(and)330
-1885 y(output)30 b(redirection)h(op)s(erators)g(\(see)g(Section)g(3.6)h
-([Redirections],)g(page)f(25\).)225 2027 y Fp(\017)60
-b Ft(Bash)29 b(con)m(tains)h(the)f(`)p Fs(<>)p Ft(')f(redirection)i(op)
-s(erator,)f(allo)m(wing)i(a)e(\014le)g(to)g(b)s(e)f(op)s(ened)g(for)h
-(b)s(oth)f(read-)330 2136 y(ing)35 b(and)f(writing,)i(and)e(the)h(`)p
-Fs(&>)p Ft(')g(redirection)g(op)s(erator,)h(for)f(directing)g(standard)
-f(output)h(and)330 2246 y(standard)30 b(error)g(to)h(the)f(same)h
-(\014le)f(\(see)i(Section)f(3.6)g([Redirections],)h(page)g(25\).)225
-2388 y Fp(\017)60 b Ft(Bash)21 b(includes)f(the)h(`)p
-Fs(<<<)p Ft(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f
-(to)i(b)s(e)e(used)g(as)h(the)g(standard)330 2497 y(input)29
-b(to)j(a)e(command.)225 2639 y Fp(\017)60 b Ft(Bash)29
-b(implemen)m(ts)h(the)f(`)p Fs([n]<&)p Fj(word)11 b Ft(')26
-b(and)j(`)p Fs([n]>&)p Fj(word)11 b Ft(')26 b(redirection)k(op)s
-(erators,)g(whic)m(h)e(mo)m(v)m(e)330 2749 y(one)j(\014le)f(descriptor)
-g(to)h(another.)225 2890 y Fp(\017)60 b Ft(Bash)25 b(treats)h(a)f(n)m
-(um)m(b)s(er)e(of)i(\014lenames)g(sp)s(ecially)g(when)f(they)h(are)g
-(used)f(in)g(redirection)i(op)s(erators)330 3000 y(\(see)31
-b(Section)h(3.6)f([Redirections],)h(page)f(25\).)225
-3142 y Fp(\017)60 b Ft(Bash)33 b(can)f(op)s(en)g(net)m(w)m(ork)i
-(connections)f(to)h(arbitrary)e(mac)m(hines)h(and)f(services)h(with)f
-(the)h(redi-)330 3251 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6)
-h([Redirections],)g(page)f(25\).)225 3393 y Fp(\017)60
+b(The)f(Bourne)g(Shell)1258 b(133)225 299 y Fp(\017)60
+b Ft(Bash)38 b(implemen)m(ts)g(the)g(full)g(set)g(of)g
+Fl(posix)f Ft(\014lename)h(expansion)g(op)s(erators,)i(including)d
+Fq(c)m(har-)330 408 y(acter)i(classes)p Ft(,)j Fq(equiv)-5
+b(alence)39 b(classes)p Ft(,)j(and)37 b Fq(collating)k(sym)m(b)s(ols)g
+Ft(\(see)e(Section)g(3.5.8)h([Filename)330 518 y(Expansion],)30
+b(page)h(23\).)225 660 y Fp(\017)60 b Ft(Bash)35 b(implemen)m(ts)g
+(extended)g(pattern)g(matc)m(hing)h(features)f(when)f(the)h
+Fs(extglob)d Ft(shell)j(option)330 769 y(is)30 b(enabled)h(\(see)g
+(Section)g(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(23\).)225
+911 y Fp(\017)60 b Ft(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f
+(v)-5 b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j
+Fs(sh)d Ft(do)s(es)g(not)g(separate)330 1021 y(the)31
+b(t)m(w)m(o)g(name)g(spaces.)225 1163 y Fp(\017)60 b
+Ft(Bash)30 b(functions)e(are)i(p)s(ermitted)f(to)h(ha)m(v)m(e)h(lo)s
+(cal)g(v)-5 b(ariables)30 b(using)f(the)g Fs(local)f
+Ft(builtin,)i(and)e(th)m(us)330 1272 y(useful)i(recursiv)m(e)g
+(functions)g(ma)m(y)h(b)s(e)f(written)g(\(see)i(Section)f(4.2)g([Bash)g
+(Builtins],)g(page)h(41\).)225 1414 y Fp(\017)60 b Ft(V)-8
+b(ariable)25 b(assignmen)m(ts)g(preceding)e(commands)h(a\013ect)h(only)
+f(that)g(command,)h(ev)m(en)f(builtins)g(and)330 1524
+y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page)
+e(30\).)60 b(In)35 b Fs(sh)p Ft(,)j(all)f(v)-5 b(ariable)37
+b(assignmen)m(ts)330 1633 y(preceding)30 b(commands)g(are)h(global)h
+(unless)d(the)i(command)f(is)h(executed)g(from)f(the)g(\014le)h
+(system.)225 1775 y Fp(\017)60 b Ft(Bash)44 b(p)s(erforms)e(\014lename)
+i(expansion)f(on)h(\014lenames)g(sp)s(eci\014ed)f(as)h(op)s(erands)e
+(to)j(input)e(and)330 1885 y(output)30 b(redirection)h(op)s(erators)g
+(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(25\).)225
+2027 y Fp(\017)60 b Ft(Bash)29 b(con)m(tains)h(the)f(`)p
+Fs(<>)p Ft(')f(redirection)i(op)s(erator,)f(allo)m(wing)i(a)e(\014le)g
+(to)g(b)s(e)f(op)s(ened)g(for)h(b)s(oth)f(read-)330 2136
+y(ing)35 b(and)f(writing,)i(and)e(the)h(`)p Fs(&>)p Ft(')g(redirection)
+g(op)s(erator,)h(for)f(directing)g(standard)f(output)h(and)330
+2246 y(standard)30 b(error)g(to)h(the)f(same)h(\014le)f(\(see)i
+(Section)f(3.6)g([Redirections],)h(page)g(25\).)225 2388
+y Fp(\017)60 b Ft(Bash)21 b(includes)f(the)h(`)p Fs(<<<)p
+Ft(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f(to)i(b)s
+(e)e(used)g(as)h(the)g(standard)330 2497 y(input)29 b(to)j(a)e
+(command.)225 2639 y Fp(\017)60 b Ft(Bash)29 b(implemen)m(ts)h(the)f(`)
+p Fs([n]<&)p Fj(word)11 b Ft(')26 b(and)j(`)p Fs([n]>&)p
+Fj(word)11 b Ft(')26 b(redirection)k(op)s(erators,)g(whic)m(h)e(mo)m(v)
+m(e)330 2749 y(one)j(\014le)f(descriptor)g(to)h(another.)225
+2890 y Fp(\017)60 b Ft(Bash)25 b(treats)h(a)f(n)m(um)m(b)s(er)e(of)i
+(\014lenames)g(sp)s(ecially)g(when)f(they)h(are)g(used)f(in)g
+(redirection)i(op)s(erators)330 3000 y(\(see)31 b(Section)h(3.6)f
+([Redirections],)h(page)f(25\).)225 3142 y Fp(\017)60
+b Ft(Bash)33 b(can)f(op)s(en)g(net)m(w)m(ork)i(connections)f(to)h
+(arbitrary)e(mac)m(hines)h(and)f(services)h(with)f(the)h(redi-)330
+3251 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6)h
+([Redirections],)g(page)f(25\).)225 3393 y Fp(\017)60
 b Ft(The)29 b Fs(noclobber)e Ft(option)j(is)g(a)m(v)-5
 b(ailable)32 b(to)e(a)m(v)m(oid)h(o)m(v)m(erwriting)g(existing)g
 (\014les)e(with)h(output)f(redi-)330 3503 y(rection)h(\(see)h(Section)f
-(4.3)g([The)g(Set)f(Builtin],)i(page)f(51\).)41 b(The)29
+(4.3)g([The)g(Set)f(Builtin],)i(page)f(53\).)41 b(The)29
 b(`)p Fs(>|)p Ft(')h(redirection)g(op)s(erator)f(ma)m(y)330
 3612 y(b)s(e)h(used)f(to)i(o)m(v)m(erride)h Fs(noclobber)p
 Ft(.)225 3754 y Fp(\017)60 b Ft(The)34 b(Bash)g Fs(cd)g
 Ft(and)f Fs(pwd)g Ft(builtins)h(\(see)h(Section)g(4.1)g([Bourne)g
-(Shell)f(Builtins],)h(page)g(33\))h(eac)m(h)330 3864
+(Shell)f(Builtins],)h(page)g(35\))h(eac)m(h)330 3864
 y(tak)m(e)c(`)p Fs(-L)p Ft(')e(and)g(`)p Fs(-P)p Ft(')g(options)h(to)g
 (switc)m(h)g(b)s(et)m(w)m(een)g(logical)i(and)c(ph)m(ysical)i(mo)s
 (des.)225 4006 y Fp(\017)60 b Ft(Bash)25 b(allo)m(ws)h(a)g(function)e
@@ -13338,26 +13351,26 @@ y(tak)m(e)c(`)p Fs(-L)p Ft(')e(and)g(`)p Fs(-P)p Ft(')g(options)h(to)g
 (pro)m(vides)h(access)h(to)330 4115 y(that)34 b(builtin's)f
 (functionalit)m(y)h(within)f(the)g(function)g(via)h(the)f
 Fs(builtin)f Ft(and)g Fs(command)g Ft(builtins)330 4225
-y(\(see)f(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(39\).)225
+y(\(see)f(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(41\).)225
 4367 y Fp(\017)60 b Ft(The)35 b Fs(command)e Ft(builtin)i(allo)m(ws)i
 (selectiv)m(e)h(disabling)e(of)f(functions)g(when)g(command)g(lo)s
 (okup)g(is)330 4476 y(p)s(erformed)29 b(\(see)i(Section)g(4.2)h([Bash)f
-(Builtins],)g(page)g(39\).)225 4618 y Fp(\017)60 b Ft(Individual)23
+(Builtins],)g(page)g(41\).)225 4618 y Fp(\017)60 b Ft(Individual)23
 b(builtins)g(ma)m(y)i(b)s(e)e(enabled)h(or)g(disabled)g(using)f(the)h
 Fs(enable)f Ft(builtin)g(\(see)i(Section)g(4.2)330 4728
-y([Bash)31 b(Builtins],)g(page)g(39\).)225 4869 y Fp(\017)60
+y([Bash)31 b(Builtins],)g(page)g(41\).)225 4869 y Fp(\017)60
 b Ft(The)26 b(Bash)h Fs(exec)e Ft(builtin)h(tak)m(es)i(additional)f
 (options)g(that)g(allo)m(w)h(users)d(to)j(con)m(trol)g(the)e(con)m(ten)
 m(ts)330 4979 y(of)35 b(the)f(en)m(vironmen)m(t)h(passed)f(to)h(the)g
 (executed)g(command,)h(and)d(what)i(the)f(zeroth)h(argumen)m(t)330
 5089 y(to)c(the)g(command)f(is)g(to)h(b)s(e)f(\(see)h(Section)h(4.1)f
-([Bourne)f(Shell)h(Builtins],)g(page)g(33\).)225 5230
+([Bourne)f(Shell)h(Builtins],)g(page)g(35\).)225 5230
 y Fp(\017)60 b Ft(Shell)29 b(functions)g(ma)m(y)h(b)s(e)f(exp)s(orted)g
 (to)h(c)m(hildren)f(via)h(the)g(en)m(vironmen)m(t)g(using)f
 Fs(export)f(-f)h Ft(\(see)330 5340 y(Section)i(3.3)h([Shell)e(F)-8
 b(unctions],)32 b(page)f(14\).)p eop end
-%%Page: 132 138
-TeXDict begin 132 137 bop 150 -116 a Ft(132)2527 b(Bash)31
+%%Page: 134 140
+TeXDict begin 134 139 bop 150 -116 a Ft(134)2527 b(Bash)31
 b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(The)37
 b(Bash)g Fs(export)p Ft(,)h Fs(readonly)p Ft(,)f(and)f
 Fs(declare)g Ft(builtins)h(can)g(tak)m(e)i(a)f(`)p Fs(-f)p
@@ -13374,15 +13387,15 @@ Ft(builtin)g(allo)m(ws)j(a)e(name)g(to)g(b)s(e)f(asso)s(ciated)j(with)d
 (an)h(arbitrary)f(\014lename,)330 874 y(ev)m(en)30 b(when)e(that)h
 (\014lename)g(cannot)h(b)s(e)e(found)g(b)m(y)h(searc)m(hing)g(the)g
 Fs($PATH)p Ft(,)g(using)f(`)p Fs(hash)h(-p)p Ft(')g(\(see)330
-984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(33\).)225
+984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(35\).)225
 1121 y Fp(\017)60 b Ft(Bash)27 b(includes)f(a)i Fs(help)d
 Ft(builtin)i(for)f(quic)m(k)h(reference)h(to)f(shell)g(facilities)i
-(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(39\).)225
+(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(41\).)225
 1367 y Fp(\017)60 b Ft(The)42 b Fs(printf)g Ft(builtin)g(is)h(a)m(v)-5
 b(ailable)45 b(to)f(displa)m(y)f(formatted)g(output)g(\(see)h(Section)g
-(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(39\).)225
+(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(41\).)225
 1614 y Fp(\017)60 b Ft(The)26 b(Bash)h Fs(read)f Ft(builtin)g(\(see)i
-(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(39\))g(will)f(read)g(a)g
+(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(41\))g(will)f(read)g(a)g
 (line)g(ending)330 1724 y(in)f(`)p Fs(\\)p Ft(')h(with)f(the)g(`)p
 Fs(-r)p Ft(')h(option,)h(and)d(will)i(use)f(the)h Fs(REPLY)e
 Ft(v)-5 b(ariable)27 b(as)g(a)f(default)h(if)f(no)h(non-option)330
@@ -13405,23 +13418,23 @@ h(particular)g(c)m(haracter)h(rather)e(than)g(newline.)225
 2628 y Fp(\017)60 b Ft(The)33 b Fs(return)e Ft(builtin)i(ma)m(y)g(b)s
 (e)g(used)f(to)i(ab)s(ort)f(execution)h(of)f(scripts)g(executed)h(with)
 f(the)g Fs(.)g Ft(or)330 2737 y Fs(source)c Ft(builtins)g(\(see)j
-(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(33\).)225
+(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(35\).)225
 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)34 b(4.2)g([Bash)f(Builtins],)
-i(page)e(39\),)i(and)e(allo)m(ws)h(these)f(options)h(to)f(b)s(e)g(set)g
+i(page)e(41\),)i(and)e(allo)m(ws)h(these)f(options)h(to)f(b)s(e)g(set)g
 (and)g(unset)f(at)330 3093 y(shell)f(in)m(v)m(o)s(cation)h(\(see)f
-(Section)g(6.1)h([In)m(v)m(oking)f(Bash],)g(page)h(65\).)225
+(Section)g(6.1)h([In)m(v)m(oking)f(Bash],)g(page)h(67\).)225
 3230 y Fp(\017)60 b Ft(Bash)23 b(has)f(m)m(uc)m(h)g(more)h(optional)h
 (b)s(eha)m(vior)e(con)m(trollable)j(with)d(the)h Fs(set)e
 Ft(builtin)h(\(see)i(Section)f(4.3)330 3340 y([The)30
-b(Set)h(Builtin],)g(page)g(51\).)225 3477 y Fp(\017)60
+b(Set)h(Builtin],)g(page)g(53\).)225 3477 y Fp(\017)60
 b Ft(The)31 b(`)p Fs(-x)p Ft(')g(\()p Fs(xtrace)p Ft(\))g(option)h
 (displa)m(ys)f(commands)h(other)f(than)h(simple)f(commands)g(when)g(p)s
 (er-)330 3587 y(forming)f(an)g(execution)i(trace)f(\(see)h(Section)f
-(4.3)g([The)g(Set)f(Builtin],)h(page)h(51\).)225 3724
+(4.3)g([The)g(Set)f(Builtin],)h(page)h(53\).)225 3724
 y Fp(\017)60 b Ft(The)28 b Fs(test)g Ft(builtin)h(\(see)h(Section)f
-(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(33\))g(is)f(sligh)m(tly)h
+(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(35\))g(is)f(sligh)m(tly)h
 (di\013eren)m(t,)330 3833 y(as)23 b(it)g(implemen)m(ts)f(the)h
 Fl(posix)f Ft(algorithm,)j(whic)m(h)d(sp)s(eci\014es)g(the)h(b)s(eha)m
 (vior)f(based)g(on)h(the)f(n)m(um)m(b)s(er)330 3943 y(of)31
@@ -13432,7 +13445,7 @@ b(\(a)f(shell)f(function)h(or)f(a)h(script)f(executed)h(with)f(the)h
 Fs(.)f Ft(or)g Fs(source)f Ft(builtins\).)39 b(This)26
 b(supp)s(orts)330 4299 y(the)31 b(bash)e(debugger.)225
 4436 y Fp(\017)60 b Ft(The)42 b Fs(trap)f Ft(builtin)h(\(see)i(Section)
-f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(33\))h(allo)m(ws)g(a)e
+f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(35\))h(allo)m(ws)g(a)e
 Fs(DEBUG)330 4545 y Ft(pseudo-signal)c(sp)s(eci\014cation,)i(similar)e
 (to)g Fs(EXIT)p Ft(.)62 b(Commands)36 b(sp)s(eci\014ed)h(with)g(a)h
 Fs(DEBUG)e Ft(trap)330 4655 y(are)k(executed)g(b)s(efore)f(ev)m(ery)h
@@ -13448,20 +13461,20 @@ Fs(functrace)d Ft(option)j(has)f(b)s(een)g(enabled)g(using)330
 Fs(extdebug)f Ft(shell)i(option)g(has)f(additional)h(e\013ects)h(on)f
 (the)g Fs(DEBUG)e Ft(trap.)330 5230 y(The)21 b Fs(trap)e
 Ft(builtin)i(\(see)h(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)j
-(page)e(33\))g(allo)m(ws)g(an)f Fs(ERR)f Ft(pseudo-)330
+(page)e(35\))g(allo)m(ws)g(an)f Fs(ERR)f Ft(pseudo-)330
 5340 y(signal)30 b(sp)s(eci\014cation,)h(similar)f(to)g
 Fs(EXIT)f Ft(and)g Fs(DEBUG)p Ft(.)39 b(Commands)28 b(sp)s(eci\014ed)h
 (with)g(an)g Fs(ERR)g Ft(trap)p eop end
-%%Page: 133 139
-TeXDict begin 133 138 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 135 141
+TeXDict begin 135 140 bop 150 -116 a Ft(App)s(endix)29
 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(133)330 299 y(are)40 b(executed)g(after)g
+b(The)f(Bourne)g(Shell)1258 b(135)330 299 y(are)40 b(executed)g(after)g
 (a)f(simple)h(command)f(fails,)j(with)d(a)h(few)f(exceptions.)68
 b(The)39 b Fs(ERR)g Ft(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h
 (shell)g(functions)f(unless)g(the)h Fs(-o)29 b(errtrace)37
 b Ft(option)i(to)g(the)g Fs(set)f Ft(builtin)g(is)330
 518 y(enabled.)330 645 y(The)g Fs(trap)g Ft(builtin)h(\(see)g(Section)h
-(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(33\))g(allo)m(ws)g(a)g
+(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\))g(allo)m(ws)g(a)g
 Fs(RETURN)330 755 y Ft(pseudo-signal)35 b(sp)s(eci\014cation,)j
 (similar)d(to)h Fs(EXIT)e Ft(and)g Fs(DEBUG)p Ft(.)54
 b(Commands)34 b(sp)s(eci\014ed)g(with)h(an)330 864 y
@@ -13476,30 +13489,30 @@ g(the)g Fs(shopt)f Ft(builtin.)225 1320 y Fp(\017)60
 b Ft(The)30 b(Bash)g Fs(type)f Ft(builtin)h(is)g(more)g(extensiv)m(e)i
 (and)d(giv)m(es)j(more)e(information)h(ab)s(out)f(the)g(names)330
 1430 y(it)h(\014nds)e(\(see)i(Section)g(4.2)h([Bash)e(Builtins],)i
-(page)f(39\).)225 1557 y Fp(\017)60 b Ft(The)34 b(Bash)h
+(page)f(41\).)225 1557 y Fp(\017)60 b Ft(The)34 b(Bash)h
 Fs(umask)e Ft(builtin)h(p)s(ermits)g(a)g(`)p Fs(-p)p
 Ft(')h(option)g(to)g(cause)g(the)g(output)f(to)h(b)s(e)f(displa)m(y)m
 (ed)h(in)330 1666 y(the)g(form)g(of)g(a)h Fs(umask)e
 Ft(command)h(that)g(ma)m(y)h(b)s(e)f(reused)f(as)h(input)g(\(see)h
 (Section)g(4.1)g([Bourne)330 1776 y(Shell)30 b(Builtins],)h(page)h
-(33\).)225 1903 y Fp(\017)60 b Ft(Bash)34 b(implemen)m(ts)h(a)g
+(35\).)225 1903 y Fp(\017)60 b Ft(Bash)34 b(implemen)m(ts)h(a)g
 Fs(csh)p Ft(-lik)m(e)g(directory)f(stac)m(k,)j(and)d(pro)m(vides)g(the)
 g Fs(pushd)p Ft(,)g Fs(popd)p Ft(,)g(and)g Fs(dirs)330
 2012 y Ft(builtins)g(to)i(manipulate)f(it)h(\(see)f(Section)h(6.8)g
-([The)f(Directory)h(Stac)m(k],)i(page)d(75\).)56 b(Bash)35
+([The)f(Directory)h(Stac)m(k],)i(page)d(77\).)56 b(Bash)35
 b(also)330 2122 y(mak)m(es)c(the)g(directory)g(stac)m(k)g(visible)g(as)
 g(the)f(v)-5 b(alue)31 b(of)g(the)f Fs(DIRSTACK)f Ft(shell)h(v)-5
 b(ariable.)225 2249 y Fp(\017)60 b Ft(Bash)28 b(in)m(terprets)h(sp)s
 (ecial)g(bac)m(kslash-escap)s(ed)g(c)m(haracters)g(in)f(the)h(prompt)e
 (strings)h(when)f(in)m(ter-)330 2358 y(activ)m(e)33 b(\(see)e(Section)g
-(6.9)h([Prin)m(ting)e(a)h(Prompt],)g(page)g(77\).)225
+(6.9)h([Prin)m(ting)e(a)h(Prompt],)g(page)g(79\).)225
 2485 y Fp(\017)60 b Ft(The)46 b(Bash)h(restricted)g(mo)s(de)f(is)h
 (more)f(useful)g(\(see)h(Section)h(6.10)g([The)e(Restricted)i(Shell],)
-330 2595 y(page)31 b(78\);)h(the)f(SVR4.2)g(shell)f(restricted)h(mo)s
+330 2595 y(page)31 b(80\);)h(the)f(SVR4.2)g(shell)f(restricted)h(mo)s
 (de)f(is)h(to)s(o)g(limited.)225 2722 y Fp(\017)60 b
 Ft(The)30 b Fs(disown)f Ft(builtin)h(can)h(remo)m(v)m(e)h(a)f(job)f
 (from)g(the)h(in)m(ternal)g(shell)g(job)f(table)i(\(see)f(Section)h
-(7.2)330 2832 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(84\))h(or)e
+(7.2)330 2832 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(86\))h(or)e
 (suppress)e(the)i(sending)g(of)g Fs(SIGHUP)e Ft(to)j(a)g(job)f(when)f
 (the)330 2941 y(shell)f(exits)g(as)f(the)h(result)f(of)h(a)f
 Fs(SIGHUP)p Ft(.)225 3068 y Fp(\017)60 b Ft(Bash)31 b(includes)f(a)g(n)
@@ -13516,7 +13529,7 @@ Fp(\017)60 b Ft(The)30 b(SVR4.2)h Fs(sh)f Ft(uses)g(a)g
 Fs(TIMEOUT)f Ft(v)-5 b(ariable)31 b(lik)m(e)h(Bash)e(uses)g
 Fs(TMOUT)p Ft(.)150 3830 y(More)h(features)g(unique)e(to)i(Bash)g(ma)m
 (y)g(b)s(e)f(found)f(in)h(Chapter)f(6)i([Bash)g(F)-8
-b(eatures],)32 b(page)f(65.)150 4065 y Fr(B.1)67 b(Implemen)l(tation)48
+b(eatures],)32 b(page)f(67.)150 4065 y Fr(B.1)67 b(Implemen)l(tation)48
 b(Di\013erences)e(F)-11 b(rom)44 b(The)h(SVR4.2)g(Shell)275
 4301 y Ft(Since)39 b(Bash)h(is)f(a)h(completely)i(new)d(implemen)m
 (tation,)k(it)d(do)s(es)g(not)f(su\013er)g(from)g(man)m(y)h(of)g(the)
@@ -13537,8 +13550,8 @@ Ft(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f
 (with)g Fs(SIGSEGV)e Ft(blo)s(c)m(k)m(ed)k(\(e.g.,)h(b)m(y)d(using)330
 5340 y(the)31 b Fs(system\(\))d Ft(C)i(library)g(function)g(call\),)i
 (it)f(misb)s(eha)m(v)m(es)g(badly)-8 b(.)p eop end
-%%Page: 134 140
-TeXDict begin 134 139 bop 150 -116 a Ft(134)2527 b(Bash)31
+%%Page: 136 142
+TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31
 b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(In)26
 b(a)i(questionable)g(attempt)h(at)f(securit)m(y)-8 b(,)29
 b(the)e(SVR4.2)h(shell,)g(when)f(in)m(v)m(ok)m(ed)h(without)g(the)f(`)p
@@ -13562,17 +13575,17 @@ Fs(|)p Ft('.)225 1166 y Fp(\017)60 b Ft(Bash)37 b(allo)m(ws)h(m)m
 Fs(-xv)p Ft(\).)47 b(In)32 b(fact,)i(some)f(v)m(ersions)g(of)g(the)g
 (shell)f(dump)f(core)330 1385 y(if)f(the)h(second)f(argumen)m(t)h(b)s
 (egins)f(with)g(a)h(`)p Fs(-)p Ft('.)225 1519 y Fp(\017)60
-b Ft(The)35 b(SVR4.2)i(shell)e(exits)i(a)f(script)g(if)f(an)m(y)h
-(builtin)f(fails;)k(Bash)d(exits)h(a)f(script)f(only)h(if)g(one)g(of)
-330 1629 y(the)d Fl(posix)g Ft(1003.2)i(sp)s(ecial)f(builtins)e(fails,)
-j(and)d(only)i(for)e(certain)i(failures,)h(as)e(en)m(umerated)g(in)330
-1738 y(the)e Fl(posix)e Ft(1003.2)k(standard.)225 1873
-y Fp(\017)60 b Ft(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f
-(di\013eren)m(tly)h(when)f(in)m(v)m(ok)m(ed)i(as)e Fs(jsh)g
-Ft(\(it)h(turns)e(on)h(job)g(con)m(trol\).)p eop end
-%%Page: 135 141
-TeXDict begin 135 140 bop 150 -116 a Ft(App)s(endix)29
-b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(135)150 299
+b Ft(The)26 b(SVR4.2)i(shell)f(exits)g(a)g(script)g(if)g(an)m(y)g
+(builtin)f(fails;)j(Bash)e(exits)g(a)g(script)g(only)g(if)g(one)g(of)g
+(the)330 1629 y Fl(posix)34 b Ft(sp)s(ecial)h(builtins)f(fails,)i(and)e
+(only)h(for)f(certain)h(failures,)h(as)f(en)m(umerated)g(in)f(the)h
+Fl(posix)330 1738 y Ft(standard.)225 1873 y Fp(\017)60
+b Ft(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h
+(when)f(in)m(v)m(ok)m(ed)i(as)e Fs(jsh)g Ft(\(it)h(turns)e(on)h(job)g
+(con)m(trol\).)p eop end
+%%Page: 137 143
+TeXDict begin 137 142 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(137)150 299
 y Fo(App)t(endix)52 b(C)126 b(Cop)l(ying)51 b(This)i(Man)l(ual)150
 690 y Fr(C.1)68 b(GNU)45 b(F)-11 b(ree)45 b(Do)t(cumen)l(tation)h
 (License)1396 909 y Ft(V)-8 b(ersion)31 b(1.2,)h(No)m(v)m(em)m(b)s(er)g
@@ -13648,8 +13661,8 @@ h(ma)m(y)g(not)g(explain)g(an)m(y)g(mathematics.\))40
 b(The)330 5340 y(relationship)28 b(could)f(b)s(e)g(a)g(matter)i(of)e
 (historical)i(connection)f(with)f(the)h(sub)5 b(ject)27
 b(or)g(with)g(related)p eop end
-%%Page: 136 142
-TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31
+%%Page: 138 144
+TeXDict begin 138 143 bop 150 -116 a Ft(138)2527 b(Bash)31
 b(Reference)g(Man)m(ual)330 299 y(matters,)38 b(or)d(of)h(legal,)i
 (commercial,)h(philosophical,)f(ethical)f(or)e(p)s(olitical)i(p)s
 (osition)f(regarding)330 408 y(them.)330 549 y(The)25
@@ -13745,9 +13758,9 @@ b(W)-8 b(arran)m(t)m(y)36 b(Disclaimers)f(are)g(considered)e(to)330
 b(arran)m(t)m(y)39 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g
 (and)f(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h
 (this)f(License.)p eop end
-%%Page: 137 143
-TeXDict begin 137 142 bop 150 -116 a Ft(App)s(endix)29
-b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(137)199 299
+%%Page: 139 145
+TeXDict begin 139 144 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(139)199 299
 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330 445 y(Y)-8
 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h(the)g(Do)s(cumen)m(t)h
 (in)f(an)m(y)g(medium,)h(either)g(commercially)h(or)330
@@ -13834,8 +13847,8 @@ b(\014lling)f(the)g(role)h(of)f(the)g(Do)s(cumen)m(t,)h(th)m(us)f
 (ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)41 b(In)30
 b(addition,)h(y)m(ou)f(m)m(ust)h(do)f(these)h(things)f(in)g(the)h(Mo)s
 (di\014ed)e(V)-8 b(ersion:)p eop end
-%%Page: 138 144
-TeXDict begin 138 143 bop 150 -116 a Ft(138)2527 b(Bash)31
+%%Page: 140 146
+TeXDict begin 140 145 bop 150 -116 a Ft(140)2527 b(Bash)31
 b(Reference)g(Man)m(ual)357 299 y(A.)60 b(Use)33 b(in)f(the)h(Title)h
 (P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e(an)m(y\))g(a)g
 (title)h(distinct)f(from)g(that)g(of)g(the)510 408 y(Do)s(cumen)m(t,)j
@@ -13917,9 +13930,9 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)g
 (app)s(endices)g(that)h(qualify)330 5340 y(as)28 b(Secondary)g
 (Sections)g(and)f(con)m(tain)j(no)d(material)j(copied)e(from)f(the)h
 (Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop end
-%%Page: 139 145
-TeXDict begin 139 144 bop 150 -116 a Ft(App)s(endix)29
-b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(139)330 299
+%%Page: 141 147
+TeXDict begin 141 146 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(141)330 299
 y(y)m(our)32 b(option)h(designate)h(some)e(or)h(all)g(of)f(these)h
 (sections)h(as)e(in)m(v)-5 b(arian)m(t.)48 b(T)-8 b(o)33
 b(do)f(this,)h(add)f(their)330 408 y(titles)37 b(to)f(the)f(list)h(of)g
@@ -14007,8 +14020,8 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
 (other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
 5340 y(that)d(do)s(cumen)m(t.)p eop end
-%%Page: 140 146
-TeXDict begin 140 145 bop 150 -116 a Ft(140)2527 b(Bash)31
+%%Page: 142 148
+TeXDict begin 142 147 bop 150 -116 a Ft(142)2527 b(Bash)31
 b(Reference)g(Man)m(ual)199 299 y(7.)61 b(A)m(GGREGA)-8
 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 428 y(A)d(compilation)i
 (of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30
@@ -14097,9 +14110,9 @@ y(this)i(License,)j(y)m(ou)d(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g(v)m
 (ersion)g(ev)m(er)g(published)e(\(not)i(as)g(a)f(draft\))h(b)m(y)f(the)
 h(F)-8 b(ree)330 5320 y(Soft)m(w)m(are)31 b(F)-8 b(oundation.)p
 eop end
-%%Page: 141 147
-TeXDict begin 141 146 bop 150 -116 a Ft(App)s(endix)29
-b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(141)150 299
+%%Page: 143 149
+TeXDict begin 143 148 bop 150 -116 a Ft(App)s(endix)29
+b(C:)h(Cop)m(ying)g(This)g(Man)m(ual)2063 b(143)150 299
 y Fk(C.1.1)62 b(ADDENDUM:)41 b(Ho)m(w)f(to)h(use)h(this)f(License)g
 (for)h(y)m(our)f(do)s(cumen)m(ts)275 543 y Ft(T)-8 b(o)27
 b(use)g(this)g(License)h(in)f(a)h(do)s(cumen)m(t)f(y)m(ou)h(ha)m(v)m(e)
@@ -14134,189 +14147,189 @@ b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g(of)g(the)150
 (license,)k(suc)m(h)43 b(as)g(the)g(GNU)150 2392 y(General)31
 b(Public)f(License,)i(to)f(p)s(ermit)e(their)i(use)f(in)g(free)g(soft)m
 (w)m(are.)p eop end
-%%Page: 142 148
-TeXDict begin 142 147 bop 150 -116 a Ft(142)2527 b(Bash)31
+%%Page: 144 150
+TeXDict begin 144 149 bop 150 -116 a Ft(144)2527 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 143 149
-TeXDict begin 143 148 bop 150 -116 a Ft(Index)30 b(of)g(Shell)g
-(Builtin)h(Commands)2133 b(143)150 299 y Fo(Index)53
+%%Page: 145 151
+TeXDict begin 145 150 bop 150 -116 a Ft(Index)30 b(of)g(Shell)g
+(Builtin)h(Commands)2133 b(145)150 299 y Fo(Index)53
 b(of)h(Shell)e(Builtin)g(Commands)150 560 y Fr(.)150
 686 y Fe(.)17 b Fc(.)12 b(.)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(.)
 h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42
-b Fb(33)150 945 y Fr(:)150 1071 y Fe(:)17 b Fc(.)12 b(.)h(.)f(.)g(.)h
+b Fb(35)150 945 y Fr(:)150 1071 y Fe(:)17 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)42 b Fb(33)150 1339 y Fr([)150 1465 y Fe([)17
+(.)g(.)h(.)42 b Fb(35)150 1339 y Fr([)150 1465 y Fe([)17
 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(37)150 1732
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(39)150 1732
 y Fr(A)150 1858 y Fe(alias)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(39)150 2116 y Fr(B)150 2242 y Fe(bg)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h
+Fb(41)150 2116 y Fr(B)150 2242 y Fe(bg)15 b Fc(.)e(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
-(.)41 b Fb(84)150 2334 y Fe(bind)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+(.)41 b Fb(86)150 2334 y Fe(bind)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
-b Fb(39)150 2426 y Fe(break)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(41)150 2426 y Fe(break)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(33)150 2518 y Fe(builtin)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
+Fb(35)150 2518 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(40)150
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(42)150
 2777 y Fr(C)150 2903 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
-b Fb(40)150 2995 y Fe(cd)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(42)150 2995 y Fe(cd)15 b Fc(.)e(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41
-b Fb(34)150 3087 y Fe(command)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(36)150 3087 y Fe(command)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(41)150
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150
 3179 y Fe(compgen)7 b Fc(.)14 b(.)e(.)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(.)h(.)f(.)33 b Fb(109)150 3271 y Fe(complete)26
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(111)150 3271 y Fe(complete)26
 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)
-50 b Fb(109)150 3363 y Fe(continue)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)
+50 b Fb(111)150 3363 y Fe(continue)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(34)150
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(36)150
 3621 y Fr(D)150 3747 y Fe(declare)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(41)150 3839 y Fe(dirs)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+Fb(43)150 3839 y Fe(dirs)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
-b Fb(75)150 3931 y Fe(disown)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(77)150 3931 y Fe(disown)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(85)150
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(87)150
 4190 y Fr(E)150 4316 y Fe(echo)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
-b Fb(42)150 4408 y Fe(enable)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(44)150 4408 y Fe(enable)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(43)150
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(45)150
 4500 y Fe(eval)13 b Fc(.)g(.)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(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(34)150
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
 4592 y Fe(exec)13 b Fc(.)g(.)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(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(34)150
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
 4684 y Fe(exit)13 b Fc(.)g(.)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(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(34)150
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150
 4776 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(34)150 5053
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(36)150 5053
 y Fr(F)150 5179 y Fe(fc)14 b Fc(.)f(.)f(.)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(.)h(.)f(.)g(.)h(.)40
-b Fb(113)150 5271 y Fe(fg)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+b Fb(115)150 5271 y Fe(fg)15 b Fc(.)e(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41
-b Fb(84)150 5548 y Fr(G)150 5674 y Fe(getopts)8 b Fc(.)14
+b Fb(86)150 5548 y Fr(G)150 5674 y Fe(getopts)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(35)2025 560 y Fr(H)2025 676 y Fe(hash)13
+g(.)34 b Fb(37)2025 560 y Fr(H)2025 676 y Fe(hash)13
 b Fc(.)g(.)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(.)h(.)f(.)g
-(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(35)2025 764 y Fe(help)13
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(37)2025 764 y Fe(help)13
 b Fc(.)g(.)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(.)h(.)f(.)g
-(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(43)2025 851 y Fe(history)7
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(45)2025 851 y Fe(history)7
 b Fc(.)14 b(.)e(.)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(.)h(.)33 b Fb(114)2025 1103 y Fr(J)2025 1219 y Fe(jobs)13
+g(.)h(.)33 b Fb(116)2025 1103 y Fr(J)2025 1219 y Fe(jobs)13
 b Fc(.)g(.)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(.)h(.)f(.)g
-(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(84)2025 1470 y Fr(K)2025
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(86)2025 1470 y Fr(K)2025
 1586 y Fe(kill)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(85)2025
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(87)2025
 1819 y Fr(L)2025 1935 y Fe(let)14 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
-b Fb(43)2025 2023 y Fe(local)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(45)2025 2023 y Fe(local)11 b Fc(.)i(.)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(.)g(.)37
-b Fb(43)2025 2110 y Fe(logout)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(45)2025 2110 y Fe(logout)10 b Fc(.)j(.)f(.)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(.)h(.)35 b
-Fb(44)2025 2362 y Fr(P)2025 2478 y Fe(popd)13 b Fc(.)g(.)f(.)g(.)g(.)h
+Fb(46)2025 2362 y Fr(P)2025 2478 y Fe(popd)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(76)2025 2565 y Fe(printf)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(78)2025 2565 y Fe(printf)10 b Fc(.)j(.)f(.)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(.)h(.)35 b
-Fb(44)2025 2652 y Fe(pushd)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+Fb(46)2025 2652 y Fe(pushd)11 b Fc(.)i(.)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(.)g(.)37 b
-Fb(76)2025 2739 y Fe(pwd)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+Fb(78)2025 2739 y Fe(pwd)14 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
-b Fb(36)2025 2991 y Fr(R)2025 3107 y Fe(read)13 b Fc(.)g(.)f(.)g(.)g(.)
+b Fb(38)2025 2991 y Fr(R)2025 3107 y Fe(read)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
-38 b Fb(44)2025 3194 y Fe(readonly)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)
+38 b Fb(46)2025 3194 y Fe(readonly)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(36)2025
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(38)2025
 3281 y Fe(return)10 b Fc(.)j(.)f(.)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(.)h(.)35 b Fb(36)2025 3514
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(38)2025 3514
 y Fr(S)2025 3630 y Fe(set)14 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
-b Fb(51)2025 3718 y Fe(shift)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(53)2025 3718 y Fe(shift)11 b Fc(.)i(.)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(.)g(.)37
-b Fb(36)2025 3805 y Fe(shopt)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(38)2025 3805 y Fe(shopt)11 b Fc(.)i(.)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(.)g(.)37
-b Fb(45)2025 3892 y Fe(source)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(47)2025 3892 y Fe(source)10 b Fc(.)j(.)f(.)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(.)h(.)35 b
-Fb(49)2025 3979 y Fe(suspend)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+Fb(51)2025 3979 y Fe(suspend)8 b Fc(.)14 b(.)e(.)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(.)34 b Fb(85)2025
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(87)2025
 4231 y Fr(T)2025 4347 y Fe(test)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(37)2025 4434 y Fe(times)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(39)2025 4434 y Fe(times)11 b Fc(.)i(.)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(.)g(.)37
-b Fb(38)2025 4521 y Fe(trap)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(40)2025 4521 y Fe(trap)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(38)2025 4609 y Fe(type)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(40)2025 4609 y Fe(type)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(49)2025 4696 y Fe(typeset)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(51)2025 4696 y Fe(typeset)8 b Fc(.)14 b(.)e(.)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(.)34 b Fb(49)2025
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(51)2025
 4948 y Fr(U)2025 5064 y Fe(ulimit)10 b Fc(.)j(.)f(.)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(.)h(.)35
-b Fb(50)2025 5151 y Fe(umask)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(52)2025 5151 y Fe(umask)11 b Fc(.)i(.)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(.)g(.)37
-b Fb(38)2025 5238 y Fe(unalias)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(40)2025 5238 y Fe(unalias)8 b Fc(.)14 b(.)e(.)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(.)34 b Fb(50)2025
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(53)2025
 5325 y Fe(unset)11 b Fc(.)i(.)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(.)g(.)37 b Fb(39)2025 5558
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(41)2025 5558
 y Fr(W)2025 5674 y Fe(wait)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(85)p eop end
-%%Page: 144 150
-TeXDict begin 144 149 bop 150 -116 a Ft(144)2527 b(Bash)31
+b Fb(87)p eop end
+%%Page: 146 152
+TeXDict begin 146 151 bop 150 -116 a Ft(146)2527 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 145 151
-TeXDict begin 145 150 bop 150 -116 a Ft(Index)30 b(of)g(Shell)g(Reserv)
-m(ed)h(W)-8 b(ords)2247 b(145)150 299 y Fo(Index)53 b(of)h(Shell)e
+%%Page: 147 153
+TeXDict begin 147 152 bop 150 -116 a Ft(Index)30 b(of)g(Shell)g(Reserv)
+m(ed)h(W)-8 b(ords)2247 b(147)150 299 y Fo(Index)53 b(of)h(Shell)e
 (Reserv)l(ed)g(W)-13 b(ords)150 610 y Fr(!)150 743 y
 Fe(!)18 b Fc(.)12 b(.)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(.)
@@ -14383,12 +14396,12 @@ h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
 Fc(.)i(.)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(.)g(.)37 b Fb(10)p eop end
-%%Page: 146 152
-TeXDict begin 146 151 bop 150 -116 a Ft(146)2527 b(Bash)31
+%%Page: 148 154
+TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31
 b(Reference)g(Man)m(ual)p eop end
-%%Page: 147 153
-TeXDict begin 147 152 bop 150 -116 a Ft(P)m(arameter)32
-b(and)d(V)-8 b(ariable)32 b(Index)2262 b(147)150 299
+%%Page: 149 155
+TeXDict begin 149 154 bop 150 -116 a Ft(P)m(arameter)32
+b(and)d(V)-8 b(ariable)32 b(Index)2262 b(149)150 299
 y Fo(P)l(arameter)54 b(and)f(V)-13 b(ariable)53 b(Index)150
 610 y Fr(!)150 727 y Fe(!)17 b Fc(.)12 b(.)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
@@ -14423,276 +14436,276 @@ b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
 h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(16)150 3809 y Fr(A)150
 3926 y Fe(auto_resume)23 b Fc(.)12 b(.)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(.)h(.)f(.)46 b Fb(86)150 4171 y Fr(B)150 4288
+(.)f(.)g(.)h(.)f(.)46 b Fb(88)150 4171 y Fr(B)150 4288
 y Fe(BASH)13 b Fc(.)g(.)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(.)h(.)f(.)
-g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(55)150 4375
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(57)150 4375
 y Fe(BASH_ARGC)25 b Fc(.)13 b(.)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(.)h(.)f(.)49 b Fb(56)150 4463 y Fe(BASH_ARGV)25
+h(.)f(.)g(.)h(.)f(.)49 b Fb(58)150 4463 y Fe(BASH_ARGV)25
 b Fc(.)13 b(.)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(.)h(.)f(.)
-49 b Fb(56)150 4551 y Fe(BASH_COMMAND)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)
+49 b Fb(58)150 4551 y Fe(BASH_COMMAND)22 b Fc(.)12 b(.)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(.)45 b Fb(56)150 4638 y
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(58)150 4638 y
 Fe(BASH_ENV)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(56)150 4726 y Fe(BASH_EXECUTION_STRING)
+g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(58)150 4726 y Fe(BASH_EXECUTION_STRING)
 d Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)50 b Fb(56)150 4814 y Fe(BASH_LINENO)23
+(.)g(.)h(.)f(.)g(.)50 b Fb(58)150 4814 y Fe(BASH_LINENO)23
 b Fc(.)12 b(.)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(.)h(.)f(.)46
-b Fb(56)150 4901 y Fe(BASH_REMATCH)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h
+b Fb(58)150 4901 y Fe(BASH_REMATCH)22 b Fc(.)12 b(.)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(.)45 b Fb(56)150 4989 y Fe(BASH_SOURCE)23
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(58)150 4989 y Fe(BASH_SOURCE)23
 b Fc(.)12 b(.)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(.)h(.)f(.)46
-b Fb(56)150 5077 y Fe(BASH_SUBSHELL)18 b Fc(.)d(.)d(.)h(.)f(.)g(.)g(.)h
+b Fb(58)150 5077 y Fe(BASH_SUBSHELL)18 b Fc(.)d(.)d(.)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(.)43 b Fb(56)150 5165 y Fe(BASH_VERSINFO)18
+h(.)f(.)g(.)h(.)f(.)43 b Fb(58)150 5165 y Fe(BASH_VERSINFO)18
 b Fc(.)d(.)d(.)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(.)43
-b Fb(56)150 5252 y Fe(BASH_VERSION)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h
+b Fb(58)150 5252 y Fe(BASH_VERSION)22 b Fc(.)12 b(.)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(.)45 b Fb(57)150 5340 y Fe(bell-style)24
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(59)150 5340 y Fe(bell-style)24
 b Fc(.)13 b(.)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(.)47
-b Fb(91)2025 610 y Fe(bind-tty-special-chars)27 b Fc(.)13
+b Fb(93)2025 610 y Fe(bind-tty-special-chars)27 b Fc(.)13
 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)48 b Fb(91)2025 866 y Fr(C)2025 983 y Fe(CDPATH)10
+(.)h(.)48 b Fb(93)2025 866 y Fr(C)2025 983 y Fe(CDPATH)10
 b Fc(.)j(.)f(.)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(.)h(.)35 b Fb(55)2025 1071 y Fe(COLUMNS)8 b
+(.)f(.)g(.)h(.)35 b Fb(57)2025 1071 y Fe(COLUMNS)8 b
 Fc(.)14 b(.)e(.)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(.)34 b Fb(57)2025 1159 y Fe(comment-begin)18
+g(.)h(.)f(.)34 b Fb(59)2025 1159 y Fe(comment-begin)18
 b Fc(.)d(.)d(.)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(.)h(.)43
-b Fb(91)2025 1247 y Fe(COMP_CWORD)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+b Fb(93)2025 1247 y Fe(COMP_CWORD)24 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)48 b Fb(57)2025 1335
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(59)2025 1335
 y Fe(COMP_LINE)25 b Fc(.)13 b(.)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(.)49 b Fb(57)2025 1423 y Fe(COMP_POINT)24
+h(.)f(.)g(.)h(.)f(.)49 b Fb(59)2025 1423 y Fe(COMP_POINT)24
 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)48
-b Fb(57)2025 1510 y Fe(COMP_WORDBREAKS)15 b Fc(.)g(.)e(.)f(.)g(.)g(.)h
+b Fb(59)2025 1510 y Fe(COMP_WORDBREAKS)15 b Fc(.)g(.)e(.)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(.)40 b Fb(57)2025 1598 y Fe(COMP_WORDS)24
+h(.)f(.)g(.)h(.)40 b Fb(59)2025 1598 y Fe(COMP_WORDS)24
 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)48
-b Fb(57)2025 1686 y Fe(completion-query-items)27 b Fc(.)13
+b Fb(59)2025 1686 y Fe(completion-query-items)27 b Fc(.)13
 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)48 b Fb(91)2025 1774 y Fe(COMPREPLY)25 b Fc(.)13
+(.)h(.)48 b Fb(93)2025 1774 y Fe(COMPREPLY)25 b Fc(.)13
 b(.)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(.)49
-b Fb(58)2025 1862 y Fe(convert-meta)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g
+b Fb(60)2025 1862 y Fe(convert-meta)22 b Fc(.)12 b(.)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(.)45 b Fb(92)2025 2099 y Fr(D)2025
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(94)2025 2099 y Fr(D)2025
 2216 y Fe(DIRSTACK)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(58)2025 2304 y
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(60)2025 2304 y
 Fe(disable-completion)10 b Fc(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
-b Fb(92)2025 2559 y Fr(E)2025 2677 y Fe(editing-mode)22
+b Fb(94)2025 2559 y Fr(E)2025 2677 y Fe(editing-mode)22
 b Fc(.)12 b(.)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(.)45
-b Fb(92)2025 2765 y Fe(EMACS)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(94)2025 2765 y Fe(EMACS)11 b Fc(.)i(.)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(.)g(.)37
-b Fb(58)2025 2853 y Fe(enable-keypad)18 b Fc(.)d(.)d(.)g(.)h(.)f(.)g(.)
+b Fb(60)2025 2853 y Fe(enable-keypad)18 b Fc(.)d(.)d(.)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(.)h(.)43 b Fb(92)2025 2940 y Fe(EUID)13
+(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(94)2025 2940 y Fe(EUID)13
 b Fc(.)g(.)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(.)h(.)f(.)g
-(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(58)2025 3028 y Fe(expand-tilde)22
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(60)2025 3028 y Fe(expand-tilde)22
 b Fc(.)12 b(.)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(.)45
-b Fb(92)2025 3284 y Fr(F)2025 3401 y Fe(FCEDIT)10 b Fc(.)j(.)f(.)h(.)f
+b Fb(94)2025 3284 y Fr(F)2025 3401 y Fe(FCEDIT)10 b Fc(.)j(.)f(.)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(.)h(.)35
-b Fb(58)2025 3489 y Fe(FIGNORE)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(60)2025 3489 y Fe(FIGNORE)8 b Fc(.)14 b(.)e(.)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(.)34 b Fb(58)2025
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(60)2025
 3577 y Fe(FUNCNAME)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(58)2025 3814 y
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(60)2025 3814 y
 Fr(G)2025 3931 y Fe(GLOBIGNORE)24 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)48 b Fb(58)2025 4019
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(60)2025 4019
 y Fe(GROUPS)10 b Fc(.)j(.)f(.)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(.)h(.)35 b Fb(58)2025 4256 y Fr(H)2025
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(60)2025 4256 y Fr(H)2025
 4373 y Fe(histchars)25 b Fc(.)13 b(.)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(.)49 b Fb(58)2025 4461 y Fe(HISTCMD)8
+g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(60)2025 4461 y Fe(HISTCMD)8
 b Fc(.)14 b(.)e(.)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(.)34 b Fb(59)2025 4549 y Fe(HISTCONTROL)23
+g(.)h(.)f(.)34 b Fb(61)2025 4549 y Fe(HISTCONTROL)23
 b Fc(.)12 b(.)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(.)h(.)46
-b Fb(59)2025 4637 y Fe(HISTFILE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h
+b Fb(61)2025 4637 y Fe(HISTFILE)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(59)2025
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(61)2025
 4725 y Fe(HISTFILESIZE)22 b Fc(.)12 b(.)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(.)45 b Fb(59)2025 4813 y Fe(HISTIGNORE)24
+g(.)h(.)f(.)g(.)45 b Fb(61)2025 4813 y Fe(HISTIGNORE)24
 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)48
-b Fb(59)2025 4900 y Fe(history-preserve-point)27 b Fc(.)13
+b Fb(61)2025 4900 y Fe(history-preserve-point)27 b Fc(.)13
 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)48 b Fb(92)2025 4988 y Fe(HISTSIZE)7 b Fc(.)14
+(.)h(.)48 b Fb(94)2025 4988 y Fe(HISTSIZE)7 b Fc(.)14
 b(.)e(.)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(.)
-32 b Fb(59)2025 5076 y Fe(HISTTIMEFORMAT)16 b Fc(.)f(.)e(.)f(.)g(.)h(.)
+32 b Fb(61)2025 5076 y Fe(HISTTIMEFORMAT)16 b Fc(.)f(.)e(.)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(.)42 b Fb(59)2025 5164 y Fe(HOME)13
+(.)f(.)g(.)g(.)h(.)f(.)42 b Fb(61)2025 5164 y Fe(HOME)13
 b Fc(.)g(.)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(.)h(.)f(.)g
-(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(55)2025 5252 y Fe
+(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(57)2025 5252 y Fe
 (horizontal-scroll-mode)27 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(92)2025
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(94)2025
 5340 y Fe(HOSTFILE)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(60)p eop end
-%%Page: 148 154
-TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(62)p eop end
+%%Page: 150 156
+TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fe(HOSTNAME)7 b Fc(.)14
 b(.)e(.)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(.)
-32 b Fb(60)150 387 y Fe(HOSTTYPE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h
+32 b Fb(62)150 387 y Fe(HOSTTYPE)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(60)150
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(62)150
 627 y Fr(I)150 745 y Fe(IFS)14 b Fc(.)f(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39
-b Fb(55)150 834 y Fe(IGNOREEOF)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+b Fb(57)150 834 y Fe(IGNOREEOF)25 b Fc(.)13 b(.)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(.)h(.)f(.)49 b Fb(60)150 922
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(62)150 922
 y Fe(input-meta)24 b Fc(.)13 b(.)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(.)47 b Fb(92)150 1011 y Fe(INPUTRC)8 b
+h(.)f(.)g(.)h(.)47 b Fb(94)150 1011 y Fe(INPUTRC)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(60)150 1099 y Fe(isearch-terminators)9
+h(.)f(.)g(.)34 b Fb(62)150 1099 y Fe(isearch-terminators)9
 b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(92)150 1339
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(94)150 1339
 y Fr(K)150 1457 y Fe(keymap)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(92)150
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(94)150
 1715 y Fr(L)150 1834 y Fe(LANG)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
-b Fb(60)150 1922 y Fe(LC_ALL)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(62)150 1922 y Fe(LC_ALL)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(60)150
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(62)150
 2011 y Fe(LC_COLLATE)24 b Fc(.)13 b(.)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(.)47 b Fb(60)150 2099 y Fe(LC_CTYPE)7
+g(.)h(.)f(.)g(.)h(.)47 b Fb(62)150 2099 y Fe(LC_CTYPE)7
 b Fc(.)14 b(.)e(.)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(.)32 b Fb(60)150 2188 y Fe(LC_MESSAGES)14 b Fc(.)h(.)d(.)h(.)f(.)
+g(.)h(.)32 b Fb(62)150 2188 y Fe(LC_MESSAGES)14 b Fc(.)h(.)d(.)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(.)40 b Fb(7,)26 b(60)150
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(7,)26 b(62)150
 2276 y Fe(LC_NUMERIC)e Fc(.)13 b(.)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(.)47 b Fb(60)150 2364 y Fe(LINENO)10
+(.)h(.)f(.)g(.)h(.)47 b Fb(62)150 2364 y Fe(LINENO)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(60)150 2453 y Fe(LINES)11 b Fc(.)j(.)e(.)g(.)g
+(.)g(.)h(.)f(.)35 b Fb(62)150 2453 y Fe(LINES)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(61)150 2692 y Fr(M)150 2811 y Fe(MACHTYPE)7 b Fc(.)14
+b Fb(63)150 2692 y Fr(M)150 2811 y Fe(MACHTYPE)7 b Fc(.)14
 b(.)e(.)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(.)
-32 b Fb(61)150 2899 y Fe(MAIL)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+32 b Fb(63)150 2899 y Fe(MAIL)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
-b Fb(55)150 2988 y Fe(MAILCHECK)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+b Fb(57)150 2988 y Fe(MAILCHECK)25 b Fc(.)13 b(.)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(.)h(.)f(.)49 b Fb(61)150 3076
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(63)150 3076
 y Fe(MAILPATH)7 b Fc(.)14 b(.)e(.)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(.)32 b Fb(55)150 3165 y Fe(mark-modified-lines)9
+g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(57)150 3165 y Fe(mark-modified-lines)9
 b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(93)150 3253
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(95)150 3253
 y Fe(mark-symlinked-directories)17 b Fc(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(93)150 3342
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(95)150 3342
 y Fe(match-hidden-files)10 b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
-b Fb(93)150 3430 y Fe(meta-flag)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+b Fb(95)150 3430 y Fe(meta-flag)25 b Fc(.)13 b(.)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(.)h(.)f(.)49 b Fb(92)150 3688
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(94)150 3688
 y Fr(O)150 3807 y Fe(OLDPWD)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(61)150
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(63)150
 3895 y Fe(OPTARG)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(55)150 3984
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(57)150 3984
 y Fe(OPTERR)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(61)150 4072 y Fe(OPTIND)10
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(63)150 4072 y Fe(OPTIND)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(55)150 4161 y Fe(OSTYPE)10 b Fc(.)j(.)g(.)f(.)g
+(.)g(.)h(.)f(.)35 b Fb(57)150 4161 y Fe(OSTYPE)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(61)2025 299 y Fe(output-meta)23 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)
+b Fb(63)2025 299 y Fe(output-meta)23 b Fc(.)12 b(.)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(.)h(.)46 b Fb(93)2025 551 y
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46 b Fb(95)2025 551 y
 Fr(P)2025 667 y Fe(page-completions)13 b Fc(.)j(.)c(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-h(.)f(.)39 b Fb(93)2025 754 y Fe(PATH)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f
+h(.)f(.)39 b Fb(95)2025 754 y Fe(PATH)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(55)2025 842 y Fe(PIPESTATUS)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+b Fb(57)2025 842 y Fe(PIPESTATUS)24 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)48 b Fb(61)2025 929 y
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(63)2025 929 y
 Fe(POSIXLY_CORRECT)15 b Fc(.)g(.)e(.)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(.)40
-b Fb(61)2025 1016 y Fe(PPID)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+b Fb(63)2025 1016 y Fe(PPID)13 b Fc(.)g(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(61)2025 1104 y Fe(PROMPT_COMMAND)16 b Fc(.)f(.)e(.)f(.)g(.)h(.)f
+b Fb(63)2025 1104 y Fe(PROMPT_COMMAND)16 b Fc(.)f(.)e(.)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(.)42 b Fb(61)2025 1191 y Fe(PS1)14
+f(.)g(.)g(.)h(.)f(.)42 b Fb(63)2025 1191 y Fe(PS1)14
 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(55)2025 1278 y Fe(PS2)14
+(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(57)2025 1278 y Fe(PS2)14
 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(55)2025 1365 y Fe(PS3)14
+(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(57)2025 1365 y Fe(PS3)14
 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(61)2025 1453 y Fe(PS4)14
+(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(63)2025 1453 y Fe(PS4)14
 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(61)2025 1540 y Fe(PWD)14
+(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(63)2025 1540 y Fe(PWD)14
 b Fc(.)f(.)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(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(61)2025 1773 y Fr(R)2025
+(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(63)2025 1773 y Fr(R)2025
 1890 y Fe(RANDOM)10 b Fc(.)j(.)f(.)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(.)h(.)35 b Fb(61)2025 1977
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(63)2025 1977
 y Fe(REPLY)11 b Fc(.)i(.)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(.)g(.)37 b Fb(61)2025 2210
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(63)2025 2210
 y Fr(S)2025 2326 y Fe(SECONDS)8 b Fc(.)14 b(.)e(.)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(.)34 b Fb(62)2025
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(64)2025
 2414 y Fe(SHELL)11 b Fc(.)i(.)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(.)g(.)37 b Fb(62)2025 2501
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(64)2025 2501
 y Fe(SHELLOPTS)25 b Fc(.)13 b(.)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(.)49 b Fb(62)2025 2588 y Fe(SHLVL)11
+h(.)f(.)g(.)h(.)f(.)49 b Fb(64)2025 2588 y Fe(SHLVL)11
 b Fc(.)i(.)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(.)g(.)37 b Fb(62)2025 2675 y Fe(show-all-if-ambiguous)29
+(.)g(.)h(.)f(.)g(.)37 b Fb(64)2025 2675 y Fe(show-all-if-ambiguous)29
 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)g(.)h(.)f(.)50 b Fb(93)2025 2763 y Fe(show-all-if-unmodified)27
+(.)g(.)g(.)h(.)f(.)50 b Fb(95)2025 2763 y Fe(show-all-if-unmodified)27
 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)48 b Fb(93)2025 2996 y Fr(T)2025 3112
+(.)f(.)g(.)h(.)48 b Fb(95)2025 2996 y Fr(T)2025 3112
 y Fe(TEXTDOMAIN)25 b Fc(.)12 b(.)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(.)h(.)49 b Fb(7)2025 3200 y Fe(TEXTDOMAINDIR)21
@@ -14700,280 +14713,279 @@ b Fc(.)13 b(.)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(.)45
 b Fb(7)2025 3287 y Fe(TIMEFORMAT)24 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)48 b Fb(62)2025 3374
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(64)2025 3374
 y Fe(TMOUT)11 b Fc(.)i(.)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(.)g(.)37 b Fb(62)2025 3461
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(64)2025 3461
 y Fe(TMPDIR)10 b Fc(.)j(.)f(.)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(.)h(.)35 b Fb(63)2025 3695 y Fr(U)2025
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(65)2025 3695 y Fr(U)2025
 3811 y Fe(UID)14 b Fc(.)f(.)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(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(63)2025
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(65)2025
 4044 y Fr(V)2025 4160 y Fe(visible-stats)18 b Fc(.)d(.)d(.)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(.)h(.)43 b Fb(94)p eop end
-%%Page: 149 155
-TeXDict begin 149 154 bop 150 -116 a Ft(F)-8 b(unction)31
-b(Index)2861 b(149)150 299 y Fo(F)-13 b(unction)52 b(Index)150
+(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(96)p eop end
+%%Page: 151 157
+TeXDict begin 151 156 bop 150 -116 a Ft(F)-8 b(unction)31
+b(Index)2861 b(151)150 299 y Fo(F)-13 b(unction)52 b(Index)150
 610 y Fr(A)150 749 y Fe(abort)27 b(\(C-g\))8 b Fc(.)13
 b(.)g(.)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(.)h(.)f(.)34
-b Fb(105)150 848 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))12
-b Fc(.)h(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37
-b Fb(99)150 946 y Fe(alias-expand-line)29 b(\(\))13 b
-Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)39 b Fb(107)150 1257 y Fr(B)150 1397
-y Fe(backward-char)29 b(\(C-b\))16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41
-b Fb(99)150 1495 y Fe(backward-delete-char)30 b(\(Rubout\))18
-b Fc(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)44
-b Fb(101)150 1594 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))e
-Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(102)150
-1692 y Fe(backward-kill-word)30 b(\(M-)999 1689 y Fg(h)p
-1024 1636 146 4 v 1024 1692 a Ff(DEL)p 1024 1708 V 1165
-1689 a Fg(i)1195 1692 y Fe(\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)46 b Fb(102)150 1791 y Fe(backward-word)29
-b(\(M-b\))16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41 b Fb(99)150
+b Fb(107)150 848 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))11
+b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(101)150
+946 y Fe(alias-expand-line)29 b(\(\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39
+b Fb(109)150 1257 y Fr(B)150 1397 y Fe(backward-char)29
+b(\(C-b\))15 b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)41 b Fb(101)150
+1495 y Fe(backward-delete-char)30 b(\(Rubout\))18 b Fc(.)d(.)d(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)44 b Fb(103)150 1594 y
+Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))e Fc(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(104)150 1692
+y Fe(backward-kill-word)30 b(\(M-)999 1689 y Fg(h)p 1024
+1636 146 4 v 1024 1692 a Ff(DEL)p 1024 1708 V 1165 1689
+a Fg(i)1195 1692 y Fe(\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)46 b Fb(104)150 1791 y Fe(backward-word)29
+b(\(M-b\))15 b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)41 b Fb(101)150
 1889 y Fe(beginning-of-history)30 b(\(M-<\))24 b Fc(.)12
 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)49
-b Fb(100)150 1988 y Fe(beginning-of-line)29 b(\(C-a\))10
-b Fc(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)35 b Fb(99)150 2299 y Fr(C)150 2438 y Fe
+b Fb(102)150 1988 y Fe(beginning-of-line)29 b(\(C-a\))9
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)35 b Fb(101)150 2299 y Fr(C)150 2438 y Fe
 (call-last-kbd-macro)30 b(\(C-x)c(e\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(105)150 2537
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(107)150 2537
 y Fe(capitalize-word)29 b(\(M-c\))12 b Fc(.)h(.)g(.)f(.)g(.)h(.)f(.)g
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
-b Fb(101)150 2635 y Fe(character-search)29 b(\(C-]\))10
+b Fb(103)150 2635 y Fe(character-search)29 b(\(C-]\))10
 b Fc(.)k(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)g(.)h(.)36 b Fb(105)150 2734 y Fe(character-search-backward)31
+g(.)g(.)h(.)36 b Fb(107)150 2734 y Fe(character-search-backward)31
 b(\(M-C-]\))12 b Fc(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.)38
-b Fb(105)150 2832 y Fe(clear-screen)28 b(\(C-l\))17 b
-Fc(.)d(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fb(99)150 2931 y
-Fe(complete)27 b(\()528 2928 y Fg(h)p 553 2875 148 4
-v 553 2931 a Ff(T)-6 b(AB)p 553 2946 V 697 2928 a Fg(i)726
-2931 y Fe(\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44
-b Fb(103)150 3029 y Fe(complete-command)29 b(\(M-!\))10
-b Fc(.)k(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)g(.)h(.)36 b Fb(104)150 3128 y Fe(complete-filename)29
-b(\(M-/\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(104)150 3226 y Fe(complete-hostname)29
+b Fb(107)150 2832 y Fe(clear-screen)28 b(\(C-l\))16 b
+Fc(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(101)150 2931 y Fe(complete)27
+b(\()528 2928 y Fg(h)p 553 2875 148 4 v 553 2931 a Ff(T)-6
+b(AB)p 553 2946 V 697 2928 a Fg(i)726 2931 y Fe(\))18
+b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(105)150
+3029 y Fe(complete-command)29 b(\(M-!\))10 b Fc(.)k(.)e(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36
+b Fb(106)150 3128 y Fe(complete-filename)29 b(\(M-/\))9
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)35 b Fb(106)150 3226 y Fe(complete-hostname)29
 b(\(M-@\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(104)150 3325 y Fe(complete-into-braces)
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(106)150 3325 y Fe(complete-into-braces)
 30 b(\(M-{\))24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
-(.)f(.)g(.)49 b Fb(104)150 3423 y Fe(complete-username)29
+(.)f(.)g(.)49 b Fb(106)150 3423 y Fe(complete-username)29
 b(\(M-~\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(104)150 3522 y Fe(complete-variable)29
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(106)150 3522 y Fe(complete-variable)29
 b(\(M-$\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(104)150 3620 y Fe(copy-backward-word)30
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(106)150 3620 y Fe(copy-backward-word)30
 b(\(\))12 b Fc(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(102)150 3719 y Fe(copy-forward-word)
+(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(104)150 3719 y Fe(copy-forward-word)
 29 b(\(\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(102)150 3817
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(104)150 3817
 y Fe(copy-region-as-kill)30 b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36
-b Fb(102)150 4128 y Fr(D)150 4268 y Fe(delete-char)28
+b Fb(104)150 4128 y Fr(D)150 4268 y Fe(delete-char)28
 b(\(C-d\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b
-Fb(101)150 4366 y Fe(delete-char-or-list)30 b(\(\))10
+Fb(103)150 4366 y Fe(delete-char-or-list)30 b(\(\))10
 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)g(.)h(.)36 b Fb(104)150 4465 y Fe(delete-horizontal-space)31
+g(.)g(.)h(.)36 b Fb(106)150 4465 y Fe(delete-horizontal-space)31
 b(\(\))23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)49 b Fb(102)150 4563 y Fe(digit-argument)29 b(\()p
+(.)g(.)49 b Fb(104)150 4563 y Fe(digit-argument)29 b(\()p
 Fd(M-0)p Fe(,)e Fd(M-1)p Fe(,)f(...)g Fd(M--)p Fe(\))13
-b Fc(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)39 b Fb(103)150 4662
+b Fc(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)39 b Fb(105)150 4662
 y Fe(display-shell-version)30 b(\(C-x)d(C-v\))c Fc(.)12
-b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(106)150 4760
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(108)150 4760
 y Fe(do-uppercase-version)30 b(\(M-a,)d(M-b,)f(M-)p Fd(x)p
 Fe(,)h(...)q(\))317 4847 y Fc(.)12 b(.)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
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(105)150
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(107)150
 4946 y Fe(downcase-word)29 b(\(M-l\))15 b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)
 h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)41
-b Fb(101)150 5044 y Fe(dump-functions)29 b(\(\))18 b
+b Fb(103)150 5044 y Fe(dump-functions)29 b(\(\))18 b
 Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(106)150 5143
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(108)150 5143
 y Fe(dump-macros)28 b(\(\))22 b Fc(.)13 b(.)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(.)48 b Fb(106)150 5241 y Fe(dump-variables)29 b(\(\))18
+f(.)g(.)48 b Fb(108)150 5241 y Fe(dump-variables)29 b(\(\))18
 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(106)150 5340
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(108)150 5340
 y Fe(dynamic-complete-history)31 b(\(M-)1234 5337 y Fg(h)p
 1259 5284 V 1259 5340 a Ff(T)-6 b(AB)p 1259 5355 V 1403
 5337 a Fg(i)1432 5340 y Fe(\))10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)36
-b Fb(104)2025 610 y Fr(E)2025 730 y Fe(edit-and-execute-command)31
+b Fb(106)2025 610 y Fr(E)2025 730 y Fe(edit-and-execute-command)31
 b(\(C-xC-e\))12 b Fc(.)i(.)f(.)f(.)g(.)h(.)f(.)g(.)39
-b Fb(107)2025 819 y Fe(end-kbd-macro)28 b(\(C-x)f(\)\))19
+b Fb(109)2025 819 y Fe(end-kbd-macro)28 b(\(C-x)f(\)\))19
 b Fc(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)45 b Fb(105)2025 909 y Fe(end-of-history)29
+(.)g(.)h(.)f(.)g(.)45 b Fb(107)2025 909 y Fe(end-of-history)29
 b(\(M->\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(100)2025 998
-y Fe(end-of-line)28 b(\(C-e\))20 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)44 b Fb(99)2025 1087 y Fe(exchange-point-and-mark)31
-b(\(C-x)26 b(C-x\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)45
-b Fb(105)2025 1349 y Fr(F)2025 1469 y Fe(forward-backward-delete-char)
-32 b(\(\))15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)42
-b Fb(101)2025 1558 y Fe(forward-char)28 b(\(C-f\))17
-b Fc(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(99)2025 1647
-y Fe(forward-search-history)30 b(\(C-s\))21 b Fc(.)13
-b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)46 b
-Fb(100)2025 1736 y Fe(forward-word)28 b(\(M-f\))17 b
-Fc(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(99)2025 1988 y
-Fr(G)2025 2108 y Fe(glob-complete-word)29 b(\(M-g\))7
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(102)2025 998
+y Fe(end-of-line)28 b(\(C-e\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44
+b Fb(101)2025 1087 y Fe(exchange-point-and-mark)31 b(\(C-x)26
+b(C-x\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)45 b
+Fb(107)2025 1349 y Fr(F)2025 1469 y Fe(forward-backward-delete-char)32
+b(\(\))15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)42
+b Fb(103)2025 1558 y Fe(forward-char)28 b(\(C-f\))16
+b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(101)2025 1647 y Fe
+(forward-search-history)30 b(\(C-s\))21 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)46 b Fb(102)2025 1736 y Fe(forward-word)28
+b(\(M-f\))16 b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(101)2025
+1988 y Fr(G)2025 2108 y Fe(glob-complete-word)29 b(\(M-g\))7
 b Fc(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)g(.)34 b Fb(106)2025 2197 y Fe(glob-expand-word)29
+(.)g(.)34 b Fb(108)2025 2197 y Fe(glob-expand-word)29
 b(\(C-x)e(*\))14 b Fc(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(106)2025 2286 y Fe(glob-list-expansions)
+(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(108)2025 2286 y Fe(glob-list-expansions)
 30 b(\(C-x)c(g\))8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)g(.)35 b Fb(106)2025 2548 y Fr(H)2025 2668 y Fe
+(.)g(.)g(.)35 b Fb(108)2025 2548 y Fr(H)2025 2668 y Fe
 (history-and-alias-expand-line)d(\(\))14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)40 b Fb(107)2025 2757 y Fe(history-expand-line)30
+(.)h(.)f(.)40 b Fb(109)2025 2757 y Fe(history-expand-line)30
 b(\(M-^\))25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
-f(.)g(.)h(.)50 b Fb(106)2025 2846 y Fe(history-search-backward)31
+f(.)g(.)h(.)50 b Fb(108)2025 2846 y Fe(history-search-backward)31
 b(\(\))23 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)49 b Fb(100)2025 2935 y Fe(history-search-forward)30
+(.)g(.)49 b Fb(102)2025 2935 y Fe(history-search-forward)30
 b(\(\))25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)h(.)50 b Fb(100)2025 3197 y Fr(I)2025 3317 y Fe(insert-comment)
+(.)g(.)h(.)50 b Fb(102)2025 3197 y Fr(I)2025 3317 y Fe(insert-comment)
 29 b(\(M-#\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(106)2025
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(108)2025
 3406 y Fe(insert-completions)29 b(\(M-*\))7 b Fc(.)14
 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)34
-b Fb(103)2025 3495 y Fe(insert-last-argument)c(\(M-.)c(or)g(M-_\))8
-b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(107)2025
+b Fb(105)2025 3495 y Fe(insert-last-argument)c(\(M-.)c(or)g(M-_\))8
+b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(109)2025
 3757 y Fr(K)2025 3877 y Fe(kill-line)27 b(\(C-k\))22
 b Fc(.)12 b(.)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(.)47 b Fb(102)2025
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(104)2025
 3966 y Fe(kill-region)28 b(\(\))22 b Fc(.)13 b(.)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(.)48 b Fb(102)2025 4056 y Fe(kill-whole-line)29
+g(.)h(.)f(.)48 b Fb(104)2025 4056 y Fe(kill-whole-line)29
 b(\(\))16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(102)2025
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(104)2025
 4145 y Fe(kill-word)27 b(\(M-d\))22 b Fc(.)12 b(.)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(.)47 b Fb(102)2025 4396 y Fr(M)2025 4516 y Fe(magic-space)28
+f(.)g(.)47 b Fb(104)2025 4396 y Fr(M)2025 4516 y Fe(magic-space)28
 b(\(\))22 b Fc(.)13 b(.)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(.)48
-b Fb(107)2025 4605 y Fe(menu-complete)28 b(\(\))20 b
+b Fb(109)2025 4605 y Fe(menu-complete)28 b(\(\))20 b
 Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(103)2025
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(105)2025
 4867 y Fr(N)2025 4987 y Fe(next-history)28 b(\(C-n\))16
 b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(100)2025 5076 y Fe
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(102)2025 5076 y Fe
 (non-incremental-forward-search)q(-hist)q(ory)32 b(\(M-n\))2191
 5164 y Fc(.)13 b(.)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(.)h(.)f(.)g(.)h(.)39 b Fb(100)2025 5253 y Fe
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(102)2025 5253 y Fe
 (non-incremental-reverse-search)q(-hist)q(ory)32 b(\(M-p\))2191
 5340 y Fc(.)13 b(.)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(.)h(.)f(.)g(.)h(.)39 b Fb(100)p eop end
-%%Page: 150 156
-TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31
+(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(102)p eop end
+%%Page: 152 158
+TeXDict begin 152 157 bop 150 -116 a Ft(152)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fr(O)150 425 y Fe
 (operate-and-get-next)f(\(C-o\))24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)49 b Fb(107)150 518 y
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)49 b Fb(109)150 518 y
 Fe(overwrite-mode)29 b(\(\))18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g
 (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
-b Fb(101)150 786 y Fr(P)150 913 y Fe(possible-command-completions)32
-b(\(C-x)26 b(!\))15 b Fc(.)e(.)g(.)f(.)g(.)41 b Fb(104)150
+b Fb(103)150 786 y Fr(P)150 913 y Fe(possible-command-completions)32
+b(\(C-x)26 b(!\))15 b Fc(.)e(.)g(.)f(.)g(.)41 b Fb(106)150
 1005 y Fe(possible-completions)30 b(\(M-?\))24 b Fc(.)12
 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)49
-b Fb(103)150 1097 y Fe(possible-filename-completions)32
-b(\(C-x)27 b(/\))14 b Fc(.)e(.)g(.)h(.)39 b Fb(104)150
+b Fb(105)150 1097 y Fe(possible-filename-completions)32
+b(\(C-x)27 b(/\))14 b Fc(.)e(.)g(.)h(.)39 b Fb(106)150
 1190 y Fe(possible-hostname-completions)32 b(\(C-x)27
-b(@\))14 b Fc(.)e(.)g(.)h(.)39 b Fb(104)150 1282 y Fe
+b(@\))14 b Fc(.)e(.)g(.)h(.)39 b Fb(106)150 1282 y Fe
 (possible-username-completions)32 b(\(C-x)27 b(~\))14
-b Fc(.)e(.)g(.)h(.)39 b Fb(104)150 1374 y Fe
+b Fc(.)e(.)g(.)h(.)39 b Fb(106)150 1374 y Fe
 (possible-variable-completions)32 b(\(C-x)27 b($\))14
-b Fc(.)e(.)g(.)h(.)39 b Fb(104)150 1467 y Fe(prefix-meta)28
+b Fc(.)e(.)g(.)h(.)39 b Fb(106)150 1467 y Fe(prefix-meta)28
 b(\()646 1464 y Fg(h)p 671 1411 139 4 v 671 1467 a Ff(ESC)p
 671 1482 V 804 1464 a Fg(i)834 1467 y Fe(\))19 b Fc(.)13
 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)45 b Fb(105)150 1559 y Fe(previous-history)29
+(.)g(.)h(.)f(.)g(.)45 b Fb(107)150 1559 y Fe(previous-history)29
 b(\(C-p\))10 b Fc(.)k(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)g(.)h(.)36 b Fb(100)150 1838 y Fr(Q)150
+(.)g(.)h(.)f(.)g(.)g(.)h(.)36 b Fb(102)150 1838 y Fr(Q)150
 1964 y Fe(quoted-insert)29 b(\(C-q)d(or)g(C-v\))18 b
 Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44
-b Fb(101)150 2243 y Fr(R)150 2369 y Fe(re-read-init-file)29
+b Fb(103)150 2243 y Fr(R)150 2369 y Fe(re-read-init-file)29
 b(\(C-x)e(C-r\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)36 b Fb(105)150 2462 y Fe(redraw-current-line)30
-b(\(\))11 b Fc(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(99)150 2554 y Fe
+(.)f(.)g(.)36 b Fb(107)150 2462 y Fe(redraw-current-line)30
+b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)36 b Fb(101)150 2554 y Fe
 (reverse-search-history)31 b(\(C-r\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(100)150 2646 y Fe(revert-line)28
+(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(102)150 2646 y Fe(revert-line)28
 b(\(M-r\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b
-Fb(105)2025 299 y Fr(S)2025 415 y Fe(self-insert)28 b(\(a,)e(b,)g(A,)g
+Fb(107)2025 299 y Fr(S)2025 415 y Fe(self-insert)28 b(\(a,)e(b,)g(A,)g
 (1,)g(!,)g(...)q(\))12 b Fc(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-38 b Fb(101)2025 503 y Fe(set-mark)27 b(\(C-@\))c Fc(.)13
+38 b Fb(103)2025 503 y Fe(set-mark)27 b(\(C-@\))c Fc(.)13
 b(.)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(.)48 b Fb(105)2025
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(107)2025
 590 y Fe(shell-expand-line)29 b(\(M-C-e\))d Fc(.)12 b(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)50 b Fb(106)2025
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)50 b Fb(108)2025
 677 y Fe(start-kbd-macro)29 b(\(C-x)d(\(\))16 b Fc(.)d(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42
-b Fb(104)2025 919 y Fr(T)2025 1036 y Fe(tilde-expand)28
+b Fb(106)2025 919 y Fr(T)2025 1036 y Fe(tilde-expand)28
 b(\(M-&\))16 b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(105)2025
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(107)2025
 1123 y Fe(transpose-chars)29 b(\(C-t\))12 b Fc(.)h(.)f(.)h(.)f(.)g(.)h
 (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)38
-b Fb(101)2025 1210 y Fe(transpose-words)29 b(\(M-t\))12
+b Fb(103)2025 1210 y Fe(transpose-words)29 b(\(M-t\))12
 b Fc(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)g(.)h(.)f(.)38 b Fb(101)2025 1463 y Fr(U)2025 1579
+g(.)g(.)h(.)f(.)38 b Fb(103)2025 1463 y Fr(U)2025 1579
 y Fe(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))14 b Fc(.)f(.)g(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40
-b Fb(105)2025 1666 y Fe(universal-argument)29 b(\(\))12
+b Fb(107)2025 1666 y Fe(universal-argument)29 b(\(\))12
 b Fc(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)g(.)h(.)f(.)38 b Fb(103)2025 1754 y Fe(unix-filename-rubout)30
+g(.)g(.)h(.)f(.)38 b Fb(105)2025 1754 y Fe(unix-filename-rubout)30
 b(\(\))9 b Fc(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)35 b Fb(102)2025 1841 y Fe(unix-line-discard)29
+(.)f(.)g(.)h(.)f(.)35 b Fb(104)2025 1841 y Fe(unix-line-discard)29
 b(\(C-u\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(102)2025 1928 y Fe(unix-word-rubout)29
+(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(104)2025 1928 y Fe(unix-word-rubout)29
 b(\(C-w\))10 b Fc(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(102)2025 2016 y Fe(upcase-word)28
+(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(104)2025 2016 y Fe(upcase-word)28
 b(\(M-u\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
 h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b
-Fb(101)2025 2268 y Fr(Y)2025 2384 y Fe(yank)26 b(\(C-y\))10
+Fb(103)2025 2268 y Fr(Y)2025 2384 y Fe(yank)26 b(\(C-y\))10
 b Fc(.)j(.)g(.)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(.)h(.)f(.)g(.)36
-b Fb(103)2025 2472 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))18
+b Fb(105)2025 2472 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))18
 b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-44 b Fb(100)2025 2559 y Fe(yank-nth-arg)28 b(\(M-C-y\))13
+44 b Fb(102)2025 2559 y Fe(yank-nth-arg)28 b(\(M-C-y\))13
 b Fc(.)h(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)h(.)f(.)g(.)h(.)39 b Fb(100)2025 2646 y Fe(yank-pop)27
+g(.)h(.)f(.)g(.)h(.)39 b Fb(102)2025 2646 y Fe(yank-pop)27
 b(\(M-y\))c Fc(.)13 b(.)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(.)48
-b Fb(103)p eop end
-%%Page: 151 157
-TeXDict begin 151 156 bop 150 -116 a Ft(Concept)31 b(Index)2882
-b(151)150 299 y Fo(Concept)52 b(Index)150 638 y Fr(A)150
+b Fb(105)p eop end
+%%Page: 153 159
+TeXDict begin 153 158 bop 150 -116 a Ft(Concept)31 b(Index)2882
+b(153)150 299 y Fo(Concept)52 b(Index)150 638 y Fr(A)150
 754 y Fb(alias)27 b(expansion)20 b Fc(.)12 b(.)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(.)45 b Fb(73)150 841 y(arithmetic)26
+(.)g(.)h(.)f(.)g(.)45 b Fb(75)150 841 y(arithmetic)26
 b(ev)l(aluation)f Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fb(72)150
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fb(74)150
 929 y(arithmetic)26 b(expansion)12 b Fc(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g
 (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
 b Fb(22)150 1016 y(arithmetic,)27 b(shell)20 b Fc(.)12
 b(.)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(.)45 b Fb(72)150
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(74)150
 1103 y(arra)n(ys)6 b Fc(.)13 b(.)g(.)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(.)h(.)f(.)g(.)32 b Fb(74)150
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)32 b Fb(76)150
 1353 y Fr(B)150 1469 y Fb(bac)n(kground)23 b Fc(.)13
 b(.)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(.)h(.)f(.)g(.)h(.)49
-b Fb(83)150 1556 y(Bash)26 b(con\014guration)11 b Fc(.)i(.)f(.)g(.)h(.)
+b Fb(85)150 1556 y(Bash)26 b(con\014guration)11 b Fc(.)i(.)f(.)g(.)h(.)
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)36 b Fb(119)150 1643 y(Bash)26 b(installation)6
+(.)f(.)g(.)h(.)36 b Fb(121)150 1643 y(Bash)26 b(installation)6
 b Fc(.)15 b(.)d(.)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(.)32 b Fb(119)150
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fb(121)150
 1730 y(Bourne)26 b(shell)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(.)36 b Fb(5)150 1818 y(brace)26
@@ -14984,7 +14996,7 @@ b Fb(17)150 1905 y(builtin)17 b Fc(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
 f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b
 Fb(3)150 2138 y Fr(C)150 2254 y Fb(command)26 b(editing)19
 b Fc(.)12 b(.)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(.)44 b Fb(87)150
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(89)150
 2341 y(command)26 b(execution)11 b Fc(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)h
 (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
 37 b Fb(29)150 2428 y(command)26 b(expansion)d Fc(.)12
@@ -14992,7 +15004,7 @@ b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
 (.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(28)150 2515 y(command)26
 b(history)16 b Fc(.)d(.)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(.)42
-b Fb(113)150 2603 y(command)26 b(searc)n(h)12 b Fc(.)h(.)f(.)g(.)h(.)f
+b Fb(115)150 2603 y(command)26 b(searc)n(h)12 b Fc(.)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(.)38 b Fb(29)150 2690 y(command)26
 b(substitution)e Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
@@ -15024,26 +15036,26 @@ b(.)f(.)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(.)h(.)f(.)g(.)34
 b Fb(7)150 3649 y(completion)27 b(builtins)22 b Fc(.)12
 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(109)150 3736 y(con\014guration)15
+(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(111)150 3736 y(con\014guration)15
 b Fc(.)e(.)g(.)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(.)41
-b Fb(119)150 3824 y(con)n(trol)26 b(op)r(erator)c Fc(.)12
+b Fb(121)150 3824 y(con)n(trol)26 b(op)r(erator)c Fc(.)12
 b(.)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(.)h(.)f(.)g(.)47 b Fb(3)150
 4073 y Fr(D)150 4189 y Fb(directory)26 b(stac)n(k)e Fc(.)12
 b(.)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(.)49 b Fb(75)150
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(77)150
 4439 y Fr(E)150 4555 y Fb(editing)26 b(command)g(lines)d
 Fc(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
-(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(87)150 4642 y(en)n(vironmen)n(t)10
+(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(89)150 4642 y(en)n(vironmen)n(t)10
 b Fc(.)i(.)g(.)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(.)35
 b Fb(30)150 4729 y(ev)l(aluation,)26 b(arithmetic)13
 b Fc(.)h(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
-f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(72)150 4817 y(ev)n(en)n(t)25
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(74)150 4817 y(ev)n(en)n(t)25
 b(designators)18 b Fc(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
 (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44
-b Fb(115)150 4904 y(execution)26 b(en)n(vironmen)n(t)19
+b Fb(117)150 4904 y(execution)26 b(en)n(vironmen)n(t)19
 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
 (.)f(.)g(.)h(.)f(.)g(.)h(.)45 b Fb(29)150 4991 y(exit)25
 b(status)17 b Fc(.)c(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
@@ -15067,12 +15079,12 @@ b Fb(23)2025 819 y(expansion,)26 b(tilde)9 b Fc(.)j(.)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(.)35 b Fb(18)2025 910 y(expressions,)27
 b(arithmetic)16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(72)2025
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(74)2025
 1000 y(expressions,)27 b(conditional)22 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47
-b Fb(71)2025 1267 y Fr(F)2025 1390 y Fb(FDL,)25 b(GNU)g(F)-6
+b Fb(73)2025 1267 y Fr(F)2025 1390 y Fb(FDL,)25 b(GNU)g(F)-6
 b(ree)26 b(Do)r(cumen)n(tation)g(License)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)
-36 b Fb(135)2025 1480 y(\014eld)21 b Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g
+36 b Fb(137)2025 1480 y(\014eld)21 b Fc(.)13 b(.)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(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)48
 b Fb(3)2025 1571 y(\014lename)8 b Fc(.)k(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
@@ -15083,36 +15095,36 @@ g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
 (.)g(.)36 b Fb(23)2025 1752 y(foreground)20 b Fc(.)12
 b(.)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(.)h(.)45
-b Fb(83)2025 1842 y(functions,)26 b(shell)c Fc(.)13 b(.)f(.)g(.)h(.)f
+b Fb(85)2025 1842 y(functions,)26 b(shell)c Fc(.)13 b(.)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(.)h(.)47 b Fb(14)2025 2109 y Fr(H)2025
 2232 y Fb(history)25 b(builtins)16 b Fc(.)d(.)f(.)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(.)42 b Fb(113)2025 2322 y(history)25 b(ev)n(en)n(ts)20
+f(.)g(.)h(.)42 b Fb(115)2025 2322 y(history)25 b(ev)n(en)n(ts)20
 b Fc(.)13 b(.)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(.)46
-b Fb(115)2025 2413 y(history)25 b(expansion)13 b Fc(.)g(.)f(.)h(.)f(.)g
+b Fb(117)2025 2413 y(history)25 b(expansion)13 b Fc(.)g(.)f(.)h(.)f(.)g
 (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
-f(.)g(.)h(.)f(.)39 b Fb(115)2025 2503 y(history)25 b(list)18
+f(.)g(.)h(.)f(.)39 b Fb(117)2025 2503 y(history)25 b(list)18
 b Fc(.)c(.)e(.)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(.)h(.)f(.)g(.)h(.)44
-b Fb(113)2025 2594 y(History)-6 b(,)25 b(ho)n(w)h(to)g(use)20
+b Fb(115)2025 2594 y(History)-6 b(,)25 b(ho)n(w)h(to)g(use)20
 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)46 b Fb(112)2025 2861
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)46 b Fb(114)2025 2861
 y Fr(I)2025 2984 y Fb(iden)n(ti\014er)16 b Fc(.)c(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)43
 b Fb(3)2025 3074 y(initialization)28 b(\014le,)e(readline)7
 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)33 b Fb(90)2025 3165 y(installation)11
+(.)g(.)h(.)f(.)g(.)33 b Fb(92)2025 3165 y(installation)11
 b Fc(.)j(.)e(.)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(.)37
-b Fb(119)2025 3255 y(in)n(teraction,)26 b(readline)9
+b Fb(121)2025 3255 y(in)n(teraction,)26 b(readline)9
 b Fc(.)14 b(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
-(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(87)2025
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(89)2025
 3346 y(in)n(teractiv)n(e)26 b(shell)20 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f
 (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
-h(.)f(.)45 b Fb(67,)27 b(69)2025 3436 y(in)n(ternationalization)21
+h(.)f(.)45 b Fb(69,)27 b(71)2025 3436 y(in)n(ternationalization)21
 b Fc(.)12 b(.)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(.)45 b Fb(7)2025
 3686 y Fr(J)2025 3809 y Fb(job)22 b Fc(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f
@@ -15120,27 +15132,27 @@ b Fc(.)12 b(.)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(.)g(.)h(.)f(.)g(.)h(.)f(.)48
 b Fb(3)2025 3900 y(job)26 b(con)n(trol)12 b Fc(.)h(.)f(.)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(.)h(.)38 b Fb(3,)26 b(83)2025
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(3,)26 b(85)2025
 4166 y Fr(K)2025 4289 y Fb(kill)g(ring)14 b Fc(.)f(.)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(.)h(.)f(.)40
-b Fb(89)2025 4380 y(killing)26 b(text)16 b Fc(.)c(.)h(.)f(.)g(.)h(.)f
+b Fb(91)2025 4380 y(killing)26 b(text)16 b Fc(.)c(.)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(.)42 b Fb(89)2025
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)42 b Fb(91)2025
 4647 y Fr(L)2025 4769 y Fb(lo)r(calization)10 b Fc(.)15
 b(.)d(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36
 b Fb(7)2025 4860 y(login)26 b(shell)13 b Fc(.)h(.)e(.)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(.)39 b Fb(67)2025
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fb(69)2025
 5127 y Fr(M)2025 5249 y Fb(matc)n(hing,)26 b(pattern)7
 b Fc(.)12 b(.)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(.)33 b Fb(23)2025
 5340 y(metac)n(haracter)17 b Fc(.)d(.)e(.)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(.)44 b Fb(3)p eop end
-%%Page: 152 158
-TeXDict begin 152 157 bop 150 -116 a Ft(152)2527 b(Bash)31
+%%Page: 154 160
+TeXDict begin 154 159 bop 150 -116 a Ft(154)2527 b(Bash)31
 b(Reference)g(Man)m(ual)150 299 y Fr(N)150 417 y Fb(name)21
 b Fc(.)12 b(.)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(.)h(.)f(.)g(.)
@@ -15149,7 +15161,7 @@ b(languages)14 b Fc(.)h(.)d(.)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(.)40
 b Fb(7)150 594 y(notation,)27 b(readline)12 b Fc(.)h(.)f(.)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(.)38 b Fb(87)150 851 y Fr(O)150 969
+(.)g(.)h(.)f(.)g(.)38 b Fb(89)150 851 y Fr(O)150 969
 y Fb(op)r(erator,)27 b(shell)15 b Fc(.)e(.)g(.)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(.)41 b Fb(3)150 1225 y Fr(P)150
@@ -15176,7 +15188,7 @@ y(POSIX)8 b Fc(.)k(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
 h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(3)150 2052 y(POSIX)25
 b(Mo)r(de)10 b Fc(.)i(.)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(78)150 2140 y(pro)r(cess)27 b(group)7 b Fc(.)13
+f(.)35 b Fb(80)150 2140 y(pro)r(cess)27 b(group)7 b Fc(.)13
 b(.)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(.)33
 b Fb(3)150 2229 y(pro)r(cess)27 b(group)e(ID)f Fc(.)12
@@ -15186,10 +15198,10 @@ b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
 (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
 f(.)36 b Fb(22)150 2406 y(programmable)27 b(completion)16
 b Fc(.)d(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
-g(.)g(.)42 b Fb(107)150 2494 y(prompting)7 b Fc(.)12
+g(.)g(.)42 b Fb(109)150 2494 y(prompting)7 b Fc(.)12
 b(.)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(.)h(.)f(.)g(.)h(.)32
-b Fb(77)150 2750 y Fr(Q)150 2869 y Fb(quoting)19 b Fc(.)13
+b Fb(79)150 2750 y Fr(Q)150 2869 y Fb(quoting)19 b Fc(.)13
 b(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
 f(.)g(.)46 b Fb(6)150 2957 y(quoting,)26 b(ANSI)12 b
@@ -15197,7 +15209,7 @@ Fc(.)f(.)h(.)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(.)38
 b Fb(6)150 3213 y Fr(R)150 3332 y Fb(Readline,)26 b(ho)n(w)g(to)g(use)
 14 b Fc(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(86)150 3421
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(88)150 3421
 y(redirection)21 b Fc(.)13 b(.)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(.)h
 (.)f(.)g(.)h(.)f(.)46 b Fb(25)2025 299 y(reserv)n(ed)25
@@ -15206,12 +15218,12 @@ b(w)n(ord)f Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
 g(.)50 b Fb(3)2025 386 y(restricted)26 b(shell)8 b Fc(.)13
 b(.)g(.)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(.)34
-b Fb(78)2025 473 y(return)25 b(status)19 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)
+b Fb(80)2025 473 y(return)25 b(status)19 b Fc(.)13 b(.)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(.)45 b Fb(3)2025
 707 y Fr(S)2025 823 y Fb(shell)26 b(arithmetic)12 b Fc(.)h(.)g(.)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(.)38 b Fb(72)2025 910 y(shell)26
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(74)2025 910 y(shell)26
 b(function)11 b Fc(.)i(.)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(.)37 b Fb(14)2025 997 y(shell)26 b(script)18 b Fc(.)13
@@ -15222,7 +15234,7 @@ b Fb(32)2025 1084 y(shell)26 b(v)l(ariable)17 b Fc(.)c(.)g(.)f(.)g(.)h
 g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 b Fb(15)2025 1172
 y(shell,)26 b(in)n(teractiv)n(e)16 b Fc(.)d(.)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(.)42 b Fb(69)2025 1259 y(signal)14 b Fc(.)f(.)g(.)f(.)g(.)h
+g(.)h(.)f(.)42 b Fb(71)2025 1259 y(signal)14 b Fc(.)f(.)g(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40
 b Fb(4)2025 1346 y(signal)27 b(handling)18 b Fc(.)13
@@ -15230,12 +15242,12 @@ b(.)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(.)h(.)44 b Fb(31)2025
 1433 y(sp)r(ecial)27 b(builtin)12 b Fc(.)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(.)g(.)h(.)38 b Fb(4,)26 b(54)2025 1521 y(startup)f(\014les)20
+g(.)g(.)h(.)38 b Fb(4,)26 b(56)2025 1521 y(startup)f(\014les)20
 b Fc(.)12 b(.)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(.)h(.)f(.)45
-b Fb(67)2025 1608 y(susp)r(ending)25 b(jobs)7 b Fc(.)14
+b Fb(69)2025 1608 y(susp)r(ending)25 b(jobs)7 b Fc(.)14
 b(.)e(.)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(.)33 b Fb(83)2025
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(85)2025
 1858 y Fr(T)2025 1974 y Fb(tilde)26 b(expansion)19 b
 Fc(.)13 b(.)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(.)45
@@ -15249,7 +15261,7 @@ b(shell)7 b Fc(.)13 b(.)f(.)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(.)
 h(.)32 b Fb(15)2025 2601 y(v)l(ariables,)27 b(readline)7
 b Fc(.)12 b(.)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(.)32 b Fb(91)2025
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(93)2025
 2851 y Fr(W)2025 2967 y Fb(w)n(ord)10 b Fc(.)i(.)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(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
@@ -15259,7 +15271,7 @@ b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
 b Fb(22)2025 3304 y Fr(Y)2025 3421 y Fb(y)n(anking)25
 b(text)7 b Fc(.)k(.)i(.)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(.)33 b Fb(89)p eop end
+g(.)33 b Fb(91)p eop end
 %%Trailer
 
 userdict /end-hook known{end-hook}if
index 6682cc1aa4186be31d829ab15e836cfa62f957b1..2e43d9e7dd6af381849ab66b8547a2c99640c14c 100644 (file)
@@ -142,7 +142,8 @@ of Unix.
 Bash is largely compatible with @code{sh} and incorporates useful
 features from the Korn shell @code{ksh} and the C shell @code{csh}.
 It is intended to be a conformant implementation of the @sc{ieee}
-@sc{posix} Shell and Tools specification (@sc{ieee} Working Group 1003.2).
+@sc{posix} Shell and Tools portion of the @sc{ieee} @sc{posix}
+specification (@sc{ieee} Standard 1003.1).
 It offers functional improvements over @code{sh} for both interactive and
 programming use.
 
@@ -217,7 +218,8 @@ These definitions are used throughout the remainder of this manual.
 @item POSIX
 @cindex POSIX
 A family of open system standards based on Unix.  Bash
-is concerned with @sc{posix} 1003.2, the Shell and Tools Standard.
+is primarily concerned with the Shell and Utilities portion of the
+@sc{posix} 1003.1 standard. 
 
 @item blank
 A space or tab character.
@@ -307,7 +309,7 @@ of an event occurring in the system.
 @item special builtin
 @cindex special builtin
 A shell builtin command that has been classified as special by the
-@sc{posix} 1003.2 standard.
+@sc{posix} standard.
 
 @item token
 @cindex token
@@ -1904,7 +1906,7 @@ force the use of the C locale by setting the @env{LC_COLLATE} or
 Within @samp{[} and @samp{]}, @var{character classes} can be specified
 using the syntax
 @code{[:}@var{class}@code{:]}, where @var{class} is one of the
-following classes defined in the @sc{posix} 1003.2 standard:
+following classes defined in the @sc{posix} standard:
 @example
 alnum   alpha   ascii   blank   cntrl   digit   graph   lower
 print   punct   space   upper   word    xdigit
@@ -2589,7 +2591,7 @@ under another shell.
 * The Set Builtin::            This builtin is so overloaded it
                                deserves its own section.
 * Special Builtins::           Builtin commands classified specially by
-                               POSIX.2.
+                               POSIX.
 @end menu
 
 Builtin commands are contained within the shell itself.
@@ -2622,7 +2624,7 @@ builtins do not accept options.
 @section Bourne Shell Builtins
 
 The following shell builtin commands are inherited from the Bourne Shell.
-These commands are implemented as specified by the @sc{posix} 1003.2 standard.
+These commands are implemented as specified by the @sc{posix} standard.
 
 @table @code
 @item :    @r{(a colon)}
@@ -3074,7 +3076,7 @@ The return status is zero unless a @var{name} is readonly.
 
 This section describes builtin commands which are unique to
 or have been extended in Bash.
-Some of these commands are specified in the @sc{posix} 1003.2 standard.
+Some of these commands are specified in the @sc{posix} standard.
 
 @table @code
 
@@ -4061,7 +4063,7 @@ This option is disabled by default.
 
 @item posix
 Change the behavior of Bash where the default operation differs
-from the @sc{posix} 1003.2 standard to match the standard
+from the @sc{posix} standard to match the standard
 (@pxref{Bash POSIX Mode}).
 This is intended to make Bash behave as a strict superset of that
 standard.
@@ -4188,7 +4190,7 @@ The return status is always zero unless an invalid option is supplied.
 @section Special Builtins
 @cindex special builtin
 
-For historical reasons, the @sc{posix} 1003.2 standard has classified
+For historical reasons, the @sc{posix} standard has classified
 several builtin commands as @emph{special}.
 When Bash is executing in @sc{posix} mode, the special builtins
 differ from other builtin commands in three respects:
@@ -4891,7 +4893,7 @@ invoked as @code{sh}.
 
 @item --posix
 Change the behavior of Bash where the default operation differs
-from the @sc{posix} 1003.2 standard to match the standard.  This
+from the @sc{posix} standard to match the standard.  This
 is intended to make Bash behave as a strict superset of that
 standard.  @xref{Bash POSIX Mode}, for a description of the Bash
 @sc{posix} mode.
@@ -5904,7 +5906,7 @@ the shell spawned to execute the script.
 
 Starting Bash with the @option{--posix} command-line option or executing
 @samp{set -o posix} while Bash is running will cause Bash to conform more
-closely to the @sc{posix} 1003.2 standard by changing the behavior to
+closely to the @sc{posix} standard by changing the behavior to
 match that specified by @sc{posix} in areas where the Bash default differs.
 
 When invoked as @code{sh}, Bash enters @sc{posix} mode after reading the
@@ -5937,13 +5939,13 @@ Reserved words appearing in a context where reserved words are recognized
 do not undergo alias expansion.
 
 @item
-The @sc{posix} 1003.2 @env{PS1} and @env{PS2} expansions of @samp{!} to
+The @sc{posix} @env{PS1} and @env{PS2} expansions of @samp{!} to
 the history number and @samp{!!} to @samp{!} are enabled,
 and parameter expansion is performed on the values of @env{PS1} and
 @env{PS2} regardless of the setting of the @code{promptvars} option.
 
 @item
-The @sc{posix} 1003.2 startup files are executed (@env{$ENV}) rather than
+The @sc{posix} startup files are executed (@env{$ENV}) rather than
 the normal Bash files.
 
 @item
@@ -5985,13 +5987,13 @@ may not start with a digit.  Declaring a function with an invalid name
 causes a fatal syntax error in non-interactive shells.
 
 @item
-@sc{posix} 1003.2 special builtins are found before shell functions
+@sc{posix} special builtins are found before shell functions
 during command lookup.
 
 @item
-If a @sc{posix} 1003.2 special builtin returns an error status, a
+If a @sc{posix} special builtin returns an error status, a
 non-interactive shell exits.  The fatal errors are those listed in
-the POSIX.2 standard, and include things like passing incorrect options,
+the POSIX standard, and include things like passing incorrect options,
 redirection errors, variable assignment errors for assignments preceding
 the command name, and so on.
 
@@ -6019,7 +6021,7 @@ variable in a @code{for} statement or the selection variable in a
 Process substitution is not available.
 
 @item
-Assignment statements preceding @sc{posix} 1003.2 special builtins
+Assignment statements preceding @sc{posix} special builtins
 persist in the shell environment after the builtin completes.
 
 @item
@@ -6029,7 +6031,7 @@ special builtin command had been executed.
 
 @item
 The @code{export} and @code{readonly} builtin commands display their
-output in the format required by @sc{posix} 1003.2.
+output in the format required by @sc{posix}.
 
 @item
 The @code{trap} builtin displays signal names without the leading
@@ -6108,7 +6110,7 @@ escape characters are converted.
 
 @end enumerate
 
-There is other @sc{posix} 1003.2 behavior that Bash does not implement by
+There is other @sc{posix} behavior that Bash does not implement by
 default even when in @sc{posix} mode.
 Specifically:
 
@@ -6931,7 +6933,7 @@ Please send all reports concerning this manual to
 
 Bash implements essentially the same grammar, parameter and
 variable expansion, redirection, and quoting as the Bourne Shell. 
-Bash uses the @sc{posix} 1003.2 standard as the specification of
+Bash uses the @sc{posix} standard as the specification of
 how these features are to be implemented.  There are some
 differences between the traditional Bourne shell and Bash; this
 section quickly details the differences of significance.  A
@@ -7095,7 +7097,7 @@ not all words (@pxref{Word Splitting}).
 This closes a longstanding shell security hole.
 
 @item
-Bash implements the full set of @sc{posix} 1003.2 filename expansion operators,
+Bash implements the full set of @sc{posix} filename expansion operators,
 including @var{character classes}, @var{equivalence classes}, and
 @var{collating symbols} (@pxref{Filename Expansion}).
 
@@ -7380,8 +7382,8 @@ with a @samp{-}.
 
 @item
 The SVR4.2 shell exits a script if any builtin fails; Bash exits
-a script only if one of the @sc{posix} 1003.2 special builtins fails, and
-only for certain failures, as enumerated in the @sc{posix} 1003.2 standard.
+a script only if one of the @sc{posix} special builtins fails, and
+only for certain failures, as enumerated in the @sc{posix} standard.
 
 @item 
 The SVR4.2 shell behaves differently when invoked as @code{jsh}
index 0d606219da024c926ec33ed1ebd565618398ebe4..a1d1327bb2c0c35732fae5b4a145722370a739b5 100644 (file)
 \subsecentry{Filename Expansion}{3}{5}{8}{23}
 \subsubsecentry{Pattern Matching}{3}{5}{8}{1}{23}
 \subsecentry{Quote Removal}{3}{5}{9}{24}
-\secentry{Redirections}{3}{6}{24}
-\subsecentry{Redirecting Input}{3}{6}{1}{25}
+\secentry{Redirections}{3}{6}{25}
+\subsecentry{Redirecting Input}{3}{6}{1}{26}
 \subsecentry{Redirecting Output}{3}{6}{2}{26}
 \subsecentry{Appending Redirected Output}{3}{6}{3}{26}
 \subsecentry{Redirecting Standard Output and Standard Error}{3}{6}{4}{26}
-\subsecentry{Here Documents}{3}{6}{5}{26}
+\subsecentry{Here Documents}{3}{6}{5}{27}
 \subsecentry{Here Strings}{3}{6}{6}{27}
 \subsecentry{Duplicating File Descriptors}{3}{6}{7}{27}
-\subsecentry{Moving File Descriptors}{3}{6}{8}{27}
+\subsecentry{Moving File Descriptors}{3}{6}{8}{28}
 \subsecentry{Opening File Descriptors for Reading and Writing}{3}{6}{9}{28}
 \secentry{Executing Commands}{3}{7}{28}
 \subsecentry{Simple Command Expansion}{3}{7}{1}{28}
 \subsecentry{Exit Status}{3}{7}{5}{31}
 \subsecentry{Signals}{3}{7}{6}{31}
 \secentry{Shell Scripts}{3}{8}{32}
-\chapentry{Shell Builtin Commands}{4}{33}
-\secentry{Bourne Shell Builtins}{4}{1}{33}
-\secentry{Bash Builtin Commands}{4}{2}{39}
-\secentry{The Set Builtin}{4}{3}{50}
-\secentry{Special Builtins}{4}{4}{54}
-\chapentry{Shell Variables}{5}{55}
-\secentry{Bourne Shell Variables}{5}{1}{55}
-\secentry{Bash Variables}{5}{2}{55}
-\chapentry{Bash Features}{6}{65}
-\secentry{Invoking Bash}{6}{1}{65}
-\secentry{Bash Startup Files}{6}{2}{67}
-\secentry{Interactive Shells}{6}{3}{69}
-\subsecentry{What is an Interactive Shell?}{6}{3}{1}{69}
-\subsecentry{Is this Shell Interactive?}{6}{3}{2}{69}
-\subsecentry{Interactive Shell Behavior}{6}{3}{3}{69}
-\secentry{Bash Conditional Expressions}{6}{4}{70}
-\secentry{Shell Arithmetic}{6}{5}{72}
-\secentry{Aliases}{6}{6}{73}
-\secentry{Arrays}{6}{7}{74}
-\secentry{The Directory Stack}{6}{8}{75}
-\subsecentry{Directory Stack Builtins}{6}{8}{1}{75}
-\secentry{Controlling the Prompt}{6}{9}{76}
-\secentry{The Restricted Shell}{6}{10}{78}
-\secentry{Bash POSIX Mode}{6}{11}{78}
-\chapentry{Job Control}{7}{83}
-\secentry{Job Control Basics}{7}{1}{83}
-\secentry{Job Control Builtins}{7}{2}{84}
-\secentry{Job Control Variables}{7}{3}{85}
-\chapentry{Command Line Editing}{8}{87}
-\secentry{Introduction to Line Editing}{8}{1}{87}
-\secentry{Readline Interaction}{8}{2}{87}
-\subsecentry{Readline Bare Essentials}{8}{2}{1}{87}
-\subsecentry{Readline Movement Commands}{8}{2}{2}{88}
-\subsecentry{Readline Killing Commands}{8}{2}{3}{88}
-\subsecentry{Readline Arguments}{8}{2}{4}{89}
-\subsecentry{Searching for Commands in the History}{8}{2}{5}{89}
-\secentry{Readline Init File}{8}{3}{90}
-\subsecentry{Readline Init File Syntax}{8}{3}{1}{90}
-\subsecentry{Conditional Init Constructs}{8}{3}{2}{95}
-\subsecentry{Sample Init File}{8}{3}{3}{96}
-\secentry{Bindable Readline Commands}{8}{4}{99}
-\subsecentry{Commands For Moving}{8}{4}{1}{99}
-\subsecentry{Commands For Manipulating The History}{8}{4}{2}{99}
-\subsecentry{Commands For Changing Text}{8}{4}{3}{101}
-\subsecentry{Killing And Yanking}{8}{4}{4}{102}
-\subsecentry{Specifying Numeric Arguments}{8}{4}{5}{103}
-\subsecentry{Letting Readline Type For You}{8}{4}{6}{103}
-\subsecentry{Keyboard Macros}{8}{4}{7}{104}
-\subsecentry{Some Miscellaneous Commands}{8}{4}{8}{105}
-\secentry{Readline vi Mode}{8}{5}{107}
-\secentry{Programmable Completion}{8}{6}{107}
-\secentry{Programmable Completion Builtins}{8}{7}{109}
-\chapentry{Using History Interactively}{9}{113}
-\secentry{Bash History Facilities}{9}{1}{113}
-\secentry{Bash History Builtins}{9}{2}{113}
-\secentry{History Expansion}{9}{3}{115}
-\subsecentry{Event Designators}{9}{3}{1}{115}
-\subsecentry{Word Designators}{9}{3}{2}{116}
-\subsecentry{Modifiers}{9}{3}{3}{117}
-\chapentry{Installing Bash}{10}{119}
-\secentry{Basic Installation}{10}{1}{119}
-\secentry{Compilers and Options}{10}{2}{119}
-\secentry{Compiling For Multiple Architectures}{10}{3}{120}
-\secentry{Installation Names}{10}{4}{120}
-\secentry{Specifying the System Type}{10}{5}{120}
-\secentry{Sharing Defaults}{10}{6}{121}
-\secentry{Operation Controls}{10}{7}{121}
-\secentry{Optional Features}{10}{8}{121}
-\appendixentry{Reporting Bugs}{A}{127}
-\appendixentry{Major Differences From The Bourne Shell}{B}{129}
-\secentry{Implementation Differences From The SVR4.2 Shell}{B}{1}{133}
-\appendixentry{Copying This Manual}{C}{135}
-\secentry{GNU Free Documentation License}{C}{1}{135}
-\subsecentry{ADDENDUM: How to use this License for your documents}{C}{1}{1}{141}
-\unnumbchapentry{Index of Shell Builtin Commands}{10}{143}
-\unnumbchapentry{Index of Shell Reserved Words}{10}{145}
-\unnumbchapentry{Parameter and Variable Index}{10}{147}
-\unnumbchapentry{Function Index}{10}{149}
-\unnumbchapentry{Concept Index}{10}{151}
+\chapentry{Shell Builtin Commands}{4}{35}
+\secentry{Bourne Shell Builtins}{4}{1}{35}
+\secentry{Bash Builtin Commands}{4}{2}{41}
+\secentry{The Set Builtin}{4}{3}{53}
+\secentry{Special Builtins}{4}{4}{56}
+\chapentry{Shell Variables}{5}{57}
+\secentry{Bourne Shell Variables}{5}{1}{57}
+\secentry{Bash Variables}{5}{2}{57}
+\chapentry{Bash Features}{6}{67}
+\secentry{Invoking Bash}{6}{1}{67}
+\secentry{Bash Startup Files}{6}{2}{69}
+\secentry{Interactive Shells}{6}{3}{71}
+\subsecentry{What is an Interactive Shell?}{6}{3}{1}{71}
+\subsecentry{Is this Shell Interactive?}{6}{3}{2}{71}
+\subsecentry{Interactive Shell Behavior}{6}{3}{3}{71}
+\secentry{Bash Conditional Expressions}{6}{4}{72}
+\secentry{Shell Arithmetic}{6}{5}{74}
+\secentry{Aliases}{6}{6}{75}
+\secentry{Arrays}{6}{7}{76}
+\secentry{The Directory Stack}{6}{8}{77}
+\subsecentry{Directory Stack Builtins}{6}{8}{1}{77}
+\secentry{Controlling the Prompt}{6}{9}{78}
+\secentry{The Restricted Shell}{6}{10}{80}
+\secentry{Bash POSIX Mode}{6}{11}{80}
+\chapentry{Job Control}{7}{85}
+\secentry{Job Control Basics}{7}{1}{85}
+\secentry{Job Control Builtins}{7}{2}{86}
+\secentry{Job Control Variables}{7}{3}{87}
+\chapentry{Command Line Editing}{8}{89}
+\secentry{Introduction to Line Editing}{8}{1}{89}
+\secentry{Readline Interaction}{8}{2}{89}
+\subsecentry{Readline Bare Essentials}{8}{2}{1}{89}
+\subsecentry{Readline Movement Commands}{8}{2}{2}{90}
+\subsecentry{Readline Killing Commands}{8}{2}{3}{90}
+\subsecentry{Readline Arguments}{8}{2}{4}{91}
+\subsecentry{Searching for Commands in the History}{8}{2}{5}{91}
+\secentry{Readline Init File}{8}{3}{92}
+\subsecentry{Readline Init File Syntax}{8}{3}{1}{92}
+\subsecentry{Conditional Init Constructs}{8}{3}{2}{97}
+\subsecentry{Sample Init File}{8}{3}{3}{98}
+\secentry{Bindable Readline Commands}{8}{4}{101}
+\subsecentry{Commands For Moving}{8}{4}{1}{101}
+\subsecentry{Commands For Manipulating The History}{8}{4}{2}{101}
+\subsecentry{Commands For Changing Text}{8}{4}{3}{103}
+\subsecentry{Killing And Yanking}{8}{4}{4}{104}
+\subsecentry{Specifying Numeric Arguments}{8}{4}{5}{105}
+\subsecentry{Letting Readline Type For You}{8}{4}{6}{105}
+\subsecentry{Keyboard Macros}{8}{4}{7}{106}
+\subsecentry{Some Miscellaneous Commands}{8}{4}{8}{107}
+\secentry{Readline vi Mode}{8}{5}{109}
+\secentry{Programmable Completion}{8}{6}{109}
+\secentry{Programmable Completion Builtins}{8}{7}{111}
+\chapentry{Using History Interactively}{9}{115}
+\secentry{Bash History Facilities}{9}{1}{115}
+\secentry{Bash History Builtins}{9}{2}{115}
+\secentry{History Expansion}{9}{3}{117}
+\subsecentry{Event Designators}{9}{3}{1}{117}
+\subsecentry{Word Designators}{9}{3}{2}{118}
+\subsecentry{Modifiers}{9}{3}{3}{119}
+\chapentry{Installing Bash}{10}{121}
+\secentry{Basic Installation}{10}{1}{121}
+\secentry{Compilers and Options}{10}{2}{121}
+\secentry{Compiling For Multiple Architectures}{10}{3}{122}
+\secentry{Installation Names}{10}{4}{122}
+\secentry{Specifying the System Type}{10}{5}{122}
+\secentry{Sharing Defaults}{10}{6}{123}
+\secentry{Operation Controls}{10}{7}{123}
+\secentry{Optional Features}{10}{8}{123}
+\appendixentry{Reporting Bugs}{A}{129}
+\appendixentry{Major Differences From The Bourne Shell}{B}{131}
+\secentry{Implementation Differences From The SVR4.2 Shell}{B}{1}{135}
+\appendixentry{Copying This Manual}{C}{137}
+\secentry{GNU Free Documentation License}{C}{1}{137}
+\subsecentry{ADDENDUM: How to use this License for your documents}{C}{1}{1}{143}
+\unnumbchapentry{Index of Shell Builtin Commands}{10}{145}
+\unnumbchapentry{Index of Shell Reserved Words}{10}{147}
+\unnumbchapentry{Parameter and Variable Index}{10}{149}
+\unnumbchapentry{Function Index}{10}{151}
+\unnumbchapentry{Concept Index}{10}{153}
index f29f8a6193e323b272f5c2045fb4c031651fc0f3..daf952d3ff9b2986fb615eff3e8ecc02677d450f 100644 (file)
 \entry{!}{16}{\code {!}}
 \entry{0}{16}{\code {0}}
 \entry{_}{16}{\code {_}}
-\entry{CDPATH}{55}{\code {CDPATH}}
-\entry{HOME}{55}{\code {HOME}}
-\entry{IFS}{55}{\code {IFS}}
-\entry{MAIL}{55}{\code {MAIL}}
-\entry{MAILPATH}{55}{\code {MAILPATH}}
-\entry{OPTARG}{55}{\code {OPTARG}}
-\entry{OPTIND}{55}{\code {OPTIND}}
-\entry{PATH}{55}{\code {PATH}}
-\entry{PS1}{55}{\code {PS1}}
-\entry{PS2}{55}{\code {PS2}}
-\entry{BASH}{55}{\code {BASH}}
-\entry{BASH_ARGC}{56}{\code {BASH_ARGC}}
-\entry{BASH_ARGV}{56}{\code {BASH_ARGV}}
-\entry{BASH_COMMAND}{56}{\code {BASH_COMMAND}}
-\entry{BASH_ENV}{56}{\code {BASH_ENV}}
-\entry{BASH_EXECUTION_STRING}{56}{\code {BASH_EXECUTION_STRING}}
-\entry{BASH_LINENO}{56}{\code {BASH_LINENO}}
-\entry{BASH_REMATCH}{56}{\code {BASH_REMATCH}}
-\entry{BASH_SOURCE}{56}{\code {BASH_SOURCE}}
-\entry{BASH_SUBSHELL}{56}{\code {BASH_SUBSHELL}}
-\entry{BASH_VERSINFO}{56}{\code {BASH_VERSINFO}}
-\entry{BASH_VERSION}{57}{\code {BASH_VERSION}}
-\entry{COLUMNS}{57}{\code {COLUMNS}}
-\entry{COMP_CWORD}{57}{\code {COMP_CWORD}}
-\entry{COMP_LINE}{57}{\code {COMP_LINE}}
-\entry{COMP_POINT}{57}{\code {COMP_POINT}}
-\entry{COMP_WORDBREAKS}{57}{\code {COMP_WORDBREAKS}}
-\entry{COMP_WORDS}{57}{\code {COMP_WORDS}}
-\entry{COMPREPLY}{58}{\code {COMPREPLY}}
-\entry{DIRSTACK}{58}{\code {DIRSTACK}}
-\entry{EMACS}{58}{\code {EMACS}}
-\entry{EUID}{58}{\code {EUID}}
-\entry{FCEDIT}{58}{\code {FCEDIT}}
-\entry{FIGNORE}{58}{\code {FIGNORE}}
-\entry{FUNCNAME}{58}{\code {FUNCNAME}}
-\entry{GLOBIGNORE}{58}{\code {GLOBIGNORE}}
-\entry{GROUPS}{58}{\code {GROUPS}}
-\entry{histchars}{58}{\code {histchars}}
-\entry{HISTCMD}{59}{\code {HISTCMD}}
-\entry{HISTCONTROL}{59}{\code {HISTCONTROL}}
-\entry{HISTFILE}{59}{\code {HISTFILE}}
-\entry{HISTFILESIZE}{59}{\code {HISTFILESIZE}}
-\entry{HISTIGNORE}{59}{\code {HISTIGNORE}}
-\entry{HISTSIZE}{59}{\code {HISTSIZE}}
-\entry{HISTTIMEFORMAT}{59}{\code {HISTTIMEFORMAT}}
-\entry{HOSTFILE}{60}{\code {HOSTFILE}}
-\entry{HOSTNAME}{60}{\code {HOSTNAME}}
-\entry{HOSTTYPE}{60}{\code {HOSTTYPE}}
-\entry{IGNOREEOF}{60}{\code {IGNOREEOF}}
-\entry{INPUTRC}{60}{\code {INPUTRC}}
-\entry{LANG}{60}{\code {LANG}}
-\entry{LC_ALL}{60}{\code {LC_ALL}}
-\entry{LC_COLLATE}{60}{\code {LC_COLLATE}}
-\entry{LC_CTYPE}{60}{\code {LC_CTYPE}}
-\entry{LC_MESSAGES}{60}{\code {LC_MESSAGES}}
-\entry{LC_NUMERIC}{60}{\code {LC_NUMERIC}}
-\entry{LINENO}{60}{\code {LINENO}}
-\entry{LINES}{61}{\code {LINES}}
-\entry{MACHTYPE}{61}{\code {MACHTYPE}}
-\entry{MAILCHECK}{61}{\code {MAILCHECK}}
-\entry{OLDPWD}{61}{\code {OLDPWD}}
-\entry{OPTERR}{61}{\code {OPTERR}}
-\entry{OSTYPE}{61}{\code {OSTYPE}}
-\entry{PIPESTATUS}{61}{\code {PIPESTATUS}}
-\entry{POSIXLY_CORRECT}{61}{\code {POSIXLY_CORRECT}}
-\entry{PPID}{61}{\code {PPID}}
-\entry{PROMPT_COMMAND}{61}{\code {PROMPT_COMMAND}}
-\entry{PS3}{61}{\code {PS3}}
-\entry{PS4}{61}{\code {PS4}}
-\entry{PWD}{61}{\code {PWD}}
-\entry{RANDOM}{61}{\code {RANDOM}}
-\entry{REPLY}{61}{\code {REPLY}}
-\entry{SECONDS}{62}{\code {SECONDS}}
-\entry{SHELL}{62}{\code {SHELL}}
-\entry{SHELLOPTS}{62}{\code {SHELLOPTS}}
-\entry{SHLVL}{62}{\code {SHLVL}}
-\entry{TIMEFORMAT}{62}{\code {TIMEFORMAT}}
-\entry{TMOUT}{62}{\code {TMOUT}}
-\entry{TMPDIR}{63}{\code {TMPDIR}}
-\entry{UID}{63}{\code {UID}}
-\entry{auto_resume}{86}{\code {auto_resume}}
-\entry{bell-style}{91}{\code {bell-style}}
-\entry{bind-tty-special-chars}{91}{\code {bind-tty-special-chars}}
-\entry{comment-begin}{91}{\code {comment-begin}}
-\entry{completion-query-items}{91}{\code {completion-query-items}}
-\entry{convert-meta}{92}{\code {convert-meta}}
-\entry{disable-completion}{92}{\code {disable-completion}}
-\entry{editing-mode}{92}{\code {editing-mode}}
-\entry{enable-keypad}{92}{\code {enable-keypad}}
-\entry{expand-tilde}{92}{\code {expand-tilde}}
-\entry{history-preserve-point}{92}{\code {history-preserve-point}}
-\entry{horizontal-scroll-mode}{92}{\code {horizontal-scroll-mode}}
-\entry{input-meta}{92}{\code {input-meta}}
-\entry{meta-flag}{92}{\code {meta-flag}}
-\entry{isearch-terminators}{92}{\code {isearch-terminators}}
-\entry{keymap}{92}{\code {keymap}}
-\entry{mark-modified-lines}{93}{\code {mark-modified-lines}}
-\entry{mark-symlinked-directories}{93}{\code {mark-symlinked-directories}}
-\entry{match-hidden-files}{93}{\code {match-hidden-files}}
-\entry{output-meta}{93}{\code {output-meta}}
-\entry{page-completions}{93}{\code {page-completions}}
-\entry{show-all-if-ambiguous}{93}{\code {show-all-if-ambiguous}}
-\entry{show-all-if-unmodified}{93}{\code {show-all-if-unmodified}}
-\entry{visible-stats}{94}{\code {visible-stats}}
+\entry{CDPATH}{57}{\code {CDPATH}}
+\entry{HOME}{57}{\code {HOME}}
+\entry{IFS}{57}{\code {IFS}}
+\entry{MAIL}{57}{\code {MAIL}}
+\entry{MAILPATH}{57}{\code {MAILPATH}}
+\entry{OPTARG}{57}{\code {OPTARG}}
+\entry{OPTIND}{57}{\code {OPTIND}}
+\entry{PATH}{57}{\code {PATH}}
+\entry{PS1}{57}{\code {PS1}}
+\entry{PS2}{57}{\code {PS2}}
+\entry{BASH}{57}{\code {BASH}}
+\entry{BASH_ARGC}{58}{\code {BASH_ARGC}}
+\entry{BASH_ARGV}{58}{\code {BASH_ARGV}}
+\entry{BASH_COMMAND}{58}{\code {BASH_COMMAND}}
+\entry{BASH_ENV}{58}{\code {BASH_ENV}}
+\entry{BASH_EXECUTION_STRING}{58}{\code {BASH_EXECUTION_STRING}}
+\entry{BASH_LINENO}{58}{\code {BASH_LINENO}}
+\entry{BASH_REMATCH}{58}{\code {BASH_REMATCH}}
+\entry{BASH_SOURCE}{58}{\code {BASH_SOURCE}}
+\entry{BASH_SUBSHELL}{58}{\code {BASH_SUBSHELL}}
+\entry{BASH_VERSINFO}{58}{\code {BASH_VERSINFO}}
+\entry{BASH_VERSION}{59}{\code {BASH_VERSION}}
+\entry{COLUMNS}{59}{\code {COLUMNS}}
+\entry{COMP_CWORD}{59}{\code {COMP_CWORD}}
+\entry{COMP_LINE}{59}{\code {COMP_LINE}}
+\entry{COMP_POINT}{59}{\code {COMP_POINT}}
+\entry{COMP_WORDBREAKS}{59}{\code {COMP_WORDBREAKS}}
+\entry{COMP_WORDS}{59}{\code {COMP_WORDS}}
+\entry{COMPREPLY}{60}{\code {COMPREPLY}}
+\entry{DIRSTACK}{60}{\code {DIRSTACK}}
+\entry{EMACS}{60}{\code {EMACS}}
+\entry{EUID}{60}{\code {EUID}}
+\entry{FCEDIT}{60}{\code {FCEDIT}}
+\entry{FIGNORE}{60}{\code {FIGNORE}}
+\entry{FUNCNAME}{60}{\code {FUNCNAME}}
+\entry{GLOBIGNORE}{60}{\code {GLOBIGNORE}}
+\entry{GROUPS}{60}{\code {GROUPS}}
+\entry{histchars}{60}{\code {histchars}}
+\entry{HISTCMD}{61}{\code {HISTCMD}}
+\entry{HISTCONTROL}{61}{\code {HISTCONTROL}}
+\entry{HISTFILE}{61}{\code {HISTFILE}}
+\entry{HISTFILESIZE}{61}{\code {HISTFILESIZE}}
+\entry{HISTIGNORE}{61}{\code {HISTIGNORE}}
+\entry{HISTSIZE}{61}{\code {HISTSIZE}}
+\entry{HISTTIMEFORMAT}{61}{\code {HISTTIMEFORMAT}}
+\entry{HOSTFILE}{62}{\code {HOSTFILE}}
+\entry{HOSTNAME}{62}{\code {HOSTNAME}}
+\entry{HOSTTYPE}{62}{\code {HOSTTYPE}}
+\entry{IGNOREEOF}{62}{\code {IGNOREEOF}}
+\entry{INPUTRC}{62}{\code {INPUTRC}}
+\entry{LANG}{62}{\code {LANG}}
+\entry{LC_ALL}{62}{\code {LC_ALL}}
+\entry{LC_COLLATE}{62}{\code {LC_COLLATE}}
+\entry{LC_CTYPE}{62}{\code {LC_CTYPE}}
+\entry{LC_MESSAGES}{62}{\code {LC_MESSAGES}}
+\entry{LC_NUMERIC}{62}{\code {LC_NUMERIC}}
+\entry{LINENO}{62}{\code {LINENO}}
+\entry{LINES}{63}{\code {LINES}}
+\entry{MACHTYPE}{63}{\code {MACHTYPE}}
+\entry{MAILCHECK}{63}{\code {MAILCHECK}}
+\entry{OLDPWD}{63}{\code {OLDPWD}}
+\entry{OPTERR}{63}{\code {OPTERR}}
+\entry{OSTYPE}{63}{\code {OSTYPE}}
+\entry{PIPESTATUS}{63}{\code {PIPESTATUS}}
+\entry{POSIXLY_CORRECT}{63}{\code {POSIXLY_CORRECT}}
+\entry{PPID}{63}{\code {PPID}}
+\entry{PROMPT_COMMAND}{63}{\code {PROMPT_COMMAND}}
+\entry{PS3}{63}{\code {PS3}}
+\entry{PS4}{63}{\code {PS4}}
+\entry{PWD}{63}{\code {PWD}}
+\entry{RANDOM}{63}{\code {RANDOM}}
+\entry{REPLY}{63}{\code {REPLY}}
+\entry{SECONDS}{64}{\code {SECONDS}}
+\entry{SHELL}{64}{\code {SHELL}}
+\entry{SHELLOPTS}{64}{\code {SHELLOPTS}}
+\entry{SHLVL}{64}{\code {SHLVL}}
+\entry{TIMEFORMAT}{64}{\code {TIMEFORMAT}}
+\entry{TMOUT}{64}{\code {TMOUT}}
+\entry{TMPDIR}{65}{\code {TMPDIR}}
+\entry{UID}{65}{\code {UID}}
+\entry{auto_resume}{88}{\code {auto_resume}}
+\entry{bell-style}{93}{\code {bell-style}}
+\entry{bind-tty-special-chars}{93}{\code {bind-tty-special-chars}}
+\entry{comment-begin}{93}{\code {comment-begin}}
+\entry{completion-query-items}{93}{\code {completion-query-items}}
+\entry{convert-meta}{94}{\code {convert-meta}}
+\entry{disable-completion}{94}{\code {disable-completion}}
+\entry{editing-mode}{94}{\code {editing-mode}}
+\entry{enable-keypad}{94}{\code {enable-keypad}}
+\entry{expand-tilde}{94}{\code {expand-tilde}}
+\entry{history-preserve-point}{94}{\code {history-preserve-point}}
+\entry{horizontal-scroll-mode}{94}{\code {horizontal-scroll-mode}}
+\entry{input-meta}{94}{\code {input-meta}}
+\entry{meta-flag}{94}{\code {meta-flag}}
+\entry{isearch-terminators}{94}{\code {isearch-terminators}}
+\entry{keymap}{94}{\code {keymap}}
+\entry{mark-modified-lines}{95}{\code {mark-modified-lines}}
+\entry{mark-symlinked-directories}{95}{\code {mark-symlinked-directories}}
+\entry{match-hidden-files}{95}{\code {match-hidden-files}}
+\entry{output-meta}{95}{\code {output-meta}}
+\entry{page-completions}{95}{\code {page-completions}}
+\entry{show-all-if-ambiguous}{95}{\code {show-all-if-ambiguous}}
+\entry{show-all-if-unmodified}{95}{\code {show-all-if-unmodified}}
+\entry{visible-stats}{96}{\code {visible-stats}}
index e6b28ad7a2c262f30fd08919ea3d96d312fab84b..f913e9082d129017ef67b1d3cc1dc89af99f1d52 100644 (file)
 \initial {0}
 \entry {\code {0}}{16}
 \initial {A}
-\entry {\code {auto_resume}}{86}
+\entry {\code {auto_resume}}{88}
 \initial {B}
-\entry {\code {BASH}}{55}
-\entry {\code {BASH_ARGC}}{56}
-\entry {\code {BASH_ARGV}}{56}
-\entry {\code {BASH_COMMAND}}{56}
-\entry {\code {BASH_ENV}}{56}
-\entry {\code {BASH_EXECUTION_STRING}}{56}
-\entry {\code {BASH_LINENO}}{56}
-\entry {\code {BASH_REMATCH}}{56}
-\entry {\code {BASH_SOURCE}}{56}
-\entry {\code {BASH_SUBSHELL}}{56}
-\entry {\code {BASH_VERSINFO}}{56}
-\entry {\code {BASH_VERSION}}{57}
-\entry {\code {bell-style}}{91}
-\entry {\code {bind-tty-special-chars}}{91}
+\entry {\code {BASH}}{57}
+\entry {\code {BASH_ARGC}}{58}
+\entry {\code {BASH_ARGV}}{58}
+\entry {\code {BASH_COMMAND}}{58}
+\entry {\code {BASH_ENV}}{58}
+\entry {\code {BASH_EXECUTION_STRING}}{58}
+\entry {\code {BASH_LINENO}}{58}
+\entry {\code {BASH_REMATCH}}{58}
+\entry {\code {BASH_SOURCE}}{58}
+\entry {\code {BASH_SUBSHELL}}{58}
+\entry {\code {BASH_VERSINFO}}{58}
+\entry {\code {BASH_VERSION}}{59}
+\entry {\code {bell-style}}{93}
+\entry {\code {bind-tty-special-chars}}{93}
 \initial {C}
-\entry {\code {CDPATH}}{55}
-\entry {\code {COLUMNS}}{57}
-\entry {\code {comment-begin}}{91}
-\entry {\code {COMP_CWORD}}{57}
-\entry {\code {COMP_LINE}}{57}
-\entry {\code {COMP_POINT}}{57}
-\entry {\code {COMP_WORDBREAKS}}{57}
-\entry {\code {COMP_WORDS}}{57}
-\entry {\code {completion-query-items}}{91}
-\entry {\code {COMPREPLY}}{58}
-\entry {\code {convert-meta}}{92}
+\entry {\code {CDPATH}}{57}
+\entry {\code {COLUMNS}}{59}
+\entry {\code {comment-begin}}{93}
+\entry {\code {COMP_CWORD}}{59}
+\entry {\code {COMP_LINE}}{59}
+\entry {\code {COMP_POINT}}{59}
+\entry {\code {COMP_WORDBREAKS}}{59}
+\entry {\code {COMP_WORDS}}{59}
+\entry {\code {completion-query-items}}{93}
+\entry {\code {COMPREPLY}}{60}
+\entry {\code {convert-meta}}{94}
 \initial {D}
-\entry {\code {DIRSTACK}}{58}
-\entry {\code {disable-completion}}{92}
+\entry {\code {DIRSTACK}}{60}
+\entry {\code {disable-completion}}{94}
 \initial {E}
-\entry {\code {editing-mode}}{92}
-\entry {\code {EMACS}}{58}
-\entry {\code {enable-keypad}}{92}
-\entry {\code {EUID}}{58}
-\entry {\code {expand-tilde}}{92}
+\entry {\code {editing-mode}}{94}
+\entry {\code {EMACS}}{60}
+\entry {\code {enable-keypad}}{94}
+\entry {\code {EUID}}{60}
+\entry {\code {expand-tilde}}{94}
 \initial {F}
-\entry {\code {FCEDIT}}{58}
-\entry {\code {FIGNORE}}{58}
-\entry {\code {FUNCNAME}}{58}
+\entry {\code {FCEDIT}}{60}
+\entry {\code {FIGNORE}}{60}
+\entry {\code {FUNCNAME}}{60}
 \initial {G}
-\entry {\code {GLOBIGNORE}}{58}
-\entry {\code {GROUPS}}{58}
+\entry {\code {GLOBIGNORE}}{60}
+\entry {\code {GROUPS}}{60}
 \initial {H}
-\entry {\code {histchars}}{58}
-\entry {\code {HISTCMD}}{59}
-\entry {\code {HISTCONTROL}}{59}
-\entry {\code {HISTFILE}}{59}
-\entry {\code {HISTFILESIZE}}{59}
-\entry {\code {HISTIGNORE}}{59}
-\entry {\code {history-preserve-point}}{92}
-\entry {\code {HISTSIZE}}{59}
-\entry {\code {HISTTIMEFORMAT}}{59}
-\entry {\code {HOME}}{55}
-\entry {\code {horizontal-scroll-mode}}{92}
-\entry {\code {HOSTFILE}}{60}
-\entry {\code {HOSTNAME}}{60}
-\entry {\code {HOSTTYPE}}{60}
+\entry {\code {histchars}}{60}
+\entry {\code {HISTCMD}}{61}
+\entry {\code {HISTCONTROL}}{61}
+\entry {\code {HISTFILE}}{61}
+\entry {\code {HISTFILESIZE}}{61}
+\entry {\code {HISTIGNORE}}{61}
+\entry {\code {history-preserve-point}}{94}
+\entry {\code {HISTSIZE}}{61}
+\entry {\code {HISTTIMEFORMAT}}{61}
+\entry {\code {HOME}}{57}
+\entry {\code {horizontal-scroll-mode}}{94}
+\entry {\code {HOSTFILE}}{62}
+\entry {\code {HOSTNAME}}{62}
+\entry {\code {HOSTTYPE}}{62}
 \initial {I}
-\entry {\code {IFS}}{55}
-\entry {\code {IGNOREEOF}}{60}
-\entry {\code {input-meta}}{92}
-\entry {\code {INPUTRC}}{60}
-\entry {\code {isearch-terminators}}{92}
+\entry {\code {IFS}}{57}
+\entry {\code {IGNOREEOF}}{62}
+\entry {\code {input-meta}}{94}
+\entry {\code {INPUTRC}}{62}
+\entry {\code {isearch-terminators}}{94}
 \initial {K}
-\entry {\code {keymap}}{92}
+\entry {\code {keymap}}{94}
 \initial {L}
-\entry {\code {LANG}}{60}
-\entry {\code {LC_ALL}}{60}
-\entry {\code {LC_COLLATE}}{60}
-\entry {\code {LC_CTYPE}}{60}
-\entry {\code {LC_MESSAGES}}{7, 60}
-\entry {\code {LC_NUMERIC}}{60}
-\entry {\code {LINENO}}{60}
-\entry {\code {LINES}}{61}
+\entry {\code {LANG}}{62}
+\entry {\code {LC_ALL}}{62}
+\entry {\code {LC_COLLATE}}{62}
+\entry {\code {LC_CTYPE}}{62}
+\entry {\code {LC_MESSAGES}}{7, 62}
+\entry {\code {LC_NUMERIC}}{62}
+\entry {\code {LINENO}}{62}
+\entry {\code {LINES}}{63}
 \initial {M}
-\entry {\code {MACHTYPE}}{61}
-\entry {\code {MAIL}}{55}
-\entry {\code {MAILCHECK}}{61}
-\entry {\code {MAILPATH}}{55}
-\entry {\code {mark-modified-lines}}{93}
-\entry {\code {mark-symlinked-directories}}{93}
-\entry {\code {match-hidden-files}}{93}
-\entry {\code {meta-flag}}{92}
+\entry {\code {MACHTYPE}}{63}
+\entry {\code {MAIL}}{57}
+\entry {\code {MAILCHECK}}{63}
+\entry {\code {MAILPATH}}{57}
+\entry {\code {mark-modified-lines}}{95}
+\entry {\code {mark-symlinked-directories}}{95}
+\entry {\code {match-hidden-files}}{95}
+\entry {\code {meta-flag}}{94}
 \initial {O}
-\entry {\code {OLDPWD}}{61}
-\entry {\code {OPTARG}}{55}
-\entry {\code {OPTERR}}{61}
-\entry {\code {OPTIND}}{55}
-\entry {\code {OSTYPE}}{61}
-\entry {\code {output-meta}}{93}
+\entry {\code {OLDPWD}}{63}
+\entry {\code {OPTARG}}{57}
+\entry {\code {OPTERR}}{63}
+\entry {\code {OPTIND}}{57}
+\entry {\code {OSTYPE}}{63}
+\entry {\code {output-meta}}{95}
 \initial {P}
-\entry {\code {page-completions}}{93}
-\entry {\code {PATH}}{55}
-\entry {\code {PIPESTATUS}}{61}
-\entry {\code {POSIXLY_CORRECT}}{61}
-\entry {\code {PPID}}{61}
-\entry {\code {PROMPT_COMMAND}}{61}
-\entry {\code {PS1}}{55}
-\entry {\code {PS2}}{55}
-\entry {\code {PS3}}{61}
-\entry {\code {PS4}}{61}
-\entry {\code {PWD}}{61}
+\entry {\code {page-completions}}{95}
+\entry {\code {PATH}}{57}
+\entry {\code {PIPESTATUS}}{63}
+\entry {\code {POSIXLY_CORRECT}}{63}
+\entry {\code {PPID}}{63}
+\entry {\code {PROMPT_COMMAND}}{63}
+\entry {\code {PS1}}{57}
+\entry {\code {PS2}}{57}
+\entry {\code {PS3}}{63}
+\entry {\code {PS4}}{63}
+\entry {\code {PWD}}{63}
 \initial {R}
-\entry {\code {RANDOM}}{61}
-\entry {\code {REPLY}}{61}
+\entry {\code {RANDOM}}{63}
+\entry {\code {REPLY}}{63}
 \initial {S}
-\entry {\code {SECONDS}}{62}
-\entry {\code {SHELL}}{62}
-\entry {\code {SHELLOPTS}}{62}
-\entry {\code {SHLVL}}{62}
-\entry {\code {show-all-if-ambiguous}}{93}
-\entry {\code {show-all-if-unmodified}}{93}
+\entry {\code {SECONDS}}{64}
+\entry {\code {SHELL}}{64}
+\entry {\code {SHELLOPTS}}{64}
+\entry {\code {SHLVL}}{64}
+\entry {\code {show-all-if-ambiguous}}{95}
+\entry {\code {show-all-if-unmodified}}{95}
 \initial {T}
 \entry {\code {TEXTDOMAIN}}{7}
 \entry {\code {TEXTDOMAINDIR}}{7}
-\entry {\code {TIMEFORMAT}}{62}
-\entry {\code {TMOUT}}{62}
-\entry {\code {TMPDIR}}{63}
+\entry {\code {TIMEFORMAT}}{64}
+\entry {\code {TMOUT}}{64}
+\entry {\code {TMPDIR}}{65}
 \initial {U}
-\entry {\code {UID}}{63}
+\entry {\code {UID}}{65}
 \initial {V}
-\entry {\code {visible-stats}}{94}
+\entry {\code {visible-stats}}{96}
index dcbbf3536885f9976aba53652afb226a7b623db0..6519388969e9b3404148753649998059867c25c7 100644 (file)
@@ -927,8 +927,8 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                               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 1003.2 standard
-                              to match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
+                              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.
@@ -1317,7 +1317,7 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               tion lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true  if
               any of the arguments are found, false if none are found.
 
-       u\bul\bli\bim\bmi\bit\bt [-\b-S\bSH\bHa\bac\bcd\bdf\bfl\blm\bmn\bnp\bps\bst\btu\buv\bv [_\bl_\bi_\bm_\bi_\bt]]
+       u\bul\bli\bim\bmi\bit\bt [-\b-S\bSH\bHa\bac\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.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
@@ -1336,18 +1336,23 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-a\ba     All current limits are reported
               -\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 created by the shell
+              -\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-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)
+              -\b-q\bq     The maximum number of bytes in POSIX message queues
+              -\b-r\br     The maximum real-time scheduling priority
               -\b-s\bs     The maximum stack size
               -\b-t\bt     The maximum amount of cpu time in seconds
               -\b-u\bu     The maximum number of processes  available  to  a  single
                      user
               -\b-v\bv     The  maximum  amount  of  virtual memory available to the
                      shell
+              -\b-x\bx     The maximum number of file locks
 
               If _\bl_\bi_\bm_\bi_\bt is given, it is the new value of the specified resource
               (the -\b-a\ba option is display only).  If no option is given, then -\b-f\bf
index f56bcf83337680760ee623214acd6040b059ec77..d555a0d742ac8697d2b83e48654ee1bd5475dc9a 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.19.1
-%%CreationDate: Wed Oct 12 16:46:45 2005
+%%CreationDate: Thu Jan 26 11:18:52 2006
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -1358,15 +1358,16 @@ dard output, and format speci\214cations, each of which causes printing\
 (gu-)-.37 E(ment)144 326.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 .933
-(sequences in the corresponding)144 338.4 R F2(ar)3.434 E(gument)-.37 E
-F0(\(e)3.434 E .934(xcept that)-.15 F F1(\\c)3.434 E F0 .934
-(terminates output, backslashes in)3.434 F F1(\\')3.434 E F0(,)A F1(\\")
-3.434 E F0(,)A(and)144 350.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(may contain up to four digits\), and)3.422
-F F1(%q)144 362.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
+.423(to e)2.923 F .423(xpand backslash escape)-.15 F .976
+(sequences in the corresponding)144 338.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 350.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
+(may contain up to four digits\), and)3.422 F F1(%q)144 362.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
 (in a format that can be reused as shell)3.631 F(input.)144 374.4 Q(The)
 144 398.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
@@ -1661,11 +1662,11 @@ Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1(pipefail)184
 (his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 192 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 1003.2 standard to match the standard \()224
-204 Q/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 216 Q
-(vileged)-.1 E F0(Same as)224 228 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184
-240 S(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 252 Q
-F0(Use a vi-style command line editing interf)32.22 E(ace.)-.1 E F1
+(fers from the)-.25 F(POSIX standard to match the standard \()224 204 Q
+/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 216 Q(vileged)
+-.1 E F0(Same as)224 228 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 240 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 252 Q F0
+(Use a vi-style command line editing interf)32.22 E(ace.)-.1 E F1
 (xtrace)184 264 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 282 Q
 F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F2(option\255name)
 3.053 E F0 3.053(,t)C .553(he v)-3.053 F .552
@@ -1907,10 +1908,10 @@ Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2
 (trap.)2.5 E F1(extglob)144 264 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 276 Q
-F0(are enabled.)2.5 E F1(extquote)144 288 Q F0 2.167(If set,)184 300 R
-F1($)4.667 E F0(')A F2(string)A F0 4.667('a)C(nd)-4.667 E F1($)4.667 E
-F0(")A F2(string)A F0 4.667("q)C 2.167(uoting is performed within)-4.667
-F F1(${)4.667 E F2(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.667 G
+F0(are enabled.)2.5 E F1(extquote)144 288 Q F0 2.473(If set,)184 300 R
+F1($)4.973 E F0<08>A F2(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+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.424(If set, patterns which f)7.77 F 1.425
@@ -2242,8 +2243,8 @@ G .265(his includes aliases)-5.265 F .426
 (command)3.048 E F0 -.2(bu)144 180 S(iltin.).2 E F1(type)5 E F0
 (returns true if an)2.5 E 2.5(yo)-.15 G 2.5(ft)-2.5 G(he ar)-2.5 E
 (guments are found, f)-.18 E(alse if none are found.)-.1 E F1(ulimit)108
-196.8 Q F0([)2.5 E F1(\255SHacd\215mnpstuv)A F0([)2.5 E F2(limit)A F0
-(]])A(Pro)144 208.8 Q .243(vides control o)-.15 F -.15(ve)-.15 G 2.743
+196.8 Q F0([)2.5 E F1(\255SHacde\214lmnpqrstuvx)A F0([)2.5 E F2(limit)A
+F0(]])A(Pro)144 208.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
 (ilable to the shell and to processes started by it, on systems).25 F
 .944(that allo)144 220.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
@@ -2272,105 +2273,111 @@ a number in the unit speci\214ed for the resource or one of the special\
 F0(All current limits are reported)25.3 E F1<ad63>144 328.8 Q F0
 (The maximum size of core \214les created)25.86 E F1<ad64>144 340.8 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<ad66>144 352.8 Q F0
-(The maximum size of \214les created by the shell)26.97 E F1<ad6c>144
-364.8 Q F0(The maximum size that may be lock)27.52 E(ed into memory)-.1
-E F1<ad6d>144 376.8 Q F0(The maximum resident set size)21.97 E F1<ad6e>
-144 388.8 Q F0 .791(The maximum number of open \214le descriptors \(mos\
+(gment)-.15 E F1<ad65>144 352.8 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 364.8 Q
+F0(The maximum size of \214les created by the shell)26.97 E F1<ad69>144
+376.8 Q F0(The maximum number of pending signals)27.52 E F1<ad6c>144
+388.8 Q F0(The maximum size that may be lock)27.52 E(ed into memory)-.1
+E F1<ad6d>144 400.8 Q F0(The maximum resident set size)21.97 E F1<ad6e>
+144 412.8 Q F0 .791(The maximum number of open \214le descriptors \(mos\
 t 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 400.8 Q F1<ad70>144 412.8 Q F0
+(alue to)-.25 F(be set\))180 424.8 Q F1<ad70>144 436.8 Q F0
 (The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
-<ad73>144 424.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 436.8 Q
-F0(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 448.8 Q
+<ad71>144 448.8 Q F0
+(The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144
+460.8 Q F0(The maximum real-time scheduling priority)25.86 E F1<ad73>144
+472.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 484.8 Q F0
+(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 496.8 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 460.8 Q F0
+(ilable to a single user).25 E F1<ad76>144 508.8 Q F0
 (The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G
-(ilable to the shell).25 E(If)144 477.6 Q F2(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 .175
-(option is gi)144 489.6 R -.15(ve)-.25 G .175(n, then).15 F F1<ad66>
+(ilable to the shell).25 E F1<ad78>144 520.8 Q F0
+(The maximum number of \214le locks)25.3 E(If)144 537.6 Q F2(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
+.175(option is gi)144 549.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 501.6
+<ad74>2.676 E F0 2.676(,w)C .176(hich is in)-2.676 F(seconds,)144 561.6
 Q F1<ad70>2.698 E F0 2.698(,w)C .198
 (hich is in units of 512-byte blocks, and)-2.698 F F1<ad6e>2.698 E F0
 (and)2.698 E F1<ad75>2.697 E F0 2.697(,w)C .197(hich are unscaled v)
 -2.697 F 2.697(alues. The)-.25 F .404(return status is 0 unless an in)
-144 513.6 R -.25(va)-.4 G .404(lid option or ar).25 F .404
+144 573.6 R -.25(va)-.4 G .404(lid option or ar).25 F .404
 (gument is supplied, or an error occurs while setting)-.18 F 2.5(an)144
-525.6 S .5 -.25(ew l)-2.5 H(imit.).25 E F1(umask)108 542.4 Q F0([)2.5 E
+585.6 S .5 -.25(ew l)-2.5 H(imit.).25 E F1(umask)108 602.4 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 554.4 R F2(mode)2.7 E F0
+.2(The user \214le-creation mask is set to)144 614.4 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 566.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-578.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+pted by)144 626.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+638.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 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 590.4 R .547
+(printed in symbolic form; the def)144 650.4 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 602.4 Q F0 .552
+(mode)144.38 662.4 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 614.4 Q
+F .551(The return status is 0 if the)5.551 F(mode w)144 674.4 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 631.2 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
-(...])2.5 E(Remo)144 643.2 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
+(unalias)108 691.2 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 703.2 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 655.2 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+F(remo)144 715.2 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 672 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 684 S 3.107
-(re).15 G(ach)-3.107 E F2(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
+(is not a de\214ned alias.)2.68 E(GNU Bash-3.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(unset)108 84 Q F0<5bad>2.5 E F1(fv)A F0 2.5(][)C/F2 10
+/Times-Italic@0 SF(name)-2.5 E F0(...])2.5 E -.15(Fo)144 96 S 3.107(re)
+.15 G(ach)-3.107 E F2(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 F1<ad76>144 696 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
+5.607 F F1<ad76>144 108 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
 .304(n, each).15 F F2(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 F1<ad66>144 708 Q F0 .46
+(riables may not be unset.).25 F(If)5.305 E F1<ad66>144 120 Q F0 .46
 (is speci\214ed, each)2.96 F F2(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 720 R .902
+F -.15(ve)-.15 G 2.959(d. Each).15 F .902(unset v)144 132 R .902
 (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(GNU Bash-3.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(an)144 84 Q
-4.285(yo)-.15 G(f)-4.285 E/F1 9/Times-Bold@0 SF(RANDOM)4.285 E/F2 9
-/Times-Roman@0 SF(,)A F1(SECONDS)4.035 E F2(,)A F1(LINENO)4.035 E F2(,)A
-F1(HISTCMD)4.035 E F2(,)A F1(FUNCN)4.035 E(AME)-.18 E F2(,)A F1(GR)4.035
-E(OUPS)-.27 E F2(,)A F0(or)4.035 E F1(DIRST)4.284 E -.495(AC)-.81 G(K)
-.495 E F0(are)4.034 E .328(unset, the)144 96 R 2.828(yl)-.15 G .328
-(ose their special properties, e)-2.828 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
+(If)5.903 E(an)144 144 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
+(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 156
+R 2.828(yl)-.15 G .328(ose their special properties, e)-2.828 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
-(xit status is true)-.15 F(unless a)144 108 Q/F3 10/Times-Italic@0 SF
-(name)2.86 E F0(is readonly)2.68 E(.)-.65 E/F4 10/Times-Bold@0 SF(wait)
-108 124.8 Q F0([)2.5 E F3 2.5(n.)C(..)-2.5 E F0(])A -.8(Wa)144 136.8 S
-.288(it for each speci\214ed process and return its termination status.)
-.8 F(Each)5.288 E F3(n)3.148 E F0 .287(may be a process ID or a)3.028 F
-.722(job speci\214cation; if a job spec is gi)144 148.8 R -.15(ve)-.25 G
+(xit status is true)-.15 F(unless a)144 168 Q F2(name)2.86 E F0
+(is readonly)2.68 E(.)-.65 E F1(wait)108 184.8 Q F0([)2.5 E F2 2.5(n.)C
+(..)-2.5 E F0(])A -.8(Wa)144 196.8 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 .287(may be a process ID or a)3.028 F .722
+(job speci\214cation; if a job spec is gi)144 208.8 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
-F3(n)3.583 E F0(is)3.463 E 1.266(not gi)144 160.8 R -.15(ve)-.25 G 1.266
+F2(n)3.583 E F0(is)3.463 E 1.266(not gi)144 220.8 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 F3(n)4.125 E F0 .456
-(speci\214es a non-e)144 172.8 R .457
+(nd the return status is zero.)-3.765 F(If)6.265 E F2(n)4.125 E F0 .456
+(speci\214es a non-e)144 232.8 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 184.8 S
+(Otherwise, the return status is the)5.457 F -.15(ex)144 244.8 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 201.6 Q F0(bash\(1\), sh\(1\))108
-213.6 Q(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP
+/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 261.6 Q F0(bash\(1\), sh\(1\))108
+273.6 Q(GNU Bash-3.0)72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP
 %%Trailer
 end
 %%EOF
index 8589fd2843d20eb1bd48477b37a3edab192d1087..167462edb53dd2bfc38862b89d29adf52f4763a5 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.19.1
-%%CreationDate: Wed Oct 12 16:46:46 2005
+%%CreationDate: Thu Jan 26 11:18:52 2006
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%DocumentSuppliedResources: procset grops 1.19 1
index d1323d0be00ae7cf026e28c07f62a8b945fd619f..84cdd81907ee1cfe455046d6e8e812571136a4b4 100644 (file)
@@ -2,9 +2,9 @@
 Copyright (C) 1988-2006 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Fri Jan 13 19:55:29 EST 2006
+@set LASTCHANGE Thu Jan 26 09:05:01 EST 2006
 
-@set EDITION 3.1
-@set VERSION 3.1
-@set UPDATED 13 January 2006
+@set EDITION 3.2
+@set VERSION 3.2
+@set UPDATED 26 January 2006
 @set UPDATED-MONTH January 2006
index 094d924555b366e9b467532e09476bfaae5fa3f2..6c05ba306f06ac42010944262fbd3f911813e16f 100644 (file)
--- a/externs.h
+++ b/externs.h
@@ -225,6 +225,9 @@ extern char *sh_realpath __P((const char *, char *));
 extern int sh_setlinebuf __P((FILE *));
 #endif
 
+/* declarations for functions defined in lib/sh/shaccess.c */
+extern int sh_eaccess __P((char *, int));
+
 /* declarations for functions defined in lib/sh/shmatch.c */
 extern int sh_regmatch __P((const char *, const char *, int));
 
diff --git a/externs.h~ b/externs.h~
new file mode 100644 (file)
index 0000000..094d924
--- /dev/null
@@ -0,0 +1,392 @@
+/* externs.h -- extern function declarations which do not appear in their
+   own header file. */
+
+/* Copyright (C) 1993-2005 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+/* Make sure that this is included *after* config.h! */
+
+#if !defined (_EXTERNS_H_)
+#  define _EXTERNS_H_
+
+#include "stdc.h"
+
+/* Functions from expr.c. */
+extern intmax_t evalexp __P((char *, int *));
+
+/* Functions from print_cmd.c. */
+extern char *make_command_string __P((COMMAND *));
+extern char *named_function_string __P((char *, COMMAND *, int));
+
+extern void print_command __P((COMMAND *));
+extern void print_simple_command __P((SIMPLE_COM *));
+extern void print_word_list __P((WORD_LIST *, char *));
+
+/* debugger support */
+extern void print_for_command_head __P((FOR_COM *));
+#if defined (SELECT_COMMAND)
+extern void print_select_command_head __P((SELECT_COM *));
+#endif
+extern void print_case_command_head __P((CASE_COM *));
+#if defined (DPAREN_ARITHMETIC)
+extern void print_arith_command __P((WORD_LIST *));
+#endif
+#if defined (COND_COMMAND)
+extern void print_cond_command __P((COND_COM *));
+#endif
+
+/* set -x support */
+extern char *indirection_level_string __P((void));
+extern void xtrace_print_assignment __P((char *, char *, int, int));
+extern void xtrace_print_word_list __P((WORD_LIST *, int));
+extern void xtrace_print_for_command_head __P((FOR_COM *));
+#if defined (SELECT_COMMAND)
+extern void xtrace_print_select_command_head __P((SELECT_COM *));
+#endif
+extern void xtrace_print_case_command_head __P((CASE_COM *));
+#if defined (DPAREN_ARITHMETIC)
+extern void xtrace_print_arith_cmd __P((WORD_LIST *));
+#endif
+#if defined (COND_COMMAND)
+extern void xtrace_print_cond_term __P((int, int, WORD_DESC *, char *, char *));
+#endif
+
+/* Functions from shell.c. */
+extern void exit_shell __P((int)) __attribute__((__noreturn__));
+extern void sh_exit __P((int)) __attribute__((__noreturn__));
+extern void disable_priv_mode __P((void));
+extern void unbind_args __P((void));
+
+#if defined (RESTRICTED_SHELL)
+extern int shell_is_restricted __P((char *));
+extern int maybe_make_restricted __P((char *));
+#endif
+
+extern void unset_bash_input __P((int));
+extern void get_current_user_info __P((void));
+
+/* Functions from eval.c. */
+extern int reader_loop __P((void));
+extern int parse_command __P((void));
+extern int read_command __P((void));
+
+/* Functions from braces.c. */
+#if defined (BRACE_EXPANSION)
+extern char **brace_expand __P((char *));
+#endif
+
+/* Miscellaneous functions from parse.y */
+extern int yyparse __P((void));
+extern int return_EOF __P((void));
+extern void reset_parser __P((void));
+extern WORD_LIST *parse_string_to_word_list __P((char *, int, const char *));
+
+extern void free_pushed_string_input __P((void));
+
+extern char *decode_prompt_string __P((char *));
+
+extern int get_current_prompt_level __P((void));
+extern void set_current_prompt_level __P((int));
+
+#if defined (HISTORY)
+extern char *history_delimiting_chars __P((void));
+#endif
+
+/* Declarations for functions defined in locale.c */
+extern void set_default_locale __P((void));
+extern void set_default_locale_vars __P((void));
+extern int set_locale_var __P((char *, char *));
+extern int set_lang __P((char *, char *));
+extern char *get_locale_var __P((char *));
+extern char *localetrans __P((char *, int, int *));
+extern char *mk_msgstr __P((char *, int *));
+extern char *localeexpand __P((char *, int, int, int, int *));
+
+/* Declarations for functions defined in list.c. */
+extern void list_walk __P((GENERIC_LIST *, sh_glist_func_t *));
+extern void wlist_walk __P((WORD_LIST *, sh_icpfunc_t *));
+extern GENERIC_LIST *list_reverse ();
+extern int list_length ();
+extern GENERIC_LIST *list_append ();
+extern GENERIC_LIST *list_remove ();
+
+/* Declarations for functions defined in stringlib.c */
+extern int find_string_in_alist __P((char *, STRING_INT_ALIST *, int));
+extern char *find_token_in_alist __P((int, STRING_INT_ALIST *, int));
+extern int find_index_in_alist __P((char *, STRING_INT_ALIST *, int));
+
+extern char *substring __P((char *, int, int));
+extern char *strsub __P((char *, char *, char *, int));
+extern char *strcreplace __P((char *, int, char *, int));
+extern void strip_leading __P((char *));
+extern void strip_trailing __P((char *, int, int));
+extern void xbcopy __P((char *, char *, int));
+
+/* Functions from version.c. */
+extern char *shell_version_string __P((void));
+extern void show_shell_version __P((int));
+
+/* Functions from the bash library, lib/sh/libsh.a.  These should really
+   go into a separate include file. */
+
+/* declarations for functions defined in lib/sh/clktck.c */
+extern long get_clk_tck __P((void));
+
+/* declarations for functions defined in lib/sh/clock.c */
+extern void clock_t_to_secs ();
+extern void print_clock_t ();
+
+/* Declarations for functions defined in lib/sh/fmtulong.c */
+#define FL_PREFIX     0x01    /* add 0x, 0X, or 0 prefix as appropriate */
+#define FL_ADDBASE    0x02    /* add base# prefix to converted value */
+#define FL_HEXUPPER   0x04    /* use uppercase when converting to hex */
+#define FL_UNSIGNED   0x08    /* don't add any sign */
+
+extern char *fmtulong __P((unsigned long int, int, char *, size_t, int));
+
+/* Declarations for functions defined in lib/sh/fmtulong.c */
+#if defined (HAVE_LONG_LONG)
+extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int));
+#endif
+
+/* Declarations for functions defined in lib/sh/fmtumax.c */
+extern char *fmtumax __P((uintmax_t, int, char *, size_t, int));
+
+/* Declarations for functions defined in lib/sh/getcwd.c */
+#if !defined (HAVE_GETCWD)
+extern char *getcwd __P((char *, size_t));
+#endif
+
+/* Declarations for functions defined in lib/sh/itos.c */
+extern char *inttostr __P((intmax_t, char *, size_t));
+extern char *itos __P((intmax_t));
+extern char *uinttostr __P((uintmax_t, char *, size_t));
+extern char *uitos __P((uintmax_t));
+
+/* declarations for functions defined in lib/sh/makepath.c */
+#define MP_DOTILDE     0x01
+#define MP_DOCWD       0x02
+#define MP_RMDOT       0x04
+
+extern char *sh_makepath __P((const char *, const char *, int));
+
+/* declarations for functions defined in lib/sh/netconn.c */
+extern int isnetconn __P((int));
+
+/* declarations for functions defined in lib/sh/netopen.c */
+extern int netopen __P((char *));
+
+/* Declarations for  functions defined in lib/sh/oslib.c */
+
+#if !defined (HAVE_DUP2) || defined (DUP2_BROKEN)
+extern int dup2 __P((int, int));
+#endif
+
+#if !defined (HAVE_GETDTABLESIZE)
+extern int getdtablesize __P((void));
+#endif /* !HAVE_GETDTABLESIZE */
+
+#if !defined (HAVE_GETHOSTNAME)
+extern int gethostname __P((char *, int));
+#endif /* !HAVE_GETHOSTNAME */
+
+extern int getmaxgroups __P((void));
+extern long getmaxchild __P((void));
+
+/* declarations for functions defined in lib/sh/pathcanon.c */
+#define PATH_CHECKDOTDOT       0x0001
+#define PATH_CHECKEXISTS       0x0002
+#define PATH_HARDPATH          0x0004
+#define PATH_NOALLOC           0x0008
+
+extern char *sh_canonpath __P((char *, int));
+
+/* declarations for functions defined in lib/sh/pathphys.c */
+extern char *sh_physpath __P((char *, int));
+extern char *sh_realpath __P((const char *, char *));
+
+/* declarations for functions defined in lib/sh/setlinebuf.c */
+#ifdef NEED_SH_SETLINEBUF_DECL
+extern int sh_setlinebuf __P((FILE *));
+#endif
+
+/* declarations for functions defined in lib/sh/shmatch.c */
+extern int sh_regmatch __P((const char *, const char *, int));
+
+/* defines for flags argument to sh_regmatch. */
+#define SHMAT_SUBEXP           0x001   /* save subexpressions in SH_REMATCH */
+#define SHMAT_PWARN            0x002   /* print a warning message on invalid regexp */
+
+/* declarations for functions defined in lib/sh/shquote.c */
+extern char *sh_single_quote __P((char *));
+extern char *sh_double_quote __P((char *));
+extern char *sh_mkdoublequoted __P((const char *, int, int));
+extern char *sh_un_double_quote __P((char *));
+extern char *sh_backslash_quote __P((char *));
+extern char *sh_backslash_quote_for_double_quotes __P((char *));
+extern int sh_contains_shell_metas __P((char *));
+
+/* declarations for functions defined in lib/sh/spell.c */
+extern int spname __P((char *, char *));
+
+/* declarations for functions defined in lib/sh/strcasecmp.c */
+#if !defined (HAVE_STRCASECMP)
+extern int strncasecmp __P((const char *, const char *, int));
+extern int strcasecmp __P((const char *, const char *));
+#endif /* HAVE_STRCASECMP */
+
+/* declarations for functions defined in lib/sh/strerror.c */
+#if !defined (strerror)
+extern char *strerror __P((int));
+#endif
+
+/* declarations for functions defined in lib/sh/strftime.c */
+#if !defined (HAVE_STRFTIME) && defined (NEED_STRFTIME_DECL)
+extern size_t strftime __P((char *, size_t, const char *, const struct tm *));
+#endif
+
+/* declarations for functions defined in lib/sh/strindex.c */
+extern char *strindex __P((const char *, const char *));
+
+/* declarations for functions and structures defined in lib/sh/stringlist.c */
+
+/* This is a general-purpose argv-style array struct. */
+typedef struct _list_of_strings {
+  char **list;
+  int list_size;
+  int list_len;
+} STRINGLIST;
+
+typedef int sh_strlist_map_func_t __P((char *));
+
+extern STRINGLIST *strlist_create __P((int));
+extern STRINGLIST *strlist_resize __P((STRINGLIST *, int));
+extern void strlist_flush __P((STRINGLIST *));
+extern void strlist_dispose __P((STRINGLIST *));
+extern int strlist_remove __P((STRINGLIST *, char *));
+extern STRINGLIST *strlist_copy __P((STRINGLIST *));
+extern STRINGLIST *strlist_merge __P((STRINGLIST *, STRINGLIST *));
+extern STRINGLIST *strlist_append __P((STRINGLIST *, STRINGLIST *));
+extern STRINGLIST *strlist_prefix_suffix __P((STRINGLIST *, char *, char *));
+extern void strlist_print __P((STRINGLIST *, char *));
+extern void strlist_walk __P((STRINGLIST *, sh_strlist_map_func_t *));
+extern void strlist_sort __P((STRINGLIST *));
+
+/* declarations for functions defined in lib/sh/stringvec.c */
+
+extern char **strvec_create __P((int));
+extern char **strvec_resize __P((char **, int));
+extern void strvec_flush __P((char **));
+extern void strvec_dispose __P((char **));
+extern int strvec_remove __P((char **, char *));
+extern int strvec_len __P((char **));
+extern int strvec_search __P((char **, char *));
+extern char **strvec_copy __P((char **));
+extern int strvec_strcmp __P((char **, char **));
+extern void strvec_sort __P((char **));
+
+extern char **strvec_from_word_list __P((WORD_LIST *, int, int, int *));
+extern WORD_LIST *strvec_to_word_list __P((char **, int, int));
+
+/* declarations for functions defined in lib/sh/strnlen.c */
+#if !defined (HAVE_STRNLEN)
+extern size_t strnlen __P((const char *, size_t));
+#endif
+
+/* declarations for functions defined in lib/sh/strpbrk.c */
+#if !defined (HAVE_STRPBRK)
+extern char *strpbrk __P((const char *, const char *));
+#endif
+
+/* declarations for functions defined in lib/sh/strtod.c */
+#if !defined (HAVE_STRTOD)
+extern double strtod __P((const char *, char **));
+#endif
+
+/* declarations for functions defined in lib/sh/strtol.c */
+#if !HAVE_DECL_STRTOL
+extern long strtol __P((const char *, char **, int));
+#endif
+
+/* declarations for functions defined in lib/sh/strtoll.c */
+#if defined (HAVE_LONG_LONG) && !HAVE_DECL_STRTOLL
+extern long long strtoll __P((const char *, char **, int));
+#endif
+
+/* declarations for functions defined in lib/sh/strtoul.c */
+#if !HAVE_DECL_STRTOUL
+extern unsigned long strtoul __P((const char *, char **, int));
+#endif
+
+/* declarations for functions defined in lib/sh/strtoull.c */
+#if defined (HAVE_LONG_LONG) && !HAVE_DECL_STRTOULL
+extern unsigned long long strtoull __P((const char *, char **, int));
+#endif
+
+/* declarations for functions defined in lib/sh/strimax.c */
+#if !HAVE_DECL_STRTOIMAX
+extern intmax_t strtoimax __P((const char *, char **, int));
+#endif
+
+/* declarations for functions defined in lib/sh/strumax.c */
+#if !HAVE_DECL_STRTOUMAX
+extern uintmax_t strtoumax __P((const char *, char **, int));
+#endif
+
+/* declarations for functions defined in lib/sh/strtrans.c */
+extern char *ansicstr __P((char *, int, int, int *, int *));
+extern char *ansic_quote __P((char *, int, int *));
+extern int ansic_shouldquote __P((const char *));
+extern char *ansiexpand __P((char *, int, int, int *));
+
+/* declarations for functions defined in lib/sh/timeval.c.  No prototypes
+   so we don't have to count on having a definition of struct timeval in
+   scope when this file is included. */
+extern void timeval_to_secs ();
+extern void print_timeval ();
+
+/* declarations for functions defined in lib/sh/tmpfile.c */
+#define MT_USETMPDIR           0x0001
+#define MT_READWRITE           0x0002
+#define MT_USERANDOM           0x0004
+
+extern char *sh_mktmpname __P((char *, int));
+extern int sh_mktmpfd __P((char *, int, char **));
+/* extern FILE *sh_mktmpfp __P((char *, int, char **)); */
+
+/* declarations for functions defined in lib/sh/winsize.c */
+extern void get_new_window_size __P((int, int *, int *));
+
+/* declarations for functions defined in lib/sh/xstrchr.c */
+#undef xstrchr
+extern char *xstrchr __P((const char *, int));
+
+/* declarations for functions defined in lib/sh/zcatfd.c */
+extern int zcatfd __P((int, int, char *));
+
+/* declarations for functions defined in lib/sh/zread.c */
+extern ssize_t zread __P((int, char *, size_t));
+extern ssize_t zreadintr __P((int, char *, size_t));
+extern ssize_t zreadc __P((int, char *));
+extern void zreset __P((void));
+extern void zsyncfd __P((int));
+
+/* declarations for functions defined in lib/sh/zwrite.c */
+extern int zwrite __P((int, char *, size_t));
+
+#endif /* _EXTERNS_H_ */
index 3384e84b9edfb6b38fae02fa48c275d9f51cbbe3..20160fe96c6c39f72f7d380d8b47ac015c173ffb 100644 (file)
--- a/general.c
+++ b/general.c
@@ -503,7 +503,7 @@ int
 file_iswdir (fn)
      char *fn;
 {
-  return (file_isdir (fn) && test_eaccess (fn, W_OK) == 0);
+  return (file_isdir (fn) && sh_eaccess (fn, W_OK) == 0);
 }
 
 /* Return 1 if STRING contains an absolute pathname, else 0.  Used by `cd'
diff --git a/general.c~ b/general.c~
new file mode 100644 (file)
index 0000000..3384e84
--- /dev/null
@@ -0,0 +1,1025 @@
+/* general.c -- Stuff that is used by all files. */
+
+/* Copyright (C) 1987-2004 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#include "config.h"
+
+#include "bashtypes.h"
+#ifndef _MINIX
+#  include <sys/param.h>
+#endif
+#include "posixstat.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "filecntl.h"
+#include "bashansi.h"
+#include <stdio.h>
+#include "chartypes.h"
+#include <errno.h>
+
+#include "bashintl.h"
+
+#include "shell.h"
+#include "test.h"
+
+#include <tilde/tilde.h>
+
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+extern int expand_aliases;
+extern int interrupt_immediately;
+extern int interactive_comments;
+extern int check_hashed_filenames;
+extern int source_uses_path;
+extern int source_searches_cwd;
+
+static char *bash_special_tilde_expansions __P((char *));
+static int unquoted_tilde_word __P((const char *));
+static void initialize_group_array __P((void));
+
+/* A standard error message to use when getcwd() returns NULL. */
+char *bash_getcwd_errstr = N_("getcwd: cannot access parent directories");
+
+/* Do whatever is necessary to initialize `Posix mode'. */
+void
+posix_initialize (on)
+     int on;
+{
+  /* Things that should be turned on when posix mode is enabled. */
+  if (on != 0)
+    {
+      interactive_comments = source_uses_path = expand_aliases = 1;
+    }
+
+  /* Things that should be turned on when posix mode is disabled. */
+  if (on == 0)
+    {
+      source_searches_cwd = 1;
+      expand_aliases = interactive_shell;
+    }
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*  Functions to convert to and from and display non-standard types */
+/*                                                                 */
+/* **************************************************************** */
+
+#if defined (RLIMTYPE)
+RLIMTYPE
+string_to_rlimtype (s)
+     char *s;
+{
+  RLIMTYPE ret;
+  int neg;
+
+  ret = 0;
+  neg = 0;
+  while (s && *s && whitespace (*s))
+    s++;
+  if (*s == '-' || *s == '+')
+    {
+      neg = *s == '-';
+      s++;
+    }
+  for ( ; s && *s && DIGIT (*s); s++)
+    ret = (ret * 10) + TODIGIT (*s);
+  return (neg ? -ret : ret);
+}
+
+void
+print_rlimtype (n, addnl)
+     RLIMTYPE n;
+     int addnl;
+{
+  char s[INT_STRLEN_BOUND (RLIMTYPE) + 1], *p;
+
+  p = s + sizeof(s);
+  *--p = '\0';
+
+  if (n < 0)
+    {
+      do
+       *--p = '0' - n % 10;
+      while ((n /= 10) != 0);
+
+      *--p = '-';
+    }
+  else
+    {
+      do
+       *--p = '0' + n % 10;
+      while ((n /= 10) != 0);
+    }
+
+  printf ("%s%s", p, addnl ? "\n" : "");
+}
+#endif /* RLIMTYPE */
+
+/* **************************************************************** */
+/*                                                                 */
+/*                    Input Validation Functions                   */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Return non-zero if all of the characters in STRING are digits. */
+int
+all_digits (string)
+     char *string;
+{
+  register char *s;
+
+  for (s = string; *s; s++)
+    if (DIGIT (*s) == 0)
+      return (0);
+
+  return (1);
+}
+
+/* Return non-zero if the characters pointed to by STRING constitute a
+   valid number.  Stuff the converted number into RESULT if RESULT is
+   not null. */
+int
+legal_number (string, result)
+     char *string;
+     intmax_t *result;
+{
+  intmax_t value;
+  char *ep;
+
+  if (result)
+    *result = 0;
+
+  errno = 0;
+  value = strtoimax (string, &ep, 10);
+  if (errno)
+    return 0;  /* errno is set on overflow or underflow */
+
+  /* Skip any trailing whitespace, since strtoimax does not. */
+  while (whitespace (*ep))
+    ep++;
+
+  /* If *string is not '\0' but *ep is '\0' on return, the entire string
+     is valid. */
+  if (string && *string && *ep == '\0')
+    {
+      if (result)
+       *result = value;
+      /* The SunOS4 implementation of strtol() will happily ignore
+        overflow conditions, so this cannot do overflow correctly
+        on those systems. */
+      return 1;
+    }
+    
+  return (0);
+}
+
+/* Return 1 if this token is a legal shell `identifier'; that is, it consists
+   solely of letters, digits, and underscores, and does not begin with a
+   digit. */
+int
+legal_identifier (name)
+     char *name;
+{
+  register char *s;
+  unsigned char c;
+
+  if (!name || !(c = *name) || (legal_variable_starter (c) == 0))
+    return (0);
+
+  for (s = name + 1; (c = *s) != 0; s++)
+    {
+      if (legal_variable_char (c) == 0)
+       return (0);
+    }
+  return (1);
+}
+
+/* Make sure that WORD is a valid shell identifier, i.e.
+   does not contain a dollar sign, nor is quoted in any way.  Nor
+   does it consist of all digits.  If CHECK_WORD is non-zero,
+   the word is checked to ensure that it consists of only letters,
+   digits, and underscores. */
+int
+check_identifier (word, check_word)
+     WORD_DESC *word;
+     int check_word;
+{
+  if ((word->flags & (W_HASDOLLAR|W_QUOTED)) || all_digits (word->word))
+    {
+      internal_error (_("`%s': not a valid identifier"), word->word);
+      return (0);
+    }
+  else if (check_word && legal_identifier (word->word) == 0)
+    {
+      internal_error (_("`%s': not a valid identifier"), word->word);
+      return (0);
+    }
+  else
+    return (1);
+}
+
+/* Return 1 if STRING comprises a valid alias name.  The shell accepts
+   essentially all characters except those which must be quoted to the
+   parser (which disqualifies them from alias expansion anyway) and `/'. */
+int
+legal_alias_name (string, flags)
+     char *string;
+     int flags;
+{
+  register char *s;
+
+  for (s = string; *s; s++)
+    if (shellbreak (*s) || shellxquote (*s) || shellexp (*s) || (*s == '/'))
+      return 0;
+  return 1;
+}
+
+/* Returns non-zero if STRING is an assignment statement.  The returned value
+   is the index of the `=' sign. */
+int
+assignment (string, flags)
+     const char *string;
+     int flags;
+{
+  register unsigned char c;
+  register int newi, indx;
+
+  c = string[indx = 0];
+
+#if defined (ARRAY_VARS)
+  if ((legal_variable_starter (c) == 0) && (flags == 0 || c != '[')) /* ] */
+#else
+  if (legal_variable_starter (c) == 0)
+#endif
+    return (0);
+
+  while (c = string[indx])
+    {
+      /* The following is safe.  Note that '=' at the start of a word
+        is not an assignment statement. */
+      if (c == '=')
+       return (indx);
+
+#if defined (ARRAY_VARS)
+      if (c == '[')
+       {
+         newi = skipsubscript (string, indx);
+         if (string[newi++] != ']')
+           return (0);
+         if (string[newi] == '+' && string[newi+1] == '=')
+           return (newi + 1);
+         return ((string[newi] == '=') ? newi : 0);
+       }
+#endif /* ARRAY_VARS */
+
+      /* Check for `+=' */
+      if (c == '+' && string[indx+1] == '=')
+       return (indx + 1);
+
+      /* Variable names in assignment statements may contain only letters,
+        digits, and `_'. */
+      if (legal_variable_char (c) == 0)
+       return (0);
+
+      indx++;
+    }
+  return (0);
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*          Functions to manage files and file descriptors         */
+/*                                                                 */
+/* **************************************************************** */
+
+/* A function to unset no-delay mode on a file descriptor.  Used in shell.c
+   to unset it on the fd passed as stdin.  Should be called on stdin if
+   readline gets an EAGAIN or EWOULDBLOCK when trying to read input. */
+
+#if !defined (O_NDELAY)
+#  if defined (FNDELAY)
+#    define O_NDELAY FNDELAY
+#  endif
+#endif /* O_NDELAY */
+
+/* Make sure no-delay mode is not set on file descriptor FD. */
+int
+sh_unset_nodelay_mode (fd)
+     int fd;
+{
+  int flags, bflags;
+
+  if ((flags = fcntl (fd, F_GETFL, 0)) < 0)
+    return -1;
+
+  bflags = 0;
+
+  /* This is defined to O_NDELAY in filecntl.h if O_NONBLOCK is not present
+     and O_NDELAY is defined. */
+#ifdef O_NONBLOCK
+  bflags |= O_NONBLOCK;
+#endif
+
+#ifdef O_NDELAY
+  bflags |= O_NDELAY;
+#endif
+
+  if (flags & bflags)
+    {
+      flags &= ~bflags;
+      return (fcntl (fd, F_SETFL, flags));
+    }
+
+  return 0;
+}
+
+/* Return 1 if file descriptor FD is valid; 0 otherwise. */
+int
+sh_validfd (fd)
+     int fd;
+{
+  return (fcntl (fd, F_GETFD, 0) >= 0);
+}
+
+/* There is a bug in the NeXT 2.1 rlogind that causes opens
+   of /dev/tty to fail. */
+
+#if defined (__BEOS__)
+/* On BeOS, opening in non-blocking mode exposes a bug in BeOS, so turn it
+   into a no-op.  This should probably go away in the future. */
+#  undef O_NONBLOCK
+#  define O_NONBLOCK 0
+#endif /* __BEOS__ */
+
+void
+check_dev_tty ()
+{
+  int tty_fd;
+  char *tty;
+
+  tty_fd = open ("/dev/tty", O_RDWR|O_NONBLOCK);
+
+  if (tty_fd < 0)
+    {
+      tty = (char *)ttyname (fileno (stdin));
+      if (tty == 0)
+       return;
+      tty_fd = open (tty, O_RDWR|O_NONBLOCK);
+    }
+  close (tty_fd);
+}
+
+/* Return 1 if PATH1 and PATH2 are the same file.  This is kind of
+   expensive.  If non-NULL STP1 and STP2 point to stat structures
+   corresponding to PATH1 and PATH2, respectively. */
+int
+same_file (path1, path2, stp1, stp2)
+     char *path1, *path2;
+     struct stat *stp1, *stp2;
+{
+  struct stat st1, st2;
+
+  if (stp1 == NULL)
+    {
+      if (stat (path1, &st1) != 0)
+       return (0);
+      stp1 = &st1;
+    }
+
+  if (stp2 == NULL)
+    {
+      if (stat (path2, &st2) != 0)
+       return (0);
+      stp2 = &st2;
+    }
+
+  return ((stp1->st_dev == stp2->st_dev) && (stp1->st_ino == stp2->st_ino));
+}
+
+/* Move FD to a number close to the maximum number of file descriptors
+   allowed in the shell process, to avoid the user stepping on it with
+   redirection and causing us extra work.  If CHECK_NEW is non-zero,
+   we check whether or not the file descriptors are in use before
+   duplicating FD onto them.  MAXFD says where to start checking the
+   file descriptors.  If it's less than 20, we get the maximum value
+   available from getdtablesize(2). */
+int
+move_to_high_fd (fd, check_new, maxfd)
+     int fd, check_new, maxfd;
+{
+  int script_fd, nfds, ignore;
+
+  if (maxfd < 20)
+    {
+      nfds = getdtablesize ();
+      if (nfds <= 0)
+       nfds = 20;
+      if (nfds > HIGH_FD_MAX)
+       nfds = HIGH_FD_MAX;             /* reasonable maximum */
+    }
+  else
+    nfds = maxfd;
+
+  for (nfds--; check_new && nfds > 3; nfds--)
+    if (fcntl (nfds, F_GETFD, &ignore) == -1)
+      break;
+
+  if (nfds > 3 && fd != nfds && (script_fd = dup2 (fd, nfds)) != -1)
+    {
+      if (check_new == 0 || fd != fileno (stderr))     /* don't close stderr */
+       close (fd);
+      return (script_fd);
+    }
+
+  /* OK, we didn't find one less than our artificial maximum; return the
+     original file descriptor. */
+  return (fd);
+}
+/* Return non-zero if the characters from SAMPLE are not all valid
+   characters to be found in the first line of a shell script.  We
+   check up to the first newline, or SAMPLE_LEN, whichever comes first.
+   All of the characters must be printable or whitespace. */
+
+int
+check_binary_file (sample, sample_len)
+     char *sample;
+     int sample_len;
+{
+  register int i;
+  unsigned char c;
+
+  for (i = 0; i < sample_len; i++)
+    {
+      c = sample[i];
+      if (c == '\n')
+       return (0);
+
+      if (ISSPACE (c) == 0 && ISPRINT (c) == 0)
+       return (1);
+    }
+
+  return (0);
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*                 Functions to inspect pathnames                  */
+/*                                                                 */
+/* **************************************************************** */
+
+int
+file_isdir (fn)
+     char *fn;
+{
+  struct stat sb;
+
+  return ((stat (fn, &sb) == 0) && S_ISDIR (sb.st_mode));
+}
+
+int
+file_iswdir (fn)
+     char *fn;
+{
+  return (file_isdir (fn) && test_eaccess (fn, W_OK) == 0);
+}
+
+/* Return 1 if STRING contains an absolute pathname, else 0.  Used by `cd'
+   to decide whether or not to look up a directory name in $CDPATH. */
+int
+absolute_pathname (string)
+     const char *string;
+{
+  if (string == 0 || *string == '\0')
+    return (0);
+
+  if (ABSPATH(string))
+    return (1);
+
+  if (string[0] == '.' && PATHSEP(string[1]))  /* . and ./ */
+    return (1);
+
+  if (string[0] == '.' && string[1] == '.' && PATHSEP(string[2]))      /* .. and ../ */
+    return (1);
+
+  return (0);
+}
+
+/* Return 1 if STRING is an absolute program name; it is absolute if it
+   contains any slashes.  This is used to decide whether or not to look
+   up through $PATH. */
+int
+absolute_program (string)
+     const char *string;
+{
+  return ((char *)xstrchr (string, '/') != (char *)NULL);
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*                 Functions to manipulate pathnames               */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Turn STRING (a pathname) into an absolute pathname, assuming that
+   DOT_PATH contains the symbolic location of `.'.  This always
+   returns a new string, even if STRING was an absolute pathname to
+   begin with. */
+char *
+make_absolute (string, dot_path)
+     char *string, *dot_path;
+{
+  char *result;
+
+  if (dot_path == 0 || ABSPATH(string))
+#ifdef __CYGWIN__
+    {
+      char pathbuf[PATH_MAX + 1];
+
+      cygwin_conv_to_full_posix_path (string, pathbuf);
+      result = savestring (pathbuf);
+    }
+#else
+    result = savestring (string);
+#endif
+  else
+    result = sh_makepath (dot_path, string, 0);
+
+  return (result);
+}
+
+/* Return the `basename' of the pathname in STRING (the stuff after the
+   last '/').  If STRING is `/', just return it. */
+char *
+base_pathname (string)
+     char *string;
+{
+  char *p;
+
+#if 0
+  if (absolute_pathname (string) == 0)
+    return (string);
+#endif
+
+  if (string[0] == '/' && string[1] == 0)
+    return (string);
+
+  p = (char *)strrchr (string, '/');
+  return (p ? ++p : string);
+}
+
+/* Return the full pathname of FILE.  Easy.  Filenames that begin
+   with a '/' are returned as themselves.  Other filenames have
+   the current working directory prepended.  A new string is
+   returned in either case. */
+char *
+full_pathname (file)
+     char *file;
+{
+  char *ret;
+
+  file = (*file == '~') ? bash_tilde_expand (file, 0) : savestring (file);
+
+  if (ABSPATH(file))
+    return (file);
+
+  ret = sh_makepath ((char *)NULL, file, (MP_DOCWD|MP_RMDOT));
+  free (file);
+
+  return (ret);
+}
+
+/* A slightly related function.  Get the prettiest name of this
+   directory possible. */
+static char tdir[PATH_MAX];
+
+/* Return a pretty pathname.  If the first part of the pathname is
+   the same as $HOME, then replace that with `~'.  */
+char *
+polite_directory_format (name)
+     char *name;
+{
+  char *home;
+  int l;
+
+  home = get_string_value ("HOME");
+  l = home ? strlen (home) : 0;
+  if (l > 1 && strncmp (home, name, l) == 0 && (!name[l] || name[l] == '/'))
+    {
+      strncpy (tdir + 1, name + l, sizeof(tdir) - 2);
+      tdir[0] = '~';
+      tdir[sizeof(tdir) - 1] = '\0';
+      return (tdir);
+    }
+  else
+    return (name);
+}
+
+/* Given a string containing units of information separated by colons,
+   return the next one pointed to by (P_INDEX), or NULL if there are no more.
+   Advance (P_INDEX) to the character after the colon. */
+char *
+extract_colon_unit (string, p_index)
+     char *string;
+     int *p_index;
+{
+  int i, start, len;
+  char *value;
+
+  if (string == 0)
+    return (string);
+
+  len = strlen (string);
+  if (*p_index >= len)
+    return ((char *)NULL);
+
+  i = *p_index;
+
+  /* Each call to this routine leaves the index pointing at a colon if
+     there is more to the path.  If I is > 0, then increment past the
+     `:'.  If I is 0, then the path has a leading colon.  Trailing colons
+     are handled OK by the `else' part of the if statement; an empty
+     string is returned in that case. */
+  if (i && string[i] == ':')
+    i++;
+
+  for (start = i; string[i] && string[i] != ':'; i++)
+    ;
+
+  *p_index = i;
+
+  if (i == start)
+    {
+      if (string[i])
+       (*p_index)++;
+      /* Return "" in the case of a trailing `:'. */
+      value = (char *)xmalloc (1);
+      value[0] = '\0';
+    }
+  else
+    value = substring (string, start, i);
+
+  return (value);
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*                 Tilde Initialization and Expansion              */
+/*                                                                 */
+/* **************************************************************** */
+
+#if defined (PUSHD_AND_POPD)
+extern char *get_dirstack_from_string __P((char *));
+#endif
+
+static char **bash_tilde_prefixes;
+static char **bash_tilde_prefixes2;
+static char **bash_tilde_suffixes;
+static char **bash_tilde_suffixes2;
+
+/* If tilde_expand hasn't been able to expand the text, perhaps it
+   is a special shell expansion.  This function is installed as the
+   tilde_expansion_preexpansion_hook.  It knows how to expand ~- and ~+.
+   If PUSHD_AND_POPD is defined, ~[+-]N expands to directories from the
+   directory stack. */
+static char *
+bash_special_tilde_expansions (text)
+     char *text;
+{
+  char *result;
+
+  result = (char *)NULL;
+
+  if (text[0] == '+' && text[1] == '\0')
+    result = get_string_value ("PWD");
+  else if (text[0] == '-' && text[1] == '\0')
+    result = get_string_value ("OLDPWD");
+#if defined (PUSHD_AND_POPD)
+  else if (DIGIT (*text) || ((*text == '+' || *text == '-') && DIGIT (text[1])))
+    result = get_dirstack_from_string (text);
+#endif
+
+  return (result ? savestring (result) : (char *)NULL);
+}
+
+/* Initialize the tilde expander.  In Bash, we handle `~-' and `~+', as
+   well as handling special tilde prefixes; `:~" and `=~' are indications
+   that we should do tilde expansion. */
+void
+tilde_initialize ()
+{
+  static int times_called = 0;
+
+  /* Tell the tilde expander that we want a crack first. */
+  tilde_expansion_preexpansion_hook = bash_special_tilde_expansions;
+
+  /* Tell the tilde expander about special strings which start a tilde
+     expansion, and the special strings that end one.  Only do this once.
+     tilde_initialize () is called from within bashline_reinitialize (). */
+  if (times_called++ == 0)
+    {
+      bash_tilde_prefixes = strvec_create (3);
+      bash_tilde_prefixes[0] = "=~";
+      bash_tilde_prefixes[1] = ":~";
+      bash_tilde_prefixes[2] = (char *)NULL;
+
+      bash_tilde_prefixes2 = strvec_create (2);
+      bash_tilde_prefixes2[0] = ":~";
+      bash_tilde_prefixes2[1] = (char *)NULL;
+
+      tilde_additional_prefixes = bash_tilde_prefixes;
+
+      bash_tilde_suffixes = strvec_create (3);
+      bash_tilde_suffixes[0] = ":";
+      bash_tilde_suffixes[1] = "=~";   /* XXX - ?? */
+      bash_tilde_suffixes[2] = (char *)NULL;
+
+      tilde_additional_suffixes = bash_tilde_suffixes;
+
+      bash_tilde_suffixes2 = strvec_create (2);
+      bash_tilde_suffixes2[0] = ":";
+      bash_tilde_suffixes2[1] = (char *)NULL;
+    }
+}
+
+/* POSIX.2, 3.6.1:  A tilde-prefix consists of an unquoted tilde character
+   at the beginning of the word, followed by all of the characters preceding
+   the first unquoted slash in the word, or all the characters in the word
+   if there is no slash...If none of the characters in the tilde-prefix are
+   quoted, the characters in the tilde-prefix following the tilde shell be
+   treated as a possible login name. */
+
+#define TILDE_END(c)   ((c) == '\0' || (c) == '/' || (c) == ':')
+
+static int
+unquoted_tilde_word (s)
+     const char *s;
+{
+  const char *r;
+
+  for (r = s; TILDE_END(*r) == 0; r++)
+    {
+      switch (*r)
+       {
+       case '\\':
+       case '\'':
+       case '"':
+         return 0;
+       }
+    }
+  return 1;
+}
+
+/* Find the end of the tilde-prefix starting at S, and return the tilde
+   prefix in newly-allocated memory.  Return the length of the string in
+   *LENP.  FLAGS tells whether or not we're in an assignment context --
+   if so, `:' delimits the end of the tilde prefix as well. */
+char *
+bash_tilde_find_word (s, flags, lenp)
+     const char *s;
+     int flags, *lenp;
+{
+  const char *r;
+  char *ret;
+  int l;
+
+  for (r = s; *r && *r != '/'; r++)
+    {
+      /* Short-circuit immediately if we see a quote character.  Even though
+        POSIX says that `the first unquoted slash' (or `:') terminates the
+        tilde-prefix, in practice, any quoted portion of the tilde prefix
+        will cause it to not be expanded. */
+      if (*r == '\\' || *r == '\'' || *r == '"')  
+       {
+         ret = savestring (s);
+         if (lenp)
+           *lenp = 0;
+         return ret;
+       }
+      else if (flags && *r == ':')
+       break;
+    }
+  l = r - s;
+  ret = xmalloc (l + 1);
+  strncpy (ret, s, l);
+  ret[l] = '\0';
+  if (lenp)
+    *lenp = l;
+  return ret;
+}
+    
+/* Tilde-expand S by running it through the tilde expansion library.
+   ASSIGN_P is 1 if this is a variable assignment, so the alternate
+   tilde prefixes should be enabled (`=~' and `:~', see above).  If
+   ASSIGN_P is 2, we are expanding the rhs of an assignment statement,
+   so `=~' is not valid. */
+char *
+bash_tilde_expand (s, assign_p)
+     const char *s;
+     int assign_p;
+{
+  int old_immed, r;
+  char *ret;
+
+  old_immed = interrupt_immediately;
+  interrupt_immediately = 1;
+
+  tilde_additional_prefixes = assign_p == 0 ? (char **)0
+                                           : (assign_p == 2 ? bash_tilde_prefixes2 : bash_tilde_prefixes);
+  if (assign_p == 2)
+    tilde_additional_suffixes = bash_tilde_suffixes2;
+
+  r = (*s == '~') ? unquoted_tilde_word (s) : 1;
+  ret = r ? tilde_expand (s) : savestring (s);
+  interrupt_immediately = old_immed;
+  return (ret);
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*       Functions to manipulate and search the group list         */
+/*                                                                 */
+/* **************************************************************** */
+
+static int ngroups, maxgroups;
+
+/* The set of groups that this user is a member of. */
+static GETGROUPS_T *group_array = (GETGROUPS_T *)NULL;
+
+#if !defined (NOGROUP)
+#  define NOGROUP (gid_t) -1
+#endif
+
+static void
+initialize_group_array ()
+{
+  register int i;
+
+  if (maxgroups == 0)
+    maxgroups = getmaxgroups ();
+
+  ngroups = 0;
+  group_array = (GETGROUPS_T *)xrealloc (group_array, maxgroups * sizeof (GETGROUPS_T));
+
+#if defined (HAVE_GETGROUPS)
+  ngroups = getgroups (maxgroups, group_array);
+#endif
+
+  /* If getgroups returns nothing, or the OS does not support getgroups(),
+     make sure the groups array includes at least the current gid. */
+  if (ngroups == 0)
+    {
+      group_array[0] = current_user.gid;
+      ngroups = 1;
+    }
+
+  /* If the primary group is not in the groups array, add it as group_array[0]
+     and shuffle everything else up 1, if there's room. */
+  for (i = 0; i < ngroups; i++)
+    if (current_user.gid == (gid_t)group_array[i])
+      break;
+  if (i == ngroups && ngroups < maxgroups)
+    {
+      for (i = ngroups; i > 0; i--)
+       group_array[i] = group_array[i - 1];
+      group_array[0] = current_user.gid;
+      ngroups++;
+    }
+
+  /* If the primary group is not group_array[0], swap group_array[0] and
+     whatever the current group is.  The vast majority of systems should
+     not need this; a notable exception is Linux. */
+  if (group_array[0] != current_user.gid)
+    {
+      for (i = 0; i < ngroups; i++)
+       if (group_array[i] == current_user.gid)
+         break;
+      if (i < ngroups)
+       {
+         group_array[i] = group_array[0];
+         group_array[0] = current_user.gid;
+       }
+    }
+}
+
+/* Return non-zero if GID is one that we have in our groups list. */
+int
+#if defined (__STDC__) || defined ( _MINIX)
+group_member (gid_t gid)
+#else
+group_member (gid)
+     gid_t gid;
+#endif /* !__STDC__ && !_MINIX */
+{
+#if defined (HAVE_GETGROUPS)
+  register int i;
+#endif
+
+  /* Short-circuit if possible, maybe saving a call to getgroups(). */
+  if (gid == current_user.gid || gid == current_user.egid)
+    return (1);
+
+#if defined (HAVE_GETGROUPS)
+  if (ngroups == 0)
+    initialize_group_array ();
+
+  /* In case of error, the user loses. */
+  if (ngroups <= 0)
+    return (0);
+
+  /* Search through the list looking for GID. */
+  for (i = 0; i < ngroups; i++)
+    if (gid == (gid_t)group_array[i])
+      return (1);
+#endif
+
+  return (0);
+}
+
+char **
+get_group_list (ngp)
+     int *ngp;
+{
+  static char **group_vector = (char **)NULL;
+  register int i;
+
+  if (group_vector)
+    {
+      if (ngp)
+       *ngp = ngroups;
+      return group_vector;
+    }
+
+  if (ngroups == 0)
+    initialize_group_array ();
+
+  if (ngroups <= 0)
+    {
+      if (ngp)
+       *ngp = 0;
+      return (char **)NULL;
+    }
+
+  group_vector = strvec_create (ngroups);
+  for (i = 0; i < ngroups; i++)
+    group_vector[i] = itos (group_array[i]);
+
+  if (ngp)
+    *ngp = ngroups;
+  return group_vector;
+}
+
+int *
+get_group_array (ngp)
+     int *ngp;
+{
+  int i;
+  static int *group_iarray = (int *)NULL;
+
+  if (group_iarray)
+    {
+      if (ngp)
+       *ngp = ngroups;
+      return (group_iarray);
+    }
+
+  if (ngroups == 0)
+    initialize_group_array ();    
+
+  if (ngroups <= 0)
+    {
+      if (ngp)
+       *ngp = 0;
+      return (int *)NULL;
+    }
+
+  group_iarray = (int *)xmalloc (ngroups * sizeof (int));
+  for (i = 0; i < ngroups; i++)
+    group_iarray[i] = (int)group_array[i];
+
+  if (ngp)
+    *ngp = ngroups;
+  return group_iarray;
+}
diff --git a/input.c b/input.c
index 314a1f5375716f72dcf89c8860ec3789d8402716..f6af14c276d18f37afc55ae7159f3c103f7475e4 100644 (file)
--- a/input.c
+++ b/input.c
@@ -41,6 +41,7 @@
 #include "input.h"
 #include "error.h"
 #include "externs.h"
+#include "quit.h"
 
 #if !defined (errno)
 extern int errno;
@@ -61,11 +62,14 @@ getc_with_restart (stream)
 {
   unsigned char uc;
 
+  CHECK_TERMSIG;
+
   /* Try local buffering to reduce the number of read(2) calls. */
   if (local_index == local_bufused || local_bufused == 0)
     {
       while (1)
        {
+         CHECK_TERMSIG;
          local_bufused = read (fileno (stream), localbuf, sizeof(localbuf));
          if (local_bufused > 0)
            break;
@@ -446,6 +450,7 @@ b_fill_buffer (bp)
 {
   ssize_t nr;
 
+  CHECK_TERMSIG;
   nr = zread (bp->b_fd, bp->b_buffer, bp->b_size);
   if (nr <= 0)
     {
@@ -513,6 +518,8 @@ sync_buffered_stream (bfd)
 int
 buffered_getchar ()
 {
+  CHECK_TERMSIG;
+
 #if !defined (DJGPP)
   return (bufstream_getc (buffers[bash_input.location.buffered_fd]));
 #else
diff --git a/jobs.c b/jobs.c
index 3aac6130b02e66e2b4237326c14dc57c515f663d..cde791e3dbe8108054c13da081a934ce11b5594a 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -2968,6 +2968,7 @@ waitchld (wpid, block)
                        : 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 */
@@ -2994,6 +2995,7 @@ waitchld (wpid, block)
 
       /* 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 */
 
@@ -3228,7 +3230,7 @@ set_job_status_and_cleanup (job)
                  temp_handler = trap_to_sighandler (SIGINT);
                restore_sigint_handler ();
              if (temp_handler == SIG_DFL)
-               termination_unwind_protect (SIGINT);
+               termsig_handler (SIGINT);
              else if (temp_handler != SIG_IGN)
                (*temp_handler) (SIGINT);
            }
index d93c15ae55d2602bdc75fa9360d378830cfeb636..e7f6af108771d8764e426c079ae807bd948f03b2 100644 (file)
@@ -950,7 +950,7 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
      rl_compentry_func_t *our_func;
      int found_quote, quote_char;
 {
-  char **matches, *temp;
+  char **matches;
 
   rl_completion_found_quote = found_quote;
   rl_completion_quote_character = quote_char;
@@ -969,21 +969,9 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
        }
     }
 
-  /* Beware -- we're stripping the quotes here.  Do this only if we know
-     we are doing filename completion and the application has defined a
-     filename dequoting function. */
-  temp = (char *)NULL;
-
-  if (found_quote && our_func == rl_filename_completion_function &&
-      rl_filename_dequoting_function)
-    {
-      /* delete single and double quotes */
-      temp = (*rl_filename_dequoting_function) (text, quote_char);
-      text = temp;     /* not freeing text is not a memory leak */
-    }
+  /* XXX -- filename dequoting moved into rl_filename_completion_function */
 
   matches = rl_completion_matches (text, our_func);
-  FREE (temp);
   return matches;  
 }
 
@@ -1908,6 +1896,7 @@ rl_filename_completion_function (text, state)
   static char *filename = (char *)NULL;
   static char *dirname = (char *)NULL;
   static char *users_dirname = (char *)NULL;
+  static char *orig_filename = (char *)NULL;
   static int filename_len;
   char *temp;
   int dirlen;
@@ -1974,13 +1963,30 @@ rl_filename_completion_function (text, state)
       if (rl_directory_rewrite_hook)
        (*rl_directory_rewrite_hook) (&dirname);
 
+      /* The directory completion hook should perform any necessary
+        dequoting. */
       if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
        {
          free (users_dirname);
          users_dirname = savestring (dirname);
        }
-
+      else if (rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         temp = (*rl_filename_dequoting_function) (users_dirname, rl_completion_quote_character);
+         free (users_dirname);
+         users_dirname = temp;
+       }
       directory = opendir (dirname);
+
+      /* Now dequote a non-null filename. */
+      if (filename && *filename && rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         temp = (*rl_filename_dequoting_function) (filename, rl_completion_quote_character);
+         free (filename);
+         filename = temp;
+       }
       filename_len = strlen (filename);
 
       rl_filename_completion_desired = 1;
diff --git a/lib/readline/complete.c.orig b/lib/readline/complete.c.orig
new file mode 100644 (file)
index 0000000..7126d9e
--- /dev/null
@@ -0,0 +1,2216 @@
+/* complete.c -- filename completion for readline. */
+
+/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline Library 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline Library 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <fcntl.h>
+#if defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#if defined (HAVE_STDLIB_H)
+#  include <stdlib.h>
+#else
+#  include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#include <stdio.h>
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if defined (HAVE_PWD_H)
+#include <pwd.h>
+#endif
+
+#include "posixdir.h"
+#include "posixstat.h"
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+#include "rlmbutil.h"
+
+/* Some standard library routines. */
+#include "readline.h"
+#include "xmalloc.h"
+#include "rlprivate.h"
+
+#ifdef __STDC__
+typedef int QSFUNC (const void *, const void *);
+#else
+typedef int QSFUNC ();
+#endif
+
+#ifdef HAVE_LSTAT
+#  define LSTAT lstat
+#else
+#  define LSTAT stat
+#endif
+
+/* Unix version of a hidden file.  Could be different on other systems. */
+#define HIDDEN_FILE(fname)     ((fname)[0] == '.')
+
+/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
+   defined. */
+#if defined (HAVE_GETPWENT) && (!defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE))
+extern struct passwd *getpwent PARAMS((void));
+#endif /* HAVE_GETPWENT && (!HAVE_GETPW_DECLS || _POSIX_SOURCE) */
+
+/* If non-zero, then this is the address of a function to call when
+   completing a word would normally display the list of possible matches.
+   This function is called instead of actually doing the display.
+   It takes three arguments: (char **matches, int num_matches, int max_length)
+   where MATCHES is the array of strings that matched, NUM_MATCHES is the
+   number of strings in that array, and MAX_LENGTH is the length of the
+   longest string in that array. */
+rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
+
+#if defined (VISIBLE_STATS)
+#  if !defined (X_OK)
+#    define X_OK 1
+#  endif
+static int stat_char PARAMS((char *));
+#endif
+
+static int path_isdir PARAMS((const char *));
+
+static char *rl_quote_filename PARAMS((char *, int, char *));
+
+static void set_completion_defaults PARAMS((int));
+static int get_y_or_n PARAMS((int));
+static int _rl_internal_pager PARAMS((int));
+static char *printable_part PARAMS((char *));
+static int fnwidth PARAMS((const char *));
+static int fnprint PARAMS((const char *));
+static int print_filename PARAMS((char *, char *));
+
+static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
+
+static char **remove_duplicate_matches PARAMS((char **));
+static void insert_match PARAMS((char *, int, int, char *));
+static int append_to_match PARAMS((char *, int, int, int));
+static void insert_all_matches PARAMS((char **, int, char *));
+static void display_matches PARAMS((char **));
+static int compute_lcd_of_matches PARAMS((char **, int, const char *));
+static int postprocess_matches PARAMS((char ***, int));
+
+static char *make_quoted_replacement PARAMS((char *, int, char *));
+
+/* **************************************************************** */
+/*                                                                 */
+/*     Completion matching, from readline's point of view.         */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Variables known only to the readline library. */
+
+/* If non-zero, non-unique completions always show the list of matches. */
+int _rl_complete_show_all = 0;
+
+/* If non-zero, non-unique completions show the list of matches, unless it
+   is not possible to do partial completion and modify the line. */
+int _rl_complete_show_unmodified = 0;
+
+/* If non-zero, completed directory names have a slash appended. */
+int _rl_complete_mark_directories = 1;
+
+/* If non-zero, the symlinked directory completion behavior introduced in
+   readline-4.2a is disabled, and symlinks that point to directories have
+   a slash appended (subject to the value of _rl_complete_mark_directories).
+   This is user-settable via the mark-symlinked-directories variable. */
+int _rl_complete_mark_symlink_dirs = 0;
+
+/* If non-zero, completions are printed horizontally in alphabetical order,
+   like `ls -x'. */
+int _rl_print_completions_horizontally;
+
+/* Non-zero means that case is not significant in filename completion. */
+#if defined (__MSDOS__) && !defined (__DJGPP__)
+int _rl_completion_case_fold = 1;
+#else
+int _rl_completion_case_fold;
+#endif
+
+/* If non-zero, don't match hidden files (filenames beginning with a `.' on
+   Unix) when doing filename completion. */
+int _rl_match_hidden_files = 1;
+
+/* Global variables available to applications using readline. */
+
+#if defined (VISIBLE_STATS)
+/* Non-zero means add an additional character to each filename displayed
+   during listing completion iff rl_filename_completion_desired which helps
+   to indicate the type of file being listed. */
+int rl_visible_stats = 0;
+#endif /* VISIBLE_STATS */
+
+/* If non-zero, then this is the address of a function to call when
+   completing on a directory name.  The function is called with
+   the address of a string (the current directory name) as an arg. */
+rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
+
+rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
+
+/* Non-zero means readline completion functions perform tilde expansion. */
+int rl_complete_with_tilde_expansion = 0;
+
+/* Pointer to the generator function for completion_matches ().
+   NULL means to use rl_filename_completion_function (), the default filename
+   completer. */
+rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;
+
+/* Pointer to alternative function to create matches.
+   Function is called with TEXT, START, and END.
+   START and END are indices in RL_LINE_BUFFER saying what the boundaries
+   of TEXT are.
+   If this function exists and returns NULL then call the value of
+   rl_completion_entry_function to try to match, otherwise use the
+   array of strings returned. */
+rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+
+/* Non-zero means to suppress normal filename completion after the
+   user-specified completion function has been called. */
+int rl_attempted_completion_over = 0;
+
+/* Set to a character indicating the type of completion being performed
+   by rl_complete_internal, available for use by application completion
+   functions. */
+int rl_completion_type = 0;
+
+/* Up to this many items will be displayed in response to a
+   possible-completions call.  After that, we ask the user if
+   she is sure she wants to see them all.  A negative value means
+   don't ask. */
+int rl_completion_query_items = 100;
+
+int _rl_page_completions = 1;
+
+/* The basic list of characters that signal a break between words for the
+   completer routine.  The contents of this variable is what breaks words
+   in the shell, i.e. " \t\n\"\\'`@$><=" */
+const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) */
+
+/* List of basic quoting characters. */
+const char *rl_basic_quote_characters = "\"'";
+
+/* The list of characters that signal a break between words for
+   rl_complete_internal.  The default list is the contents of
+   rl_basic_word_break_characters.  */
+/*const*/ char *rl_completer_word_break_characters = (/*const*/ char *)NULL;
+
+/* Hook function to allow an application to set the completion word
+   break characters before readline breaks up the line.  Allows
+   position-dependent word break characters. */
+rl_cpvfunc_t *rl_completion_word_break_hook = (rl_cpvfunc_t *)NULL;
+
+/* List of characters which can be used to quote a substring of the line.
+   Completion occurs on the entire substring, and within the substring
+   rl_completer_word_break_characters are treated as any other character,
+   unless they also appear within this list. */
+const char *rl_completer_quote_characters = (const char *)NULL;
+
+/* List of characters that should be quoted in filenames by the completer. */
+const char *rl_filename_quote_characters = (const char *)NULL;
+
+/* List of characters that are word break characters, but should be left
+   in TEXT when it is passed to the completion function.  The shell uses
+   this to help determine what kind of completing to do. */
+const char *rl_special_prefixes = (const char *)NULL;
+
+/* If non-zero, then disallow duplicates in the matches. */
+int rl_ignore_completion_duplicates = 1;
+
+/* Non-zero means that the results of the matches are to be treated
+   as filenames.  This is ALWAYS zero on entry, and can only be changed
+   within a completion entry finder function. */
+int rl_filename_completion_desired = 0;
+
+/* Non-zero means that the results of the matches are to be quoted using
+   double quotes (or an application-specific quoting mechanism) if the
+   filename contains any characters in rl_filename_quote_chars.  This is
+   ALWAYS non-zero on entry, and can only be changed within a completion
+   entry finder function. */
+int rl_filename_quoting_desired = 1;
+
+/* This function, if defined, is called by the completer when real
+   filename completion is done, after all the matching names have been
+   generated. It is passed a (char**) known as matches in the code below.
+   It consists of a NULL-terminated array of pointers to potential
+   matching strings.  The 1st element (matches[0]) is the maximal
+   substring that is common to all matches. This function can re-arrange
+   the list of matches as required, but all elements of the array must be
+   free()'d if they are deleted. The main intent of this function is
+   to implement FIGNORE a la SunOS csh. */
+rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;
+
+/* Set to a function to quote a filename in an application-specific fashion.
+   Called with the text to quote, the type of match found (single or multiple)
+   and a pointer to the quoting character to be used, which the function can
+   reset if desired. */
+rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;
+         
+/* Function to call to remove quoting characters from a filename.  Called
+   before completion is attempted, so the embedded quotes do not interfere
+   with matching names in the file system.  Readline doesn't do anything
+   with this; it's set only by applications. */
+rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;
+
+/* Function to call to decide whether or not a word break character is
+   quoted.  If a character is quoted, it does not break words for the
+   completer. */
+rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;
+
+/* If non-zero, the completion functions don't append anything except a
+   possible closing quote.  This is set to 0 by rl_complete_internal and
+   may be changed by an application-specific completion function. */
+int rl_completion_suppress_append = 0;
+
+/* Character appended to completed words when at the end of the line.  The
+   default is a space. */
+int rl_completion_append_character = ' ';
+
+/* If non-zero, the completion functions don't append any closing quote.
+   This is set to 0 by rl_complete_internal and may be changed by an
+   application-specific completion function. */
+int rl_completion_suppress_quote = 0;
+
+/* Set to any quote character readline thinks it finds before any application
+   completion function is called. */
+int rl_completion_quote_character;
+
+/* Set to a non-zero value if readline found quoting anywhere in the word to
+   be completed; set before any application completion function is called. */
+int rl_completion_found_quote;
+
+/* If non-zero, a slash will be appended to completed filenames that are
+   symbolic links to directory names, subject to the value of the
+   mark-directories variable (which is user-settable).  This exists so
+   that application completion functions can override the user's preference
+   (set via the mark-symlinked-directories variable) if appropriate.
+   It's set to the value of _rl_complete_mark_symlink_dirs in
+   rl_complete_internal before any application-specific completion
+   function is called, so without that function doing anything, the user's
+   preferences are honored. */
+int rl_completion_mark_symlink_dirs;
+
+/* If non-zero, inhibit completion (temporarily). */
+int rl_inhibit_completion;
+
+/* Variables local to this file. */
+
+/* Local variable states what happened during the last completion attempt. */
+static int completion_changed_buffer;
+
+/*************************************/
+/*                                  */
+/*    Bindable completion functions  */
+/*                                  */
+/*************************************/
+
+/* Complete the word at or before point.  You have supplied the function
+   that does the initial simple matching selection algorithm (see
+   rl_completion_matches ()).  The default is to do filename completion. */
+int
+rl_complete (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  if (rl_inhibit_completion)
+    return (_rl_insert_char (ignore, invoking_key));
+  else if (rl_last_func == rl_complete && !completion_changed_buffer)
+    return (rl_complete_internal ('?'));
+  else if (_rl_complete_show_all)
+    return (rl_complete_internal ('!'));
+  else if (_rl_complete_show_unmodified)
+    return (rl_complete_internal ('@'));
+  else
+    return (rl_complete_internal (TAB));
+}
+
+/* List the possible completions.  See description of rl_complete (). */
+int
+rl_possible_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  return (rl_complete_internal ('?'));
+}
+
+int
+rl_insert_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  return (rl_complete_internal ('*'));
+}
+
+/* Return the correct value to pass to rl_complete_internal performing
+   the same tests as rl_complete.  This allows consecutive calls to an
+   application's completion function to list possible completions and for
+   an application-specific completion function to honor the
+   show-all-if-ambiguous readline variable. */
+int
+rl_completion_mode (cfunc)
+     rl_command_func_t *cfunc;
+{
+  if (rl_last_func == cfunc && !completion_changed_buffer)
+    return '?';
+  else if (_rl_complete_show_all)
+    return '!';
+  else if (_rl_complete_show_unmodified)
+    return '@';
+  else
+    return TAB;
+}
+
+/************************************/
+/*                                 */
+/*    Completion utility functions  */
+/*                                 */
+/************************************/
+
+/* Set default values for readline word completion.  These are the variables
+   that application completion functions can change or inspect. */
+static void
+set_completion_defaults (what_to_do)
+     int what_to_do;
+{
+  /* Only the completion entry function can change these. */
+  rl_filename_completion_desired = 0;
+  rl_filename_quoting_desired = 1;
+  rl_completion_type = what_to_do;
+  rl_completion_suppress_append = rl_completion_suppress_quote = 0;
+
+  /* The completion entry function may optionally change this. */
+  rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
+}
+
+/* The user must press "y" or "n". Non-zero return means "y" pressed. */
+static int
+get_y_or_n (for_pager)
+     int for_pager;
+{
+  int c;
+
+  for (;;)
+    {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
+      c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+      if (c == 'y' || c == 'Y' || c == ' ')
+       return (1);
+      if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+      if (c == ABORT_CHAR)
+       _rl_abort_internal ();
+      if (for_pager && (c == NEWLINE || c == RETURN))
+       return (2);
+      if (for_pager && (c == 'q' || c == 'Q'))
+       return (0);
+      rl_ding ();
+    }
+}
+
+static int
+_rl_internal_pager (lines)
+     int lines;
+{
+  int i;
+
+  fprintf (rl_outstream, "--More--");
+  fflush (rl_outstream);
+  i = get_y_or_n (1);
+  _rl_erase_entire_line ();
+  if (i == 0)
+    return -1;
+  else if (i == 2)
+    return (lines - 1);
+  else
+    return 0;
+}
+
+static int
+path_isdir (filename)
+     const char *filename;
+{
+  struct stat finfo;
+
+  return (stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode));
+}
+
+#if defined (VISIBLE_STATS)
+/* Return the character which best describes FILENAME.
+     `@' for symbolic links
+     `/' for directories
+     `*' for executables
+     `=' for sockets
+     `|' for FIFOs
+     `%' for character special devices
+     `#' for block special devices */
+static int
+stat_char (filename)
+     char *filename;
+{
+  struct stat finfo;
+  int character, r;
+
+#if defined (HAVE_LSTAT) && defined (S_ISLNK)
+  r = lstat (filename, &finfo);
+#else
+  r = stat (filename, &finfo);
+#endif
+
+  if (r == -1)
+    return (0);
+
+  character = 0;
+  if (S_ISDIR (finfo.st_mode))
+    character = '/';
+#if defined (S_ISCHR)
+  else if (S_ISCHR (finfo.st_mode))
+    character = '%';
+#endif /* S_ISCHR */
+#if defined (S_ISBLK)
+  else if (S_ISBLK (finfo.st_mode))
+    character = '#';
+#endif /* S_ISBLK */
+#if defined (S_ISLNK)
+  else if (S_ISLNK (finfo.st_mode))
+    character = '@';
+#endif /* S_ISLNK */
+#if defined (S_ISSOCK)
+  else if (S_ISSOCK (finfo.st_mode))
+    character = '=';
+#endif /* S_ISSOCK */
+#if defined (S_ISFIFO)
+  else if (S_ISFIFO (finfo.st_mode))
+    character = '|';
+#endif
+  else if (S_ISREG (finfo.st_mode))
+    {
+      if (access (filename, X_OK) == 0)
+       character = '*';
+    }
+  return (character);
+}
+#endif /* VISIBLE_STATS */
+
+/* Return the portion of PATHNAME that should be output when listing
+   possible completions.  If we are hacking filename completion, we
+   are only interested in the basename, the portion following the
+   final slash.  Otherwise, we return what we were passed.  Since
+   printing empty strings is not very informative, if we're doing
+   filename completion, and the basename is the empty string, we look
+   for the previous slash and return the portion following that.  If
+   there's no previous slash, we just return what we were passed. */
+static char *
+printable_part (pathname)
+      char *pathname;
+{
+  char *temp, *x;
+
+  if (rl_filename_completion_desired == 0)     /* don't need to do anything */
+    return (pathname);
+
+  temp = strrchr (pathname, '/');
+#if defined (__MSDOS__)
+  if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
+    temp = pathname + 1;
+#endif
+
+  if (temp == 0 || *temp == '\0')
+    return (pathname);
+  /* If the basename is NULL, we might have a pathname like '/usr/src/'.
+     Look for a previous slash and, if one is found, return the portion
+     following that slash.  If there's no previous slash, just return the
+     pathname we were passed. */
+  else if (temp[1] == '\0')
+    {
+      for (x = temp - 1; x > pathname; x--)
+        if (*x == '/')
+          break;
+      return ((*x == '/') ? x + 1 : pathname);
+    }
+  else
+    return ++temp;
+}
+
+/* Compute width of STRING when displayed on screen by print_filename */
+static int
+fnwidth (string)
+     const char *string;
+{
+  int width, pos;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  int left, w;
+  size_t clen;
+  wchar_t wc;
+
+  left = strlen (string) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  width = pos = 0;
+  while (string[pos])
+    {
+      if (CTRL_CHAR (*string) || *string == RUBOUT)
+       {
+         width += 2;
+         pos++;
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         clen = mbrtowc (&wc, string + pos, left - pos, &ps);
+         if (MB_INVALIDCH (clen))
+           {
+             width++;
+             pos++;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (clen))
+           break;
+         else
+           {
+             pos += clen;
+             w = wcwidth (wc);
+             width += (w >= 0) ? w : 1;
+           }
+#else
+         width++;
+         pos++;
+#endif
+       }
+    }
+
+  return width;
+}
+
+static int
+fnprint (to_print)
+     const char *to_print;
+{
+  int printed_len;
+  const char *s;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  const char *end;
+  size_t tlen;
+  int width, w;
+  wchar_t wc;
+
+  end = to_print + strlen (to_print) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  printed_len = 0;
+  s = to_print;
+  while (*s)
+    {
+      if (CTRL_CHAR (*s))
+        {
+          putc ('^', rl_outstream);
+          putc (UNCTRL (*s), rl_outstream);
+          printed_len += 2;
+          s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+        }
+      else if (*s == RUBOUT)
+       {
+         putc ('^', rl_outstream);
+         putc ('?', rl_outstream);
+         printed_len += 2;
+         s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         tlen = mbrtowc (&wc, s, end - s, &ps);
+         if (MB_INVALIDCH (tlen))
+           {
+             tlen = 1;
+             width = 1;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (tlen))
+           break;
+         else
+           {
+             w = wcwidth (wc);
+             width = (w >= 0) ? w : 1;
+           }
+         fwrite (s, 1, tlen, rl_outstream);
+         s += tlen;
+         printed_len += width;
+#else
+         putc (*s, rl_outstream);
+         s++;
+         printed_len++;
+#endif
+       }
+    }
+
+  return printed_len;
+}
+
+/* Output TO_PRINT to rl_outstream.  If VISIBLE_STATS is defined and we
+   are using it, check for and output a single character for `special'
+   filenames.  Return the number of characters we output. */
+
+static int
+print_filename (to_print, full_pathname)
+     char *to_print, *full_pathname;
+{
+  int printed_len, extension_char, slen, tlen;
+  char *s, c, *new_full_pathname, *dn;
+
+  extension_char = 0;
+  printed_len = fnprint (to_print);
+
+#if defined (VISIBLE_STATS)
+ if (rl_filename_completion_desired && (rl_visible_stats || _rl_complete_mark_directories))
+#else
+ if (rl_filename_completion_desired && _rl_complete_mark_directories)
+#endif
+    {
+      /* If to_print != full_pathname, to_print is the basename of the
+        path passed.  In this case, we try to expand the directory
+        name before checking for the stat character. */
+      if (to_print != full_pathname)
+       {
+         /* Terminate the directory name. */
+         c = to_print[-1];
+         to_print[-1] = '\0';
+
+         /* If setting the last slash in full_pathname to a NUL results in
+            full_pathname being the empty string, we are trying to complete
+            files in the root directory.  If we pass a null string to the
+            bash directory completion hook, for example, it will expand it
+            to the current directory.  We just want the `/'. */
+         if (full_pathname == 0 || *full_pathname == 0)
+           dn = "/";
+         else if (full_pathname[0] != '/')
+           dn = full_pathname;
+         else if (full_pathname[1] == 0)
+           dn = "//";          /* restore trailing slash to `//' */
+         else if (full_pathname[1] == '/' && full_pathname[2] == 0)
+           dn = "/";           /* don't turn /// into // */
+         else
+           dn = full_pathname;
+         s = tilde_expand (dn);
+         if (rl_directory_completion_hook)
+           (*rl_directory_completion_hook) (&s);
+
+         slen = strlen (s);
+         tlen = strlen (to_print);
+         new_full_pathname = (char *)xmalloc (slen + tlen + 2);
+         strcpy (new_full_pathname, s);
+         if (s[slen - 1] == '/')
+           slen--;
+         else
+           new_full_pathname[slen] = '/';
+         new_full_pathname[slen] = '/';
+         strcpy (new_full_pathname + slen + 1, to_print);
+
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (new_full_pathname);
+         else
+#endif
+         if (path_isdir (new_full_pathname))
+           extension_char = '/';
+
+         free (new_full_pathname);
+         to_print[-1] = c;
+       }
+      else
+       {
+         s = tilde_expand (full_pathname);
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (s);
+         else
+#endif
+           if (path_isdir (s))
+             extension_char = '/';
+       }
+
+      free (s);
+      if (extension_char)
+       {
+         putc (extension_char, rl_outstream);
+         printed_len++;
+       }
+    }
+
+  return printed_len;
+}
+
+static char *
+rl_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  char *r;
+
+  r = (char *)xmalloc (strlen (s) + 2);
+  *r = *rl_completer_quote_characters;
+  strcpy (r + 1, s);
+  if (qcp)
+    *qcp = *rl_completer_quote_characters;
+  return r;
+}
+
+/* Find the bounds of the current word for completion purposes, and leave
+   rl_point set to the end of the word.  This function skips quoted
+   substrings (characters between matched pairs of characters in
+   rl_completer_quote_characters).  First we try to find an unclosed
+   quoted substring on which to do matching.  If one is not found, we use
+   the word break characters to find the boundaries of the current word.
+   We call an application-specific function to decide whether or not a
+   particular word break character is quoted; if that function returns a
+   non-zero result, the character does not break a word.  This function
+   returns the opening quote character if we found an unclosed quoted
+   substring, '\0' otherwise.  FP, if non-null, is set to a value saying
+   which (shell-like) quote characters we found (single quote, double
+   quote, or backslash) anywhere in the string.  DP, if non-null, is set to
+   the value of the delimiter character that caused a word break. */
+
+char
+_rl_find_completion_word (fp, dp)
+     int *fp, *dp;
+{
+  int scan, end, found_quote, delimiter, pass_next, isbrk;
+  char quote_char, *brkchars;
+
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  brkchars = 0;
+  if (rl_completion_word_break_hook)
+    brkchars = (*rl_completion_word_break_hook) ();
+  if (brkchars == 0)
+    brkchars = rl_completer_word_break_characters;
+
+  if (rl_completer_quote_characters)
+    {
+      /* We have a list of characters which can be used in pairs to
+        quote substrings for the completer.  Try to find the start
+        of an unclosed quoted substring. */
+      /* FOUND_QUOTE is set so we know what kind of quotes we found. */
+      for (scan = pass_next = 0; scan < end; scan = MB_NEXTCHAR (rl_line_buffer, scan, 1, MB_FIND_ANY))
+       {
+         if (pass_next)
+           {
+             pass_next = 0;
+             continue;
+           }
+
+         /* Shell-like semantics for single quotes -- don't allow backslash
+            to quote anything in single quotes, especially not the closing
+            quote.  If you don't like this, take out the check on the value
+            of quote_char. */
+         if (quote_char != '\'' && rl_line_buffer[scan] == '\\')
+           {
+             pass_next = 1;
+             found_quote |= RL_QF_BACKSLASH;
+             continue;
+           }
+
+         if (quote_char != '\0')
+           {
+             /* Ignore everything until the matching close quote char. */
+             if (rl_line_buffer[scan] == quote_char)
+               {
+                 /* Found matching close.  Abandon this substring. */
+                 quote_char = '\0';
+                 rl_point = end;
+               }
+           }
+         else if (strchr (rl_completer_quote_characters, rl_line_buffer[scan]))
+           {
+             /* Found start of a quoted substring. */
+             quote_char = rl_line_buffer[scan];
+             rl_point = scan + 1;
+             /* Shell-like quoting conventions. */
+             if (quote_char == '\'')
+               found_quote |= RL_QF_SINGLE_QUOTE;
+             else if (quote_char == '"')
+               found_quote |= RL_QF_DOUBLE_QUOTE;
+             else
+               found_quote |= RL_QF_OTHER_QUOTE;      
+           }
+       }
+    }
+
+  if (rl_point == end && quote_char == '\0')
+    {
+      /* We didn't find an unclosed quoted substring upon which to do
+         completion, so use the word break characters to find the
+         substring on which to complete. */
+      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
+       {
+         scan = rl_line_buffer[rl_point];
+
+         if (strchr (brkchars, scan) == 0)
+           continue;
+
+         /* Call the application-specific function to tell us whether
+            this word break character is quoted and should be skipped. */
+         if (rl_char_is_quoted_p && found_quote &&
+             (*rl_char_is_quoted_p) (rl_line_buffer, rl_point))
+           continue;
+
+         /* Convoluted code, but it avoids an n^2 algorithm with calls
+            to char_is_quoted. */
+         break;
+       }
+    }
+
+  /* If we are at an unquoted word break, then advance past it. */
+  scan = rl_line_buffer[rl_point];
+
+  /* If there is an application-specific function to say whether or not
+     a character is quoted and we found a quote character, let that
+     function decide whether or not a character is a word break, even
+     if it is found in rl_completer_word_break_characters.  Don't bother
+     if we're at the end of the line, though. */
+  if (scan)
+    {
+      if (rl_char_is_quoted_p)
+       isbrk = (found_quote == 0 ||
+               (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) &&
+               strchr (brkchars, scan) != 0;
+      else
+       isbrk = strchr (brkchars, scan) != 0;
+
+      if (isbrk)
+       {
+         /* If the character that caused the word break was a quoting
+            character, then remember it as the delimiter. */
+         if (rl_basic_quote_characters &&
+             strchr (rl_basic_quote_characters, scan) &&
+             (end - rl_point) > 1)
+           delimiter = scan;
+
+         /* If the character isn't needed to determine something special
+            about what kind of completion to perform, then advance past it. */
+         if (rl_special_prefixes == 0 || strchr (rl_special_prefixes, scan) == 0)
+           rl_point++;
+       }
+    }
+
+  if (fp)
+    *fp = found_quote;
+  if (dp)
+    *dp = delimiter;
+
+  return (quote_char);
+}
+
+static char **
+gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
+     char *text;
+     int start, end;
+     rl_compentry_func_t *our_func;
+     int found_quote, quote_char;
+{
+  char **matches, *temp;
+
+  rl_completion_found_quote = found_quote;
+  rl_completion_quote_character = quote_char;
+
+  /* If the user wants to TRY to complete, but then wants to give
+     up and use the default completion function, they set the
+     variable rl_attempted_completion_function. */
+  if (rl_attempted_completion_function)
+    {
+      matches = (*rl_attempted_completion_function) (text, start, end);
+
+      if (matches || rl_attempted_completion_over)
+       {
+         rl_attempted_completion_over = 0;
+         return (matches);
+       }
+    }
+
+  /* Beware -- we're stripping the quotes here.  Do this only if we know
+     we are doing filename completion and the application has defined a
+     filename dequoting function. */
+  /* XXX -- can move this into rl_filename_completion_function and use
+     rl_completion_found_quote and rl_completion_quote_char.  Should be
+     after the directory rewriting hook and maybe the directory completion
+     hook.  Also need to change bash_directory_expansion in the same way
+     as rl_filename_completion_function. */
+  temp = (char *)NULL;
+
+  if (found_quote && our_func == rl_filename_completion_function &&
+      rl_filename_dequoting_function)
+    {
+      /* delete single and double quotes */
+      temp = (*rl_filename_dequoting_function) (text, quote_char);
+      text = temp;     /* not freeing text is not a memory leak */
+    }
+
+  matches = rl_completion_matches (text, our_func);
+  FREE (temp);
+  return matches;  
+}
+
+/* Filter out duplicates in MATCHES.  This frees up the strings in
+   MATCHES. */
+static char **
+remove_duplicate_matches (matches)
+     char **matches;
+{
+  char *lowest_common;
+  int i, j, newlen;
+  char dead_slot;
+  char **temp_array;
+
+  /* Sort the items. */
+  for (i = 0; matches[i]; i++)
+    ;
+
+  /* Sort the array without matches[0], since we need it to
+     stay in place no matter what. */
+  if (i)
+    qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  /* Remember the lowest common denominator for it may be unique. */
+  lowest_common = savestring (matches[0]);
+
+  for (i = newlen = 0; matches[i + 1]; i++)
+    {
+      if (strcmp (matches[i], matches[i + 1]) == 0)
+       {
+         free (matches[i]);
+         matches[i] = (char *)&dead_slot;
+       }
+      else
+       newlen++;
+    }
+
+  /* We have marked all the dead slots with (char *)&dead_slot.
+     Copy all the non-dead entries into a new array. */
+  temp_array = (char **)xmalloc ((3 + newlen) * sizeof (char *));
+  for (i = j = 1; matches[i]; i++)
+    {
+      if (matches[i] != (char *)&dead_slot)
+       temp_array[j++] = matches[i];
+    }
+  temp_array[j] = (char *)NULL;
+
+  if (matches[0] != (char *)&dead_slot)
+    free (matches[0]);
+
+  /* Place the lowest common denominator back in [0]. */
+  temp_array[0] = lowest_common;
+
+  /* If there is one string left, and it is identical to the
+     lowest common denominator, then the LCD is the string to
+     insert. */
+  if (j == 2 && strcmp (temp_array[0], temp_array[1]) == 0)
+    {
+      free (temp_array[1]);
+      temp_array[1] = (char *)NULL;
+    }
+  return (temp_array);
+}
+
+/* Find the common prefix of the list of matches, and put it into
+   matches[0]. */
+static int
+compute_lcd_of_matches (match_list, matches, text)
+     char **match_list;
+     int matches;
+     const char *text;
+{
+  register int i, c1, c2, si;
+  int low;             /* Count of max-matched characters. */
+  char *dtext;         /* dequoted TEXT, if needed */
+#if defined (HANDLE_MULTIBYTE)
+  int v;
+  mbstate_t ps1, ps2;
+  wchar_t wc1, wc2;
+#endif
+
+  /* If only one match, just use that.  Otherwise, compare each
+     member of the list with the next, finding out where they
+     stop matching. */
+  if (matches == 1)
+    {
+      match_list[0] = match_list[1];
+      match_list[1] = (char *)NULL;
+      return 1;
+    }
+
+  for (i = 1, low = 100000; i < matches; i++)
+    {
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         memset (&ps1, 0, sizeof (mbstate_t));
+         memset (&ps2, 0, sizeof (mbstate_t));
+       }
+#endif
+      if (_rl_completion_case_fold)
+       {
+         for (si = 0;
+              (c1 = _rl_to_lower(match_list[i][si])) &&
+              (c2 = _rl_to_lower(match_list[i + 1][si]));
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
+               mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
+               wc1 = towlower (wc1);
+               wc2 = towlower (wc2);
+               if (wc1 != wc2)
+                 break;
+               else if (v > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+      else
+       {
+         for (si = 0;
+              (c1 = match_list[i][si]) &&
+              (c2 = match_list[i + 1][si]);
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               mbstate_t ps_back = ps1;
+               if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
+                 break;
+               else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+
+      if (low > si)
+       low = si;
+    }
+
+  /* If there were multiple matches, but none matched up to even the
+     first character, and the user typed something, use that as the
+     value of matches[0]. */
+  if (low == 0 && text && *text)
+    {
+      match_list[0] = (char *)xmalloc (strlen (text) + 1);
+      strcpy (match_list[0], text);
+    }
+  else
+    {
+      match_list[0] = (char *)xmalloc (low + 1);
+
+      /* XXX - this might need changes in the presence of multibyte chars */
+
+      /* If we are ignoring case, try to preserve the case of the string
+        the user typed in the face of multiple matches differing in case. */
+      if (_rl_completion_case_fold)
+       {
+         /* We're making an assumption here:
+               IF we're completing filenames AND
+                  the application has defined a filename dequoting function AND
+                  we found a quote character AND
+                  the application has requested filename quoting
+               THEN
+                  we assume that TEXT was dequoted before checking against
+                  the file system and needs to be dequoted here before we
+                  check against the list of matches
+               FI */
+         dtext = (char *)NULL;
+         if (rl_filename_completion_desired &&
+             rl_filename_dequoting_function &&
+             rl_completion_found_quote &&
+             rl_filename_quoting_desired)
+           {
+             dtext = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+             text = dtext;
+           }
+
+         /* sort the list to get consistent answers. */
+         qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
+
+         si = strlen (text);
+         if (si <= low)
+           {
+             for (i = 1; i <= matches; i++)
+               if (strncmp (match_list[i], text, si) == 0)
+                 {
+                   strncpy (match_list[0], match_list[i], low);
+                   break;
+                 }
+             /* no casematch, use first entry */
+             if (i > matches)
+               strncpy (match_list[0], match_list[1], low);
+           }
+         else
+           /* otherwise, just use the text the user typed. */
+           strncpy (match_list[0], text, low);
+
+         FREE (dtext);
+       }
+      else
+        strncpy (match_list[0], match_list[1], low);
+
+      match_list[0][low] = '\0';
+    }
+
+  return matches;
+}
+
+static int
+postprocess_matches (matchesp, matching_filenames)
+     char ***matchesp;
+     int matching_filenames;
+{
+  char *t, **matches, **temp_matches;
+  int nmatch, i;
+
+  matches = *matchesp;
+
+  if (matches == 0)
+    return 0;
+
+  /* It seems to me that in all the cases we handle we would like
+     to ignore duplicate possiblilities.  Scan for the text to
+     insert being identical to the other completions. */
+  if (rl_ignore_completion_duplicates)
+    {
+      temp_matches = remove_duplicate_matches (matches);
+      free (matches);
+      matches = temp_matches;
+    }
+
+  /* If we are matching filenames, then here is our chance to
+     do clever processing by re-examining the list.  Call the
+     ignore function with the array as a parameter.  It can
+     munge the array, deleting matches as it desires. */
+  if (rl_ignore_some_completions_function && matching_filenames)
+    {
+      for (nmatch = 1; matches[nmatch]; nmatch++)
+       ;
+      (void)(*rl_ignore_some_completions_function) (matches);
+      if (matches == 0 || matches[0] == 0)
+       {
+         FREE (matches);
+         *matchesp = (char **)0;
+         return 0;
+        }
+      else
+       {
+         /* If we removed some matches, recompute the common prefix. */
+         for (i = 1; matches[i]; i++)
+           ;
+         if (i > 1 && i < nmatch)
+           {
+             t = matches[0];
+             compute_lcd_of_matches (matches, i - 1, t);
+             FREE (t);
+           }
+       }
+    }
+
+  *matchesp = matches;
+  return (1);
+}
+
+/* A convenience function for displaying a list of strings in
+   columnar format on readline's output stream.  MATCHES is the list
+   of strings, in argv format, LEN is the number of strings in MATCHES,
+   and MAX is the length of the longest string in MATCHES. */
+void
+rl_display_match_list (matches, len, max)
+     char **matches;
+     int len, max;
+{
+  int count, limit, printed_len, lines;
+  int i, j, k, l;
+  char *temp;
+
+  /* How many items of MAX length can we fit in the screen window? */
+  max += 2;
+  limit = _rl_screenwidth / max;
+  if (limit != 1 && (limit * max == _rl_screenwidth))
+    limit--;
+
+  /* Avoid a possible floating exception.  If max > _rl_screenwidth,
+     limit will be 0 and a divide-by-zero fault will result. */
+  if (limit == 0)
+    limit = 1;
+
+  /* How many iterations of the printing loop? */
+  count = (len + (limit - 1)) / limit;
+
+  /* Watch out for special case.  If LEN is less than LIMIT, then
+     just do the inner printing loop.
+          0 < len <= limit  implies  count = 1. */
+
+  /* Sort the items if they are not already sorted. */
+  if (rl_ignore_completion_duplicates == 0)
+    qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  rl_crlf ();
+
+  lines = 0;
+  if (_rl_print_completions_horizontally == 0)
+    {
+      /* Print the sorted items, up-and-down alphabetically, like ls. */
+      for (i = 1; i <= count; i++)
+       {
+         for (j = 0, l = i; j < limit; j++)
+           {
+             if (l > len || matches[l] == 0)
+               break;
+             else
+               {
+                 temp = printable_part (matches[l]);
+                 printed_len = print_filename (temp, matches[l]);
+
+                 if (j + 1 < limit)
+                   for (k = 0; k < max - printed_len; k++)
+                     putc (' ', rl_outstream);
+               }
+             l += count;
+           }
+         rl_crlf ();
+         lines++;
+         if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
+           {
+             lines = _rl_internal_pager (lines);
+             if (lines < 0)
+               return;
+           }
+       }
+    }
+  else
+    {
+      /* Print the sorted items, across alphabetically, like ls -x. */
+      for (i = 1; matches[i]; i++)
+       {
+         temp = printable_part (matches[i]);
+         printed_len = print_filename (temp, matches[i]);
+         /* Have we reached the end of this line? */
+         if (matches[i+1])
+           {
+             if (i && (limit > 1) && (i % limit) == 0)
+               {
+                 rl_crlf ();
+                 lines++;
+                 if (_rl_page_completions && lines >= _rl_screenheight - 1)
+                   {
+                     lines = _rl_internal_pager (lines);
+                     if (lines < 0)
+                       return;
+                   }
+               }
+             else
+               for (k = 0; k < max - printed_len; k++)
+                 putc (' ', rl_outstream);
+           }
+       }
+      rl_crlf ();
+    }
+}
+
+/* Display MATCHES, a list of matching filenames in argv format.  This
+   handles the simple case -- a single match -- first.  If there is more
+   than one match, we compute the number of strings in the list and the
+   length of the longest string, which will be needed by the display
+   function.  If the application wants to handle displaying the list of
+   matches itself, it sets RL_COMPLETION_DISPLAY_MATCHES_HOOK to the
+   address of a function, and we just call it.  If we're handling the
+   display ourselves, we just call rl_display_match_list.  We also check
+   that the list of matches doesn't exceed the user-settable threshold,
+   and ask the user if he wants to see the list if there are more matches
+   than RL_COMPLETION_QUERY_ITEMS. */
+static void
+display_matches (matches)
+     char **matches;
+{
+  int len, max, i;
+  char *temp;
+
+  /* Move to the last visible line of a possibly-multiple-line command. */
+  _rl_move_vert (_rl_vis_botlin);
+
+  /* Handle simple case first.  What if there is only one answer? */
+  if (matches[1] == 0)
+    {
+      temp = printable_part (matches[0]);
+      rl_crlf ();
+      print_filename (temp, matches[0]);
+      rl_crlf ();
+
+      rl_forced_update_display ();
+      rl_display_fixed = 1;
+
+      return;
+    }
+
+  /* There is more than one answer.  Find out how many there are,
+     and find the maximum printed length of a single entry. */
+  for (max = 0, i = 1; matches[i]; i++)
+    {
+      temp = printable_part (matches[i]);
+      len = fnwidth (temp);
+
+      if (len > max)
+       max = len;
+    }
+
+  len = i - 1;
+
+  /* If the caller has defined a display hook, then call that now. */
+  if (rl_completion_display_matches_hook)
+    {
+      (*rl_completion_display_matches_hook) (matches, len, max);
+      return;
+    }
+       
+  /* If there are many items, then ask the user if she really wants to
+     see them all. */
+  if (rl_completion_query_items > 0 && len >= rl_completion_query_items)
+    {
+      rl_crlf ();
+      fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len);
+      fflush (rl_outstream);
+      if (get_y_or_n (0) == 0)
+       {
+         rl_crlf ();
+
+         rl_forced_update_display ();
+         rl_display_fixed = 1;
+
+         return;
+       }
+    }
+
+  rl_display_match_list (matches, len, max);
+
+  rl_forced_update_display ();
+  rl_display_fixed = 1;
+}
+
+static char *
+make_quoted_replacement (match, mtype, qc)
+     char *match;
+     int mtype;
+     char *qc; /* Pointer to quoting character, if any */
+{
+  int should_quote, do_replace;
+  char *replacement;
+
+  /* If we are doing completion on quoted substrings, and any matches
+     contain any of the completer_word_break_characters, then auto-
+     matically prepend the substring with a quote character (just pick
+     the first one from the list of such) if it does not already begin
+     with a quote string.  FIXME: Need to remove any such automatically
+     inserted quote character when it no longer is necessary, such as
+     if we change the string we are completing on and the new set of
+     matches don't require a quoted substring. */
+  replacement = match;
+
+  should_quote = match && rl_completer_quote_characters &&
+                       rl_filename_completion_desired &&
+                       rl_filename_quoting_desired;
+
+  if (should_quote)
+    should_quote = should_quote && (!qc || !*qc ||
+                    (rl_completer_quote_characters && strchr (rl_completer_quote_characters, *qc)));
+
+  if (should_quote)
+    {
+      /* If there is a single match, see if we need to quote it.
+         This also checks whether the common prefix of several
+        matches needs to be quoted. */
+      should_quote = rl_filename_quote_characters
+                       ? (_rl_strpbrk (match, rl_filename_quote_characters) != 0)
+                       : 0;
+
+      do_replace = should_quote ? mtype : NO_MATCH;
+      /* Quote the replacement, since we found an embedded
+        word break character in a potential match. */
+      if (do_replace != NO_MATCH && rl_filename_quoting_function)
+       replacement = (*rl_filename_quoting_function) (match, do_replace, qc);
+    }
+  return (replacement);
+}
+
+static void
+insert_match (match, start, mtype, qc)
+     char *match;
+     int start, mtype;
+     char *qc;
+{
+  char *replacement;
+  char oqc;
+
+  oqc = qc ? *qc : '\0';
+  replacement = make_quoted_replacement (match, mtype, qc);
+
+  /* Now insert the match. */
+  if (replacement)
+    {
+      /* Don't double an opening quote character. */
+      if (qc && *qc && start && rl_line_buffer[start - 1] == *qc &&
+           replacement[0] == *qc)
+       start--;
+      /* If make_quoted_replacement changed the quoting character, remove
+        the opening quote and insert the (fully-quoted) replacement. */
+      else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc &&
+           replacement[0] != oqc)
+       start--;
+      _rl_replace_text (replacement, start, rl_point - 1);
+      if (replacement != match)
+        free (replacement);
+    }
+}
+
+/* Append any necessary closing quote and a separator character to the
+   just-inserted match.  If the user has specified that directories
+   should be marked by a trailing `/', append one of those instead.  The
+   default trailing character is a space.  Returns the number of characters
+   appended.  If NONTRIVIAL_MATCH is set, we test for a symlink (if the OS
+   has them) and don't add a suffix for a symlink to a directory.  A
+   nontrivial match is one that actually adds to the word being completed.
+   The variable rl_completion_mark_symlink_dirs controls this behavior
+   (it's initially set to the what the user has chosen, indicated by the
+   value of _rl_complete_mark_symlink_dirs, but may be modified by an
+   application's completion function). */
+static int
+append_to_match (text, delimiter, quote_char, nontrivial_match)
+     char *text;
+     int delimiter, quote_char, nontrivial_match;
+{
+  char temp_string[4], *filename;
+  int temp_string_index, s;
+  struct stat finfo;
+
+  temp_string_index = 0;
+  if (quote_char && rl_point && rl_completion_suppress_quote == 0 &&
+      rl_line_buffer[rl_point - 1] != quote_char)
+    temp_string[temp_string_index++] = quote_char;
+
+  if (delimiter)
+    temp_string[temp_string_index++] = delimiter;
+  else if (rl_completion_suppress_append == 0 && rl_completion_append_character)
+    temp_string[temp_string_index++] = rl_completion_append_character;
+
+  temp_string[temp_string_index++] = '\0';
+
+  if (rl_filename_completion_desired)
+    {
+      filename = tilde_expand (text);
+      s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
+               ? LSTAT (filename, &finfo)
+               : stat (filename, &finfo);
+      if (s == 0 && S_ISDIR (finfo.st_mode))
+       {
+         if (_rl_complete_mark_directories /* && rl_completion_suppress_append == 0 */)
+           {
+             /* This is clumsy.  Avoid putting in a double slash if point
+                is at the end of the line and the previous character is a
+                slash. */
+             if (rl_point && rl_line_buffer[rl_point] == '\0' && rl_line_buffer[rl_point - 1] == '/')
+               ;
+             else if (rl_line_buffer[rl_point] != '/')
+               rl_insert_text ("/");
+           }
+       }
+#ifdef S_ISLNK
+      /* Don't add anything if the filename is a symlink and resolves to a
+        directory. */
+      else if (s == 0 && S_ISLNK (finfo.st_mode) &&
+              stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode))
+       ;
+#endif
+      else
+       {
+         if (rl_point == rl_end && temp_string_index)
+           rl_insert_text (temp_string);
+       }
+      free (filename);
+    }
+  else
+    {
+      if (rl_point == rl_end && temp_string_index)
+       rl_insert_text (temp_string);
+    }
+
+  return (temp_string_index);
+}
+
+static void
+insert_all_matches (matches, point, qc)
+     char **matches;
+     int point;
+     char *qc;
+{
+  int i;
+  char *rp;
+
+  rl_begin_undo_group ();
+  /* remove any opening quote character; make_quoted_replacement will add
+     it back. */
+  if (qc && *qc && point && rl_line_buffer[point - 1] == *qc)
+    point--;
+  rl_delete_text (point, rl_point);
+  rl_point = point;
+
+  if (matches[1])
+    {
+      for (i = 1; matches[i]; i++)
+       {
+         rp = make_quoted_replacement (matches[i], SINGLE_MATCH, qc);
+         rl_insert_text (rp);
+         rl_insert_text (" ");
+         if (rp != matches[i])
+           free (rp);
+       }
+    }
+  else
+    {
+      rp = make_quoted_replacement (matches[0], SINGLE_MATCH, qc);
+      rl_insert_text (rp);
+      rl_insert_text (" ");
+      if (rp != matches[0])
+       free (rp);
+    }
+  rl_end_undo_group ();
+}
+
+void
+_rl_free_match_list (matches)
+     char **matches;
+{
+  register int i;
+
+  if (matches == 0)
+    return;
+
+  for (i = 0; matches[i]; i++)
+    free (matches[i]);
+  free (matches);
+}
+
+/* Complete the word at or before point.
+   WHAT_TO_DO says what to do with the completion.
+   `?' means list the possible completions.
+   TAB means do standard completion.
+   `*' means insert all of the possible completions.
+   `!' means to do standard completion, and list all possible completions if
+   there is more than one.
+   `@' means to do standard completion, and list all possible completions if
+   there is more than one and partial completion is not possible. */
+int
+rl_complete_internal (what_to_do)
+     int what_to_do;
+{
+  char **matches;
+  rl_compentry_func_t *our_func;
+  int start, end, delimiter, found_quote, i, nontrivial_lcd;
+  char *text, *saved_line_buffer;
+  char quote_char;
+
+  RL_SETSTATE(RL_STATE_COMPLETING);
+
+  set_completion_defaults (what_to_do);
+
+  saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
+  our_func = rl_completion_entry_function
+               ? rl_completion_entry_function
+               : rl_filename_completion_function;
+  /* We now look backwards for the start of a filename/variable word. */
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  if (rl_point)
+    /* This (possibly) changes rl_point.  If it returns a non-zero char,
+       we know we have an open quote. */
+    quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+  start = rl_point;
+  rl_point = end;
+
+  text = rl_copy_text (start, end);
+  matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
+  /* nontrivial_lcd is set if the common prefix adds something to the word
+     being completed. */
+  nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
+  free (text);
+
+  if (matches == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      return (0);
+    }
+
+  /* If we are matching filenames, the attempted completion function will
+     have set rl_filename_completion_desired to a non-zero value.  The basic
+     rl_filename_completion_function does this. */
+  i = rl_filename_completion_desired;
+
+  if (postprocess_matches (&matches, i) == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      return (0);
+    }
+
+  switch (what_to_do)
+    {
+    case TAB:
+    case '!':
+    case '@':
+      /* Insert the first match with proper quoting. */
+      if (*matches[0])
+       insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+
+      /* If there are more matches, ring the bell to indicate.
+        If we are in vi mode, Posix.2 says to not ring the bell.
+        If the `show-all-if-ambiguous' variable is set, display
+        all the matches immediately.  Otherwise, if this was the
+        only match, and we are hacking files, check the file to
+        see if it was a directory.  If so, and the `mark-directories'
+        variable is set, add a '/' to the name.  If not, and we
+        are at the end of the line, then add a space.  */
+      if (matches[1])
+       {
+         if (what_to_do == '!')
+           {
+             display_matches (matches);
+             break;
+           }
+         else if (what_to_do == '@')
+           {
+             if (nontrivial_lcd == 0)
+               display_matches (matches);
+             break;
+           }
+         else if (rl_editing_mode != vi_mode)
+           rl_ding (); /* There are other matches remaining. */
+       }
+      else
+       append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
+
+      break;
+
+    case '*':
+      insert_all_matches (matches, start, &quote_char);
+      break;
+
+    case '?':
+      display_matches (matches);
+      break;
+
+    default:
+      fprintf (stderr, "\r\nreadline: bad value %d for what_to_do in rl_complete\n", what_to_do);
+      rl_ding ();
+      FREE (saved_line_buffer);
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      return 1;
+    }
+
+  _rl_free_match_list (matches);
+
+  /* Check to see if the line has changed through all of this manipulation. */
+  if (saved_line_buffer)
+    {
+      completion_changed_buffer = strcmp (rl_line_buffer, saved_line_buffer) != 0;
+      free (saved_line_buffer);
+    }
+
+  RL_UNSETSTATE(RL_STATE_COMPLETING);
+  return 0;
+}
+
+/***************************************************************/
+/*                                                            */
+/*  Application-callable completion match generator functions  */
+/*                                                            */
+/***************************************************************/
+
+/* Return an array of (char *) which is a list of completions for TEXT.
+   If there are no completions, return a NULL pointer.
+   The first entry in the returned array is the substitution for TEXT.
+   The remaining entries are the possible completions.
+   The array is terminated with a NULL pointer.
+
+   ENTRY_FUNCTION is a function of two args, and returns a (char *).
+     The first argument is TEXT.
+     The second is a state argument; it should be zero on the first call, and
+     non-zero on subsequent calls.  It returns a NULL pointer to the caller
+     when there are no more matches.
+ */
+char **
+rl_completion_matches (text, entry_function)
+     const char *text;
+     rl_compentry_func_t *entry_function;
+{
+  /* Number of slots in match_list. */
+  int match_list_size;
+
+  /* The list of matches. */
+  char **match_list;
+
+  /* Number of matches actually found. */
+  int matches;
+
+  /* Temporary string binder. */
+  char *string;
+
+  matches = 0;
+  match_list_size = 10;
+  match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
+  match_list[1] = (char *)NULL;
+
+  while (string = (*entry_function) (text, matches))
+    {
+      if (matches + 1 == match_list_size)
+       match_list = (char **)xrealloc
+         (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
+
+      match_list[++matches] = string;
+      match_list[matches + 1] = (char *)NULL;
+    }
+
+  /* If there were any matches, then look through them finding out the
+     lowest common denominator.  That then becomes match_list[0]. */
+  if (matches)
+    compute_lcd_of_matches (match_list, matches, text);
+  else                         /* There were no matches. */
+    {
+      free (match_list);
+      match_list = (char **)NULL;
+    }
+  return (match_list);
+}
+
+/* A completion function for usernames.
+   TEXT contains a partial username preceded by a random
+   character (usually `~').  */
+char *
+rl_username_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT)
+  return (char *)NULL;
+#else /* !__WIN32__ && !__OPENNT) */
+  static char *username = (char *)NULL;
+  static struct passwd *entry;
+  static int namelen, first_char, first_char_loc;
+  char *value;
+
+  if (state == 0)
+    {
+      FREE (username);
+
+      first_char = *text;
+      first_char_loc = first_char == '~';
+
+      username = savestring (&text[first_char_loc]);
+      namelen = strlen (username);
+      setpwent ();
+    }
+
+#if defined (HAVE_GETPWENT)
+  while (entry = getpwent ())
+    {
+      /* Null usernames should result in all users as possible completions. */
+      if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
+       break;
+    }
+#endif
+
+  if (entry == 0)
+    {
+#if defined (HAVE_GETPWENT)
+      endpwent ();
+#endif
+      return ((char *)NULL);
+    }
+  else
+    {
+      value = (char *)xmalloc (2 + strlen (entry->pw_name));
+
+      *value = *text;
+
+      strcpy (value + first_char_loc, entry->pw_name);
+
+      if (first_char == '~')
+       rl_filename_completion_desired = 1;
+
+      return (value);
+    }
+#endif /* !__WIN32__ && !__OPENNT */
+}
+
+/* Okay, now we write the entry_function for filename completion.  In the
+   general case.  Note that completion in the shell is a little different
+   because of all the pathnames that must be followed when looking up the
+   completion for a command. */
+char *
+rl_filename_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static DIR *directory = (DIR *)NULL;
+  static char *filename = (char *)NULL;
+  static char *dirname = (char *)NULL;
+  static char *users_dirname = (char *)NULL;
+  static int filename_len;
+  char *temp;
+  int dirlen;
+  struct dirent *entry;
+
+  /* If we don't have any state, then do some initialization. */
+  if (state == 0)
+    {
+      /* If we were interrupted before closing the directory or reading
+        all of its contents, close it. */
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      FREE (dirname);
+      FREE (filename);
+      FREE (users_dirname);
+
+      filename = savestring (text);
+      if (*text == 0)
+       text = ".";
+      dirname = savestring (text);
+
+      temp = strrchr (dirname, '/');
+
+#if defined (__MSDOS__)
+      /* special hack for //X/... */
+      if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
+        temp = strrchr (dirname + 3, '/');
+#endif
+
+      if (temp)
+       {
+         strcpy (filename, ++temp);
+         *temp = '\0';
+       }
+#if defined (__MSDOS__)
+      /* searches from current directory on the drive */
+      else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
+        {
+          strcpy (filename, dirname + 2);
+          dirname[2] = '\0';
+        }
+#endif
+      else
+       {
+         dirname[0] = '.';
+         dirname[1] = '\0';
+       }
+
+      /* We aren't done yet.  We also support the "~user" syntax. */
+
+      /* Save the version of the directory that the user typed. */
+      users_dirname = savestring (dirname);
+
+      if (*dirname == '~')
+       {
+         temp = tilde_expand (dirname);
+         free (dirname);
+         dirname = temp;
+       }
+
+      if (rl_directory_rewrite_hook)
+       (*rl_directory_rewrite_hook) (&dirname);
+
+      if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
+       {
+         free (users_dirname);
+         users_dirname = savestring (dirname);
+       }
+
+      directory = opendir (dirname);
+      filename_len = strlen (filename);
+
+      rl_filename_completion_desired = 1;
+    }
+
+  /* At this point we should entertain the possibility of hacking wildcarded
+     filenames, like /usr/man/man<WILD>/te<TAB>.  If the directory name
+     contains globbing characters, then build an array of directories, and
+     then map over that list while completing. */
+  /* *** UNIMPLEMENTED *** */
+
+  /* Now that we have some state, we can read the directory. */
+
+  entry = (struct dirent *)NULL;
+  while (directory && (entry = readdir (directory)))
+    {
+      /* Special case for no filename.  If the user has disabled the
+         `match-hidden-files' variable, skip filenames beginning with `.'.
+        All other entries except "." and ".." match. */
+      if (filename_len == 0)
+       {
+         if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
+           continue;
+
+         if (entry->d_name[0] != '.' ||
+              (entry->d_name[1] &&
+                (entry->d_name[1] != '.' || entry->d_name[2])))
+           break;
+       }
+      else
+       {
+         /* Otherwise, if these match up to the length of filename, then
+            it is a match. */
+         if (_rl_completion_case_fold)
+           {
+             if ((_rl_to_lower (entry->d_name[0]) == _rl_to_lower (filename[0])) &&
+                 (((int)D_NAMLEN (entry)) >= filename_len) &&
+                 (_rl_strnicmp (filename, entry->d_name, filename_len) == 0))
+               break;
+           }
+         else
+           {
+             if ((entry->d_name[0] == filename[0]) &&
+                 (((int)D_NAMLEN (entry)) >= filename_len) &&
+                 (strncmp (filename, entry->d_name, filename_len) == 0))
+               break;
+           }
+       }
+    }
+
+  if (entry == 0)
+    {
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      if (dirname)
+       {
+         free (dirname);
+         dirname = (char *)NULL;
+       }
+      if (filename)
+       {
+         free (filename);
+         filename = (char *)NULL;
+       }
+      if (users_dirname)
+       {
+         free (users_dirname);
+         users_dirname = (char *)NULL;
+       }
+
+      return (char *)NULL;
+    }
+  else
+    {
+      /* dirname && (strcmp (dirname, ".") != 0) */
+      if (dirname && (dirname[0] != '.' || dirname[1]))
+       {
+         if (rl_complete_with_tilde_expansion && *users_dirname == '~')
+           {
+             dirlen = strlen (dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, dirname);
+             /* Canonicalization cuts off any final slash present.  We
+                may need to add it back. */
+             if (dirname[dirlen - 1] != '/')
+               {
+                 temp[dirlen++] = '/';
+                 temp[dirlen] = '\0';
+               }
+           }
+         else
+           {
+             dirlen = strlen (users_dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, users_dirname);
+             /* Make sure that temp has a trailing slash here. */
+             if (users_dirname[dirlen - 1] != '/')
+               temp[dirlen++] = '/';
+           }
+
+         strcpy (temp + dirlen, entry->d_name);
+       }
+      else
+       temp = savestring (entry->d_name);
+
+      return (temp);
+    }
+}
+
+/* An initial implementation of a menu completion function a la tcsh.  The
+   first time (if the last readline command was not rl_menu_complete), we
+   generate the list of matches.  This code is very similar to the code in
+   rl_complete_internal -- there should be a way to combine the two.  Then,
+   for each item in the list of matches, we insert the match in an undoable
+   fashion, with the appropriate character appended (this happens on the
+   second and subsequent consecutive calls to rl_menu_complete).  When we
+   hit the end of the match list, we restore the original unmatched text,
+   ring the bell, and reset the counter to zero. */
+int
+rl_menu_complete (count, ignore)
+     int count, ignore;
+{
+  rl_compentry_func_t *our_func;
+  int matching_filenames, found_quote;
+
+  static char *orig_text;
+  static char **matches = (char **)0;
+  static int match_list_index = 0;
+  static int match_list_size = 0;
+  static int orig_start, orig_end;
+  static char quote_char;
+  static int delimiter;
+
+  /* The first time through, we generate the list of matches and set things
+     up to insert them. */
+  if (rl_last_func != rl_menu_complete)
+    {
+      /* Clean up from previous call, if any. */
+      FREE (orig_text);
+      if (matches)
+       _rl_free_match_list (matches);
+
+      match_list_index = match_list_size = 0;
+      matches = (char **)NULL;
+
+      /* Only the completion entry function can change these. */
+      set_completion_defaults ('%');
+
+      our_func = rl_completion_entry_function
+                       ? rl_completion_entry_function
+                       : rl_filename_completion_function;
+
+      /* We now look backwards for the start of a filename/variable word. */
+      orig_end = rl_point;
+      found_quote = delimiter = 0;
+      quote_char = '\0';
+
+      if (rl_point)
+       /* This (possibly) changes rl_point.  If it returns a non-zero char,
+          we know we have an open quote. */
+       quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+      orig_start = rl_point;
+      rl_point = orig_end;
+
+      orig_text = rl_copy_text (orig_start, orig_end);
+      matches = gen_completion_matches (orig_text, orig_start, orig_end,
+                                       our_func, found_quote, quote_char);
+
+      /* If we are matching filenames, the attempted completion function will
+        have set rl_filename_completion_desired to a non-zero value.  The basic
+        rl_filename_completion_function does this. */
+      matching_filenames = rl_filename_completion_desired;
+
+      if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         FREE (orig_text);
+         orig_text = (char *)0;
+         completion_changed_buffer = 0;
+          return (0);
+       }
+
+      for (match_list_size = 0; matches[match_list_size]; match_list_size++)
+        ;
+      /* matches[0] is lcd if match_list_size > 1, but the circular buffer
+        code below should take care of it. */
+    }
+
+  /* Now we have the list of matches.  Replace the text between
+     rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
+     matches[match_list_index], and add any necessary closing char. */
+
+  if (matches == 0 || match_list_size == 0) 
+    {
+      rl_ding ();
+      FREE (matches);
+      matches = (char **)0;
+      completion_changed_buffer = 0;
+      return (0);
+    }
+
+  match_list_index += count;
+  if (match_list_index < 0)
+    match_list_index += match_list_size;
+  else
+    match_list_index %= match_list_size;
+
+  if (match_list_index == 0 && match_list_size > 1)
+    {
+      rl_ding ();
+      insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
+    }
+  else
+    {
+      insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
+      append_to_match (matches[match_list_index], delimiter, quote_char,
+                      strcmp (orig_text, matches[match_list_index]));
+    }
+
+  completion_changed_buffer = 1;
+  return (0);
+}
diff --git a/lib/readline/complete.c~ b/lib/readline/complete.c~
new file mode 100644 (file)
index 0000000..d188a26
--- /dev/null
@@ -0,0 +1,2235 @@
+/* complete.c -- filename completion for readline. */
+
+/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+
+   This file is part of the GNU Readline Library, a library for
+   reading lines of text with interactive input and history editing.
+
+   The GNU Readline Library 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 2, or
+   (at your option) any later version.
+
+   The GNU Readline Library 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.
+
+   The GNU General Public License is often shipped with GNU software, and
+   is generally kept in a file called COPYING or LICENSE.  If you do not
+   have a copy of the license, write to the Free Software Foundation,
+   59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <fcntl.h>
+#if defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#if defined (HAVE_STDLIB_H)
+#  include <stdlib.h>
+#else
+#  include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#include <stdio.h>
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if defined (HAVE_PWD_H)
+#include <pwd.h>
+#endif
+
+#include "posixdir.h"
+#include "posixstat.h"
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+#include "rlmbutil.h"
+
+/* Some standard library routines. */
+#include "readline.h"
+#include "xmalloc.h"
+#include "rlprivate.h"
+
+#ifdef __STDC__
+typedef int QSFUNC (const void *, const void *);
+#else
+typedef int QSFUNC ();
+#endif
+
+#ifdef HAVE_LSTAT
+#  define LSTAT lstat
+#else
+#  define LSTAT stat
+#endif
+
+/* Unix version of a hidden file.  Could be different on other systems. */
+#define HIDDEN_FILE(fname)     ((fname)[0] == '.')
+
+/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
+   defined. */
+#if defined (HAVE_GETPWENT) && (!defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE))
+extern struct passwd *getpwent PARAMS((void));
+#endif /* HAVE_GETPWENT && (!HAVE_GETPW_DECLS || _POSIX_SOURCE) */
+
+/* If non-zero, then this is the address of a function to call when
+   completing a word would normally display the list of possible matches.
+   This function is called instead of actually doing the display.
+   It takes three arguments: (char **matches, int num_matches, int max_length)
+   where MATCHES is the array of strings that matched, NUM_MATCHES is the
+   number of strings in that array, and MAX_LENGTH is the length of the
+   longest string in that array. */
+rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
+
+#if defined (VISIBLE_STATS)
+#  if !defined (X_OK)
+#    define X_OK 1
+#  endif
+static int stat_char PARAMS((char *));
+#endif
+
+static int path_isdir PARAMS((const char *));
+
+static char *rl_quote_filename PARAMS((char *, int, char *));
+
+static void set_completion_defaults PARAMS((int));
+static int get_y_or_n PARAMS((int));
+static int _rl_internal_pager PARAMS((int));
+static char *printable_part PARAMS((char *));
+static int fnwidth PARAMS((const char *));
+static int fnprint PARAMS((const char *));
+static int print_filename PARAMS((char *, char *));
+
+static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
+
+static char **remove_duplicate_matches PARAMS((char **));
+static void insert_match PARAMS((char *, int, int, char *));
+static int append_to_match PARAMS((char *, int, int, int));
+static void insert_all_matches PARAMS((char **, int, char *));
+static void display_matches PARAMS((char **));
+static int compute_lcd_of_matches PARAMS((char **, int, const char *));
+static int postprocess_matches PARAMS((char ***, int));
+
+static char *make_quoted_replacement PARAMS((char *, int, char *));
+
+/* **************************************************************** */
+/*                                                                 */
+/*     Completion matching, from readline's point of view.         */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Variables known only to the readline library. */
+
+/* If non-zero, non-unique completions always show the list of matches. */
+int _rl_complete_show_all = 0;
+
+/* If non-zero, non-unique completions show the list of matches, unless it
+   is not possible to do partial completion and modify the line. */
+int _rl_complete_show_unmodified = 0;
+
+/* If non-zero, completed directory names have a slash appended. */
+int _rl_complete_mark_directories = 1;
+
+/* If non-zero, the symlinked directory completion behavior introduced in
+   readline-4.2a is disabled, and symlinks that point to directories have
+   a slash appended (subject to the value of _rl_complete_mark_directories).
+   This is user-settable via the mark-symlinked-directories variable. */
+int _rl_complete_mark_symlink_dirs = 0;
+
+/* If non-zero, completions are printed horizontally in alphabetical order,
+   like `ls -x'. */
+int _rl_print_completions_horizontally;
+
+/* Non-zero means that case is not significant in filename completion. */
+#if defined (__MSDOS__) && !defined (__DJGPP__)
+int _rl_completion_case_fold = 1;
+#else
+int _rl_completion_case_fold;
+#endif
+
+/* If non-zero, don't match hidden files (filenames beginning with a `.' on
+   Unix) when doing filename completion. */
+int _rl_match_hidden_files = 1;
+
+/* Global variables available to applications using readline. */
+
+#if defined (VISIBLE_STATS)
+/* Non-zero means add an additional character to each filename displayed
+   during listing completion iff rl_filename_completion_desired which helps
+   to indicate the type of file being listed. */
+int rl_visible_stats = 0;
+#endif /* VISIBLE_STATS */
+
+/* If non-zero, then this is the address of a function to call when
+   completing on a directory name.  The function is called with
+   the address of a string (the current directory name) as an arg. */
+rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
+
+rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
+
+/* Non-zero means readline completion functions perform tilde expansion. */
+int rl_complete_with_tilde_expansion = 0;
+
+/* Pointer to the generator function for completion_matches ().
+   NULL means to use rl_filename_completion_function (), the default filename
+   completer. */
+rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;
+
+/* Pointer to alternative function to create matches.
+   Function is called with TEXT, START, and END.
+   START and END are indices in RL_LINE_BUFFER saying what the boundaries
+   of TEXT are.
+   If this function exists and returns NULL then call the value of
+   rl_completion_entry_function to try to match, otherwise use the
+   array of strings returned. */
+rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+
+/* Non-zero means to suppress normal filename completion after the
+   user-specified completion function has been called. */
+int rl_attempted_completion_over = 0;
+
+/* Set to a character indicating the type of completion being performed
+   by rl_complete_internal, available for use by application completion
+   functions. */
+int rl_completion_type = 0;
+
+/* Up to this many items will be displayed in response to a
+   possible-completions call.  After that, we ask the user if
+   she is sure she wants to see them all.  A negative value means
+   don't ask. */
+int rl_completion_query_items = 100;
+
+int _rl_page_completions = 1;
+
+/* The basic list of characters that signal a break between words for the
+   completer routine.  The contents of this variable is what breaks words
+   in the shell, i.e. " \t\n\"\\'`@$><=" */
+const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) */
+
+/* List of basic quoting characters. */
+const char *rl_basic_quote_characters = "\"'";
+
+/* The list of characters that signal a break between words for
+   rl_complete_internal.  The default list is the contents of
+   rl_basic_word_break_characters.  */
+/*const*/ char *rl_completer_word_break_characters = (/*const*/ char *)NULL;
+
+/* Hook function to allow an application to set the completion word
+   break characters before readline breaks up the line.  Allows
+   position-dependent word break characters. */
+rl_cpvfunc_t *rl_completion_word_break_hook = (rl_cpvfunc_t *)NULL;
+
+/* List of characters which can be used to quote a substring of the line.
+   Completion occurs on the entire substring, and within the substring
+   rl_completer_word_break_characters are treated as any other character,
+   unless they also appear within this list. */
+const char *rl_completer_quote_characters = (const char *)NULL;
+
+/* List of characters that should be quoted in filenames by the completer. */
+const char *rl_filename_quote_characters = (const char *)NULL;
+
+/* List of characters that are word break characters, but should be left
+   in TEXT when it is passed to the completion function.  The shell uses
+   this to help determine what kind of completing to do. */
+const char *rl_special_prefixes = (const char *)NULL;
+
+/* If non-zero, then disallow duplicates in the matches. */
+int rl_ignore_completion_duplicates = 1;
+
+/* Non-zero means that the results of the matches are to be treated
+   as filenames.  This is ALWAYS zero on entry, and can only be changed
+   within a completion entry finder function. */
+int rl_filename_completion_desired = 0;
+
+/* Non-zero means that the results of the matches are to be quoted using
+   double quotes (or an application-specific quoting mechanism) if the
+   filename contains any characters in rl_filename_quote_chars.  This is
+   ALWAYS non-zero on entry, and can only be changed within a completion
+   entry finder function. */
+int rl_filename_quoting_desired = 1;
+
+/* This function, if defined, is called by the completer when real
+   filename completion is done, after all the matching names have been
+   generated. It is passed a (char**) known as matches in the code below.
+   It consists of a NULL-terminated array of pointers to potential
+   matching strings.  The 1st element (matches[0]) is the maximal
+   substring that is common to all matches. This function can re-arrange
+   the list of matches as required, but all elements of the array must be
+   free()'d if they are deleted. The main intent of this function is
+   to implement FIGNORE a la SunOS csh. */
+rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;
+
+/* Set to a function to quote a filename in an application-specific fashion.
+   Called with the text to quote, the type of match found (single or multiple)
+   and a pointer to the quoting character to be used, which the function can
+   reset if desired. */
+rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;
+         
+/* Function to call to remove quoting characters from a filename.  Called
+   before completion is attempted, so the embedded quotes do not interfere
+   with matching names in the file system.  Readline doesn't do anything
+   with this; it's set only by applications. */
+rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;
+
+/* Function to call to decide whether or not a word break character is
+   quoted.  If a character is quoted, it does not break words for the
+   completer. */
+rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;
+
+/* If non-zero, the completion functions don't append anything except a
+   possible closing quote.  This is set to 0 by rl_complete_internal and
+   may be changed by an application-specific completion function. */
+int rl_completion_suppress_append = 0;
+
+/* Character appended to completed words when at the end of the line.  The
+   default is a space. */
+int rl_completion_append_character = ' ';
+
+/* If non-zero, the completion functions don't append any closing quote.
+   This is set to 0 by rl_complete_internal and may be changed by an
+   application-specific completion function. */
+int rl_completion_suppress_quote = 0;
+
+/* Set to any quote character readline thinks it finds before any application
+   completion function is called. */
+int rl_completion_quote_character;
+
+/* Set to a non-zero value if readline found quoting anywhere in the word to
+   be completed; set before any application completion function is called. */
+int rl_completion_found_quote;
+
+/* If non-zero, a slash will be appended to completed filenames that are
+   symbolic links to directory names, subject to the value of the
+   mark-directories variable (which is user-settable).  This exists so
+   that application completion functions can override the user's preference
+   (set via the mark-symlinked-directories variable) if appropriate.
+   It's set to the value of _rl_complete_mark_symlink_dirs in
+   rl_complete_internal before any application-specific completion
+   function is called, so without that function doing anything, the user's
+   preferences are honored. */
+int rl_completion_mark_symlink_dirs;
+
+/* If non-zero, inhibit completion (temporarily). */
+int rl_inhibit_completion;
+
+/* Variables local to this file. */
+
+/* Local variable states what happened during the last completion attempt. */
+static int completion_changed_buffer;
+
+/*************************************/
+/*                                  */
+/*    Bindable completion functions  */
+/*                                  */
+/*************************************/
+
+/* Complete the word at or before point.  You have supplied the function
+   that does the initial simple matching selection algorithm (see
+   rl_completion_matches ()).  The default is to do filename completion. */
+int
+rl_complete (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  if (rl_inhibit_completion)
+    return (_rl_insert_char (ignore, invoking_key));
+  else if (rl_last_func == rl_complete && !completion_changed_buffer)
+    return (rl_complete_internal ('?'));
+  else if (_rl_complete_show_all)
+    return (rl_complete_internal ('!'));
+  else if (_rl_complete_show_unmodified)
+    return (rl_complete_internal ('@'));
+  else
+    return (rl_complete_internal (TAB));
+}
+
+/* List the possible completions.  See description of rl_complete (). */
+int
+rl_possible_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  return (rl_complete_internal ('?'));
+}
+
+int
+rl_insert_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  return (rl_complete_internal ('*'));
+}
+
+/* Return the correct value to pass to rl_complete_internal performing
+   the same tests as rl_complete.  This allows consecutive calls to an
+   application's completion function to list possible completions and for
+   an application-specific completion function to honor the
+   show-all-if-ambiguous readline variable. */
+int
+rl_completion_mode (cfunc)
+     rl_command_func_t *cfunc;
+{
+  if (rl_last_func == cfunc && !completion_changed_buffer)
+    return '?';
+  else if (_rl_complete_show_all)
+    return '!';
+  else if (_rl_complete_show_unmodified)
+    return '@';
+  else
+    return TAB;
+}
+
+/************************************/
+/*                                 */
+/*    Completion utility functions  */
+/*                                 */
+/************************************/
+
+/* Set default values for readline word completion.  These are the variables
+   that application completion functions can change or inspect. */
+static void
+set_completion_defaults (what_to_do)
+     int what_to_do;
+{
+  /* Only the completion entry function can change these. */
+  rl_filename_completion_desired = 0;
+  rl_filename_quoting_desired = 1;
+  rl_completion_type = what_to_do;
+  rl_completion_suppress_append = rl_completion_suppress_quote = 0;
+
+  /* The completion entry function may optionally change this. */
+  rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
+}
+
+/* The user must press "y" or "n". Non-zero return means "y" pressed. */
+static int
+get_y_or_n (for_pager)
+     int for_pager;
+{
+  int c;
+
+  for (;;)
+    {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
+      c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+      if (c == 'y' || c == 'Y' || c == ' ')
+       return (1);
+      if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+      if (c == ABORT_CHAR)
+       _rl_abort_internal ();
+      if (for_pager && (c == NEWLINE || c == RETURN))
+       return (2);
+      if (for_pager && (c == 'q' || c == 'Q'))
+       return (0);
+      rl_ding ();
+    }
+}
+
+static int
+_rl_internal_pager (lines)
+     int lines;
+{
+  int i;
+
+  fprintf (rl_outstream, "--More--");
+  fflush (rl_outstream);
+  i = get_y_or_n (1);
+  _rl_erase_entire_line ();
+  if (i == 0)
+    return -1;
+  else if (i == 2)
+    return (lines - 1);
+  else
+    return 0;
+}
+
+static int
+path_isdir (filename)
+     const char *filename;
+{
+  struct stat finfo;
+
+  return (stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode));
+}
+
+#if defined (VISIBLE_STATS)
+/* Return the character which best describes FILENAME.
+     `@' for symbolic links
+     `/' for directories
+     `*' for executables
+     `=' for sockets
+     `|' for FIFOs
+     `%' for character special devices
+     `#' for block special devices */
+static int
+stat_char (filename)
+     char *filename;
+{
+  struct stat finfo;
+  int character, r;
+
+#if defined (HAVE_LSTAT) && defined (S_ISLNK)
+  r = lstat (filename, &finfo);
+#else
+  r = stat (filename, &finfo);
+#endif
+
+  if (r == -1)
+    return (0);
+
+  character = 0;
+  if (S_ISDIR (finfo.st_mode))
+    character = '/';
+#if defined (S_ISCHR)
+  else if (S_ISCHR (finfo.st_mode))
+    character = '%';
+#endif /* S_ISCHR */
+#if defined (S_ISBLK)
+  else if (S_ISBLK (finfo.st_mode))
+    character = '#';
+#endif /* S_ISBLK */
+#if defined (S_ISLNK)
+  else if (S_ISLNK (finfo.st_mode))
+    character = '@';
+#endif /* S_ISLNK */
+#if defined (S_ISSOCK)
+  else if (S_ISSOCK (finfo.st_mode))
+    character = '=';
+#endif /* S_ISSOCK */
+#if defined (S_ISFIFO)
+  else if (S_ISFIFO (finfo.st_mode))
+    character = '|';
+#endif
+  else if (S_ISREG (finfo.st_mode))
+    {
+      if (access (filename, X_OK) == 0)
+       character = '*';
+    }
+  return (character);
+}
+#endif /* VISIBLE_STATS */
+
+/* Return the portion of PATHNAME that should be output when listing
+   possible completions.  If we are hacking filename completion, we
+   are only interested in the basename, the portion following the
+   final slash.  Otherwise, we return what we were passed.  Since
+   printing empty strings is not very informative, if we're doing
+   filename completion, and the basename is the empty string, we look
+   for the previous slash and return the portion following that.  If
+   there's no previous slash, we just return what we were passed. */
+static char *
+printable_part (pathname)
+      char *pathname;
+{
+  char *temp, *x;
+
+  if (rl_filename_completion_desired == 0)     /* don't need to do anything */
+    return (pathname);
+
+  temp = strrchr (pathname, '/');
+#if defined (__MSDOS__)
+  if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
+    temp = pathname + 1;
+#endif
+
+  if (temp == 0 || *temp == '\0')
+    return (pathname);
+  /* If the basename is NULL, we might have a pathname like '/usr/src/'.
+     Look for a previous slash and, if one is found, return the portion
+     following that slash.  If there's no previous slash, just return the
+     pathname we were passed. */
+  else if (temp[1] == '\0')
+    {
+      for (x = temp - 1; x > pathname; x--)
+        if (*x == '/')
+          break;
+      return ((*x == '/') ? x + 1 : pathname);
+    }
+  else
+    return ++temp;
+}
+
+/* Compute width of STRING when displayed on screen by print_filename */
+static int
+fnwidth (string)
+     const char *string;
+{
+  int width, pos;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  int left, w;
+  size_t clen;
+  wchar_t wc;
+
+  left = strlen (string) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  width = pos = 0;
+  while (string[pos])
+    {
+      if (CTRL_CHAR (*string) || *string == RUBOUT)
+       {
+         width += 2;
+         pos++;
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         clen = mbrtowc (&wc, string + pos, left - pos, &ps);
+         if (MB_INVALIDCH (clen))
+           {
+             width++;
+             pos++;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (clen))
+           break;
+         else
+           {
+             pos += clen;
+             w = wcwidth (wc);
+             width += (w >= 0) ? w : 1;
+           }
+#else
+         width++;
+         pos++;
+#endif
+       }
+    }
+
+  return width;
+}
+
+static int
+fnprint (to_print)
+     const char *to_print;
+{
+  int printed_len;
+  const char *s;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  const char *end;
+  size_t tlen;
+  int width, w;
+  wchar_t wc;
+
+  end = to_print + strlen (to_print) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  printed_len = 0;
+  s = to_print;
+  while (*s)
+    {
+      if (CTRL_CHAR (*s))
+        {
+          putc ('^', rl_outstream);
+          putc (UNCTRL (*s), rl_outstream);
+          printed_len += 2;
+          s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+        }
+      else if (*s == RUBOUT)
+       {
+         putc ('^', rl_outstream);
+         putc ('?', rl_outstream);
+         printed_len += 2;
+         s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         tlen = mbrtowc (&wc, s, end - s, &ps);
+         if (MB_INVALIDCH (tlen))
+           {
+             tlen = 1;
+             width = 1;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (tlen))
+           break;
+         else
+           {
+             w = wcwidth (wc);
+             width = (w >= 0) ? w : 1;
+           }
+         fwrite (s, 1, tlen, rl_outstream);
+         s += tlen;
+         printed_len += width;
+#else
+         putc (*s, rl_outstream);
+         s++;
+         printed_len++;
+#endif
+       }
+    }
+
+  return printed_len;
+}
+
+/* Output TO_PRINT to rl_outstream.  If VISIBLE_STATS is defined and we
+   are using it, check for and output a single character for `special'
+   filenames.  Return the number of characters we output. */
+
+static int
+print_filename (to_print, full_pathname)
+     char *to_print, *full_pathname;
+{
+  int printed_len, extension_char, slen, tlen;
+  char *s, c, *new_full_pathname, *dn;
+
+  extension_char = 0;
+  printed_len = fnprint (to_print);
+
+#if defined (VISIBLE_STATS)
+ if (rl_filename_completion_desired && (rl_visible_stats || _rl_complete_mark_directories))
+#else
+ if (rl_filename_completion_desired && _rl_complete_mark_directories)
+#endif
+    {
+      /* If to_print != full_pathname, to_print is the basename of the
+        path passed.  In this case, we try to expand the directory
+        name before checking for the stat character. */
+      if (to_print != full_pathname)
+       {
+         /* Terminate the directory name. */
+         c = to_print[-1];
+         to_print[-1] = '\0';
+
+         /* If setting the last slash in full_pathname to a NUL results in
+            full_pathname being the empty string, we are trying to complete
+            files in the root directory.  If we pass a null string to the
+            bash directory completion hook, for example, it will expand it
+            to the current directory.  We just want the `/'. */
+         if (full_pathname == 0 || *full_pathname == 0)
+           dn = "/";
+         else if (full_pathname[0] != '/')
+           dn = full_pathname;
+         else if (full_pathname[1] == 0)
+           dn = "//";          /* restore trailing slash to `//' */
+         else if (full_pathname[1] == '/' && full_pathname[2] == 0)
+           dn = "/";           /* don't turn /// into // */
+         else
+           dn = full_pathname;
+         s = tilde_expand (dn);
+         if (rl_directory_completion_hook)
+           (*rl_directory_completion_hook) (&s);
+
+         slen = strlen (s);
+         tlen = strlen (to_print);
+         new_full_pathname = (char *)xmalloc (slen + tlen + 2);
+         strcpy (new_full_pathname, s);
+         if (s[slen - 1] == '/')
+           slen--;
+         else
+           new_full_pathname[slen] = '/';
+         new_full_pathname[slen] = '/';
+         strcpy (new_full_pathname + slen + 1, to_print);
+
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (new_full_pathname);
+         else
+#endif
+         if (path_isdir (new_full_pathname))
+           extension_char = '/';
+
+         free (new_full_pathname);
+         to_print[-1] = c;
+       }
+      else
+       {
+         s = tilde_expand (full_pathname);
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (s);
+         else
+#endif
+           if (path_isdir (s))
+             extension_char = '/';
+       }
+
+      free (s);
+      if (extension_char)
+       {
+         putc (extension_char, rl_outstream);
+         printed_len++;
+       }
+    }
+
+  return printed_len;
+}
+
+static char *
+rl_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  char *r;
+
+  r = (char *)xmalloc (strlen (s) + 2);
+  *r = *rl_completer_quote_characters;
+  strcpy (r + 1, s);
+  if (qcp)
+    *qcp = *rl_completer_quote_characters;
+  return r;
+}
+
+/* Find the bounds of the current word for completion purposes, and leave
+   rl_point set to the end of the word.  This function skips quoted
+   substrings (characters between matched pairs of characters in
+   rl_completer_quote_characters).  First we try to find an unclosed
+   quoted substring on which to do matching.  If one is not found, we use
+   the word break characters to find the boundaries of the current word.
+   We call an application-specific function to decide whether or not a
+   particular word break character is quoted; if that function returns a
+   non-zero result, the character does not break a word.  This function
+   returns the opening quote character if we found an unclosed quoted
+   substring, '\0' otherwise.  FP, if non-null, is set to a value saying
+   which (shell-like) quote characters we found (single quote, double
+   quote, or backslash) anywhere in the string.  DP, if non-null, is set to
+   the value of the delimiter character that caused a word break. */
+
+char
+_rl_find_completion_word (fp, dp)
+     int *fp, *dp;
+{
+  int scan, end, found_quote, delimiter, pass_next, isbrk;
+  char quote_char, *brkchars;
+
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  brkchars = 0;
+  if (rl_completion_word_break_hook)
+    brkchars = (*rl_completion_word_break_hook) ();
+  if (brkchars == 0)
+    brkchars = rl_completer_word_break_characters;
+
+  if (rl_completer_quote_characters)
+    {
+      /* We have a list of characters which can be used in pairs to
+        quote substrings for the completer.  Try to find the start
+        of an unclosed quoted substring. */
+      /* FOUND_QUOTE is set so we know what kind of quotes we found. */
+      for (scan = pass_next = 0; scan < end; scan = MB_NEXTCHAR (rl_line_buffer, scan, 1, MB_FIND_ANY))
+       {
+         if (pass_next)
+           {
+             pass_next = 0;
+             continue;
+           }
+
+         /* Shell-like semantics for single quotes -- don't allow backslash
+            to quote anything in single quotes, especially not the closing
+            quote.  If you don't like this, take out the check on the value
+            of quote_char. */
+         if (quote_char != '\'' && rl_line_buffer[scan] == '\\')
+           {
+             pass_next = 1;
+             found_quote |= RL_QF_BACKSLASH;
+             continue;
+           }
+
+         if (quote_char != '\0')
+           {
+             /* Ignore everything until the matching close quote char. */
+             if (rl_line_buffer[scan] == quote_char)
+               {
+                 /* Found matching close.  Abandon this substring. */
+                 quote_char = '\0';
+                 rl_point = end;
+               }
+           }
+         else if (strchr (rl_completer_quote_characters, rl_line_buffer[scan]))
+           {
+             /* Found start of a quoted substring. */
+             quote_char = rl_line_buffer[scan];
+             rl_point = scan + 1;
+             /* Shell-like quoting conventions. */
+             if (quote_char == '\'')
+               found_quote |= RL_QF_SINGLE_QUOTE;
+             else if (quote_char == '"')
+               found_quote |= RL_QF_DOUBLE_QUOTE;
+             else
+               found_quote |= RL_QF_OTHER_QUOTE;      
+           }
+       }
+    }
+
+  if (rl_point == end && quote_char == '\0')
+    {
+      /* We didn't find an unclosed quoted substring upon which to do
+         completion, so use the word break characters to find the
+         substring on which to complete. */
+      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
+       {
+         scan = rl_line_buffer[rl_point];
+
+         if (strchr (brkchars, scan) == 0)
+           continue;
+
+         /* Call the application-specific function to tell us whether
+            this word break character is quoted and should be skipped. */
+         if (rl_char_is_quoted_p && found_quote &&
+             (*rl_char_is_quoted_p) (rl_line_buffer, rl_point))
+           continue;
+
+         /* Convoluted code, but it avoids an n^2 algorithm with calls
+            to char_is_quoted. */
+         break;
+       }
+    }
+
+  /* If we are at an unquoted word break, then advance past it. */
+  scan = rl_line_buffer[rl_point];
+
+  /* If there is an application-specific function to say whether or not
+     a character is quoted and we found a quote character, let that
+     function decide whether or not a character is a word break, even
+     if it is found in rl_completer_word_break_characters.  Don't bother
+     if we're at the end of the line, though. */
+  if (scan)
+    {
+      if (rl_char_is_quoted_p)
+       isbrk = (found_quote == 0 ||
+               (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) &&
+               strchr (brkchars, scan) != 0;
+      else
+       isbrk = strchr (brkchars, scan) != 0;
+
+      if (isbrk)
+       {
+         /* If the character that caused the word break was a quoting
+            character, then remember it as the delimiter. */
+         if (rl_basic_quote_characters &&
+             strchr (rl_basic_quote_characters, scan) &&
+             (end - rl_point) > 1)
+           delimiter = scan;
+
+         /* If the character isn't needed to determine something special
+            about what kind of completion to perform, then advance past it. */
+         if (rl_special_prefixes == 0 || strchr (rl_special_prefixes, scan) == 0)
+           rl_point++;
+       }
+    }
+
+  if (fp)
+    *fp = found_quote;
+  if (dp)
+    *dp = delimiter;
+
+  return (quote_char);
+}
+
+static char **
+gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
+     char *text;
+     int start, end;
+     rl_compentry_func_t *our_func;
+     int found_quote, quote_char;
+{
+  char **matches, *temp;
+
+  rl_completion_found_quote = found_quote;
+  rl_completion_quote_character = quote_char;
+
+  /* If the user wants to TRY to complete, but then wants to give
+     up and use the default completion function, they set the
+     variable rl_attempted_completion_function. */
+  if (rl_attempted_completion_function)
+    {
+      matches = (*rl_attempted_completion_function) (text, start, end);
+
+      if (matches || rl_attempted_completion_over)
+       {
+         rl_attempted_completion_over = 0;
+         return (matches);
+       }
+    }
+
+  /* Beware -- we're stripping the quotes here.  Do this only if we know
+     we are doing filename completion and the application has defined a
+     filename dequoting function. */
+  /* XXX -- can move this into rl_filename_completion_function and use
+     rl_completion_found_quote and rl_completion_quote_char.  Should be
+     after the directory rewriting hook and maybe the directory completion
+     hook.  Also need to change bash_directory_expansion in the same way
+     as rl_filename_completion_function. */
+  temp = (char *)NULL;
+
+#if 0
+  if (found_quote && our_func == rl_filename_completion_function &&
+      rl_filename_dequoting_function)
+    {
+      /* delete single and double quotes */
+      temp = (*rl_filename_dequoting_function) (text, quote_char);
+      text = temp;     /* not freeing text is not a memory leak */
+    }
+#endif
+
+  matches = rl_completion_matches (text, our_func);
+  FREE (temp);
+  return matches;  
+}
+
+/* Filter out duplicates in MATCHES.  This frees up the strings in
+   MATCHES. */
+static char **
+remove_duplicate_matches (matches)
+     char **matches;
+{
+  char *lowest_common;
+  int i, j, newlen;
+  char dead_slot;
+  char **temp_array;
+
+  /* Sort the items. */
+  for (i = 0; matches[i]; i++)
+    ;
+
+  /* Sort the array without matches[0], since we need it to
+     stay in place no matter what. */
+  if (i)
+    qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  /* Remember the lowest common denominator for it may be unique. */
+  lowest_common = savestring (matches[0]);
+
+  for (i = newlen = 0; matches[i + 1]; i++)
+    {
+      if (strcmp (matches[i], matches[i + 1]) == 0)
+       {
+         free (matches[i]);
+         matches[i] = (char *)&dead_slot;
+       }
+      else
+       newlen++;
+    }
+
+  /* We have marked all the dead slots with (char *)&dead_slot.
+     Copy all the non-dead entries into a new array. */
+  temp_array = (char **)xmalloc ((3 + newlen) * sizeof (char *));
+  for (i = j = 1; matches[i]; i++)
+    {
+      if (matches[i] != (char *)&dead_slot)
+       temp_array[j++] = matches[i];
+    }
+  temp_array[j] = (char *)NULL;
+
+  if (matches[0] != (char *)&dead_slot)
+    free (matches[0]);
+
+  /* Place the lowest common denominator back in [0]. */
+  temp_array[0] = lowest_common;
+
+  /* If there is one string left, and it is identical to the
+     lowest common denominator, then the LCD is the string to
+     insert. */
+  if (j == 2 && strcmp (temp_array[0], temp_array[1]) == 0)
+    {
+      free (temp_array[1]);
+      temp_array[1] = (char *)NULL;
+    }
+  return (temp_array);
+}
+
+/* Find the common prefix of the list of matches, and put it into
+   matches[0]. */
+static int
+compute_lcd_of_matches (match_list, matches, text)
+     char **match_list;
+     int matches;
+     const char *text;
+{
+  register int i, c1, c2, si;
+  int low;             /* Count of max-matched characters. */
+  char *dtext;         /* dequoted TEXT, if needed */
+#if defined (HANDLE_MULTIBYTE)
+  int v;
+  mbstate_t ps1, ps2;
+  wchar_t wc1, wc2;
+#endif
+
+  /* If only one match, just use that.  Otherwise, compare each
+     member of the list with the next, finding out where they
+     stop matching. */
+  if (matches == 1)
+    {
+      match_list[0] = match_list[1];
+      match_list[1] = (char *)NULL;
+      return 1;
+    }
+
+  for (i = 1, low = 100000; i < matches; i++)
+    {
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         memset (&ps1, 0, sizeof (mbstate_t));
+         memset (&ps2, 0, sizeof (mbstate_t));
+       }
+#endif
+      if (_rl_completion_case_fold)
+       {
+         for (si = 0;
+              (c1 = _rl_to_lower(match_list[i][si])) &&
+              (c2 = _rl_to_lower(match_list[i + 1][si]));
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
+               mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
+               wc1 = towlower (wc1);
+               wc2 = towlower (wc2);
+               if (wc1 != wc2)
+                 break;
+               else if (v > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+      else
+       {
+         for (si = 0;
+              (c1 = match_list[i][si]) &&
+              (c2 = match_list[i + 1][si]);
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               mbstate_t ps_back = ps1;
+               if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
+                 break;
+               else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+
+      if (low > si)
+       low = si;
+    }
+
+  /* If there were multiple matches, but none matched up to even the
+     first character, and the user typed something, use that as the
+     value of matches[0]. */
+  if (low == 0 && text && *text)
+    {
+      match_list[0] = (char *)xmalloc (strlen (text) + 1);
+      strcpy (match_list[0], text);
+    }
+  else
+    {
+      match_list[0] = (char *)xmalloc (low + 1);
+
+      /* XXX - this might need changes in the presence of multibyte chars */
+
+      /* If we are ignoring case, try to preserve the case of the string
+        the user typed in the face of multiple matches differing in case. */
+      if (_rl_completion_case_fold)
+       {
+         /* We're making an assumption here:
+               IF we're completing filenames AND
+                  the application has defined a filename dequoting function AND
+                  we found a quote character AND
+                  the application has requested filename quoting
+               THEN
+                  we assume that TEXT was dequoted before checking against
+                  the file system and needs to be dequoted here before we
+                  check against the list of matches
+               FI */
+         dtext = (char *)NULL;
+         if (rl_filename_completion_desired &&
+             rl_filename_dequoting_function &&
+             rl_completion_found_quote &&
+             rl_filename_quoting_desired)
+           {
+             dtext = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+             text = dtext;
+           }
+
+         /* sort the list to get consistent answers. */
+         qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
+
+         si = strlen (text);
+         if (si <= low)
+           {
+             for (i = 1; i <= matches; i++)
+               if (strncmp (match_list[i], text, si) == 0)
+                 {
+                   strncpy (match_list[0], match_list[i], low);
+                   break;
+                 }
+             /* no casematch, use first entry */
+             if (i > matches)
+               strncpy (match_list[0], match_list[1], low);
+           }
+         else
+           /* otherwise, just use the text the user typed. */
+           strncpy (match_list[0], text, low);
+
+         FREE (dtext);
+       }
+      else
+        strncpy (match_list[0], match_list[1], low);
+
+      match_list[0][low] = '\0';
+    }
+
+  return matches;
+}
+
+static int
+postprocess_matches (matchesp, matching_filenames)
+     char ***matchesp;
+     int matching_filenames;
+{
+  char *t, **matches, **temp_matches;
+  int nmatch, i;
+
+  matches = *matchesp;
+
+  if (matches == 0)
+    return 0;
+
+  /* It seems to me that in all the cases we handle we would like
+     to ignore duplicate possiblilities.  Scan for the text to
+     insert being identical to the other completions. */
+  if (rl_ignore_completion_duplicates)
+    {
+      temp_matches = remove_duplicate_matches (matches);
+      free (matches);
+      matches = temp_matches;
+    }
+
+  /* If we are matching filenames, then here is our chance to
+     do clever processing by re-examining the list.  Call the
+     ignore function with the array as a parameter.  It can
+     munge the array, deleting matches as it desires. */
+  if (rl_ignore_some_completions_function && matching_filenames)
+    {
+      for (nmatch = 1; matches[nmatch]; nmatch++)
+       ;
+      (void)(*rl_ignore_some_completions_function) (matches);
+      if (matches == 0 || matches[0] == 0)
+       {
+         FREE (matches);
+         *matchesp = (char **)0;
+         return 0;
+        }
+      else
+       {
+         /* If we removed some matches, recompute the common prefix. */
+         for (i = 1; matches[i]; i++)
+           ;
+         if (i > 1 && i < nmatch)
+           {
+             t = matches[0];
+             compute_lcd_of_matches (matches, i - 1, t);
+             FREE (t);
+           }
+       }
+    }
+
+  *matchesp = matches;
+  return (1);
+}
+
+/* A convenience function for displaying a list of strings in
+   columnar format on readline's output stream.  MATCHES is the list
+   of strings, in argv format, LEN is the number of strings in MATCHES,
+   and MAX is the length of the longest string in MATCHES. */
+void
+rl_display_match_list (matches, len, max)
+     char **matches;
+     int len, max;
+{
+  int count, limit, printed_len, lines;
+  int i, j, k, l;
+  char *temp;
+
+  /* How many items of MAX length can we fit in the screen window? */
+  max += 2;
+  limit = _rl_screenwidth / max;
+  if (limit != 1 && (limit * max == _rl_screenwidth))
+    limit--;
+
+  /* Avoid a possible floating exception.  If max > _rl_screenwidth,
+     limit will be 0 and a divide-by-zero fault will result. */
+  if (limit == 0)
+    limit = 1;
+
+  /* How many iterations of the printing loop? */
+  count = (len + (limit - 1)) / limit;
+
+  /* Watch out for special case.  If LEN is less than LIMIT, then
+     just do the inner printing loop.
+          0 < len <= limit  implies  count = 1. */
+
+  /* Sort the items if they are not already sorted. */
+  if (rl_ignore_completion_duplicates == 0)
+    qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  rl_crlf ();
+
+  lines = 0;
+  if (_rl_print_completions_horizontally == 0)
+    {
+      /* Print the sorted items, up-and-down alphabetically, like ls. */
+      for (i = 1; i <= count; i++)
+       {
+         for (j = 0, l = i; j < limit; j++)
+           {
+             if (l > len || matches[l] == 0)
+               break;
+             else
+               {
+                 temp = printable_part (matches[l]);
+                 printed_len = print_filename (temp, matches[l]);
+
+                 if (j + 1 < limit)
+                   for (k = 0; k < max - printed_len; k++)
+                     putc (' ', rl_outstream);
+               }
+             l += count;
+           }
+         rl_crlf ();
+         lines++;
+         if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
+           {
+             lines = _rl_internal_pager (lines);
+             if (lines < 0)
+               return;
+           }
+       }
+    }
+  else
+    {
+      /* Print the sorted items, across alphabetically, like ls -x. */
+      for (i = 1; matches[i]; i++)
+       {
+         temp = printable_part (matches[i]);
+         printed_len = print_filename (temp, matches[i]);
+         /* Have we reached the end of this line? */
+         if (matches[i+1])
+           {
+             if (i && (limit > 1) && (i % limit) == 0)
+               {
+                 rl_crlf ();
+                 lines++;
+                 if (_rl_page_completions && lines >= _rl_screenheight - 1)
+                   {
+                     lines = _rl_internal_pager (lines);
+                     if (lines < 0)
+                       return;
+                   }
+               }
+             else
+               for (k = 0; k < max - printed_len; k++)
+                 putc (' ', rl_outstream);
+           }
+       }
+      rl_crlf ();
+    }
+}
+
+/* Display MATCHES, a list of matching filenames in argv format.  This
+   handles the simple case -- a single match -- first.  If there is more
+   than one match, we compute the number of strings in the list and the
+   length of the longest string, which will be needed by the display
+   function.  If the application wants to handle displaying the list of
+   matches itself, it sets RL_COMPLETION_DISPLAY_MATCHES_HOOK to the
+   address of a function, and we just call it.  If we're handling the
+   display ourselves, we just call rl_display_match_list.  We also check
+   that the list of matches doesn't exceed the user-settable threshold,
+   and ask the user if he wants to see the list if there are more matches
+   than RL_COMPLETION_QUERY_ITEMS. */
+static void
+display_matches (matches)
+     char **matches;
+{
+  int len, max, i;
+  char *temp;
+
+  /* Move to the last visible line of a possibly-multiple-line command. */
+  _rl_move_vert (_rl_vis_botlin);
+
+  /* Handle simple case first.  What if there is only one answer? */
+  if (matches[1] == 0)
+    {
+      temp = printable_part (matches[0]);
+      rl_crlf ();
+      print_filename (temp, matches[0]);
+      rl_crlf ();
+
+      rl_forced_update_display ();
+      rl_display_fixed = 1;
+
+      return;
+    }
+
+  /* There is more than one answer.  Find out how many there are,
+     and find the maximum printed length of a single entry. */
+  for (max = 0, i = 1; matches[i]; i++)
+    {
+      temp = printable_part (matches[i]);
+      len = fnwidth (temp);
+
+      if (len > max)
+       max = len;
+    }
+
+  len = i - 1;
+
+  /* If the caller has defined a display hook, then call that now. */
+  if (rl_completion_display_matches_hook)
+    {
+      (*rl_completion_display_matches_hook) (matches, len, max);
+      return;
+    }
+       
+  /* If there are many items, then ask the user if she really wants to
+     see them all. */
+  if (rl_completion_query_items > 0 && len >= rl_completion_query_items)
+    {
+      rl_crlf ();
+      fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len);
+      fflush (rl_outstream);
+      if (get_y_or_n (0) == 0)
+       {
+         rl_crlf ();
+
+         rl_forced_update_display ();
+         rl_display_fixed = 1;
+
+         return;
+       }
+    }
+
+  rl_display_match_list (matches, len, max);
+
+  rl_forced_update_display ();
+  rl_display_fixed = 1;
+}
+
+static char *
+make_quoted_replacement (match, mtype, qc)
+     char *match;
+     int mtype;
+     char *qc; /* Pointer to quoting character, if any */
+{
+  int should_quote, do_replace;
+  char *replacement;
+
+  /* If we are doing completion on quoted substrings, and any matches
+     contain any of the completer_word_break_characters, then auto-
+     matically prepend the substring with a quote character (just pick
+     the first one from the list of such) if it does not already begin
+     with a quote string.  FIXME: Need to remove any such automatically
+     inserted quote character when it no longer is necessary, such as
+     if we change the string we are completing on and the new set of
+     matches don't require a quoted substring. */
+  replacement = match;
+
+  should_quote = match && rl_completer_quote_characters &&
+                       rl_filename_completion_desired &&
+                       rl_filename_quoting_desired;
+
+  if (should_quote)
+    should_quote = should_quote && (!qc || !*qc ||
+                    (rl_completer_quote_characters && strchr (rl_completer_quote_characters, *qc)));
+
+  if (should_quote)
+    {
+      /* If there is a single match, see if we need to quote it.
+         This also checks whether the common prefix of several
+        matches needs to be quoted. */
+      should_quote = rl_filename_quote_characters
+                       ? (_rl_strpbrk (match, rl_filename_quote_characters) != 0)
+                       : 0;
+
+      do_replace = should_quote ? mtype : NO_MATCH;
+      /* Quote the replacement, since we found an embedded
+        word break character in a potential match. */
+      if (do_replace != NO_MATCH && rl_filename_quoting_function)
+       replacement = (*rl_filename_quoting_function) (match, do_replace, qc);
+    }
+  return (replacement);
+}
+
+static void
+insert_match (match, start, mtype, qc)
+     char *match;
+     int start, mtype;
+     char *qc;
+{
+  char *replacement;
+  char oqc;
+
+  oqc = qc ? *qc : '\0';
+  replacement = make_quoted_replacement (match, mtype, qc);
+
+  /* Now insert the match. */
+  if (replacement)
+    {
+      /* Don't double an opening quote character. */
+      if (qc && *qc && start && rl_line_buffer[start - 1] == *qc &&
+           replacement[0] == *qc)
+       start--;
+      /* If make_quoted_replacement changed the quoting character, remove
+        the opening quote and insert the (fully-quoted) replacement. */
+      else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc &&
+           replacement[0] != oqc)
+       start--;
+      _rl_replace_text (replacement, start, rl_point - 1);
+      if (replacement != match)
+        free (replacement);
+    }
+}
+
+/* Append any necessary closing quote and a separator character to the
+   just-inserted match.  If the user has specified that directories
+   should be marked by a trailing `/', append one of those instead.  The
+   default trailing character is a space.  Returns the number of characters
+   appended.  If NONTRIVIAL_MATCH is set, we test for a symlink (if the OS
+   has them) and don't add a suffix for a symlink to a directory.  A
+   nontrivial match is one that actually adds to the word being completed.
+   The variable rl_completion_mark_symlink_dirs controls this behavior
+   (it's initially set to the what the user has chosen, indicated by the
+   value of _rl_complete_mark_symlink_dirs, but may be modified by an
+   application's completion function). */
+static int
+append_to_match (text, delimiter, quote_char, nontrivial_match)
+     char *text;
+     int delimiter, quote_char, nontrivial_match;
+{
+  char temp_string[4], *filename;
+  int temp_string_index, s;
+  struct stat finfo;
+
+  temp_string_index = 0;
+  if (quote_char && rl_point && rl_completion_suppress_quote == 0 &&
+      rl_line_buffer[rl_point - 1] != quote_char)
+    temp_string[temp_string_index++] = quote_char;
+
+  if (delimiter)
+    temp_string[temp_string_index++] = delimiter;
+  else if (rl_completion_suppress_append == 0 && rl_completion_append_character)
+    temp_string[temp_string_index++] = rl_completion_append_character;
+
+  temp_string[temp_string_index++] = '\0';
+
+  if (rl_filename_completion_desired)
+    {
+      filename = tilde_expand (text);
+      s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
+               ? LSTAT (filename, &finfo)
+               : stat (filename, &finfo);
+      if (s == 0 && S_ISDIR (finfo.st_mode))
+       {
+         if (_rl_complete_mark_directories /* && rl_completion_suppress_append == 0 */)
+           {
+             /* This is clumsy.  Avoid putting in a double slash if point
+                is at the end of the line and the previous character is a
+                slash. */
+             if (rl_point && rl_line_buffer[rl_point] == '\0' && rl_line_buffer[rl_point - 1] == '/')
+               ;
+             else if (rl_line_buffer[rl_point] != '/')
+               rl_insert_text ("/");
+           }
+       }
+#ifdef S_ISLNK
+      /* Don't add anything if the filename is a symlink and resolves to a
+        directory. */
+      else if (s == 0 && S_ISLNK (finfo.st_mode) &&
+              stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode))
+       ;
+#endif
+      else
+       {
+         if (rl_point == rl_end && temp_string_index)
+           rl_insert_text (temp_string);
+       }
+      free (filename);
+    }
+  else
+    {
+      if (rl_point == rl_end && temp_string_index)
+       rl_insert_text (temp_string);
+    }
+
+  return (temp_string_index);
+}
+
+static void
+insert_all_matches (matches, point, qc)
+     char **matches;
+     int point;
+     char *qc;
+{
+  int i;
+  char *rp;
+
+  rl_begin_undo_group ();
+  /* remove any opening quote character; make_quoted_replacement will add
+     it back. */
+  if (qc && *qc && point && rl_line_buffer[point - 1] == *qc)
+    point--;
+  rl_delete_text (point, rl_point);
+  rl_point = point;
+
+  if (matches[1])
+    {
+      for (i = 1; matches[i]; i++)
+       {
+         rp = make_quoted_replacement (matches[i], SINGLE_MATCH, qc);
+         rl_insert_text (rp);
+         rl_insert_text (" ");
+         if (rp != matches[i])
+           free (rp);
+       }
+    }
+  else
+    {
+      rp = make_quoted_replacement (matches[0], SINGLE_MATCH, qc);
+      rl_insert_text (rp);
+      rl_insert_text (" ");
+      if (rp != matches[0])
+       free (rp);
+    }
+  rl_end_undo_group ();
+}
+
+void
+_rl_free_match_list (matches)
+     char **matches;
+{
+  register int i;
+
+  if (matches == 0)
+    return;
+
+  for (i = 0; matches[i]; i++)
+    free (matches[i]);
+  free (matches);
+}
+
+/* Complete the word at or before point.
+   WHAT_TO_DO says what to do with the completion.
+   `?' means list the possible completions.
+   TAB means do standard completion.
+   `*' means insert all of the possible completions.
+   `!' means to do standard completion, and list all possible completions if
+   there is more than one.
+   `@' means to do standard completion, and list all possible completions if
+   there is more than one and partial completion is not possible. */
+int
+rl_complete_internal (what_to_do)
+     int what_to_do;
+{
+  char **matches;
+  rl_compentry_func_t *our_func;
+  int start, end, delimiter, found_quote, i, nontrivial_lcd;
+  char *text, *saved_line_buffer;
+  char quote_char;
+
+  RL_SETSTATE(RL_STATE_COMPLETING);
+
+  set_completion_defaults (what_to_do);
+
+  saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
+  our_func = rl_completion_entry_function
+               ? rl_completion_entry_function
+               : rl_filename_completion_function;
+  /* We now look backwards for the start of a filename/variable word. */
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  if (rl_point)
+    /* This (possibly) changes rl_point.  If it returns a non-zero char,
+       we know we have an open quote. */
+    quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+  start = rl_point;
+  rl_point = end;
+
+  text = rl_copy_text (start, end);
+  matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
+  /* nontrivial_lcd is set if the common prefix adds something to the word
+     being completed. */
+  nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
+  free (text);
+
+  if (matches == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      return (0);
+    }
+
+  /* If we are matching filenames, the attempted completion function will
+     have set rl_filename_completion_desired to a non-zero value.  The basic
+     rl_filename_completion_function does this. */
+  i = rl_filename_completion_desired;
+
+  if (postprocess_matches (&matches, i) == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      return (0);
+    }
+
+  switch (what_to_do)
+    {
+    case TAB:
+    case '!':
+    case '@':
+      /* Insert the first match with proper quoting. */
+      if (*matches[0])
+       insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+
+      /* If there are more matches, ring the bell to indicate.
+        If we are in vi mode, Posix.2 says to not ring the bell.
+        If the `show-all-if-ambiguous' variable is set, display
+        all the matches immediately.  Otherwise, if this was the
+        only match, and we are hacking files, check the file to
+        see if it was a directory.  If so, and the `mark-directories'
+        variable is set, add a '/' to the name.  If not, and we
+        are at the end of the line, then add a space.  */
+      if (matches[1])
+       {
+         if (what_to_do == '!')
+           {
+             display_matches (matches);
+             break;
+           }
+         else if (what_to_do == '@')
+           {
+             if (nontrivial_lcd == 0)
+               display_matches (matches);
+             break;
+           }
+         else if (rl_editing_mode != vi_mode)
+           rl_ding (); /* There are other matches remaining. */
+       }
+      else
+       append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
+
+      break;
+
+    case '*':
+      insert_all_matches (matches, start, &quote_char);
+      break;
+
+    case '?':
+      display_matches (matches);
+      break;
+
+    default:
+      fprintf (stderr, "\r\nreadline: bad value %d for what_to_do in rl_complete\n", what_to_do);
+      rl_ding ();
+      FREE (saved_line_buffer);
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      return 1;
+    }
+
+  _rl_free_match_list (matches);
+
+  /* Check to see if the line has changed through all of this manipulation. */
+  if (saved_line_buffer)
+    {
+      completion_changed_buffer = strcmp (rl_line_buffer, saved_line_buffer) != 0;
+      free (saved_line_buffer);
+    }
+
+  RL_UNSETSTATE(RL_STATE_COMPLETING);
+  return 0;
+}
+
+/***************************************************************/
+/*                                                            */
+/*  Application-callable completion match generator functions  */
+/*                                                            */
+/***************************************************************/
+
+/* Return an array of (char *) which is a list of completions for TEXT.
+   If there are no completions, return a NULL pointer.
+   The first entry in the returned array is the substitution for TEXT.
+   The remaining entries are the possible completions.
+   The array is terminated with a NULL pointer.
+
+   ENTRY_FUNCTION is a function of two args, and returns a (char *).
+     The first argument is TEXT.
+     The second is a state argument; it should be zero on the first call, and
+     non-zero on subsequent calls.  It returns a NULL pointer to the caller
+     when there are no more matches.
+ */
+char **
+rl_completion_matches (text, entry_function)
+     const char *text;
+     rl_compentry_func_t *entry_function;
+{
+  /* Number of slots in match_list. */
+  int match_list_size;
+
+  /* The list of matches. */
+  char **match_list;
+
+  /* Number of matches actually found. */
+  int matches;
+
+  /* Temporary string binder. */
+  char *string;
+
+  matches = 0;
+  match_list_size = 10;
+  match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
+  match_list[1] = (char *)NULL;
+
+  while (string = (*entry_function) (text, matches))
+    {
+      if (matches + 1 == match_list_size)
+       match_list = (char **)xrealloc
+         (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
+
+      match_list[++matches] = string;
+      match_list[matches + 1] = (char *)NULL;
+    }
+
+  /* If there were any matches, then look through them finding out the
+     lowest common denominator.  That then becomes match_list[0]. */
+  if (matches)
+    compute_lcd_of_matches (match_list, matches, text);
+  else                         /* There were no matches. */
+    {
+      free (match_list);
+      match_list = (char **)NULL;
+    }
+  return (match_list);
+}
+
+/* A completion function for usernames.
+   TEXT contains a partial username preceded by a random
+   character (usually `~').  */
+char *
+rl_username_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT)
+  return (char *)NULL;
+#else /* !__WIN32__ && !__OPENNT) */
+  static char *username = (char *)NULL;
+  static struct passwd *entry;
+  static int namelen, first_char, first_char_loc;
+  char *value;
+
+  if (state == 0)
+    {
+      FREE (username);
+
+      first_char = *text;
+      first_char_loc = first_char == '~';
+
+      username = savestring (&text[first_char_loc]);
+      namelen = strlen (username);
+      setpwent ();
+    }
+
+#if defined (HAVE_GETPWENT)
+  while (entry = getpwent ())
+    {
+      /* Null usernames should result in all users as possible completions. */
+      if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
+       break;
+    }
+#endif
+
+  if (entry == 0)
+    {
+#if defined (HAVE_GETPWENT)
+      endpwent ();
+#endif
+      return ((char *)NULL);
+    }
+  else
+    {
+      value = (char *)xmalloc (2 + strlen (entry->pw_name));
+
+      *value = *text;
+
+      strcpy (value + first_char_loc, entry->pw_name);
+
+      if (first_char == '~')
+       rl_filename_completion_desired = 1;
+
+      return (value);
+    }
+#endif /* !__WIN32__ && !__OPENNT */
+}
+
+/* Okay, now we write the entry_function for filename completion.  In the
+   general case.  Note that completion in the shell is a little different
+   because of all the pathnames that must be followed when looking up the
+   completion for a command. */
+char *
+rl_filename_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static DIR *directory = (DIR *)NULL;
+  static char *filename = (char *)NULL;
+  static char *dirname = (char *)NULL;
+  static char *users_dirname = (char *)NULL;
+  static int filename_len;
+  char *temp;
+  int dirlen;
+  struct dirent *entry;
+
+  /* If we don't have any state, then do some initialization. */
+  if (state == 0)
+    {
+      /* If we were interrupted before closing the directory or reading
+        all of its contents, close it. */
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      FREE (dirname);
+      FREE (filename);
+      FREE (users_dirname);
+
+      filename = savestring (text);
+      if (*text == 0)
+       text = ".";
+      dirname = savestring (text);
+
+      temp = strrchr (dirname, '/');
+
+#if defined (__MSDOS__)
+      /* special hack for //X/... */
+      if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
+        temp = strrchr (dirname + 3, '/');
+#endif
+
+      if (temp)
+       {
+         strcpy (filename, ++temp);
+         *temp = '\0';
+       }
+#if defined (__MSDOS__)
+      /* searches from current directory on the drive */
+      else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
+        {
+          strcpy (filename, dirname + 2);
+          dirname[2] = '\0';
+        }
+#endif
+      else
+       {
+         dirname[0] = '.';
+         dirname[1] = '\0';
+       }
+
+      /* We aren't done yet.  We also support the "~user" syntax. */
+
+      /* Save the version of the directory that the user typed. */
+      users_dirname = savestring (dirname);
+
+      if (*dirname == '~')
+       {
+         temp = tilde_expand (dirname);
+         free (dirname);
+         dirname = temp;
+       }
+
+      if (rl_directory_rewrite_hook)
+       (*rl_directory_rewrite_hook) (&dirname);
+
+      /* The directory completion hook should perform any necessary
+        dequoting. */
+      if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
+       {
+         free (users_dirname);
+         users_dirname = savestring (dirname);
+       }
+      else if (rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         temp = (*rl_filename_dequoting_function) (users_dirname, rl_completion_quote_character);
+         free (users_dirname);
+         users_dirname = temp;
+       }
+      directory = opendir (dirname);
+
+      /* Now dequote a non-null filename. */
+      if (filename && *filename && rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         temp = (*rl_filename_dequoting_function) (filename, rl_completion_quote_character);
+         free (filename);
+         filename = temp;
+       }
+      filename_len = strlen (filename);
+
+      rl_filename_completion_desired = 1;
+    }
+
+  /* At this point we should entertain the possibility of hacking wildcarded
+     filenames, like /usr/man/man<WILD>/te<TAB>.  If the directory name
+     contains globbing characters, then build an array of directories, and
+     then map over that list while completing. */
+  /* *** UNIMPLEMENTED *** */
+
+  /* Now that we have some state, we can read the directory. */
+
+  entry = (struct dirent *)NULL;
+  while (directory && (entry = readdir (directory)))
+    {
+      /* Special case for no filename.  If the user has disabled the
+         `match-hidden-files' variable, skip filenames beginning with `.'.
+        All other entries except "." and ".." match. */
+      if (filename_len == 0)
+       {
+         if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
+           continue;
+
+         if (entry->d_name[0] != '.' ||
+              (entry->d_name[1] &&
+                (entry->d_name[1] != '.' || entry->d_name[2])))
+           break;
+       }
+      else
+       {
+         /* Otherwise, if these match up to the length of filename, then
+            it is a match. */
+         if (_rl_completion_case_fold)
+           {
+             if ((_rl_to_lower (entry->d_name[0]) == _rl_to_lower (filename[0])) &&
+                 (((int)D_NAMLEN (entry)) >= filename_len) &&
+                 (_rl_strnicmp (filename, entry->d_name, filename_len) == 0))
+               break;
+           }
+         else
+           {
+             if ((entry->d_name[0] == filename[0]) &&
+                 (((int)D_NAMLEN (entry)) >= filename_len) &&
+                 (strncmp (filename, entry->d_name, filename_len) == 0))
+               break;
+           }
+       }
+    }
+
+  if (entry == 0)
+    {
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      if (dirname)
+       {
+         free (dirname);
+         dirname = (char *)NULL;
+       }
+      if (filename)
+       {
+         free (filename);
+         filename = (char *)NULL;
+       }
+      if (users_dirname)
+       {
+         free (users_dirname);
+         users_dirname = (char *)NULL;
+       }
+
+      return (char *)NULL;
+    }
+  else
+    {
+      /* dirname && (strcmp (dirname, ".") != 0) */
+      if (dirname && (dirname[0] != '.' || dirname[1]))
+       {
+         if (rl_complete_with_tilde_expansion && *users_dirname == '~')
+           {
+             dirlen = strlen (dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, dirname);
+             /* Canonicalization cuts off any final slash present.  We
+                may need to add it back. */
+             if (dirname[dirlen - 1] != '/')
+               {
+                 temp[dirlen++] = '/';
+                 temp[dirlen] = '\0';
+               }
+           }
+         else
+           {
+             dirlen = strlen (users_dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, users_dirname);
+             /* Make sure that temp has a trailing slash here. */
+             if (users_dirname[dirlen - 1] != '/')
+               temp[dirlen++] = '/';
+           }
+
+         strcpy (temp + dirlen, entry->d_name);
+       }
+      else
+       temp = savestring (entry->d_name);
+
+      return (temp);
+    }
+}
+
+/* An initial implementation of a menu completion function a la tcsh.  The
+   first time (if the last readline command was not rl_menu_complete), we
+   generate the list of matches.  This code is very similar to the code in
+   rl_complete_internal -- there should be a way to combine the two.  Then,
+   for each item in the list of matches, we insert the match in an undoable
+   fashion, with the appropriate character appended (this happens on the
+   second and subsequent consecutive calls to rl_menu_complete).  When we
+   hit the end of the match list, we restore the original unmatched text,
+   ring the bell, and reset the counter to zero. */
+int
+rl_menu_complete (count, ignore)
+     int count, ignore;
+{
+  rl_compentry_func_t *our_func;
+  int matching_filenames, found_quote;
+
+  static char *orig_text;
+  static char **matches = (char **)0;
+  static int match_list_index = 0;
+  static int match_list_size = 0;
+  static int orig_start, orig_end;
+  static char quote_char;
+  static int delimiter;
+
+  /* The first time through, we generate the list of matches and set things
+     up to insert them. */
+  if (rl_last_func != rl_menu_complete)
+    {
+      /* Clean up from previous call, if any. */
+      FREE (orig_text);
+      if (matches)
+       _rl_free_match_list (matches);
+
+      match_list_index = match_list_size = 0;
+      matches = (char **)NULL;
+
+      /* Only the completion entry function can change these. */
+      set_completion_defaults ('%');
+
+      our_func = rl_completion_entry_function
+                       ? rl_completion_entry_function
+                       : rl_filename_completion_function;
+
+      /* We now look backwards for the start of a filename/variable word. */
+      orig_end = rl_point;
+      found_quote = delimiter = 0;
+      quote_char = '\0';
+
+      if (rl_point)
+       /* This (possibly) changes rl_point.  If it returns a non-zero char,
+          we know we have an open quote. */
+       quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+      orig_start = rl_point;
+      rl_point = orig_end;
+
+      orig_text = rl_copy_text (orig_start, orig_end);
+      matches = gen_completion_matches (orig_text, orig_start, orig_end,
+                                       our_func, found_quote, quote_char);
+
+      /* If we are matching filenames, the attempted completion function will
+        have set rl_filename_completion_desired to a non-zero value.  The basic
+        rl_filename_completion_function does this. */
+      matching_filenames = rl_filename_completion_desired;
+
+      if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         FREE (orig_text);
+         orig_text = (char *)0;
+         completion_changed_buffer = 0;
+          return (0);
+       }
+
+      for (match_list_size = 0; matches[match_list_size]; match_list_size++)
+        ;
+      /* matches[0] is lcd if match_list_size > 1, but the circular buffer
+        code below should take care of it. */
+    }
+
+  /* Now we have the list of matches.  Replace the text between
+     rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
+     matches[match_list_index], and add any necessary closing char. */
+
+  if (matches == 0 || match_list_size == 0) 
+    {
+      rl_ding ();
+      FREE (matches);
+      matches = (char **)0;
+      completion_changed_buffer = 0;
+      return (0);
+    }
+
+  match_list_index += count;
+  if (match_list_index < 0)
+    match_list_index += match_list_size;
+  else
+    match_list_index %= match_list_size;
+
+  if (match_list_index == 0 && match_list_size > 1)
+    {
+      rl_ding ();
+      insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
+    }
+  else
+    {
+      insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
+      append_to_match (matches[match_list_index], delimiter, quote_char,
+                      strcmp (orig_text, matches[match_list_index]));
+    }
+
+  completion_changed_buffer = 1;
+  return (0);
+}
index 62d7b01cd332aee8774b8214cb4bf57889bb9ed0..be72f8f4f49aa53e7a2750de67fc5735ceebefda 100644 (file)
@@ -83,6 +83,14 @@ static int inv_lbsize, vis_lbsize;
    by backing up or outputting a carriage return and moving forward. */
 #define CR_FASTER(new, cur) (((new) + 1) < ((cur) - (new)))
 
+/* _rl_last_c_pos is an absolute cursor position in multibyte locales and a
+   buffer index in others.  This macro is used when deciding whether the
+   current cursor position is in the middle of a prompt string containing
+   invisible characters. */
+#define PROMPT_ENDING_INDEX \
+  ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? prompt_physical_chars : prompt_last_invisible)
+  
+
 /* **************************************************************** */
 /*                                                                 */
 /*                     Display stuff                               */
@@ -969,7 +977,7 @@ rl_redisplay ()
             invisible character in the prompt string. */
          nleft = prompt_visible_length + wrap_offset;
          if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
-             _rl_last_c_pos <= prompt_last_invisible && local_prompt)
+             _rl_last_c_pos <= PROMPT_ENDING_INDEX && local_prompt)
            {
 #if defined (__MSDOS__)
              putc ('\r', rl_outstream);
@@ -1403,7 +1411,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
   od = ofd - old;      /* index of first difference in visible line */
   if (current_line == 0 && !_rl_horizontal_scroll_mode &&
       _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 &&
-      od >= lendiff && _rl_last_c_pos <= prompt_last_invisible)
+      od >= lendiff && _rl_last_c_pos <= PROMPT_ENDING_INDEX)
     {
 #if defined (__MSDOS__)
       putc ('\r', rl_outstream);
index 8fcfaeb5033ff73dbf21948d6db90bb563f6476d..1e96b1138ff58e6a0094e09187f08fb038cf841f 100644 (file)
@@ -1670,6 +1670,9 @@ the directory portion of the pathname the user typed.
 It returns an integer that should be non-zero if the function modifies
 its directory argument.
 It could be used to expand symbolic links or shell variables in pathnames.
+At the least, even if no other expansion is performed, this function should
+remove any quote characters from the directory name, because its result will
+be passed directly to @code{opendir()}.
 @end deftypevar
 
 @deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook
index 6f2e2ee2d345271afa81771f6ebc368d0d4d564c..8fcfaeb5033ff73dbf21948d6db90bb563f6476d 100644 (file)
@@ -1033,8 +1033,10 @@ pending input has not already been read with @code{rl_read_key()}.
 @deftypefun int rl_set_keyboard_input_timeout (int u)
 While waiting for keyboard input in @code{rl_read_key()}, Readline will
 wait for @var{u} microseconds for input before calling any function
-assigned to @code{rl_event_hook}.  The default waiting period is
-one-tenth of a second.  Returns the old timeout value.
+assigned to @code{rl_event_hook}.  @var{u} must be greater than or equal
+to zero (a zero-length timeout is equivalent to a poll).
+The default waiting period is one-tenth of a second.
+Returns the old timeout value.
 @end deftypefun
 
 @node Terminal Management
index 32e2b3130456f6564cb93869387eb95cb4ae6ae0..cda4fea8a4efeb1b4e5ab21d97a7f4984ae9f054 100644 (file)
@@ -88,7 +88,7 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \
           shquote.c strtrans.c strindex.c snprintf.c mailstat.c \
           fmtulong.c fmtullong.c fmtumax.c shmatch.c strnlen.c \
           strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \
-          mktime.c strftime.c xstrchr.c zcatfd.c winsize.c
+          mktime.c strftime.c xstrchr.c zcatfd.c winsize.c eaccess.c
 
 # The header files for this library.
 HSOURCES = 
@@ -96,7 +96,7 @@ HSOURCES =
 # The object files contained in $(LIBRARY_NAME)
 LIBOBJS = @LIBOBJS@
 OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \
-         itos.o zread.o zwrite.o shtty.o shmatch.o \
+         itos.o zread.o zwrite.o shtty.o shmatch.o eaccess.o \
          netconn.o netopen.o timeval.o makepath.o pathcanon.o \
          pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \
          strtrans.o strindex.o snprintf.o mailstat.o fmtulong.o \
@@ -134,6 +134,7 @@ ${BUILD_DIR}/version.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
 # rules for losing makes, like SunOS
 clktck.o: clktck.c
 clock.o: clock.c
+eaccess.o: eaccess.c
 fmtullong.o: fmtullong.c
 fmtulong.o: fmtulong.c
 fmtumax.o: fmtumax.c
@@ -191,6 +192,7 @@ strtoull.o: strtol.c
 # all files in the library depend on config.h
 clktck.o: ${BUILD_DIR}/config.h
 clock.o: ${BUILD_DIR}/config.h
+eaccess.o: ${BUILD_DIR}/config.h
 fmtullong.o: ${BUILD_DIR}/config.h
 fmtulong.o: ${BUILD_DIR}/config.h
 fmtumax.o: ${BUILD_DIR}/config.h
@@ -327,6 +329,19 @@ rename.o: ${BASHINCDIR}/posixstat.h
 setlinebuf.o: ${topdir}/xmalloc.h ${topdir}/bashansi.h
 setlinebuf.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/stdc.h
 
+eaccess.o: ${topdir}/bashtypes.h
+eaccess.o: ${BASHINCDIR}/posixstat.h
+eaccess.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+eaccess.o: ${BASHINCDIR}/filecntl.h
+eaccess.o: ${BASHINCDIR}/stdc.h
+eaccess.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+eaccess.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+eaccess.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+eaccess.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+eaccess.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+eaccess.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+eaccess.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
 shquote.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
 shquote.o: ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h
 
diff --git a/lib/sh/Makefile.in~ b/lib/sh/Makefile.in~
new file mode 100644 (file)
index 0000000..f40474a
--- /dev/null
@@ -0,0 +1,470 @@
+#
+# Makefile for the Bash library
+#
+#
+# Copyright (C) 1998-2005 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+PACKAGE = @PACKAGE_NAME@
+VERSION = @PACKAGE_VERSION@
+
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+
+srcdir = @srcdir@
+VPATH = .:@srcdir@
+topdir = @top_srcdir@
+BUILD_DIR = @BUILD_DIR@
+
+LIBBUILD = ${BUILD_DIR}/lib
+
+BASHINCDIR = ${topdir}/include
+
+INTL_LIBSRC = ${topdir}/lib/intl
+INTL_BUILDDIR = ${LIBBUILD}/intl
+INTL_INC = @INTL_INC@
+LIBINTL_H = @LIBINTL_H@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
+CC = @CC@
+RANLIB = @RANLIB@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+RM = rm -f
+CP = cp
+MV = mv
+
+SHELL = @MAKE_SHELL@
+
+CFLAGS = @CFLAGS@
+LOCAL_CFLAGS = @LOCAL_CFLAGS@ ${DEBUG}
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@ @LOCAL_LDFLAGS@
+
+PROFILE_FLAGS = @PROFILE_FLAGS@
+
+DEFS = @DEFS@
+LOCAL_DEFS = @LOCAL_DEFS@
+
+INCLUDES = -I. -I../.. -I$(topdir) -I$(topdir)/lib -I$(BASHINCDIR) -I$(srcdir) $(INTL_INC)
+
+CCFLAGS = ${PROFILE_FLAGS} ${INCLUDES} $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) \
+         $(CFLAGS) $(CPPFLAGS) 
+
+GCC_LINT_FLAGS = -Wall -Wshadow -Wpointer-arith -Wcast-qual \
+                -Wcast-align -Wstrict-prototypes -Wconversion \
+                -Wmissing-prototypes -Wtraditional -Wredundant-decls -pedantic
+
+.c.o:
+       $(CC) -c $(CCFLAGS) $<
+
+# The name of the library target.
+LIBRARY_NAME = libsh.a
+
+# The C code source files for this library.
+CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \
+          strcasecmp.c strerror.c strtod.c strtol.c strtoul.c \
+          vprint.c itos.c rename.c zread.c zwrite.c shtty.c \
+          inet_aton.c netconn.c netopen.c strpbrk.c timeval.c makepath.c \
+          pathcanon.c pathphys.c tmpfile.c stringlist.c stringvec.c spell.c \
+          shquote.c strtrans.c strindex.c snprintf.c mailstat.c \
+          fmtulong.c fmtullong.c fmtumax.c shmatch.c strnlen.c \
+          strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \
+          mktime.c strftime.c xstrchr.c zcatfd.c winsize.c shaccess.c
+
+# The header files for this library.
+HSOURCES = 
+
+# The object files contained in $(LIBRARY_NAME)
+LIBOBJS = @LIBOBJS@
+OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \
+         itos.o zread.o zwrite.o shtty.o shmatch.o shaccess.o \
+         netconn.o netopen.o timeval.o makepath.o pathcanon.o \
+         pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \
+         strtrans.o strindex.o snprintf.o mailstat.o fmtulong.o \
+         fmtullong.o fmtumax.o xstrchr.o zcatfd.o winsize.o ${LIBOBJS}
+
+SUPPORT = Makefile
+
+all: $(LIBRARY_NAME)
+
+$(LIBRARY_NAME): $(OBJECTS)
+       $(RM) $@
+       $(AR) $(ARFLAGS) $@ $(OBJECTS)
+       -test -n "$(RANLIB)" && $(RANLIB) $@
+
+force:
+
+# The rule for 'includes' is written funny so that the if statement
+# always returns TRUE unless there really was an error installing the
+# include files.
+install:
+
+clean:
+       $(RM) $(OBJECTS) $(LIBRARY_NAME)
+
+realclean distclean maintainer-clean: clean
+       $(RM) Makefile
+
+mostlyclean: clean
+
+# Dependencies
+
+${BUILD_DIR}/version.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
+       -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} version.h )
+
+# rules for losing makes, like SunOS
+clktck.o: clktck.c
+clock.o: clock.c
+fmtullong.o: fmtullong.c
+fmtulong.o: fmtulong.c
+fmtumax.o: fmtumax.c
+getcwd.o: getcwd.c
+getenv.o: getenv.c
+inet_aton.o: inet_aton.c
+itos.o: itos.c
+mailstat.o: mailstat.c
+makepath.o: makepath.c
+memset.o: memset.c
+mktime.o: mktime.c
+netconn.o: netconn.c
+netopen.o: netopen.c
+oslib.o: oslib.c
+pathcanon.o: pathcanon.c
+pathphys.o: pathphys.c
+rename.o: rename.c
+setlinebuf.o: setlinebuf.c
+shaccess.o: shaccess.c
+shquote.o: shquote.c
+shtty.o: shtty.c
+snprintf.o: snprintf.c
+spell.o: spell.c
+strcasecmp.o: strcasecmp.c
+strerror.o: strerror.c
+strftime.o: strftime.c
+strindex.o: strindex.c
+stringlist.o: stringlist.c
+stringvec.o: stringvec.c
+strnlen.o: strnlen.c
+strpbrk.o: strpbrk.c
+strtod.o: strtod.c
+strtoimax.o: strtoimax.c
+strtol.o: strtol.c
+strtoll.o: strtoll.c
+strtoul.o: strtoul.c
+strtoull.o: strtoull.c
+strtoumax.o: strtoumax.c
+strtrans.o: strtrans.c
+times.o: times.c
+timeval.o: timeval.c
+tmpfile.o: tmpfile.c
+vprint.o: vprint.c
+xstrchr.o: xstrchr.c
+zcatfd.o: zcatfd.c
+zread.o: zread.c
+zwrite.o: zwrite.c
+
+# dependencies for c files that include other c files
+fmtullong.o: fmtulong.c
+fmtumax.o: fmtulong.c
+strtoll.o: strtol.c
+strtoul.o: strtol.c
+strtoull.o: strtol.c
+
+# all files in the library depend on config.h
+clktck.o: ${BUILD_DIR}/config.h
+clock.o: ${BUILD_DIR}/config.h
+fmtullong.o: ${BUILD_DIR}/config.h
+fmtulong.o: ${BUILD_DIR}/config.h
+fmtumax.o: ${BUILD_DIR}/config.h
+getcwd.o: ${BUILD_DIR}/config.h
+getenv.o: ${BUILD_DIR}/config.h
+inet_aton.o: ${BUILD_DIR}/config.h
+itos.o: ${BUILD_DIR}/config.h
+mailstat.o: ${BUILD_DIR}/config.h
+makepath.o: ${BUILD_DIR}/config.h
+memset.o: ${BUILD_DIR}/config.h
+mktime.o: ${BUILD_DIR}/config.h
+netconn.o: ${BUILD_DIR}/config.h
+netopen.o: ${BUILD_DIR}/config.h
+oslib.o: ${BUILD_DIR}/config.h
+pathcanon.o: ${BUILD_DIR}/config.h
+pathphys.o: ${BUILD_DIR}/config.h
+rename.o: ${BUILD_DIR}/config.h
+setlinebuf.o: ${BUILD_DIR}/config.h
+shaccess.o: ${BUILD_DIR}/config.h
+shquote.o: ${BUILD_DIR}/config.h
+shtty.o: ${BUILD_DIR}/config.h
+snprintf.o: ${BUILD_DIR}/config.h
+spell.o: ${BUILD_DIR}/config.h
+strcasecmp.o: ${BUILD_DIR}/config.h
+strerror.o: ${BUILD_DIR}/config.h
+strftime.o: ${BUILD_DIR}/config.h
+strindex.o: ${BUILD_DIR}/config.h
+stringlist.o: ${BUILD_DIR}/config.h
+stringvec.o: ${BUILD_DIR}/config.h
+strnlen.o: ${BUILD_DIR}/config.h
+strpbrk.o: ${BUILD_DIR}/config.h
+strtod.o: ${BUILD_DIR}/config.h
+strtoimax.o: ${BUILD_DIR}/config.h
+strtol.o: ${BUILD_DIR}/config.h
+strtoll.o: ${BUILD_DIR}/config.h
+strtoul.o: ${BUILD_DIR}/config.h
+strtoull.o: ${BUILD_DIR}/config.h
+strtoumax.o: ${BUILD_DIR}/config.h
+strtrans.o: ${BUILD_DIR}/config.h
+times.o: ${BUILD_DIR}/config.h
+timeval.o: ${BUILD_DIR}/config.h
+tmpfile.o: ${BUILD_DIR}/config.h
+vprint.o: ${BUILD_DIR}/config.h
+xstrchr.o: ${BUILD_DIR}/config.h
+zcatfd.o: ${BUILD_DIR}/config.h
+zread.o: ${BUILD_DIR}/config.h
+zwrite.o: ${BUILD_DIR}/config.h
+
+clktck.o: ${topdir}/bashtypes.h
+
+getcwd.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+getcwd.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/posixdir.h
+getcwd.o: ${BASHINCDIR}/memalloc.h ${BASHINCDIR}/ansi_stdlib.h
+
+getenv.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+getenv.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+getenv.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+getenv.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+getenv.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+getenv.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+getenv.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+getenv.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+getenv.o: ${BUILD_DIR}/version.h
+
+inet_aton.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+inet_aton.o: ${BASHINCDIR}/stdc.h
+
+itos.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+itos.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+itos.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+itos.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+itos.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+itos.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+itos.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+itos.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+makepath.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+makepath.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+makepath.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+makepath.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+makepath.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+makepath.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+makepath.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+makepath.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+netconn.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+netconn.o: ${topdir}/bashtypes.h
+
+netopen.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h
+netopen.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+netopen.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+netopen.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+netopen.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+netopen.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+netopen.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+netopen.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+netopen.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+
+oslib.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+oslib.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+oslib.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+oslib.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+oslib.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+oslib.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+oslib.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+oslib.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+oslib.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+oslib.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+pathcanon.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+pathcanon.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+pathcanon.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+pathcanon.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+pathcanon.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+pathcanon.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+pathcanon.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+pathcanon.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+pathcanon.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+pathcanon.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+pathphys.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
+pathphys.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+pathphys.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+pathphys.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+pathphys.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+pathphys.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+pathphys.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+pathphys.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+pathphys.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
+pathphys.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+rename.o: ${topdir}/bashtypes.h ${BASHINCDIR}/stdc.h
+rename.o: ${BASHINCDIR}/posixstat.h
+
+setlinebuf.o: ${topdir}/xmalloc.h ${topdir}/bashansi.h
+setlinebuf.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/stdc.h
+
+shaccess.o: ${topdir}/bashtypes.h
+shaccess.o: ${BASHINCDIR}/posixstat.h
+shaccess.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+shaccess.o: ${BASHINCDIR}/filecntl.h
+shaccess.o: ${BASHINCDIR}/stdc.h
+shaccess.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+shaccess.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+shaccess.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+shaccess.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+shaccess.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+shaccess.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+shaccess.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+shquote.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
+shquote.o: ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h
+
+shtty.o: ${BASHINCDIR}/shtty.h
+shtty.o: ${BASHINCDIR}/stdc.h
+
+snprintf.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h ${topdir}/xmalloc.h
+snprintf.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+snprintf.o: ${BASHINCDIR}/typemax.h
+
+spell.o: ${topdir}/bashtypes.h
+spell.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/posixdir.h
+spell.o: ${BASHINCDIR}/ansi_stdlib.h
+
+strcasecmp.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
+strcasecmp.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+strerror.o: ${topdir}/bashtypes.h
+strerror.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+strerror.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+strerror.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+strerror.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+strerror.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+strerror.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+strerror.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+strindex.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
+strindex.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+stringlist.o: ${topdir}/bashansi.h
+stringlist.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+stringlist.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+stringlist.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+stringlist.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+stringlist.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+stringlist.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+stringlist.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+stringvec.o: ${topdir}/bashansi.h ${BASHINCDIR}/chartypes.h
+stringvec.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+stringvec.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+stringvec.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+stringvec.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+stringvec.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+stringvec.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+stringvec.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+strnlen.o: ${BASHINCDIR}/stdc.h
+
+strpbrk.o: ${BASHINCDIR}/stdc.h
+
+strtod.o: ${topdir}/bashansi.h
+strtod.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+
+strtoimax.o: ${BASHINCDIR}/stdc.h
+
+strtol.o: ${topdir}/bashansi.h
+strtol.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtol.o: ${BASHINCDIR}/typemax.h
+
+strtoll.o: ${topdir}/bashansi.h
+strtoll.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtoll.o: ${BASHINCDIR}/typemax.h
+
+strtoul.o: ${topdir}/bashansi.h
+strtoul.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtoul.o: ${BASHINCDIR}/typemax.h
+
+strtoull.o: ${topdir}/bashansi.h
+strtoull.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtoull.o: ${BASHINCDIR}/typemax.h
+
+strtoumax.o: ${BASHINCDIR}/stdc.h
+
+strtrans.o: ${topdir}/bashansi.h
+strtrans.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+strtrans.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
+strtrans.o: ${topdir}/command.h ${BASHINCDIR}/stdc.h ${topdir}/error.h
+strtrans.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir}/conftypes.h
+strtrans.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
+strtrans.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
+strtrans.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
+strtrans.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+
+times.o: ${BASHINCDIR}/systimes.h
+times.o: ${BASHINCDIR}/posixtime.h
+
+timeval.o: ${BASHINCDIR}/posixtime.h
+
+tmpfile.o: ${topdir}/bashtypes.h
+tmpfile.o: ${BASHINCDIR}/posixstat.h
+tmpfile.o: ${BASHINCDIR}/filecntl.h
+
+clock.o: ${BASHINCDIR}/posixtime.h
+
+mailstat.o: ${topdir}/bashansi.h
+mailstat.o: ${topdir}/bashtypes.h
+mailstat.o: ${BASHINCDIR}/ansi_stdlib.h
+mailstat.o: ${BASHINCDIR}/posixstat.h
+mailstat.o: ${BASHINCDIR}/posixdir.h
+mailstat.o: ${BASHINCDIR}/maxpath.h
+
+fmtulong.o: ${topdir}/bashansi.h
+fmtulong.o: ${BASHINCDIR}/ansi_stdlib.h
+fmtulong.o: ${BASHINCDIR}/chartypes.h
+fmtulong.o: ${BASHINCDIR}/stdc.h
+fmtulong.o: ${BASHINCDIR}/typemax.h
+fmtulong.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
+
+fmtullong.o: ${topdir}/bashansi.h
+fmtullong.o: ${BASHINCDIR}/ansi_stdlib.h
+fmtullong.o: ${BASHINCDIR}/chartypes.h
+fmtullong.o: ${BASHINCDIR}/stdc.h
+fmtullong.o: ${BASHINCDIR}/typemax.h
+fmtullong.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
+
+fmtumax.o: ${topdir}/bashansi.h
+fmtumax.o: ${BASHINCDIR}/ansi_stdlib.h
+fmtumax.o: ${BASHINCDIR}/chartypes.h
+fmtumax.o: ${BASHINCDIR}/stdc.h
+fmtumax.o: ${BASHINCDIR}/typemax.h
+fmtumax.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
+
+xstrchr.o: ${topdir}/bashansi.h
+xstrchr.o: ${BASHINCDIR}/ansi_stdlib.h
+xstrchr.o: ${BASHINCDIR}/shmbutil.h
diff --git a/lib/sh/eaccess.c b/lib/sh/eaccess.c
new file mode 100644 (file)
index 0000000..1cff692
--- /dev/null
@@ -0,0 +1,222 @@
+/* eaccess.c - eaccess replacement for the shell, plus other access functions. */
+
+/* Copyright (C) 2006 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include "bashtypes.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "bashansi.h"
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if !defined (_POSIX_VERSION) && defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif /* !_POSIX_VERSION */
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "shell.h"
+
+#if !defined (R_OK)
+#define R_OK 4
+#define W_OK 2
+#define X_OK 1
+#define F_OK 0
+#endif /* R_OK */
+
+static int path_is_devfd __P((const char *));
+static int sh_stataccess __P((char *, int));
+#if HAVE_DECL_SETREGID
+static int sh_euidaccess __P((char *, int));
+#endif
+
+static int
+path_is_devfd (path)
+     const char *path;
+{
+  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
+    return 1;
+  else if (STREQN (path, "/dev/std", 8))
+    {
+      if (STREQ (path+8, "in") || STREQ (path+8, "out") || STREQ (path+8, "err"))
+       return 1;
+      else
+       return 0;
+    }
+  else
+    return 0;
+}
+
+/* A wrapper for stat () which disallows pathnames that are empty strings
+   and handles /dev/fd emulation on systems that don't have it. */
+int
+sh_stat (path, finfo)
+     const char *path;
+     struct stat *finfo;
+{
+  if (*path == '\0')
+    {
+      errno = ENOENT;
+      return (-1);
+    }
+  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
+    {
+#if !defined (HAVE_DEV_FD)
+      intmax_t fd;
+      int r;
+
+      if (legal_number (path + 8, &fd) && fd == (int)fd)
+        {
+          r = fstat ((int)fd, finfo);
+          if (r == 0 || errno != EBADF)
+            return (r);
+        }
+      errno = ENOENT;
+      return (-1);
+#else
+  /* If HAVE_DEV_FD is defined, DEV_FD_PREFIX is defined also, and has a
+     trailing slash.  Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
+     On most systems, with the notable exception of linux, this is
+     effectively a no-op. */
+      char pbuf[32];
+      strcpy (pbuf, DEV_FD_PREFIX);
+      strcat (pbuf, path + 8);
+      return (stat (pbuf, finfo));
+#endif /* !HAVE_DEV_FD */
+    }
+#if !defined (HAVE_DEV_STDIN)
+  else if (STREQN (path, "/dev/std", 8))
+    {
+      if (STREQ (path+8, "in"))
+       return (fstat (0, finfo));
+      else if (STREQ (path+8, "out"))
+       return (fstat (1, finfo));
+      else if (STREQ (path+8, "err"))
+       return (fstat (2, finfo));
+      else
+       return (stat (path, finfo));
+    }
+#endif /* !HAVE_DEV_STDIN */
+  return (stat (path, finfo));
+}
+
+/* Do the same thing access(2) does, but use the effective uid and gid,
+   and don't make the mistake of telling root that any file is
+   executable.  This version uses stat(2). */
+static int
+sh_stataccess (path, mode)
+     char *path;
+     int mode;
+{
+  struct stat st;
+
+  if (sh_stat (path, &st) < 0)
+    return (-1);
+
+  if (current_user.euid == 0)
+    {
+      /* Root can read or write any file. */
+      if ((mode & X_OK) == 0)
+       return (0);
+
+      /* Root can execute any file that has any one of the execute
+        bits set. */
+      if (st.st_mode & S_IXUGO)
+       return (0);
+    }
+
+  if (st.st_uid == current_user.euid)  /* owner */
+    mode <<= 6;
+  else if (group_member (st.st_gid))
+    mode <<= 3;
+
+  if (st.st_mode & mode)
+    return (0);
+
+  errno = EACCES;
+  return (-1);
+}
+
+#if HAVE_DECL_SETREGID
+/* Version to call when uid != euid or gid != egid.  We temporarily swap
+   the effective and real uid and gid as appropriate. */
+static int
+sh_euidaccess (path, mode)
+     char *path;
+     int mode;
+{
+  int r, e;
+
+  if (current_user.uid != current_user.euid)
+    setreuid (current_user.euid, current_user.uid);
+  if (current_user.gid != current_user.egid)
+    setregid (current_user.egid, current_user.gid);
+
+  r = access (path, mode);
+  e = errno;
+
+  if (current_user.uid != current_user.euid)
+    setreuid (current_user.uid, current_user.euid);
+  if (current_user.gid != current_user.egid)
+    setregid (current_user.gid, current_user.egid);
+
+  errno = e;
+  return r;  
+}
+#endif
+
+int
+sh_eaccess (path, mode)
+     char *path;
+     int mode;
+{
+  if (path_is_devfd (path))
+    return (sh_stataccess (path, mode));
+
+#if defined (HAVE_EACCESS)             /* FreeBSD */
+  return (eaccess (path, mode));
+#elif defined (EFF_ONLY_OK)            /* SVR4(?), SVR4.2 */
+  return access (path, mode|EFF_ONLY_OK);
+#else
+  if (mode == F_OK)
+    return (sh_stataccess (path, mode));
+    
+#  if HAVE_DECL_SETREGID
+  if (current_user.uid != current_user.euid || current_user.gid != current_user.egid)
+    return (sh_euidaccess (path, mode));
+#  endif
+
+  if (current_user.uid == current_user.euid && current_user.gid == current_user.egid)
+    return (access (path, mode));  
+
+  return (sh_stataccess (path, mode));
+#endif
+}
diff --git a/lib/sh/eaccess.c~ b/lib/sh/eaccess.c~
new file mode 100644 (file)
index 0000000..8f946a4
--- /dev/null
@@ -0,0 +1,222 @@
+/* sheaccess.c - eaccess replacement for the shell. */
+
+/* Copyright (C) 2006 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include "bashtypes.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "bashansi.h"
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if !defined (_POSIX_VERSION) && defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif /* !_POSIX_VERSION */
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "shell.h"
+
+#if !defined (R_OK)
+#define R_OK 4
+#define W_OK 2
+#define X_OK 1
+#define F_OK 0
+#endif /* R_OK */
+
+static int path_is_devfd __P((const char *));
+static int sh_stataccess __P((char *, int));
+#if HAVE_DECL_SETREGID
+static int sh_euidaccess __P((char *, int));
+#endif
+
+static int
+path_is_devfd (path)
+     const char *path;
+{
+  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
+    return 1;
+  else if (STREQN (path, "/dev/std", 8))
+    {
+      if (STREQ (path+8, "in") || STREQ (path+8, "out") || STREQ (path+8, "err"))
+       return 1;
+      else
+       return 0;
+    }
+  else
+    return 0;
+}
+
+/* A wrapper for stat () which disallows pathnames that are empty strings
+   and handles /dev/fd emulation on systems that don't have it. */
+int
+sh_stat (path, finfo)
+     const char *path;
+     struct stat *finfo;
+{
+  if (*path == '\0')
+    {
+      errno = ENOENT;
+      return (-1);
+    }
+  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
+    {
+#if !defined (HAVE_DEV_FD)
+      intmax_t fd;
+      int r;
+
+      if (legal_number (path + 8, &fd) && fd == (int)fd)
+        {
+          r = fstat ((int)fd, finfo);
+          if (r == 0 || errno != EBADF)
+            return (r);
+        }
+      errno = ENOENT;
+      return (-1);
+#else
+  /* If HAVE_DEV_FD is defined, DEV_FD_PREFIX is defined also, and has a
+     trailing slash.  Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
+     On most systems, with the notable exception of linux, this is
+     effectively a no-op. */
+      char pbuf[32];
+      strcpy (pbuf, DEV_FD_PREFIX);
+      strcat (pbuf, path + 8);
+      return (stat (pbuf, finfo));
+#endif /* !HAVE_DEV_FD */
+    }
+#if !defined (HAVE_DEV_STDIN)
+  else if (STREQN (path, "/dev/std", 8))
+    {
+      if (STREQ (path+8, "in"))
+       return (fstat (0, finfo));
+      else if (STREQ (path+8, "out"))
+       return (fstat (1, finfo));
+      else if (STREQ (path+8, "err"))
+       return (fstat (2, finfo));
+      else
+       return (stat (path, finfo));
+    }
+#endif /* !HAVE_DEV_STDIN */
+  return (stat (path, finfo));
+}
+
+/* Do the same thing access(2) does, but use the effective uid and gid,
+   and don't make the mistake of telling root that any file is
+   executable.  This version uses stat(2). */
+static int
+sh_stataccess (path, mode)
+     char *path;
+     int mode;
+{
+  struct stat st;
+
+  if (sh_stat (path, &st) < 0)
+    return (-1);
+
+  if (current_user.euid == 0)
+    {
+      /* Root can read or write any file. */
+      if ((mode & X_OK) == 0)
+       return (0);
+
+      /* Root can execute any file that has any one of the execute
+        bits set. */
+      if (st.st_mode & S_IXUGO)
+       return (0);
+    }
+
+  if (st.st_uid == current_user.euid)  /* owner */
+    mode <<= 6;
+  else if (group_member (st.st_gid))
+    mode <<= 3;
+
+  if (st.st_mode & mode)
+    return (0);
+
+  errno = EACCES;
+  return (-1);
+}
+
+#if HAVE_DECL_SETREGID
+/* Version to call when uid != euid or gid != egid.  We temporarily swap
+   the effective and real uid and gid as appropriate. */
+static int
+sh_euidaccess (path, mode)
+     char *path;
+     int mode;
+{
+  int r, e;
+
+  if (current_user.uid != current_user.euid)
+    setreuid (current_user.euid, current_user.uid);
+  if (current_user.gid != current_user.egid)
+    setregid (current_user.egid, current_user.gid);
+
+  r = access (path, mode);
+  e = errno;
+
+  if (current_user.uid != current_user.euid)
+    setreuid (current_user.uid, current_user.euid);
+  if (current_user.gid != current_user.egid)
+    setregid (current_user.gid, current_user.egid);
+
+  errno = e;
+  return r;  
+}
+#endif
+
+int
+sh_eaccess (path, mode)
+     char *path;
+     int mode;
+{
+  if (path_is_devfd (path))
+    return (sh_stataccess (path, mode));
+
+#if defined (HAVE_EACCESS)             /* FreeBSD */
+  return (eaccess (path, mode));
+#elif defined (EFF_ONLY_OK)            /* SVR4(?), SVR4.2 */
+  return access (path, mode|EFF_ONLY_OK);
+#else
+  if (mode == F_OK)
+    return (sh_stataccess (path, mode));
+    
+#  if HAVE_DECL_SETREGID
+  if (current_user.uid != current_user.euid || current_user.gid != current_user.egid)
+    return (sh_euidaccess (path, mode));
+#  endif
+
+  if (current_user.uid == current_user.euid && current_user.gid == current_user.egid)
+    return (access (path, mode));  
+
+  return (sh_stataccess (path, mode));
+#endif
+}
diff --git a/lib/sh/shaccess.c~ b/lib/sh/shaccess.c~
new file mode 100644 (file)
index 0000000..339f3db
--- /dev/null
@@ -0,0 +1,219 @@
+/* sheaccess.c - eaccess replacement for the shell. */
+
+/* Copyright (C) 2006 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include "bashtypes.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include "bashansi.h"
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if !defined (_POSIX_VERSION) && defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif /* !_POSIX_VERSION */
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "shell.h"
+
+#if !defined (R_OK)
+#define R_OK 4
+#define W_OK 2
+#define X_OK 1
+#define F_OK 0
+#endif /* R_OK */
+
+static int path_is_devfd __P((const char *));
+static int sh_stataccess __P((char *, int));
+#if HAVE_DECL_SETREGID
+static int sh_euidaccess __P((char *, int));
+#endif
+
+static int
+path_is_devfd (path)
+     const char *path;
+{
+  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
+    return 1;
+  else if (STREQN (path, "/dev/std", 8))
+    {
+      if (STREQ (path+8, "in") || STREQ (path+8, "out") || STREQ (path+8, "err"))
+       return 1;
+      else
+       return 0;
+    }
+  else
+    return 0;
+}
+
+/* A wrapper for stat () which disallows pathnames that are empty strings
+   and handles /dev/fd emulation on systems that don't have it. */
+int
+sh_stat (path, finfo)
+     const char *path;
+     struct stat *finfo;
+{
+  if (*path == '\0')
+    {
+      errno = ENOENT;
+      return (-1);
+    }
+  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
+    {
+#if !defined (HAVE_DEV_FD)
+      intmax_t fd;
+      int r;
+
+      if (legal_number (path + 8, &fd) && fd == (int)fd)
+        {
+          r = fstat ((int)fd, finfo);
+          if (r == 0 || errno != EBADF)
+            return (r);
+        }
+      errno = ENOENT;
+      return (-1);
+#else
+  /* If HAVE_DEV_FD is defined, DEV_FD_PREFIX is defined also, and has a
+     trailing slash.  Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
+     On most systems, with the notable exception of linux, this is
+     effectively a no-op. */
+      char pbuf[32];
+      strcpy (pbuf, DEV_FD_PREFIX);
+      strcat (pbuf, path + 8);
+      return (stat (pbuf, finfo));
+#endif /* !HAVE_DEV_FD */
+    }
+#if !defined (HAVE_DEV_STDIN)
+  else if (STREQN (path, "/dev/std", 8))
+    {
+      if (STREQ (path+8, "in"))
+       return (fstat (0, finfo));
+      else if (STREQ (path+8, "out"))
+       return (fstat (1, finfo));
+      else if (STREQ (path+8, "err"))
+       return (fstat (2, finfo));
+      else
+       return (stat (path, finfo));
+    }
+#endif /* !HAVE_DEV_STDIN */
+  return (stat (path, finfo));
+}
+
+/* Do the same thing access(2) does, but use the effective uid and gid,
+   and don't make the mistake of telling root that any file is
+   executable.  This version uses stat(2). */
+static int
+sh_stataccess (path, mode)
+     char *path;
+     int mode;
+{
+  struct stat st;
+
+  if (sh_stat (path, &st) < 0)
+    return (-1);
+
+  if (current_user.euid == 0)
+    {
+      /* Root can read or write any file. */
+      if ((mode & X_OK) == 0)
+       return (0);
+
+      /* Root can execute any file that has any one of the execute
+        bits set. */
+      if (st.st_mode & S_IXUGO)
+       return (0);
+    }
+
+  if (st.st_uid == current_user.euid)  /* owner */
+    mode <<= 6;
+  else if (group_member (st.st_gid))
+    mode <<= 3;
+
+  if (st.st_mode & mode)
+    return (0);
+
+  errno = EACCES;
+  return (-1);
+}
+
+#if HAVE_DECL_SETREGID
+/* Version to call when uid != euid or gid != egid.  We temporarily swap
+   the effective and real uid and gid as appropriate. */
+static int
+sh_euidaccess (path, mode)
+     char *path;
+     int mode;
+{
+  int r, e;
+
+  if (current_user.uid != current_user.euid)
+    setreuid (current_user.euid, current_user.uid);
+  if (current_user.gid != current_user.egid)
+    setregid (current_user.egid, current_user.gid);
+
+  r = access (path, mode);
+  e = errno;
+
+  if (current_user.uid != current_user.euid)
+    setreuid (current_user.uid, current_user.euid);
+  if (current_user.gid != current_user.egid)
+    setregid (current_user.gid, current_user.egid);
+
+  errno = e;
+  return r;  
+}
+#endif
+
+int
+sh_eaccess (path, mode)
+     char *path;
+     int mode;
+{
+#if defined (HAVE_EACCESS)             /* FreeBSD */
+  return (eaccess (path, mode));
+#elif defined (EFF_ONLY_OK)            /* SVR4(?), SVR4.2 */
+  return access (path, mode|EFF_ONLY_OK);
+#else
+  if (mode == F_OK)
+    return (sh_stataccess (path, mode));
+    
+#  if HAVE_DECL_SETREGID
+  if (current_user.uid != current_user.euid || current_user.gid != current_user.egid)
+    return (sh_euidaccess (path, mode));
+#  endif
+
+  if (current_user.uid == current_user.euid && current_user.gid == current_user.egid)
+    return (access (path, mode));  
+
+  return (sh_stataccess (path, mode));
+#endif
+}
index 9aaa741550140fdbdfb3c675d63e0a89bfccd821..a3d51f670dc3b23b66ef6cb8668c67f6904d55ca 100644 (file)
--- a/nojobs.c
+++ b/nojobs.c
@@ -3,7 +3,7 @@
 /* This file works under BSD, System V, minix, and Posix systems.  It does
    not implement job control. */
 
-/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -429,9 +429,11 @@ reap_zombie_children ()
   pid_t pid;
   WAIT status;
 
+  CHECK_TERMSIG;
   while ((pid = waitpid (-1, (int *)&status, WNOHANG)) > 0)
     set_pid_status (pid, status);
 #  endif /* WNOHANG */
+  CHECK_TERMSIG;
 }
 #endif /* WAITPID */
 
@@ -584,6 +586,7 @@ wait_for_single_pid (pid)
   siginterrupt (SIGINT, 1);
   while ((got_pid = WAITPID (pid, &status, 0)) != pid)
     {
+      CHECK_TERMSIG;
       if (got_pid < 0)
        {
          if (errno != EINTR && errno != ECHILD)
@@ -737,6 +740,7 @@ wait_for (pid)
 
   while ((got_pid = WAITPID (-1, &status, 0)) != pid) /* XXX was pid now -1 */
     {
+      CHECK_TERMSIG;
       if (got_pid < 0 && errno == ECHILD)
        {
 #if !defined (_POSIX_VERSION)
@@ -775,7 +779,7 @@ wait_for (pid)
          if (maybe_call_trap_handler (SIGINT) == 0)
            {
              if (temp_handler == SIG_DFL)
-               termination_unwind_protect (SIGINT);
+               termsig_handler (SIGINT);
              else if (temp_handler != INVALID_SIGNAL_HANDLER && temp_handler != SIG_IGN)
                (*temp_handler) (SIGINT);
            }
diff --git a/parse.y b/parse.y
index 1cf52a774a32c57a5e84d48c79a9800b8634f5d9..37c9e965196fab32855e561e2b322e47c8cb8353 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -1,6 +1,6 @@
 /* Yacc grammar for bash. */
 
-/* Copyright (C) 1989-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2006 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -118,7 +118,6 @@ extern int current_command_number;
 extern int sourcelevel;
 extern int posixly_correct;
 extern int last_command_exit_value;
-extern int interrupt_immediately;
 extern char *shell_name, *current_host_name;
 extern char *dist_version;
 extern int patch_level;
@@ -1212,10 +1211,12 @@ yy_readline_get ()
          old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler);
          interrupt_immediately++;
        }
+      terminate_immediately = 1;
 
       current_readline_line = readline (current_readline_prompt ?
                                          current_readline_prompt : "");
 
+      terminate_immediately = 0;
       if (signal_is_ignored (SIGINT) == 0 && old_sigint)
        {
          interrupt_immediately--;
@@ -1347,10 +1348,16 @@ yy_stream_get ()
   if (bash_input.location.file)
     {
       if (interactive)
-       interrupt_immediately++;
+       {
+         interrupt_immediately++;
+         terminate_immediately++;
+       }
       result = getc_with_restart (bash_input.location.file);
       if (interactive)
-       interrupt_immediately--;
+       {
+         interrupt_immediately--;
+         terminate_immediately--;
+       }
     }
   return (result);
 }
@@ -3576,7 +3583,7 @@ read_token_word (character)
              FREE (ttok);
              all_digit_token = 0;
              compound_assignment = 1;
-#if 0
+#if 1
              goto next_character;
 #else
              goto got_token;           /* ksh93 seems to do this */
diff --git a/quit.h b/quit.h
index 31b2765a3aa4e12f513961c838b2dc4c49bba4dc..a33543968a87c3926ff11e94bcdb15c7cdd58b03 100644 (file)
--- a/quit.h
+++ b/quit.h
 #define _QUIT_H_
 
 /* Non-zero means SIGINT has already ocurred. */
-extern int interrupt_state;
-
-/* Macro to call a great deal.  SIGINT just sets above variable.  When
-   it is safe, put QUIT in the code, and the "interrupt" will take place. */
-#define QUIT if (interrupt_state) throw_to_top_level ()
+extern volatile int interrupt_state;
+extern volatile int terminating_signal;
+
+/* Macro to call a great deal.  SIGINT just sets the interrupt_state variable.
+   When it is safe, put QUIT in the code, and the "interrupt" will take
+   place.  The same scheme is used for terminating signals (e.g., SIGHUP)
+   and the terminating_signal variable.  That calls a function which will
+   end up exiting the shell. */
+#define QUIT \
+  do { \
+    if (terminating_signal) termsig_handler (terminating_signal); \
+    if (interrupt_state) throw_to_top_level (); \
+  } while (0)
 
 #define SETINTERRUPT interrupt_state = 1
 #define CLRINTERRUPT interrupt_state = 0
@@ -34,4 +42,12 @@ extern int interrupt_state;
 #define ADDINTERRUPT interrupt_state++
 #define DELINTERRUPT interrupt_state--
 
+/* The same sort of thing, this time just for signals that would ordinarily
+   cause the shell to terminate. */
+
+#define CHECK_TERMSIG \
+  do { \
+    if (terminating_signal) termsig_handler (terminating_signal); \
+  } while (0)
+
 #endif /* _QUIT_H_ */
diff --git a/sig.c b/sig.c
index 9480279f34d92324aeba9a3e6a821c5bc93bfaca..2bd6cae606dd8c24a01f2f897636036f79627b3b 100644 (file)
--- a/sig.c
+++ b/sig.c
@@ -1,6 +1,6 @@
 /* sig.c - interface for shell signal handlers and signal initialization. */
 
-/* Copyright (C) 1994-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2006 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -59,11 +59,14 @@ extern int loop_level, continuing, breaking;
 extern int parse_and_execute_level, shell_initialized;
 
 /* Non-zero after SIGINT. */
-int interrupt_state;
+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;
@@ -76,6 +79,9 @@ sigset_t top_level_mask;
 /* 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
@@ -223,7 +229,7 @@ initialize_terminating_signals ()
      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 = termination_unwind_protect;
+  act.sa_handler = termsig_sighandler;
   act.sa_flags = 0;
   sigemptyset (&act.sa_mask);
   sigemptyset (&oact.sa_mask);
@@ -259,7 +265,7 @@ initialize_terminating_signals ()
       if (signal_is_trapped (XSIG (i)))
        continue;
 
-      XHANDLER(i) = signal (XSIG (i), termination_unwind_protect);
+      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. */
@@ -418,17 +424,39 @@ jump_to_top_level (value)
 }
 
 sighandler
-termination_unwind_protect (sig)
+termsig_sighandler (sig)
      int sig;
 {
+  terminating_signal = sig;
+
+  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)
-  /* This might be unsafe, since it eventually calls functions POSIX says
-     not to call from signal handlers.  If it's a problem, take this code
-     out. */
   if (interactive_shell && sig != SIGABRT)
     maybe_save_shell_history ();
 #endif /* HISTORY */
@@ -446,8 +474,6 @@ termination_unwind_protect (sig)
   run_exit_trap ();
   set_signal_handler (sig, SIG_DFL);
   kill (getpid (), sig);
-
-  SIGRETURN (0);
 }
 
 /* What we really do when SIGINT occurs. */
diff --git a/sig.h b/sig.h
index a13f54c7e9c7219e3b068b6cdcd16dbfe7bbaf3a..a23f94c59a522d938218488180ec0dbe1e3433e3 100644 (file)
--- a/sig.h
+++ b/sig.h
@@ -1,6 +1,6 @@
 /* sig.h -- header file for signal handler definitions. */
 
-/* Copyright (C) 1994-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2006 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -111,8 +111,12 @@ do { \
 /* Extern variables */
 extern volatile int sigwinch_received;
 
+extern int interrupt_immediately;
+extern int terminate_immediately;
+
 /* Functions from sig.c. */
-extern sighandler termination_unwind_protect __P((int));
+extern sighandler termsig_sighandler __P((int));
+extern void termsig_handler __P((int));
 extern sighandler sigint_sighandler __P((int));
 extern void initialize_signals __P((int));
 extern void initialize_terminating_signals __P((void));
diff --git a/test.c b/test.c
index 4fc0ade05da3ce7bde0253dddee449bec3448f5b..f01929f708cf4cd2c85c9db5171c9d901b4cd473 100644 (file)
--- a/test.c
+++ b/test.c
@@ -101,14 +101,7 @@ static int test_error_return;
 #define test_exit(val) \
        do { test_error_return = val; longjmp (test_exit_buf, 1); } while (0)
 
-/* We have to use access(2) for machines running AFS, because it's
-   not a Unix file system.  This may produce incorrect answers for
-   non-AFS files.  I hate AFS. */
-#if defined (AFS)
-#  define EACCESS(path, mode)  access(path, mode)
-#else
-#  define EACCESS(path, mode)  test_eaccess(path, mode)
-#endif /* AFS */
+extern int sh_stat __P((const char *, struct stat *));
 
 static int pos;                /* The offset of the current argument in ARGV. */
 static int argc;       /* The number of arguments present in ARGV. */
@@ -119,8 +112,6 @@ static void test_syntax_error __P((char *, char *)) __attribute__((__noreturn__)
 static void beyond __P((void)) __attribute__((__noreturn__));
 static void integer_expected_error __P((char *)) __attribute__((__noreturn__));
 
-static int test_stat __P((char *, struct stat *));
-
 static int unary_operator __P((void));
 static int binary_operator __P((void));
 static int two_arguments __P((void));
@@ -163,96 +154,6 @@ integer_expected_error (pch)
   test_syntax_error (_("%s: integer expression expected"), pch);
 }
 
-/* A wrapper for stat () which disallows pathnames that are empty strings
-   and handles /dev/fd emulation on systems that don't have it. */
-static int
-test_stat (path, finfo)
-     char *path;
-     struct stat *finfo;
-{
-  if (*path == '\0')
-    {
-      errno = ENOENT;
-      return (-1);
-    }
-  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
-    {
-#if !defined (HAVE_DEV_FD)
-      intmax_t fd;
-      int r;
-
-      if (legal_number (path + 8, &fd) && fd == (int)fd)
-        {
-          r = fstat ((int)fd, finfo);
-          if (r == 0 || errno != EBADF)
-            return (r);
-        }
-      errno = ENOENT;
-      return (-1);
-#else
-  /* If HAVE_DEV_FD is defined, DEV_FD_PREFIX is defined also, and has a
-     trailing slash.  Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
-     On most systems, with the notable exception of linux, this is
-     effectively a no-op. */
-      char pbuf[32];
-      strcpy (pbuf, DEV_FD_PREFIX);
-      strcat (pbuf, path + 8);
-      return (stat (pbuf, finfo));
-#endif /* !HAVE_DEV_FD */
-    }
-#if !defined (HAVE_DEV_STDIN)
-  else if (STREQN (path, "/dev/std", 8))
-    {
-      if (STREQ (path+8, "in"))
-       return (fstat (0, finfo));
-      else if (STREQ (path+8, "out"))
-       return (fstat (1, finfo));
-      else if (STREQ (path+8, "err"))
-       return (fstat (2, finfo));
-      else
-       return (stat (path, finfo));
-    }
-#endif /* !HAVE_DEV_STDIN */
-  return (stat (path, finfo));
-}
-
-/* Do the same thing access(2) does, but use the effective uid and gid,
-   and don't make the mistake of telling root that any file is
-   executable. */
-int
-test_eaccess (path, mode)
-     char *path;
-     int mode;
-{
-  struct stat st;
-
-  if (test_stat (path, &st) < 0)
-    return (-1);
-
-  if (current_user.euid == 0)
-    {
-      /* Root can read or write any file. */
-      if (mode != X_OK)
-       return (0);
-
-      /* Root can execute any file that has any one of the execute
-        bits set. */
-      if (st.st_mode & S_IXUGO)
-       return (0);
-    }
-
-  if (st.st_uid == current_user.euid)  /* owner */
-    mode <<= 6;
-  else if (group_member (st.st_gid))
-    mode <<= 3;
-
-  if (st.st_mode & mode)
-    return (0);
-
-  errno = EACCES;
-  return (-1);
-}
-
 /* Increment our position in the argument list.  Check that we're not
    past the end of the argument list.  This check is supressed if the
    argument is FALSE.  Made a macro for efficiency. */
@@ -394,12 +295,12 @@ filecomp (s, t, op)
   struct stat st1, st2;
   int r1, r2;
 
-  if ((r1 = test_stat (s, &st1)) < 0)
+  if ((r1 = sh_stat (s, &st1)) < 0)
     {
       if (op == EF)
        return (FALSE);
     }
-  if ((r2 = test_stat (t, &st2)) < 0)
+  if ((r2 = sh_stat (t, &st2)) < 0)
     {
       if (op == EF)
        return (FALSE);
@@ -597,31 +498,31 @@ unary_test (op, arg)
     {
     case 'a':                  /* file exists in the file system? */
     case 'e':
-      return (test_stat (arg, &stat_buf) == 0);
+      return (sh_stat (arg, &stat_buf) == 0);
 
     case 'r':                  /* file is readable? */
-      return (EACCESS (arg, R_OK) == 0);
+      return (sh_eaccess (arg, R_OK) == 0);
 
     case 'w':                  /* File is writeable? */
-      return (EACCESS (arg, W_OK) == 0);
+      return (sh_eaccess (arg, W_OK) == 0);
 
     case 'x':                  /* File is executable? */
-      return (EACCESS (arg, X_OK) == 0);
+      return (sh_eaccess (arg, X_OK) == 0);
 
     case 'O':                  /* File is owned by you? */
-      return (test_stat (arg, &stat_buf) == 0 &&
+      return (sh_stat (arg, &stat_buf) == 0 &&
              (uid_t) current_user.euid == (uid_t) stat_buf.st_uid);
 
     case 'G':                  /* File is owned by your group? */
-      return (test_stat (arg, &stat_buf) == 0 &&
+      return (sh_stat (arg, &stat_buf) == 0 &&
              (gid_t) current_user.egid == (gid_t) stat_buf.st_gid);
 
     case 'N':
-      return (test_stat (arg, &stat_buf) == 0 &&
+      return (sh_stat (arg, &stat_buf) == 0 &&
              stat_buf.st_atime <= stat_buf.st_mtime);
 
     case 'f':                  /* File is a file? */
-      if (test_stat (arg, &stat_buf) < 0)
+      if (sh_stat (arg, &stat_buf) < 0)
        return (FALSE);
 
       /* -f is true if the given file exists and is a regular file. */
@@ -632,29 +533,29 @@ unary_test (op, arg)
 #endif /* !S_IFMT */
 
     case 'd':                  /* File is a directory? */
-      return (test_stat (arg, &stat_buf) == 0 && (S_ISDIR (stat_buf.st_mode)));
+      return (sh_stat (arg, &stat_buf) == 0 && (S_ISDIR (stat_buf.st_mode)));
 
     case 's':                  /* File has something in it? */
-      return (test_stat (arg, &stat_buf) == 0 && stat_buf.st_size > (off_t) 0);
+      return (sh_stat (arg, &stat_buf) == 0 && stat_buf.st_size > (off_t) 0);
 
     case 'S':                  /* File is a socket? */
 #if !defined (S_ISSOCK)
       return (FALSE);
 #else
-      return (test_stat (arg, &stat_buf) == 0 && S_ISSOCK (stat_buf.st_mode));
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISSOCK (stat_buf.st_mode));
 #endif /* S_ISSOCK */
 
     case 'c':                  /* File is character special? */
-      return (test_stat (arg, &stat_buf) == 0 && S_ISCHR (stat_buf.st_mode));
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISCHR (stat_buf.st_mode));
 
     case 'b':                  /* File is block special? */
-      return (test_stat (arg, &stat_buf) == 0 && S_ISBLK (stat_buf.st_mode));
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISBLK (stat_buf.st_mode));
 
     case 'p':                  /* File is a named pipe? */
 #ifndef S_ISFIFO
       return (FALSE);
 #else
-      return (test_stat (arg, &stat_buf) == 0 && S_ISFIFO (stat_buf.st_mode));
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISFIFO (stat_buf.st_mode));
 #endif /* S_ISFIFO */
 
     case 'L':                  /* Same as -h  */
@@ -667,17 +568,17 @@ unary_test (op, arg)
 #endif /* S_IFLNK && HAVE_LSTAT */
 
     case 'u':                  /* File is setuid? */
-      return (test_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISUID) != 0);
+      return (sh_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISUID) != 0);
 
     case 'g':                  /* File is setgid? */
-      return (test_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISGID) != 0);
+      return (sh_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISGID) != 0);
 
     case 'k':                  /* File has sticky bit set? */
 #if !defined (S_ISVTX)
       /* This is not Posix, and is not defined on some Posix systems. */
       return (FALSE);
 #else
-      return (test_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISVTX) != 0);
+      return (sh_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISVTX) != 0);
 #endif
 
     case 't':  /* File fd is a terminal? */
diff --git a/test.c.orig b/test.c.orig
new file mode 100644 (file)
index 0000000..4fc0ade
--- /dev/null
@@ -0,0 +1,924 @@
+/* GNU test program (ksb and mjb) */
+
+/* Modified to run with the GNU shell Apr 25, 1988 by bfox. */
+
+/* Copyright (C) 1987-2005 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+/* Define PATTERN_MATCHING to get the csh-like =~ and !~ pattern-matching
+   binary operators. */
+/* #define PATTERN_MATCHING */
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include "bashtypes.h"
+
+#if !defined (HAVE_LIMITS_H)
+#  include <sys/param.h>
+#endif
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if !defined (_POSIX_VERSION) && defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif /* !_POSIX_VERSION */
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "bashintl.h"
+
+#include "shell.h"
+#include "pathexp.h"
+#include "test.h"
+#include "builtins/common.h"
+
+#include <glob/strmatch.h>
+
+#if !defined (STRLEN)
+#  define STRLEN(s) ((s)[0] ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0)
+#endif
+
+#if !defined (STREQ)
+#  define STREQ(a, b) ((a)[0] == (b)[0] && strcmp (a, b) == 0)
+#endif /* !STREQ */
+
+#if !defined (R_OK)
+#define R_OK 4
+#define W_OK 2
+#define X_OK 1
+#define F_OK 0
+#endif /* R_OK */
+
+#define EQ     0
+#define NE     1
+#define LT     2
+#define GT     3
+#define LE     4
+#define GE     5
+
+#define NT     0
+#define OT     1
+#define EF     2
+
+/* The following few defines control the truth and false output of each stage.
+   TRUE and FALSE are what we use to compute the final output value.
+   SHELL_BOOLEAN is the form which returns truth or falseness in shell terms.
+   Default is TRUE = 1, FALSE = 0, SHELL_BOOLEAN = (!value). */
+#define TRUE 1
+#define FALSE 0
+#define SHELL_BOOLEAN(value) (!(value))
+
+#define TEST_ERREXIT_STATUS    2
+
+static procenv_t test_exit_buf;
+static int test_error_return;
+#define test_exit(val) \
+       do { test_error_return = val; longjmp (test_exit_buf, 1); } while (0)
+
+/* We have to use access(2) for machines running AFS, because it's
+   not a Unix file system.  This may produce incorrect answers for
+   non-AFS files.  I hate AFS. */
+#if defined (AFS)
+#  define EACCESS(path, mode)  access(path, mode)
+#else
+#  define EACCESS(path, mode)  test_eaccess(path, mode)
+#endif /* AFS */
+
+static int pos;                /* The offset of the current argument in ARGV. */
+static int argc;       /* The number of arguments present in ARGV. */
+static char **argv;    /* The argument list. */
+static int noeval;
+
+static void test_syntax_error __P((char *, char *)) __attribute__((__noreturn__));
+static void beyond __P((void)) __attribute__((__noreturn__));
+static void integer_expected_error __P((char *)) __attribute__((__noreturn__));
+
+static int test_stat __P((char *, struct stat *));
+
+static int unary_operator __P((void));
+static int binary_operator __P((void));
+static int two_arguments __P((void));
+static int three_arguments __P((void));
+static int posixtest __P((void));
+
+static int expr __P((void));
+static int term __P((void));
+static int and __P((void));
+static int or __P((void));
+
+static int filecomp __P((char *, char *, int));
+static int arithcomp __P((char *, char *, int, int));
+static int patcomp __P((char *, char *, int));
+
+static void
+test_syntax_error (format, arg)
+     char *format, *arg;
+{
+  builtin_error (format, arg);
+  test_exit (TEST_ERREXIT_STATUS);
+}
+
+/*
+ * beyond - call when we're beyond the end of the argument list (an
+ *     error condition)
+ */
+static void
+beyond ()
+{
+  test_syntax_error (_("argument expected"), (char *)NULL);
+}
+
+/* Syntax error for when an integer argument was expected, but
+   something else was found. */
+static void
+integer_expected_error (pch)
+     char *pch;
+{
+  test_syntax_error (_("%s: integer expression expected"), pch);
+}
+
+/* A wrapper for stat () which disallows pathnames that are empty strings
+   and handles /dev/fd emulation on systems that don't have it. */
+static int
+test_stat (path, finfo)
+     char *path;
+     struct stat *finfo;
+{
+  if (*path == '\0')
+    {
+      errno = ENOENT;
+      return (-1);
+    }
+  if (path[0] == '/' && path[1] == 'd' && strncmp (path, "/dev/fd/", 8) == 0)
+    {
+#if !defined (HAVE_DEV_FD)
+      intmax_t fd;
+      int r;
+
+      if (legal_number (path + 8, &fd) && fd == (int)fd)
+        {
+          r = fstat ((int)fd, finfo);
+          if (r == 0 || errno != EBADF)
+            return (r);
+        }
+      errno = ENOENT;
+      return (-1);
+#else
+  /* If HAVE_DEV_FD is defined, DEV_FD_PREFIX is defined also, and has a
+     trailing slash.  Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
+     On most systems, with the notable exception of linux, this is
+     effectively a no-op. */
+      char pbuf[32];
+      strcpy (pbuf, DEV_FD_PREFIX);
+      strcat (pbuf, path + 8);
+      return (stat (pbuf, finfo));
+#endif /* !HAVE_DEV_FD */
+    }
+#if !defined (HAVE_DEV_STDIN)
+  else if (STREQN (path, "/dev/std", 8))
+    {
+      if (STREQ (path+8, "in"))
+       return (fstat (0, finfo));
+      else if (STREQ (path+8, "out"))
+       return (fstat (1, finfo));
+      else if (STREQ (path+8, "err"))
+       return (fstat (2, finfo));
+      else
+       return (stat (path, finfo));
+    }
+#endif /* !HAVE_DEV_STDIN */
+  return (stat (path, finfo));
+}
+
+/* Do the same thing access(2) does, but use the effective uid and gid,
+   and don't make the mistake of telling root that any file is
+   executable. */
+int
+test_eaccess (path, mode)
+     char *path;
+     int mode;
+{
+  struct stat st;
+
+  if (test_stat (path, &st) < 0)
+    return (-1);
+
+  if (current_user.euid == 0)
+    {
+      /* Root can read or write any file. */
+      if (mode != X_OK)
+       return (0);
+
+      /* Root can execute any file that has any one of the execute
+        bits set. */
+      if (st.st_mode & S_IXUGO)
+       return (0);
+    }
+
+  if (st.st_uid == current_user.euid)  /* owner */
+    mode <<= 6;
+  else if (group_member (st.st_gid))
+    mode <<= 3;
+
+  if (st.st_mode & mode)
+    return (0);
+
+  errno = EACCES;
+  return (-1);
+}
+
+/* Increment our position in the argument list.  Check that we're not
+   past the end of the argument list.  This check is supressed if the
+   argument is FALSE.  Made a macro for efficiency. */
+#define advance(f) do { ++pos; if (f && pos >= argc) beyond (); } while (0)
+#define unary_advance() do { advance (1); ++pos; } while (0)
+
+/*
+ * expr:
+ *     or
+ */
+static int
+expr ()
+{
+  if (pos >= argc)
+    beyond ();
+
+  return (FALSE ^ or ());              /* Same with this. */
+}
+
+/*
+ * or:
+ *     and
+ *     and '-o' or
+ */
+static int
+or ()
+{
+  int value, v2;
+
+  value = and ();
+  if (pos < argc && argv[pos][0] == '-' && argv[pos][1] == 'o' && !argv[pos][2])
+    {
+      advance (0);
+      v2 = or ();
+      return (value || v2);
+    }
+
+  return (value);
+}
+
+/*
+ * and:
+ *     term
+ *     term '-a' and
+ */
+static int
+and ()
+{
+  int value, v2;
+
+  value = term ();
+  if (pos < argc && argv[pos][0] == '-' && argv[pos][1] == 'a' && !argv[pos][2])
+    {
+      advance (0);
+      v2 = and ();
+      return (value && v2);
+    }
+  return (value);
+}
+
+/*
+ * term - parse a term and return 1 or 0 depending on whether the term
+ *     evaluates to true or false, respectively.
+ *
+ * term ::=
+ *     '-'('a'|'b'|'c'|'d'|'e'|'f'|'g'|'h'|'k'|'p'|'r'|'s'|'u'|'w'|'x') filename
+ *     '-'('G'|'L'|'O'|'S'|'N') filename
+ *     '-t' [int]
+ *     '-'('z'|'n') string
+ *     '-o' option
+ *     string
+ *     string ('!='|'='|'==') string
+ *     <int> '-'(eq|ne|le|lt|ge|gt) <int>
+ *     file '-'(nt|ot|ef) file
+ *     '(' <expr> ')'
+ * int ::=
+ *     positive and negative integers
+ */
+static int
+term ()
+{
+  int value;
+
+  if (pos >= argc)
+    beyond ();
+
+  /* Deal with leading `not's. */
+  if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+    {
+      value = 0;
+      while (pos < argc && argv[pos][0] == '!' && argv[pos][1] == '\0')
+       {
+         advance (1);
+         value = 1 - value;
+       }
+
+      return (value ? !term() : term());
+    }
+
+  /* A paren-bracketed argument. */
+  if (argv[pos][0] == '(' && argv[pos][1] == '\0') /* ) */
+    {
+      advance (1);
+      value = expr ();
+      if (argv[pos] == 0) /* ( */
+       test_syntax_error (_("`)' expected"), (char *)NULL);
+      else if (argv[pos][0] != ')' || argv[pos][1]) /* ( */
+       test_syntax_error (_("`)' expected, found %s"), argv[pos]);
+      advance (0);
+      return (value);
+    }
+
+  /* are there enough arguments left that this could be dyadic? */
+  if ((pos + 3 <= argc) && test_binop (argv[pos + 1]))
+    value = binary_operator ();
+
+  /* Might be a switch type argument */
+  else if (argv[pos][0] == '-' && argv[pos][2] == '\0')
+    {
+      if (test_unop (argv[pos]))
+       value = unary_operator ();
+      else
+       test_syntax_error (_("%s: unary operator expected"), argv[pos]);
+    }
+  else
+    {
+      value = argv[pos][0] != '\0';
+      advance (0);
+    }
+
+  return (value);
+}
+
+static int
+filecomp (s, t, op)
+     char *s, *t;
+     int op;
+{
+  struct stat st1, st2;
+  int r1, r2;
+
+  if ((r1 = test_stat (s, &st1)) < 0)
+    {
+      if (op == EF)
+       return (FALSE);
+    }
+  if ((r2 = test_stat (t, &st2)) < 0)
+    {
+      if (op == EF)
+       return (FALSE);
+    }
+  
+  switch (op)
+    {
+    case OT: return (r1 < r2 || (r2 == 0 && st1.st_mtime < st2.st_mtime));
+    case NT: return (r1 > r2 || (r1 == 0 && st1.st_mtime > st2.st_mtime));
+    case EF: return ((st1.st_dev == st2.st_dev) && (st1.st_ino == st2.st_ino));
+    }
+  return (FALSE);
+}
+
+static int
+arithcomp (s, t, op, flags)
+     char *s, *t;
+     int op, flags;
+{
+  intmax_t l, r;
+  int expok;
+
+  if (flags & TEST_ARITHEXP)
+    {
+      l = evalexp (s, &expok);
+      if (expok == 0)
+       return (FALSE);         /* should probably longjmp here */
+      r = evalexp (t, &expok);
+      if (expok == 0)
+       return (FALSE);         /* ditto */
+    }
+  else
+    {
+      if (legal_number (s, &l) == 0)
+       integer_expected_error (s);
+      if (legal_number (t, &r) == 0)
+       integer_expected_error (t);
+    }
+
+  switch (op)
+    {
+    case EQ: return (l == r);
+    case NE: return (l != r);
+    case LT: return (l < r);
+    case GT: return (l > r);
+    case LE: return (l <= r);
+    case GE: return (l >= r);
+    }
+
+  return (FALSE);
+}
+
+static int
+patcomp (string, pat, op)
+     char *string, *pat;
+     int op;
+{
+  int m;
+
+  m = strmatch (pat, string, FNMATCH_EXTFLAG|FNMATCH_IGNCASE);
+  return ((op == EQ) ? (m == 0) : (m != 0));
+}
+
+int
+binary_test (op, arg1, arg2, flags)
+     char *op, *arg1, *arg2;
+     int flags;
+{
+  int patmatch;
+
+  patmatch = (flags & TEST_PATMATCH);
+
+  if (op[0] == '=' && (op[1] == '\0' || (op[1] == '=' && op[2] == '\0')))
+    return (patmatch ? patcomp (arg1, arg2, EQ) : STREQ (arg1, arg2));
+
+  else if ((op[0] == '>' || op[0] == '<') && op[1] == '\0')
+    return ((op[0] == '>') ? (strcmp (arg1, arg2) > 0) : (strcmp (arg1, arg2) < 0));
+
+  else if (op[0] == '!' && op[1] == '=' && op[2] == '\0')
+    return (patmatch ? patcomp (arg1, arg2, NE) : (STREQ (arg1, arg2) == 0));
+
+  else if (op[2] == 't')
+    {
+      switch (op[1])
+       {
+       case 'n': return (filecomp (arg1, arg2, NT));           /* -nt */
+       case 'o': return (filecomp (arg1, arg2, OT));           /* -ot */
+       case 'l': return (arithcomp (arg1, arg2, LT, flags));   /* -lt */
+       case 'g': return (arithcomp (arg1, arg2, GT, flags));   /* -gt */
+       }
+    }
+  else if (op[1] == 'e')
+    {
+      switch (op[2])
+       {
+       case 'f': return (filecomp (arg1, arg2, EF));           /* -ef */
+       case 'q': return (arithcomp (arg1, arg2, EQ, flags));   /* -eq */
+       }
+    }
+  else if (op[2] == 'e')
+    {
+      switch (op[1])
+       {
+       case 'n': return (arithcomp (arg1, arg2, NE, flags));   /* -ne */
+       case 'g': return (arithcomp (arg1, arg2, GE, flags));   /* -ge */
+       case 'l': return (arithcomp (arg1, arg2, LE, flags));   /* -le */
+       }
+    }
+
+  return (FALSE);      /* should never get here */
+}
+
+
+static int
+binary_operator ()
+{
+  int value;
+  char *w;
+
+  w = argv[pos + 1];
+  if ((w[0] == '=' && (w[1] == '\0' || (w[1] == '=' && w[2] == '\0'))) || /* =, == */
+      ((w[0] == '>' || w[0] == '<') && w[1] == '\0') ||                /* <, > */
+      (w[0] == '!' && w[1] == '=' && w[2] == '\0'))            /* != */
+    {
+      value = binary_test (w, argv[pos], argv[pos + 2], 0);
+      pos += 3;
+      return (value);
+    }
+
+#if defined (PATTERN_MATCHING)
+  if ((w[0] == '=' || w[0] == '!') && w[1] == '~' && w[2] == '\0')
+    {
+      value = patcomp (argv[pos], argv[pos + 2], w[0] == '=' ? EQ : NE);
+      pos += 3;
+      return (value);
+    }
+#endif
+
+  if ((w[0] != '-' || w[3] != '\0') || test_binop (w) == 0)
+    {
+      test_syntax_error (_("%s: binary operator expected"), w);
+      /* NOTREACHED */
+      return (FALSE);
+    }
+
+  value = binary_test (w, argv[pos], argv[pos + 2], 0);
+  pos += 3;
+  return value;
+}
+
+static int
+unary_operator ()
+{
+  char *op;
+  intmax_t r;
+
+  op = argv[pos];
+  if (test_unop (op) == 0)
+    return (FALSE);
+
+  /* the only tricky case is `-t', which may or may not take an argument. */
+  if (op[1] == 't')
+    {
+      advance (0);
+      if (pos < argc)
+       {
+         if (legal_number (argv[pos], &r))
+           {
+             advance (0);
+             return (unary_test (op, argv[pos - 1]));
+           }
+         else
+           return (FALSE);
+       }
+      else
+       return (unary_test (op, "1"));
+    }
+
+  /* All of the unary operators take an argument, so we first call
+     unary_advance (), which checks to make sure that there is an
+     argument, and then advances pos right past it.  This means that
+     pos - 1 is the location of the argument. */
+  unary_advance ();
+  return (unary_test (op, argv[pos - 1]));
+}
+
+int
+unary_test (op, arg)
+     char *op, *arg;
+{
+  intmax_t r;
+  struct stat stat_buf;
+     
+  switch (op[1])
+    {
+    case 'a':                  /* file exists in the file system? */
+    case 'e':
+      return (test_stat (arg, &stat_buf) == 0);
+
+    case 'r':                  /* file is readable? */
+      return (EACCESS (arg, R_OK) == 0);
+
+    case 'w':                  /* File is writeable? */
+      return (EACCESS (arg, W_OK) == 0);
+
+    case 'x':                  /* File is executable? */
+      return (EACCESS (arg, X_OK) == 0);
+
+    case 'O':                  /* File is owned by you? */
+      return (test_stat (arg, &stat_buf) == 0 &&
+             (uid_t) current_user.euid == (uid_t) stat_buf.st_uid);
+
+    case 'G':                  /* File is owned by your group? */
+      return (test_stat (arg, &stat_buf) == 0 &&
+             (gid_t) current_user.egid == (gid_t) stat_buf.st_gid);
+
+    case 'N':
+      return (test_stat (arg, &stat_buf) == 0 &&
+             stat_buf.st_atime <= stat_buf.st_mtime);
+
+    case 'f':                  /* File is a file? */
+      if (test_stat (arg, &stat_buf) < 0)
+       return (FALSE);
+
+      /* -f is true if the given file exists and is a regular file. */
+#if defined (S_IFMT)
+      return (S_ISREG (stat_buf.st_mode) || (stat_buf.st_mode & S_IFMT) == 0);
+#else
+      return (S_ISREG (stat_buf.st_mode));
+#endif /* !S_IFMT */
+
+    case 'd':                  /* File is a directory? */
+      return (test_stat (arg, &stat_buf) == 0 && (S_ISDIR (stat_buf.st_mode)));
+
+    case 's':                  /* File has something in it? */
+      return (test_stat (arg, &stat_buf) == 0 && stat_buf.st_size > (off_t) 0);
+
+    case 'S':                  /* File is a socket? */
+#if !defined (S_ISSOCK)
+      return (FALSE);
+#else
+      return (test_stat (arg, &stat_buf) == 0 && S_ISSOCK (stat_buf.st_mode));
+#endif /* S_ISSOCK */
+
+    case 'c':                  /* File is character special? */
+      return (test_stat (arg, &stat_buf) == 0 && S_ISCHR (stat_buf.st_mode));
+
+    case 'b':                  /* File is block special? */
+      return (test_stat (arg, &stat_buf) == 0 && S_ISBLK (stat_buf.st_mode));
+
+    case 'p':                  /* File is a named pipe? */
+#ifndef S_ISFIFO
+      return (FALSE);
+#else
+      return (test_stat (arg, &stat_buf) == 0 && S_ISFIFO (stat_buf.st_mode));
+#endif /* S_ISFIFO */
+
+    case 'L':                  /* Same as -h  */
+    case 'h':                  /* File is a symbolic link? */
+#if !defined (S_ISLNK) || !defined (HAVE_LSTAT)
+      return (FALSE);
+#else
+      return ((arg[0] != '\0') &&
+             (lstat (arg, &stat_buf) == 0) && S_ISLNK (stat_buf.st_mode));
+#endif /* S_IFLNK && HAVE_LSTAT */
+
+    case 'u':                  /* File is setuid? */
+      return (test_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISUID) != 0);
+
+    case 'g':                  /* File is setgid? */
+      return (test_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISGID) != 0);
+
+    case 'k':                  /* File has sticky bit set? */
+#if !defined (S_ISVTX)
+      /* This is not Posix, and is not defined on some Posix systems. */
+      return (FALSE);
+#else
+      return (test_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISVTX) != 0);
+#endif
+
+    case 't':  /* File fd is a terminal? */
+      if (legal_number (arg, &r) == 0)
+       return (FALSE);
+      return ((r == (int)r) && isatty ((int)r));
+
+    case 'n':                  /* True if arg has some length. */
+      return (arg[0] != '\0');
+
+    case 'z':                  /* True if arg has no length. */
+      return (arg[0] == '\0');
+
+    case 'o':                  /* True if option `arg' is set. */
+      return (minus_o_option_value (arg) == 1);
+    }
+
+  /* We can't actually get here, but this shuts up gcc. */
+  return (FALSE);
+}
+
+/* Return TRUE if OP is one of the test command's binary operators. */
+int
+test_binop (op)
+     char *op;
+{
+  if (op[0] == '=' && op[1] == '\0')
+    return (1);                /* '=' */
+  else if ((op[0] == '<' || op[0] == '>') && op[1] == '\0')  /* string <, > */
+    return (1);
+  else if ((op[0] == '=' || op[0] == '!') && op[1] == '=' && op[2] == '\0')
+    return (1);                /* `==' and `!=' */
+#if defined (PATTERN_MATCHING)
+  else if (op[2] == '\0' && op[1] == '~' && (op[0] == '=' || op[0] == '!'))
+    return (1);
+#endif
+  else if (op[0] != '-' || op[2] == '\0' || op[3] != '\0')
+    return (0);
+  else
+    {
+      if (op[2] == 't')
+       switch (op[1])
+         {
+         case 'n':             /* -nt */
+         case 'o':             /* -ot */
+         case 'l':             /* -lt */
+         case 'g':             /* -gt */
+           return (1);
+         default:
+           return (0);
+         }
+      else if (op[1] == 'e')
+       switch (op[2])
+         {
+         case 'q':             /* -eq */
+         case 'f':             /* -ef */
+           return (1);
+         default:
+           return (0);
+         }
+      else if (op[2] == 'e')
+       switch (op[1])
+         {
+         case 'n':             /* -ne */
+         case 'g':             /* -ge */
+         case 'l':             /* -le */
+           return (1);
+         default:
+           return (0);
+         }
+      else
+       return (0);
+    }
+}
+
+/* Return non-zero if OP is one of the test command's unary operators. */
+int
+test_unop (op)
+     char *op;
+{
+  if (op[0] != '-')
+    return (0);
+
+  switch (op[1])
+    {
+    case 'a': case 'b': case 'c': case 'd': case 'e':
+    case 'f': case 'g': case 'h': case 'k': case 'n':
+    case 'o': case 'p': case 'r': case 's': case 't':
+    case 'u': case 'w': case 'x': case 'z':
+    case 'G': case 'L': case 'O': case 'S': case 'N':
+      return (1);
+    }
+
+  return (0);
+}
+
+static int
+two_arguments ()
+{
+  if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+    return (argv[pos + 1][0] == '\0');
+  else if (argv[pos][0] == '-' && argv[pos][2] == '\0')
+    {
+      if (test_unop (argv[pos]))
+       return (unary_operator ());
+      else
+       test_syntax_error (_("%s: unary operator expected"), argv[pos]);
+    }
+  else
+    test_syntax_error (_("%s: unary operator expected"), argv[pos]);
+
+  return (0);
+}
+
+#define ANDOR(s)  (s[0] == '-' && !s[2] && (s[1] == 'a' || s[1] == 'o'))
+
+/* This could be augmented to handle `-t' as equivalent to `-t 1', but
+   POSIX requires that `-t' be given an argument. */
+#define ONE_ARG_TEST(s)                ((s)[0] != '\0')
+
+static int
+three_arguments ()
+{
+  int value;
+
+  if (test_binop (argv[pos+1]))
+    {
+      value = binary_operator ();
+      pos = argc;
+    }
+  else if (ANDOR (argv[pos+1]))
+    {
+      if (argv[pos+1][1] == 'a')
+       value = ONE_ARG_TEST(argv[pos]) && ONE_ARG_TEST(argv[pos+2]);
+      else
+       value = ONE_ARG_TEST(argv[pos]) || ONE_ARG_TEST(argv[pos+2]);
+      pos = argc;
+    }
+  else if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+    {
+      advance (1);
+      value = !two_arguments ();
+    }
+  else if (argv[pos][0] == '(' && argv[pos+2][0] == ')')
+    {
+      value = ONE_ARG_TEST(argv[pos+1]);
+      pos = argc;
+    }
+  else
+    test_syntax_error (_("%s: binary operator expected"), argv[pos+1]);
+
+  return (value);
+}
+
+/* This is an implementation of a Posix.2 proposal by David Korn. */
+static int
+posixtest ()
+{
+  int value;
+
+  switch (argc - 1)    /* one extra passed in */
+    {
+      case 0:
+       value = FALSE;
+       pos = argc;
+       break;
+
+      case 1:
+       value = ONE_ARG_TEST(argv[1]);
+       pos = argc;
+       break;
+
+      case 2:
+       value = two_arguments ();
+       pos = argc;
+       break;
+
+      case 3:
+       value = three_arguments ();
+       break;
+
+      case 4:
+       if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+         {
+           advance (1);
+           value = !three_arguments ();
+           break;
+         }
+       /* FALLTHROUGH */
+      default:
+       value = expr ();
+    }
+
+  return (value);
+}
+
+/*
+ * [:
+ *     '[' expr ']'
+ * test:
+ *     test expr
+ */
+int
+test_command (margc, margv)
+     int margc;
+     char **margv;
+{
+  int value;
+  int code;
+
+  USE_VAR(margc);
+
+  code = setjmp (test_exit_buf);
+
+  if (code)
+    return (test_error_return);
+
+  argv = margv;
+
+  if (margv[0] && margv[0][0] == '[' && margv[0][1] == '\0')
+    {
+      --margc;
+
+      if (margv[margc] && (margv[margc][0] != ']' || margv[margc][1]))
+       test_syntax_error (_("missing `]'"), (char *)NULL);
+
+      if (margc < 2)
+       test_exit (SHELL_BOOLEAN (FALSE));
+    }
+
+  argc = margc;
+  pos = 1;
+
+  if (pos >= argc)
+    test_exit (SHELL_BOOLEAN (FALSE));
+
+  noeval = 0;
+  value = posixtest ();
+
+  if (pos != argc)
+    test_syntax_error (_("too many arguments"), (char *)NULL);
+
+  test_exit (SHELL_BOOLEAN (value));
+}
diff --git a/test.c~ b/test.c~
new file mode 100644 (file)
index 0000000..d37a331
--- /dev/null
+++ b/test.c~
@@ -0,0 +1,834 @@
+/* GNU test program (ksb and mjb) */
+
+/* Modified to run with the GNU shell Apr 25, 1988 by bfox. */
+
+/* Copyright (C) 1987-2005 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+
+/* Define PATTERN_MATCHING to get the csh-like =~ and !~ pattern-matching
+   binary operators. */
+/* #define PATTERN_MATCHING */
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include "bashtypes.h"
+
+#if !defined (HAVE_LIMITS_H)
+#  include <sys/param.h>
+#endif
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if !defined (_POSIX_VERSION) && defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif /* !_POSIX_VERSION */
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "bashintl.h"
+
+#include "shell.h"
+#include "pathexp.h"
+#include "test.h"
+#include "builtins/common.h"
+
+#include <glob/strmatch.h>
+
+#if !defined (STRLEN)
+#  define STRLEN(s) ((s)[0] ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0)
+#endif
+
+#if !defined (STREQ)
+#  define STREQ(a, b) ((a)[0] == (b)[0] && strcmp (a, b) == 0)
+#endif /* !STREQ */
+
+#if !defined (R_OK)
+#define R_OK 4
+#define W_OK 2
+#define X_OK 1
+#define F_OK 0
+#endif /* R_OK */
+
+#define EQ     0
+#define NE     1
+#define LT     2
+#define GT     3
+#define LE     4
+#define GE     5
+
+#define NT     0
+#define OT     1
+#define EF     2
+
+/* The following few defines control the truth and false output of each stage.
+   TRUE and FALSE are what we use to compute the final output value.
+   SHELL_BOOLEAN is the form which returns truth or falseness in shell terms.
+   Default is TRUE = 1, FALSE = 0, SHELL_BOOLEAN = (!value). */
+#define TRUE 1
+#define FALSE 0
+#define SHELL_BOOLEAN(value) (!(value))
+
+#define TEST_ERREXIT_STATUS    2
+
+static procenv_t test_exit_buf;
+static int test_error_return;
+#define test_exit(val) \
+       do { test_error_return = val; longjmp (test_exit_buf, 1); } while (0)
+
+extern int sh_stat __P((const char *, struct stat *));
+
+/* We have to use access(2) for machines running AFS, because it's
+   not a Unix file system.  This may produce incorrect answers for
+   non-AFS files.  I hate AFS. */
+#if defined (AFS)
+#  define EACCESS(path, mode)  access(path, mode)
+#else
+#  define EACCESS(path, mode)  sh_eaccess(path, mode)
+#endif /* AFS */
+
+static int pos;                /* The offset of the current argument in ARGV. */
+static int argc;       /* The number of arguments present in ARGV. */
+static char **argv;    /* The argument list. */
+static int noeval;
+
+static void test_syntax_error __P((char *, char *)) __attribute__((__noreturn__));
+static void beyond __P((void)) __attribute__((__noreturn__));
+static void integer_expected_error __P((char *)) __attribute__((__noreturn__));
+
+static int unary_operator __P((void));
+static int binary_operator __P((void));
+static int two_arguments __P((void));
+static int three_arguments __P((void));
+static int posixtest __P((void));
+
+static int expr __P((void));
+static int term __P((void));
+static int and __P((void));
+static int or __P((void));
+
+static int filecomp __P((char *, char *, int));
+static int arithcomp __P((char *, char *, int, int));
+static int patcomp __P((char *, char *, int));
+
+static void
+test_syntax_error (format, arg)
+     char *format, *arg;
+{
+  builtin_error (format, arg);
+  test_exit (TEST_ERREXIT_STATUS);
+}
+
+/*
+ * beyond - call when we're beyond the end of the argument list (an
+ *     error condition)
+ */
+static void
+beyond ()
+{
+  test_syntax_error (_("argument expected"), (char *)NULL);
+}
+
+/* Syntax error for when an integer argument was expected, but
+   something else was found. */
+static void
+integer_expected_error (pch)
+     char *pch;
+{
+  test_syntax_error (_("%s: integer expression expected"), pch);
+}
+
+/* Increment our position in the argument list.  Check that we're not
+   past the end of the argument list.  This check is supressed if the
+   argument is FALSE.  Made a macro for efficiency. */
+#define advance(f) do { ++pos; if (f && pos >= argc) beyond (); } while (0)
+#define unary_advance() do { advance (1); ++pos; } while (0)
+
+/*
+ * expr:
+ *     or
+ */
+static int
+expr ()
+{
+  if (pos >= argc)
+    beyond ();
+
+  return (FALSE ^ or ());              /* Same with this. */
+}
+
+/*
+ * or:
+ *     and
+ *     and '-o' or
+ */
+static int
+or ()
+{
+  int value, v2;
+
+  value = and ();
+  if (pos < argc && argv[pos][0] == '-' && argv[pos][1] == 'o' && !argv[pos][2])
+    {
+      advance (0);
+      v2 = or ();
+      return (value || v2);
+    }
+
+  return (value);
+}
+
+/*
+ * and:
+ *     term
+ *     term '-a' and
+ */
+static int
+and ()
+{
+  int value, v2;
+
+  value = term ();
+  if (pos < argc && argv[pos][0] == '-' && argv[pos][1] == 'a' && !argv[pos][2])
+    {
+      advance (0);
+      v2 = and ();
+      return (value && v2);
+    }
+  return (value);
+}
+
+/*
+ * term - parse a term and return 1 or 0 depending on whether the term
+ *     evaluates to true or false, respectively.
+ *
+ * term ::=
+ *     '-'('a'|'b'|'c'|'d'|'e'|'f'|'g'|'h'|'k'|'p'|'r'|'s'|'u'|'w'|'x') filename
+ *     '-'('G'|'L'|'O'|'S'|'N') filename
+ *     '-t' [int]
+ *     '-'('z'|'n') string
+ *     '-o' option
+ *     string
+ *     string ('!='|'='|'==') string
+ *     <int> '-'(eq|ne|le|lt|ge|gt) <int>
+ *     file '-'(nt|ot|ef) file
+ *     '(' <expr> ')'
+ * int ::=
+ *     positive and negative integers
+ */
+static int
+term ()
+{
+  int value;
+
+  if (pos >= argc)
+    beyond ();
+
+  /* Deal with leading `not's. */
+  if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+    {
+      value = 0;
+      while (pos < argc && argv[pos][0] == '!' && argv[pos][1] == '\0')
+       {
+         advance (1);
+         value = 1 - value;
+       }
+
+      return (value ? !term() : term());
+    }
+
+  /* A paren-bracketed argument. */
+  if (argv[pos][0] == '(' && argv[pos][1] == '\0') /* ) */
+    {
+      advance (1);
+      value = expr ();
+      if (argv[pos] == 0) /* ( */
+       test_syntax_error (_("`)' expected"), (char *)NULL);
+      else if (argv[pos][0] != ')' || argv[pos][1]) /* ( */
+       test_syntax_error (_("`)' expected, found %s"), argv[pos]);
+      advance (0);
+      return (value);
+    }
+
+  /* are there enough arguments left that this could be dyadic? */
+  if ((pos + 3 <= argc) && test_binop (argv[pos + 1]))
+    value = binary_operator ();
+
+  /* Might be a switch type argument */
+  else if (argv[pos][0] == '-' && argv[pos][2] == '\0')
+    {
+      if (test_unop (argv[pos]))
+       value = unary_operator ();
+      else
+       test_syntax_error (_("%s: unary operator expected"), argv[pos]);
+    }
+  else
+    {
+      value = argv[pos][0] != '\0';
+      advance (0);
+    }
+
+  return (value);
+}
+
+static int
+filecomp (s, t, op)
+     char *s, *t;
+     int op;
+{
+  struct stat st1, st2;
+  int r1, r2;
+
+  if ((r1 = sh_stat (s, &st1)) < 0)
+    {
+      if (op == EF)
+       return (FALSE);
+    }
+  if ((r2 = sh_stat (t, &st2)) < 0)
+    {
+      if (op == EF)
+       return (FALSE);
+    }
+  
+  switch (op)
+    {
+    case OT: return (r1 < r2 || (r2 == 0 && st1.st_mtime < st2.st_mtime));
+    case NT: return (r1 > r2 || (r1 == 0 && st1.st_mtime > st2.st_mtime));
+    case EF: return ((st1.st_dev == st2.st_dev) && (st1.st_ino == st2.st_ino));
+    }
+  return (FALSE);
+}
+
+static int
+arithcomp (s, t, op, flags)
+     char *s, *t;
+     int op, flags;
+{
+  intmax_t l, r;
+  int expok;
+
+  if (flags & TEST_ARITHEXP)
+    {
+      l = evalexp (s, &expok);
+      if (expok == 0)
+       return (FALSE);         /* should probably longjmp here */
+      r = evalexp (t, &expok);
+      if (expok == 0)
+       return (FALSE);         /* ditto */
+    }
+  else
+    {
+      if (legal_number (s, &l) == 0)
+       integer_expected_error (s);
+      if (legal_number (t, &r) == 0)
+       integer_expected_error (t);
+    }
+
+  switch (op)
+    {
+    case EQ: return (l == r);
+    case NE: return (l != r);
+    case LT: return (l < r);
+    case GT: return (l > r);
+    case LE: return (l <= r);
+    case GE: return (l >= r);
+    }
+
+  return (FALSE);
+}
+
+static int
+patcomp (string, pat, op)
+     char *string, *pat;
+     int op;
+{
+  int m;
+
+  m = strmatch (pat, string, FNMATCH_EXTFLAG|FNMATCH_IGNCASE);
+  return ((op == EQ) ? (m == 0) : (m != 0));
+}
+
+int
+binary_test (op, arg1, arg2, flags)
+     char *op, *arg1, *arg2;
+     int flags;
+{
+  int patmatch;
+
+  patmatch = (flags & TEST_PATMATCH);
+
+  if (op[0] == '=' && (op[1] == '\0' || (op[1] == '=' && op[2] == '\0')))
+    return (patmatch ? patcomp (arg1, arg2, EQ) : STREQ (arg1, arg2));
+
+  else if ((op[0] == '>' || op[0] == '<') && op[1] == '\0')
+    return ((op[0] == '>') ? (strcmp (arg1, arg2) > 0) : (strcmp (arg1, arg2) < 0));
+
+  else if (op[0] == '!' && op[1] == '=' && op[2] == '\0')
+    return (patmatch ? patcomp (arg1, arg2, NE) : (STREQ (arg1, arg2) == 0));
+
+  else if (op[2] == 't')
+    {
+      switch (op[1])
+       {
+       case 'n': return (filecomp (arg1, arg2, NT));           /* -nt */
+       case 'o': return (filecomp (arg1, arg2, OT));           /* -ot */
+       case 'l': return (arithcomp (arg1, arg2, LT, flags));   /* -lt */
+       case 'g': return (arithcomp (arg1, arg2, GT, flags));   /* -gt */
+       }
+    }
+  else if (op[1] == 'e')
+    {
+      switch (op[2])
+       {
+       case 'f': return (filecomp (arg1, arg2, EF));           /* -ef */
+       case 'q': return (arithcomp (arg1, arg2, EQ, flags));   /* -eq */
+       }
+    }
+  else if (op[2] == 'e')
+    {
+      switch (op[1])
+       {
+       case 'n': return (arithcomp (arg1, arg2, NE, flags));   /* -ne */
+       case 'g': return (arithcomp (arg1, arg2, GE, flags));   /* -ge */
+       case 'l': return (arithcomp (arg1, arg2, LE, flags));   /* -le */
+       }
+    }
+
+  return (FALSE);      /* should never get here */
+}
+
+
+static int
+binary_operator ()
+{
+  int value;
+  char *w;
+
+  w = argv[pos + 1];
+  if ((w[0] == '=' && (w[1] == '\0' || (w[1] == '=' && w[2] == '\0'))) || /* =, == */
+      ((w[0] == '>' || w[0] == '<') && w[1] == '\0') ||                /* <, > */
+      (w[0] == '!' && w[1] == '=' && w[2] == '\0'))            /* != */
+    {
+      value = binary_test (w, argv[pos], argv[pos + 2], 0);
+      pos += 3;
+      return (value);
+    }
+
+#if defined (PATTERN_MATCHING)
+  if ((w[0] == '=' || w[0] == '!') && w[1] == '~' && w[2] == '\0')
+    {
+      value = patcomp (argv[pos], argv[pos + 2], w[0] == '=' ? EQ : NE);
+      pos += 3;
+      return (value);
+    }
+#endif
+
+  if ((w[0] != '-' || w[3] != '\0') || test_binop (w) == 0)
+    {
+      test_syntax_error (_("%s: binary operator expected"), w);
+      /* NOTREACHED */
+      return (FALSE);
+    }
+
+  value = binary_test (w, argv[pos], argv[pos + 2], 0);
+  pos += 3;
+  return value;
+}
+
+static int
+unary_operator ()
+{
+  char *op;
+  intmax_t r;
+
+  op = argv[pos];
+  if (test_unop (op) == 0)
+    return (FALSE);
+
+  /* the only tricky case is `-t', which may or may not take an argument. */
+  if (op[1] == 't')
+    {
+      advance (0);
+      if (pos < argc)
+       {
+         if (legal_number (argv[pos], &r))
+           {
+             advance (0);
+             return (unary_test (op, argv[pos - 1]));
+           }
+         else
+           return (FALSE);
+       }
+      else
+       return (unary_test (op, "1"));
+    }
+
+  /* All of the unary operators take an argument, so we first call
+     unary_advance (), which checks to make sure that there is an
+     argument, and then advances pos right past it.  This means that
+     pos - 1 is the location of the argument. */
+  unary_advance ();
+  return (unary_test (op, argv[pos - 1]));
+}
+
+int
+unary_test (op, arg)
+     char *op, *arg;
+{
+  intmax_t r;
+  struct stat stat_buf;
+     
+  switch (op[1])
+    {
+    case 'a':                  /* file exists in the file system? */
+    case 'e':
+      return (sh_stat (arg, &stat_buf) == 0);
+
+    case 'r':                  /* file is readable? */
+      return (EACCESS (arg, R_OK) == 0);
+
+    case 'w':                  /* File is writeable? */
+      return (EACCESS (arg, W_OK) == 0);
+
+    case 'x':                  /* File is executable? */
+      return (EACCESS (arg, X_OK) == 0);
+
+    case 'O':                  /* File is owned by you? */
+      return (sh_stat (arg, &stat_buf) == 0 &&
+             (uid_t) current_user.euid == (uid_t) stat_buf.st_uid);
+
+    case 'G':                  /* File is owned by your group? */
+      return (sh_stat (arg, &stat_buf) == 0 &&
+             (gid_t) current_user.egid == (gid_t) stat_buf.st_gid);
+
+    case 'N':
+      return (sh_stat (arg, &stat_buf) == 0 &&
+             stat_buf.st_atime <= stat_buf.st_mtime);
+
+    case 'f':                  /* File is a file? */
+      if (sh_stat (arg, &stat_buf) < 0)
+       return (FALSE);
+
+      /* -f is true if the given file exists and is a regular file. */
+#if defined (S_IFMT)
+      return (S_ISREG (stat_buf.st_mode) || (stat_buf.st_mode & S_IFMT) == 0);
+#else
+      return (S_ISREG (stat_buf.st_mode));
+#endif /* !S_IFMT */
+
+    case 'd':                  /* File is a directory? */
+      return (sh_stat (arg, &stat_buf) == 0 && (S_ISDIR (stat_buf.st_mode)));
+
+    case 's':                  /* File has something in it? */
+      return (sh_stat (arg, &stat_buf) == 0 && stat_buf.st_size > (off_t) 0);
+
+    case 'S':                  /* File is a socket? */
+#if !defined (S_ISSOCK)
+      return (FALSE);
+#else
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISSOCK (stat_buf.st_mode));
+#endif /* S_ISSOCK */
+
+    case 'c':                  /* File is character special? */
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISCHR (stat_buf.st_mode));
+
+    case 'b':                  /* File is block special? */
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISBLK (stat_buf.st_mode));
+
+    case 'p':                  /* File is a named pipe? */
+#ifndef S_ISFIFO
+      return (FALSE);
+#else
+      return (sh_stat (arg, &stat_buf) == 0 && S_ISFIFO (stat_buf.st_mode));
+#endif /* S_ISFIFO */
+
+    case 'L':                  /* Same as -h  */
+    case 'h':                  /* File is a symbolic link? */
+#if !defined (S_ISLNK) || !defined (HAVE_LSTAT)
+      return (FALSE);
+#else
+      return ((arg[0] != '\0') &&
+             (lstat (arg, &stat_buf) == 0) && S_ISLNK (stat_buf.st_mode));
+#endif /* S_IFLNK && HAVE_LSTAT */
+
+    case 'u':                  /* File is setuid? */
+      return (sh_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISUID) != 0);
+
+    case 'g':                  /* File is setgid? */
+      return (sh_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISGID) != 0);
+
+    case 'k':                  /* File has sticky bit set? */
+#if !defined (S_ISVTX)
+      /* This is not Posix, and is not defined on some Posix systems. */
+      return (FALSE);
+#else
+      return (sh_stat (arg, &stat_buf) == 0 && (stat_buf.st_mode & S_ISVTX) != 0);
+#endif
+
+    case 't':  /* File fd is a terminal? */
+      if (legal_number (arg, &r) == 0)
+       return (FALSE);
+      return ((r == (int)r) && isatty ((int)r));
+
+    case 'n':                  /* True if arg has some length. */
+      return (arg[0] != '\0');
+
+    case 'z':                  /* True if arg has no length. */
+      return (arg[0] == '\0');
+
+    case 'o':                  /* True if option `arg' is set. */
+      return (minus_o_option_value (arg) == 1);
+    }
+
+  /* We can't actually get here, but this shuts up gcc. */
+  return (FALSE);
+}
+
+/* Return TRUE if OP is one of the test command's binary operators. */
+int
+test_binop (op)
+     char *op;
+{
+  if (op[0] == '=' && op[1] == '\0')
+    return (1);                /* '=' */
+  else if ((op[0] == '<' || op[0] == '>') && op[1] == '\0')  /* string <, > */
+    return (1);
+  else if ((op[0] == '=' || op[0] == '!') && op[1] == '=' && op[2] == '\0')
+    return (1);                /* `==' and `!=' */
+#if defined (PATTERN_MATCHING)
+  else if (op[2] == '\0' && op[1] == '~' && (op[0] == '=' || op[0] == '!'))
+    return (1);
+#endif
+  else if (op[0] != '-' || op[2] == '\0' || op[3] != '\0')
+    return (0);
+  else
+    {
+      if (op[2] == 't')
+       switch (op[1])
+         {
+         case 'n':             /* -nt */
+         case 'o':             /* -ot */
+         case 'l':             /* -lt */
+         case 'g':             /* -gt */
+           return (1);
+         default:
+           return (0);
+         }
+      else if (op[1] == 'e')
+       switch (op[2])
+         {
+         case 'q':             /* -eq */
+         case 'f':             /* -ef */
+           return (1);
+         default:
+           return (0);
+         }
+      else if (op[2] == 'e')
+       switch (op[1])
+         {
+         case 'n':             /* -ne */
+         case 'g':             /* -ge */
+         case 'l':             /* -le */
+           return (1);
+         default:
+           return (0);
+         }
+      else
+       return (0);
+    }
+}
+
+/* Return non-zero if OP is one of the test command's unary operators. */
+int
+test_unop (op)
+     char *op;
+{
+  if (op[0] != '-')
+    return (0);
+
+  switch (op[1])
+    {
+    case 'a': case 'b': case 'c': case 'd': case 'e':
+    case 'f': case 'g': case 'h': case 'k': case 'n':
+    case 'o': case 'p': case 'r': case 's': case 't':
+    case 'u': case 'w': case 'x': case 'z':
+    case 'G': case 'L': case 'O': case 'S': case 'N':
+      return (1);
+    }
+
+  return (0);
+}
+
+static int
+two_arguments ()
+{
+  if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+    return (argv[pos + 1][0] == '\0');
+  else if (argv[pos][0] == '-' && argv[pos][2] == '\0')
+    {
+      if (test_unop (argv[pos]))
+       return (unary_operator ());
+      else
+       test_syntax_error (_("%s: unary operator expected"), argv[pos]);
+    }
+  else
+    test_syntax_error (_("%s: unary operator expected"), argv[pos]);
+
+  return (0);
+}
+
+#define ANDOR(s)  (s[0] == '-' && !s[2] && (s[1] == 'a' || s[1] == 'o'))
+
+/* This could be augmented to handle `-t' as equivalent to `-t 1', but
+   POSIX requires that `-t' be given an argument. */
+#define ONE_ARG_TEST(s)                ((s)[0] != '\0')
+
+static int
+three_arguments ()
+{
+  int value;
+
+  if (test_binop (argv[pos+1]))
+    {
+      value = binary_operator ();
+      pos = argc;
+    }
+  else if (ANDOR (argv[pos+1]))
+    {
+      if (argv[pos+1][1] == 'a')
+       value = ONE_ARG_TEST(argv[pos]) && ONE_ARG_TEST(argv[pos+2]);
+      else
+       value = ONE_ARG_TEST(argv[pos]) || ONE_ARG_TEST(argv[pos+2]);
+      pos = argc;
+    }
+  else if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+    {
+      advance (1);
+      value = !two_arguments ();
+    }
+  else if (argv[pos][0] == '(' && argv[pos+2][0] == ')')
+    {
+      value = ONE_ARG_TEST(argv[pos+1]);
+      pos = argc;
+    }
+  else
+    test_syntax_error (_("%s: binary operator expected"), argv[pos+1]);
+
+  return (value);
+}
+
+/* This is an implementation of a Posix.2 proposal by David Korn. */
+static int
+posixtest ()
+{
+  int value;
+
+  switch (argc - 1)    /* one extra passed in */
+    {
+      case 0:
+       value = FALSE;
+       pos = argc;
+       break;
+
+      case 1:
+       value = ONE_ARG_TEST(argv[1]);
+       pos = argc;
+       break;
+
+      case 2:
+       value = two_arguments ();
+       pos = argc;
+       break;
+
+      case 3:
+       value = three_arguments ();
+       break;
+
+      case 4:
+       if (argv[pos][0] == '!' && argv[pos][1] == '\0')
+         {
+           advance (1);
+           value = !three_arguments ();
+           break;
+         }
+       /* FALLTHROUGH */
+      default:
+       value = expr ();
+    }
+
+  return (value);
+}
+
+/*
+ * [:
+ *     '[' expr ']'
+ * test:
+ *     test expr
+ */
+int
+test_command (margc, margv)
+     int margc;
+     char **margv;
+{
+  int value;
+  int code;
+
+  USE_VAR(margc);
+
+  code = setjmp (test_exit_buf);
+
+  if (code)
+    return (test_error_return);
+
+  argv = margv;
+
+  if (margv[0] && margv[0][0] == '[' && margv[0][1] == '\0')
+    {
+      --margc;
+
+      if (margv[margc] && (margv[margc][0] != ']' || margv[margc][1]))
+       test_syntax_error (_("missing `]'"), (char *)NULL);
+
+      if (margc < 2)
+       test_exit (SHELL_BOOLEAN (FALSE));
+    }
+
+  argc = margc;
+  pos = 1;
+
+  if (pos >= argc)
+    test_exit (SHELL_BOOLEAN (FALSE));
+
+  noeval = 0;
+  value = posixtest ();
+
+  if (pos != argc)
+    test_syntax_error (_("too many arguments"), (char *)NULL);
+
+  test_exit (SHELL_BOOLEAN (value));
+}
diff --git a/test.h b/test.h
index 3aef8913f9e1a5f4844ac7974ad7667ddf260dfa..2ae5fc9dabb34f81104b5eb55dec8ca10deedd0e 100644 (file)
--- a/test.h
+++ b/test.h
@@ -27,8 +27,6 @@
 #define TEST_PATMATCH  0x01
 #define TEST_ARITHEXP  0x02
 
-extern int test_eaccess __P((char *, int));
-
 extern int test_unop __P((char *));
 extern int test_binop __P((char *));
 
diff --git a/test.h~ b/test.h~
new file mode 100644 (file)
index 0000000..3aef891
--- /dev/null
+++ b/test.h~
@@ -0,0 +1,40 @@
+/* test.h -- external interface to the conditional command code. */
+
+/* Copyright (C) 1997 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef _TEST_H_
+#define _TEST_H_
+
+#include "stdc.h"
+
+/* Values for the flags argument to binary_test */
+#define TEST_PATMATCH  0x01
+#define TEST_ARITHEXP  0x02
+
+extern int test_eaccess __P((char *, int));
+
+extern int test_unop __P((char *));
+extern int test_binop __P((char *));
+
+extern int unary_test __P((char *, char *));
+extern int binary_test __P((char *, char *, char *, int));
+
+extern int test_command __P((int, char **));
+
+#endif /* _TEST_H_ */
index 3efcf32d68e9722024b6ca9d67f9e81b2aa5ac04..72ec06a2c1fd8dde92acea5e8ac773e35f1d061b 100755 (executable)
@@ -1,4 +1,4 @@
-BUILD_DIR=/usr/local/build/chet/bash/bash-current
+BUILD_DIR=/usr/local/build/bash/bash-current
 THIS_SH=$BUILD_DIR/bash
 PATH=$PATH:$BUILD_DIR
 
diff --git a/trap.c b/trap.c
index 07b64dfdfabb7b96cb4d1894635df5c4d17b73cb..9eeb372c3396808bd54f25f8a13dc268cdb25756 100644 (file)
--- a/trap.c
+++ b/trap.c
@@ -1,7 +1,7 @@
 /* trap.c -- Not the trap command, but useful functions for manipulating
    those objects.  The trap command is in builtins/trap.def. */
 
-/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2006 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -452,7 +452,7 @@ set_sigint_handler ()
   else if (interactive)        /* XXX - was interactive_shell */
     return (set_signal_handler (SIGINT, sigint_sighandler));
   else
-    return (set_signal_handler (SIGINT, termination_unwind_protect));
+    return (set_signal_handler (SIGINT, termsig_sighandler));
 }
 
 /* Return the correct handler for signal SIG according to the values in